编程语言
首页 > 编程语言> > javascript – PascalPrecht angular-translate useUrlLoader

javascript – PascalPrecht angular-translate useUrlLoader

作者:互联网

我是编程和角度的新手.我需要使用angular-translate及其’useUrlLoader,因为我的翻译存储在数据库中. $translateProvider.useUrlLoader( ‘富/ bar.json’);
 $translateProvider.preferredLanguage( ‘恩’);

虽然使用staticFilesLoader似乎对我来说足够简单,因为我只需要两个单独的json文件和翻译数据,我无法得到useUrlLoader所期望的.据我所知,它期望json包括多种语言翻译(例如英语和德语).
无法在任何地方找到此类文件的示例.

解决方法:

StaticFilesLoader期望您将不同语言的所有翻译存储在服务器上的单独文件中.它提出这样的请求:

/your/server/i18n/locale-en.json
/your/server/i18n/locale-de.json
/your/server/i18n/locale-fr.json

其中/ your / server / i18n / locale-和.json是您在配置期间传递的前缀和后缀(分别).

UrlLoader期望您有一个“聪明”的端点而不是一堆文件.它提出这样的请求:

/your/server/i18n/locale-endpoint?lang=en
/your/server/i18n/locale-endpoint?lang=de
/your/server/i18n/locale-endpoint?lang=fr

其中/ your / server / i18n / locale-endpoint和lang分别是你在配置期间传递的url和queryParameter. url是必需的,但可以省略queryParameter(默认为“lang”).

您可以像这样设置UrlLoader:

$translateProvider.useUrlLoader('/path/to/your/endpoint', {
  queryParameter : 'localeKey'
});

或者像这样:

$translateProvider.useLoader('$translateUrlLoader', {
  url : '/path/to/your/endpoint',
  queryParameter : 'localeKey'
});

两个加载器都希望将转换加载为JSON对象.它可能看起来像这样:

{
  "translationId" : "Translation for this ID",
  "anotherTranslationId": "Another translation for another id"
}

您可以在the official guide中找到有关不同装载机的更多信息.

UrlLoader的源代码可以在the angular-translate repository找到.

希望这可以帮助.

标签:angular-translate,javascript,angularjs
来源: https://codeday.me/bug/20190728/1559078.html