Tuesday 7 December 2021

RepLace Multi-Language Programmatically

import org.json.JSONArray
import java.io.*
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import java.nio.file.StandardOpenOption


fun main() {

// CLEAR TEXT FILE WITHOUT DELETING IT
val pathObject = Paths.get("C:\\Projects\\Project\\Localizable.strings")
Files.newBufferedWriter(pathObject , StandardOpenOption.TRUNCATE_EXISTING);
Files.newInputStream(pathObject , StandardOpenOption.TRUNCATE_EXISTING);


// code
var count = 0
var match = 0
var not = 0
var isMatched = false

val englishLangData = readJson1()
val otherLangData = readJson3()
val list = englishLangData.split(";")
// Main Local.strings
for (item in list) {
isMatched = false
try {
val key1 = item.trim().split("=")[1].replace("\"", "").toString().trim()
val value1 = item.trim().split("=")[1].replace("\"", "").toString().trim()

// CODE- language to be replaced
val jsonArr = JSONArray(otherLangData)
for (item2 in jsonArr) {
val s = item2.toString()
val j1 = JSONArray(s)
val s1 = j1[0].toString().trim()
val s2 = j1[1].toString().trim()
if (s1.equals(value1, true)) {

val s = "\""+key1+"\" = \""+s2+"\";"
val s2 = "\n" + s
val fileWriter = FileWriter("C:\\Projects\\Project\\Localizable.strings", true)
fileWriter.write(s2)
fileWriter.close()
isMatched = true
match = match + 1
break
}
}

if (isMatched == false){
val s = "\""+key1+"\" = \""+value1+"\";"
val s2 = "\n" + s
val fileWriter = FileWriter("C:\\Projects\\Project\\Localizable.strings", true)
fileWriter.write(s2)
fileWriter.close()
}
} catch (exc: Exception) {}

count = count + 1
if (count == 460){
break
}
}


println("matched size : " + match)
println("not matched size : " + not)

}


fun readJson1(): String {

val writer: Writer = StringWriter()
val buffer = CharArray(1024)

try {
val file1 = File("C:\\Projects\\Project\\EicherLiveStaticStrings_Malyalam.xlsx")
val file = File("C:\\Projects\\Project\\Localizable_main_formatted.strings")
val reader: Reader = BufferedReader(FileReader(file))
var n1: Int = 0
while (reader.read(buffer).also({ n1 = it }) != -1) {
writer.write(buffer, 0, n1)
}
} finally {
// fil.close()
}

val jsonString: String = writer.toString()
return jsonString
}


fun readJson3(): String {

val writer: Writer = StringWriter()
val buffer = CharArray(1024)

try {
val file = File("C:\\Projects\\Project\\formatted_malayalam_arr_json.json")
val reader: Reader = BufferedReader(FileReader(file))
var n1: Int = 0
while (reader.read(buffer).also({ n1 = it }) != -1) {
writer.write(buffer, 0, n1)
}
} finally {
// fil.close()
}

val jsonString: String = writer.toString()
return jsonString
}