Skip to content
This repository has been archived by the owner on Aug 10, 2022. It is now read-only.

Commit

Permalink
Merge pull request #1 from google/master
Browse files Browse the repository at this point in the history
Added support for translating the _betterbook.yaml file
  • Loading branch information
viztor committed Oct 25, 2014
2 parents c7f389d + 08e8554 commit 230cf9e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 6 deletions.
7 changes: 7 additions & 0 deletions src/exporttrans.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,13 @@ function main() {
templateStrings = path.join(commander.args[0], templateStrings);
var newTemplateStrings = path.join(commander.temp, "templates-strings.arb");
fs.createReadStream(templateStrings).pipe(fs.createWriteStream(newTemplateStrings));

// Get the _betterbook.yaml file, convert it to an ARB file and add it to the ZIP
var bbFile = path.join(commander.args[0], "..", "_betterbook.yaml");
var bBookYaml = YAML.load(fs.readFileSync(bbFile));
var bBookArb = common.extractStringsFromYaml(bBookYaml);
var bbArbFile = path.join(commander.temp, "betterbook.arb");
fs.writeFileSync(bbArbFile, JSON.stringify(bBookArb, null, 2));

// Create the ZIP file with the necessary files.
var zip = new AdmZip();
Expand Down
41 changes: 35 additions & 6 deletions src/importtrans.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,43 @@ function importLanguage(pathToLang, lang) {
if (commander.verbose) {
console.log("Reading strings.arb file.");
}
var arbs = fs.readFileSync(path.join(pathToLang, "strings.arb")).toString();
arbs = JSON.parse(arbs);

try {
var arbs = fs.readFileSync(path.join(pathToLang, "strings.arb")).toString();
arbs = JSON.parse(arbs);
} catch (ex) {
arbs = {};
var msg = {"file": "strings.arb", "lang": lang, "error": ex};
result.details.push(msg);
console.log(colors.red("\u2718 Error reading or parsing strings.arb file."));
}

// Copy the template strings file to the appropriate location
var newStringsFile = "_data/localized_strings/" + lang + ".json";
newStringsFile = path.join(commander.wfroot, newStringsFile);
var stringsFile = path.join(pathToLang, "templates-strings.arb");
fs.createReadStream(stringsFile).pipe(fs.createWriteStream(newStringsFile));
try {
var newStringsFile = "_data/localized_strings/" + lang + ".json";
newStringsFile = path.join(commander.wfroot, newStringsFile);
var stringsFile = path.join(pathToLang, "templates-strings.arb");
fs.createReadStream(stringsFile).pipe(fs.createWriteStream(newStringsFile));
} catch (ex) {
var msg = {"file": lang + ".json", "lang": lang, "error": ex};
result.details.push(msg);
console.log(colors.red("\u2718 Error copying template strings."));
}

// Copy the _betterbook.yaml and update it with the latest translations
try {
var bbArbs = fs.readFileSync(path.join(pathToLang, "betterbook.arb")).toString();
bbArbs = JSON.parse(bbArbs);
var betterBookFile = path.join(commander.wfroot, "_betterbook.yaml");
var enBetterBook = fs.readFileSync(betterBookFile);
var localizedBetterBook = common.replaceStringsInYaml(enBetterBook, bbArbs);
betterBookFile = path.join(commander.wfroot, "_" + lang, "_betterbook.yaml");
fs.writeFileSync(betterBookFile, localizedBetterBook);
} catch (ex) {
var msg = {"file": "_betterbook.yaml", "lang": lang, "error": ex};
result.details.push(msg);
console.log(colors.red("\u2718 Error handling _betterbook.yaml."));
}

// Get the list of files
common.recurseDir(pathToLang, pathToLang, function(file) {
Expand Down

0 comments on commit 230cf9e

Please sign in to comment.