Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save arnaud33200/a5b89f911b7484296718f8cefd6bcfae to your computer and use it in GitHub Desktop.
Save arnaud33200/a5b89f911b7484296718f8cefd6bcfae to your computer and use it in GitHub Desktop.
/**
* Convert Spreadsheet data into strings.xml (android) and Localized.string (ios)
* requierment:
* 3 sheets should be create (wordings, android, ios)
* wording sheet should have 3 column (comment_flag, key, value)
**/
function convertSpreadSheetToMobileWordingsFile() {
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadSheet.getSheets()[0];
var data = sheet.getDataRange().getValues();
var generatedAndroidFile = "<resources>" + "\n";
var generatedIosFile = "";
for (var i = 1; i < data.length; i++) {
var comment = data[i][0];
var key = data[i][1];
var value = data[i][2];
if (key == '') {
generatedAndroidFile += "\n";
generatedIosFile += "\n"
continue;
}
generatedAndroidFile += printLineAndroid(comment, key, value);
generatedIosFile += printLineIos(comment, key, value);
}
generatedAndroidFile += "\n</resources>";
wroteGeneratedFile(1, generatedAndroidFile);
wroteGeneratedFile(2, generatedIosFile);
}
function wroteGeneratedFile(sheetNumber, generatedFile) {
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetToWrite = spreadSheet.getSheets()[sheetNumber];
var range = sheetToWrite.getRange('A1');
range.clear();
range.setValue(generatedFile);
// set style
range.setWrap(true);
range.setBackground("#2e2e2f");
range.setFontColor("#ffffff");
}
// ----- ANDROID -----
function printLineAndroid(comment, key, value) {
if (comment == '//') {
var newLine = "<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->\n";
newLine += "<!-- " + key + " -->\n\n";
return newLine;
}
var newLine = "\t<string name=\"" + key + "\">" + value + "</string>\n";
return newLine;
}
// ----- IOS -----
function printLineIos(comment, key, value) {
if (comment == '//') {
var newLine = "// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
newLine += "// " + key + "\n\n";
return newLine;
}
var newLine = "\"" + key + "\" = \"" + value + "\";\n";
newLine = newLine.replace('%1$s', '%1$@');
newLine = newLine.replace('%2$s', '%2$@');
return newLine;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment