Set up i18next with German translations
Initialise i18next and react-i18next, add the German translation file (locales/de/translation.json), and import the i18n config in main.jsx so it is available before the app renders. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import i18n from 'i18next'
|
||||
import { initReactI18next } from 'react-i18next'
|
||||
import de from './locales/de/translation.json'
|
||||
|
||||
i18n.use(initReactI18next).init({
|
||||
resources: {
|
||||
de: { translation: de },
|
||||
},
|
||||
lng: 'de',
|
||||
fallbackLng: 'de',
|
||||
interpolation: {
|
||||
escapeValue: false, // React already escapes values
|
||||
},
|
||||
})
|
||||
|
||||
export default i18n
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"app": {
|
||||
"title": "Realtime Chat",
|
||||
"headline": "Dein Raum, deine Unterhaltung"
|
||||
},
|
||||
"status": {
|
||||
"idle": "Offline",
|
||||
"connecting": "Verbindung wird aufgebaut…",
|
||||
"connected": "Verbunden",
|
||||
"reconnecting": "Verbindung wird wiederhergestellt…",
|
||||
"error": "Verbindung unterbrochen"
|
||||
},
|
||||
"hint": {
|
||||
"noSession": "Verbinde dich mit einem Chatraum, um loszulegen.",
|
||||
"connecting": "Verbindung wird aufgebaut…",
|
||||
"reconnecting": "Wir versuchen, dich wieder zu verbinden.",
|
||||
"error": "Verbindung unterbrochen. Bitte versuche es erneut.",
|
||||
"joined": "Im Raum \"{{room}}\" angemeldet als {{username}}."
|
||||
},
|
||||
"form": {
|
||||
"username": "Benutzername",
|
||||
"usernamePlaceholder": "z.B. PixelPanda",
|
||||
"room": "Chatraum",
|
||||
"roomPlaceholder": "z.B. general",
|
||||
"connect": "Verbinden",
|
||||
"update": "Aktualisieren",
|
||||
"leave": "Verlassen"
|
||||
},
|
||||
"chat": {
|
||||
"title": "Nachrichten",
|
||||
"liveFeed": "Live-Feed für #{{room}}",
|
||||
"messageCount": "{{count}} Beiträge",
|
||||
"empty": "Noch keine Nachrichten. Sag als Erste*r hallo!",
|
||||
"placeholder": "Schreib eine Nachricht…",
|
||||
"placeholderDisabled": "Verbinde dich, um zu schreiben",
|
||||
"send": "Senden"
|
||||
},
|
||||
"participants": {
|
||||
"title": "Aktive Teilnehmer",
|
||||
"empty": "Niemand ist aktiv",
|
||||
"online": "online",
|
||||
"lastActive": "zuletzt aktiv {{time}}"
|
||||
},
|
||||
"error": {
|
||||
"form": {
|
||||
"usernameRequired": "Benutzername ist erforderlich.",
|
||||
"roomRequired": "Chatraum ist erforderlich.",
|
||||
"usernameAndRoomRequired": "Bitte gib einen Benutzernamen und einen Raum an.",
|
||||
"userIdRequired": "userId ist erforderlich.",
|
||||
"messageTextRequired": "Nachrichtentext ist erforderlich."
|
||||
},
|
||||
"connection": {
|
||||
"failed": "Verbindung fehlgeschlagen.",
|
||||
"noActiveConnection": "Keine aktive Verbindung. Bitte verbinde dich erneut.",
|
||||
"interrupted": "Verbindung unterbrochen. Bitte versuche es erneut.",
|
||||
"sendFailed": "Nachricht konnte nicht gesendet werden."
|
||||
},
|
||||
"api": {
|
||||
"joinFailed": "Beitritt fehlgeschlagen. Bitte erneut versuchen.",
|
||||
"noUserReturned": "Backend hat keinen Benutzer für die Beitrittsanfrage zurückgegeben.",
|
||||
"snapshotFailed": "Konnte Raumübersicht nicht laden.",
|
||||
"leaveFailed": "Fehler beim Verlassen des Raums."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import './i18n'
|
||||
import './index.css'
|
||||
import App from './App.jsx'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user