forked from pztrn/urtrator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtranslations_update.py
executable file
·87 lines (72 loc) · 3.03 KB
/
translations_update.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env python3
# URTator - Urban Terror server browser and game launcher, written in
# Go.
#
# Copyright (c) 2016-2017, Stanislav N. aka pztrn.
# All rights reserved.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This is a translations updating tool. It will parse thru all
# source, compile JSONs and put them into "translations/en_US"
# directory for later use.
import glob
import json
import os
import sys
FILES_TO_TRANSLATE = []
TRANSLATABLE_JSON = {}
SOURCE_PATH = ""
def get_files_for_translation():
print("Getting files list for translation...")
SOURCE_PATH = os.path.dirname(os.path.realpath(__file__))
print("Directory:", SOURCE_PATH)
for file in glob.iglob(os.path.join(SOURCE_PATH, "**", "*.go")):
print(file)
FILES_TO_TRANSLATE.append(file)
for file in glob.iglob(os.path.join(SOURCE_PATH, "ui", "**", "*.go")):
print(file)
FILES_TO_TRANSLATE.append(file)
# Append main file also.
FILES_TO_TRANSLATE.append("urtrator.go")
print("Found " + str(len(FILES_TO_TRANSLATE)) + " files.")
def generate_default_translation():
print("Generating default translations...")
for file in FILES_TO_TRANSLATE:
translations_found = False
file_data = open(os.path.join(SOURCE_PATH, file), "r").read().split("\n")
for line in file_data:
if "Translator.Translate(" in line:
translations_found = True
translatable_string = line.split("Translator.Translate(")[1].split("\", ")[0]
# Skip variables translation.
if translatable_string[1] != "\"":
continue
translatable_string = translatable_string[1:]
TRANSLATABLE_JSON[translatable_string] = translatable_string
# Just a stat :)
print("Got " + str(len(TRANSLATABLE_JSON)) + " translations.")
def save_sections():
print("Saving translations...")
file_to_write = open(os.path.join(SOURCE_PATH, "translations", "en_US", "strings.json"), "w")
file_to_write.write(json.dumps(TRANSLATABLE_JSON, indent = 4))
file_to_write.close()
print("Saving empty translation...")
for item in TRANSLATABLE_JSON:
TRANSLATABLE_JSON[item] = ""
file_to_write = open(os.path.join(SOURCE_PATH, "translations", "empty", "strings.json"), "w")
file_to_write.write(json.dumps(TRANSLATABLE_JSON, indent = 4))
file_to_write.close()
get_files_for_translation()
generate_default_translation()
save_sections()