Reputation: 5573
I am trying to use angular-translate with static file-loader. My application is based on HotTowel template and below is my modified config file. I have added references to angular-translate-loader-static-files.js and angular-translate.js correctly and have injected 'pascalprecht.translate' to the app. It even loads the json file in /Languages/si-LK.json file. I can see it in Dev tools in the browser network tab. However translation is not working. And i am not seeing any error in the Console. It just displays the key only. I have the key in the Json file.
app.config(['$translateProvider', function ($translateProvider) {
$translateProvider.preferredLanguage('si-LK');
$translateProvider.useStaticFilesLoader({
prefix: '/Languages/',
suffix: '.json'
});
}]);
In my HTML i have this
<span>{{'INTROTEXT' | translate}}</span>
However if I switch to below, it all works. Any suggestion much appreciated.
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'
});
}]);
Upvotes: 2
Views: 643
Reputation: 5462
In my project, I used partial loaders instead of staticFilesLoader. However what I think you are missing to call run()
after 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();
});
});
I hope that helps..
Upvotes: 1