Skip to content

参考

i18next 核心引擎 常用 init 选项、t() 选项、实例 API、插件、事件速查。版本基线 v23+(API 自 v21/JSON v4 起稳定)。框架绑定 API 不在此列。

一、常用 init 选项与默认值

选项默认值作用
lngundefined当前语言(覆盖语言检测
fallbackLng'dev'回退语言(string/array/object/function)
debugfalse向 console 打调试日志
ns['translation']要加载的命名空间
defaultNS'translation'默认命名空间
fallbackNSfalse命名空间回退
keySeparator'.'嵌套 key 分隔符(false 关闭)
nsSeparator':'命名空间分隔符(false 关闭)
pluralSeparator'_'复数后缀分隔符
contextSeparator'_'上下文后缀分隔符
load'all'all / languageOnly / currentOnly
preloadfalse预加载的语言数组
supportedLngsfalse允许的语言白名单
nonExplicitSupportedLngsfalse地区码按主码视为受支持
returnNullfalsenull 是否算有效翻译
returnEmptyStringtrue空串是否算有效翻译
returnObjectsfalse允许 t 返回对象/数组
saveMissingfalse上报/写回缺失 key
partialBundledLanguagesfalse部分内联 + 部分 backend 加载

二、interpolation 段默认值

字段默认值作用
prefix'{{'变量前缀
suffix'}}'变量后缀
escapeValuetrueHTML 转义(防 XSS)
formatSeparator','值与格式器名的分隔
nestingPrefix'$t('嵌套前缀
nestingSuffix')'嵌套后缀
unescapePrefix'-'跳过转义的前缀({{- v}}
skipOnVariablestrue含变量的嵌套默认跳过
maxReplaces1000单次最大替换数

三、t() 常用选项

选项作用
count触发复数(数字),也作 {{count}} 插值
context_<context> 后缀选 key
ordinaltrue 启用序数复数(_ordinal_ 段)
ns指定命名空间(覆盖 defaultNS)
defaultValuekey 缺失时的兜底文案
returnObjects该次返回对象/数组
formatParams按变量名给格式器传 Intl 选项
replace显式提供插值变量对象
lng该次用指定语言取词
interpolation该次覆盖插值配置(如 { escapeValue: false }

key 数组 t(['a','b']) = 按序取第一个命中;第二参传字符串 = defaultValue 简写。

四、复数 / 上下文后缀

场景key 形态
基数复数key_zero/_one/_two/_few/_many/_other
序数复数key_ordinal_one/_two/_few/_other
上下文key_<context>,如 friend_male
上下文+复数key_<context>_<pluralForm>,如 friend_male_other

五、内置格式器(基于 Intl)

格式器底层 API示例文案
numberIntl.NumberFormat{{val, number}}
currencyIntl.NumberFormat{{val, currency(USD)}}
datetimeIntl.DateTimeFormat{{val, datetime}}
relativetimeIntl.RelativeTimeFormat{{val, relativetime}}
listIntl.ListFormat{{val, list}}

注册自定义:i18next.services.formatter.add(name, fn) / addCached(name, fn)

六、实例 API

方法作用
init(options, cb?)初始化,返回 Promise
t(key, options?)取词(核心)
changeLanguage(lng, cb?)切语言,返回 Promise
exists(key, options?)key 是否存在(布尔)
getFixedT(lng, ns, keyPrefix?)固定语言/命名空间的 t
use(plugin)接入插件(可链式)
createInstance(options?, cb?)新建独立实例
cloneInstance(options?)克隆实例(默认共享 store)
addResource(s)Bundle(...)运行时注入翻译
loadNamespaces(ns, cb?)加载命名空间
dir(lng?)返回 'ltr' / 'rtl'
on/off(event, cb)监听/取消事件

属性:i18next.language(当前语言)、i18next.languages(回退查找序列)、i18next.store(资源仓)。

七、事件

事件触发时机
initialized初始化完成
loaded资源加载完成
languageChangedchangeLanguage 完成
missingKey命中缺失 key

八、官方常用插件

插件作用
i18next-browser-languagedetector浏览器语言检测(type: languageDetector
i18next-http-backendHTTP 按需加载翻译(type: backend
i18next-fs-backendNode 文件系统加载翻译
i18next-resources-to-backendimport() 动态导入翻译
i18next-chained-backend多 backend 链式回退
react-i18next / i18next-vueReact / Vue 绑定层(依赖 i18next)

命令查完,进 指南 · 基础 理解机制,或 指南 · 进阶 看插件与懒加载实战。