The deletion of untranslated .po files now works again. Removing zh-HK regardless as we already have zh-CN and the app uses 2-character locales. Also, zh-HK did not contain any translations.

This commit is contained in:
Brendon Duncan 2018-05-18 13:04:50 +12:00
commit 38a4531d60
3 changed files with 60 additions and 7313 deletions

View file

@ -2,6 +2,8 @@
'use strict'; 'use strict';
const blankOrEmptyTranslationRegex = /^\s*"\s*"$/
if (process.argv[2]) { if (process.argv[2]) {
var no_build = (process.argv[2].toLowerCase() == '--nobuild') var no_build = (process.argv[2].toLowerCase() == '--nobuild')
if (no_build == false) { if (no_build == false) {
@ -110,6 +112,7 @@ if (no_build == false) { // Reminder: Any changes to the script below must also
}); });
}; };
function updateLocalFilesFromDownloadedZipBuffer(buf) { function updateLocalFilesFromDownloadedZipBuffer(buf) {
var zip = new AdmZip(buf); var zip = new AdmZip(buf);
@ -122,8 +125,10 @@ function updateLocalFilesFromDownloadedZipBuffer(buf) {
for (var i in files) { for (var i in files) {
const name = files[i]; const name = files[i];
if (name != 'template.pot') { if (name == 'template.pot') {
// Assume it is a directory continue;
}
const fullPath = path.join(extractionPath, name); const fullPath = path.join(extractionPath, name);
const status = fs.statSync(fullPath); const status = fs.statSync(fullPath);
if (!status.isDirectory()) { if (!status.isDirectory()) {
@ -132,16 +137,25 @@ function updateLocalFilesFromDownloadedZipBuffer(buf) {
} }
const filePath = path.join(fullPath, `template-${name}.po`); const filePath = path.join(fullPath, `template-${name}.po`);
console.log(`Processing file: ${filePath}`);
if (name === "zh-HK") {
console.log("Deleting zh-HK, because we also have zh-CN and the app uses 2-character locales. Also zh-HK was untranslated at time of writing.");
fs.unlinkSync(filePath);
continue
}
var po_file = fs.readFileSync(filePath, 'utf8'); var po_file = fs.readFileSync(filePath, 'utf8');
var po_array = po_file.split('\n'); var po_array = po_file.split('\n');
for (var j in po_array) { const linesCount = po_array.length;
if (po_array[j].slice(0,5) == 'msgid') { for (let j = 0; j < linesCount; j++) {
if (po_array[j].slice(0,5) === 'msgid') {
var source_text = po_array[j].slice(5); var source_text = po_array[j].slice(5);
} else if (po_array[j].slice(0,6) == 'msgstr') { } else if (po_array[j].slice(0,6) === 'msgstr') {
var translate_text = po_array[j].slice(6); var translate_text = po_array[j].slice(6);
// If a line is not == English, it means there is at least one translation. Keep this entire file. // If a line is not == English, it means there is at least one translation. Keep this entire file.
if (source_text != translate_text) { if ((!blankOrEmptyTranslationRegex.test(translate_text)) &&
source_text !== translate_text) {
console.log(`Keeping ${name}`);
// erase email addresses of last translator for privacy // erase email addresses of last translator for privacy
po_file = po_file.replace(/ <.+@.+\..+>/, '') po_file = po_file.replace(/ <.+@.+\..+>/, '')
fs.writeFileSync(filePath, po_file); fs.writeFileSync(filePath, po_file);
@ -164,13 +178,14 @@ function updateLocalFilesFromDownloadedZipBuffer(buf) {
break; break;
}; };
}; };
if (j == po_array.length - 1) { // All strings are exactly identical to English. Delete po file. if (j === (linesCount - 1)) { // All strings are exactly identical to English. Delete po file.
fs.unlinkSync(filePath); fs.unlinkSync(filePath);
console.log(`Deleted ${name}`)
untranslatedPoFileDeletedCount++; untranslatedPoFileDeletedCount++;
}; };
};
}; };
}; };
console.log(`Completely untranslated po files cleaned out: ${untranslatedPoFileDeletedCount}`); console.log(`Completely untranslated po files cleaned out: ${untranslatedPoFileDeletedCount} (Not including zh-HK)`);
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff