Merge remote-tracking branch 'origin/develop' into develop

pull/6330/head
Weblate 2018-03-05 11:29:29 +00:00
commit 0311a3a1be
1 changed files with 15 additions and 4 deletions

View File

@ -134,8 +134,19 @@ function next(i, err) {
const reactSdkFile = 'node_modules/matrix-react-sdk/src/i18n/strings/' + source + '.json'; const reactSdkFile = 'node_modules/matrix-react-sdk/src/i18n/strings/' + source + '.json';
const riotWebFile = 'src/i18n/strings/' + source + '.json'; const riotWebFile = 'src/i18n/strings/' + source + '.json';
const translations = {}; // XXX: Use a debounce because for some reason if we read the language
const makeLang = () => { genLangFile(source, dest) }; // file immediately after the FS event is received, the file contents
// appears empty. Possibly https://github.com/nodejs/node/issues/6112
let makeLangDebouncer;
const makeLang = () => {
if (makeLangDebouncer) {
clearTimeout(makeLangDebouncer);
}
makeLangDebouncer = setTimeout(() => {
genLangFile(source, dest);
}, 500);
};
[reactSdkFile, riotWebFile].forEach(function(f) { [reactSdkFile, riotWebFile].forEach(function(f) {
chokidar.watch(f) chokidar.watch(f)
.on('add', makeLang) .on('add', makeLang)
@ -170,13 +181,13 @@ function genLangFile(lang, dest) {
JSON.parse(fs.readFileSync(f).toString()) JSON.parse(fs.readFileSync(f).toString())
); );
} catch (e) { } catch (e) {
console.error("Failed: "+f, e); console.error("Failed: " + f, e);
throw e; throw e;
} }
} }
}); });
translations = weblateToCounterpart(translations) translations = weblateToCounterpart(translations);
fs.writeFileSync(dest + lang + '.json', JSON.stringify(translations, null, 4)); fs.writeFileSync(dest + lang + '.json', JSON.stringify(translations, null, 4));
if (verbose) { if (verbose) {