Автоматическая проверка в файлах Angular i18n json - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть 2 файла en.json и xx.json с переводами в приложении Angular.Общая идея состоит в том, чтобы создать перевод в обоих файлах для многоязычного приложения, но иногда некоторые программисты добавляют перевод только в один из этих файлов, потому что они тестируют приложение только на своем языке.

Я ищу инструмент, который проверяет ту же структурув обоих файлах JSON, иначе выдает ошибку и помогает с добавлением при создании переводов для второго языка.Знаете ли вы какие-либо хорошие практики, инструменты или плагины для этого?Я использую WebStorm.

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Вы можете проверить Pootle (http://pootle.translatehouse.org/index.html) или Poedit (https://poedit.net) или POEditor (https://poeditor.com/)

)
0 голосов
/ 05 февраля 2019

Используйте небольшой скрипт Node.js

Поскольку у вас уже установлен Angular (что означает, что у вас есть NPM & Node.Js), вы можете найти несоответствия в файлах JSON перевода с помощью скрипта.Вот как это выглядит

Код

const fs = require('fs');

// Define your file paths here
const files = ['./english.json', './russian.json']

// Read contents and parse JSON
const filesWithKeys = files.map(f => ({
  name: f,
  content: JSON.parse(fs.readFileSync(f, 'utf8'))
}));

// Gather all the keys used in all files in one array
const allKeys = filesWithKeys.map(f => Object.keys(f.content)).flat();

// Find the missing keys by file
const missingKeysByFile = filesWithKeys.map(f => ({
  name: f.name,
  missingKeys: allKeys.filter(k => !(k in f.content))
})).filter(f => f.missingKeys.length > 0);


// Print the result
missingKeysByFile.forEach(f => {
  console.log(`File "${f.name}" is missing keys [ ${f.missingKeys.join(' ')} ]`);
});

Пример вывода

File "english.json" is missing keys [ appTitle, contentHeader ]
File "russian.json" is missing keys [ usernameHint ]
0 голосов
/ 05 февраля 2019

Попробуйте POEditor .Бесплатно до 1000 строк.

...