Javascript 我们必须为每种语言的角度翻译进行本地化硬编码吗?

Javascript 我们必须为每种语言的角度翻译进行本地化硬编码吗?,javascript,angularjs,localization,internationalization,angular-translate,Javascript,Angularjs,Localization,Internationalization,Angular Translate,我在这里翻译两种语言“en”和“de” app.config(['$translateProvider', function($translateProvider) { $translateProvider.translations('en', { 'name': 'Hello', 'FOO': 'This is a paragraph' }); $translateProvider.translations('de', { 'name': 'Hallo', 'F

我在这里翻译两种语言“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 to hallo?

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

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

它将尝试从服务器加载
de
语言的
l10n/de.json
。只需确保包含
角度转换加载程序静态文件
依赖项。

“硬编码”与具体内容相反?如果我在浏览器中有一个字符串“hello”,并且如果我将语言更改为“de”,浏览器应显示“hallo”,我不想在代码中硬编码。嗯,是的。。。!?这正是角度平移所做的。。。!?您似乎对如何使用它的基本知识有些困惑,因此请提供有关您正在尝试的具体内容的更多信息。您是在问您是否可以只编写
Hello
,而不必编写
$translateProvider.translations('de',{..})
任何地方就可以自动将其翻译为“Hallo”?!不。你要求的是机器翻译,与手工翻译相比,机器翻译的质量非常差,而角度翻译的效果则不同。