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 = { 'hu-HU': { label: { 'account': 'Fiók', 'action': 'Művelet', 'add-link': 'Link hozzáadása', 'add-pixel': 'Pixel hozzáadása', 'analysis': 'Elemzés', 'application': 'Alkalmazás', 'audience': 'Közönség', 'campaign': 'Kampány', 'channel': 'Csatorna', 'chart': 'Diagram', 'cohorts': 'Kohorszok', 'contains': 'Tartalmazza', 'criteria': 'Feltételek', 'destination-url': 'Cél URL', 'documentation': 'Dokumentáció', 'domain': 'Domain', 'download': 'Letöltés', 'environment': 'Környezet', 'exclude-bounce': 'Visszafordulás kizárása', 'filter': 'Szűrő', 'growth': 'Növekedés', 'hour': 'Óra', 'invalid-url': 'Érvénytelen URL', 'language': 'Nyelv', 'languages': 'Nyelvek', 'laptop': 'Laptop', 'link': 'Link', 'location': 'Helyszín', 'minute': 'Perc', 'model': 'Modell', 'month': 'Hónap', 'ok': 'OK', 'online': 'Online', 'os': 'Operációs rendszer', 'pageTitle': 'Oldal címe', 'pixel': 'Pixel', 'preferences': 'Beállítások', 'previous': 'Előző', 'previous-period': 'Előző időszak', 'previous-year': 'Előző év', 'profiles': 'Profilok', 'referrer': 'Hivatkozó', 'regenerate': 'Újragenerálás', 'region': 'Régió', 'regions': 'Régiók', 'remove': 'Eltávolítás', 'remove-member': 'Tag eltávolítása', 'reports': 'Jelentések', 'retention': 'Megtartás', 'retention-description': 'Mérje weboldalának megtartó erejét annak nyomon követésével, hogy milyen gyakran térnek vissza a felhasználók.', 'role': 'Szerep', 'run-query': 'Lekérdezés futtatása', 'save-cohort': 'Kohorsz mentése', 'save-segment': 'Szegmens mentése', 'screen': 'Képernyő', 'search': 'Keresés', 'segment': 'Szegmens', 'segments': 'Szegmensek', 'select': 'Kiválasztás', 'select-date': 'Dátum kiválasztása', 'select-role': 'Szerep kiválasztása', 'select-website': 'Weboldal kiválasztása', 'sessions': 'Munkamenetek', 'sms': 'SMS', 'source': 'Forrás', 'sum': 'Összeg', 'support': 'Támogatás', 'switch-account': 'Fiók váltása', 'table': 'Táblázat', 'team': 'Csapat', 'team-id': 'Csapat-ID', 'team-manager': 'Csapatmenedzser', 'team-member': 'Csapattag', 'team-name': 'Csapat neve', 'team-owner': 'Csapat tulajdonosa', 'team-view-only': 'Csak csapat megtekintés', 'team-websites': 'Csapat weboldalai', 'teams': 'Csapatok', 'term': 'Keresőkifejezés', 'theme': 'Téma', 'title': 'Cím', 'toggle-charts': 'Diagramok megjelenítése', 'total': 'Összesen', 'total-records': 'Összes rekord', 'traffic': 'Forgalom', 'transactions': 'Tranzakciók', 'transfer': 'Átvitel', 'transfer-website': 'Weboldal átvitele', 'true': 'Igaz', 'type': 'Típus', 'unique': 'Egyedi', 'unique-events': 'Egyedi események', 'uniqueCustomers': 'Egyedi ügyfelek', 'untitled': 'Névtelen', 'update': 'Frissítés', 'url': 'URL', 'user': 'Felhasználó', 'users': 'Felhasználók', 'utm': 'UTM', 'utm-campaign': 'UTM-kampány', 'utm-content': 'UTM-tartalom', 'utm-description': 'Kövesse nyomon kampányait UTM-paraméterekkel.', 'utm-medium': 'UTM-médium', 'utm-source': 'UTM-forrás', 'utm-term': 'UTM-kifejezés', 'value': 'Érték', 'version': 'Verzió', 'view': 'Megtekintés', 'view-only': 'Csak megtekintés', 'views-per-visit': 'Megtekintés/látogatás', 'visits': 'Látogatások', 'website': 'Weboldal', 'website-id': 'Weboldal-ID', 'window': 'Ablak', 'yesterday': 'Tegnap' }, message: { 'action-confirmation': 'Írja be a(z) {confirmation} szót az alábbi mezőbe a megerősítéshez.', 'bad-request': 'Hibás kérés', 'collected-data': 'Gyűjtött adatok', 'confirm-leave': 'Biztosan el szeretné hagyni a(z) {target} csapatot?', 'confirm-remove': 'Biztosan el szeretné távolítani a(z) {target} elemet?', 'delete-team-warning': 'A csapat törlése az összes csapat weboldalt is törli.', 'event-log': '{event} itt: {url}', 'forbidden': 'Tiltott', 'min-password-length': 'Minimum {n} karakter hosszúság', 'new-version-available': 'Elérhető az Umami {version} új verziója!', 'no-event-data': 'Nincs elérhető eseményadat.', 'no-team-websites': 'Ennek a csapatnak nincsenek weboldalai.', 'no-teams': 'Még nem hozott létre csapatot.', 'no-users': 'Nincsenek felhasználók.', 'not-found': 'Nem található', 'nothing-selected': 'Semmi nincs kijelölve.', 'reset-website': 'A weboldal visszaállításához írja be a(z) {confirmation} szót az alábbi mezőbe.', 'sever-error': 'Szerverhiba', 'team-already-member': 'Ön már tagja a csapatnak.', 'team-not-found': 'Csapat nem található.', 'team-websites-info': 'A weboldalakat a csapat bármely tagja megtekintheti.', 'transfer-team-website-to-user': 'Átvinni ezt a weboldalt a fiókjába?', 'transfer-user-website-to-team': 'Válassza ki a csapatot, amelyre át kívánja vinni a weboldalt.', 'transfer-website': 'Vigye át a weboldal tulajdonjogát a fiókjába vagy egy másik csapatba.', 'triggered-event': 'Kiváltott esemény', 'unauthorized': 'Nincs jogosultság', 'user-deleted': 'Felhasználó törölve.', 'viewed-page': 'Megtekintett oldal' } }, 'el-GR': { label: { 'access-code': 'Κωδικός πρόσβασης', 'account': 'Λογαριασμός', 'action': 'Ενέργεια', 'add': 'Προσθήκη', 'add-board': 'Προσθήκη πίνακα', 'add-description': 'Προσθήκη περιγραφής', 'add-link': 'Προσθήκη συνδέσμου', 'add-member': 'Προσθήκη μέλους', 'add-pixel': 'Προσθήκη pixel', 'add-step': 'Προσθήκη βήματος', 'affiliate': 'Συνεργάτης', 'after': 'Μετά', 'all': 'Όλα', 'all-time': 'Από πάντα', 'analysis': 'Ανάλυση', 'analytics': 'Αναλυτικά', 'application': 'Εφαρμογή', 'apply': 'Εφαρμογή', 'attribution': 'Απόδοση', 'attribution-description': 'Δείτε πώς αλληλεπιδρούν οι χρήστες με το μάρκετινγκ και τι οδηγεί σε μετατροπές.', 'audience': 'Κοινό', 'average': 'Μέσος όρος', 'before': 'Πριν', 'boards': 'Πίνακες', 'breakdown': 'Ανάλυση', 'browser': 'Πρόγραμμα περιήγησης', 'campaign': 'Καμπάνια', 'campaigns': 'Καμπάνιες', 'channel': 'Κανάλι', 'channels': 'Κανάλια', 'chart': 'Γράφημα', 'cities': 'Πόλεις', 'city': 'Πόλη', 'clear-all': 'Εκκαθάριση όλων', 'cohort': 'Κοόρτη', 'cohorts': 'Κοόρτες', 'compare': 'Σύγκριση', 'compare-dates': 'Σύγκριση ημερομηνιών', 'confirm': 'Επιβεβαίωση', 'contains': 'Περιέχει', 'content': 'Περιεχόμενο', 'continue': 'Συνέχεια', 'conversion': 'Μετατροπή', 'conversion-rate': 'Ποσοστό μετατροπής', 'conversion-step': 'Βήμα μετατροπής', 'count': 'Πλήθος', 'country': 'Χώρα', 'create': 'Δημιουργία', 'create-report': 'Δημιουργία αναφοράς', 'create-team': 'Δημιουργία ομάδας', 'create-user': 'Δημιουργία χρήστη', 'created': 'Δημιουργήθηκε', 'created-by': 'Δημιουργήθηκε από', 'criteria': 'Κριτήρια', 'currency': 'Νόμισμα', 'current': 'Τρέχων', 'data': 'Δεδομένα', 'date': 'Ημερομηνία', 'day': 'Ημέρα', 'delete-report': 'Διαγραφή αναφοράς', 'delete-team': 'Διαγραφή ομάδας', 'delete-user': 'Διαγραφή χρήστη', 'description': 'Περιγραφή', 'destination-url': 'URL προορισμού', 'details': 'Λεπτομέρειες', 'device': 'Συσκευή', 'direct': 'Άμεσο', 'dismiss': 'Απόρριψη', 'distinct-id': 'Μοναδικό ID', 'documentation': 'Τεκμηρίωση', 'does-not-contain': 'Δεν περιέχει', 'does-not-include': 'Δεν περιλαμβάνει', 'doest-not-exist': 'Δεν υπάρχει', 'download': 'Λήψη', 'dropoff': 'Εγκατάλειψη', 'edit-dashboard': 'Επεξεργασία πίνακα ελέγχου', 'edit-member': 'Επεξεργασία μέλους', 'email': 'Email', 'end-step': 'Τελικό βήμα', 'environment': 'Περιβάλλον', 'event': 'Συμβάν', 'event-data': 'Δεδομένα συμβάντος', 'event-name': 'Όνομα συμβάντος', 'exclude-bounce': 'Εξαίρεση αναπήδησης', 'exists': 'Υπάρχει', 'false': 'Ψευδές', 'field': 'Πεδίο', 'fields': 'Πεδία', 'filter': 'Φίλτρο', 'filters': 'Φίλτρα', 'first-click': 'Πρώτο κλικ', 'first-seen': 'Πρώτη εμφάνιση', 'funnel': 'Χωνί', 'funnel-description': 'Κατανοήστε το ποσοστό μετατροπής και εγκατάλειψης χρηστών.', 'funnels': 'Χωνιά', 'goal': 'Στόχος', 'goals': 'Στόχοι', 'goals-description': 'Παρακολουθήστε τους στόχους σας για προβολές σελίδων και συμβάντα.', 'greater-than': 'Μεγαλύτερο από', 'greater-than-equals': 'Μεγαλύτερο ή ίσο', 'grouped': 'Ομαδοποιημένα', 'growth': 'Ανάπτυξη', 'hostname': 'Όνομα κεντρικού υπολογιστή', 'hour': 'Ώρα', 'includes': 'Περιλαμβάνει', 'insight': 'Πληροφορία', 'insights': 'Πληροφορίες', 'insights-description': 'Εμβαθύνετε στα δεδομένα σας χρησιμοποιώντας τμήματα και φίλτρα.', 'invalid-url': 'Μη έγκυρο URL', 'is': 'Είναι', 'is-false': 'Είναι ψευδές', 'is-not': 'Δεν είναι', 'is-not-set': 'Δεν έχει οριστεί', 'is-set': 'Έχει οριστεί', 'is-true': 'Είναι αληθές', 'join': 'Συμμετοχή', 'join-team': 'Συμμετοχή σε ομάδα', 'journey': 'Διαδρομή', 'journey-description': 'Κατανοήστε πώς πλοηγούνται οι χρήστες στον ιστότοπό σας.', 'journeys': 'Διαδρομές', 'language': 'Γλώσσα', 'languages': 'Γλώσσες', 'last-click': 'Τελευταίο κλικ', 'last-months': 'Τελευταίοι {x} μήνες', 'last-seen': 'Τελευταία εμφάνιση', 'leave': 'Αποχώρηση', 'leave-team': 'Αποχώρηση από ομάδα', 'less-than': 'Μικρότερο από', 'less-than-equals': 'Μικρότερο ή ίσο', 'link': 'Σύνδεσμος', 'links': 'Σύνδεσμοι', 'location': 'Τοποθεσία', 'manage': 'Διαχείριση', 'manager': 'Διαχειριστής', 'max': 'Μέγ', 'medium': 'Μέσο', 'member': 'Μέλος', 'members': 'Μέλη', 'min': 'Ελάχ', 'minute': 'Λεπτό', 'model': 'Μοντέλο', 'month': 'Μήνας', 'my-account': 'Ο λογαριασμός μου', 'my-websites': 'Οι ιστότοποί μου', 'none': 'Κανένα', 'number-of-records': '{x} {x, plural, one {εγγραφή} other {εγγραφές}}', 'ok': 'OK', 'online': 'Σε σύνδεση', 'organic-search': 'Οργανική αναζήτηση', 'organic-shopping': 'Οργανικές αγορές', 'organic-social': 'Οργανικά κοινωνικά', 'organic-video': 'Οργανικό βίντεο', 'os': 'ΛΣ', 'other': 'Άλλο', 'overview': 'Επισκόπηση', 'owner': 'Ιδιοκτήτης', 'page': 'Σελίδα', 'page-of': 'Σελίδα {current} από {total}', 'pageTitle': 'Τίτλος σελίδας', 'paid-ads': 'Πληρωμένες διαφημίσεις', 'paid-search': 'Πληρωμένη αναζήτηση', 'paid-shopping': 'Πληρωμένες αγορές', 'paid-social': 'Πληρωμένα κοινωνικά', 'paid-video': 'Πληρωμένο βίντεο', 'path': 'Διαδρομή', 'paths': 'Διαδρομές', 'pixel': 'Pixel', 'pixels': 'Pixels', 'preferences': 'Προτιμήσεις', 'previous': 'Προηγούμενο', 'previous-period': 'Προηγούμενη περίοδος', 'previous-year': 'Προηγούμενο έτος', 'profiles': 'Προφίλ', 'properties': 'Ιδιότητες', 'property': 'Ιδιότητα', 'queries': 'Ερωτήματα', 'query': 'Ερώτημα', 'query-parameters': 'Παράμετροι ερωτήματος', 'realtime': 'Πραγματικός χρόνος', 'referral': 'Παραπομπή', 'referrer': 'Παραπέμπων', 'regenerate': 'Αναδημιουργία', 'region': 'Περιφέρεια', 'regions': 'Περιφέρειες', 'remaining': 'Υπολειπόμενα', 'remove': 'Αφαίρεση', 'remove-member': 'Αφαίρεση μέλους', 'reports': 'Αναφορές', 'retention': 'Διατήρηση', 'retention-description': 'Μετρήστε την ικανότητα διατήρησης χρηστών του ιστότοπού σας.', 'revenue': 'Έσοδα', 'role': 'Ρόλος', 'run-query': 'Εκτέλεση ερωτήματος', 'save-cohort': 'Αποθήκευση κοόρτης', 'save-segment': 'Αποθήκευση τμήματος', 'screen': 'Οθόνη', 'screens': 'Οθόνες', 'search': 'Αναζήτηση', 'segment': 'Τμήμα', 'segments': 'Τμήματα', 'select': 'Επιλογή', 'select-date': 'Επιλογή ημερομηνίας', 'select-filter': 'Επιλογή φίλτρου', 'select-role': 'Επιλογή ρόλου', 'select-website': 'Επιλογή ιστότοπου', 'session': 'Συνεδρία', 'session-data': 'Δεδομένα συνεδρίας', 'sessions': 'Συνεδρίες', 'share': 'Κοινοποίηση', 'sms': 'SMS', 'source': 'Πηγή', 'sources': 'Πηγές', 'start-step': 'Αρχικό βήμα', 'steps': 'Βήματα', 'sum': 'Άθροισμα', 'support': 'Υποστήριξη', 'switch-account': 'Αλλαγή λογαριασμού', 'table': 'Πίνακας', 'tag': 'Ετικέτα', 'tags': 'Ετικέτες', 'team': 'Ομάδα', 'team-id': 'ID ομάδας', 'team-manager': 'Υπεύθυνος ομάδας', 'team-member': 'Μέλος ομάδας', 'team-name': 'Όνομα ομάδας', 'team-owner': 'Ιδιοκτήτης ομάδας', 'team-settings': 'Ρυθμίσεις ομάδας', 'team-view-only': 'Μόνο προβολή ομάδας', 'team-websites': 'Ιστότοποι ομάδας', 'teams': 'Ομάδες', 'term': 'Όρος αναζήτησης', 'terms': 'Όροι', 'theme': 'Θέμα', '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': '{event} στο {url}', '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': 'Προβολή σελίδας', 'visitor-log': 'Επισκέπτης από {country} χρησιμοποιώντας {browser} σε {os} {device}' } }, 'tr-TR': { label: { 'account': 'Hesap', 'action': 'Eylem', 'add-link': 'Bağlantı ekle', 'add-pixel': 'Piksel ekle', 'analysis': 'Analiz', 'application': 'Uygulama', 'audience': 'Kitle', 'campaign': 'Kampanya', 'channel': 'Kanal', 'chart': 'Grafik', 'cohorts': 'Kohortlar', 'criteria': 'Kriterler', 'destination-url': 'Hedef URL', 'documentation': 'Dokümantasyon', 'download': 'İndir', 'email': 'E-posta', 'end-step': 'Son adım', 'environment': 'Ortam', 'exclude-bounce': 'Hemen çıkışı hariç tut', 'first-seen': 'İlk görülme', 'growth': 'Büyüme', 'hour': 'Saat', 'insights': 'İçgörüler', 'invalid-url': 'Geçersiz URL', 'is': 'Eşittir', 'link': 'Bağlantı', 'location': 'Konum', 'manager': 'Yönetici', 'max': 'Maks', 'min': 'Min', 'minute': 'Dakika', 'model': 'Model', 'month': 'Ay', 'number-of-records': '{x} {x, plural, one {kayıt} other {kayıt}}', 'online': 'Çevrimiçi', 'os': 'İşletim Sistemi', 'pixel': 'Piksel', 'preferences': 'Tercihler', 'profiles': 'Profiller', 'referrer': 'Yönlendiren', 'save-cohort': 'Kohortu kaydet', 'save-segment': 'Segmenti kaydet', 'screen': 'Ekran', 'segment': 'Segment', 'segments': 'Segmentler', 'sessions': 'Oturumlar', 'sms': 'SMS', 'source': 'Kaynak', 'start-step': 'Başlangıç adımı', 'support': 'Destek', 'switch-account': 'Hesap değiştir', 'table': 'Tablo', 'tablet': 'Tablet', 'term': 'Arama terimi', 'traffic': 'Trafik', 'transactions': 'İşlemler', 'transfer': 'Transfer', 'unique-events': 'Benzersiz etkinlikler', 'uniqueCustomers': 'Benzersiz müşteriler', 'url': 'URL', 'utm': 'UTM', 'utm-campaign': 'UTM Kampanya', 'utm-content': 'UTM İçerik', 'utm-medium': 'UTM Ortam', 'utm-source': 'UTM Kaynak', 'utm-term': 'UTM Terim', 'version': 'Sürüm', 'website-id': 'Web sitesi ID' }, message: { 'bad-request': 'Geçersiz istek', 'collected-data': 'Toplanan veriler', 'event-log': '{event} sayfasında {url}', 'forbidden': 'Yasaklandı', 'not-found': 'Bulunamadı', 'nothing-selected': 'Hiçbir şey seçilmedi.', 'sever-error': 'Sunucu hatası', 'unauthorized': 'Yetkisiz' } }, 'ar-SA': { label: { 'account': 'حساب', 'action': 'إجراء', 'add-link': 'إضافة رابط', 'add-pixel': 'إضافة بكسل', 'affiliate': 'شريك تسويقي', 'analysis': 'تحليل', 'application': 'تطبيق', 'audience': 'جمهور', 'campaign': 'حملة', 'channel': 'قناة', 'chart': 'مخطط', 'cohorts': 'مجموعات', 'criteria': 'معايير', 'destination-url': 'رابط الوجهة', 'documentation': 'التوثيق', 'download': 'تحميل', 'email': 'بريد إلكتروني', 'environment': 'بيئة', 'exclude-bounce': 'استبعاد الارتداد', 'growth': 'نمو', 'hour': 'ساعة', 'invalid-url': 'رابط غير صالح', 'link': 'رابط', 'location': 'موقع', 'minute': 'دقيقة', 'month': 'شهر', 'online': 'متصل', 'pixel': 'بكسل', 'preferences': 'التفضيلات', 'profiles': 'الملفات الشخصية', 'save-cohort': 'حفظ المجموعة', 'save-segment': 'حفظ الشريحة', 'screen': 'شاشة', 'segment': 'شريحة', 'segments': 'شرائح', 'sms': 'رسالة نصية', 'source': 'مصدر', 'support': 'دعم', 'switch-account': 'تبديل الحساب', 'table': 'جدول', 'term': 'مصطلح البحث', 'traffic': 'حركة المرور', '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': 'غير مصرح' } }, 'fa-IR': { 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': 'موقعیت', 'minute': 'دقیقه', 'month': 'ماه', 'number-of-records': '{x} {x, plural, one {رکورد} other {رکورد}}', 'online': 'آنلاین', 'pixel': 'پیکسل', 'preferences': 'تنظیمات', 'profiles': 'پروفایل‌ها', 'save-cohort': 'ذخیره گروه', 'save-segment': 'ذخیره بخش', 'screen': 'صفحه نمایش', 'segment': 'بخش', 'segments': 'بخش‌ها', 'sms': 'پیامک', 'source': 'منبع', 'support': 'پشتیبانی', 'switch-account': 'تغییر حساب', 'table': 'جدول', 'term': 'عبارت جستجو', 'traffic': 'ترافیک', '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': 'غیرمجاز' } }, 'he-IL': { label: { 'account': 'חשבון', 'action': 'פעולה', 'add-link': 'הוספת קישור', 'add-pixel': 'הוספת פיקסל', 'analysis': 'ניתוח', 'application': 'יישום', 'audience': 'קהל', 'campaign': 'מסע פרסום', 'channel': 'ערוץ', 'chart': 'תרשים', 'cohorts': 'קוהורטות', 'contains': 'מכיל', 'criteria': 'קריטריונים', 'destination-url': 'כתובת יעד', 'documentation': 'תיעוד', 'download': 'הורדה', 'environment': 'סביבה', 'exclude-bounce': 'החרג נטישה', 'filter': 'סינון', 'growth': 'צמיחה', 'hour': 'שעה', 'invalid-url': 'כתובת לא תקינה', 'language': 'שפה', 'languages': 'שפות', 'link': 'קישור', 'location': 'מיקום', 'minute': 'דקה', 'model': 'דגם', 'month': 'חודש', 'ok': 'אישור', 'online': 'מחובר', 'os': 'מערכת הפעלה', 'pageTitle': 'כותרת עמוד', 'pixel': 'פיקסל', 'powered-by': 'מופעל על ידי {name}', 'preferences': 'העדפות', 'previous': 'הקודם', 'previous-period': 'תקופה קודמת', 'previous-year': 'שנה קודמת', 'profiles': 'פרופילים', 'referrer': 'מפנה', 'regenerate': 'ייצור מחדש', 'region': 'אזור', 'regions': 'אזורים', 'remove': 'הסרה', 'remove-member': 'הסרת חבר', 'reports': 'דוחות', 'retention': 'שימור', 'retention-description': 'מדדו את מידת ההיצמדות לאתר שלכם על ידי מעקב אחר תדירות חזרת המשתמשים.', 'role': 'תפקיד', 'run-query': 'הרץ שאילתה', 'save-cohort': 'שמור קוהורטה', 'save-segment': 'שמור מקטע', 'screen': 'מסך', 'search': 'חיפוש', 'segment': 'מקטע', 'segments': 'מקטעים', 'select': 'בחירה', 'select-date': 'בחר תאריך', 'select-role': 'בחר תפקיד', 'select-website': 'בחר אתר', 'sessions': 'הפעלות', 'sms': 'SMS', 'source': 'מקור', 'sum': 'סכום', 'support': 'תמיכה', 'switch-account': 'החלף חשבון', 'table': 'טבלה', 'team': 'צוות', 'team-id': 'מזהה צוות', 'team-manager': 'מנהל צוות', 'team-member': 'חבר צוות', 'team-name': 'שם צוות', 'team-owner': 'בעלי צוות', 'team-view-only': 'צפייה בלבד בצוות', 'team-websites': 'אתרי צוות', 'teams': 'צוותות', 'term': 'מונח חיפוש', 'theme': 'ערכת נושא', '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': 'מזהה אתר', 'window': 'חלון', 'yesterday': 'אתמול' }, message: { 'action-confirmation': 'הקלידו {confirmation} בתיבה למטה לאישור.', 'bad-request': 'בקשה שגויה', 'collected-data': 'נתונים שנאספו', 'confirm-leave': 'האם אתם בטוחים שברצונכם לעזוב את {target}?', 'confirm-remove': 'האם אתם בטוחים שברצונכם להסיר את {target}?', 'delete-team-warning': 'מחיקת צוות תמחק גם את כל אתרי הצוות.', 'event-log': '{event} ב-{url}', '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': 'עמוד שנצפה' } } }; 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'); }