These rules apply to the whole repository. Component notes live next to the code (<component>/AGENTS.md).
- Every commit is authored and committed by the user:
FacuM <facumo.fm@gmail.com>(set--authorandGIT_COMMITTER_NAME/GIT_COMMITTER_EMAILif the local config differs). - Never add
Co-Authored-Bytrailers or any AI/tool attribution to commit messages or PR descriptions.
- Commit messages, PR titles and descriptions, branch names, code identifiers, code comments, test names, log messages and machine-readable output (JSON diagnostics, protocol strings, event log insert strings such as paths and reason codes) are in English, whatever language the prompt uses.
- Documentation (
README.md,docs/,AGENTS.mdfiles, guides, checklists) is written in one language: English. Do not add translated copies of documents or prose in another language. - User-facing text is written in English first and fully localized into English, Spanish, French,
Portuguese, Italian and German. A string is not done until every locale has it. Keep one register per
language across every component: Spanish with Rioplatense voseo ("Elegí"), Brazilian Portuguese, French
with "vous", German and Italian with the informal imperative.
- This covers the CLI (
--help, user-facing errors, printed summaries), the tray app, the main window, Explorer integration, the installer (EXE and MSI) and the service's user-visible messages, including the message text of its Event Log entries (l10n/svc, one text per language under every sublanguage LANGID; 03 §10.3). Logs, JSON and Event Log insert strings stay in English. - Use placeholders and plural-aware messages instead of string concatenation.
- The resource format and loading mechanism for Win32 (XP-compatible) are defined in
docs/design/03-apps-platform.md§9 "Localization" (§9.1 "Decision: our own message catalog compiled into each binary"): PO sources compiled into generated tables, with thesdl10ncompleteness check. Plural messages use the full CLDR plural categories (zero/one/two/few/many/other) for every locale.
- This covers the CLI (
- Adding a language means adding it to every component, the installer and the language list above.