libredb / libredb/libredb-studio

Add a Russian README (README_ru.md), covered by the localized-README drift guard

Open
#610 3 comments 0 reactions 0 assignees View on GitHub
documentation good first issue hacktoberfest
Dominant language
TypeScript
Stars
726
Forks
119
Avg merge
7h 41m
Merged PRs (30d)
284

Description

The repo ships two localized READMEs, `README_zh.md` and `README_ja.md` (#317). Russian is not one of them.

**There is a concrete reason to want this one.** LibreDB Studio was posted to opennet.ru on 2026-09-06 (https://opennet.ru/66216-libredb) and the thread was a real technical discussion: installation without Docker, the security posture, the desktop wrapper, what the AI assistant sends where. Every reader who followed the link from there landed on an English README. A Russian one is the single highest-leverage translation the repo does not have.

**This is smaller than it looks.** `README.md` is 1002 lines; the two translations are 304 and 291. They are deliberate abridgements, not full translations - they carry the pitch, the engine list, the install table and the quick start, and they drop the deep sections. Copy that scope rather than translating the whole file.

**Fix.**

1. Add `README_ru.md`, modelled on `README_zh.md` for structure and length.
2. Add `Русский` to the language switcher near the top of `README.md`, `README_zh.md` and `README_ja.md` (they each list the other languages).
3. Add `"README_ru.md"` to `LOCALIZED` in `scripts/readme-check.mjs` (line 34), so the drift guard covers it.

**The guard decides two things for you, so review is objective.** `scripts/readme-check.mjs` runs inside the required `Lint, Typecheck and Build` check and asserts:

- **The engine name set is identical in all localized files and `README.md`.** A translation that omits an engine is wrong, and so is one that invents an engine. Do not translate engine names - `PostgreSQL` stays `PostgreSQL`.
- **Every command in a localized install table appears verbatim in `README.md`'s.** You may list fewer channels (both existing translations drop Chocolatey and the portable zip), but you may not paraphrase a command. A missing `sudo` or a dropped `brew trust` is exactly what this guard was written for after #317's review found both.

Run `bun run readme:check` before you push.

**Two notes specific to Russian, from that thread.** The audience reads the install table closely, so keep the native, non-container channels visible - deb/rpm, AppImage, snap, the standalone tarball, npm - rather than leading with Docker alone. And established Russian technical vocabulary beats literal translation: `тонкий/толстый клиент`, `образ`, `учётные данные`. Leave product names and CLI text in English.

**Please only take this if you read and write Russian well.** Raw machine-translation output is not what this is for, and a PR that reads as untouched machine output will be closed. Technical terms and product names are better left in English than translated approximately.

**Conflict note.** Step 2 touches one line in three files that every other language issue also touches (#594, #595, #596). If another translation lands first, rebase - it is a one-line conflict.

**Done when** `README_ru.md` exists, the switcher in all four READMEs lists it, `LOCALIZED` includes it, and `bun run readme:check` passes.

---

Curated for Hacktoberfest 2026. Comment to claim it before you start so two people do not work on the same language. A PR must reference this issue; see CONTRIBUTING.md. Repo rules that apply: run `bun run test` (never bare `bun test`), and the 100% line-coverage gate must stay green. Local `bun run test` also needs the `helm` binary on PATH for unrelated chart tests - see #570 if it bites.

Contributor guide

Open the contributing guide

Research direction

Start by comparing README_zh.md and README_ja.md with README.md to follow the localized scope and language-switcher structure. Update README.md, README_zh.md, README_ja.md, and scripts/readme-check.mjs, then run bun run readme:check; done means the Russian file, switcher entries, LOCALIZED entry, engine set, and install commands satisfy the guard.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, markdown
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.