From 691bdb3ac9b389b0063c60d0d9767c548d27275d Mon Sep 17 00:00:00 2001 From: Xiao Yijun Date: Mon, 10 Oct 2022 09:43:13 +0800 Subject: [PATCH] refactor: replace `LanguageKey` with `LanguageTag` (#2080) --- packages/console/src/i18n/init.ts | 4 +-- .../console/src/include.d/react-i18next.d.ts | 7 ++-- packages/console/src/pages/Settings/index.tsx | 10 +++--- packages/demo-app/package.json | 3 +- packages/demo-app/src/i18n/init.ts | 4 +-- .../demo-app/src/include.d/react-i18next.d.ts | 7 ++-- packages/phrases/package.json | 5 +-- packages/phrases/src/index.ts | 32 ++++++++++++++++--- packages/phrases/src/locales/fr/index.ts | 4 +-- packages/phrases/src/locales/ko-kr/index.ts | 4 +-- packages/phrases/src/locales/pt-pt/index.ts | 4 +-- packages/phrases/src/locales/tr-tr/index.ts | 4 +-- packages/phrases/src/locales/zh-cn/index.ts | 4 +-- packages/phrases/src/types.ts | 22 ++----------- pnpm-lock.yaml | 11 +++++-- 15 files changed, 67 insertions(+), 58 deletions(-) diff --git a/packages/console/src/i18n/init.ts b/packages/console/src/i18n/init.ts index 2fec238f9..aa65cd7aa 100644 --- a/packages/console/src/i18n/init.ts +++ b/packages/console/src/i18n/init.ts @@ -1,10 +1,10 @@ -import type { LanguageKey } from '@logto/core-kit'; +import { LanguageTag } from '@logto/language-kit'; import resources from '@logto/phrases'; import i18next from 'i18next'; import LanguageDetector from 'i18next-browser-languagedetector'; import { initReactI18next } from 'react-i18next'; -const initI18n = async (language?: LanguageKey) => +const initI18n = async (language?: LanguageTag) => i18next .use(initReactI18next) .use(LanguageDetector) diff --git a/packages/console/src/include.d/react-i18next.d.ts b/packages/console/src/include.d/react-i18next.d.ts index 727283636..119678c7a 100644 --- a/packages/console/src/include.d/react-i18next.d.ts +++ b/packages/console/src/include.d/react-i18next.d.ts @@ -1,13 +1,10 @@ // https://react.i18next.com/latest/typescript#create-a-declaration-file -import { Translation, Errors } from '@logto/phrases'; +import { LocalPhrase } from '@logto/phrases'; declare module 'react-i18next' { interface CustomTypeOptions { allowObjectInHTMLChildren: true; - resources: { - translation: Translation; - errors: Errors; - }; + resources: LocalPhrase; } } diff --git a/packages/console/src/pages/Settings/index.tsx b/packages/console/src/pages/Settings/index.tsx index b62eb39ab..616ee85d2 100644 --- a/packages/console/src/pages/Settings/index.tsx +++ b/packages/console/src/pages/Settings/index.tsx @@ -1,5 +1,7 @@ -import { getDefaultLanguage } from '@logto/core-kit'; -import { languageOptions } from '@logto/phrases'; +import { + builtInLanguageOptions as consoleBuiltInLanguageOptions, + getDefaultLanguageTag, +} from '@logto/phrases'; import { AppearanceMode } from '@logto/schemas'; import classNames from 'classnames'; import { Controller, useForm } from 'react-hook-form'; @@ -25,7 +27,7 @@ const Settings = () => { i18n: { language }, } = useTranslation(undefined, { keyPrefix: 'admin_console' }); - const defaultLanguage = getDefaultLanguage(language); + const defaultLanguage = getDefaultLanguageTag(language); const { data, error, update, isLoading, isLoaded } = useUserPreferences(); const { @@ -63,7 +65,7 @@ const Settings = () => { render={({ field: { value, onChange } }) => (