Translation resources live in packages/shared/i18n/<lang>/<ns>.json (common, errors) and ship with de and en. The web app initializes react-i18next with bundled resources (?lng= wins, then the browser language); all shell components use useTranslation and the temporary t() stub is gone. The api localizes its uniform error bodies via a minimal i18next instance negotiated from Accept-Language. `pnpm i18n:check` fails CI when any key is missing in any language, backed by tested helpers in @dorfteich/shared. Closes #5 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
28 lines
681 B
JSON
28 lines
681 B
JSON
{
|
|
"layout": {
|
|
"sidebar": {
|
|
"expand": "Show sidebar",
|
|
"collapse": "Hide sidebar",
|
|
"label": "Pages",
|
|
"placeholder": "Your ponds and pages will appear here."
|
|
},
|
|
"user": {
|
|
"anonymous": "Not signed in"
|
|
}
|
|
},
|
|
"home": {
|
|
"title": "Welcome to Dorfteich",
|
|
"intro": "Dorfteich is an open-source wiki with real-time collaboration. This instance is being set up.",
|
|
"api": {
|
|
"checking": "Checking API …",
|
|
"ok": "API reachable",
|
|
"error": "API not reachable"
|
|
}
|
|
},
|
|
"notFound": {
|
|
"title": "Page not found",
|
|
"body": "The address you opened does not exist.",
|
|
"home": "Back to the start page"
|
|
}
|
|
}
|