angular translate自定义json格式

时间:2017-02-21 11:29:10

标签: angularjs angular-translate

在重写应用程序时,我决定使用angular translate。我已使用staticFilesLoader

加载了我的翻译

我遇到的问题是因为我的翻译表格式如下:

{
    "key": "_WelcomeMessage_",
    "value": "Welcome!",
    "description": "This is the welcome message"
}

我不想付出更改文件格式的努力,因为我的应用程序已经翻译成3种语言并且包含近600个键值对。

有没有办法解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,没有。如果您当前的逻辑就像使用下一个属性key替换value值,则必须像这样更改结构。您可以编写一个小脚本,根据您当前的结构生成正确的输出。

{
    "_WelcomeMessage_": "Welcome!",
    "description": "This is the welcome message"
}

您的脚本可能看起来像这样(使用AngularJS完成,但您可以使用node.js或php ..等等),fiddle demo

AngularJS应用程序

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;
  });
});