angularTs-translate-loader-static-files with HotTowel template

时间:2015-01-29 01:34:02

标签: angularjs hottowel angular-translate

我正在尝试使用angular-translate和静态文件加载器。我的应用程序基于HotTowel模板,下面是我修改过的配置文件。我正确地添加了对 angular-translate-loader-static-files.js angular-translate.js 的引用,并注入了' pascalprecht.translate& #39; 到应用。它甚至可以在/Languages/si-LK.json文件中加载json文件。我可以在浏览器网络选项卡的Dev工具中看到它。但是翻译不起作用。我在控制台中没有看到任何错误。它只显示密钥。我有Json文件中的密钥。

app.config(['$translateProvider', function ($translateProvider) {
        $translateProvider.preferredLanguage('si-LK');
        $translateProvider.useStaticFilesLoader({
            prefix: '/Languages/',
            suffix: '.json'
        });

    }]);

在我的HTML中,我有这个

<span>{{'INTROTEXT' | translate}}</span>

但是,如果我切换到下面,那一切都有效。任何建议都非常感激。

app.config(['$translateProvider', function ($translateProvider) {
$translateProvider.preferredLanguage('si-LK');
$translateProvider.translations('en-US', {
    INTROTEXT: 'intro in English'
 }).translations('de', {
    INTROTEXT: 'intro in German'
    }).translations('si-LK', {
    INTROTEXT: 'Intro in sinhala'
    });
}]);

1 个答案:

答案 0 :(得分:1)

在我的项目中,我使用了部分加载器而不是staticFilesLoader。但是,我认为您错过了在run()

之后致电config()
/*app.config(['$translateProvider', function ($translateProvider) {
    $translateProvider.preferredLanguage('si-LK');
    $translateProvider.useStaticFilesLoader({
        prefix: '/Languages/',
        suffix: '.json'
    });

}])*/
.config(['$translateProvider', function ($translateProvider) {
    $translateProvider
        .useLocalStorage()
        .determinePreferredLanguage(function () { return 'pt'; })
        .useLoader("$translatePartialLoader", { urlTemplate: "/i18n/{part}.{lang}.json" });

}])
.run(function ($rootScope, $translate) {
    $rootScope.$on('$translatePartialLoaderStructureChanged', function () {
        $translate.refresh();
    });
});

我希望有帮助..