Skip to content

Commit 261dfac

Browse files
committed
docs(readme): add i18n architecture and language coverage tables
1 parent 399de4e commit 261dfac

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

README-RU.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,16 @@ geo-базы, заглушка). Нода — **тот же бинарник**
274274
Swagger UI; **вебхуки** шлют подписанные HMAC-SHA256 события с ретраями.
275275
Подробнее — [docs/api.md](docs/api.md).
276276

277+
#### 🌍 Язык (RU / EN)
278+
279+
| Поверхность | Откуда берётся язык |
280+
| ---------------------- | ---------------------------------------------------------------- |
281+
| Панель | выбор самого админа (на браузер), иначе языки браузера |
282+
| Страница подписки | `Accept-Language` |
283+
| Клиентский бот и саппорт | язык Telegram каждого человека |
284+
| Админ-бот | настройка панели (*Настройки → Telegram*) |
285+
| CLI | английский |
286+
277287
#### 🎨 Брендинг и тема
278288

279289
Своё название и логотип вместо «РосПанели» — в панели и на странице подписки. Акцентный цвет
@@ -387,6 +397,11 @@ go build -o rospanel ./cmd/rospanel
387397
./rospanel
388398
```
389399

400+
**Локализация.** Словари панели — `web/src/i18n/ru.ts` и `en.ts`, типизированные друг по другу:
401+
ключ, который есть в одном и забыт в другом, роняет сборку, а не молча подставляет фолбэк. То,
402+
что Go рисует сам — боты и страница подписки — лежит в `internal/i18n/`; бэкенд отдаёт панели
403+
ключ с аргументами, а не готовый текст. Третий язык — это по одному словарю с каждой стороны.
404+
390405
Полезные переменные окружения (все опциональны): `ROSPANEL_DATA` (каталог данных),
391406
`ROSPANEL_ADMIN_ADDR` (loopback-адрес панели, по умолчанию `127.0.0.1:8080`),
392407
`XRAY_BIN`, `ROSPANEL_HOST`, `ROSPANEL_ACME_EMAIL`.

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,16 @@ gets the message twice.
288288
Swagger UI; **webhooks** send HMAC-SHA256 signed events with retries. More in
289289
[docs/api.md](docs/api.md).
290290

291+
#### 🌍 Language (RU / EN)
292+
293+
| Surface | Language comes from |
294+
| ------------------------- | -------------------------------------------------------------- |
295+
| Panel | the admin's own pick (per browser), otherwise the browser's languages |
296+
| Subscription page | `Accept-Language` |
297+
| Client and support bots | each person's Telegram language |
298+
| Admin bot | a panel-wide setting (*Settings → Telegram*) |
299+
| CLI | English |
300+
291301
#### 🎨 Branding and theme
292302

293303
Your own name and logo instead of "RosPanel" — in the panel and on the subscription page. An
@@ -411,6 +421,12 @@ go build -o rospanel ./cmd/rospanel
411421
./rospanel
412422
```
413423

424+
**Localisation.** The panel's dictionaries are `web/src/i18n/ru.ts` and `en.ts`, typed against
425+
each other: a key present in one and missing in the other is a build error, not a silent fallback.
426+
What Go renders itself — the bots and the subscription page — lives in `internal/i18n/`; the
427+
backend hands the panel a key plus arguments and never rendered prose. Adding a third language
428+
means one more dictionary on each side.
429+
414430
Useful environment variables (all optional): `ROSPANEL_DATA` (data directory),
415431
`ROSPANEL_ADMIN_ADDR` (the panel's loopback address, `127.0.0.1:8080` by default), `XRAY_BIN`,
416432
`ROSPANEL_HOST`, `ROSPANEL_ACME_EMAIL`.

0 commit comments

Comments
 (0)