예제 #1
0
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())

    if not properties.is_empty():
        # 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)
    else:
        print "Warning: {} translation is empty. Skipping it.".format(properties_path)
예제 #2
0
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())

    if not properties.is_empty():
        # 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)
    else:
        print "Warning: {} translation is empty. Skipping it.".format(
            properties_path)
예제 #3
0
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)
예제 #4
0
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)