language-scripts-map
Version:
[DEPRECATED] A reliable mapping of language codes to their default writing scripts (Latin, Cyrillic, Arabic, Devanagari, etc.).
1 lines • 15.2 kB
Source Map (JSON)
{"version":3,"sources":["../src/data.ts","../src/index.ts"],"names":["languageScriptsMap","SCRIPT_GROUPS"],"mappings":";AAMO,IAAM,kBAAsD,GAAA;AAAA;AAAA,EAEjE,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA,EACL,GAAK,EAAA,MAAA;AAAA;AAAA;AAAA,EAGL,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;AAAA;AAAA,EACJ,EAAI,EAAA,MAAA;A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","file":"index.mjs","sourcesContent":["import { LanguageScriptMapData, ScriptGroups } from './types';\n\n/**\n * Mapping of ISO 639-1 language codes to their default ISO 15924 script codes\n * Data sourced from CLDR and official ISO standards\n */\nexport const languageScriptsMap: Readonly<LanguageScriptMapData> = {\n // Latin script languages\n en: 'Latn', // English\n fr: 'Latn', // French\n de: 'Latn', // German\n es: 'Latn', // Spanish\n it: 'Latn', // Italian\n pt: 'Latn', // Portuguese\n nl: 'Latn', // Dutch\n pl: 'Latn', // Polish\n tr: 'Latn', // Turkish\n sv: 'Latn', // Swedish\n da: 'Latn', // Danish\n no: 'Latn', // Norwegian\n fi: 'Latn', // Finnish\n cs: 'Latn', // Czech\n sk: 'Latn', // Slovak\n hu: 'Latn', // Hungarian\n ro: 'Latn', // Romanian\n bg: 'Latn', // Bulgarian\n hr: 'Latn', // Croatian\n sl: 'Latn', // Slovenian\n et: 'Latn', // Estonian\n lv: 'Latn', // Latvian\n lt: 'Latn', // Lithuanian\n ga: 'Latn', // Irish\n cy: 'Latn', // Welsh\n gd: 'Latn', // Scottish Gaelic\n is: 'Latn', // Icelandic\n fo: 'Latn', // Faroese\n mt: 'Latn', // Maltese\n ca: 'Latn', // Catalan\n gl: 'Latn', // Galician\n eu: 'Latn', // Basque\n id: 'Latn', // Indonesian\n ms: 'Latn', // Malay\n vi: 'Latn', // Vietnamese\n tl: 'Latn', // Tagalog\n sw: 'Latn', // Swahili\n zu: 'Latn', // Zulu\n af: 'Latn', // Afrikaans\n st: 'Latn', // Southern Sotho\n xh: 'Latn', // Xhosa\n ss: 'Latn', // Swati\n nr: 'Latn', // Southern Ndebele\n tn: 'Latn', // Tswana\n ts: 'Latn', // Tsonga\n ve: 'Latn', // Venda\n ny: 'Latn', // Chichewa\n yo: 'Latn', // Yoruba\n ig: 'Latn', // Igbo\n ha: 'Latn', // Hausa\n ff: 'Latn', // Fulah\n wo: 'Latn', // Wolof\n dy: 'Latn', // Dyula\n bm: 'Latn', // Bambara\n sg: 'Latn', // Sango\n ln: 'Latn', // Lingala\n rw: 'Latn', // Kinyarwanda\n rn: 'Latn', // Rundi\n ki: 'Latn', // Kikuyu\n lu: 'Latn', // Luba-Katanga\n lg: 'Latn', // Ganda\n nyn: 'Latn', // Nyankole\n cgg: 'Latn', // Chiga\n teo: 'Latn', // Teso\n kln: 'Latn', // Kalenjin\n kam: 'Latn', // Kamba\n mer: 'Latn', // Meru\n om: 'Latn', // Oromo\n ti: 'Latn', // Tigrinya\n so: 'Latn', // Somali\n am: 'Latn', // Amharic\n wal: 'Latn', // Wolaytta\n sid: 'Latn', // Sidamo\n guz: 'Latn', // Gusii\n dav: 'Latn', // Taita\n\n // Cyrillic script languages\n ru: 'Cyrl', // Russian\n uk: 'Cyrl', // Ukrainian\n be: 'Cyrl', // Belarusian\n sr: 'Cyrl', // Serbian\n mk: 'Cyrl', // Macedonian\n kk: 'Cyrl', // Kazakh\n ky: 'Cyrl', // Kyrgyz\n tg: 'Cyrl', // Tajik\n mn: 'Cyrl', // Mongolian\n uz: 'Cyrl', // Uzbek\n tt: 'Cyrl', // Tatar\n ba: 'Cyrl', // Bashkir\n cv: 'Cyrl', // Chuvash\n sah: 'Cyrl', // Yakut\n os: 'Cyrl', // Ossetic\n ce: 'Cyrl', // Chechen\n av: 'Cyrl', // Avaric\n kbd: 'Cyrl', // Kabardian\n ady: 'Cyrl', // Adyghe\n ab: 'Cyrl', // Abkhazian\n\n // Arabic script languages\n ar: 'Arab', // Arabic\n fa: 'Arab', // Persian\n ur: 'Arab', // Urdu\n ps: 'Arab', // Pashto\n ku: 'Arab', // Kurdish\n sd: 'Arab', // Sindhi\n pa: 'Arab', // Punjabi (Gurmukhi script is also used)\n he: 'Hebr', // Hebrew\n yi: 'Hebr', // Yiddish\n\n // Indic scripts\n hi: 'Deva', // Hindi\n bn: 'Beng', // Bengali\n te: 'Telu', // Telugu\n ta: 'Taml', // Tamil\n ml: 'Mlym', // Malayalam\n kn: 'Knda', // Kannada\n gu: 'Gujr', // Gujarati\n mr: 'Deva', // Marathi\n ne: 'Deva', // Nepali\n si: 'Sinh', // Sinhala\n dz: 'Tibt', // Dzongkha\n bo: 'Tibt', // Tibetan\n\n // East Asian scripts\n zh: 'Hans', // Chinese (Simplified)\n zh_TW: 'Hant', // Chinese (Traditional)\n ja: 'Jpan', // Japanese\n ko: 'Kore', // Korean\n th: 'Thai', // Thai\n lo: 'Laoo', // Lao\n km: 'Khmr', // Khmer\n my: 'Mymr', // Burmese\n\n // Other scripts\n el: 'Grek', // Greek\n ka: 'Geor', // Georgian\n hy: 'Armn', // Armenian\n} as const;\n\n/**\n * Script grouping data for RTL and LTR scripts\n */\nexport const SCRIPT_GROUPS: Readonly<ScriptGroups> = {\n RTL: ['Arab', 'Hebr', 'Syrc', 'Thaa', 'Nkoo', 'Mend', 'Adlm', 'Rohg'],\n LTR: [\n 'Latn',\n 'Cyrl',\n 'Deva',\n 'Beng',\n 'Guru',\n 'Gujr',\n 'Orya',\n 'Taml',\n 'Telu',\n 'Knda',\n 'Mlym',\n 'Sinh',\n 'Thai',\n 'Laoo',\n 'Tibt',\n 'Mymr',\n 'Khmr',\n 'Mong',\n 'Hani',\n 'Hira',\n 'Kana',\n 'Hang',\n 'Ethi',\n 'Cher',\n 'Cans',\n 'Ojib',\n 'Runr',\n 'Tfng',\n 'Vaii',\n 'Bamu',\n 'Lisu',\n 'Visp',\n 'Osge',\n 'Osma',\n 'Elba',\n 'Aghb',\n 'Cauc',\n 'Vith',\n 'Phnx',\n 'Lydi',\n 'Mero',\n 'Narb',\n 'Palm',\n 'Nbat',\n 'Hatr',\n 'Phli',\n 'Prti',\n 'Avst',\n 'Pcun',\n 'Phlp',\n 'Phlv',\n 'Phnx',\n 'Plrd',\n 'Prti',\n 'Qaak',\n 'Rjng',\n 'Roro',\n 'Runr',\n 'Samr',\n 'Sara',\n 'Saur',\n 'Sgnw',\n 'Shaw',\n 'Shrd',\n 'Sidd',\n 'Sind',\n 'Sinh',\n 'Sora',\n 'Sund',\n 'Sylo',\n 'Syrc',\n 'Tagb',\n 'Takr',\n 'Tale',\n 'Talu',\n 'Taml',\n 'Tang',\n 'Tavt',\n 'Telu',\n 'Teng',\n 'Tfng',\n 'Tglg',\n 'Thaa',\n 'Thai',\n 'Tibt',\n 'Tirh',\n 'Ugar',\n 'Vaii',\n 'Visp',\n 'Wara',\n 'Wcho',\n 'Xpeo',\n 'Xsux',\n 'Yiii',\n 'Zanb',\n 'Zinh',\n 'Zmth',\n 'Zsye',\n 'Zsym',\n 'Zxxx',\n 'Zyyy',\n 'Zzzz',\n ],\n} as const;\n","import { ISO6391Code, ISO15924ScriptCode } from './types';\nimport {\n languageScriptsMap as rawLanguageScriptsMap,\n SCRIPT_GROUPS as rawScriptGroups,\n} from './data';\n\n// Make the data structures truly readonly\nexport const languageScriptsMap = Object.freeze(rawLanguageScriptsMap);\nexport const SCRIPT_GROUPS = Object.freeze(rawScriptGroups);\n\n/**\n * Gets the default script code for a given language code\n * @param languageCode - ISO 639-1 language code (case-insensitive)\n * @returns The ISO 15924 script code for the language, or undefined if not found\n * @example\n * getScriptByLanguageCode('en') // returns 'Latn'\n * getScriptByLanguageCode('ar') // returns 'Arab'\n * getScriptByLanguageCode('invalid') // returns undefined\n */\nexport function getScriptByLanguageCode(\n languageCode: ISO6391Code | string\n): ISO15924ScriptCode | undefined {\n if (!languageCode) return undefined;\n return languageScriptsMap[languageCode.toLowerCase()];\n}\n\n/**\n * Gets all language codes that use a given script\n * @param scriptCode - ISO 15924 script code (case-insensitive)\n * @returns Array of ISO 639-1 language codes that use the script\n * @example\n * getLanguagesByScript('Latn') // returns ['en', 'fr', 'de', ...]\n * getLanguagesByScript('Arab') // returns ['ar', 'fa', 'ur', ...]\n * getLanguagesByScript('invalid') // returns []\n */\nexport function getLanguagesByScript(scriptCode: ISO15924ScriptCode | string): ISO6391Code[] {\n if (!scriptCode) return [];\n const normalizedScript = scriptCode.toUpperCase();\n return Object.entries(languageScriptsMap)\n .filter(([_, script]) => script.toUpperCase() === normalizedScript)\n .map(([lang]) => lang);\n}\n\n/**\n * Checks if a given script code is valid (exists in the dataset)\n * @param scriptInput - ISO 15924 script code to check (case-insensitive)\n * @returns true if the script code exists in the dataset\n * @example\n * isValidScript('Latn') // returns true\n * isValidScript('Arab') // returns true\n * isValidScript('invalid') // returns false\n */\nexport function isValidScript(scriptInput: string): boolean {\n if (!scriptInput) return false;\n const normalizedScript = scriptInput.toUpperCase();\n return Object.values(languageScriptsMap).some(\n (script) => script.toUpperCase() === normalizedScript\n );\n}\n\n/**\n * Checks if a given script is the default script for a language\n * @param languageCode - ISO 639-1 language code (case-insensitive)\n * @param scriptInput - ISO 15924 script code to check (case-insensitive)\n * @returns true if the script is the default for the language\n * @example\n * isScriptMatch('en', 'Latn') // returns true\n * isScriptMatch('ar', 'Arab') // returns true\n * isScriptMatch('en', 'Arab') // returns false\n */\nexport function isScriptMatch(\n languageCode: ISO6391Code | string,\n scriptInput: ISO15924ScriptCode | string\n): boolean {\n if (!languageCode || !scriptInput) return false;\n const langScript = getScriptByLanguageCode(languageCode);\n return langScript?.toUpperCase() === scriptInput.toUpperCase();\n}\n\n// Export types\nexport * from './types';\n"]}