mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
0
fork

Configure Feed

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

at verify-intent 187 lines 6.8 kB view raw
1// Don't remove -force from these because detection is VERY slow on low-end Android. 2// https://github.com/formatjs/formatjs/issues/4463#issuecomment-2176070577 3import '@formatjs/intl-locale/polyfill-force' 4import '@formatjs/intl-pluralrules/polyfill-force' 5import '@formatjs/intl-numberformat/polyfill-force' 6import '@formatjs/intl-pluralrules/locale-data/en' 7import '@formatjs/intl-numberformat/locale-data/en' 8 9import {useEffect} from 'react' 10import {i18n} from '@lingui/core' 11 12import {sanitizeAppLanguageSetting} from '#/locale/helpers' 13import {AppLanguage} from '#/locale/languages' 14import {messages as messagesCa} from '#/locale/locales/ca/messages' 15import {messages as messagesDe} from '#/locale/locales/de/messages' 16import {messages as messagesEn} from '#/locale/locales/en/messages' 17import {messages as messagesEs} from '#/locale/locales/es/messages' 18import {messages as messagesFi} from '#/locale/locales/fi/messages' 19import {messages as messagesFr} from '#/locale/locales/fr/messages' 20import {messages as messagesGa} from '#/locale/locales/ga/messages' 21import {messages as messagesHi} from '#/locale/locales/hi/messages' 22import {messages as messagesId} from '#/locale/locales/id/messages' 23import {messages as messagesIt} from '#/locale/locales/it/messages' 24import {messages as messagesJa} from '#/locale/locales/ja/messages' 25import {messages as messagesKo} from '#/locale/locales/ko/messages' 26import {messages as messagesPt_BR} from '#/locale/locales/pt-BR/messages' 27import {messages as messagesRu} from '#/locale/locales/ru/messages' 28import {messages as messagesTr} from '#/locale/locales/tr/messages' 29import {messages as messagesUk} from '#/locale/locales/uk/messages' 30import {messages as messagesZh_CN} from '#/locale/locales/zh-CN/messages' 31import {messages as messagesZh_TW} from '#/locale/locales/zh-TW/messages' 32import {useLanguagePrefs} from '#/state/preferences' 33 34/** 35 * We do a dynamic import of just the catalog that we need 36 */ 37export async function dynamicActivate(locale: AppLanguage) { 38 switch (locale) { 39 case AppLanguage.ca: { 40 i18n.loadAndActivate({locale, messages: messagesCa}) 41 await Promise.all([ 42 import('@formatjs/intl-pluralrules/locale-data/ca'), 43 import('@formatjs/intl-numberformat/locale-data/ca'), 44 ]) 45 break 46 } 47 case AppLanguage.de: { 48 i18n.loadAndActivate({locale, messages: messagesDe}) 49 await Promise.all([ 50 import('@formatjs/intl-pluralrules/locale-data/de'), 51 import('@formatjs/intl-numberformat/locale-data/de'), 52 ]) 53 break 54 } 55 case AppLanguage.es: { 56 i18n.loadAndActivate({locale, messages: messagesEs}) 57 await Promise.all([ 58 import('@formatjs/intl-pluralrules/locale-data/es'), 59 import('@formatjs/intl-numberformat/locale-data/es'), 60 ]) 61 break 62 } 63 case AppLanguage.fi: { 64 i18n.loadAndActivate({locale, messages: messagesFi}) 65 await Promise.all([ 66 import('@formatjs/intl-pluralrules/locale-data/fi'), 67 import('@formatjs/intl-numberformat/locale-data/fi'), 68 ]) 69 break 70 } 71 case AppLanguage.fr: { 72 i18n.loadAndActivate({locale, messages: messagesFr}) 73 await Promise.all([ 74 import('@formatjs/intl-pluralrules/locale-data/fr'), 75 import('@formatjs/intl-numberformat/locale-data/fr'), 76 ]) 77 break 78 } 79 case AppLanguage.ga: { 80 i18n.loadAndActivate({locale, messages: messagesGa}) 81 await Promise.all([ 82 import('@formatjs/intl-pluralrules/locale-data/ga'), 83 import('@formatjs/intl-numberformat/locale-data/ga'), 84 ]) 85 break 86 } 87 case AppLanguage.hi: { 88 i18n.loadAndActivate({locale, messages: messagesHi}) 89 await Promise.all([ 90 import('@formatjs/intl-pluralrules/locale-data/hi'), 91 import('@formatjs/intl-numberformat/locale-data/hi'), 92 ]) 93 break 94 } 95 case AppLanguage.id: { 96 i18n.loadAndActivate({locale, messages: messagesId}) 97 await Promise.all([ 98 import('@formatjs/intl-pluralrules/locale-data/id'), 99 import('@formatjs/intl-numberformat/locale-data/id'), 100 ]) 101 break 102 } 103 case AppLanguage.it: { 104 i18n.loadAndActivate({locale, messages: messagesIt}) 105 await Promise.all([ 106 import('@formatjs/intl-pluralrules/locale-data/it'), 107 import('@formatjs/intl-numberformat/locale-data/it'), 108 ]) 109 break 110 } 111 case AppLanguage.ja: { 112 i18n.loadAndActivate({locale, messages: messagesJa}) 113 await Promise.all([ 114 import('@formatjs/intl-pluralrules/locale-data/ja'), 115 import('@formatjs/intl-numberformat/locale-data/ja'), 116 ]) 117 break 118 } 119 case AppLanguage.ko: { 120 i18n.loadAndActivate({locale, messages: messagesKo}) 121 await Promise.all([ 122 import('@formatjs/intl-pluralrules/locale-data/ko'), 123 import('@formatjs/intl-numberformat/locale-data/ko'), 124 ]) 125 break 126 } 127 case AppLanguage.pt_BR: { 128 i18n.loadAndActivate({locale, messages: messagesPt_BR}) 129 await Promise.all([ 130 import('@formatjs/intl-pluralrules/locale-data/pt'), 131 import('@formatjs/intl-numberformat/locale-data/pt'), 132 ]) 133 break 134 } 135 case AppLanguage.ru: { 136 i18n.loadAndActivate({locale, messages: messagesRu}) 137 await Promise.all([ 138 import('@formatjs/intl-pluralrules/locale-data/ru'), 139 import('@formatjs/intl-numberformat/locale-data/ru'), 140 ]) 141 break 142 } 143 case AppLanguage.tr: { 144 i18n.loadAndActivate({locale, messages: messagesTr}) 145 await Promise.all([ 146 import('@formatjs/intl-pluralrules/locale-data/tr'), 147 import('@formatjs/intl-numberformat/locale-data/tr'), 148 ]) 149 break 150 } 151 case AppLanguage.uk: { 152 i18n.loadAndActivate({locale, messages: messagesUk}) 153 await Promise.all([ 154 import('@formatjs/intl-pluralrules/locale-data/uk'), 155 import('@formatjs/intl-numberformat/locale-data/uk'), 156 ]) 157 break 158 } 159 case AppLanguage.zh_CN: { 160 i18n.loadAndActivate({locale, messages: messagesZh_CN}) 161 await Promise.all([ 162 import('@formatjs/intl-pluralrules/locale-data/zh'), 163 import('@formatjs/intl-numberformat/locale-data/zh'), 164 ]) 165 break 166 } 167 case AppLanguage.zh_TW: { 168 i18n.loadAndActivate({locale, messages: messagesZh_TW}) 169 await Promise.all([ 170 import('@formatjs/intl-pluralrules/locale-data/zh'), 171 import('@formatjs/intl-numberformat/locale-data/zh'), 172 ]) 173 break 174 } 175 default: { 176 i18n.loadAndActivate({locale, messages: messagesEn}) 177 break 178 } 179 } 180} 181 182export async function useLocaleLanguage() { 183 const {appLanguage} = useLanguagePrefs() 184 useEffect(() => { 185 dynamicActivate(sanitizeAppLanguageSetting(appLanguage)) 186 }, [appLanguage]) 187}