Update German localization for member transfer template placeholder and enhance MemberTransferSettingsView to improve error handling for translation availability

This commit is contained in:
Torsten Schulz (local)
2025-11-21 11:47:02 +01:00
parent 167e3ba3ec
commit fe160420c1
2 changed files with 29 additions and 7 deletions

View File

@@ -882,7 +882,7 @@
"bulkMode": "Bulk-Import-Modus (alle Mitglieder auf einmal übertragen)",
"bulkModeHint": "Wenn aktiviert, werden alle Mitglieder in einem Request als Array übertragen.",
"importTemplate": "Template aus vollständigem Beispiel importieren",
"importTemplatePlaceholder": "Fügen Sie hier ein vollständiges Beispiel-Template ein, z.B.:\n{\n \"membersArray\": [\n {\n \"vorname\": \"Max\",\n \"nachname\": \"Mustermann\",\n \"email\": \"max@example.com\"\n }\n ]\n}",
"importTemplatePlaceholder": "Fügen Sie hier ein vollständiges Beispiel-Template ein, z.B.:\n{\n \"members\": [\n {\n \"firstName\": \"Max\",\n \"lastName\": \"Mustermann\",\n \"email\": \"max@example.com\"\n }\n ]\n}",
"analyzeAndImport": "Template analysieren und importieren",
"importTemplateHint": "Fügen Sie ein vollständiges Beispiel-Template (mit Beispiel-Mitgliedern) ein. Das System erkennt automatisch das Mitglied-Template und das Bulk-Wrapper-Template.",
"bulkWrapperTemplate": "Bulk-Wrapper-Template (optional)",

View File

@@ -366,18 +366,40 @@ address={{address}}`;
},
bulkWrapperDescriptionText() {
// Ersetze {0} durch {{members}} im übersetzten Text
return this.$t('memberTransfer.bulkWrapperDescription').replace('{0}', '{{members}}');
// Hole den Text aus der Übersetzung und ersetze den Platzhalter
// Verwende try-catch, falls $t noch nicht verfügbar ist
try {
const text = this.$t('memberTransfer.bulkWrapperDescription');
// Ersetze {0} durch {{members}}, aber escapen wir die geschweiften Klammern
return text.replace('{0}', '{{members}}');
} catch (e) {
// Fallback, falls $t nicht verfügbar ist
return 'Optional können Sie die äußere Struktur definieren, in die die Mitglieder-Array eingefügt wird. Verwenden Sie {{members}} als Platzhalter für das Array der Mitglieder.';
}
},
templateDescriptionText() {
// Ersetze {0} durch {{firstName}} im übersetzten Text
return this.$t('memberTransfer.templateDescription').replace('{0}', '{{firstName}}');
// Hole den Text aus der Übersetzung und ersetze den Platzhalter
// Verwende try-catch, falls $t noch nicht verfügbar ist
try {
const text = this.$t('memberTransfer.templateDescription');
// Ersetze {0} durch {{firstName}}, aber escapen wir die geschweiften Klammern
return text.replace('{0}', '{{firstName}}');
} catch (e) {
// Fallback, falls $t nicht verfügbar ist
return 'Das Template definiert das Format, in dem die Mitgliederdaten an das externe System übertragen werden. Verwenden Sie Platzhalter wie {{firstName}}, um die Daten automatisch zu ersetzen.';
}
},
importTemplatePlaceholderText() {
// Verwende den Placeholder-Text direkt, um Probleme mit vue-i18n Platzhaltern zu vermeiden
return `Fügen Sie hier ein vollständiges Beispiel-Template ein, z.B.:\n{\n "members": [\n {\n "firstName": "Max",\n "lastName": "Mustermann",\n "email": "max@example.com"\n }\n ]\n}`;
// Hole den Text aus der Übersetzung
// Verwende try-catch, falls $t noch nicht verfügbar ist
try {
return this.$t('memberTransfer.importTemplatePlaceholder');
} catch (e) {
// Fallback, falls $t nicht verfügbar ist
return `Fügen Sie hier ein vollständiges Beispiel-Template ein, z.B.:\n{\n "members": [\n {\n "firstName": "Max",\n "lastName": "Mustermann",\n "email": "max@example.com"\n }\n ]\n}`;
}
},
templatePlaceholder() {