def import_translations_from_file(lang, fname, editor): from frappe.translate import read_csv_file frappe.local.session.user = editor for m in read_csv_file(fname): src = frappe.db.get_value("Translated Message", { "language": lang, "source": m[0] }, ["name", "source", "translated"]) if src and src[2] != m[1]: message = frappe.get_doc("Translated Message", src[0]) message.translated = m[1] try: message.save() frappe.db.commit() print src[1] + " updated" except frappe.ValidationError: print src[1] + " ignored" else: message = frappe.new_doc("Translated Message") message.source = m[0] message.translated = m[1] message.language = lang print "saving", m[0] message.save()
def import_translations(): apps_path = frappe.get_app_path("frappe", "..", "..") for app in os.listdir(apps_path): translations_folder = os.path.join(apps_path, app, app, "translations") if os.path.exists(translations_folder): for lang in frappe.db.sql_list("select name from tabLanguage"): path = os.path.join(translations_folder, lang + ".csv") if os.path.exists(path): print "Evaluating {0}...".format(lang) data = read_csv_file(path) for m in data: if not frappe.db.get_value("Translated Message", { "language": lang, "source": m[0] }): frappe.get_doc({ "doctype": "Translated Message", "language": lang, "source": m[0], "translated": m[1], "verfied": 0 }).insert() frappe.db.commit() else: print path + " does not exist"
def export_translations(): # ssh -p 9999 [email protected] "cd /home/frappe/frappe-bench/apps/frappe && git diff" | patch -p1 for lang in get_all_languages(): if lang!="en": print("exporting " + lang) edited = dict(frappe.db.sql("""select source, translated from `tabTranslated Message` where language=%s""", lang)) for app in frappe.get_all_apps(True): path = os.path.join(frappe.get_app_path(app, "translations", lang + ".csv")) if os.path.exists(path): # only update existing strings current = dict(read_csv_file(path)) for key in current: current[key] = edited.get(key) or current[key] write_translations_file(app, lang, current, sorted(list(current)))
def import_translations_from_file(lang, fname, editor): from frappe.translate import read_csv_file frappe.local.session.user = editor for m in read_csv_file(fname): src = frappe.db.get_value("Translated Message", {"language": lang, "source": m[0]}, ["name", "source", "translated"]) if src and src[2] != m[1]: message = frappe.get_doc("Translated Message", src[0]) message.translated = m[1] try: message.save() frappe.db.commit() print(src[1] + " updated") except frappe.ValidationError: print(src[1] + " ignored") else: message = frappe.new_doc("Translated Message") message.source = m[0] message.translated = m[1] message.language = lang print("saving", m[0]) message.save()
def import_translations(): apps_path = frappe.get_app_path("frappe", "..", "..") for app in os.listdir(apps_path): translations_folder = os.path.join(apps_path, app, app, "translations") if os.path.exists(translations_folder): for lang in frappe.db.sql_list("select name from tabLanguage"): path = os.path.join(translations_folder, lang + ".csv") if os.path.exists(path): print("Evaluating {0}...".format(lang)) data = read_csv_file(path) for m in data: if not frappe.db.get_value("Translated Message", {"language": lang, "source": m[0]}): frappe.get_doc({ "doctype": "Translated Message", "language": lang, "source": m[0], "translated": m[1], "verfied": 0 }).insert() frappe.db.commit() else: print(path + " does not exist")