我正在使用angular-translate为3种语言添加支持(英语,葡萄牙语和西班牙语),一切正常。
NameError: name 'north' is not defined
这样我就有3个文件,包含3种语言的所有翻译。但我现在面临的问题是,
如果我需要翻译来自json文件的数据并通过带有ngRoute的$ routeParams动态更改,该怎么办?
这是我进入i18n之前的做法
// config angular translate
app.config(['$translateProvider', function ($translateProvider) {
// configures staticFilesLoader
$translateProvider.useStaticFilesLoader({
prefix: 'translations/locale-',
suffix: '.json'
});
$translateProvider.preferredLanguage('en');
}]);
其中一个json文件
// MyController
app.controller('MyController', ['$scope', '$routeParams', '$http',
function($scope, $routeParams, $http) {
$http.get('someFolder/' + $routeParams.itemId + '.json').success(function(data) {
$scope.item = data;
});
}]);
我有一个带有json文件的文件夹,它载有项目的ID。我的HTML看起来像这样:
{
"id": "blue",
"color": "Blue",
"description": "The color blue is one of trust, honesty and loyalty"
}
我能够翻译项目的标签,因为它在所有json文件中始终相同,但我实际需要的是翻译这些值。
有没有解决方案?
提前致谢
答案 0 :(得分:0)
而不是静态文件加载器,请查看PartialLoader。这允许您将模板分解为零件,并单独请求每个零件。
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: '{part}/i18n/{lang}.json',
loadFailureHandler: 'TranslationErrorHandler'
});
用这个,你做
$translatePartialLoader.addPart('common');
将加载'common / i18n / .json'