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': 'क्या आप वाकई {target} छोड़ना चाहते हैं?',
'confirm-remove': 'क्या आप वाकई {target} को हटाना चाहते हैं?',
'delete-team-warning': 'टीम हटाने से टीम की सभी वेबसाइटें भी हट जाएँगी।',
'event-log': '{url} पर {event}',
'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': '{event} di {url}',
'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 {target}?',
'confirm-remove': 'Adakah anda pasti mahu membuang {target}?',
'delete-team-warning': 'Memadamkan pasukan juga akan memadamkan semua laman web pasukan.',
'event-log': '{event} di {url}',
'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');
}