SPDX-License-Identifier: AGPL-3.0-or-later
- Admin settings UI text uses Nextcloud L10N (
IL10N->t(...)/t(app, key)). - The
+ Newentry label (New pad) is localized. - The template tiles are not: the picker labels a tile with its file name, and a template is a file. The same applies to every template, including the ones richdocuments ships. What a tile asks can be translated — the external tile's template field carries a translated label.
- Currently maintained locales:
de,es,fr,it. Additional locales are expected to come in via translatewiki once the project is onboarded. deanditare reviewed end-to-end by native speakers.esandfrare first-pass translations and are expected to receive native-speaker polish.
Per locale we ship two files in l10n/:
l10n/<locale>.json— read by PHP viaIL10N.l10n/<locale>.js— read by the JS frontend viaOC.L10N.register.
The two formats are generated from the same source-of-truth dict and must
stay in sync. The legacy *.php catalogs are not used by modern Nextcloud
(see the developer manual: "you then just need the .json
and .js files for a working localized app") and are intentionally not
shipped.
de_DE is not maintained as a separate file — Nextcloud's locale fallback
maps de_DE users to de.json automatically. The DE catalog uses Du
throughout.
- All maintained locales (
de,es,fr,it) must hold the same set of keys. Both the.jsonand.jscatalog per locale must agree on keys and values; never edit one without the other. - New user-visible strings must be wrapped in
t(...)/$l10n->t(...)calls so they can be picked up by translation tooling. - For ongoing translation work, the long-term plan is to onboard the project to translatewiki.net (same platform Etherpad upstream uses). Until then, the maintainer keeps the three locales in sync by hand.