def main(): cd = sys.path[0] translation_path = os.path.join(cd, '../translation') lang_file = os.path.join(translation_path, 'lang/en.lang.csv') with open(lang_file, 'rt', encoding='utf-8') as fp: fp.readline() lines = [ LangLine.from_csv_line(line).origin for line in fp.readlines() ] pregame_file = os.path.join(translation_path, 'en_pregame.lua') client_file = os.path.join(translation_path, 'en_client.lua') ui_mgr = UiMgr() ui_mgr.load_lua_file(pregame_file) ui_mgr.load_lua_file(client_file) lines.extend([ui_line.origin for ui_line in ui_mgr.ui_lines.values()]) # 寻找累类似 <<1>> 的标记 tagger = re.compile(r'<<.*?>>') tags = set() # 搜索 去重 for line in lines: for match in tagger.finditer(line): tags.add(match.group(0)) # 排序输出 for tag in sorted(tags): print(tag)
def main(): lang = 'zh' if len(sys.argv) != 2: usage() sys.exit(2) xls_path = sys.argv[1] cd = sys.path[0] translation_path = os.path.join(cd, '../translation') translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) ui_mgr = UiMgr() # load lua pregame_src = os.path.join(translation_path, 'en_pregame.lua') ui_mgr.load_lua_file(pregame_src) client_src = os.path.join(translation_path, 'en_client.lua') ui_mgr.load_lua_file(client_src) # load translation data_from_xls = load_xls(xls_path) ui_mgr.apply_translate_from_xls(data_from_xls) ui_mgr.apply_translate_from_xls(data_from_xls) # save result txt_lines = ui_mgr.get_txt_lines(replace=True) with open(translate_file, 'wt', encoding='utf-8') as fp: fp.writelines(txt_lines) print('save translate file succeed.')
def main(): lang = 'zh' if len(sys.argv) == 2: lang = sys.argv[1] cd = sys.path[0] translation_path = os.path.join(cd, '../translation') # load lua pregame_file = os.path.join(translation_path, 'en_pregame.lua') client_file = os.path.join(translation_path, 'en_client.lua') ui_mgr = UiMgr() ui_mgr.load_lua_file(pregame_file) ui_mgr.load_lua_file(client_file) print('read %d lines.' % len(ui_mgr.ui_lines)) # save merged lines translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) if os.path.exists(translate_file): choose = input('%s_translate.txt file exists, merge? [y/N]' % lang) choose = choose.lower().strip() if choose != '' and choose[0] == 'y': print('merging to translate file.') ui_mgr.apply_translate_from_txt_file(translate_file) else: print('skipped.') return with open(translate_file, 'wt', encoding='utf-8') as fp: fp.writelines(ui_mgr.get_txt_lines(replace=True)) print('save translate file succeed.')
def main(): lang = 'zh' if len(sys.argv) == 2: lang = sys.argv[1] cd = sys.path[0] translation_path = os.path.join(cd, '../translation') # load lua pregame_file = os.path.join(translation_path, 'en_pregame.lua') client_file = os.path.join(translation_path, 'en_client.lua') ui_mgr = UiMgr() log.debug('loading lua file %s' % pregame_file) ui_mgr.load_lua_file(pregame_file) log.debug('loading lua file %s' % client_file) ui_mgr.load_lua_file(client_file) log.info('read %d lines.' % len(ui_mgr.ui_lines)) # save merged lines translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) if os.path.exists(translate_file): choose = input('%s_translate.txt file exists, merge? [y/N]' % lang) choose = choose.lower().strip() if choose != '' and choose[0] == 'y': log.info('merging to translate file.') ui_mgr.apply_translate_from_txt_file(translate_file) else: log.info('skipped.') return with open(translate_file, 'wt', encoding='utf-8') as fp: fp.writelines(ui_mgr.get_txt_lines(replace=True)) log.info('save translate file succeed.')
def main(): cd = sys.path[0] translation_path = os.path.join(cd, '../translation') lang_file = os.path.join(translation_path, 'lang/en.lang.csv') with open(lang_file, 'rt', encoding='utf-8') as fp: fp.readline() lines = [LangLine.from_csv_line(line).origin for line in fp.readlines()] pregame_file = os.path.join(translation_path, 'en_pregame.lua') client_file = os.path.join(translation_path, 'en_client.lua') ui_mgr = UiMgr() ui_mgr.load_lua_file(pregame_file) ui_mgr.load_lua_file(client_file) lines.extend([ui_line.origin for ui_line in ui_mgr.ui_lines.values()]) # 寻找累类似 <<1>> 的标记 tagger = re.compile(r'<<.*?>>') tags = set() # 搜索 去重 for line in lines: for match in tagger.finditer(line): tags.add(match.group(0)) # 排序输出 for tag in sorted(tags): print(tag)
def main(): lang = 'zh' if len(sys.argv) != 2: usage() sys.exit(2) xls_path = sys.argv[1] cd = sys.path[0] translation_path = os.path.join(cd, '../translation') translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) ui_mgr = UiMgr() # load lua pregame_src = os.path.join(translation_path, 'en_pregame.lua') ui_mgr.load_lua_file(pregame_src) client_src = os.path.join(translation_path, 'en_client.lua') ui_mgr.load_lua_file(client_src) # load translation data_from_xls = load_xls(xls_path) ui_mgr.apply_translate_from_xls(data_from_xls, need_check=False) # save result txt_lines = ui_mgr.get_txt_lines(replace=True) with open(translate_file, 'wt', encoding='utf-8') as fp: fp.writelines(txt_lines) log.info('save translate file succeed.')
def main(): lang = 'zh' # getopt try: opts, args = getopt.getopt(sys.argv[1:], 'l:') except getopt.GetoptError as e: log.error(e) sys.exit(2) for o, a in opts: if o == '-l': lang = a cd = sys.path[0] translation_path = os.path.join(cd, '../translation') dest_path = translation_path ui_mgr = UiMgr() # load translation translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) ui_mgr.load_lua_file(translate_file) ui_mgr.apply_translate_from_txt_file( translate_file) # _translate.txt 中同时存了原文和译文 rows = ui_mgr.get_rows() rows = [row for name, row in sorted(rows.items())] header = UiRow('名称') \ .set_id('编号') \ .set_origin('原文') \ .set_translation('译文') \ .set_translator('初翻人员') \ .set_proofreader('校对') \ .set_refiner('润色') \ .set_comments('备注') rows[0:0] = [ header, ] # save xls_file = os.path.join(dest_path, '%s_translate.xlsx' % lang) plain_rows = [row.to_list() for row in rows ] # list of [id, name, origin, translation, ...] save_xlsx(xls_file, plain_rows)
def main(): lang = 'zh' # getopt try: opts, args = getopt.getopt(sys.argv[1:], 'l:') except getopt.GetoptError as e: log.error(e) sys.exit(2) for o, a in opts: if o == '-l': lang = a cd = sys.path[0] translation_path = os.path.join(cd, '../translation') dest_path = translation_path ui_mgr = UiMgr() # load translation translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) ui_mgr.load_lua_file(translate_file) ui_mgr.apply_translate_from_txt_file(translate_file) # _translate.txt 中同时存了原文和译文 rows = ui_mgr.get_rows() rows = [row for name, row in sorted(rows.items())] header = UiRow('名称') \ .set_id('编号') \ .set_origin('原文') \ .set_translation('译文') \ .set_translator('初翻人员') \ .set_proofreader('校对') \ .set_refiner('润色') \ .set_comments('备注') rows[0:0] = [header, ] # save xls_file = os.path.join(dest_path, '%s_translate.xlsx' % lang) plain_rows = [row.to_list() for row in rows] # list of [id, name, origin, translation, ...] save_xlsx(xls_file, plain_rows)
def main(): lang = 'zh' mode = 'both' # origin, translation, both # getopt try: opts, args = getopt.getopt(sys.argv[1:], 'l:m:h') except getopt.GetoptError as e: print(e) usage() sys.exit(2) for o, a in opts: if o == '-l': lang = a.lower() elif o == '-m': mode = a.lower() if mode not in ('origin', 'translation', 'both'): usage() sys.exit(2) elif o == '-h': usage() return cd = sys.path[0] translation_path = os.path.join(cd, '../translation') dest_path = os.path.join(cd, '../AddOns/EsoUI/lang') # load header header_file = os.path.join(translation_path, 'str_header.txt') with open(header_file, 'rt', encoding='utf-8') as fp: header = fp.readlines() ui_mgr_pregame = UiMgr() ui_mgr_client = UiMgr() # load lua pregame_src = os.path.join(translation_path, 'en_pregame.lua') ui_mgr_pregame.load_lua_file(pregame_src) client_src = os.path.join(translation_path, 'en_client.lua') ui_mgr_client.load_lua_file(client_src) # load translation translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) with open(translate_file, 'rt', encoding='utf-8') as fp: lines = fp.readlines() ui_mgr_pregame.apply_translate_from_txt_lines(lines) ui_mgr_client.apply_translate_from_txt_lines(lines) print('mode: %s' % mode) # save str pregame_dest = os.path.join(dest_path, '%s_pregame.str' % lang) pregame_lines = ui_mgr_pregame.get_str_lines(mode) print('save to %s.' % pregame_dest) with open(pregame_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) fp.writelines(pregame_lines) client_dest = os.path.join(dest_path, '%s_client.str' % lang) client_lines = ui_mgr_client.get_str_lines(mode) print('save to %s.' % client_dest) with open(client_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) fp.writelines(client_lines) # save en str (fix fonts) if lang != 'en': pregame_dest = os.path.join(dest_path, 'en_pregame.str') pregame_lines = ui_mgr_pregame.get_str_lines(mode) print('save to %s.' % pregame_dest) with open(pregame_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) # keep version info for line in pregame_lines: if line.startswith('[SI_VERSION] ='): fp.write(line + '\n') client_dest = os.path.join(dest_path, 'en_client.str') client_lines = ui_mgr_client.get_str_lines(mode) print('save to %s.' % client_dest) with open(client_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) # keep version info for line in client_lines: if line.startswith('[SI_VERSION] ='): fp.write(line + '\n')
def main(): lang = 'zh' mode = 'both' # origin, translation, both # getopt try: opts, args = getopt.getopt(sys.argv[1:], 'l:m:h') except getopt.GetoptError as e: log.error(e) usage() sys.exit(2) for o, a in opts: if o == '-l': lang = a.lower() elif o == '-m': mode = a.lower() if mode not in ('origin', 'translation', 'both'): usage() sys.exit(2) elif o == '-h': usage() return cd = sys.path[0] translation_path = os.path.join(cd, '../translation') dest_path = os.path.join(cd, '../AddOns/EsoUI/lang') # load header header_file = os.path.join(translation_path, 'str_header.txt') with open(header_file, 'rt', encoding='utf-8') as fp: header = fp.readlines() ui_mgr_pregame = UiMgr() ui_mgr_client = UiMgr() # load lua pregame_src = os.path.join(translation_path, 'en_pregame.lua') ui_mgr_pregame.load_lua_file(pregame_src) client_src = os.path.join(translation_path, 'en_client.lua') ui_mgr_client.load_lua_file(client_src) # load translation translate_file = os.path.join(translation_path, '%s_translate.txt' % lang) with open(translate_file, 'rt', encoding='utf-8') as fp: lines = fp.readlines() ui_mgr_pregame.apply_translate_from_txt_lines(lines) ui_mgr_client.apply_translate_from_txt_lines(lines) log.info('mode: %s' % mode) # save str pregame_dest = os.path.join(dest_path, '%s_pregame.str' % lang) pregame_lines = ui_mgr_pregame.get_str_lines(mode) log.info('save to %s.' % pregame_dest) with open(pregame_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) fp.writelines(pregame_lines) client_dest = os.path.join(dest_path, '%s_client.str' % lang) client_lines = ui_mgr_client.get_str_lines(mode) log.info('save to %s.' % client_dest) with open(client_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) fp.writelines(client_lines) # save en str (fix fonts) if lang != 'en': pregame_dest = os.path.join(dest_path, 'en_pregame.str') pregame_lines = ui_mgr_pregame.get_str_lines(mode) log.info('save to %s.' % pregame_dest) with open(pregame_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) # keep version info for line in pregame_lines: if line.startswith('[SI_VERSION] ='): fp.write(line + '\n') client_dest = os.path.join(dest_path, 'en_client.str') client_lines = ui_mgr_client.get_str_lines(mode) log.info('save to %s.' % client_dest) with open(client_dest, 'wt', encoding='utf-8') as fp: fp.writelines(header) # keep version info for line in client_lines: if line.startswith('[SI_VERSION] ='): fp.write(line + '\n')