예제 #1
0
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)
예제 #2
0
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.')
예제 #3
0
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.')
예제 #4
0
 def setUp(self):
     self.lua = [
         'SafeAddString(SI_ABILITYUPGRADELEVEL0, "None", 0)',
         '无',
         'SafeAddString(SI_ABILITYUPGRADELEVEL1, "Bronze", 0)\n',
         '青铜',
         'SafeAddString(SI_ABILITYUPGRADELEVEL2, "Silver", 0)\n',
         'SafeAddString(SI_ABILITYUPGRADELEVEL3, "Gold", 0)\n',
         '黄金\n',
     ]
     self.mgr = UiMgr()
     self.mgr.load_lua_lines(self.lua)
예제 #5
0
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)
예제 #6
0
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')