我正在尝试使用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'
});
}]);
答案 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();
});
});
我希望有帮助..