From 1c8bdb81f7be2f06ee3c9ced019b9091661588eb Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Wed, 19 Jun 2024 20:47:17 +0700 Subject: [PATCH] UBERF-7327: Chinese language selector (#5862) Signed-off-by: Andrey Sobolev --- dev/prod/public/branding.json | 2 +- dev/prod/src/platform.ts | 7 ++++--- packages/ui/lang/en.json | 9 ++++----- packages/ui/lang/es.json | 7 ++++--- packages/ui/lang/pt.json | 7 ++++--- packages/ui/lang/ru.json | 7 ++++--- packages/ui/lang/zh.json | 11 +++++------ .../ui/src/components/internal/LangSelector.svelte | 3 ++- packages/ui/src/plugin.ts | 1 + tests/branding-test.json | 2 +- 10 files changed, 30 insertions(+), 26 deletions(-) diff --git a/dev/prod/public/branding.json b/dev/prod/public/branding.json index 9108755de3..ec27f107a3 100644 --- a/dev/prod/public/branding.json +++ b/dev/prod/public/branding.json @@ -1,7 +1,7 @@ { "localhost:8080": { "title": "Platform", - "languages": "en,ru,pt,es", + "languages": "en,ru,pt,es,zh", "defaultLanguage": "en", "defaultApplication": "tracker", "defaultSpace": "tracker:project:DefaultProject", diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index 136cd66c3d..f45b741020 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -189,14 +189,15 @@ function configureI18n(): void { export async function configurePlatform() { setMetadata(platform.metadata.LoadHelper, async (loader) => { - for (let i = 0; i < 3; i++) { + for (let i = 0; i < 5; i++) { try { return loader() } catch (err: any) { - if (err.message.includes('Loading chunk') && i != 2) { + if (err.message.includes('Loading chunk') && i != 4) { continue } Analytics.handleError(err) + location.reload() } } }) @@ -265,7 +266,7 @@ export async function configurePlatform() { setMetadata(uiPlugin.metadata.DefaultApplication, login.component.LoginApp) setMetadata(contactPlugin.metadata.LastNameFirst, myBranding.lastNameFirst === 'true' ?? false) - const languages = myBranding.languages ? (myBranding.languages as string).split(',').map((l) => l.trim()) : ['en', 'ru', 'es', 'pt'] + const languages = myBranding.languages ? (myBranding.languages as string).split(',').map((l) => l.trim()) : ['en', 'ru', 'es', 'pt', 'zh'] setMetadata(uiPlugin.metadata.Languages, languages) setMetadata( diff --git a/packages/ui/lang/en.json b/packages/ui/lang/en.json index 72b9fbd5ad..85af4b0412 100644 --- a/packages/ui/lang/en.json +++ b/packages/ui/lang/en.json @@ -47,9 +47,10 @@ "DueDatePopupDescription": "{value, plural, =0 {Today} =1 {Tomorrow} other {# days remaining}}", "DueDatePopupOverdueDescription": "{value, plural, =1 {1 day overdue} other {# days overdue}}", "English": "English", - "Russian": "Russian", - "Portuguese": "Portuguese", - "Spanish": "Spanish", + "Russian": "Русский", + "Portuguese": "Português", + "Spanish": "Español", + "Chinese": "中文", "MinutesBefore": "{minutes, plural, =1 {a minute before} other {# minutes before}}", "HoursBefore": "{hours, plural, =1 {an hour before} other {# hours before}}", "DaysBefore": "{days, plural, =1 {a day before} other {# days before}}", @@ -85,8 +86,6 @@ "ThemeSystem": "System", "NoTimeZonesFound": "No time zones found", "Selected": "Selected:", - "Spanish": "Spanish", - "Portuguese": "Portuguese", "Submit": "Submit", "NextStep": "Next step", "TypeHere": "Type here..." diff --git a/packages/ui/lang/es.json b/packages/ui/lang/es.json index 23e749ab66..2727be045d 100644 --- a/packages/ui/lang/es.json +++ b/packages/ui/lang/es.json @@ -46,10 +46,11 @@ "DueDatePopupOverdueTitle": "Debía ser para el {value}", "DueDatePopupDescription": "{value, plural, =0 {Hoy} =1 {Mañana} other {# días restantes}}", "DueDatePopupOverdueDescription": "{value, plural, =1 {1 día de retraso} other {# días de retraso}}", - "English": "Inglés", - "Russian": "Ruso", - "Portuguese": "Portugués", + "English": "English", + "Russian": "Русский", + "Portuguese": "Português", "Spanish": "Español", + "Chinese": "中文", "MinutesBefore": "{minutes, plural, =1 {un minuto antes} other {# minutos antes}}", "HoursBefore": "{hours, plural, =1 {una hora antes} other {# horas antes}}", "DaysBefore": "{days, plural, =1 {un día antes} other {# días antes}}", diff --git a/packages/ui/lang/pt.json b/packages/ui/lang/pt.json index efceb804d7..75b38005c6 100644 --- a/packages/ui/lang/pt.json +++ b/packages/ui/lang/pt.json @@ -46,10 +46,11 @@ "DueDatePopupOverdueTitle": "Venceu em {value}", "DueDatePopupDescription": "{value, plural, =0 {Hoje} =1 {Amanhã} other {# dias restantes}}", "DueDatePopupOverdueDescription": "{value, plural, =1 {1 dia em atraso} other {# dias em atraso}}", - "English": "Inglês", - "Russian": "Russo", + "English": "English", + "Russian": "Русский", "Portuguese": "Português", - "Spanish": "Espanhol", + "Spanish": "Español", + "Chinese": "中文", "MinutesBefore": "{minutes, plural, =1 {um minuto antes} other {# minutos antes}}", "HoursBefore": "{hours, plural, =1 {uma hora antes} other {# horas antes}}", "DaysBefore": "{days, plural, =1 {um dia antes} other {# dias antes}}", diff --git a/packages/ui/lang/ru.json b/packages/ui/lang/ru.json index 6e0492a4bc..91d43c6419 100644 --- a/packages/ui/lang/ru.json +++ b/packages/ui/lang/ru.json @@ -46,10 +46,11 @@ "DueDatePopupOverdueTitle": "Должно было завершится {value}", "DueDatePopupDescription": "{value, plural, =0 {Сегодня} =1 {Завтра} one {# день остался} few {# дня осталось} other {# дней осталось}}", "DueDatePopupOverdueDescription": "{value, plural, one {# день опоздания} few {# дня опоздания} other {# дней опоздания}}", - "English": "Английский", + "English": "English", "Russian": "Русский", - "Spanish": "Испанский", - "Portuguese": "Португальский", + "Spanish": "Español", + "Portuguese": "Português", + "Chinese": "中文", "MinutesBefore": "{minutes, plural, =1 {за минуту} one {за # минуту} few {за # минуты} other {за # минут}}", "HoursBefore": "{hours, plural, =1 {за час} one {за # час} few {за # часа} other {за # часов}}", "DaysBefore": "{days, plural, =1 {за день} one {за # день} few {за # дня} other {за # дней}}", diff --git a/packages/ui/lang/zh.json b/packages/ui/lang/zh.json index 57248f0e47..473ca54aac 100644 --- a/packages/ui/lang/zh.json +++ b/packages/ui/lang/zh.json @@ -46,10 +46,11 @@ "DueDatePopupOverdueTitle": "原定于 {value}", "DueDatePopupDescription": "{value, plural, =0 {今天} =1 {明天} other {剩余 # 天}}", "DueDatePopupOverdueDescription": "{value, plural, =1 {过期 1 天} other {# 天过期}}", - "English": "英语", - "Russian": "俄语", - "Portuguese": "葡萄牙语", - "Spanish": "西班牙语", + "English": "English", + "Russian": "Русский", + "Portuguese": "Português", + "Spanish": "Español", + "Chinese": "中文", "MinutesBefore": "{minutes, plural, =1 {一分钟前} other {# 分钟前}}", "HoursBefore": "{hours, plural, =1 {一小时前} other {# 小时前}}", "DaysBefore": "{days, plural, =1 {一天前} other {# 天前}}", @@ -85,8 +86,6 @@ "ThemeSystem": "系统", "NoTimeZonesFound": "未找到时区", "Selected": "已选:", - "Spanish": "西班牙语", - "Portuguese": "葡萄牙语", "Submit": "提交", "NextStep": "下一步", "TypeHere": "在此输入..." diff --git a/packages/ui/src/components/internal/LangSelector.svelte b/packages/ui/src/components/internal/LangSelector.svelte index 01ba5ab06c..cd0c2e2865 100644 --- a/packages/ui/src/components/internal/LangSelector.svelte +++ b/packages/ui/src/components/internal/LangSelector.svelte @@ -28,7 +28,8 @@ { id: 'en', label: ui.string.English, logo: '🇺🇸' }, { id: 'pt', label: ui.string.Portuguese, logo: '🇵🇹' }, { id: 'es', label: ui.string.Spanish, logo: '🇪🇸' }, - { id: 'ru', label: ui.string.Russian, logo: '🇷🇺' } + { id: 'ru', label: ui.string.Russian, logo: '🇷🇺' }, + { id: 'zh', label: ui.string.Chinese, logo: '🇨🇳' } ].filter((lang) => uiLangs.has(lang.id)) if (langs.findIndex((l) => l.id === currentLanguage) < 0 && langs.length !== 0) { setLanguage(langs[0].id) diff --git a/packages/ui/src/plugin.ts b/packages/ui/src/plugin.ts index 17282da71f..4d2eeb56ee 100644 --- a/packages/ui/src/plugin.ts +++ b/packages/ui/src/plugin.ts @@ -71,6 +71,7 @@ export const uis = plugin(uiId, { Russian: '' as IntlString, Spanish: '' as IntlString, Portuguese: '' as IntlString, + Chinese: '' as IntlString, MinutesBefore: '' as IntlString, HoursBefore: '' as IntlString, DaysBefore: '' as IntlString, diff --git a/tests/branding-test.json b/tests/branding-test.json index b6fd84be6f..63aa30da58 100644 --- a/tests/branding-test.json +++ b/tests/branding-test.json @@ -1,7 +1,7 @@ { "localhost:8083": { "title": "Platform", - "languages": "en,ru,pt,es", + "languages": "en,ru,pt,es,zh", "defaultLanguage": "en", "defaultApplication": "tracker", "defaultSpace": "tracker:project:DefaultProject",