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 = {
'es-ES': {
label: {
'account': 'Cuenta',
'action': 'Acción',
'add-link': 'Añadir enlace',
'add-pixel': 'Añadir píxel',
'analysis': 'Análisis',
'application': 'Aplicación',
'audience': 'Audiencia',
'campaign': 'Campaña',
'channel': 'Canal',
'chart': 'Gráfico',
'cohorts': 'Cohortes',
'criteria': 'Criterios',
'destination-url': 'URL de destino',
'documentation': 'Documentación',
'download': 'Descargar',
'email': 'Correo electrónico',
'environment': 'Entorno',
'exclude-bounce': 'Excluir rebote',
'growth': 'Crecimiento',
'hour': 'Hora',
'invalid-url': 'URL no válida',
'link': 'Enlace',
'location': 'Ubicación',
'minute': 'Minuto',
'month': 'Mes',
'ok': 'Aceptar',
'online': 'En línea',
'pixel': 'Píxel',
'preferences': 'Preferencias',
'profiles': 'Perfiles',
'save-cohort': 'Guardar cohorte',
'save-segment': 'Guardar segmento',
'screen': 'Pantalla',
'segment': 'Segmento',
'segments': 'Segmentos',
'sms': 'SMS',
'source': 'Fuente',
'support': 'Soporte',
'switch-account': 'Cambiar cuenta',
'table': 'Tabla',
'term': 'Término',
'total': 'Total',
'traffic': 'Tráfico',
'unique-events': 'Eventos únicos',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Campaña',
'utm-content': 'UTM Contenido',
'utm-medium': 'UTM Medio',
'utm-source': 'UTM Fuente',
'utm-term': 'UTM Término',
'version': 'Versión'
},
message: {
'bad-request': 'Solicitud incorrecta',
'forbidden': 'Prohibido',
'not-found': 'No encontrado',
'nothing-selected': 'Nada seleccionado.',
'sever-error': 'Error del servidor',
'unauthorized': 'No autorizado'
}
},
'fr-FR': {
label: {
'account': 'Compte',
'action': 'Action',
'actions': 'Actions',
'add-link': 'Ajouter un lien',
'add-pixel': 'Ajouter un pixel',
'analysis': 'Analyse',
'application': 'Application',
'attribution': 'Attribution',
'audience': 'Audience',
'campaign': 'Campagne',
'channel': 'Canal',
'chart': 'Graphique',
'cohorts': 'Cohortes',
'conversion': 'Conversion',
'criteria': 'Critères',
'date': 'Date',
'description': 'Description',
'destination-url': 'URL de destination',
'direct': 'Direct',
'documentation': 'Documentation',
'download': 'Télécharger',
'environment': 'Environnement',
'exclude-bounce': 'Exclure le rebond',
'growth': 'Croissance',
'hour': 'Heure',
'invalid-url': 'URL invalide',
'link': 'Lien',
'location': 'Emplacement',
'max': 'Max',
'min': 'Min',
'minute': 'Minute',
'month': 'Mois',
'ok': 'OK',
'online': 'En ligne',
'os': 'OS',
'page': 'Page',
'pages': 'Pages',
'pixel': 'Pixel',
'pixels': 'Pixels',
'preferences': 'Préférences',
'profiles': 'Profils',
'save-cohort': 'Enregistrer la cohorte',
'save-segment': 'Enregistrer le segment',
'screen': 'Écran',
'segment': 'Segment',
'segments': 'Segments',
'session': 'Session',
'sessions': 'Sessions',
'sms': 'SMS',
'source': 'Source',
'sources': 'Sources',
'support': 'Support',
'switch-account': 'Changer de compte',
'table': 'Tableau',
'team-settings': 'Paramètres de l\'équipe',
'term': 'Terme',
'total': 'Total',
'transactions': 'Transactions',
'type': 'Type',
'unique': 'Unique',
'unique-events': 'Événements uniques',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Campagne',
'utm-content': 'UTM Contenu',
'utm-medium': 'UTM Média',
'utm-source': 'UTM Source',
'utm-term': 'UTM Terme',
'version': 'Version'
},
message: {
'bad-request': 'Requête incorrecte',
'forbidden': 'Interdit'
}
},
'pt-BR': {
label: {
'account': 'Conta',
'action': 'Ação',
'add-link': 'Adicionar link',
'add-pixel': 'Adicionar pixel',
'analysis': 'Análise',
'application': 'Aplicação',
'audience': 'Audiência',
'campaign': 'Campanha',
'channel': 'Canal',
'chart': 'Gráfico',
'cohorts': 'Coortes',
'criteria': 'Critérios',
'destination-url': 'URL de destino',
'documentation': 'Documentação',
'download': 'Download',
'email': 'E-mail',
'end-step': 'Etapa final',
'environment': 'Ambiente',
'exclude-bounce': 'Excluir rejeição',
'first-seen': 'Visto pela primeira vez',
'growth': 'Crescimento',
'hour': 'Hora',
'insight': 'Insight',
'insights': 'Insights',
'invalid-url': 'URL inválida',
'link': 'Link',
'links': 'Links',
'location': 'Localização',
'manager': 'Gerente',
'minute': 'Minuto',
'month': 'Mês',
'ok': 'OK',
'online': 'Online',
'pixel': 'Pixel',
'pixels': 'Pixels',
'preferences': 'Preferências',
'profiles': 'Perfis',
'save-cohort': 'Salvar coorte',
'save-segment': 'Salvar segmento',
'screen': 'Tela',
'segment': 'Segmento',
'segments': 'Segmentos',
'sms': 'SMS',
'source': 'Fonte',
'start-step': 'Etapa inicial',
'support': 'Suporte',
'switch-account': 'Trocar conta',
'table': 'Tabela',
'tablet': 'Tablet',
'tag': 'Tag',
'tags': 'Tags',
'term': 'Termo',
'total': 'Total',
'traffic': 'Tráfego',
'transactions': 'Transações',
'unique-events': 'Eventos únicos',
'uniqueCustomers': 'Clientes únicos',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Campanha',
'utm-content': 'UTM Conteúdo',
'utm-medium': 'UTM Mídia',
'utm-source': 'UTM Fonte',
'utm-term': 'UTM Termo',
'version': 'Versão'
},
message: {
'bad-request': 'Requisição inválida',
'collected-data': 'Dados coletados',
'forbidden': 'Proibido',
'not-found': 'Não encontrado',
'nothing-selected': 'Nada selecionado.',
'sever-error': 'Erro do servidor',
'unauthorized': 'Não autorizado'
}
},
'pt-PT': {
label: {
'account': 'Conta',
'action': 'Ação',
'add-link': 'Adicionar ligação',
'add-pixel': 'Adicionar pixel',
'analysis': 'Análise',
'application': 'Aplicação',
'audience': 'Audiência',
'campaign': 'Campanha',
'channel': 'Canal',
'chart': 'Gráfico',
'cohorts': 'Coortes',
'contains': 'Contém',
'continue': 'Continuar',
'criteria': 'Critérios',
'data': 'Dados',
'date': 'Data',
'destination-url': 'URL de destino',
'documentation': 'Documentação',
'download': 'Transferir',
'dropoff': 'Abandono',
'email': 'E-mail',
'environment': 'Ambiente',
'exclude-bounce': 'Excluir rejeição',
'growth': 'Crescimento',
'hour': 'Hora',
'insight': 'Insight',
'insights': 'Insights',
'insights-description': 'Aprofunde os seus dados utilizando segmentos e filtros.',
'invalid-url': 'URL inválido',
'link': 'Ligação',
'location': 'Localização',
'minute': 'Minuto',
'month': 'Mês',
'number-of-records': '{x} {x, plural, one {registo} other {registos}}',
'ok': 'OK',
'online': 'Online',
'os': 'SO',
'overview': 'Visão geral',
'page-of': 'Página {current} de {total}',
'pageTitle': 'Título da página',
'pixel': 'Pixel',
'preferences': 'Preferências',
'profiles': 'Perfis',
'queries': 'Consultas',
'query': 'Consulta',
'query-parameters': 'Parâmetros de consulta',
'referrer': 'Referência',
'regenerate': 'Regenerar',
'region': 'Região',
'regions': 'Regiões',
'remove': 'Remover',
'remove-member': 'Remover membro',
'reports': 'Relatórios',
'retention': 'Retenção',
'retention-description': 'Meça a fidelidade do seu site, monitorizando a frequência com que os utilizadores regressam.',
'role': 'Função',
'run-query': 'Executar consulta',
'save-cohort': 'Guardar coorte',
'save-segment': 'Guardar segmento',
'screen': 'Ecrã',
'screens': 'Ecrãs',
'search': 'Pesquisar',
'segment': 'Segmento',
'segments': 'Segmentos',
'select': 'Selecionar',
'select-date': 'Selecionar data',
'select-role': 'Selecionar função',
'select-website': 'Selecionar website',
'sessions': 'Sessões',
'sms': 'SMS',
'source': 'Fonte',
'start-step': 'Etapa inicial',
'steps': 'Etapas',
'sum': 'Soma',
'support': 'Suporte',
'switch-account': 'Trocar de conta',
'table': 'Tabela',
'tablet': 'Tablet',
'team': 'Equipa',
'team-id': 'ID da equipa',
'team-member': 'Membro da equipa',
'team-name': 'Nome da equipa',
'team-owner': 'Proprietário da equipa',
'team-view-only': 'Visualização da equipa apenas',
'team-websites': 'Websites da equipa',
'teams': 'Equipas',
'term': 'Termo',
'title': 'Título',
'total': 'Total',
'total-records': 'Total de registos',
'traffic': 'Tráfego',
'transactions': 'Transações',
'transfer': 'Transferir',
'transfer-website': 'Transferir website',
'true': 'Verdadeiro',
'type': 'Tipo',
'unique': 'Único',
'unique-events': 'Eventos únicos',
'uniqueCustomers': 'Clientes únicos',
'untitled': 'Sem título',
'update': 'Atualizar',
'url': 'URL',
'user': 'Utilizador',
'users': 'Utilizadores',
'utm': 'UTM',
'utm-campaign': 'UTM Campanha',
'utm-content': 'UTM Conteúdo',
'utm-description': 'Monitorize as suas campanhas através de parâmetros UTM.',
'utm-medium': 'UTM Meio',
'utm-source': 'UTM Fonte',
'utm-term': 'UTM Termo',
'value': 'Valor',
'version': 'Versão',
'view': 'Visualizar',
'view-only': 'Apenas visualização',
'views-per-visit': 'Visualizações por visita',
'visits': 'Visitas',
'website': 'Website',
'website-id': 'ID do website',
'websites': 'Websites',
'window': 'Janela',
'yesterday': 'Ontem'
},
message: {
'action-confirmation': 'Escreva {confirmation} na caixa abaixo para confirmar.',
'bad-request': 'Pedido inválido',
'collected-data': 'Dados recolhidos',
'confirm-leave': 'Tem a certeza de que deseja sair de {target}?',
'confirm-remove': 'Tem a certeza de que deseja remover {target}?',
'delete-team-warning': 'Eliminar uma equipa também elimina todos os websites da equipa.',
'event-log': '{event} em {url}',
'forbidden': 'Proibido',
'min-password-length': 'Comprimento mínimo de {n} caracteres',
'new-version-available': 'Uma nova versão do Umami {version} está disponível!',
'no-event-data': 'Não existem dados de eventos disponíveis.',
'no-team-websites': 'Esta equipa não tem websites.',
'no-teams': 'Ainda não criou nenhuma equipa.',
'no-users': 'Não existem utilizadores.',
'not-found': 'Não encontrado',
'nothing-selected': 'Nada selecionado.',
'reset-website': 'Para repor este website, escreva {confirmation} na caixa abaixo para confirmar.',
'sever-error': 'Erro do servidor',
'team-already-member': 'Já é membro da equipa.',
'team-not-found': 'Equipa não encontrada.',
'team-websites-info': 'Os websites podem ser visualizados por qualquer membro da equipa.',
'transfer-team-website-to-user': 'Transferir este website para a sua conta?',
'transfer-user-website-to-team': 'Selecione a equipa para a qual transferir este website.',
'transfer-website': 'Transfira a propriedade do website para a sua conta ou outra equipa.',
'triggered-event': 'Evento acionado',
'unauthorized': 'Não autorizado',
'user-deleted': 'Utilizador eliminado.',
'viewed-page': 'Página visualizada'
}
},
'it-IT': {
label: {
'account': 'Account',
'action': 'Azione',
'add-link': 'Aggiungi link',
'add-pixel': 'Aggiungi pixel',
'analysis': 'Analisi',
'application': 'Applicazione',
'audience': 'Pubblico',
'browser': 'Browser',
'campaign': 'Campagna',
'channel': 'Canale',
'chart': 'Grafico',
'cohorts': 'Coorti',
'contains': 'Contiene',
'criteria': 'Criteri',
'desktop': 'Desktop',
'destination-url': 'URL di destinazione',
'documentation': 'Documentazione',
'download': 'Scarica',
'email': 'Email',
'environment': 'Ambiente',
'exclude-bounce': 'Escludi rimbalzo',
'filter': 'Filtro',
'filter-raw': 'Grezzo',
'funnel': 'Funnel',
'growth': 'Crescita',
'hour': 'Ora',
'invalid-url': 'URL non valido',
'link': 'Link',
'location': 'Posizione',
'manager': 'Gestore',
'minute': 'Minuto',
'model': 'Modello',
'month': 'Mese',
'number-of-records': '{x} {x, plural, one {record} other {record}}',
'ok': 'OK',
'online': 'Online',
'os': 'SO',
'overview': 'Panoramica',
'page-of': 'Pagina {current} di {total}',
'pageTitle': 'Titolo pagina',
'password': 'Password',
'pixel': 'Pixel',
'powered-by': 'Fornito da {name}',
'preferences': 'Preferenze',
'previous': 'Precedente',
'previous-period': 'Periodo precedente',
'previous-year': 'Anno precedente',
'profiles': 'Profili',
'query': 'Query',
'referrer': 'Referente',
'referrers': 'Referenti',
'regenerate': 'Rigenera',
'region': 'Regione',
'regions': 'Regioni',
'remove': 'Rimuovi',
'remove-member': 'Rimuovi membro',
'reports': 'Report',
'reset': 'Reimposta',
'retention': 'Fidelizzazione',
'retention-description': 'Misura la fidelizzazione del tuo sito monitorando la frequenza con cui gli utenti ritornano.',
'role': 'Ruolo',
'run-query': 'Esegui query',
'save-cohort': 'Salva coorte',
'save-segment': 'Salva segmento',
'screen': 'Schermo',
'search': 'Cerca',
'segment': 'Segmento',
'segments': 'Segmenti',
'select': 'Seleziona',
'select-date': 'Seleziona data',
'select-role': 'Seleziona ruolo',
'select-website': 'Seleziona sito web',
'session': 'Sessione',
'sessions': 'Sessioni',
'sms': 'SMS',
'source': 'Fonte',
'start-step': 'Passaggio iniziale',
'steps': 'Passaggi',
'sum': 'Somma',
'support': 'Supporto',
'switch-account': 'Cambia account',
'table': 'Tabella',
'tablet': 'Tablet',
'team': 'Team',
'team-id': 'ID Team',
'team-manager': 'Manager del team',
'team-member': 'Membro del team',
'team-name': 'Nome del team',
'team-owner': 'Proprietario del team',
'team-view-only': 'Solo visualizzazione team',
'team-websites': 'Siti web del team',
'teams': 'Team',
'term': 'Termine',
'title': 'Titolo',
'total': 'Totale',
'total-records': 'Record totali',
'traffic': 'Traffico',
'transactions': 'Transazioni',
'transfer': 'Trasferisci',
'transfer-website': 'Trasferisci sito web',
'true': 'Vero',
'type': 'Tipo',
'unique': 'Unico',
'unique-events': 'Eventi unici',
'uniqueCustomers': 'Clienti unici',
'untitled': 'Senza titolo',
'update': 'Aggiorna',
'url': 'URL',
'user': 'Utente',
'users': 'Utenti',
'utm': 'UTM',
'utm-campaign': 'UTM Campagna',
'utm-content': 'UTM Contenuto',
'utm-description': 'Monitora le tue campagne attraverso i parametri UTM.',
'utm-medium': 'UTM Mezzo',
'utm-source': 'UTM Fonte',
'utm-term': 'UTM Termine',
'value': 'Valore',
'version': 'Versione',
'view': 'Visualizza',
'view-only': 'Solo visualizzazione',
'views-per-visit': 'Visualizzazioni per visita',
'visits': 'Visite',
'website': 'Sito web',
'website-id': 'ID sito web',
'window': 'Finestra'
},
message: {
'action-confirmation': 'Digita {confirmation} nella casella sottostante per confermare.',
'bad-request': 'Richiesta non valida',
'collected-data': 'Dati raccolti',
'confirm-leave': 'Sei sicuro di voler lasciare {target}?',
'confirm-remove': 'Sei sicuro di voler rimuovere {target}?',
'delete-team-warning': 'L\'eliminazione di un team eliminerà anche tutti i siti web del team.',
'event-log': '{event} su {url}',
'forbidden': 'Vietato',
'min-password-length': 'Lunghezza minima di {n} caratteri',
'new-version-available': 'È disponibile una nuova versione di Umami {version}!',
'no-event-data': 'Nessun dato evento disponibile.',
'no-team-websites': 'Questo team non ha siti web.',
'no-teams': 'Non hai creato nessun team.',
'no-users': 'Non ci sono utenti.',
'not-found': 'Non trovato',
'nothing-selected': 'Nessuna selezione.',
'reset-website': 'Per reimpostare questo sito web, digita {confirmation} nella casella sottostante per confermare.',
'sever-error': 'Errore del server',
'team-already-member': 'Sei già membro del team.',
'team-not-found': 'Team non trovato.',
'team-websites-info': 'I siti web possono essere visualizzati da chiunque nel team.',
'transfer-team-website-to-user': 'Trasferire questo sito web al tuo account?',
'transfer-user-website-to-team': 'Seleziona il team a cui trasferire questo sito web.',
'transfer-website': 'Trasferisci la proprietà del sito web al tuo account o a un altro team.',
'triggered-event': 'Evento attivato',
'unauthorized': 'Non autorizzato',
'user-deleted': 'Utente eliminato.',
'viewed-page': 'Pagina visualizzata'
}
},
'ca-ES': {
label: {
'account': 'Compte',
'action': 'Acció',
'add-link': 'Afegir enllaç',
'add-pixel': 'Afegir píxel',
'analysis': 'Anàlisi',
'application': 'Aplicació',
'audience': 'Audiència',
'campaign': 'Campanya',
'channel': 'Canal',
'chart': 'Gràfic',
'cohort': 'Cohort',
'cohorts': 'Cohorts',
'criteria': 'Criteris',
'destination-url': 'URL de destinació',
'documentation': 'Documentació',
'download': 'Descarregar',
'email': 'Correu electrònic',
'environment': 'Entorn',
'exclude-bounce': 'Excloure rebot',
'growth': 'Creixement',
'hour': 'Hora',
'insights': 'Insights',
'invalid-url': 'URL no vàlida',
'link': 'Enllaç',
'location': 'Ubicació',
'minute': 'Minut',
'model': 'Model',
'month': 'Mes',
'ok': "D'acord",
'online': 'En línia',
'pixel': 'Píxel',
'pixels': 'Píxels',
'preferences': 'Preferències',
'profiles': 'Perfils',
'regions': 'Regions',
'save-cohort': 'Desar cohort',
'save-segment': 'Desar segment',
'screen': 'Pantalla',
'segment': 'Segment',
'segments': 'Segments',
'sessions': 'Sessions',
'sms': 'SMS',
'source': 'Font',
'support': 'Suport',
'switch-account': 'Canviar de compte',
'table': 'Taula',
'term': 'Terme',
'total': 'Total',
'traffic': 'Trànsit',
'unique-events': 'Esdeveniments únics',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Campanya',
'utm-content': 'UTM Contingut',
'utm-medium': 'UTM Mitjà',
'utm-source': 'UTM Font',
'utm-term': 'UTM Terme',
'version': 'Versió'
},
message: {
'bad-request': 'Sol·licitud incorrecta',
'forbidden': 'Prohibit',
'not-found': 'No trobat',
'nothing-selected': 'Res seleccionat.',
'sever-error': 'Error del servidor',
'unauthorized': 'No autoritzat'
}
},
'ga-ES': {
label: {
'account': 'Conta',
'action': 'Acción',
'add-link': 'Engadir ligazón',
'add-pixel': 'Engadir píxel',
'analysis': 'Análise',
'application': 'Aplicación',
'audience': 'Audiencia',
'campaign': 'Campaña',
'channel': 'Canle',
'chart': 'Gráfico',
'cohorts': 'Cohortes',
'criteria': 'Criterios',
'destination-url': 'URL de destino',
'documentation': 'Documentación',
'download': 'Descargar',
'environment': 'Contorno',
'exclude-bounce': 'Excluír rebote',
'growth': 'Crecemento',
'hour': 'Hora',
'invalid-url': 'URL non válida',
'link': 'Ligazón',
'location': 'Localización',
'max': 'Máx',
'min': 'Mín',
'minute': 'Minuto',
'month': 'Mes',
'number-of-records': '{x} {x, plural, one {rexistro} other {rexistros}}',
'ok': 'Aceptar',
'online': 'En liña',
'pixel': 'Píxel',
'preferences': 'Preferencias',
'profiles': 'Perfís',
'save-cohort': 'Gardar cohorte',
'save-segment': 'Gardar segmento',
'screen': 'Pantalla',
'segment': 'Segmento',
'segments': 'Segmentos',
'sms': 'SMS',
'source': 'Orixe',
'start-step': 'Paso inicial',
'support': 'Soporte',
'switch-account': 'Cambiar de conta',
'table': 'Táboa',
'term': 'Termo',
'total': 'Total',
'traffic': 'Tráfico',
'unique-events': 'Eventos únicos',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Campaña',
'utm-content': 'UTM Contido',
'utm-medium': 'UTM Medio',
'utm-source': 'UTM Orixe',
'utm-term': 'UTM Termo',
'version': 'Versión'
},
message: {
'bad-request': 'Solicitude incorrecta',
'forbidden': 'Prohibido',
'not-found': 'Non atopado',
'nothing-selected': 'Nada seleccionado.',
'sever-error': 'Erro do servidor',
'unauthorized': 'Non autorizado'
}
},
'ro-RO': {
label: {
'account': 'Cont',
'action': 'Acțiune',
'add-link': 'Adaugă link',
'add-pixel': 'Adaugă pixel',
'analysis': 'Analiză',
'application': 'Aplicație',
'audience': 'Audiență',
'browser': 'Browser',
'campaign': 'Campanie',
'channel': 'Canal',
'chart': 'Grafic',
'cohorts': 'Cohorte',
'confirm': 'Confirmă',
'criteria': 'Criterii',
'desktop': 'Desktop',
'destination-url': 'URL destinație',
'direct': 'Direct',
'distinct-id': 'ID distinct',
'documentation': 'Documentație',
'download': 'Descarcă',
'email': 'Email',
'environment': 'Mediu',
'exclude-bounce': 'Exclude respingere',
'growth': 'Creștere',
'hour': 'Oră',
'invalid-url': 'URL invalid',
'laptop': 'Laptop',
'link': 'Link',
'location': 'Locație',
'manager': 'Manager',
'max': 'Max',
'min': 'Min',
'minute': 'Minut',
'model': 'Model',
'month': 'Lună',
'ok': 'OK',
'online': 'Online',
'os': 'SO',
'pixel': 'Pixel',
'preferences': 'Preferințe',
'profiles': 'Profiluri',
'referral': 'Referință',
'save-cohort': 'Salvează cohorta',
'save-segment': 'Salvează segmentul',
'screen': 'Ecran',
'segment': 'Segment',
'segments': 'Segmente',
'sms': 'SMS',
'source': 'Sursă',
'support': 'Suport',
'switch-account': 'Schimbă contul',
'table': 'Tabel',
'term': 'Termen',
'total': 'Total',
'traffic': 'Trafic',
'transfer': 'Transferă',
'transfer-website': 'Transferă site-ul',
'unique-events': 'Evenimente unice',
'update': 'Actualizează',
'url': 'URL',
'utm': 'UTM',
'utm-campaign': 'UTM Campanie',
'utm-content': 'UTM Conținut',
'utm-medium': 'UTM Mediu',
'utm-source': 'UTM Sursă',
'utm-term': 'UTM Termen',
'version': 'Versiune',
'website': 'Site web'
},
message: {
'bad-request': 'Cerere incorectă',
'forbidden': 'Interzis',
'not-found': 'Negăsit',
'nothing-selected': 'Nimic selectat.',
'sever-error': 'Eroare de server',
'unauthorized': 'Neautorizat'
}
}
};
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');
}