PascalPrecht angular-翻译 useUrlLoader
PascalPrecht angular-translate useUrlLoader
我对编程和 angular 都是新手。我需要使用 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
分别是 prefix 和 suffix (分别)配置。
UrlLoader 期望您有一个 "clever" 端点而不是一堆文件。它发出这样的请求:
/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 中找到有关不同加载程序的更多信息。
可以在 the angular-translate repository 中找到 UrlLoader 的源代码。
希望,这有帮助。
我对编程和 angular 都是新手。我需要使用 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
分别是 prefix 和 suffix (分别)配置。
UrlLoader 期望您有一个 "clever" 端点而不是一堆文件。它发出这样的请求:
/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 中找到有关不同加载程序的更多信息。
可以在 the angular-translate repository 中找到 UrlLoader 的源代码。
希望,这有帮助。