const fs = require('fs'); const path = require('path'); const I18N_DIR = path.join(__dirname, '..'); const ROOT_DIR = path.join(I18N_DIR, '..', '..'); const README_PATH = path.join(ROOT_DIR, 'README.md'); const LANG_MAP = { 'aa': { emoji: '๐ŸŒ', name: 'Afar' }, 'ab': { emoji: '๐ŸŒ', name: 'Abkhazian' }, 'ae': { emoji: '๐ŸŒ', name: 'Avestan' }, 'af': { emoji: '๐Ÿ‡ฟ๐Ÿ‡ฆ', name: 'Afrikaans' }, 'ak': { emoji: '๐ŸŒ', name: 'Akan' }, 'am': { emoji: '๐Ÿ‡ช๐Ÿ‡น', name: 'Amharic' }, 'an': { emoji: '๐ŸŒ', name: 'Aragonese' }, 'ar': { emoji: '๐Ÿ‡ธ๐Ÿ‡ฆ', name: 'ุงู„ุนุฑุจูŠุฉ' }, 'as': { emoji: '๐ŸŒ', name: 'Assamese' }, 'av': { emoji: '๐ŸŒ', name: 'Avaric' }, 'ay': { emoji: '๐ŸŒ', name: 'Aymara' }, 'az': { emoji: '๐Ÿ‡ฆ๐Ÿ‡ฟ', name: 'Azerbaijani' }, 'ba': { emoji: '๐ŸŒ', name: 'Bashkir' }, 'be': { emoji: '๐Ÿ‡ง๐Ÿ‡พ', name: 'Belarusian' }, 'bg': { emoji: '๐Ÿ‡ง๐Ÿ‡ฌ', name: 'Bulgarian' }, 'bi': { emoji: '๐ŸŒ', name: 'Bislama' }, 'bm': { emoji: '๐ŸŒ', name: 'Bambara' }, 'bn': { emoji: '๐Ÿ‡ง๐Ÿ‡ฉ', name: 'เฆฌเฆพเฆ‚เฆฒเฆพ' }, 'bo': { emoji: '๐ŸŒ', name: 'Tibetan' }, 'br': { emoji: '๐ŸŒ', name: 'Breton' }, 'bs': { emoji: '๐Ÿ‡ง๐Ÿ‡ฆ', name: 'Bosnian' }, 'ca': { emoji: '๐Ÿ‡ช๐Ÿ‡ธ', name: 'Catalan' }, 'ce': { emoji: '๐ŸŒ', name: 'Chechen' }, 'ch': { emoji: '๐ŸŒ', name: 'Chamorro' }, 'co': { emoji: '๐ŸŒ', name: 'Corsican' }, 'cr': { emoji: '๐ŸŒ', name: 'Cree' }, 'cs': { emoji: '๐Ÿ‡จ๐Ÿ‡ฟ', name: 'ฤŒesko' }, 'cu': { emoji: '๐ŸŒ', name: 'Churchย Slavonic' }, 'cv': { emoji: '๐ŸŒ', name: 'Chuvash' }, 'cy': { emoji: '๐Ÿ‡ฌ๐Ÿ‡ง', name: 'Welsh' }, 'da': { emoji: '๐Ÿ‡ฉ๐Ÿ‡ฐ', name: 'Danish' }, 'de': { emoji: '๐Ÿ‡ฉ๐Ÿ‡ช', name: 'Deutsch' }, 'dv': { emoji: '๐ŸŒ', name: 'Divehi' }, 'dz': { emoji: '๐Ÿ‡ง๐Ÿ‡น', name: 'Dzongkha' }, 'ee': { emoji: '๐ŸŒ', name: 'Ewe' }, 'el': { emoji: '๐Ÿ‡ฌ๐Ÿ‡ท', name: 'Greek' }, 'en': { emoji: '๐Ÿ‡บ๐Ÿ‡ธ', name: 'English' }, 'eo': { emoji: '๐ŸŒ', name: 'Esperanto' }, 'es': { emoji: '๐Ÿ‡ช๐Ÿ‡ธ', name: 'Espaรฑol' }, 'et': { emoji: '๐Ÿ‡ช๐Ÿ‡ช', name: 'Estonian' }, 'eu': { emoji: '๐ŸŒ', name: 'Basque' }, 'fa': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ท', name: 'Persian' }, 'ff': { emoji: '๐ŸŒ', name: 'Fulah' }, 'fi': { emoji: '๐Ÿ‡ซ๐Ÿ‡ฎ', name: 'Finnish' }, 'fj': { emoji: '๐ŸŒ', name: 'Fijian' }, 'fo': { emoji: '๐ŸŒ', name: 'Faroese' }, 'fr': { emoji: '๐Ÿ‡ซ๐Ÿ‡ท', name: 'Franรงais' }, 'fy': { emoji: '๐ŸŒ', name: 'Western Frisian' }, 'ga': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ช', name: 'Irish' }, 'gd': { emoji: '๐ŸŒ', name: 'Gaelic' }, 'gl': { emoji: '๐ŸŒ', name: 'Galician' }, 'gn': { emoji: '๐ŸŒ', name: 'Guarani' }, 'gu': { emoji: '๐ŸŒ', name: 'Gujarati' }, 'gv': { emoji: '๐ŸŒ', name: 'Manx' }, 'ha': { emoji: '๐Ÿ‡ณ๐Ÿ‡ฌ', name: 'Hausa' }, 'he': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ฑ', name: 'Hebrew' }, 'hi': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ณ', name: 'เคนเคฟเคจเฅเคฆเฅ€' }, 'ho': { emoji: '๐ŸŒ', name: 'Hiri Motu' }, 'hr': { emoji: '๐Ÿ‡ญ๐Ÿ‡ท', name: 'Croatian' }, 'ht': { emoji: '๐ŸŒ', name: 'Haitian' }, 'hu': { emoji: '๐Ÿ‡ญ๐Ÿ‡บ', name: 'Hungarian' }, 'hy': { emoji: '๐Ÿ‡ฆ๐Ÿ‡ฒ', name: 'Armenian' }, 'hz': { emoji: '๐ŸŒ', name: 'Herero' }, 'ia': { emoji: '๐ŸŒ', name: 'Interlingua' }, 'id': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ฉ', name: 'Bahasa' }, 'ie': { emoji: '๐ŸŒ', name: 'Interlingue' }, 'ig': { emoji: '๐Ÿ‡ณ๐Ÿ‡ฌ', name: 'Igbo' }, 'ii': { emoji: '๐ŸŒ', name: 'Sichuan Yi' }, 'ik': { emoji: '๐ŸŒ', name: 'Inupiaq' }, 'io': { emoji: '๐ŸŒ', name: 'Ido' }, 'is': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ธ', name: 'Icelandic' }, 'it': { emoji: '๐Ÿ‡ฎ๐Ÿ‡น', name: 'Italiano' }, 'iu': { emoji: '๐ŸŒ', name: 'Inuktitut' }, 'ja': { emoji: '๐Ÿ‡ฏ๐Ÿ‡ต', name: 'ๆ—ฅๆœฌ่ชž' }, 'jv': { emoji: '๐ŸŒ', name: 'Javanese' }, 'ka': { emoji: '๐Ÿ‡ฌ๐Ÿ‡ช', name: 'Georgian' }, 'kg': { emoji: '๐ŸŒ', name: 'Kongo' }, 'ki': { emoji: '๐ŸŒ', name: 'Kikuyu' }, 'kj': { emoji: '๐ŸŒ', name: 'Kuanyama' }, 'kk': { emoji: '๐Ÿ‡ฐ๐Ÿ‡ฟ', name: 'Kazakh' }, 'kl': { emoji: '๐ŸŒ', name: 'Kalaallisut' }, 'km': { emoji: '๐Ÿ‡ฐ๐Ÿ‡ญ', name: 'Central Khmer' }, 'kn': { emoji: '๐ŸŒ', name: 'Kannada' }, 'ko': { emoji: '๐Ÿ‡ฐ๐Ÿ‡ท', name: 'ํ•œ๊ตญ์–ด' }, 'kr': { emoji: '๐ŸŒ', name: 'Kanuri' }, 'ks': { emoji: '๐ŸŒ', name: 'Kashmiri' }, 'ku': { emoji: '๐Ÿ‡ฎ๐Ÿ‡ถ', name: 'Kurdish' }, 'kv': { emoji: '๐ŸŒ', name: 'Komi' }, 'kw': { emoji: '๐ŸŒ', name: 'Cornish' }, 'ky': { emoji: '๐Ÿ‡ฐ๐Ÿ‡ฌ', name: 'Kyrgyz' }, 'la': { emoji: '๐ŸŒ', name: 'Latin' }, 'lb': { emoji: '๐ŸŒ', name: 'Luxembourgish' }, 'lg': { emoji: '๐ŸŒ', name: 'Ganda' }, 'li': { emoji: '๐ŸŒ', name: 'Limburgan' }, 'ln': { emoji: '๐ŸŒ', name: 'Lingala' }, 'lo': { emoji: '๐Ÿ‡ฑ๐Ÿ‡ฆ', name: 'Lao' }, 'lt': { emoji: '๐Ÿ‡ฑ๐Ÿ‡น', name: 'Lithuanian' }, 'lu': { emoji: '๐ŸŒ', name: 'Luba-Katanga' }, 'lv': { emoji: '๐Ÿ‡ฑ๐Ÿ‡ป', name: 'Latvian' }, 'mg': { emoji: '๐ŸŒ', name: 'Malagasy' }, 'mh': { emoji: '๐ŸŒ', name: 'Marshallese' }, 'mi': { emoji: '๐ŸŒ', name: 'Maori' }, 'mk': { emoji: '๐Ÿ‡ฒ๐Ÿ‡ฐ', name: 'Macedonian' }, 'ml': { emoji: '๐ŸŒ', name: 'Malayalam' }, 'mn': { emoji: '๐Ÿ‡ฒ๐Ÿ‡ณ', name: 'Mongolian' }, 'mr': { emoji: '๐ŸŒ', name: 'Marathi' }, 'ms': { emoji: '๐Ÿ‡ฒ๐Ÿ‡พ', name: 'Malay' }, 'mt': { emoji: '๐Ÿ‡ฒ๐Ÿ‡น', name: 'Maltese' }, 'my': { emoji: '๐Ÿ‡ฒ๐Ÿ‡ฒ', name: 'Burmese' }, 'na': { emoji: '๐ŸŒ', name: 'Nauru' }, 'nb': { emoji: '๐ŸŒ', name: 'Norwegian Bokmรฅl' }, 'nd': { emoji: '๐ŸŒ', name: 'North Ndebele' }, 'ne': { emoji: '๐Ÿ‡ณ๐Ÿ‡ต', name: 'Nepali' }, 'ng': { emoji: '๐ŸŒ', name: 'Ndonga' }, 'nl': { emoji: '๐Ÿ‡ง๐Ÿ‡ช/๐Ÿ‡ณ๐Ÿ‡ฑ', name: 'Nederlands' }, 'nn': { emoji: '๐ŸŒ', name: 'Norwegian Nynorsk' }, 'no': { emoji: '๐Ÿ‡ณ๐Ÿ‡ด', name: 'Norwegian' }, 'nr': { emoji: '๐ŸŒ', name: 'South Ndebele' }, 'nv': { emoji: '๐ŸŒ', name: 'Navajo' }, 'ny': { emoji: '๐ŸŒ', name: 'Chichewa' }, 'oc': { emoji: '๐ŸŒ', name: 'Occitan' }, 'oj': { emoji: '๐ŸŒ', name: 'Ojibwa' }, 'om': { emoji: '๐ŸŒ', name: 'Oromo' }, 'or': { emoji: '๐ŸŒ', name: 'Oriya' }, 'os': { emoji: '๐ŸŒ', name: 'Ossetian' }, 'pa': { emoji: '๐ŸŒ', name: 'Punjabi' }, 'pi': { emoji: '๐ŸŒ', name: 'Pali' }, 'pl': { emoji: '๐Ÿ‡ต๏ฟฝ๏ฟฝ', name: 'Polski' }, 'ps': { emoji: '๐Ÿ‡ฆ๐Ÿ‡ซ', name: 'Pashto' }, 'pt': { emoji: '๐Ÿ‡ต๐Ÿ‡น', name: 'Portuguรชs' }, 'qu': { emoji: '๐ŸŒ', name: 'Quechua' }, 'rm': { emoji: '๐ŸŒ', name: 'Romansh' }, 'rn': { emoji: '๐ŸŒ', name: 'Rundi' }, 'ro': { emoji: '๐Ÿ‡ท๐Ÿ‡ด', name: 'Romanian' }, 'ru': { emoji: '๐Ÿ‡ท๐Ÿ‡บ', name: 'ะ ัƒััะบะธะน' }, 'rw': { emoji: '๐ŸŒ', name: 'Kinyarwanda' }, 'sa': { emoji: '๐ŸŒ', name: 'Sanskrit' }, 'sc': { emoji: '๐ŸŒ', name: 'Sardinian' }, 'sd': { emoji: '๐ŸŒ', name: 'Sindhi' }, 'se': { emoji: '๐ŸŒ', name: 'Northern Sami' }, 'sg': { emoji: '๐ŸŒ', name: 'Sango' }, 'si': { emoji: '๐Ÿ‡ฑ๐Ÿ‡ฐ', name: 'Sinhala' }, 'sk': { emoji: '๐Ÿ‡ธ๐Ÿ‡ฐ', name: 'Slovak' }, 'sl': { emoji: '๐Ÿ‡ธ๐Ÿ‡ฎ', name: 'Slovenian' }, 'sm': { emoji: '๐ŸŒ', name: 'Samoan' }, 'sn': { emoji: '๐ŸŒ', name: 'Shona' }, 'so': { emoji: '๐Ÿ‡ธ๐Ÿ‡ด', name: 'Soomaali' }, 'sq': { emoji: '๐Ÿ‡ฆ๐Ÿ‡ฑ', name: 'Albanian' }, 'sr': { emoji: '๐Ÿ‡ท๐Ÿ‡ธ', name: 'Serbian' }, 'ss': { emoji: '๐ŸŒ', name: 'Swati' }, 'st': { emoji: '๐Ÿ‡ฟ๐Ÿ‡ฆ', name: 'Southern Sotho' }, 'su': { emoji: '๐ŸŒ', name: 'Sundanese' }, 'sv': { emoji: '๐Ÿ‡ธ๐Ÿ‡ช', name: 'Swedish' }, 'sw': { emoji: '๐Ÿ‡ฐ๐Ÿ‡ช', name: 'Swahili' }, 'ta': { emoji: '๐ŸŒ', name: 'Tamil' }, 'te': { emoji: '๐ŸŒ', name: 'Telugu' }, 'tg': { emoji: '๐Ÿ‡น๐Ÿ‡ฏ', name: 'Tajik' }, 'th': { emoji: '๐Ÿ‡น๐Ÿ‡ญ', name: 'Thai' }, 'ti': { emoji: '๐ŸŒ', name: 'Tigrinya' }, 'tk': { emoji: '๐Ÿ‡น๐Ÿ‡ฒ', name: 'Turkmen' }, 'tl': { emoji: '๐Ÿ‡ต๐Ÿ‡ญ', name: 'Tagalog' }, 'tn': { emoji: '๐ŸŒ', name: 'Tswana' }, 'to': { emoji: '๐ŸŒ', name: 'Tonga' }, 'tr': { emoji: '๐Ÿ‡น๐Ÿ‡ท', name: 'Tรผrkรงe' }, 'ts': { emoji: '๐ŸŒ', name: 'Tsonga' }, 'tt': { emoji: '๐ŸŒ', name: 'Tatar' }, 'tw': { emoji: '๐ŸŒ', name: 'Twi' }, 'ty': { emoji: '๐ŸŒ', name: 'Tahitian' }, 'ug': { emoji: '๐ŸŒ', name: 'Uighur' }, 'uk': { emoji: '๐Ÿ‡บ๐Ÿ‡ฆ', name: 'Ukrainian' }, 'ur': { emoji: '๐Ÿ‡ต๐Ÿ‡ฐ', name: 'Urdu' }, 'uz': { emoji: '๐Ÿ‡บ๐Ÿ‡ฟ', name: 'Uzbek' }, 've': { emoji: '๐ŸŒ', name: 'Venda' }, 'vi': { emoji: '๐Ÿ‡ป๐Ÿ‡ณ', name: 'Tiแบฟng Viแป‡t' }, 'vo': { emoji: '๐ŸŒ', name: 'Volapรผk' }, 'wa': { emoji: '๐ŸŒ', name: 'Walloon' }, 'wo': { emoji: '๐ŸŒ', name: 'Wolof' }, 'xh': { emoji: '๐Ÿ‡ฟ๐Ÿ‡ฆ', name: 'Xhosa' }, 'yi': { emoji: '๐ŸŒ', name: 'Yiddish' }, 'yo': { emoji: '๐Ÿ‡ณ๐Ÿ‡ฌ', name: 'Yoruba' }, 'za': { emoji: '๐ŸŒ', name: 'Zhuang' }, 'zh': { emoji: '๐Ÿ‡จ๐Ÿ‡ณ', name: 'ไธญๆ–‡' }, 'zh-CN': { emoji: '๐Ÿ‡จ๐Ÿ‡ณ', name: 'ไธญๆ–‡ (็ฎ€ไฝ“)' }, 'zh-HK': { emoji: '๐Ÿ‡ญ๐Ÿ‡ฐ', name: 'ไธญๆ–‡ (็น้ซ”)' }, 'zh-Hans': { emoji: '๐Ÿ‡จ๐Ÿ‡ณ', name: 'ไธญๆ–‡ (็ฎ€ไฝ“)' }, 'zh-Hant': { emoji: '๐Ÿ‡น๐Ÿ‡ผ', name: 'ไธญๆ–‡ (็น้ซ”)' }, 'zh-MO': { emoji: '๐Ÿ‡ฒ๐Ÿ‡ด', name: 'ไธญๆ–‡ (็น้ซ”)' }, 'zh-SG': { emoji: '๐Ÿ‡ธ๐Ÿ‡ฌ', name: 'ไธญๆ–‡ (็น้ซ”)' }, 'zh-TW': { emoji: '๐Ÿ‡น๐Ÿ‡ผ', name: 'ไธญๆ–‡ (็น้ซ”)' }, 'zu': { emoji: '๐Ÿ‡ฟ๐Ÿ‡ฆ', name: 'Zulu' }, }; function autoAddFlags() { if (!fs.existsSync(README_PATH)) { console.error('Error: Cannot find ' + README_PATH); process.exit(1); } let readmeContent = fs.readFileSync(README_PATH, 'utf-8'); const marker = ' '; if (!readmeContent.includes(marker)) { console.warn('Error: marker not found in ' + README_PATH); console.warn('Please add the marker where you want new flags to be inserted.'); return; } const files = fs.readdirSync(I18N_DIR); const translationFiles = files.filter(f => f.startsWith('README') && f.endsWith('.md') && f !== 'README.md' ); let updated = false; translationFiles.forEach(file => { const code = file.split('.')[1]; const lang = LANG_MAP[code]; if (!lang) return; const flagLink = ` ${lang.emoji} ${lang.name}`; if (!readmeContent.includes(file)) { readmeContent = readmeContent.replace(marker, flagLink + '\n' + marker); updated = true; console.log('Added ' + code); } }); if (updated) { fs.writeFileSync(README_PATH, readmeContent, 'utf-8'); console.log('Main README updated.'); } else { console.log('No new flags to add.'); } } autoAddFlags();