Files
orion/app/modules/tenancy/locales/de.json
Samir Boulahtit dad02695f6 fix(i18n): add missing menu translations and fix admin language resolution
Two issues caused the admin sidebar to show a mix of French and English:

1. Only 3 of 14 modules had "menu" translations in their locale files.
   When a key was missing, _translate_label() fell back to English Title
   Case from the key name — mixing with French from modules that had
   translations. Added menu sections to all 4 languages (en, fr, de, lb)
   across 13 modules.

2. The language middleware hardcoded admin to "en" ignoring user preference,
   while the menu API fell back to DEFAULT_LANGUAGE ("fr") when
   preferred_language was NULL. Fixed middleware to respect user's
   preferred_language and menu API to use middleware-resolved language
   as fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 23:37:13 +01:00

117 lines
5.9 KiB
JSON

{
"menu": {
"user_management": "Benutzerverwaltung",
"merchant_users": "Händler-Benutzer",
"platform_admin": "Plattform-Administration",
"content_management": "Inhaltsverwaltung",
"account_settings": "Kontoeinstellungen",
"admin_users": "Admin-Benutzer",
"merchants": "Händler",
"stores": "Shops",
"platforms": "Plattformen",
"team": "Team"
},
"team": {
"title": "Team",
"members": "Mitglieder",
"add_member": "Mitglied hinzufügen",
"invite_member": "Mitglied einladen",
"remove_member": "Mitglied entfernen",
"role": "Rolle",
"owner": "Inhaber",
"manager": "Manager",
"editor": "Bearbeiter",
"viewer": "Betrachter",
"permissions": "Berechtigungen",
"pending_invitations": "Ausstehende Einladungen",
"invitation_sent": "Einladung gesendet",
"invitation_accepted": "Einladung angenommen"
},
"messages": {
"business_info_saved": "Business info saved",
"marketplace_settings_saved": "Marketplace settings saved",
"please_enter_a_url_first": "Please enter a URL first",
"could_not_validate_url_it_may_still_work": "Could not validate URL - it may still work",
"localization_settings_saved": "Localization settings saved",
"failed_to_load_email_settings": "Failed to load email settings",
"from_email_and_from_name_are_required": "From Email and From Name are required",
"email_settings_saved": "Email settings saved",
"please_enter_a_test_email_address": "Please enter a test email address",
"please_save_your_email_settings_first": "Please save your email settings first",
"test_email_sent_check_your_inbox": "Test email sent! Check your inbox.",
"please_fix_the_errors_before_saving": "Please fix the errors before saving",
"profile_updated_successfully": "Profile updated successfully",
"email_is_required": "Email is required",
"invitation_sent_successfully": "Invitation sent successfully",
"team_member_updated": "Team member updated",
"team_member_removed": "Team member removed",
"invalid_merchant_url": "Invalid merchant URL",
"failed_to_load_merchant_details": "Failed to load merchant details",
"merchant_deleted_successfully": "Merchant deleted successfully",
"merchant_details_refreshed": "Merchant details refreshed",
"invalid_admin_user_url": "Invalid admin user URL",
"failed_to_load_admin_user_details": "Failed to load admin user details",
"you_cannot_deactivate_your_own_account": "You cannot deactivate your own account",
"you_cannot_delete_your_own_account": "You cannot delete your own account",
"admin_user_deleted_successfully": "Admin user deleted successfully",
"admin_user_details_refreshed": "Admin user details refreshed",
"failed_to_initialize_page": "Failed to initialize page",
"failed_to_load_merchant": "Failed to load merchant",
"merchant_updated_successfully": "Merchant updated successfully",
"ownership_transferred_successfully": "Ownership transferred successfully",
"theme_saved_successfully": "Theme saved successfully",
"failed_to_apply_preset": "Failed to apply preset",
"theme_reset_to_default": "Theme reset to default",
"failed_to_reset_theme": "Failed to reset theme",
"failed_to_load_stores": "Failed to load stores",
"store_deleted_successfully": "Store deleted successfully",
"stores_list_refreshed": "Stores list refreshed",
"invalid_user_url": "Invalid user URL",
"failed_to_load_user_details": "Failed to load user details",
"user_deleted_successfully": "User deleted successfully",
"user_details_refreshed": "User details refreshed",
"invalid_store_url": "Invalid store URL",
"failed_to_load_store_details": "Failed to load store details",
"no_store_loaded": "No store loaded",
"subscription_created_successfully": "Subscription created successfully",
"store_details_refreshed": "Store details refreshed",
"failed_to_load_users": "Failed to load users",
"failed_to_delete_user": "Failed to delete user",
"failed_to_load_admin_users": "Failed to load admin users",
"failed_to_load_admin_user": "Failed to load admin user",
"you_cannot_demote_yourself_from_super_ad": "You cannot demote yourself from super admin",
"platform_assigned_successfully": "Platform assigned successfully",
"platform_admin_must_be_assigned_to_at_le": "Platform admin must be assigned to at least one platform",
"platform_removed_successfully": "Platform removed successfully",
"please_fix_the_errors_before_submitting": "Please fix the errors before submitting",
"failed_to_load_store": "Failed to load store",
"store_updated_successfully": "Store updated successfully",
"all_contact_fields_reset_to_merchant_defa": "All contact fields reset to merchant defaults",
"failed_to_load_user": "Failed to load user",
"user_updated_successfully": "User updated successfully"
},
"features": {
"team_members": {
"name": "Teammitglieder",
"description": "Maximale Anzahl an Teammitgliedern",
"unit": "Mitglieder"
},
"single_user": {
"name": "Einzelbenutzer",
"description": "Einzelbenutzerzugang"
},
"team_basic": {
"name": "Basis-Team",
"description": "Grundlegende Team-Zusammenarbeit"
},
"team_roles": {
"name": "Team-Rollen",
"description": "Rollenbasierte Zugriffskontrolle für Teammitglieder"
},
"audit_log": {
"name": "Audit-Protokoll",
"description": "Alle Benutzeraktionen und Änderungen nachverfolgen"
}
}
}