dify
This commit is contained in:
48
dify/web/i18n-config/DEV.md
Normal file
48
dify/web/i18n-config/DEV.md
Normal file
@@ -0,0 +1,48 @@
|
||||
## library
|
||||
|
||||
- i18next
|
||||
- react-i18next
|
||||
|
||||
## hooks
|
||||
|
||||
- useTranslation
|
||||
- useGetLanguage
|
||||
- useI18N
|
||||
- useRenderI18nObject
|
||||
|
||||
## impl
|
||||
|
||||
- App Boot
|
||||
- app/layout.tsx load i18n and init context
|
||||
- use `<I18nServer/>`
|
||||
- read locale with `getLocaleOnServer` (in node.js)
|
||||
- locale from cookie, or browser request header
|
||||
- only used in client app init and 2 server code(plugin desc, datasets)
|
||||
- use `<I18N/>`
|
||||
- init i18n context
|
||||
- `setLocaleOnClient`
|
||||
- `changeLanguage` (defined in i18n/i18next-config, also init i18n resources (side effects))
|
||||
- is `i18next.changeLanguage`
|
||||
- all languages text is merge & load in FrontEnd as .js (see i18n/i18next-config)
|
||||
- i18n context
|
||||
- `locale` - current locale code (ex `eu-US`, `zh-Hans`)
|
||||
- `i18n` - useless
|
||||
- `setLocaleOnClient` - used by App Boot and user change language
|
||||
|
||||
### load i18n resources
|
||||
|
||||
- client: i18n/i18next-config.ts
|
||||
- ns = camalCase(filename)
|
||||
- ex: `app/components/datasets/create/embedding-process/index.tsx`
|
||||
- `t('datasetSettings.form.retrievalSetting.title')`
|
||||
- server: i18n/server.ts
|
||||
- ns = filename
|
||||
- ex: `app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/settings/page.tsx`
|
||||
- `translate(locale, 'dataset-settings')`
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] ts docs for useGetLanguage
|
||||
- [ ] ts docs for useI18N
|
||||
- [ ] client docs for i18n
|
||||
- [ ] server docs for i18n
|
||||
Reference in New Issue
Block a user