Skip to content

Instantly share code, notes, and snippets.

@aslamanver
Created February 17, 2020 11:25
Show Gist options
  • Save aslamanver/1a80242cf9301d20b88d25732ed53475 to your computer and use it in GitHub Desktop.
Save aslamanver/1a80242cf9301d20b88d25732ed53475 to your computer and use it in GitHub Desktop.
Android XML - String value copy project to project
#!/bin/bash
import sys
import xml.etree.ElementTree as ET
org_res = 'ord_proj/res/'
mod_res = 'mod_proj/res/'
def xml_read(key, locale, res_file) :
val = None
val_path = 'values' if locale is 'en' else 'values-' + locale
file_name = (org_res if res_file is 'org' else mod_res) + val_path + '/strings.xml'
tree = ET.parse(file_name)
root = tree.getroot()
for string in root.findall('string'):
if key == string.attrib.get('name') :
val = string.text
return val
def xml_save(locale, key, value) :
val_path = 'values' if locale is 'en' else 'values-' + locale
file_name = mod_res + val_path + '/strings.xml'
tree = ET.parse(file_name)
root = tree.getroot()
exists = False
for string in root.findall('string'):
if key == string.attrib.get('name') :
string.text = value
exists = True
if not exists :
elem = ET.Element('string')
elem.set('name', key)
elem.text = value
root.append(elem)
tree.write(file_name, encoding="utf-8", xml_declaration=True, default_namespace=None, method="xml")
print(locale + ' : Success')
def main():
en_text = xml_read(sys.argv[1], 'en', 'org')
si_text = xml_read(sys.argv[1], 'si', 'org')
ta_text = xml_read(sys.argv[1], 'ta', 'org')
print('\nOriginal File')
print('EN: ' + en_text)
print('SI: ' + si_text)
print('TA: ' + ta_text)
en_text_mod = xml_read(sys.argv[1], 'en', 'mod')
si_text_mod = xml_read(sys.argv[1], 'si', 'mod')
ta_text_mod = xml_read(sys.argv[1], 'ta', 'mod')
print('\nMod File')
print('EN: ' + str(en_text_mod) or 'None')
print('SI: ' + str(si_text_mod) or 'None')
print('TA: ' + str(ta_text_mod) or 'None')
print('\nIn progress..')
xml_save('en', sys.argv[1], en_text)
xml_save('si', sys.argv[1], si_text)
xml_save('ta', sys.argv[1], ta_text)
print('---------------------------')
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment