@codeborne/i18n-json

中文文档
0.3.7发布于 2024/02/27ISCTypeScriptES Module零依赖近 30 天下载 2839

Simple framework-neutral json-based translations with no dependencies

原始使用文档
文档目录3 节
  1. Usage
  2. Frameworks
  3. Post compilation step

@codeborne/i18n-json

Simple framework-neutral json-based translations with no dependencies.

npm install @codeborne/i18n-json

See sample on how to structure your translation files.

This format is also supported by Translate Tool GUI.

Usage

In your project create a i18n.ts which will you use for imports:

import langs from '../i18n/langs.json'
import {init} from '@codeborne/i18n-json'
export * from '@codeborne/i18n-json'

export async function initTranslations() {
  await init({langs})
}

Then call await initTranslations() in your index.ts to load the selected language file.

To translate a key, call _('your.translate.key') Or with replacements: _('users.hello', {name: 'World'})

Pluralized strings are also supported: _('trees', {count: 1}), which for English could look like: "trees": "You have {count|one:# tree|other:# trees}" and Russian would be: "trees": "У вас есть {count|one:одно дерево|few:# дерева|many:# деревьев}". Plurality keys are provided by browser's Intl.PluralRules for the language.

See tests for more examples.

Frameworks

The library is very small, has zero dependencies and is framework-agnostic. You can use with Svelte, React, Vue or anything else.

If using a SPA framework and want to switch languages on-the-fly (without page reload), you need to add a small wrapper for the _ function.

E.g. in Svelte you would use a store to set/retrieve the function and then use it as $_().

Post compilation step

You can merge translation files by adding missing keys/values from default lang to all others at build time, not needing to do fallback for untranslated keys at runtime.

i18n-compile <srcDir> <dstDir>

Then disable dynamic fallback to default in prod mode, e.g. await init({langs, fallbackToDefault: import.meta.env.DEV}).

版本与发布记录

@codeborne/i18n-json 共发布 18 个版本,首次发布于 2022/05/12;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.3.7latest2024/02/272 年前
0.3.62023/11/102 年前
0.3.52023/11/083 年前
0.3.42023/08/033 年前
0.3.32023/08/033 年前
0.3.22023/08/033 年前

关于 @codeborne/i18n-json 的常见问题

@codeborne/i18n-json 是什么?

Simple framework-neutral json-based translations with no dependencies

如何安装 @codeborne/i18n-json?

在项目目录运行 npm install @codeborne/i18n-json,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 i18n-compile,可以用 npx i18n-compile 直接运行。

@codeborne/i18n-json 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@codeborne/i18n-json 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@codeborne/i18n-json 可以商用吗?

@codeborne/i18n-json 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@codeborne/i18n-json 的下载量有多少?

根据 npm 官方下载统计,@codeborne/i18n-json 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,839 次,日均约 95 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@codeborne/i18n-json 还在维护吗?

最新版本 0.3.7 发布于 2024/02/27(2 年前);至今共发布 18 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。