【问题标题】:Do we have to hardcode for localization in angular-translate for every language?我们是否必须对每种语言的角翻译进行硬编码以进行本地化?
【发布时间】:2015-10-20 08:08:30
【问题描述】:

我正在为 'en' 和 'de' 两种语言进行翻译

 app.config(['$translateProvider', function($translateProvider) {
  $translateProvider.translations('en', {
   'name': 'Hello',
   'FOO': 'This is a paragraph'
  });
 $translateProvider.translations('de', {
  'name': 'Hallo',
  'FOO': 'Dies ist ein Absatz'
  });
 $translateProvider.preferredLanguage('de');
}])

我正在硬编码键的值。如果我们选择“de”语言,如何在不进行硬编码的情况下将 hello 更改为 hallo?

【问题讨论】:

  • “硬编码”而不是什么?
  • 如果我在浏览器中有一个字符串 "hello" 并且如果我将语言更改为 "de" ,浏览器应该显示 "hallo" 并且我不想在我的代码中对其进行硬编码。
  • 嗯,是的……!?这正是 angular-translate 所做的......!?您似乎对如何使用它的基础知识有些困惑,因此请提供有关您正在尝试的内容的更多信息。
  • 你是在问你是否可以只写<span translate>Hello</span>,它会自动翻译成“你好”,而不需要你在任何地方写$translateProvider.translations('de', { .. })?!
  • 没有。您要求机器翻译,这是 a)与手动翻译相比质量非常差,并且 b)不是 angular-translate 所做的。

标签: javascript angularjs localization internationalization angular-translate


【解决方案1】:

您可以将您的翻译放入一个单独的文件中并将其加载为 JSON。这样,您的本地化不在您的代码中。 作为示例,您可以对其进行配置:

$translateProvider.useStaticFilesLoader({prefix: 'l10n/', suffix: '.json'});

这将尝试从您的服务器为de 语言加载l10n/de.json。只需确保包含 angular-translate-loader-static-files 依赖项即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多