@cospired/i18n-iso-languages

中文文档
4.2.0发布于 2024/01/28MITTypeScriptCommonJS零依赖近 30 天下载 19.2万

i18n for ISO 639 language codes

原始使用文档
文档目录13 节
  1. Installing
  2. Code to Language
  3. Get the name of a language by it's ISO 639-1 (Alpha-2), ISO…
  4. Get all names by their ISO 639-1 code
  5. Supported languages (ISO 639-1)
  6. Language to Code
  7. Codes
  8. Convert ISO 639-2 (Alpha-3) to ISO 639-1 (Alpha-2) code
  9. Convert ISO 639-1 (Alpha-2) to ISO 639-2 (Alpha-3) code
  10. Get all ISO 639-1 (Alpha-2) codes
  11. Get all ISO 639-2 (Alpha-3) codes
  12. Validate language code
  13. Contribution

Build Status npm version Maintainability Test Coverage

i18n-iso-languages

i18n for ISO 639 language codes. We support Alpha-2, Alpha-3 B and T codes from https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

This packages is heavily based on i18n-iso-countries.

We intent to keep the interface of i18n-iso-languages as close as possible to i18n-iso-countries.

Installing

Install it using npm: npm install @cospired/i18n-iso-languages

If used in a browser environment, you will need to manually install the local you wish to support.

var languages = require("@cospired/i18n-iso-languages");

// Support german & english languages.
languages.registerLocale(require("@cospired/i18n-iso-languages/langs/en.json"));
languages.registerLocale(require("@cospired/i18n-iso-languages/langs/de.json"));

Code to Language

Get the name of a language by it's ISO 639-1 (Alpha-2), ISO 639-2/T or B (Alpha-3) code

var languages = require("@cospired/i18n-iso-languages");
console.log("de (639-1/Alpha-2) => " + languages.getName("de", "en")); // German
console.log("en (639-1/Alpha-2) => " + languages.getName("de", "de")); // Deutsch
console.log("de (639-2T/Alpha-3) => " + languages.getName("deu", "en")); // German
console.log("de (639-2B/Alpha-3) => " + languages.getName("ger", "en")); // German

Get all names by their ISO 639-1 code

var languages = require("@cospired/i18n-iso-languages");
console.log(languages.getNames("en")); // { 'ab': 'Abkhazian', 'aa': 'Afar', [...], 'za': 'Zhuang', 'zu': 'Zulu' }

Supported languages (ISO 639-1)

List of ISO 639-1 codes

Language to Code

var languages = require("@cospired/i18n-iso-languages");
console.log("German => " + languages.getAlpha2Code('German', 'en'));
// German => de

console.log("German => " + languages.getAlpha3TCode('German', 'en'));
// German => deu

console.log("German => " + languages.getAlpha3BCode('German', 'en'));
// German => ger

Codes

Convert ISO 639-2 (Alpha-3) to ISO 639-1 (Alpha-2) code

var languages = require("@cospired/i18n-iso-languages");
console.log("deu (Alpha-3) => " + languages.alpha3ToAlpha2("deu") + " (Alpha-2)");
// deu (Alpha-3 T) => de (Alpha-2)

var languages = require("@cospired/i18n-iso-languages");
console.log("ger (Alpha-3 B) => " + languages.alpha3ToAlpha2("ger") + " (Alpha-2)");
// ger (Alpha-3 B) => de (Alpha-2)

Convert ISO 639-1 (Alpha-2) to ISO 639-2 (Alpha-3) code

var languages = require("@cospired/i18n-iso-languages");
console.log("de (Alpha-2) => " + languages.alpha2ToAlpha3T("de") + " (Alpha-3 T)");
// de (Alpha-2) => deu (Alpha-3 T)

var languages = require("@cospired/i18n-iso-languages");
console.log("de (Alpha-2) => " + languages.alpha2ToAlpha3B("de") + " (Alpha-3 B)");
// de (Alpha-2) => ger (Alpha-3 B)

Get all ISO 639-1 (Alpha-2) codes

var languages = require("@cospired/i18n-iso-languages");
console.log(languages.getAlpha2Codes());
// { 'aa': 'aar', 'ab': 'abk', [...], 'za': 'zha', 'zu': 'zul' }

Get all ISO 639-2 (Alpha-3) codes

var languages = require("@cospired/i18n-iso-languages");
console.log(languages.getAlpha3TCodes());
// { 'aar': 'aa', 'abk': 'ab', [...], 'zha': 'za', 'zul': 'zu' }

var languages = require("@cospired/i18n-iso-languages");
console.log(languages.getAlpha3BCodes());
// { 'aar': 'aa', 'abk': 'ab', [...], 'zha': 'za', 'zul': 'zu' }

Validate language code

var languages = require("@cospired/i18n-iso-languages");
console.log(languages.isValid("de"), languages.isValid("ger"), languages.isValid("xx")));
// true, true, false

Contribution

To add a language:

  • add a json file under langs/ (in alphabetical order)
  • add the language to the data object in enty-node.js at the top (in alphabetical order)
  • add language to section Supported languages in README.md (in alphabetical order)
  • add language to keywords in package.json (in alphabetical order)
  • add language to the "unreleased" section of the changelog
  • run npm install && make test to make sure that tests are passing
  • open a PR on GitHub

Please do not change the version in package.json, package-lock.json or changelog.md.

版本与发布记录

@cospired/i18n-iso-languages 共发布 25 个版本,首次发布于 2018/02/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.2.0latest2024/01/282 年前
4.1.02023/03/103 年前
4.0.12023/01/223 年前
4.0.02022/03/204 年前
3.2.12022/03/184 年前
3.2.02022/03/184 年前

关于 @cospired/i18n-iso-languages 的常见问题

@cospired/i18n-iso-languages 是什么?

i18n for ISO 639 language codes

如何安装 @cospired/i18n-iso-languages?

在项目目录运行 npm install @cospired/i18n-iso-languages,或使用 pnpm add / yarn add / bun add。

@cospired/i18n-iso-languages 支持 TypeScript 吗?

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

@cospired/i18n-iso-languages 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cospired/i18n-iso-languages 需要什么版本的 Node.js?

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

@cospired/i18n-iso-languages 可以商用吗?

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

@cospired/i18n-iso-languages 的下载量有多少?

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

@cospired/i18n-iso-languages 还在维护吗?

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