我使用以下角度文件进行翻译:
angular-translate 在我执行以下操作时有效:
$translateProvider.translations('en_us', {
"label.test": "It works."
});
但是当我尝试使用静态文件时......
我的HTML:
<html data-ng-app="myApp">
...
{{"label.test" | translate}}
我的app.js:
var myApp = angular.module('myApp', ['ngCookies', 'pascalprecht.translate']).config(['$translateProvider', function($translateProvider) {
$translateProvider.preferredLanguage('en_us');
$translateProvider.useStaticFilesLoader({
prefix: '/app/resources/messages/i18n_',
suffix: '.json'
});
$translateProvider.useLocalStorage();
$translateProvider.storageKey('lang');
}]);
我的响应(Content-Type设置为:application / json):
{
"label.test":"It works from JSON."
};
呈现的HTML页面显示:label.test
此外,我的控制台中没有错误。我也尝试将密钥重命名为TEST,但这也不起作用。
有什么想法吗?
感谢。
答案 0 :(得分:2)
检查.json的路径是否正确。如果找不到,则在您的模板中,它将打印出label.test
而不是实际翻译It works from JSON.
,就像它一样。
您的应用根很可能是应用,因此如果您的翻译文件位于/app/resources/messages/i18n_en_us.json
,请尝试:
$translateProvider.useStaticFilesLoader({
prefix: '/resources/messages/i18n_',
suffix: '.json'
});
还要确保您的JSON是有效的JSON。最后删除分号。
{
"label.test":"It works from JSON."
}