-
Notifications
You must be signed in to change notification settings - Fork 5
/
loca.py
236 lines (228 loc) · 8.45 KB
/
loca.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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
import locale
def get_language_windows(system_lang=True):
"""
gettextなどを使うのが正解だろうが、面倒なので
Get language code based on current Windows settings.
@return: list of languages.
"""
try:
import ctypes
except ImportError:
return [locale.getdefaultlocale()[0]]
# get all locales using windows API
lcid_user = ctypes.windll.kernel32.GetUserDefaultLCID()
lcid_system = ctypes.windll.kernel32.GetSystemDefaultLCID()
if system_lang and lcid_user != lcid_system:
lcids = [lcid_user, lcid_system]
else:
lcids = [lcid_user]
return list(filter(None, [locale.windows_locale.get(i) for i in lcids]))[0] or None
loc = get_language_windows()
loca_dic = {
'EXIT': {
'default': 'Exit',
'ja_JP': '終了',
'zh_CN': '终了',
'zh_TW': '終了',
'ko_KR': '종료',
'de_DE': 'Ausfahrt'
},
'ABOUT': {
'default': 'About',
'ja_JP': 'このソフトについて',
'zh_CN': '关于这个软件',
'zh_TW': '關於這個軟件',
'ko_KR': '이 소프트웨어에 대한',
'de_DE': 'Über'
},
'ALL_UNINSTALL': {
'default': 'All uninstall',
'ja_JP': 'すべてアンインストール',
'zh_CN': '全部卸载',
'zh_TW': '全部卸載',
'ko_KR': '모두 제거',
'de_DE': 'Alle deinstallieren'
},
'UNINSTALL_EU4': {
'default': 'Uninstall a EU4 multibyte dll and mods',
'ja_JP': 'アンインストール\n・EU4日本語DLL\n・関連MOD',
},
'UNINSTALL_CK2': {
'default': 'Uninstall a CK2 multibyte dll',
'ja_JP': 'アンインストール\n・CK2日本語DLL\n・関連MOD',
},
'UNINSTALL_VIC2': {
'default': 'Uninstall a VIC2 multibyte dll',
'ja_JP': 'アンインストール\n・VIC2日本語DLL\n・関連MOD',
},
'INSTALL_CK2': {
'default': 'CK2\nmulti-byte patch',
'ja_JP': 'クルセイダーキングズ2\n日本語化',
'zh_CN': '王国风云2\n本双字节补丁',
'zh_TW': '王國風雲2\n本雙字節補丁',
'ko_KR': '크루세이더 킹즈2\n멀티 바이트 패치'
},
'INSTALL_EU4': {
'default': 'Europa Universalis IV\nmulti-byte patch',
'ja_JP': 'ヨーロッパユニバーサリス4\n日本語化',
'zh_CN': '欧陆风云4\n本双字节补丁',
'zh_TW': '歐陸風雲4\n本雙字節補丁',
'ko_KR': '유로파 유니버설리스4\n멀티 바이트 패치'
},
'INSTALL_IR': {
'default': 'Imperator: Rome\ndisplay fix patch',
'ja_JP': 'インペラトル: ローマ\n表示修正',
},
'INSTALL_VIC2': {
'default': 'Victoria II\nmulti-byte patch',
'ja_JP': 'ヴィクトリア2\n日本語化',
},
'TITLE': {
'default': 'CK2/EU4 Multibyte DLL Installer',
'ja_JP': 'CK2/EU4 日本語化DLLインストーラー',
'zh_CN': 'CK2 / EU4多字节DLL安装程序',
'zh_TW': 'CK2 / EU4多字節DLL安裝程序',
'ko_KR': 'CK2 / EU4 멀티 바이트 DLL 설치 프로그램',
'de_DE': 'CK2 / EU4 Multibyte DLL Installer'
},
'SUCCESS_BOX_MESSAGE': {
'default': 'Install Succeeded.',
'ja_JP': 'インストール成功!',
'zh_CN': '安装成功',
'zh_TW': '安裝成功',
'ko_KR': '설치 성공',
'de_DE': 'Installieren Sie erfolgreich'
},
'SUCCESS_BOX_TITLE': {
'default': 'Success',
'ja_JP': '成功!',
'zh_CN': '成功',
'zh_TW': '成功',
'ko_KR': '성공한',
'de_DE': 'Erfolg'
},
'ABOUT_BOX_MESSAGE': {
'default': 'Distribution URL: https://github.com/matanki-saito/SimpleInstaller',
'ja_JP': 'インストーラー最新版配布元: https://github.com/matanki-saito/SimpleInstaller',
'zh_CN': '分发网址: https://github.com/matanki-saito/SimpleInstaller',
'zh_TW': '分發網址: https://github.com/matanki-saito/SimpleInstaller',
'ko_KR': '게재 URL: https://github.com/matanki-saito/SimpleInstaller',
'de_DE': 'Verteilungs-URL: https://github.com/matanki-saito/SimpleInstaller'
},
'ABOUT_BOX_TITLE': {
'default': 'About',
'ja_JP': 'このソフトについて',
'zh_CN': '关于这个软件',
'zh_TW': '關於這個軟件',
'ko_KR': '이 소프트웨어에 대한',
'de_DE': 'Über'
},
'ERROR_BOX_MESSAGE': {
'default': 'Failed: please see https://github.com/matanki-saito/SimpleInstaller',
'ja_JP': '失敗:https://github.com/matanki-saito/SimpleInstallerをご覧ください',
'zh_CN': '失败:请参阅https://github.com/matanki-saito/SimpleInstaller',
'zh_TW': '失敗:請參閱https://github.com/matanki-saito/SimpleInstaller',
'ko_KR': '실패 : https://github.com/matanki-saito/SimpleInstaller를 참조하십시오.',
'de_DE': 'Fehlgeschlagen: siehe https://github.com/matanki-saito/SimpleInstaller'
},
'ERROR_BOX_TITLE': {
'default': 'Failed',
'ja_JP': '失敗',
'zh_CN': '失败',
'zh_TW': '失敗',
'ko_KR': '실패',
'de_DE': 'Fehlgeschlagen'
},
'ERR_NOT_EXIST_FINAL_CHECK_FILE': {
'default': 'Selected game itself was not found.',
'ja_JP': '選択したゲーム本体が見つかりませんでした'
},
'ERR_NOT_FIND_LIBRARYFOLDERS_VDF': {
'default': 'File libraryfolders.vdf was not found.',
'ja_JP': 'libraryfolders.vdfファイルが見つかりませんでした'
},
'ERR_NOT_FIND_STEAM_REGKEY': {
'default': 'Steam registry key was not found.',
'ja_JP': 'Steamのレジストリキーが見つかりませんでした'
},
'ERR_NOT_FIND_INSTALLPATH_IN_STEAM_REGKEY': {
'default': 'InstallPath was not found in steam registry key.',
'ja_JP': 'SteamのレジストリキーにinstallPathが見つかりませんでした'
},
'ERR_NOT_EXIST_DEFAULT_STEAMAPPS_DIR': {
'default': 'Default steamapps folder was not found.',
'ja_JP': 'デフォルトのsteamappsフォルダが見つかりませんでした'
},
'ERR_INVALID_ACF': {
'default': 'Invalid acf file.',
'ja_JP': 'acfファイルに問題が見つかりました'
},
'ERR_NOT_EXIST_GAME_INSTALL_DIR': {
'default': "Selected game's install folder was not found.",
'ja_JP': '選択したゲームのインストールフォルダが見つかりませんでした'
},
'ERR_NOT_FIND_TARGET_GAME_ON_YOUR_PC': {
'default': 'Selected game was not found on your PC.',
'ja_JP': '選択したゲームがパソコンの中に見つかりませんでした'
},
'TAB_MBDLL': {
'default': 'DLL'
},
'TAB_JPMOD': {
'default': 'Install',
'ja_JP': 'インストール'
},
'TAB_INFO': {
'default': 'About',
'ja_JP': 'このソフトについて',
'zh_CN': '关于这个软件',
'zh_TW': '關於這個軟件',
'ko_KR': '이 소프트웨어에 대한',
'de_DE': 'Über'
},
'TAB_LOG': {
'default': 'log',
'ja_JP': 'ログ',
'zh_CN': 'log',
'zh_TW': 'log',
'ko_KR': 'log'
},
'INSTALL_EU4_JPMOD': {
'default': 'Install\nEU4 JPMODs',
'ja_JP': 'EU4日本語化Mod\nインストール'
},
'INSTALL_CK2_JPMOD': {
'default': 'Install\nCK2 JPMODs',
'ja_JP': 'CK2日本語化Mod\nインストール'
},
'INSTALL_VIC2_JPMOD': {
'default': 'Install\nVIC2 JPMODs',
'ja_JP': 'VIC2日本語化Mod\nインストール'
},
'TASK_DO': {
'default': 'running...',
'ja_JP': '処理中...',
'zh_CN': '处理中',
'zh_TW': '處理中',
'ko_KR': '처리 중'
},
'TASK_FINISH': {
'default': 'finish',
'ja_JP': '処理終了',
'zh_CN': '处理结束',
'zh_TW': '處理結束',
'ko_KR': '처리 종료'
}
}
def _(key):
"""
keyから定義済みのロケーションテキストを返却する。
定義がない場合はdefault、それもない場合はkeyそのものを返却する
:param key:
:return:
"""
if loca_dic.get(key) is None:
return key
if loca_dic.get(key).get(loc) is None:
return loca_dic.get(key).get('default')
return loca_dic.get(key).get(loc)