mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* Add i18n verification step * Add check for extracted translations * Run extract * Add newline for pseudo * Format JSON output with prettier * Print file diff * Actually run make drone * Only deo git diff on locales * Update error message * Verify that step fails on dynamic phrases * Verify that it passes when fixed * Verify that dynamic phrase fails, for real this time * Extract error messages * Change echo * Fix string format * Try double escaping * Escape for Drone substitution * Update character escape * Remove dynamic phrase * Verify multiple keys * Remove double keys * Readd en locale because of reasons * Undo changes * Format lint_frontend.star * Update error message * Update .drone.yml * Add quotes for echo * Verify fail to extract * Fix diff stat command * Reset footer changes
25 lines
856 B
JavaScript
25 lines
856 B
JavaScript
const fs = require('fs/promises');
|
|
const pseudoizer = require('pseudoizer');
|
|
const prettier = require('prettier');
|
|
|
|
function pseudoizeJsonReplacer(key, value) {
|
|
if (typeof value === 'string') {
|
|
// Split string on brace-enclosed segments. Odd indices will be {{variables}}
|
|
const phraseParts = value.split(/(\{\{[^}]+}\})/g);
|
|
const translatedParts = phraseParts.map((str, index) => index % 2 ? str : pseudoizer.pseudoize(str))
|
|
return translatedParts.join("")
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
fs.readFile('./public/locales/en-US/grafana.json').then((enJson) => {
|
|
const enMessages = JSON.parse(enJson);
|
|
// Add newline to make prettier happy
|
|
const pseudoJson = prettier.format(JSON.stringify(enMessages, pseudoizeJsonReplacer, 2), {
|
|
parser: 'json',
|
|
});
|
|
|
|
return fs.writeFile('./public/locales/pseudo-LOCALE/grafana.json', pseudoJson);
|
|
});
|