16

我正在使用 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/languages/en_US.json /app/languages/es.json

当我加载我的主站点时,我在控制台中看到下一个错误:

http://localhost:1234/languages/es.json 404 (Not Found)

如果我删除前缀中的第一个“/”,如下所示:

$translateProvider.useStaticFilesLoader({
              prefix: 'languages/',
              suffix: '.json'
            });

然后,我在控制台中收到下一个错误:

意外的令牌 H

抱歉,我想我不明白这应该如何工作。

4

2 回答 2

9

确保您的服务器发送.jsonjson 而不是纯文本。此外,请确保 .json 文件的名称取决于相应的语言键。

正如你可以在这里阅读:http: //angular-translate.github.io/docs/#/guide/12_asynchronous-loading(“使用staticFilesLoader”)

代码对我来说看起来不错,所以一旦你解决了你的服务器没有将 json 作为 json 发送的问题,事情应该可以工作了。

于 2013-10-14T11:12:44.160 回答
3

我修好了它。正如 Pascal 在评论中所说,问题在于 json 文件的格式错误。您必须将所有值放在双引号之间。

路径是对的。

于 2013-10-14T15:36:24.610 回答