在重写应用程序时,我决定使用angular translate。我已使用staticFilesLoader
加载了我的翻译我遇到的问题是因为我的翻译表格式如下:
{
"key": "_WelcomeMessage_",
"value": "Welcome!",
"description": "This is the welcome message"
}
我不想付出更改文件格式的努力,因为我的应用程序已经翻译成3种语言并且包含近600个键值对。
有没有办法解决这个问题?提前谢谢。
答案 0 :(得分:1)
不幸的是,没有。如果您当前的逻辑就像使用下一个属性key
替换value
值,则必须像这样更改结构。您可以编写一个小脚本,根据您当前的结构生成正确的输出。
{
"_WelcomeMessage_": "Welcome!",
"description": "This is the welcome message"
}
您的脚本可能看起来像这样(使用AngularJS完成,但您可以使用node.js或php ..等等),fiddle demo:
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl', function ($scope) {
$scope.output = {};
$scope.input = [{
"key": "_WelcomeMessage_",
"value": "Welcome!",
"description": "This is the welcome message"
},{
"key": "_anOtherMessage",
"value": "Message to be fine!",
"description": "This is the welcome message"
}];
angular.forEach($scope.input, function (translationItem) {
$scope.output[translationItem.key] = translationItem.value;
$scope.output[translationItem.key + 'description'] = translationItem.description;
});
});