Bluesky app fork with some witchin' additions 馃挮
0
fork

Configure Feed

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

at 999e52ed2d5a2c8b2f7b8747dfcfd0e2017e5eb0 210 lines 5.3 kB view raw
1import {useEffect} from 'react' 2import {i18n, type Messages} from '@lingui/core' 3 4import {sanitizeAppLanguageSetting} from '#/locale/helpers' 5import {AppLanguage} from '#/locale/languages' 6import {applySkeetReplacements} from '#/locale/linguiHook' 7import {useLanguagePrefs} from '#/state/preferences' 8 9/** 10 * We do a dynamic import of just the catalog that we need 11 */ 12export async function dynamicActivate(locale: AppLanguage) { 13 let mod: {messages: Messages} 14 15 switch (locale) { 16 case AppLanguage.an: { 17 mod = await import(`./locales/an/messages`) 18 break 19 } 20 case AppLanguage.ast: { 21 mod = await import(`./locales/ast/messages`) 22 break 23 } 24 case AppLanguage.ca: { 25 mod = await import(`./locales/ca/messages`) 26 break 27 } 28 case AppLanguage.cy: { 29 mod = await import(`./locales/cy/messages`) 30 break 31 } 32 case AppLanguage.da: { 33 mod = await import(`./locales/da/messages`) 34 break 35 } 36 case AppLanguage.de: { 37 mod = await import(`./locales/de/messages`) 38 break 39 } 40 case AppLanguage.el: { 41 mod = await import(`./locales/el/messages`) 42 break 43 } 44 case AppLanguage.en: { 45 mod = await import(`./locales/en/messages`) 46 const transformedEnMessages = applySkeetReplacements(mod.messages, locale) 47 i18n.load(locale, transformedEnMessages) 48 i18n.activate(locale) 49 break 50 } 51 case AppLanguage.en_GB: { 52 mod = await import(`./locales/en-GB/messages`) 53 const transformedEnGbMessages = applySkeetReplacements( 54 mod.messages, 55 locale, 56 ) 57 i18n.load(locale, transformedEnGbMessages) 58 i18n.activate(locale) 59 break 60 } 61 case AppLanguage.eo: { 62 mod = await import(`./locales/eo/messages`) 63 break 64 } 65 case AppLanguage.es: { 66 mod = await import(`./locales/es/messages`) 67 break 68 } 69 case AppLanguage.eu: { 70 mod = await import(`./locales/eu/messages`) 71 break 72 } 73 case AppLanguage.fi: { 74 mod = await import(`./locales/fi/messages`) 75 break 76 } 77 case AppLanguage.fr: { 78 mod = await import(`./locales/fr/messages`) 79 break 80 } 81 case AppLanguage.fy: { 82 mod = await import(`./locales/fy/messages`) 83 break 84 } 85 case AppLanguage.ga: { 86 mod = await import(`./locales/ga/messages`) 87 break 88 } 89 case AppLanguage.gd: { 90 mod = await import(`./locales/gd/messages`) 91 break 92 } 93 case AppLanguage.gl: { 94 mod = await import(`./locales/gl/messages`) 95 break 96 } 97 case AppLanguage.hi: { 98 mod = await import(`./locales/hi/messages`) 99 break 100 } 101 case AppLanguage.hu: { 102 mod = await import(`./locales/hu/messages`) 103 break 104 } 105 case AppLanguage.ia: { 106 mod = await import(`./locales/ia/messages`) 107 break 108 } 109 case AppLanguage.id: { 110 mod = await import(`./locales/id/messages`) 111 break 112 } 113 case AppLanguage.it: { 114 mod = await import(`./locales/it/messages`) 115 break 116 } 117 case AppLanguage.ja: { 118 mod = await import(`./locales/ja/messages`) 119 break 120 } 121 case AppLanguage.km: { 122 mod = await import(`./locales/km/messages`) 123 break 124 } 125 case AppLanguage.ko: { 126 mod = await import(`./locales/ko/messages`) 127 break 128 } 129 case AppLanguage.ne: { 130 mod = await import(`./locales/ne/messages`) 131 break 132 } 133 case AppLanguage.nl: { 134 mod = await import(`./locales/nl/messages`) 135 break 136 } 137 case AppLanguage.pl: { 138 mod = await import(`./locales/pl/messages`) 139 break 140 } 141 case AppLanguage.pt_BR: { 142 mod = await import(`./locales/pt-BR/messages`) 143 break 144 } 145 case AppLanguage.pt_PT: { 146 mod = await import(`./locales/pt-PT/messages`) 147 break 148 } 149 case AppLanguage.ro: { 150 mod = await import(`./locales/ro/messages`) 151 break 152 } 153 case AppLanguage.ru: { 154 mod = await import(`./locales/ru/messages`) 155 break 156 } 157 case AppLanguage.sv: { 158 mod = await import(`./locales/sv/messages`) 159 break 160 } 161 case AppLanguage.th: { 162 mod = await import(`./locales/th/messages`) 163 break 164 } 165 case AppLanguage.tr: { 166 mod = await import(`./locales/tr/messages`) 167 break 168 } 169 case AppLanguage.uk: { 170 mod = await import(`./locales/uk/messages`) 171 break 172 } 173 case AppLanguage.vi: { 174 mod = await import(`./locales/vi/messages`) 175 break 176 } 177 case AppLanguage.zh_CN: { 178 mod = await import(`./locales/zh-CN/messages`) 179 break 180 } 181 case AppLanguage.zh_HK: { 182 mod = await import(`./locales/zh-HK/messages`) 183 break 184 } 185 case AppLanguage.zh_TW: { 186 mod = await import(`./locales/zh-TW/messages`) 187 break 188 } 189 default: { 190 mod = await import(`./locales/en/messages`) 191 const transformedDefaultMessages = applySkeetReplacements( 192 mod.messages, 193 locale, 194 ) 195 i18n.load(locale, transformedDefaultMessages) 196 i18n.activate(locale) 197 break 198 } 199 } 200} 201 202export function useLocaleLanguage() { 203 const {appLanguage} = useLanguagePrefs() 204 useEffect(() => { 205 const sanitizedLanguage = sanitizeAppLanguageSetting(appLanguage) 206 207 document.documentElement.lang = sanitizedLanguage 208 dynamicActivate(sanitizedLanguage) 209 }, [appLanguage]) 210}