- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对编程和 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
是前缀和后缀(分别) 您在配置过程中传递的。
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 中找到有关不同装载机的更多信息.
可以在 the angular-translate repository 中找到 UrlLoader 的源代码.
希望这对您有所帮助。
关于javascript - PascalPrecht Angular 翻译 useUrlLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29634967/
我正在使用 Angular-translate(PascalPrecht 模块)。 我成功地按照以下示例使其工作:http://www.ng-newsletter.com/posts/angular-
我有一个 AngularJS 应用程序。对于文本翻译,我使用 Angular 翻译。它工作得很好,但是当我请求第一页时,在加载翻译前几秒钟,页面会显示标签。 我已经阅读了一些关于它的帖子http://
我对编程和 Angular 都不熟悉。我需要使用 angular-translate 及其 useUrlLoader,因为我的翻译存储在数据库中。 $translateProvider.useUrlL
我正在尝试将 angular-translate 添加到我的 Angular 应用程序中。我遵循了这个简单的快速入门:https://angular-translate.github.io/docs/
我在使用 SanitizeValueStrategy('sanitize') 时遇到 UTF8 字符问题.我必须使用它,因为客户正在使用语言文件来编辑文本,他可能会使用像 这样的标签。或 ...
我是一名优秀的程序员,十分优秀!