EXISTING_STRINGS = { "kanken_online", "options", "log_in", "register", "log_out", "kanji", "forum", "main_page", "username", "password", "search", "search_placeholder", "include_kanji", "include_kotoba", "username_required", "password_required", "incorrect_username", "incorrect_password" "about", "about-para", "indices" } ENGLISH = { "kanken_online": "KankenOnline", "options": "Options", "log_in": "Log in", "register": "Register", "log_out": "Log out", "kanji": "Kanji", "forum": "Forum", "main_page": "Main Page", "username": "Username", "password": "Password", "search": "Search", "search_placeholder": "Enter kanji or word", "include_kanji": "Include kanji", "include_kotoba": "Include kotoba", "username_required": "Username required.", "password_required": "Password required.", "incorrect_username": "Incorrect username.", "incorrect_password": "Incorrect password.", "about": "About KankenOnline", "about-para": "KankenOnline is a website seeking to provide resources to pass the Kanji Kentei level 1 exam. You can search through the approximately 6,300 characters included in Kanken, as well as generate a number of study materials automatically. For example, you can generate a PDF-format exam resembling the Kanken level 1 exam, which has the goal of mirroring the real thing as closely as possible for your preparation. Additionally, a variety of information about kanji is provided, among which phonetic series, rimes/kanji phonology, radicals, inseparable kanji, character origins and etymologies.", "indices": "Indices", "radical_index": "Radical index", "indivisible_index": "Indivisible kanji index", "phonetic_series": "Phonetic series", } JAPANESE = { "kanken_online": "漢検オンライン", "options": "設定", "log_in": "ログイン", "register": "登録", "log_out": "ログアウト", "kanji": "漢字", "forum": "掲示板", "main_page": "ホームページ", "username": "ユーザー名", "password": "パスワード", "search": "検索", "search_placeholder": "漢字・言葉を入力", "include_kanji": "漢字を含む", "include_kotoba": "言葉を含む", "username_required": "ユーザー名が必要です", "password_required": "パスワードが必要です", "incorrect_username": "ユーザー名が違います", "incorrect_password": "パスワードが違います", "about": "漢検オンラインとは", "about-para": "漢検オンラインとは、漢検一級合格を目当てにした資料を供用しているサイトです。ここで漢検のやく6300字を検索でき、いろんな勉強材を自動的に作ることができます。たとえば、漢検一級模様の試験PDFを作ることができて、本物の漢検試験に大抵該当することが目的です。さらに、色々漢字についての情報を取り集めております。諧声域(かいせいいき)・音韻学・部首・不可分漢字・字源・語源などがその内です。", "indices": "索引", "radical_index": "部首索引", "indivisible_index": "不可分漢字索引", "phonetic_series": "諧声域索引", } LANGUAGES = [ ENGLISH, JAPANESE ] # assert all(all(key in lang for key in EXISTING_STRINGS) for lang in LANGUAGES) # Ensure all strings are mapped for all existing languages # assert not [key for lang in LANGUAGES for key in lang if ((key in lang) and (key not in EXISTING_STRINGS))] # assert not any((((key in lang) and (key not in EXISTING_STRINGS)) for key in lang) for lang in LANGUAGES) # Ensure no languages have strings not specified by the main index def localize(text_id: str, language: dict[str, str]) -> str: return language[text_id]