umami/scripts/translate-7-asian.cjs
Mike Cao e1ee5eba27
Some checks are pending
Node.js CI / build (push) Waiting to run
Translate all 51 locale files, reducing untranslated keys from 6,017 to 862.
12 batch translation scripts covering all language families: East Asian, Romance,
Germanic, Nordic, Slavic, Other European, South/Southeast Asian, Tamil, Sinhala,
Urdu, and Burmese. Remaining untranslated keys are intentional loanwords (URL, UTM,
SMS, etc.) and en-GB which is intentionally identical to en-US.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:04:45 -08:00

663 lines
25 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const fs = require('fs');
const path = require('path');
const dir = path.join(__dirname, '..', 'public', 'intl', 'messages');
const enUS = JSON.parse(fs.readFileSync(path.join(dir, 'en-US.json'), 'utf8'));
const translations = {
'hi-IN': {
label: {
'account': 'खाता',
'action': 'कार्रवाई',
'add-link': 'लिंक जोड़ें',
'add-pixel': 'पिक्सेल जोड़ें',
'analysis': 'विश्लेषण',
'application': 'एप्लिकेशन',
'audience': 'दर्शक',
'campaign': 'अभियान',
'channel': 'चैनल',
'chart': 'चार्ट',
'cohorts': 'कोहॉर्ट',
'criteria': 'मानदंड',
'destination-url': 'गंतव्य URL',
'documentation': 'प्रलेखन',
'download': 'डाउनलोड',
'dropoff': 'ड्रॉपऑफ',
'environment': 'वातावरण',
'exclude-bounce': 'बाउंस को बाहर करें',
'growth': 'वृद्धि',
'hour': 'घंटा',
'invalid-url': 'अमान्य URL',
'link': 'लिंक',
'location': 'स्थान',
'minute': 'मिनट',
'month': 'महीना',
'number-of-records': '{x} {x, plural, one {रिकॉर्ड} other {रिकॉर्ड}}',
'ok': 'ठीक है',
'online': 'ऑनलाइन',
'os': 'OS',
'pixel': 'पिक्सेल',
'preferences': 'प्राथमिकताएँ',
'previous': 'पिछला',
'previous-period': 'पिछली अवधि',
'previous-year': 'पिछला वर्ष',
'profiles': 'प्रोफ़ाइल',
'save-cohort': 'कोहॉर्ट सहेजें',
'save-segment': 'सेगमेंट सहेजें',
'screen': 'स्क्रीन',
'segment': 'सेगमेंट',
'segments': 'सेगमेंट',
'sms': 'SMS',
'source': 'स्रोत',
'support': 'सहायता',
'switch-account': 'खाता बदलें',
'table': 'तालिका',
'term': 'खोज शब्द',
'title': 'शीर्षक',
'toggle-charts': 'चार्ट दिखाएँ/छिपाएँ',
'total': 'कुल',
'total-records': 'कुल रिकॉर्ड',
'traffic': 'ट्रैफ़िक',
'transactions': 'लेनदेन',
'transfer': 'स्थानांतरण',
'transfer-website': 'वेबसाइट स्थानांतरित करें',
'true': 'सत्य',
'type': 'प्रकार',
'unique': 'अद्वितीय',
'unique-events': 'अद्वितीय ईवेंट',
'uniqueCustomers': 'अद्वितीय ग्राहक',
'untitled': 'बिना शीर्षक',
'update': 'अपडेट',
'url': 'URL',
'user': 'उपयोगकर्ता',
'users': 'उपयोगकर्ता',
'utm': 'UTM',
'utm-campaign': 'UTM अभियान',
'utm-content': 'UTM सामग्री',
'utm-description': 'UTM पैरामीटर के माध्यम से अपने अभियानों को ट्रैक करें।',
'utm-medium': 'UTM माध्यम',
'utm-source': 'UTM स्रोत',
'utm-term': 'UTM शब्द',
'value': 'मान',
'version': 'संस्करण',
'view': 'देखें',
'view-only': 'केवल देखें',
'views-per-visit': 'प्रति विज़िट दृश्य',
'visits': 'विज़िट',
'website': 'वेबसाइट',
'website-id': 'वेबसाइट ID',
'window': 'विंडो',
'yesterday': 'कल'
},
message: {
'action-confirmation': 'पुष्टि करने के लिए नीचे बॉक्स में {confirmation} टाइप करें।',
'bad-request': 'अमान्य अनुरोध',
'collected-data': 'एकत्रित डेटा',
'confirm-leave': 'क्या आप वाकई <b>{target}</b> छोड़ना चाहते हैं?',
'confirm-remove': 'क्या आप वाकई <b>{target}</b> को हटाना चाहते हैं?',
'delete-team-warning': 'टीम हटाने से टीम की सभी वेबसाइटें भी हट जाएँगी।',
'event-log': '<a>{url}</a> पर <b>{event}</b>',
'forbidden': 'प्रतिबंधित',
'min-password-length': 'न्यूनतम {n} वर्ण',
'new-version-available': 'Umami {version} का नया संस्करण उपलब्ध है!',
'no-event-data': 'कोई ईवेंट डेटा उपलब्ध नहीं है।',
'no-team-websites': 'इस टीम के पास कोई वेबसाइट नहीं है।',
'no-teams': 'आपने कोई टीम नहीं बनाई है।',
'no-users': 'कोई उपयोगकर्ता नहीं हैं।',
'not-found': 'नहीं मिला',
'nothing-selected': 'कुछ भी चयनित नहीं है।',
'reset-website': 'इस वेबसाइट को रीसेट करने के लिए, नीचे बॉक्स में {confirmation} टाइप करें।',
'sever-error': 'सर्वर त्रुटि',
'team-already-member': 'आप पहले से ही टीम के सदस्य हैं।',
'team-not-found': 'टीम नहीं मिली।',
'team-websites-info': 'वेबसाइटें टीम के किसी भी सदस्य द्वारा देखी जा सकती हैं।',
'transfer-team-website-to-user': 'इस वेबसाइट को अपने खाते में स्थानांतरित करें?',
'transfer-user-website-to-team': 'इस वेबसाइट को स्थानांतरित करने के लिए टीम चुनें।',
'transfer-website': 'वेबसाइट का स्वामित्व अपने खाते या किसी अन्य टीम में स्थानांतरित करें।',
'triggered-event': 'ट्रिगर किया गया ईवेंट',
'unauthorized': 'अनधिकृत',
'user-deleted': 'उपयोगकर्ता हटाया गया।',
'viewed-page': 'देखा गया पेज'
}
},
'id-ID': {
label: {
'account': 'Akun',
'action': 'Tindakan',
'add-link': 'Tambah tautan',
'add-pixel': 'Tambah piksel',
'analysis': 'Analisis',
'application': 'Aplikasi',
'audience': 'Audiens',
'campaign': 'Kampanye',
'channel': 'Saluran',
'chart': 'Grafik',
'cohorts': 'Kohort',
'criteria': 'Kriteria',
'data': 'Data',
'desktop': 'Desktop',
'destination-url': 'URL tujuan',
'documentation': 'Dokumentasi',
'domain': 'Domain',
'download': 'Unduh',
'email': 'Email',
'environment': 'Lingkungan',
'exclude-bounce': 'Kecualikan pantulan',
'filter': 'Filter',
'filters': 'Filter',
'funnel': 'Corong',
'growth': 'Pertumbuhan',
'hour': 'Jam',
'invalid-url': 'URL tidak valid',
'laptop': 'Laptop',
'link': 'Tautan',
'location': 'Lokasi',
'minute': 'Menit',
'model': 'Model',
'month': 'Bulan',
'ok': 'OK',
'online': 'Daring',
'os': 'OS',
'pixel': 'Piksel',
'preferences': 'Preferensi',
'profiles': 'Profil',
'role': 'Peran',
'run-query': 'Jalankan kueri',
'save-cohort': 'Simpan kohort',
'save-segment': 'Simpan segmen',
'screen': 'Layar',
'segment': 'Segmen',
'segments': 'Segmen',
'sms': 'SMS',
'source': 'Sumber',
'sum': 'Jumlah',
'support': 'Dukungan',
'switch-account': 'Ganti akun',
'table': 'Tabel',
'tablet': 'Tablet',
'tag': 'Tag',
'team-view-only': 'Hanya lihat tim',
'term': 'Kata kunci',
'total': 'Total',
'traffic': 'Lalu lintas',
'transfer': 'Transfer',
'unique-events': 'Event unik',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Kampanye',
'utm-content': 'UTM Konten',
'utm-medium': 'UTM Media',
'utm-source': 'UTM Sumber',
'utm-term': 'UTM Kata Kunci',
'version': 'Versi',
'window': 'Jendela'
},
message: {
'bad-request': 'Permintaan tidak valid',
'event-log': '<b>{event}</b> di <a>{url}</a>',
'forbidden': 'Dilarang',
'not-found': 'Tidak ditemukan',
'nothing-selected': 'Tidak ada yang dipilih.',
'sever-error': 'Kesalahan server',
'unauthorized': 'Tidak diotorisasi'
}
},
'ms-MY': {
label: {
'access-code': 'Kod akses',
'account': 'Akaun',
'action': 'Tindakan',
'add': 'Tambah',
'add-board': 'Tambah papan',
'add-description': 'Tambah penerangan',
'add-link': 'Tambah pautan',
'add-member': 'Tambah ahli',
'add-pixel': 'Tambah piksel',
'add-step': 'Tambah langkah',
'affiliate': 'Gabungan',
'after': 'Selepas',
'all-time': 'Sepanjang masa',
'analysis': 'Analisis',
'analytics': 'Analitik',
'application': 'Aplikasi',
'apply': 'Terapkan',
'attribution': 'Atribusi',
'attribution-description': 'Lihat bagaimana pengguna berinteraksi dengan pemasaran anda dan apa yang mendorong penukaran.',
'audience': 'Khalayak',
'average': 'Purata',
'before': 'Sebelum',
'behavior': 'Tingkah laku',
'boards': 'Papan',
'breakdown': 'Pecahan',
'browser': 'Pelayar',
'campaign': 'Kempen',
'campaigns': 'Kempen',
'channel': 'Saluran',
'channels': 'Saluran',
'chart': 'Carta',
'cities': 'Bandar',
'city': 'Bandar',
'clear-all': 'Kosongkan semua',
'cohort': 'Kohort',
'cohorts': 'Kohort',
'compare': 'Bandingkan',
'compare-dates': 'Bandingkan tarikh',
'confirm': 'Sahkan',
'contains': 'Mengandungi',
'content': 'Kandungan',
'continue': 'Teruskan',
'conversion': 'Penukaran',
'conversion-rate': 'Kadar penukaran',
'conversion-step': 'Langkah penukaran',
'count': 'Bilangan',
'country': 'Negara',
'create': 'Cipta',
'create-report': 'Cipta laporan',
'create-team': 'Cipta pasukan',
'create-user': 'Cipta pengguna',
'created': 'Dicipta',
'created-by': 'Dicipta oleh',
'criteria': 'Kriteria',
'currency': 'Mata wang',
'current': 'Semasa',
'data': 'Data',
'date': 'Tarikh',
'day': 'Hari',
'delete-report': 'Padam laporan',
'delete-team': 'Padam pasukan',
'delete-user': 'Padam pengguna',
'description': 'Penerangan',
'desktop': 'Desktop',
'destination-url': 'URL destinasi',
'details': 'Butiran',
'device': 'Peranti',
'direct': 'Terus',
'distinct-id': 'ID unik',
'documentation': 'Dokumentasi',
'does-not-contain': 'Tidak mengandungi',
'does-not-include': 'Tidak termasuk',
'doest-not-exist': 'Tidak wujud',
'domain': 'Domain',
'download': 'Muat turun',
'dropoff': 'Tercicir',
'edit': 'Sunting',
'edit-dashboard': 'Sunting papan pemuka',
'edit-member': 'Sunting ahli',
'email': 'E-mel',
'end-step': 'Langkah akhir',
'environment': 'Persekitaran',
'event': 'Peristiwa',
'event-data': 'Data peristiwa',
'event-name': 'Nama peristiwa',
'exclude-bounce': 'Kecualikan lantunan',
'exists': 'Wujud',
'false': 'Palsu',
'field': 'Medan',
'fields': 'Medan',
'filter': 'Tapis',
'filters': 'Tapis',
'first-click': 'Klik pertama',
'first-seen': 'Pertama dilihat',
'funnel': 'Corong',
'funnel-description': 'Fahami kadar penukaran dan tercicir pengguna.',
'funnels': 'Corong',
'goal': 'Matlamat',
'goals': 'Matlamat',
'goals-description': 'Jejaki matlamat anda untuk paparan halaman dan peristiwa.',
'greater-than': 'Lebih besar dari',
'greater-than-equals': 'Lebih besar atau sama',
'grouped': 'Dikumpulkan',
'growth': 'Pertumbuhan',
'hostname': 'Nama hos',
'hour': 'Jam',
'includes': 'Termasuk',
'insight': 'Wawasan',
'insights': 'Wawasan',
'insights-description': 'Terokai data anda dengan lebih mendalam menggunakan segmen dan tapis.',
'invalid-url': 'URL tidak sah',
'is': 'Adalah',
'is-false': 'Adalah palsu',
'is-not': 'Bukan',
'is-not-set': 'Tidak ditetapkan',
'is-set': 'Ditetapkan',
'is-true': 'Adalah benar',
'join': 'Sertai',
'join-team': 'Sertai pasukan',
'journey': 'Perjalanan',
'journey-description': 'Fahami bagaimana pengguna menavigasi laman web anda.',
'journeys': 'Perjalanan',
'language': 'Bahasa',
'languages': 'Bahasa',
'laptop': 'Komputer riba',
'last-click': 'Klik terakhir',
'last-months': '{x} bulan lepas',
'last-seen': 'Terakhir dilihat',
'leave': 'Keluar',
'leave-team': 'Keluar pasukan',
'less-than': 'Kurang dari',
'less-than-equals': 'Kurang atau sama',
'link': 'Pautan',
'links': 'Pautan',
'location': 'Lokasi',
'manage': 'Urus',
'manager': 'Pengurus',
'max': 'Maks',
'medium': 'Medium',
'member': 'Ahli',
'members': 'Ahli',
'min': 'Min',
'minute': 'Minit',
'model': 'Model',
'month': 'Bulan',
'my-account': 'Akaun saya',
'my-websites': 'Laman web saya',
'none': 'Tiada',
'number-of-records': '{x} {x, plural, one {rekod} other {rekod}}',
'ok': 'OK',
'online': 'Dalam talian',
'organic-search': 'Carian organik',
'organic-shopping': 'Beli-belah organik',
'organic-social': 'Sosial organik',
'organic-video': 'Video organik',
'os': 'OS',
'other': 'Lain-lain',
'overview': 'Gambaran keseluruhan',
'owner': 'Pemilik',
'page': 'Halaman',
'page-of': 'Halaman {current} daripada {total}',
'pageTitle': 'Tajuk halaman',
'paid-ads': 'Iklan berbayar',
'paid-search': 'Carian berbayar',
'paid-shopping': 'Beli-belah berbayar',
'paid-social': 'Sosial berbayar',
'paid-video': 'Video berbayar',
'path': 'Laluan',
'paths': 'Laluan',
'pixel': 'Piksel',
'pixels': 'Piksel',
'preferences': 'Keutamaan',
'previous': 'Sebelumnya',
'previous-period': 'Tempoh sebelumnya',
'previous-year': 'Tahun sebelumnya',
'profiles': 'Profil',
'properties': 'Sifat',
'property': 'Sifat',
'queries': 'Pertanyaan',
'query': 'Pertanyaan',
'query-parameters': 'Parameter pertanyaan',
'referral': 'Rujukan',
'referrer': 'Perujuk',
'regenerate': 'Jana semula',
'region': 'Wilayah',
'regions': 'Wilayah',
'remaining': 'Baki',
'remove': 'Buang',
'remove-member': 'Buang ahli',
'reports': 'Laporan',
'retention': 'Pengekalan',
'retention-description': 'Ukur kelekatan laman web anda dengan menjejaki kekerapan pengguna kembali.',
'revenue': 'Hasil',
'role': 'Peranan',
'run-query': 'Jalankan pertanyaan',
'save-cohort': 'Simpan kohort',
'save-segment': 'Simpan segmen',
'screen': 'Skrin',
'screens': 'Skrin',
'search': 'Cari',
'segment': 'Segmen',
'segments': 'Segmen',
'select': 'Pilih',
'select-date': 'Pilih tarikh',
'select-filter': 'Pilih tapis',
'select-role': 'Pilih peranan',
'select-website': 'Pilih laman web',
'session': 'Sesi',
'session-data': 'Data sesi',
'sessions': 'Sesi',
'share': 'Kongsi',
'sms': 'SMS',
'source': 'Sumber',
'sources': 'Sumber',
'start-step': 'Langkah mula',
'steps': 'Langkah',
'sum': 'Jumlah',
'support': 'Sokongan',
'switch-account': 'Tukar akaun',
'table': 'Jadual',
'tablet': 'Tablet',
'tag': 'Tag',
'tags': 'Tag',
'team': 'Pasukan',
'team-id': 'ID pasukan',
'team-manager': 'Pengurus pasukan',
'team-member': 'Ahli pasukan',
'team-name': 'Nama pasukan',
'team-owner': 'Pemilik pasukan',
'team-settings': 'Tetapan pasukan',
'team-view-only': 'Lihat sahaja pasukan',
'team-websites': 'Laman web pasukan',
'teams': 'Pasukan',
'term': 'Kata kunci',
'terms': 'Syarat',
'theme': 'Tema',
'title': 'Tajuk',
'toggle-charts': 'Togol carta',
'total': 'Jumlah',
'total-records': 'Jumlah rekod',
'traffic': 'Trafik',
'transactions': 'Transaksi',
'transfer': 'Pindahkan',
'transfer-website': 'Pindahkan laman web',
'true': 'Benar',
'type': 'Jenis',
'unique': 'Unik',
'unique-events': 'Peristiwa unik',
'uniqueCustomers': 'Pelanggan unik',
'untitled': 'Tanpa tajuk',
'update': 'Kemas kini',
'url': 'URL',
'user': 'Pengguna',
'users': 'Pengguna',
'utm': 'UTM',
'utm-campaign': 'UTM Kempen',
'utm-content': 'UTM Kandungan',
'utm-description': 'Jejaki kempen anda melalui parameter UTM.',
'utm-medium': 'UTM Medium',
'utm-source': 'UTM Sumber',
'utm-term': 'UTM Kata Kunci',
'value': 'Nilai',
'version': 'Versi',
'view': 'Lihat',
'view-only': 'Lihat sahaja',
'views-per-visit': 'Paparan per lawatan',
'visits': 'Lawatan',
'website': 'Laman web',
'website-id': 'ID laman web',
'window': 'Tetingkap',
'yesterday': 'Semalam'
},
message: {
'action-confirmation': 'Taip {confirmation} dalam kotak di bawah untuk mengesahkan.',
'bad-request': 'Permintaan tidak sah',
'collected-data': 'Data yang dikumpul',
'confirm-leave': 'Adakah anda pasti mahu meninggalkan <b>{target}</b>?',
'confirm-remove': 'Adakah anda pasti mahu membuang <b>{target}</b>?',
'delete-team-warning': 'Memadamkan pasukan juga akan memadamkan semua laman web pasukan.',
'event-log': '<b>{event}</b> di <a>{url}</a>',
'forbidden': 'Dilarang',
'min-password-length': 'Panjang minimum {n} aksara',
'new-version-available': 'Versi baharu Umami {version} tersedia!',
'no-event-data': 'Tiada data peristiwa tersedia.',
'no-team-websites': 'Pasukan ini tidak mempunyai laman web.',
'no-teams': 'Anda belum mencipta sebarang pasukan.',
'no-users': 'Tiada pengguna.',
'not-found': 'Tidak dijumpai',
'nothing-selected': 'Tiada yang dipilih.',
'reset-website': 'Untuk menetapkan semula laman web ini, taip {confirmation} dalam kotak di bawah.',
'sever-error': 'Ralat pelayan',
'team-already-member': 'Anda sudah menjadi ahli pasukan.',
'team-not-found': 'Pasukan tidak dijumpai.',
'team-websites-info': 'Laman web boleh dilihat oleh sesiapa dalam pasukan.',
'transfer-team-website-to-user': 'Pindahkan laman web ini ke akaun anda?',
'transfer-user-website-to-team': 'Pilih pasukan untuk memindahkan laman web ini.',
'transfer-website': 'Pindahkan pemilikan laman web ke akaun anda atau pasukan lain.',
'triggered-event': 'Peristiwa yang dicetuskan',
'unauthorized': 'Tidak dibenarkan',
'user-deleted': 'Pengguna dipadamkan.',
'viewed-page': 'Halaman dilihat'
}
},
'uz-UZ': {
label: {
'account': 'Hisob',
'action': 'Harakat',
'add-link': 'Havola qo\'shish',
'add-pixel': 'Piksel qo\'shish',
'analysis': 'Tahlil',
'application': 'Ilova',
'audience': 'Auditoriya',
'campaign': 'Kampaniya',
'channel': 'Kanal',
'chart': 'Grafik',
'cohorts': 'Kogortalar',
'criteria': 'Mezonlar',
'destination-url': 'Maqsad URL',
'documentation': 'Hujjatlar',
'download': 'Yuklab olish',
'environment': 'Muhit',
'exclude-bounce': 'Chiqib ketishni istisno qilish',
'growth': 'O\'sish',
'hour': 'Soat',
'invalid-url': 'Noto\'g\'ri URL',
'link': 'Havola',
'location': 'Joylashuv',
'minute': 'Daqiqa',
'model': 'Model',
'month': 'Oy',
'ok': 'OK',
'pixel': 'Piksel',
'preferences': 'Sozlamalar',
'profiles': 'Profillar',
'save-cohort': 'Kogortani saqlash',
'save-segment': 'Segmentni saqlash',
'screen': 'Ekran',
'segment': 'Segment',
'segments': 'Segmentlar',
'sms': 'SMS',
'source': 'Manba',
'support': 'Qo\'llab-quvvatlash',
'switch-account': 'Hisobni almashtirish',
'table': 'Jadval',
'term': 'Qidiruv iborasi',
'traffic': 'Trafik',
'unique-events': 'Noyob hodisalar',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Kampaniya',
'utm-content': 'UTM Kontent',
'utm-medium': 'UTM Vosita',
'utm-source': 'UTM Manba',
'utm-term': 'UTM Ibora',
'version': 'Versiya'
},
message: {}
},
'mn-MN': {
label: {
'account': 'Бүртгэл',
'action': 'Үйлдэл',
'add-link': 'Холбоос нэмэх',
'add-pixel': 'Пиксел нэмэх',
'analysis': 'Шинжилгээ',
'application': 'Программ',
'audience': 'Үзэгчид',
'campaign': 'Кампанит ажил',
'channel': 'Суваг',
'chart': 'График',
'cohorts': 'Когортууд',
'criteria': 'Шалгуур',
'destination-url': 'Очих URL',
'documentation': 'Баримт бичиг',
'download': 'Татах',
'environment': 'Орчин',
'exclude-bounce': 'Буцалтыг хасах',
'growth': 'Өсөлт',
'hour': 'Цаг',
'invalid-url': 'Буруу URL',
'link': 'Холбоос',
'location': 'Байршил',
'max': 'Дээд',
'min': 'Доод',
'minute': 'Минут',
'month': 'Сар',
'online': 'Онлайн',
'os': 'ҮС',
'pixel': 'Пиксел',
'preferences': 'Тохиргоо',
'profiles': 'Профайлууд',
'query': 'Асуулга',
'referral': 'Лавлагаа',
'save-cohort': 'Когорт хадгалах',
'save-segment': 'Сегмент хадгалах',
'screen': 'Дэлгэц',
'segment': 'Сегмент',
'segments': 'Сегментүүд',
'select-role': 'Үүрэг сонгох',
'session': 'Сессия',
'sessions': 'Сессиүд',
'sms': 'SMS',
'source': 'Эх сурвалж',
'support': 'Дэмжлэг',
'switch-account': 'Бүртгэл солих',
'table': 'Хүснэгт',
'team-view-only': 'Зөвхөн багийн харагдац',
'term': 'Хайлтын нөхцөл',
'traffic': 'Урсгал',
'transactions': 'Гүйлгээнүүд',
'unique-events': 'Өвөрмөц үйл явдлууд',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Кампанит ажил',
'utm-content': 'UTM Агуулга',
'utm-medium': 'UTM Хэрэгсэл',
'utm-source': 'UTM Эх сурвалж',
'utm-term': 'UTM Нөхцөл',
'version': 'Хувилбар'
},
message: {
'bad-request': 'Буруу хүсэлт',
'forbidden': 'Хориотой',
'not-found': 'Олдсонгүй',
'nothing-selected': 'Юу ч сонгоогүй байна.',
'sever-error': 'Серверийн алдаа',
'unauthorized': 'Зөвшөөрөлгүй'
}
}
};
for (const [locale, trans] of Object.entries(translations)) {
const filePath = path.join(dir, locale + '.json');
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
let count = 0;
for (const [section, keys] of Object.entries(trans)) {
for (const [key, value] of Object.entries(keys)) {
if (data[section] && key in data[section]) {
data[section][key] = value;
count++;
}
}
}
const sorted = {};
for (const section of Object.keys(enUS)) {
if (data[section]) {
sorted[section] = {};
for (const key of Object.keys(enUS[section])) {
if (key in data[section]) sorted[section][key] = data[section][key];
}
for (const key of Object.keys(data[section])) {
if (!(key in sorted[section])) sorted[section][key] = data[section][key];
}
}
}
fs.writeFileSync(filePath, JSON.stringify(sorted, null, 2) + '\n', 'utf8');
console.log('Updated ' + locale + ': ' + count + ' keys');
}