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 找到。
希望,这会有所帮助。