使用angular进行翻译不能与useStaticFilesLoader一起使用

时间:2014-06-17 16:52:53

标签: javascript json angularjs angular-translate

我想使用angular进行翻译,我遵循了本教程: http://www.ng-newsletter.com/posts/angular-translate.html

我加载了这两个文件:

<script src="js/angular/angular-translate.min.js"></script>
<script src="js/angular/angular-translate-loader-static-files.min.js"></script>

HTML

{{ 'SORTBY' | translate }}

当我这样做时,翻译工作:

$translateProvider.translations('en', {
                SORTBY: 'sort by'
              })
              .translations('fr', {
                SORTBY: 'trier par'
              });

现在我想这样做:

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

我很好地加载文件,因为我的控制台网络向我展示了正确内容的GET成功:

en.json

SORTBY: "Sort by"

fr.json

SORTBY: "Trier par"

它显示:

SORTBY

你有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这个问题完全是因为Jsons的写作。 这个语法解决了我的问题:

{
    "SORTBY": "Sort by"
}

答案 1 :(得分:-1)

prefix属性是文件的前缀,而不是位置,因此它正在查找名为languages /&#39; someValue&#39; .json的文件。这在我以前的项目中有效,因此您可以尝试将文件重命名为locale-en.json和locale-fr.json。

$translateProvider.useStaticFilesLoader({
          prefix: 'locale-',
          suffix: '.json'
        });

答案 2 :(得分:-1)

在几分钟之前我遇到了类似的问题,问题是在JSON文件中使用'而不是"

BAD

{
    'SORTBY': 'Sort by'
}

GOOD

{
    "SORTBY": "Sort by"
}

它已经解决了我的问题,也许可以帮助某人。