![](/img/trans.png)
[英]angular-translate module 'pascalprecht.translate' not found
[英]PascalPrecht angular-translate useUrlLoader
我是编程和角度的新手。 我需要使用angular-translate及其'useUrlLoader,因为我的翻译存储在数据库中。 $translateProvider.useUrlLoader('foo/bar.json'); $translateProvider.preferredLanguage('en');
虽然使用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"
}
您可以在官方指南中找到有关不同装载机的更多信息。
可以在angular-translate存储库中找到UrlLoader的源代码。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.