patrickramos's picture
Add 2025 season
6c18ca9
import pandas as pd
import numpy as np
import gradio as gr
import unicodedata
import os
REGISTERS_DIR = 'registers'
SEASONS = [os.path.splitext(file)[0] for file in os.listdir(REGISTERS_DIR)]
def load_register(season):
register = pd.read_csv(f'registers/{season}.csv', index_col='jp_name')
register.en_name = register.en_name.str.replace(',', '')
return register
def translate_name(jp_name, register):
jp_name = unicodedata.normalize('NFKC', jp_name)
en_name = np.nan
if jp_name in register.index:
en_name = register.loc[jp_name].en_name
elif jp_name in register.index.map(lambda name: name.split('.')[-1]):
tmp_register = register.copy()
tmp_register.index = tmp_register.index.map(lambda name: name.split('.')[-1])
en_name = tmp_register.loc[jp_name].en_name
if isinstance(en_name, pd.DataFrame):
unique_names = en_name.en_name.unique()
en_name = unique_names[0]
elif not isinstance(en_name, str):
en_name = np.nan
return en_name
def translate_names(season, jp_names):
register = load_register(season)
return '\n'.join([str(translate_name(jp_name, register)) for jp_name in jp_names.splitlines()])
demo = gr.Interface(fn=translate_names, inputs=[gr.Dropdown(choices=SEASONS), "text"], outputs=gr.Text(show_copy_button=True))
demo.launch(debug=True)