Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix post time localization on Android (#6742)

* Fix post time localization on native

* Fix timezone

* Revent time.ts

* Add time.android.ts

* Add missing 'an' and 'ast'

* Revent PostThreadItem.tsx

* Resolve duplicate versions in lockfile

* Move to time.native.ts

* Follow #7055 to upgrade intl-datetimeformat version

* Remove time.native.ts

authored by

Frudrax Cheng and committed by
GitHub
b1b6affb 1ac307bc

+39
+1
package.json
··· 63 63 "@expo/webpack-config": "^19.0.0", 64 64 "@floating-ui/dom": "^1.6.3", 65 65 "@floating-ui/react-dom": "^2.0.8", 66 + "@formatjs/intl-datetimeformat": "^6.17.1", 66 67 "@formatjs/intl-locale": "^4.2.8", 67 68 "@formatjs/intl-numberformat": "^8.15.1", 68 69 "@formatjs/intl-pluralrules": "^5.4.1",
+29
src/locale/i18n.ts
··· 1 1 // Don't remove -force from these because detection is VERY slow on low-end Android. 2 2 // https://github.com/formatjs/formatjs/issues/4463#issuecomment-2176070577 3 3 import '@formatjs/intl-locale/polyfill-force' 4 + import '@formatjs/intl-datetimeformat/polyfill-force' 4 5 import '@formatjs/intl-pluralrules/polyfill-force' 5 6 import '@formatjs/intl-numberformat/polyfill-force' 7 + import '@formatjs/intl-datetimeformat/locale-data/en' 6 8 import '@formatjs/intl-pluralrules/locale-data/en' 7 9 import '@formatjs/intl-numberformat/locale-data/en' 8 10 ··· 49 51 case AppLanguage.an: { 50 52 i18n.loadAndActivate({locale, messages: messagesAn}) 51 53 await Promise.all([ 54 + import('@formatjs/intl-datetimeformat/locale-data/es'), 52 55 import('@formatjs/intl-pluralrules/locale-data/an'), 53 56 import('@formatjs/intl-numberformat/locale-data/es'), 54 57 ]) ··· 57 60 case AppLanguage.ast: { 58 61 i18n.loadAndActivate({locale, messages: messagesAst}) 59 62 await Promise.all([ 63 + import('@formatjs/intl-datetimeformat/locale-data/ast'), 60 64 import('@formatjs/intl-pluralrules/locale-data/ast'), 61 65 import('@formatjs/intl-numberformat/locale-data/ast'), 62 66 ]) ··· 65 69 case AppLanguage.ca: { 66 70 i18n.loadAndActivate({locale, messages: messagesCa}) 67 71 await Promise.all([ 72 + import('@formatjs/intl-datetimeformat/locale-data/ca'), 68 73 import('@formatjs/intl-pluralrules/locale-data/ca'), 69 74 import('@formatjs/intl-numberformat/locale-data/ca'), 70 75 ]) ··· 73 78 case AppLanguage.de: { 74 79 i18n.loadAndActivate({locale, messages: messagesDe}) 75 80 await Promise.all([ 81 + import('@formatjs/intl-datetimeformat/locale-data/de'), 76 82 import('@formatjs/intl-pluralrules/locale-data/de'), 77 83 import('@formatjs/intl-numberformat/locale-data/de'), 78 84 ]) ··· 81 87 case AppLanguage.en_GB: { 82 88 i18n.loadAndActivate({locale, messages: messagesEn_GB}) 83 89 await Promise.all([ 90 + import('@formatjs/intl-datetimeformat/locale-data/en-GB'), 84 91 import('@formatjs/intl-pluralrules/locale-data/en'), 85 92 import('@formatjs/intl-numberformat/locale-data/en-GB'), 86 93 ]) ··· 89 96 case AppLanguage.es: { 90 97 i18n.loadAndActivate({locale, messages: messagesEs}) 91 98 await Promise.all([ 99 + import('@formatjs/intl-datetimeformat/locale-data/es'), 92 100 import('@formatjs/intl-pluralrules/locale-data/es'), 93 101 import('@formatjs/intl-numberformat/locale-data/es'), 94 102 ]) ··· 97 105 case AppLanguage.fi: { 98 106 i18n.loadAndActivate({locale, messages: messagesFi}) 99 107 await Promise.all([ 108 + import('@formatjs/intl-datetimeformat/locale-data/fi'), 100 109 import('@formatjs/intl-pluralrules/locale-data/fi'), 101 110 import('@formatjs/intl-numberformat/locale-data/fi'), 102 111 ]) ··· 105 114 case AppLanguage.fr: { 106 115 i18n.loadAndActivate({locale, messages: messagesFr}) 107 116 await Promise.all([ 117 + import('@formatjs/intl-datetimeformat/locale-data/fr'), 108 118 import('@formatjs/intl-pluralrules/locale-data/fr'), 109 119 import('@formatjs/intl-numberformat/locale-data/fr'), 110 120 ]) ··· 113 123 case AppLanguage.ga: { 114 124 i18n.loadAndActivate({locale, messages: messagesGa}) 115 125 await Promise.all([ 126 + import('@formatjs/intl-datetimeformat/locale-data/ga'), 116 127 import('@formatjs/intl-pluralrules/locale-data/ga'), 117 128 import('@formatjs/intl-numberformat/locale-data/ga'), 118 129 ]) ··· 121 132 case AppLanguage.gl: { 122 133 i18n.loadAndActivate({locale, messages: messagesGl}) 123 134 await Promise.all([ 135 + import('@formatjs/intl-datetimeformat/locale-data/gl'), 124 136 import('@formatjs/intl-pluralrules/locale-data/gl'), 125 137 import('@formatjs/intl-numberformat/locale-data/gl'), 126 138 ]) ··· 129 141 case AppLanguage.hi: { 130 142 i18n.loadAndActivate({locale, messages: messagesHi}) 131 143 await Promise.all([ 144 + import('@formatjs/intl-datetimeformat/locale-data/hi'), 132 145 import('@formatjs/intl-pluralrules/locale-data/hi'), 133 146 import('@formatjs/intl-numberformat/locale-data/hi'), 134 147 ]) ··· 137 150 case AppLanguage.hu: { 138 151 i18n.loadAndActivate({locale, messages: messagesHu}) 139 152 await Promise.all([ 153 + import('@formatjs/intl-datetimeformat/locale-data/hu'), 140 154 import('@formatjs/intl-pluralrules/locale-data/hu'), 141 155 import('@formatjs/intl-numberformat/locale-data/hu'), 142 156 ]) ··· 145 159 case AppLanguage.id: { 146 160 i18n.loadAndActivate({locale, messages: messagesId}) 147 161 await Promise.all([ 162 + import('@formatjs/intl-datetimeformat/locale-data/id'), 148 163 import('@formatjs/intl-pluralrules/locale-data/id'), 149 164 import('@formatjs/intl-numberformat/locale-data/id'), 150 165 ]) ··· 153 168 case AppLanguage.it: { 154 169 i18n.loadAndActivate({locale, messages: messagesIt}) 155 170 await Promise.all([ 171 + import('@formatjs/intl-datetimeformat/locale-data/it'), 156 172 import('@formatjs/intl-pluralrules/locale-data/it'), 157 173 import('@formatjs/intl-numberformat/locale-data/it'), 158 174 ]) ··· 161 177 case AppLanguage.ja: { 162 178 i18n.loadAndActivate({locale, messages: messagesJa}) 163 179 await Promise.all([ 180 + import('@formatjs/intl-datetimeformat/locale-data/ja'), 164 181 import('@formatjs/intl-pluralrules/locale-data/ja'), 165 182 import('@formatjs/intl-numberformat/locale-data/ja'), 166 183 ]) ··· 169 186 case AppLanguage.ko: { 170 187 i18n.loadAndActivate({locale, messages: messagesKo}) 171 188 await Promise.all([ 189 + import('@formatjs/intl-datetimeformat/locale-data/ko'), 172 190 import('@formatjs/intl-pluralrules/locale-data/ko'), 173 191 import('@formatjs/intl-numberformat/locale-data/ko'), 174 192 ]) ··· 177 195 case AppLanguage.nl: { 178 196 i18n.loadAndActivate({locale, messages: messagesNl}) 179 197 await Promise.all([ 198 + import('@formatjs/intl-datetimeformat/locale-data/nl'), 180 199 import('@formatjs/intl-pluralrules/locale-data/nl'), 181 200 import('@formatjs/intl-numberformat/locale-data/nl'), 182 201 ]) ··· 185 204 case AppLanguage.pl: { 186 205 i18n.loadAndActivate({locale, messages: messagesPl}) 187 206 await Promise.all([ 207 + import('@formatjs/intl-datetimeformat/locale-data/pl'), 188 208 import('@formatjs/intl-pluralrules/locale-data/pl'), 189 209 import('@formatjs/intl-numberformat/locale-data/pl'), 190 210 ]) ··· 193 213 case AppLanguage.pt_BR: { 194 214 i18n.loadAndActivate({locale, messages: messagesPt_BR}) 195 215 await Promise.all([ 216 + import('@formatjs/intl-datetimeformat/locale-data/pt'), 196 217 import('@formatjs/intl-pluralrules/locale-data/pt'), 197 218 import('@formatjs/intl-numberformat/locale-data/pt'), 198 219 ]) ··· 201 222 case AppLanguage.ru: { 202 223 i18n.loadAndActivate({locale, messages: messagesRu}) 203 224 await Promise.all([ 225 + import('@formatjs/intl-datetimeformat/locale-data/ru'), 204 226 import('@formatjs/intl-pluralrules/locale-data/ru'), 205 227 import('@formatjs/intl-numberformat/locale-data/ru'), 206 228 ]) ··· 209 231 case AppLanguage.th: { 210 232 i18n.loadAndActivate({locale, messages: messagesTh}) 211 233 await Promise.all([ 234 + import('@formatjs/intl-datetimeformat/locale-data/th'), 212 235 import('@formatjs/intl-pluralrules/locale-data/th'), 213 236 import('@formatjs/intl-numberformat/locale-data/th'), 214 237 ]) ··· 217 240 case AppLanguage.tr: { 218 241 i18n.loadAndActivate({locale, messages: messagesTr}) 219 242 await Promise.all([ 243 + import('@formatjs/intl-datetimeformat/locale-data/tr'), 220 244 import('@formatjs/intl-pluralrules/locale-data/tr'), 221 245 import('@formatjs/intl-numberformat/locale-data/tr'), 222 246 ]) ··· 225 249 case AppLanguage.uk: { 226 250 i18n.loadAndActivate({locale, messages: messagesUk}) 227 251 await Promise.all([ 252 + import('@formatjs/intl-datetimeformat/locale-data/uk'), 228 253 import('@formatjs/intl-pluralrules/locale-data/uk'), 229 254 import('@formatjs/intl-numberformat/locale-data/uk'), 230 255 ]) ··· 233 258 case AppLanguage.vi: { 234 259 i18n.loadAndActivate({locale, messages: messagesVi}) 235 260 await Promise.all([ 261 + import('@formatjs/intl-datetimeformat/locale-data/vi'), 236 262 import('@formatjs/intl-pluralrules/locale-data/vi'), 237 263 import('@formatjs/intl-numberformat/locale-data/vi'), 238 264 ]) ··· 241 267 case AppLanguage.zh_CN: { 242 268 i18n.loadAndActivate({locale, messages: messagesZh_CN}) 243 269 await Promise.all([ 270 + import('@formatjs/intl-datetimeformat/locale-data/zh-Hans'), 244 271 import('@formatjs/intl-pluralrules/locale-data/zh'), 245 272 import('@formatjs/intl-numberformat/locale-data/zh'), 246 273 ]) ··· 249 276 case AppLanguage.zh_HK: { 250 277 i18n.loadAndActivate({locale, messages: messagesZh_HK}) 251 278 await Promise.all([ 279 + import('@formatjs/intl-datetimeformat/locale-data/yue'), 252 280 import('@formatjs/intl-pluralrules/locale-data/zh'), 253 281 import('@formatjs/intl-numberformat/locale-data/zh'), 254 282 ]) ··· 257 285 case AppLanguage.zh_TW: { 258 286 i18n.loadAndActivate({locale, messages: messagesZh_TW}) 259 287 await Promise.all([ 288 + import('@formatjs/intl-datetimeformat/locale-data/zh-Hant'), 260 289 import('@formatjs/intl-pluralrules/locale-data/zh'), 261 290 import('@formatjs/intl-numberformat/locale-data/zh'), 262 291 ])
+9
yarn.lock
··· 4274 4274 dependencies: 4275 4275 tslib "2" 4276 4276 4277 + "@formatjs/intl-datetimeformat@^6.17.1": 4278 + version "6.17.1" 4279 + resolved "https://registry.yarnpkg.com/@formatjs/intl-datetimeformat/-/intl-datetimeformat-6.17.1.tgz#d5e800891f9d79c8f1af1999f51db51f1384eca1" 4280 + integrity sha512-a18NqRo6R73xpREuMZo8FqjO+LnYFDHoeoviTh5de4ebI46wqLSDgbAIKoceuWblTQt8bvCpJIwvKgLItea88Q== 4281 + dependencies: 4282 + "@formatjs/ecma402-abstract" "2.3.1" 4283 + "@formatjs/intl-localematcher" "0.5.9" 4284 + tslib "2" 4285 + 4277 4286 "@formatjs/intl-enumerator@1.8.7": 4278 4287 version "1.8.7" 4279 4288 resolved "https://registry.yarnpkg.com/@formatjs/intl-enumerator/-/intl-enumerator-1.8.7.tgz#3f004753333f80cc468ae34046bd8416772a0412"