{ "_comment": "Frozen snapshot of the per-source language handling as it was before consolidation into shelfmark.core.languages. prowlarr_three_letter and audiobookbay_names were explicit maps; direct_download_derived is what its loader built from the data file, including the underscore spelling of a hyphenated code. Every alias here must still resolve to the same code. The one deliberate change: Traditional Chinese was canonically 'zh‑Hant' with a U+2011 non-breaking hyphen and is now the ASCII 'zh-Hant', so expectations for it name the new code while the old spelling remains a resolvable alias.", "audiobookbay_names": { "afrikaans": "af", "arabic": "ar", "bangla": "bn", "bengali": "bn", "bosnian": "bs", "bulgarian": "bg", "burmese": "my", "catalan": "ca", "chinese": "zh", "croatian": "hr", "czech": "cs", "danish": "da", "dutch": "nl", "english": "en", "estonian": "et", "farsi": "fa", "filipino": "fil", "finnish": "fi", "french": "fr", "german": "de", "greek": "el", "gujarati": "gu", "hebrew": "he", "hindi": "hi", "hungarian": "hu", "icelandic": "is", "indonesian": "id", "irish": "ga", "italian": "it", "japanese": "ja", "javanese": "jv", "kannada": "kn", "korean": "ko", "latin": "la", "latvian": "lv", "lithuanian": "lt", "malay": "ms", "malayalam": "ml", "manx": "gv", "marathi": "mr", "norwegian": "no", "persian": "fa", "polish": "pl", "portuguese": "pt", "punjabi": "pa", "romanian": "ro", "russian": "ru", "sanskrit": "sa", "scottish gaelic": "gd", "serbian": "sr", "slovenian": "sl", "spanish": "es", "swedish": "sv", "tagalog": "fil", "tamil": "ta", "telugu": "te", "thai": "th", "turkish": "tr", "ukrainian": "uk", "urdu": "ur", "vietnamese": "vi" }, "direct_download_derived": { "af": "af", "afrikaans": "af", "albanian": "sq", "ar": "ar", "arabic": "ar", "armenian": "hy", "az": "az", "azerbaijani": "az", "ba": "ba", "bangla": "bn", "bashkir": "ba", "be": "be", "belarusian": "be", "bg": "bg", "bn": "bn", "bo": "bo", "bulgarian": "bg", "ca": "ca", "catalan": "ca", "chinese": "zh", "croatian": "hr", "cs": "cs", "czech": "cs", "da": "da", "danish": "da", "de": "de", "dutch": "nl", "el": "el", "en": "en", "english": "en", "eo": "eo", "es": "es", "esperanto": "eo", "fa": "fa", "fi": "fi", "fil": "fil", "filipino": "fil", "finnish": "fi", "fr": "fr", "french": "fr", "ga": "ga", "galician": "gl", "georgian": "ka", "german": "de", "gl": "gl", "greek": "el", "gu": "gu", "gujarati": "gu", "he": "he", "hebrew": "he", "hi": "hi", "hindi": "hi", "hr": "hr", "hu": "hu", "hungarian": "hu", "hy": "hy", "id": "id", "indonesian": "id", "irish": "ga", "it": "it", "italian": "it", "ja": "ja", "japanese": "ja", "javanese": "jv", "jv": "jv", "ka": "ka", "kannada": "kn", "kazakh": "kk", "kinyarwanda": "rw", "kk": "kk", "kn": "kn", "ko": "ko", "korean": "ko", "ky": "ky", "kyrgyz": "ky", "la": "la", "latin": "la", "latvian": "lv", "lithuanian": "lt", "lt": "lt", "lv": "lv", "malay": "ms", "malayalam": "ml", "marathi": "mr", "ml": "ml", "mn": "mn", "mongolian": "mn", "mr": "mr", "ms": "ms", "nl": "nl", "no": "no", "norwegian": "no", "pa": "pa", "persian": "fa", "pl": "pl", "polish": "pl", "portuguese": "pt", "pt": "pt", "punjabi": "pa", "qu": "qu", "quechua": "qu", "ro": "ro", "romanian": "ro", "ru": "ru", "russian": "ru", "rw": "rw", "serbian": "sr", "shan": "shn", "shn": "shn", "sk": "sk", "sl": "sl", "slovak": "sk", "slovenian": "sl", "spanish": "es", "sq": "sq", "sr": "sr", "sv": "sv", "sw": "sw", "swahili": "sw", "swedish": "sv", "ta": "ta", "tamil": "ta", "te": "te", "telugu": "te", "th": "th", "thai": "th", "tibetan": "bo", "tr": "tr", "traditional chinese": "zh-Hant", "turkish": "tr", "ug": "ug", "uk": "uk", "ukrainian": "uk", "ur": "ur", "urdu": "ur", "uyghur": "ug", "vi": "vi", "vietnamese": "vi", "zh": "zh", "zh‑hant": "zh-Hant" }, "prowlarr_three_letter": { "afr": "af", "ara": "ar", "ben": "bn", "bos": "bs", "bul": "bg", "bur": "my", "cat": "ca", "ces": "cs", "chi": "zh", "cze": "cs", "dan": "da", "deu": "de", "dut": "nl", "ell": "el", "eng": "en", "est": "et", "fas": "fa", "fin": "fi", "fra": "fr", "fre": "fr", "ger": "de", "gla": "gd", "gle": "ga", "glv": "gv", "gre": "el", "guj": "gu", "heb": "he", "hin": "hi", "hrv": "hr", "hun": "hu", "ice": "is", "ind": "id", "isl": "is", "ita": "it", "jap": "ja", "jav": "jv", "jpn": "ja", "kan": "kn", "kor": "ko", "lat": "la", "lav": "lv", "lit": "lt", "mal": "ml", "mar": "mr", "may": "ms", "msa": "ms", "mya": "my", "nld": "nl", "nor": "no", "pan": "pa", "per": "fa", "pol": "pl", "por": "pt", "rom": "ro", "ron": "ro", "rus": "ru", "san": "sa", "slv": "sl", "spa": "es", "srp": "sr", "swe": "sv", "tam": "ta", "tel": "te", "tgl": "fil", "tha": "th", "tur": "tr", "ukr": "uk", "urd": "ur", "vie": "vi", "zho": "zh" } }