i18next:简化 JavaScript 应用多语言支持

在网页开发中,让应用支持多种语言非常重要,而 i18next 这个强大的工具就是为此而生的。它专门为 JavaScript 设计,提供了一系列功能,让开发者可以轻松地实现应用的多语言切换。

i18next 最初包含一个名为 i18next-client 的客户端库,但从 v2 版本开始,它已经被整合到主库中,开发者无需再单独安装和引用。

i18next 的主要优点包括:

  • 灵活的翻译管理: 使用简单的 JSON 格式定义翻译,并支持复杂的嵌套结构、变量替换以及根据上下文调整翻译内容。
  • 按需加载: 仅在需要时加载语言资源,加快页面加载速度。
  • 自动识别语言: 自动检测用户浏览器的首选语言,并允许手动设置。
  • 处理复数形式: 支持多种语言的复数规则,无需编写额外代码。
  • 模块化管理: 使用命名空间将不同类型的翻译(如错误信息、界面文本等)分类管理,方便维护。
  • 备用机制: 当找不到特定语言的翻译时,自动使用默认语言或指定的备选语言。
  • 变量替换: 支持在字符串中使用变量,例如将 "你好,{username}" 替换为实际的用户名。
  • 上下文感知: 根据上下文显示不同的翻译版本。
  • 翻译拼接: 将多个翻译片段组合成更复杂的文本。
  • 后端支持: 可与后端服务配合,动态获取翻译资源。
  • 与主流框架集成: 与 React、Angular、Vue 等流行前端框架无缝集成,提供相应的绑定和指令。

现在,开发者只需安装 i18next 即可在服务器端和客户端使用它:

npm install i18next

这简化了项目依赖和配置,也减少了版本不一致带来的问题,让项目维护更加轻松。

zip
前端开源库-i18next-client.zip 预估大小:98个文件
folder
i18next-master 文件夹
file
.coveralls.yml 46B
file
.eslintrc 541B
file
rollup.config.js 1KB
folder
.github 文件夹
file
FUNDING.yml 27B
file
.prettierignore 47B
folder
src 文件夹
file
logger.js 1KB
file
ResourceStore.js 3KB
file
Interpolator.js 6KB
file
BackendConnector.js 6KB
file
defaults.js 3KB
file
utils.js 3KB
file
postProcessor.js 366B
file
i18next.js 11KB
file
EventEmitter.js 1KB
file
LanguageUtils.js 4KB
file
PluralResolver.js 6KB
file
Translator.js 13KB
file
index.js 61B
file
.babelrc 48B
folder
.circleci 文件夹
file
config.yml 617B
file
.npmignore 193B
file
.codeclimate.yml 641B
file
tsconfig.json 491B
file
sample.html 1KB
file
LICENSE 1KB
folder
assets 文件夹
file
locize_sponsor_240.gif 3KB
folder
test 文件夹
file
pluralResolver.spec.js 8KB
file
utils.spec.js 641B
folder
translator 文件夹
file
translator.translate.missing.spec.js 3KB
file
translator.translate.plural.spec.js 3KB
file
translator.exists.spec.js 2KB
file
translator.translate.escape.spec.js 2KB
file
translator.getResource.spec.js 1KB
file
translator.translate.returnObject.spec.js 3KB
file
translator.translate.context.spec.js 3KB
file
translator.translate.skipInterpolation.spec.js 5KB
file
translator.translate.updateMissing.spec.js 2KB
file
translator.translate.defaultValue.spec.js 2KB
file
translator.translate.combination.spec.js 2KB
file
translator.translate.systemProperties.spec.js 2KB
file
translator.fallbackLng.spec.js 2KB
file
translator.translate.separator.spec.js 2KB
file
translator.cimode.spec.js 2KB
file
translator.translate.array.spec.js 2KB
file
translator.translate.noSeparator.spec.js 2KB
file
translator.translate.spec.js 2KB
file
languageUtils.spec.js 7KB
folder
locales 文件夹
folder
en 文件夹
file
nonjson.json 30B
file
test.json 23B
file
resourceStore.spec.js 6KB
file
i18next.promises.spec.js 1KB
folder
backend 文件夹
file
backendMock.js 1KB
file
backendConnector.load.retry.spec.js 1KB
file
logger.spec.js 1KB
file
i18next.defaults.spec.js 3KB
file
postProcessor.spec.js 647B
folder
backward 文件夹
folder
locales 文件夹
folder
de 文件夹
file
translation.json 179B
folder
fr 文件夹
file
translation.json 79B
folder
en-US 文件夹
file
ns.common.json 105B
file
ns.special.json 107B
file
translation.json 134B
folder
en 文件夹
file
ns.common.json 142B
file
ns.special.json 95B
file
translation.json 179B
folder
dev 文件夹
file
ns.common.json 148B
file
ns.special.json 99B
file
translation.json 122B
folder
compatibility 文件夹
file
v1.js 5KB
file
v1.11.1.compat.js 99KB
file
i18next.spec.js 2KB
file
eventEmitter.spec.js 2KB
file
interpolation.spec.js 13KB
folder
typescript 文件夹
file
t.test.ts 4KB
file
init.test.ts 10KB
file
mock.test.ts 132B
file
exposed.test.ts 411B
file
exposedLegacy.test.ts 512B
file
tGeneric.test.ts 2KB
file
exists.test.ts 250B
file
interpolator.test.ts 446B
folder
nonEsModuleInterop 文件夹
file
exposed.test.ts 516B
file
modules.test.ts 1KB
file
.prettierrc 146B
file
tslint.json 111B
file
i18next.js 78KB
file
README.md 3KB
file
index.d.ts 28KB
file
i18next.min.js 36KB
file
.editorconfig 180B
file
.gitignore 313B
file
index.js 123B
file
karma.backward.conf.js 1KB
file
tsconfig.nonEsModuleInterop.json 251B
file
karma.conf.js 1KB
file
CHANGELOG.md 36KB
file
.eslintignore 39B
file
package-lock.json 405KB
file
package.json 4KB
...
zip 文件大小:226.97KB