feat(crm): i18n EN + DE for CRM, machine fr/nl/pt/ru fallbacks

~940 new keys per primary locale covering every CRM surface:
quote / invoice / contract editor + list + detail + public response
pages, calendar, hours, tax report, deals lineage, reminder emails,
feature toggles, settings tabs, error toasts.

en.json + de.json are hand-translated by the maintainer and are
authoritative. fr / nl / pt / ru received the same key set but
machine-derived strings — flagged for native review in the PR
description per project policy (see memory feedback_translation_flagging).

3-way merge note: 1 conflict (fr.json) hand-resolved to keep
upstream's improved phrasing for previewLayout / livePreview /
heroPlaceholderText alongside feat/crm's pdfTypography keys.
This commit is contained in:
Luca
2026-05-26 18:19:55 +02:00
parent a7e16e7bf6
commit 409d414035
6 changed files with 2041 additions and 46 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+52 -1
View File
@@ -1361,6 +1361,12 @@
"saveTheme": "Enregistrer le thème", "saveTheme": "Enregistrer le thème",
"previewLayout": "Aperçu de la disposition", "previewLayout": "Aperçu de la disposition",
"livePreview": "Aperçu en direct", "livePreview": "Aperçu en direct",
"pdfTypography": "Typographie PDF",
"pdfTypographyHelp": "Utilisée pour les en-têtes de factures et de devis. Choisissez l'une des polices fournies ou laissez la valeur par défaut pour utiliser Helvetica.",
"pdfFontFamily": "Police du corps",
"pdfFontFamilyDefault": "Utiliser Helvetica (par défaut)",
"pdfFontFamilyMissing": "manquante",
"pdfFontSavedToast": "Police PDF enregistrée.",
"heroPlaceholderText": "La photo d'en-tête de votre événement apparaîtra ici", "heroPlaceholderText": "La photo d'en-tête de votre événement apparaîtra ici",
"whiteLabel": "Marque blanche", "whiteLabel": "Marque blanche",
"hidePoweredBy": "Masquer la mention \"Propulsé par PicPeak\"", "hidePoweredBy": "Masquer la mention \"Propulsé par PicPeak\"",
@@ -1375,6 +1381,11 @@
"logoMaxHeight": "Hauteur maximale (pixels)", "logoMaxHeight": "Hauteur maximale (pixels)",
"logoMaxHeightHelp": "Définissez une hauteur maximale personnalisée pour le logo (20-200 pixels)", "logoMaxHeightHelp": "Définissez une hauteur maximale personnalisée pour le logo (20-200 pixels)",
"logoPosition": "Position du logo dans l'en-tête", "logoPosition": "Position du logo dans l'en-tête",
"positionLeft": "Gauche",
"positionCenter": "Centre",
"positionRight": "Droite",
"positionSidepanel": "Barre latérale",
"positionSidepanelHelp": "Le logo apparaît dans la barre latérale admin au lieu de l'en-tête. Lorsque la barre latérale est repliée, la favicon est affichée.",
"logoDisplayMode": "Mode d'affichage", "logoDisplayMode": "Mode d'affichage",
"logoOnly": "Logo uniquement", "logoOnly": "Logo uniquement",
"textOnly": "Nom de l'entreprise uniquement", "textOnly": "Nom de l'entreprise uniquement",
@@ -3005,7 +3016,47 @@
"body": "Activez Comptes (ou une autre sous-fonctionnalité Clients) dans Paramètres → Fonctionnalités pour commencer." "body": "Activez Comptes (ou une autre sous-fonctionnalité Clients) dans Paramètres → Fonctionnalités pour commencer."
}, },
"subnav": { "subnav": {
"accounts": "Comptes" "accounts": "Comptes",
"quotes": "Devis",
"bills": "Factures",
"taxReport": "Fiscalité",
"development": "Développement"
}
},
"taxReport": {
"title": "Rapport fiscal",
"intro": "Liste des revenus sur une période donnée avec ventilation net + TVA groupée par taux de TVA. Les factures annulées restent visibles pour la continuité de la piste d'audit, mais sont exclues des totaux.",
"filters": {
"period": "Période",
"thisYear": "Cette année",
"lastYear": "Année dernière",
"thisQuarter": "Ce trimestre",
"lastQuarter": "Trimestre dernier",
"custom": "Plage personnalisée",
"from": "Du",
"to": "Au",
"currency": "Devise"
},
"exportPdf": "Exporter en PDF",
"exportCsv": "Exporter en CSV",
"exportFailed": "Échec de l'export. Veuillez réessayer.",
"errorTitle": "Impossible de charger le rapport fiscal",
"empty": "Aucune facture sur cette période.",
"statusCancelled": "Annulée",
"totalsByVatRate": "Totaux par taux de TVA",
"grandTotalNet": "Total net",
"grandTotalVat": "Total TVA",
"grandTotalGross": "Total brut",
"cancelledFootnote": "{{count}} facture(s) annulée(s) — montants exclus des totaux (affichés pour la continuité de la piste d'audit).",
"col": {
"date": "Date",
"invoice": "Facture",
"customer": "Client",
"event": "Événement",
"vatRate": "TVA %",
"net": "Net",
"vat": "TVA",
"total": "Brut"
} }
} }
} }
+52 -1
View File
@@ -1350,6 +1350,12 @@
"saveTheme": "Thema opslaan", "saveTheme": "Thema opslaan",
"previewLayout": "Lay-outvoorbeeld", "previewLayout": "Lay-outvoorbeeld",
"livePreview": "Live voorbeeld", "livePreview": "Live voorbeeld",
"pdfTypography": "PDF-typografie",
"pdfTypographyHelp": "Wordt gebruikt voor briefhoofden van facturen en offertes. Kies een van de meegeleverde lettertypen, of laat de standaardinstelling staan om Helvetica te gebruiken.",
"pdfFontFamily": "Bodylettertype",
"pdfFontFamilyDefault": "Helvetica gebruiken (standaard)",
"pdfFontFamilyMissing": "ontbreekt",
"pdfFontSavedToast": "PDF-lettertype opgeslagen.",
"heroPlaceholderText": "De hero-foto van uw evenement verschijnt hier", "heroPlaceholderText": "De hero-foto van uw evenement verschijnt hier",
"whiteLabel": "White Label", "whiteLabel": "White Label",
"hidePoweredBy": "\"Powered by PicPeak\"-vermelding verbergen", "hidePoweredBy": "\"Powered by PicPeak\"-vermelding verbergen",
@@ -1364,6 +1370,11 @@
"logoMaxHeight": "Maximale hoogte (pixels)", "logoMaxHeight": "Maximale hoogte (pixels)",
"logoMaxHeightHelp": "Stel een aangepaste maximale hoogte in voor het logo (20-200 pixels)", "logoMaxHeightHelp": "Stel een aangepaste maximale hoogte in voor het logo (20-200 pixels)",
"logoPosition": "Logopositie in header", "logoPosition": "Logopositie in header",
"positionLeft": "Links",
"positionCenter": "Midden",
"positionRight": "Rechts",
"positionSidepanel": "Zijbalk",
"positionSidepanelHelp": "Het logo verschijnt in de admin-zijbalk in plaats van in de header. Wanneer de zijbalk is ingeklapt, wordt het favicon getoond.",
"logoDisplayMode": "Weergavemodus", "logoDisplayMode": "Weergavemodus",
"logoOnly": "Alleen logo", "logoOnly": "Alleen logo",
"textOnly": "Alleen bedrijfsnaam", "textOnly": "Alleen bedrijfsnaam",
@@ -2994,7 +3005,47 @@
"body": "Schakel Accounts (of een andere Klanten-subfunctie) in onder Instellingen → Functies om te beginnen." "body": "Schakel Accounts (of een andere Klanten-subfunctie) in onder Instellingen → Functies om te beginnen."
}, },
"subnav": { "subnav": {
"accounts": "Accounts" "accounts": "Accounts",
"quotes": "Offertes",
"bills": "Facturen",
"taxReport": "Belasting",
"development": "Ontwikkeling"
}
},
"taxReport": {
"title": "Belastingrapport",
"intro": "Periodegebonden omzetlijst met netto + btw-uitsplitsing gegroepeerd per btw-tarief. Geannuleerde facturen blijven zichtbaar voor de continuïteit van het audit-spoor, maar zijn uitgesloten van de totalen.",
"filters": {
"period": "Periode",
"thisYear": "Dit jaar",
"lastYear": "Vorig jaar",
"thisQuarter": "Dit kwartaal",
"lastQuarter": "Vorig kwartaal",
"custom": "Aangepast bereik",
"from": "Van",
"to": "Tot",
"currency": "Valuta"
},
"exportPdf": "PDF exporteren",
"exportCsv": "CSV exporteren",
"exportFailed": "Export mislukt. Probeer het opnieuw.",
"errorTitle": "Belastingrapport kon niet worden geladen",
"empty": "Geen facturen in deze periode.",
"statusCancelled": "Geannuleerd",
"totalsByVatRate": "Totalen per btw-tarief",
"grandTotalNet": "Totaal netto",
"grandTotalVat": "Totaal btw",
"grandTotalGross": "Totaal bruto",
"cancelledFootnote": "{{count}} geannuleerde factu(u)r(en) — bedragen uitgesloten van totalen (getoond voor continuïteit van het audit-spoor).",
"col": {
"date": "Datum",
"invoice": "Factuur",
"customer": "Klant",
"event": "Evenement",
"vatRate": "Btw %",
"net": "Netto",
"vat": "Btw",
"total": "Bruto"
} }
} }
} }
+52 -1
View File
@@ -1367,6 +1367,12 @@
"saveTheme": "Salvar Tema", "saveTheme": "Salvar Tema",
"previewLayout": "Visualizar Layout", "previewLayout": "Visualizar Layout",
"livePreview": "Prévia ao Vivo", "livePreview": "Prévia ao Vivo",
"pdfTypography": "Tipografia do PDF",
"pdfTypographyHelp": "Usada nos cabeçalhos de faturas e orçamentos. Escolha uma das fontes incluídas ou mantenha o padrão para usar Helvetica.",
"pdfFontFamily": "Fonte do corpo",
"pdfFontFamilyDefault": "Usar Helvetica (padrão)",
"pdfFontFamilyMissing": "ausente",
"pdfFontSavedToast": "Fonte do PDF salva.",
"heroPlaceholderText": "A foto de destaque do seu evento aparecerá aqui", "heroPlaceholderText": "A foto de destaque do seu evento aparecerá aqui",
"whiteLabel": "White Label", "whiteLabel": "White Label",
"hidePoweredBy": "Ocultar selo \"Powered by PicPeak\"", "hidePoweredBy": "Ocultar selo \"Powered by PicPeak\"",
@@ -1381,6 +1387,11 @@
"logoMaxHeight": "Altura Máxima (pixels)", "logoMaxHeight": "Altura Máxima (pixels)",
"logoMaxHeightHelp": "Define uma altura máxima para a logo (20-200 px)", "logoMaxHeightHelp": "Define uma altura máxima para a logo (20-200 px)",
"logoPosition": "Posição da Logo no Cabeçalho", "logoPosition": "Posição da Logo no Cabeçalho",
"positionLeft": "Esquerda",
"positionCenter": "Centro",
"positionRight": "Direita",
"positionSidepanel": "Barra lateral",
"positionSidepanelHelp": "A logo aparece na barra lateral do admin em vez do cabeçalho. Quando a barra lateral está recolhida, o favicon é exibido.",
"logoDisplayMode": "Modo de Exibição", "logoDisplayMode": "Modo de Exibição",
"logoOnly": "Apenas Logo", "logoOnly": "Apenas Logo",
"textOnly": "Apenas Nome da Empresa", "textOnly": "Apenas Nome da Empresa",
@@ -3027,7 +3038,47 @@
"body": "Ative Contas (ou outra sub-funcionalidade de Clientes) em Configurações → Recursos para começar." "body": "Ative Contas (ou outra sub-funcionalidade de Clientes) em Configurações → Recursos para começar."
}, },
"subnav": { "subnav": {
"accounts": "Contas" "accounts": "Contas",
"quotes": "Orçamentos",
"bills": "Faturas",
"taxReport": "Fiscal",
"development": "Desenvolvimento"
}
},
"taxReport": {
"title": "Relatório fiscal",
"intro": "Lista de receita por período com discriminação líquido + IVA agrupada por taxa de IVA. Faturas canceladas permanecem visíveis para continuidade do rastro de auditoria, mas são excluídas dos totais.",
"filters": {
"period": "Período",
"thisYear": "Este ano",
"lastYear": "Ano passado",
"thisQuarter": "Este trimestre",
"lastQuarter": "Trimestre passado",
"custom": "Intervalo personalizado",
"from": "De",
"to": "Até",
"currency": "Moeda"
},
"exportPdf": "Exportar PDF",
"exportCsv": "Exportar CSV",
"exportFailed": "Falha na exportação. Por favor, tente novamente.",
"errorTitle": "Não foi possível carregar o relatório fiscal",
"empty": "Sem faturas neste período.",
"statusCancelled": "Cancelada",
"totalsByVatRate": "Totais por taxa de IVA",
"grandTotalNet": "Total líquido",
"grandTotalVat": "Total IVA",
"grandTotalGross": "Total bruto",
"cancelledFootnote": "{{count}} fatura(s) cancelada(s) — valores excluídos dos totais (apresentados para continuidade do rastro de auditoria).",
"col": {
"date": "Data",
"invoice": "Fatura",
"customer": "Cliente",
"event": "Evento",
"vatRate": "IVA %",
"net": "Líquido",
"vat": "IVA",
"total": "Bruto"
} }
} }
} }
+52 -1
View File
@@ -1384,6 +1384,12 @@
"saveTheme": "Сохранить тему", "saveTheme": "Сохранить тему",
"previewLayout": "Предпросмотр макета", "previewLayout": "Предпросмотр макета",
"livePreview": "Живой предпросмотр", "livePreview": "Живой предпросмотр",
"pdfTypography": "Шрифт PDF",
"pdfTypographyHelp": "Используется для бланков счетов и предложений. Выберите один из встроенных шрифтов или оставьте значение по умолчанию, чтобы использовать Helvetica.",
"pdfFontFamily": "Шрифт текста",
"pdfFontFamilyDefault": "Использовать Helvetica (по умолчанию)",
"pdfFontFamilyMissing": "отсутствует",
"pdfFontSavedToast": "Шрифт PDF сохранён.",
"heroPlaceholderText": "Здесь появится главное фото вашего события", "heroPlaceholderText": "Здесь появится главное фото вашего события",
"whiteLabel": "Собственный брендинг", "whiteLabel": "Собственный брендинг",
"hidePoweredBy": "Скрыть «Powered by PicPeak»", "hidePoweredBy": "Скрыть «Powered by PicPeak»",
@@ -1398,6 +1404,11 @@
"logoMaxHeight": "Максимальная высота (пикселей)", "logoMaxHeight": "Максимальная высота (пикселей)",
"logoMaxHeightHelp": "Задайте пользовательскую максимальную высоту логотипа (20–200 пикселей)", "logoMaxHeightHelp": "Задайте пользовательскую максимальную высоту логотипа (20–200 пикселей)",
"logoPosition": "Положение логотипа в заголовке", "logoPosition": "Положение логотипа в заголовке",
"positionLeft": "Слева",
"positionCenter": "По центру",
"positionRight": "Справа",
"positionSidepanel": "Боковая панель",
"positionSidepanelHelp": "Логотип отображается в боковой панели администратора вместо заголовка. Когда боковая панель свернута, отображается фавикон.",
"logoDisplayMode": "Режим отображения", "logoDisplayMode": "Режим отображения",
"logoOnly": "Только логотип", "logoOnly": "Только логотип",
"textOnly": "Только название компании", "textOnly": "Только название компании",
@@ -3060,7 +3071,47 @@
"body": "Включите «Учётные записи» (или другую подфункцию «Клиенты») в Настройки → Функции, чтобы начать." "body": "Включите «Учётные записи» (или другую подфункцию «Клиенты») в Настройки → Функции, чтобы начать."
}, },
"subnav": { "subnav": {
"accounts": "Учётные записи" "accounts": "Учётные записи",
"quotes": "Предложения",
"bills": "Счета",
"taxReport": "Налоги",
"development": "Разработка"
}
},
"taxReport": {
"title": "Налоговый отчёт",
"intro": "Список выручки за выбранный период с разбивкой нетто и НДС по ставкам. Аннулированные счета остаются видимыми для непрерывности аудиторской цепочки, но исключаются из итогов.",
"filters": {
"period": "Период",
"thisYear": "Этот год",
"lastYear": "Прошлый год",
"thisQuarter": "Этот квартал",
"lastQuarter": "Прошлый квартал",
"custom": "Произвольный диапазон",
"from": "С",
"to": "По",
"currency": "Валюта"
},
"exportPdf": "Экспорт в PDF",
"exportCsv": "Экспорт в CSV",
"exportFailed": "Экспорт не выполнен. Пожалуйста, попробуйте ещё раз.",
"errorTitle": "Не удалось загрузить налоговый отчёт",
"empty": "Нет счетов за этот период.",
"statusCancelled": "Аннулирован",
"totalsByVatRate": "Итоги по ставкам НДС",
"grandTotalNet": "Итого нетто",
"grandTotalVat": "Итого НДС",
"grandTotalGross": "Итого брутто",
"cancelledFootnote": "{{count}} аннулированных счёт(а/ов) — суммы исключены из итогов (показаны для непрерывности аудиторской цепочки).",
"col": {
"date": "Дата",
"invoice": "Счёт",
"customer": "Клиент",
"event": "Событие",
"vatRate": "НДС %",
"net": "Нетто",
"vat": "НДС",
"total": "Брутто"
} }
} }
} }