Add Aragonese language ('an') support and l10n (#6638)

* Update languages.ts

* Update i18n.web.ts

* Update i18n.ts

* Update helpers.ts

* Create messages.po

* Update lingui.config.js

* Update dates.ts

* Add files via upload

* Update src/components/hooks/dates.ts

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

* Update src/components/hooks/dates.ts

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

* Update i18n.ts

* Update messages.po

* Update src/locale/i18n.ts

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>

---------

Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
This commit is contained in:
Juan Pablo Martínez
2024-11-27 04:06:47 +01:00
committed by GitHub
parent 8cbe68306d
commit 5929c2678c
7 changed files with 8132 additions and 0 deletions
+1
View File
@@ -2,6 +2,7 @@
module.exports = {
locales: [
'en',
'an',
'ca',
'de',
'en-GB',
+1
View File
@@ -44,6 +44,7 @@ import {useLanguagePrefs} from '#/state/preferences'
*/
const locales: Record<AppLanguage, Locale | undefined> = {
en: undefined,
an: undefined,
ca,
de,
['en-GB']: enGB,
+2
View File
@@ -119,6 +119,8 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage {
switch (fixLegacyLanguageCode(lang)) {
case 'en':
return AppLanguage.en
case 'an':
return AppLanguage.an
case 'ca':
return AppLanguage.ca
case 'de':
+9
View File
@@ -11,6 +11,7 @@ import {i18n} from '@lingui/core'
import {sanitizeAppLanguageSetting} from '#/locale/helpers'
import {AppLanguage} from '#/locale/languages'
import {messages as messagesAn} from '#/locale/locales/an/messages'
import {messages as messagesCa} from '#/locale/locales/ca/messages'
import {messages as messagesDe} from '#/locale/locales/de/messages'
import {messages as messagesEn} from '#/locale/locales/en/messages'
@@ -44,6 +45,14 @@ import {useLanguagePrefs} from '#/state/preferences'
*/
export async function dynamicActivate(locale: AppLanguage) {
switch (locale) {
case AppLanguage.an: {
i18n.loadAndActivate({locale, messages: messagesAn})
await Promise.all([
import('@formatjs/intl-pluralrules/locale-data/an'),
import('@formatjs/intl-numberformat/locale-data/es'),
])
break
}
case AppLanguage.ca: {
i18n.loadAndActivate({locale, messages: messagesCa})
await Promise.all([
+4
View File
@@ -12,6 +12,10 @@ export async function dynamicActivate(locale: AppLanguage) {
let mod: any
switch (locale) {
case AppLanguage.an: {
mod = await import(`./locales/an/messages`)
break
}
case AppLanguage.ca: {
mod = await import(`./locales/ca/messages`)
break
+2
View File
@@ -6,6 +6,7 @@ interface Language {
export enum AppLanguage {
en = 'en',
an = 'an',
ca = 'ca',
de = 'de',
en_GB = 'en-GB',
@@ -40,6 +41,7 @@ interface AppLanguageConfig {
export const APP_LANGUAGES: AppLanguageConfig[] = [
{code2: AppLanguage.en, name: 'English'},
{code2: AppLanguage.an, name: 'Aragonés Aragonese'},
{code2: AppLanguage.ca, name: 'Català Catalan'},
{code2: AppLanguage.de, name: 'Deutsch German'},
{code2: AppLanguage.en_GB, name: 'English (UK)'},
File diff suppressed because it is too large Load Diff