docs: reflect the config, branding, i18n and plugin-API changes

- config.md: add server.guestIdent, report.service, defaults.lang; correct the
  turnstile.enabled / features.* descriptions; add a Languages section; complete example.
- branding.md: branding.name/icon now drive the favicon, notifications, PWA and push;
  fix the feature-flag notes; add a Languages note.
- plugins.md: document orbit.config() and orbit.i18n (language/t/pick) + a Localization
  section; note they arrived in apiVersion 4.
- overview.md: add the 10-language support bullet.
This commit is contained in:
Jean Chevronnet 2026-07-04 01:05:11 +00:00
parent d4d93bfd39
commit 6dfb7631b2
No known key found for this signature in database
4 changed files with 68 additions and 15 deletions

View file

@ -18,30 +18,47 @@ Merge rules: objects merge key-by-key; **arrays and scalars replace** wholesale.
| Key | Type | What it does |
|-----|------|--------------|
| `server.url` | string | WebSocket URL of the IRCv3 server. |
| `server.guestIdent` | string | Ident for **guests** (not logged in) — e.g. `Foo!Invité@…`. Folded to ASCII (IRC idents are `[A-Za-z0-9._-]`, so `Invité``Invite`). Logged-in members use their own nick as the ident. |
| `startup.channels` | string[] | Channels auto-joined (first = active). A `?channel=` URL param overrides. |
| `branding.name` | string | App/network name shown in the UI + CTCP VERSION. |
| `branding.icon` | string | Logo / favicon URL. |
| `branding.name` | string | App/network name — UI, tab title, **notifications**, **PWA install prompt**, and CTCP VERSION. |
| `branding.icon` | string | Logo/icon — connect screen, **browser favicon**, desktop + push notifications, PWA. |
| `branding.url` | string | Homepage (used in CTCP VERSION/SOURCE). |
| `branding.tagline` / `taglineEm` / `subtitle` | string | Connect-screen copy. |
| `branding.projectUrl` | string | "Powered by Orbit" link in Settings. |
| `turnstile.enabled` / `sitekey` | bool / string | Cloudflare Turnstile on registration. |
| `report.target` | string | Channel that user reports are sent to. |
| `branding.projectUrl` | string | Orbit project/source link (Settings → About). |
| `turnstile.enabled` | bool | Render the anti-bot challenge inline (Cloudflare Turnstile). `false` = show the server's verification step as a link, no Cloudflare script. Whether a challenge is *required* is decided server-side. |
| `turnstile.sitekey` | string | Public Turnstile site key. |
| `report.service` | string | Services pseudo-client that receives reports (e.g. `ReportServ`) — not blocked by a `+n` staff channel. Empty = fall back to `report.target`. |
| `report.target` | string | Channel that reports are sent to when `report.service` is empty. |
| `defaults.theme` | string | `light` · `dark` · `yomirc` · `yomirc-dark`. |
| `defaults.compact` / `sound` / `hideJoinQuit` / `clock24` | bool | Preset new-user prefs. |
| `features.push` / `imageUpload` / `register` | bool | Turn whole features on/off. |
| `defaults.lang` | string | Force the UI language (`en`, `fr`, `de`, `es`, `it`, `tr`, `ru`, `ne`, `pt-BR`, `pt-PT`). Empty = auto-detect from the browser. |
| `features.push` | bool | Web Push notifications — the Settings row **and** the re-subscribe-on-connect. |
| `features.imageUpload` | bool | Composer image button **and** paste / drag-drop upload. |
| `features.register` | bool | Account self-service: the "Create account" button, the "Forgot password" link, and their FAQ entries. |
| `plugins` | string[] | Plugin script URLs loaded at startup. See [Plugins](https://orbit.tchatou.fr/docs/plugins/). |
> `defaults.*` only seed a user's preferences the **first** time — once someone changes a setting,
> it's stored in their browser and the config no longer overrides it.
## Languages
The UI ships fully translated in **10 languages** — English, French, German, Spanish,
Italian, Turkish, Russian, Nepali, and Brazilian + European Portuguese. Orbit
auto-detects the visitor's browser language; pin a default with `defaults.lang` (users
can still switch in **Settings**). The bundled plugins are localized too — see
[Plugins](https://orbit.tchatou.fr/docs/plugins/).
## Example
```json
{
"server": { "url": "wss://irc.example.org/ws/" },
"server": { "url": "wss://irc.example.org/ws/", "guestIdent": "Guest" },
"startup": { "channels": ["#lobby", "#help"] },
"branding": { "name": "ExampleChat", "tagline": "Chat with", "taglineEm": "everyone." },
"branding": { "name": "ExampleChat", "icon": "https://example.org/logo.svg", "tagline": "Chat with", "taglineEm": "everyone." },
"turnstile":{ "enabled": false, "sitekey": "" },
"defaults": { "theme": "dark", "compact": true },
"features": { "register": false }
"report": { "service": "ReportServ", "target": "#staff" },
"defaults": { "theme": "dark", "compact": true, "lang": "" },
"features": { "push": true, "imageUpload": true, "register": false },
"plugins": []
}
```