Enhance message formatting and localization handling in MessagesDialog.vue
- Updated the formatBody method to support JSON formatted translation keys and improve key normalization for i18n. - Ensured that keys are correctly prefixed with the "falukant.notifications." namespace when necessary, enhancing translation accuracy.
This commit is contained in:
@@ -118,24 +118,42 @@ export default {
|
||||
} catch { return dt; }
|
||||
},
|
||||
formatBody(n) {
|
||||
let key = n.tr;
|
||||
let raw = n.tr || '';
|
||||
let key = raw;
|
||||
let params = {};
|
||||
if (typeof key === 'string') {
|
||||
const trimmed = key.trim();
|
||||
|
||||
// 1) JSON-Format unterstützen: {"tr":"production.overproduction","value":21}
|
||||
if (typeof raw === 'string') {
|
||||
const trimmed = raw.trim();
|
||||
if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
|
||||
try {
|
||||
const parsed = JSON.parse(trimmed);
|
||||
if (parsed && parsed.tr) {
|
||||
raw = parsed.tr;
|
||||
key = parsed.tr;
|
||||
params = { ...parsed };
|
||||
delete params.tr;
|
||||
}
|
||||
} catch (e) {
|
||||
// Fallback: ignore parse error and use raw key
|
||||
// bei Parse-Fehler einfach weiter unten mit dem Rohwert arbeiten
|
||||
}
|
||||
}
|
||||
}
|
||||
return this.$t('falukant.notifications.' + key, params);
|
||||
|
||||
// 2) Schlüssel normalisieren:
|
||||
// - wenn bereits ein voller i18n-Key wie "falukant.notifications.production.overproduction",
|
||||
// dann direkt verwenden
|
||||
// - sonst in den Namespace "falukant.notifications." hängen
|
||||
if (typeof key === 'string') {
|
||||
const trimmedKey = key.trim();
|
||||
if (trimmedKey.startsWith('falukant.')) {
|
||||
key = trimmedKey;
|
||||
} else {
|
||||
key = 'falukant.notifications.' + trimmedKey;
|
||||
}
|
||||
}
|
||||
|
||||
return this.$t(key, params);
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -168,3 +186,4 @@ export default {
|
||||
.pagination button { padding: .25em .6em; }
|
||||
.pagination input[type="number"] { width: 4em; text-align: right; }
|
||||
</style>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user