i18next 显示键而不是值
Posted
技术标签:
【中文标题】i18next 显示键而不是值【英文标题】:i18next Displayed key instead of value 【发布时间】:2013-08-18 08:54:51 【问题描述】:我在/locales/en/
中有translation.json
文件
"app":
"name": "Example App"
在html
,我有:
<a href="/" data-i18n="app.name">
在js
:
$(document).ready(function()
var language_complete = navigator.language.split("-");
var language = (language_complete[0]);
console.log('language', language);
$.i18n.init(
lng: language,
fallbackLng: false,
debug: false
, function()
$('a').i18n();
);
);
它显示app.name
而不是Example App
。我在代码中遗漏了什么?谢谢
【问题讨论】:
您是否包含 i18next 的 jQuery 版本? :) 同样的问题,你是怎么解决的?谢谢.. 【参考方案1】:您必须将 useLocalStorage 和 useDataAttrOptions 设置为 true
$.i18n.init(useLocalStorage: true , useDataAttrOptions:true, ....);
【讨论】:
【参考方案2】:在 js 中这是因为 $(document).ready
不等待外部内容被加载。您需要使用$(window).on('load',function()...)
。
【讨论】:
【参考方案3】:从 i18next V2 开始,后端 不再提供开箱即用 (see the migration guide),因此您需要在 init 块中定义 backend
配置:
backend:
loadPath: '/locales/lng/ns.json'
,
如果您不这样做,您的资源将不会被加载,并且翻译值将回退到它们各自的键 (see the source code)。
【讨论】:
以上是关于i18next 显示键而不是值的主要内容,如果未能解决你的问题,请参考以下文章
使用 i18next 进行反应生产构建会导致翻译仅显示字符串