# y18n 中文文档

规范地址：https://npmcn.com/package/y18n/

版本：5\.0\.8
npm 元数据更新时间：2026-10-31T05:25:47.651Z
中文译文更新时间：2026-11-04T16:11:56.439Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/y18n
原文对照：https://npmcn.com/package/y18n/?lang=original
项目主页：https://github.com/yargs/y18n
源码仓库：https://github.com/yargs/y18n

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：23.4 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- Node.js 要求：\>=10
- 运行依赖：0 个
- 首次发布：2015-07-27T07:19:00.467Z
- 最新版本发布：2021-04-07T18:57:33.969Z
- 近 30 天下载量：784097669（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 0 个）

## 中文简介

yargs使用的基本国际化库

## 安装

```sh
npm install y18n
```

也可以使用：`pnpm add y18n`、`yarn add y18n`、`bun add y18n`

## README

# y18n

[![NPM version](https://img.shields.io/npm/v/y18n.svg)](https://npmjs.org/package/y18n) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org/)

yargs使用的基本国际化库。

灵感来自 [国际化](https://www.npmjs.com/package/i18n)。

## 例子

_简单的字符串翻译:_

```js
const __ = require('y18n')().__;

console.log(__('my awesome string %s', 'foo'));
```

输出：

`my awesome string foo`

_使用标记的模板文字_

```js
const __ = require('y18n')().__;

const str = 'foo';

console.log(__`my awesome string ${str}`);
```

输出：

`my awesome string foo`

_多元化支持:_

```js
const __n = require('y18n')().__n;

console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'));
```

输出：

`2 fishes foo`

## Deno例子

的 `v5` `y18n` 支持 [Deno](https://github.com/denoland/deno)：

```typescript
import y18n from "https://deno.land/x/y18n/deno.ts";

const __ = y18n({
  locale: 'pirate',
  directory: './test/locales'
}).__

console.info(__`Hi, ${'Ben'} ${'Coe'}!`)
```

您将需要运行 `--allow-read` 加载替代区域设置。

## JSON语言文件

JSON语言文件应存储在 `./locales` 文件夹。 文件名对应于区域设置，例如， `en.json`， `pirate.json`。

当第一次观察到字符串时，它们将是 添加到与当前区域设置对应的JSON文件。

## 方法

### 需要 ('y18n')(配置)

使用提供的配置创建y18n的实例，选项包括:

-   `directory`: 区域设置目录，默认 `./locales`。
-   `updateFiles`: 应该在文件中更新新观察到的字符串，默认 `true`。
-   `locale`: 应该使用什么区域设置。
-   `fallbackToLanguage`: 应该回退到仅限语言的文件 (例如 `en.json`） 如果与区域设置匹配的文件不存在 (例如 `en_US.json`）， 默认的 `true`。

### y18n.\_\_(str, arg, arg, arg)

打印本地化的字符串， `%s` 将替换为 `arg`年代。

此函数也可以用作模板文字的标记。你可以用它 是这样的: `` __`hello ${'world'}` ``.这将相当于 `__('hello %s', 'world')`。

### y18n.\_\_N (单弦，pluralString，count，arg，arg，arg)

使用适当的复数形式打印本地化字符串。如果 `%d` 被提供 在字符串中， `count` 将替换此占位符。

### y18n.setLocale(str)

设置当前使用的区域设置。

### y18n.getLocale()

当前使用的是什么语言环境？

### y18n.updateLocale(obj)

使用中的键值对更新当前区域设置 `obj`。

## 支持的Node.js版本

在这个生态系统中，图书馆尽最大努力跟踪 [Node.js的发布时间表](https://nodejs.org/en/about/releases/)． 这是 [一个 发表我们认为这很重要的原因](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a)。

## 许可证

ISC

## 常见问题

### y18n 是什么？

yargs使用的基本国际化库

### 如何安装 y18n？

在项目目录运行 npm install y18n，或使用 pnpm add / yarn add / bun add。

### y18n 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/y18n 是否存在。

### y18n 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### y18n 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=10。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### y18n 可以商用吗？

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

### y18n 的下载量有多少？

根据 npm 官方下载统计，y18n 在 2026/10/05 – 2026/11/03 这 30 天内被下载 784,097,669 次，日均约 26,136,589 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### y18n 还在维护吗？

最新版本 5\.0\.8 发布于 2021/04/08（5 年前）；至今共发布 22 个版本，其中过去 12 个月发布了 0 个；首次发布于 2015/07/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

