def print_plaintext(text): for pair in split_furigana(text): if len(pair)==2: kanji,hira = pair print("%s(%s)" % (kanja,hira), end='') else: print(pair[0], end='') print('')
def convert_text_to_furigana_html(text): for pair in split_furigana(text): if len(pair) == 2: kanji, hira = pair yield ("<ruby><rb>{0}</rb><rt>{1}</rt></ruby>".format(kanji, hira)) else: yield pair[0] yield ''
def get_furi(s): temp=[] for x in s.split(" "): try: temp.append(conv_final(split_furigana(x))) except: temp.append(x) return " ".join(temp)
def return_html(text): output = "" for pair in split_furigana(text): if len(pair)==2: kanji,hira = pair output += "<ruby><rb>{0}</rb><rt>{1}</rt></ruby>". format(kanji, hira) else: output += pair[0]
def print_html(text): for pair in split_furigana(text): if len(pair)==2: kanji,hira = pair print("<ruby><rb>{0}</rb><rt>{1}</rt></ruby>". format(kanji, hira), end='') else: print(pair[0], end='') print('')
def pronounce(text: str) -> str: result = [] for pair in split_furigana(text): if len(pair) == 2: kanji, hira = pair result.append(f"<ruby><rb>{kanji}</rb><rt>{hira}</rt></ruby>") else: result.append(pair[0]) return "".join(result)
def get_hira_kata(s): S="" for t in s.split(" "): try: temp=split_furigana(t) except: return "" for x in temp: if len(x)==1: S=S+x[0] else: S=S+x[1] S=S+" " return " ".join([x for x in re.sub(u"([\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f-\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\U0002f800-\U0002fa1f\u30a0-\u30ff\u2e80-\u2eff\u4e00-\u9fff\u3400-\u4dbf\U00020000-\U0002a6df\U0002a700-\U0002b73f\U0002b740-\U0002b81f\U0002b820-\U0002ceaf]+)", r" \1 ", S).strip().capitalize().split(" ") if x!=""])
def add_furigana(japanese_string): """Add furigana to all kanji in a string.""" from furigana.furigana import split_furigana ruby_markup = "" # TODO: make the index access sane for ch in japanese_string: try: pair = split_furigana(ch) except: pair = [(ch, ), (ch, )] if len(pair[0]) == 2: kanji, hira = pair[1] ruby_markup += "<ruby><rb>{}</rb><rt>{}</rt></ruby>".format( kanji, hira) else: ruby_markup += ("{}".format(pair[0][0])) return ruby_markup
def tokenize(text): tokens = map(list, split_furigana(text)) return tokens