UNPKG

language-codes-collection

Version:

[DEPRECATED] A clean, typed, and reliable dataset of ISO 639-1 and 639-2 language codes — complete with English names, native names, and writing scripts.

1 lines 7.32 kB
{"version":3,"sources":["../src/data/languages.json","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["[\n {\n \"code6391\": \"en\",\n \"code6392\": \"eng\",\n \"englishName\": \"English\",\n \"nativeName\": \"English\",\n \"script\": \"Latn\"\n },\n {\n \"code6391\": \"es\",\n \"code6392\": \"spa\",\n \"englishName\": \"Spanish\",\n \"nativeName\": \"Español\",\n \"script\": \"Latn\"\n },\n {\n \"code6391\": \"fr\",\n \"code6392\": \"fra\",\n \"englishName\": \"French\",\n \"nativeName\": \"Français\",\n \"script\": \"Latn\"\n },\n {\n \"code6391\": \"de\",\n \"code6392\": \"deu\",\n \"englishName\": \"German\",\n \"nativeName\": \"Deutsch\",\n \"script\": \"Latn\"\n },\n {\n \"code6391\": \"it\",\n \"code6392\": \"ita\",\n \"englishName\": \"Italian\",\n \"nativeName\": \"Italiano\",\n \"script\": \"Latn\"\n },\n {\n \"code6391\": \"pt\",\n \"code6392\": \"por\",\n \"englishName\": \"Portuguese\",\n \"nativeName\": \"Português\",\n \"script\": \"Latn\"\n },\n {\n \"code6391\": \"ru\",\n \"code6392\": \"rus\",\n \"englishName\": \"Russian\",\n \"nativeName\": \"Русский\",\n \"script\": \"Cyrl\"\n },\n {\n \"code6391\": \"zh\",\n \"code6392\": \"zho\",\n \"englishName\": \"Chinese\",\n \"nativeName\": \"中文\",\n \"script\": \"Hans\"\n },\n {\n \"code6391\": \"ja\",\n \"code6392\": \"jpn\",\n \"englishName\": \"Japanese\",\n \"nativeName\": \"日本語\",\n \"script\": \"Jpan\"\n },\n {\n \"code6391\": \"ko\",\n \"code6392\": \"kor\",\n \"englishName\": \"Korean\",\n \"nativeName\": \"한국어\",\n \"script\": \"Hang\"\n },\n {\n \"code6391\": \"ar\",\n \"code6392\": \"ara\",\n \"englishName\": \"Arabic\",\n \"nativeName\": \"العربية\",\n \"script\": \"Arab\"\n },\n {\n \"code6391\": \"hi\",\n \"code6392\": \"hin\",\n \"englishName\": \"Hindi\",\n \"nativeName\": \"हिन्दी\",\n \"script\": \"Deva\"\n }\n] ","import { Language, ISO6391Code, ScriptCode } from './types';\nimport languagesData from './data/languages.json';\n\n/**\n * Array of all supported languages\n */\nexport const languages: Readonly<Language[]> = languagesData as Readonly<Language[]>;\n\n/**\n * Map of languages indexed by their ISO 639-1 code\n */\nexport const languageMap: Readonly<Record<ISO6391Code, Language>> = Object.freeze(\n languages.reduce((acc, lang) => {\n acc[lang.code6391] = lang;\n return acc;\n }, {} as Record<ISO6391Code, Language>)\n);\n\n/**\n * Get a language by its ISO 639-1 or ISO 639-2 code\n * @param code - The ISO 639-1 or ISO 639-2 language code\n * @returns The language object or undefined if not found\n */\nexport function getLanguageByCode(code: string): Language | undefined {\n if (!code) return undefined;\n \n const normalizedCode = code.toLowerCase();\n \n // Try ISO 639-1 first\n const by6391 = languageMap[normalizedCode];\n if (by6391) return by6391;\n \n // Try ISO 639-2\n return languages.find(lang => lang.code6392.toLowerCase() === normalizedCode);\n}\n\n/**\n * Get the native name of a language by its ISO 639-1 or ISO 639-2 code\n * @param code - The ISO 639-1 or ISO 639-2 language code\n * @returns The native name or undefined if not found\n */\nexport function getNativeName(code: string): string | undefined {\n return getLanguageByCode(code)?.nativeName;\n}\n\n/**\n * Get the script code of a language by its ISO 639-1 or ISO 639-2 code\n * @param code - The ISO 639-1 or ISO 639-2 language code\n * @returns The script code or undefined if not found or not specified\n */\nexport function getScript(code: string): ScriptCode | undefined {\n return getLanguageByCode(code)?.script;\n}\n\n/**\n * Check if a given code is a valid ISO 639-1 or ISO 639-2 language code\n * @param code - The code to check\n * @returns true if the code is valid, false otherwise\n */\nexport function isValidLanguageCode(code: string): boolean {\n return getLanguageByCode(code) !== undefined;\n}\n\n/**\n * Search for languages by name (case-insensitive)\n * @param query - The search query\n * @returns Array of matching languages\n */\nexport function searchLanguageByName(query: string): Language[] {\n if (!query) return [];\n \n const normalizedQuery = query.toLowerCase();\n return languages.filter(\n lang =>\n lang.englishName.toLowerCase().includes(normalizedQuery) ||\n lang.nativeName.toLowerCase().includes(normalizedQuery)\n );\n} "]}