feat: i18n switcher in app-frontend (#4990)

* feat: app i18n stuff

* feat: locale switching on load

* feat: db migration

* feat: polish + fade indicator impl onto TabbedModal

* fix: prepr checks

* fix: remove staging lock for language switching

* fix: lint
This commit is contained in:
Calum H.
2025-12-29 19:41:39 +00:00
committed by GitHub
parent 30106d5f82
commit 042451bad6
21 changed files with 624 additions and 474 deletions

View File

@@ -611,6 +611,48 @@ export const commonProjectSettingsMessages = defineMessages({
},
})
export const languageSelectorMessages = defineMessages({
platformApp: {
id: 'settings.language.platform.app',
defaultMessage: 'app',
},
platformSite: {
id: 'settings.language.platform.site',
defaultMessage: 'site',
},
languagesDescription: {
id: 'settings.language.description',
defaultMessage:
'Choose your preferred language for the {platform}. Translations are contributed by volunteers <crowdin-link>on Crowdin</crowdin-link>.',
},
languageWarning: {
id: 'settings.language.warning',
defaultMessage:
'Changing the {platform} language may cause some content to appear in English if a translation is not available. The {platform} is not yet fully translated, so some content may remain in English for certain languages.',
},
noResults: {
id: 'settings.language.languages.search.no-results',
defaultMessage: 'No languages match your search.',
},
searchFieldPlaceholder: {
id: 'settings.language.languages.search-field.placeholder',
defaultMessage: 'Search for a language...',
},
searchResultsAnnouncement: {
id: 'settings.language.languages.search-results-announcement',
defaultMessage:
'{matches, plural, =0 {No languages match} one {# language matches} other {# languages match}} your search.',
},
standardLanguages: {
id: 'settings.language.categories.default',
defaultMessage: 'Standard languages',
},
searchResults: {
id: 'settings.language.categories.search-result',
defaultMessage: 'Search results',
},
})
export const paymentMethodMessages = defineMessages({
amazon_pay: {
id: 'omorphia.component.purchase_modal.payment_method_type.amazon_pay',

View File

@@ -0,0 +1,8 @@
/**
* Checks if any modifier key (Ctrl, Alt, Meta, or Shift) is held down during an event.
*/
export function isModifierKeyDown(
e: Pick<KeyboardEvent, 'ctrlKey' | 'altKey' | 'metaKey' | 'shiftKey'>,
): boolean {
return e.ctrlKey || e.altKey || e.metaKey || e.shiftKey
}

View File

@@ -1,5 +1,6 @@
export * from './auto-icons'
export * from './common-messages'
export * from './events'
export * from './game-modes'
export * from './notices'
export * from './savable'