0

我试图了解是否可以对发送到 angular-tranlsate 的翻译文件进行某种测试(单元/e2e),以检查是否意外未翻译某些键。

假设我有 fr.json:

key1 : 'ma première chaîne',
key2 : 'ma deuxième chaîne',
key3 : 'ma troisième chaîne',
key4 : 'ma quatrième chaîne'

和 en.json:

key1 : 'my first string',
key2 : 'my second string',
key4 : ''

请注意 en.json 中缺少的“key3”和“key4”的空值

因此,假设我将 fr.json 定义为 fallbackLanguage,我想测试“en.json”以查看它是否遗漏了一些键(将转到 fallbackLanguage)和空值。

感谢您提供任何帮助或提示。

4

1 回答 1

1

这似乎是一种angular-translate选择。见这里

$translateProvider
  .translations('de', { /* ... */ })
  .translations('en', { /* ... */ })
  .fallbackLanguage('en');

编辑 :

要手动检查是否缺少密钥,您可以执行以下操作:

$q.all([
  $http.get('/path/to/fr.json'),
  $http.get('/path/to/en.json')
]).then(function (results) {
  var fr = results[0],
      en = results[1],
      i;

  for (i in fr) {
    if (!fr.hasOwnPropery(i)) { continue; }
    if (!(i in en)) {
      console.log(i + 'is in fr but not in en');
    }
  }

  for (i in en) {
    if (!en.hasOwnPropery(i)) { continue; }
    if (!(i in fr)) {
      console.log(i + 'is in en but not in fr');
    }
  }
});
于 2014-09-22T15:10:12.143 回答