mirror of
https://git.minetest.land/Mineclonia/Mineclonia.git
synced 2024-11-18 17:35:11 +00:00
65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
# Output indicator
|
|
# !< Indicates a text line without '=' in template.txt
|
|
# << Indicates an untranslated line in template.txt or an extra line in translate file (.tr)
|
|
# !> Indicates a text line without '=' in translate file (.tr)
|
|
# >> Indicates an unknown translated line in translate file (.tr)
|
|
# >= Indicate an untrannslated entry in translate file (.tr)
|
|
# >> Missing file: Indicates a missing translate file (.tr)
|
|
|
|
import os
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(description='Check translation file with template.txt for a given language.')
|
|
parser.add_argument("language", help='language code')
|
|
args = parser.parse_args()
|
|
|
|
path = "../mods/"
|
|
code_lang = args.language
|
|
|
|
def LoadTranslateFile(filename, direction, ref=None):
|
|
result = set()
|
|
file = open(filename, 'r', encoding="utf-8")
|
|
for line in file:
|
|
line = line.strip()
|
|
if line.startswith('#') or line == '':
|
|
continue
|
|
if '=' in line:
|
|
parts = line.split('=')
|
|
result.add(parts[0])
|
|
if ref is not None and parts[1] == '' and parts[1] not in ref :
|
|
print ('>= ' + parts[0])
|
|
else:
|
|
print (direction + line)
|
|
|
|
return result
|
|
|
|
def CompareFiles(f1, f2):
|
|
r1 = LoadTranslateFile(f1, "!< ")
|
|
r2 = LoadTranslateFile(f2, "!> ", r1)
|
|
|
|
for key in r1.difference(r2):
|
|
print (">> " + key )
|
|
for key in r2.difference(r1):
|
|
print ("<< " + key )
|
|
|
|
for root, directories, files in os.walk(path):
|
|
if root.endswith('locale'):
|
|
template = None
|
|
language = None
|
|
|
|
for name in files:
|
|
if name == 'template.txt':
|
|
template = os.path.join(root, name)
|
|
if name.endswith("." + code_lang + ".tr"):
|
|
language = os.path.join(root, name)
|
|
|
|
if template is not None:
|
|
if language is None:
|
|
language = os.path.join(root, os.path.basename(os.path.dirname(root))) + "." + code_lang + ".tr"
|
|
|
|
if os.path.exists(language) and os.path.isfile(language):
|
|
print("Compare files %s with %s" % (template, language))
|
|
CompareFiles(template, language)
|
|
else:
|
|
LoadTranslateFile(template, "!< ")
|
|
print(">> Missing file = " + language)
|