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(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 convert(file_type, file_name_properties, path_prefix, base_file_name, lang): """Convert the translation file depending on its type""" # Current file name with xml extension file_name_xml = file_name_properties.replace('_{}.properties'.format(lang), '.{}.xml'.format(lang)) if file_type in [FileType.XML_PROPERTIES, FileType.XML]: if not os.path.isfile(PATH_PREFIX + file_name_xml): # Create the xml translation if it doesn't exists XmlFile.create_xml_file(PATH_PREFIX + file_name_xml, path_prefix + base_file_name, lang) if file_type == FileType.PROPERTIES: properties_to_xwiki_properties(file_name_properties, path_prefix, base_file_name, lang) elif file_type == FileType.XML_PROPERTIES: properties_to_xwiki_xml_properties(file_name_xml, path_prefix, base_file_name, lang) elif file_type == FileType.XML: properties_to_xwiki_xml(file_name_xml, path_prefix, lang)
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()) if not properties.is_empty(): 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) # 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) else: print "Warning: {} translation 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()) if not properties.is_empty(): 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) # 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) else: print "Warning: {} translation is empty. Skipping it.".format(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)