我正在使用Angular-translate(PascalPrecht模块)。
我根据http://www.ng-newsletter.com/posts/angular-translate.html
中的示例成功地使其工作但是,我想使用loader-static-files将所有翻译放在不同的json文件中,但这对我不起作用。我不确定我是在这里做的。
在我的角度模块中,我只是使用loader-static调用替换了工作代码(现在已注释):
angular.module('myApp.i18n', ['pascalprecht.translate'])
.config(['$translateProvider', function ($translateProvider) {
/*$translateProvider.translations('en', {
HOME: 'Home',
COMPANIES: 'Companies',
WHAT_TO_DO: 'What to do',
ABOUT: 'About us',
CONTACT: 'Contact'
})
.translations('es', {
HOME: 'Inicio',
COMPANIES: 'Empresas',
WHAT_TO_DO: 'Qué hacer',
ABOUT: 'Nosotros',
CONTACT: 'Contacto'
});*/
$translateProvider.preferredLanguage('es');
$translateProvider.useStaticFilesLoader({
prefix: '/languages/',
suffix: '.json'
});
}]);
我已在我的app文件夹中添加了文件:
/app/languages/en_US.json /app/languages/es.json
当我加载我的主站点时,我在控制台中看到下一个错误:
http://localhost:1234/languages/es.json 404 (Not Found)
如果我删除前缀中的第一个'/',就像这样:
$translateProvider.useStaticFilesLoader({
prefix: 'languages/',
suffix: '.json'
});
然后,我在控制台中出现下一个错误:
意外的令牌H
对不起,我想我不应该知道这应该如何运作。
答案 0 :(得分:9)
确保您的服务器将.json
作为json而不是纯文本发送。
另外,请确保.json文件的名称取决于相应的语言密钥。
你可以在这里阅读:http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading(“使用staticFilesLoader”)
代码对我来说很好,所以一旦你修复了服务器没有以json的形式发送json的问题,事情应该会有效。
答案 1 :(得分:3)
我修好了。正如Pascal在评论中所说,问题是json文件格式错误。您必须将所有值放在双引号之间。
路径是对的。