@kordar-lib/i18n
v2.0.1
Published
i18next 驱动的轻量国际化辅助库:提供可插拔的包管理(本地/远程语言包)、统一的 t/ttExist API、通用字段/参数文案工具,并暴露底层 i18next 实例便于扩展。
Readme
@kordar-lib/i18n
i18next 驱动的轻量国际化辅助库:提供可插拔的包管理(本地/远程语言包)、统一的 t/ttExist API、通用字段/参数文案工具,并暴露底层 i18next 实例便于扩展。
导出
- I18nextI18n、defaultInitialization
- setLanguage、language、setWritingDirection、setHtml
- remoteLoadPkg、loadLocalPackage、getActivePkg、getResourceBundle
- tt、ttExist(翻译/存在性检测)
- tfield、tparam、tcommonField、tcommonParam(领域文案工具)
- i18next(底层实例访问)
快速开始
import { i18next, defaultInitialization, loadLocalPackage, remoteLoadPkg, setLanguage } from '@kordar-lib/i18n'
import { initReactI18next } from 'react-i18next'
// 1) 初始化 i18next
const ins = i18next()
ins.use(initReactI18next).init({ ...defaultInitialization, debug: false, fallbackLng: 'zh-CN' })
// 2) 加载本地可选语言列表
loadLocalPackage([
{ key: 'en', value: 'en', name: 'English' },
{ key: 'zh-CN', value: 'zh-CN', name: '简体中文' }
])
// 3) 远程加载语言包(按需)
remoteLoadPkg('zh-CN', () => Promise.resolve({ code: 200, data: { Page: { Hello: '你好' } } }))
// 4) 切换语言
setLanguage('zh-CN')组件内翻译:
import { tt, tfield, tparam } from '@kordar-lib/i18n'
tt('Hello', 'Page') // "你好"
tfield({ fields: { name: '名称' } }, 'name') // "名称"
tparam(undefined, 'size', 'Size') // "Size"(默认)写字方向支持(如阿语):
import { setWritingDirection } from '@kordar-lib/i18n'
setWritingDirection('ar', 'rtl')约定命名空间
- 推荐使用 Page/Message 等命名空间组织页面与通用文案
- t(keys, ns, default?) 与 tt/ttExist 在命名空间下工作
构建与类型(Monorepo:npm)
在仓库根目录执行:
npm install
npm run -w @kordar-lib/i18n build类型检查:
npm exec -w @kordar-lib/i18n -- tsc -p tsconfig.json --noEmit许可证
MIT
