【问题标题】:angular translate static-loader-file PascalPrecht角度翻译静态加载器文件 PascalPrecht
【发布时间】:2013-10-14 10:52:19
【问题描述】:

我正在使用 Angular-translate(PascalPrecht 模块)。

我按照http://www.ng-newsletter.com/posts/angular-translate.html中的示例成功使其工作

但是,我希望使用 loader-static-files 将所有翻译保存在不同的 json 文件中,但这对我不起作用。我不确定我是否在这里做。

在我的 Angular 模块中,我只是用 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

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

【问题讨论】:

    标签: angularjs


    【解决方案1】:

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

    您可以在此处阅读:http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading(“使用 staticFilesLoader”)

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

    【讨论】:

    • 嗯,不确定这是问题所在。请注意服务器请求的 URL:localhost:1234/languages/es.json404(未找到)。但是,如果我在浏览器中写下一个 url:localhost:1234/app/languages/es.json 我会得到一个 json 文件:[ { HOME: 'Inicio', COMPANIES: 'Empresas', WHAT_TO_DO: 'Qué hacer', ABOUT: 'Nosotros', CONTACT: '联系方式' } ]。我认为问题在于它没有找到资源,因为它正在跳过 /app。
    • 然后只需在前缀中添加 'app/' :)
    • 呵呵又不是那么容易了:如果我添加前缀:'app/languages/',那么我会收到这个奇怪的错误:GET localhost:1234/app/app/languages/es.json404 (Not Found)。注意有两个应用程序。如果我添加:前缀:'app/languages/' 然后我得到: SyntaxError: Unexpected token H
    • 再次,确保您的服务器发送 json,这就是发生意外令牌错误的原因。
    【解决方案2】:

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

    路径是对的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多