语言转换脚本更新,支持多种语言同时转换。
authorSnickerSun <snickersun@163.com>
Thu, 29 Aug 2024 13:27:16 +0000 (21:27 +0800)
committerSnickerSun <snickersun@163.com>
Thu, 29 Aug 2024 13:27:16 +0000 (21:27 +0800)
tools/language_tool/Language_xml/convert_txt_2_xlsx.py [new file with mode: 0644]
tools/language_tool/Language_xml/extract_xlsx_to_txt.py [new file with mode: 0644]
tools/language_tool/Language_xml/language_custom.xlsx [new file with mode: 0644]
tools/language_tool/Language_xml/languagetool.py [deleted file]
tools/language_tool/make_language.sh

diff --git a/tools/language_tool/Language_xml/convert_txt_2_xlsx.py b/tools/language_tool/Language_xml/convert_txt_2_xlsx.py
new file mode 100644 (file)
index 0000000..4ce5344
--- /dev/null
@@ -0,0 +1,87 @@
+'''
+Date: 2024-07-11 20:53:59
+LastEditors: SnickerSun snickersun@163.com
+LastEditTime: 2024-08-29 21:16:09
+FilePath: /FD230/tools/language_tool/Language_xml/languagetool.py
+'''
+import xml.dom.minidom
+import os
+
+# 语言表
+languagelist = [ ["zh", "中文", "中文"],
+        [ "en", "English", "英语"],
+        [ "ja", "日本語", "日语"],
+        [ "ko", "한국어", "韩语"],                                
+        [ "es", "Español", "西班牙语"],
+        [ "ru", "Русский", "俄语"],
+        [ "hr", "Hrvatski", "克罗地亚语"],
+        [ "de", "Deutsch", "德语"],
+        [ "pt", "Português", "葡萄牙语"],
+        [ "fr", "Français", "法语"],
+        [ "nl", "Nederlands", "荷兰语"],
+        [ "it", "Italiano", "意大利语"],
+        [ "cs", "Čeština", "捷克语"],
+        [ "el", "Ελληνικά", "希腊语"],
+        [ "hi", "हिन्दी", "印地语"],                    
+        [ "id", "Bahasa Indonesia", "印尼语"],
+        [ "ms", "Bahasa Melayu", "马来语"],
+        [ "pl", "Polski", "波兰语"],
+        [ "th", "ไทย", "泰语"],                                
+        [ "vi", "Tiếng Việt", "越南语"],
+        [ "fi", "Suomi", "芬兰语"],
+        [ "ro", "Română", "罗马尼亚语"],
+        [ "tr", "Türkçe", "土耳其语"],
+        [ "fa", "فارسی", "波斯语"],                    
+        [ "ar", "العربية", "阿拉伯语"],             
+        [ "he", "עברית", "希伯来语"],                 
+        [ "uk", "Українська", "乌克兰语"],
+        [ "sv", "Svenska", "瑞典语"],
+        [ "uz", "O‘zbek", "乌兹别克语"],
+        ["az", "Azərbaycan dili", "阿塞拜疆语"]]
+
+# 从外部文件读取列表数据,使用特殊分隔符
+def read_list_from_file(file_path, delimiter):
+    with open(file_path, "r", encoding="utf-8") as f:
+        lines = f.readlines()
+        input_list = [line.strip().split(delimiter) for line in lines]
+    return input_list
+
+# 生成 XML 文件,使用特殊分隔符
+def generate_xml_from_list(input_list, output_file, lang, delimiter):
+    dom = xml.dom.minidom.getDOMImplementation().createDocument(None, "language", None)
+    root = dom.documentElement
+    root.setAttribute("id", "language")
+    root.setAttribute("direct", "ltr")
+    root.setAttribute("languageinfo", lang)
+
+    for item in input_list:
+        key = item[0]
+        value = item[1]
+
+        lanstr_element = dom.createElement("lanstr")
+        lanstr_element.setAttribute("id", key)
+        lanstr_element.setAttribute("value", value)
+        root.appendChild(lanstr_element)
+
+    with open(output_file, "w", encoding="utf-8") as f:
+        f.write(root.toprettyxml())
+
+for l in languagelist:
+    language_code = l[0]
+    txtfile = os.path.join(".","input_list_"+language_code+".txt")
+    xmlfile = os.path.join(".","language_"+language_code+".xml")
+    # print(language_code)
+    # print(txtfile)
+    # print(xmlfile)
+    if os.path.exists(txtfile):
+        print("gen "+txtfile+" to "+ xmlfile)
+        # 从外部文件读取不同语言的列表数据,使用特殊分隔符
+        input_list_txt = read_list_from_file(txtfile, "$")
+        # 生成不同语言的 XML 文件,使用特殊分隔符
+        generate_xml_from_list(input_list_txt, xmlfile, language_code, "$")
+    # else:
+        # print(txtfile+" not exist!")
+
+print("XML文件生成完成。")
+
+
diff --git a/tools/language_tool/Language_xml/extract_xlsx_to_txt.py b/tools/language_tool/Language_xml/extract_xlsx_to_txt.py
new file mode 100644 (file)
index 0000000..5273a23
--- /dev/null
@@ -0,0 +1,102 @@
+'''  
+Date: 2024-08-19 11:11:21  
+LastEditors: SnickerSun snickersun@163.com
+LastEditTime: 2024-08-29 20:59:46
+FilePath: /FD230/tools/language_tool/Language_xml/sheettool.py
+'''  
+
+import openpyxl  
+import os  
+
+# 设置路径  
+# path = r"."  
+# os.chdir(path)  # 如果需要更改工作目录可以取消注释  
+
+# 文件名称  
+input_file = "language_custom.xlsx"  
+
+# 检查文件是否存在并删除  
+# if os.path.isfile(output_file):  
+#     os.remove(output_file)  
+
+# 创建一个新的 Excel 文件  
+workbook = openpyxl.load_workbook(input_file)  
+
+# 语言表
+languagelist = [ ["zh", "中文", "中文"],
+        [ "en", "English", "英语"],
+        [ "ja", "日本語", "日语"],
+        [ "ko", "한국어", "韩语"],                                
+        [ "es", "Español", "西班牙语"],
+        [ "ru", "Русский", "俄语"],
+        [ "hr", "Hrvatski", "克罗地亚语"],
+        [ "de", "Deutsch", "德语"],
+        [ "pt", "Português", "葡萄牙语"],
+        [ "fr", "Français", "法语"],
+        [ "nl", "Nederlands", "荷兰语"],
+        [ "it", "Italiano", "意大利语"],
+        [ "cs", "Čeština", "捷克语"],
+        [ "el", "Ελληνικά", "希腊语"],
+        [ "hi", "हिन्दी", "印地语"],                    
+        [ "id", "Bahasa Indonesia", "印尼语"],
+        [ "ms", "Bahasa Melayu", "马来语"],
+        [ "pl", "Polski", "波兰语"],
+        [ "th", "ไทย", "泰语"],                                
+        [ "vi", "Tiếng Việt", "越南语"],
+        [ "fi", "Suomi", "芬兰语"],
+        [ "ro", "Română", "罗马尼亚语"],
+        [ "tr", "Türkçe", "土耳其语"],
+        [ "fa", "فارسی", "波斯语"],                    
+        [ "ar", "العربية", "阿拉伯语"],             
+        [ "he", "עברית", "希伯来语"],                 
+        [ "uk", "Українська", "乌克兰语"],
+        [ "sv", "Svenska", "瑞典语"],
+        [ "uz", "O‘zbek", "乌兹别克语"],
+        ["az", "Azərbaycan dili", "阿塞拜疆语"]]
+
+# def read_worksheet(worksheet, filename):  
+#     """  
+#     从指定文件读取内容并写入指定工作表  
+#     """  
+#     worksheet.write_row('A1', headings)  # 写入表头  
+def get_languagefilename(code):
+    for l in languagelist:
+        if l[2] == code:
+            # print("language_"+l[0]+".txt")
+            return "input_list_"+l[0]+".txt"
+    return ""
+
+if not os.path.exists("out") :
+    os.makedirs("out")
+
+for i in workbook.sheetnames:
+    fname=get_languagefilename(i) 
+    if fname=="" :
+        print("can not get filename for language "+i)
+        continue
+    print("create file "+fname)
+    fileo=open("out/"+fname, "w", encoding="utf-8") 
+    lines=[]
+    first=0
+    for ro in workbook[i].iter_rows(values_only=True):
+        if ro[0] != "id":  #此处是title就不予处理
+            if first == 0:  #第一行不带换行符
+                lines.append(ro[0]+"$"+ro[1])
+            else:
+                lines.append("\n"+ro[0]+"$"+ro[1])
+            first=1            
+    fileo.writelines(lines)
+    fileo.close()
+
+# 创建英语工作表并写入数据  
+# worksheet_en = workbook.add_worksheet("英文")  
+# write_to_worksheet(worksheet_en, "input_list_en.txt")  
+
+# 创建中文工作表并写入数据  
+# worksheet_zh = workbook.add_worksheet("中文")  
+# write_to_worksheet(worksheet_zh, "input_list_zh.txt")  
+
+# 关闭工作簿  
+workbook.close()
+
+print("脚本生成表格文件执行完成。")
\ No newline at end of file
diff --git a/tools/language_tool/Language_xml/language_custom.xlsx b/tools/language_tool/Language_xml/language_custom.xlsx
new file mode 100644 (file)
index 0000000..3396fca
Binary files /dev/null and b/tools/language_tool/Language_xml/language_custom.xlsx differ
diff --git a/tools/language_tool/Language_xml/languagetool.py b/tools/language_tool/Language_xml/languagetool.py
deleted file mode 100644 (file)
index 982aca8..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-'''
-Date: 2024-07-11 20:53:59
-LastEditors: Caisking 3449750381@qq.com
-LastEditTime: 2024-08-19 11:13:38
-FilePath: /FD230/tools/language_tool/Language_xml/languagetool.py
-'''
-import xml.dom.minidom
-
-# 从外部文件读取列表数据,使用特殊分隔符
-def read_list_from_file(file_path, delimiter):
-    with open(file_path, "r", encoding="utf-8") as f:
-        lines = f.readlines()
-        input_list = [line.strip().split(delimiter) for line in lines]
-    return input_list
-
-# 生成 XML 文件,使用特殊分隔符
-def generate_xml_from_list(input_list, output_file, lang, delimiter):
-    dom = xml.dom.minidom.getDOMImplementation().createDocument(None, "language", None)
-    root = dom.documentElement
-    root.setAttribute("id", "language")
-    root.setAttribute("direct", "ltr")
-    root.setAttribute("languageinfo", lang)
-
-    for item in input_list:
-        key = item[0]
-        value = item[1]
-
-        lanstr_element = dom.createElement("lanstr")
-        lanstr_element.setAttribute("id", key)
-        lanstr_element.setAttribute("value", value)
-        root.appendChild(lanstr_element)
-
-    with open(output_file, "w", encoding="utf-8") as f:
-        f.write(root.toprettyxml())
-
-        
-# 从外部文件读取不同语言的列表数据,使用特殊分隔符
-input_list_en = read_list_from_file("./input_list_en.txt", "$")
-input_list_zh = read_list_from_file("./input_list_zh.txt", "$")
-#input_list_ja = read_list_from_file("./input_list_ja.txt", "$")
-#input_list_de = read_list_from_file("./input_list_de.txt", "$")
-
-
-# 生成不同语言的 XML 文件,使用特殊分隔符
-generate_xml_from_list(input_list_en, "./language_en.xml", "en", "$")
-generate_xml_from_list(input_list_zh, "./language_zh.xml", "zh", "$")
-#generate_xml_from_list(input_list_ja, "./language_ja.xml", "ja", "$")
-#generate_xml_from_list(input_list_de, "./language_de.xml", "de", "$")
-
-print("XML文件生成完成。")
-
-
index a85449c..486c969 100644 (file)
@@ -1,8 +1,8 @@
 #!/bin/bash  
 ###
  # @Date: 2024-07-11 20:53:59
- # @LastEditors: Caisking 3449750381@qq.com
- # @LastEditTime: 2024-08-19 11:16:33
+ # @LastEditors: SnickerSun snickersun@163.com
+ # @LastEditTime: 2024-08-29 21:24:45
  # @FilePath: /FD230/tools/language_tool/make_language.sh
 ### 
 
@@ -11,8 +11,8 @@ set -e  # 在命令失败时退出
 # 进入目录 Language_xml  
 cd Language_xml/  
 
-# 运行 languagetool.py  
-python languagetool.py  
+# 运行 convert_txt_2_xlsx.py 
+python convert_txt_2_xlsx.py  
 
 # 回到上级目录  
 cd ..  
@@ -39,4 +39,4 @@ echo "脚本复制文件执行完成。"
 cd ../Language_xml/
 
 #运行 生成xlsx表格
-python ./sheettool.py
\ No newline at end of file
+python ./sheettool.py