Skip to content

Add Russian language pack (smwbev.russian) - #13

Open
smwbev wants to merge 5 commits into
stablyai:mainfrom
smwbev:add-smwbev-russian
Open

smwbev wants to merge 5 commits into
stablyai:mainfrom
smwbev:add-smwbev-russian

Conversation

@smwbev

@smwbev smwbev commented Oct 11, 2026 •

Copy link
Copy Markdown

What

Adds smwbev.russian, a Russian translation of the Orca interface, as a community entry.

  • Source: https://github.com/smwbev/orca-russian, pinned to tag v5.1.160
  • Content: a manifest and one catalog, locales/ru-RU.json. capabilities: [] and no entry point, so nothing in the repository runs inside Orca; the tools/ folder holds the build and audit scripts. MIT, with the upstream English catalog credited in NOTICE.
  • Category: languages only. This is a community entry, so no official.

Four other Russian packs are already in this queue (#1, #3, #6, #9). I am not asking you to prefer this one; pick whichever fits how you want community listings to work. What follows is what I can vouch for about this pack.

State on Orca v1.4.224

  • 15,433 strings. Of the 15,749 keys in the release's en.json, 316 stay English, and the README accounts for each group: 180 are the protected auto.components.settings.plugin* paths, 2 are feature-wall CSS blocks over the 8,192-character limit, 1 is CSS with nothing to translate, 122 are keys no component reads, and 11 are identical in Russian or are fragments.
  • Nothing stale. The catalog has no key that v1.4.224 does not define.
  • Checked with the validators from the v1.4.224 tag, not from main: pluginMarketplaceSchema accepts this index with the entry added, parsePluginManifest accepts the manifest and its key equals the entry id, and parsePluginLanguagePackArtifact accepts the catalog (17,497 entries of 20,000).
  • engines.orca is >=1.4.169, the first release with the plugin-chrome allow-list. The catalog carries the 34 strings that list opened up, and the validator from v1.4.168 rejects it at the first of them. The gate turns that silent rejection into a refusal that names the version needed.

How it is kept current

  • It tracks releases, not main. For each of the last five Orca releases (v1.4.220 to v1.4.224) the pack for it was tagged within two hours. 205 tags since 31 July.
  • Each tag is rebuilt against the release's own rules. The protected-path rule and the allow-list are read from the release tag. A key the release dropped leaves the pack once neither catalog nor any source literal mentions it.
  • The scripts are in the repository. tools/build.py is the build, and tools/audit-pack.py checks any Orca language pack against a release tag: engine verdict, coverage, stale keys, placeholder drift. It is not specific to Russian, in case it is useful for the authoring side.
  • Plurals. A pack's catalog registers under a synthetic plugin<hex> language, so i18next resolves its plurals with the two English forms and never selects _few or _many (i18n: languages with more than two plural forms cannot be translated orca#12106). The pack therefore words the string that every count but one falls back to so that it reads correctly for any number («сохранено веток: 2»). It also already carries the forms English lacks, 131 entries beyond the 15,433: _few and _many for 18 plural families, and _one, _few and _many for 32 strings Orca calls with a count but ships as a single text. Apart from a count of exactly one they change nothing today, and they start rendering the day fix(i18n): resolve plugin-pack plurals with the declared locale orca#12505 lands.
  • Terminology is fixed in a public glossary: GLOSSARY.md.

Upstream work behind the pack

Where a string could not be translated from a pack, I sent the fix to Orca instead of working around it.

Merged:

Open, waiting for review:

Keeping this entry current

The ref goes stale with the next Orca release. I will push a one-line bump to this branch each time the pack is re-released, so the entry points at the current tag whenever you get to it.

If you want a different convention for community listings — description wording, category, position in the file, or anything in the pack repository itself — tell me and I will change it.

Until then the pack installs from its own index: Settings → Plugins → Manage sources → Add source → https://github.com/smwbev/orca-plugins.git.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant