【问题标题】:Issue with i18n parsingi18n 解析问题
【发布时间】:2017-08-15 14:32:12
【问题描述】:

我正在从后端获取 JSON,我需要在 UI 上对其进行解析。 对于 JSON 中的所有键,我必须翻译它们并在 UI 上显示。

例如: i18n.t('key') 会给我翻译后的价值。

但对于某些键,例如“名称”、“日期” 例如: i18n.t('名字') 翻译给出以下输出 “key 'translation:name (en-US)' 返回一个对象而不是字符串。”

请你帮我处理一下这个场景。

【问题讨论】:

  • 请分享代码示例。
  • Handlebar helper: Handlebars.registerHelper('t', function() { var params = getParamsFromArgs(arguments).join(''); var result = params && i18n.t(params) || ''; return new Handlebars.SafeString(result); }); html 中的模板:
    {{t 'name'}}
    或 Jquery $.t('name') 它给了我错误,而不是从 messages.property 替换值
  • 试试 i18n.t('key', { returnObjects: true });你会看到 name 返回一个对象而不是字符串(默认情况下没有 returnObjects 选项 i18next 只允许字符串值作为有效的翻译)

标签: javascript jquery json i18next


【解决方案1】:

例如,如果您从服务中跟踪 JSON

{ “i18n”:{ “名称”:“翻译 1”, “名称2”:“翻译2” } }

你可以像下面这样使用它

var mytranslation = getTranslationsFromService(); console.log(mytranslation.i18n.name) //结果:translation1 console.log(mytranslation.i18n.name2) //结果:translation2 var getTranslationsFromService = function() { //从服务中获取结果,结果看起来像上面的JSON。 }

希望能帮到你。

亲切的问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2015-09-30
    相关资源
    最近更新 更多