def properties_to_xwiki_properties(file_path, path_prefix, base_file_name, lang): """Convert a java properties file to an XWiki java properties file""" # Directory of the translation file relative_dir_path = os.path.dirname(file_path) # Translation file name without the extension file_name = os.path.basename(file_path).split(".")[0] lang_delimiter_index = file_name.rfind("_" + lang) if lang_delimiter_index > 0: file_name = file_name[:lang_delimiter_index] # Weblate translation file properties_path = "{}_{}.properties".format( path_prefix + TRANSLATION_PREFIX + relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() with open(properties_path, "r") as f_properties: properties.load(f_properties.read()) # Use the base translation file as template base_properties = PropertiesFile() with open(path_prefix + base_file_name, "r") as f_properties: base_properties.load(f_properties.read()) # Replace keys with the current translation base_properties.replace_with(properties) base_properties.filter_export() base_properties.write(path_prefix + file_path)
def properties_to_xwiki_xml(file_path, path_prefix, base_file_name, lang): """Convert a java properties file to an XWiki XML file""" # Directory of the translation file relative_dir_path = os.path.dirname(file_path) # Translation file name without the extension file_name = os.path.basename(file_path).split(".")[0] # Weblate translation file properties_path = "{}_{}.properties".format( path_prefix + TRANSLATION_PREFIX + relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() with open(properties_path, "r") as f_properties: properties.load(f_properties.read()) title = properties.get_value("{}.title".format(file_name)) content = properties.get_value("{}.content".format(file_name)) if content: if not os.path.isfile(path_prefix + file_path): # Create the xml translation if it doesn't exists XmlFile.create_xml_file(path_prefix + file_path, path_prefix + base_file_name, lang) xml_file = XmlFile() xml_file.load(path_prefix + file_path) xml_file.set_tag_content("title", title) xml_file.set_tag_content("content", content, ['xwikidoc']) xml_file.write(path_prefix + file_path) else: print "Warning: {} translation content is empty. Skipping it.".format( properties_path)
def properties_to_xwiki_xml_properties(file_path, path_prefix, base_file_name, lang): """Convert a java properties file to an XWiki XML file with properties""" # Directory of the translation file relative_dir_path = os.path.dirname(file_path) # Translation file name without the extension file_name = os.path.basename(file_path).split(".")[0] # Weblate translation file properties_path = "{}_{}.properties".format( path_prefix + TRANSLATION_PREFIX + relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() with open(properties_path, "r") as f_properties: properties.load(f_properties.read()) # Use the base translation file as template xml_base_file = XmlFile() xml_base_file.load(path_prefix + base_file_name) content = xml_base_file.get_tag_content("content") base_properties = PropertiesFile() base_properties.load(content) # Replace keys with the current translation base_properties.replace_with(properties) base_properties.filter_export() xml_file = XmlFile() xml_file.load(path_prefix + file_path) xml_file.set_tag_content("content", base_properties.document) xml_file.write(path_prefix + file_path)
def xwiki_xml_properties_to_properties(path, path_prefix, lang): """Convert an XWiki XML file with properties to a java properties file""" relative_dir_path = os.path.dirname(path) file_name = os.path.basename(path).split(".")[0] properties = PropertiesFile() xml_file = XmlFile(path_prefix + path) content = xml_file.get_tag_content("content") properties.load(content) properties_path = "{}.translation/{}_{}.properties".format( path_prefix, relative_dir_path + "/" + file_name, lang) properties.write(properties_path)
def properties_to_xwiki_xml_properties(path, path_prefix, lang): """Convert a java properties file to an XWiki XML file with properties""" relative_dir_path = os.path.dirname(path) file_name = os.path.basename(path).split(".")[0] properties_path = "{}.translation/{}_{}.properties".format( path_prefix, relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() with open(properties_path, "r") as f_properties: properties.load(f_properties.read()) xml_file = XmlFile(path_prefix + path) xml_file.set_tag_content("content", properties.document) xml_file.write()
def xwiki_properties_to_properties(path, path_prefix, lang): """Convert an XWiki properties file to a java properties file""" relative_dir_path = os.path.dirname(path) file_name = os.path.basename(path).split(".")[0] lang_delimiter_index = file_name.rfind("_") if lang_delimiter_index > 0: file_name = file_name[:lang_delimiter_index] properties = PropertiesFile() with open(path_prefix + path, "r") as f_properties: properties.load(f_properties.read()) properties_path = "{}.translation/{}_{}.properties".format( path_prefix, relative_dir_path + "/" + file_name, lang) properties.write(properties_path)
def open_or_create_translation(base_file_name, file_name, file_type, lang): properties = PropertiesFile() xml = None if file_type == FileType.PROPERTIES: if os.path.isfile(file_name): with open(file_name, "r") as f: document = f.read() properties.load(document) else: if os.path.isfile(file_name): xml = XmlFile() xml.load(file_name) else: xml = XmlFile.create_xml_file(file_name, base_file_name, lang) properties.load(xml.get_tag_content('content')) return (properties, xml)
def xwiki_xml_properties_to_properties(file_path, path_prefix, lang): """Convert an XWiki XML file with properties to a java properties file""" # Directory of the translation file relative_dir_path = os.path.dirname(file_path) # Translation file name without the extension file_name = os.path.basename(file_path).split(".")[0] # Weblate translation file properties_path = "{}_{}.properties".format( path_prefix + TRANSLATION_PREFIX + relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() xml_file = XmlFile() xml_file.load(path_prefix + file_path) content = xml_file.get_tag_content("content") properties.load(content) properties.filter_import() properties.write(properties_path)
def xwiki_properties_to_properties(file_path, path_prefix, lang): """Convert an XWiki properties file to a java properties file""" # Directory of the translation file relative_dir_path = os.path.dirname(file_path) # Translation file name without the extension file_name = os.path.basename(file_path).split(".")[0] lang_delimiter_index = file_name.rfind("_" + lang) if lang_delimiter_index > 0: file_name = file_name[:lang_delimiter_index] # Weblate translation file properties_path = "{}_{}.properties".format( path_prefix + TRANSLATION_PREFIX + relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() with open(path_prefix + file_path, "r") as f_properties: properties.load(f_properties.read()) properties.filter_import() properties.write(properties_path)
def properties_to_xwiki_xml(file_path, path_prefix, lang): """Convert a java properties file to an XWiki XML file""" # Directory of the translation file relative_dir_path = os.path.dirname(file_path) # Translation file name without the extension file_name = os.path.basename(file_path).split(".")[0] # Weblate translation file properties_path = "{}_{}.properties".format( path_prefix + TRANSLATION_PREFIX + relative_dir_path + "/" + file_name, lang) properties = PropertiesFile() with open(properties_path, "r") as f_properties: properties.load(f_properties.read()) title = properties.get_value("{}.title".format(file_name)) content = properties.get_value("{}.content".format(file_name)) xml_file = XmlFile() xml_file.load(path_prefix + file_path) xml_file.set_tag_content("title", title) xml_file.set_tag_content("content", content) xml_file.write(path_prefix + file_path)