Make the documentation English-first, with Russian beside the entry points - #22
Merged
Conversation
…oints
The repository is about to become public, and the three neighbouring official
Bitrix24 SDKs (b24phpsdk, b24pysdk, b24jssdk) ship English-only documentation.
Russian-only docs would make this SDK the odd one out and unreadable to most of
the people who will find it.
English is now the repository's language: README.md, CONTRIBUTING.md,
SECURITY.md, CHANGELOG.md and the issue and pull request templates. The three
entry points a newcomer actually reads keep a Russian version beside them —
README.ru.md, CONTRIBUTING.ru.md, SECURITY.ru.md — with a language link on the
first line of each. The CHANGELOG and the templates stay single-language: GitHub
shows one set of templates, and a bilingual 600-line changelog would diverge.
The English text is not a gloss of the Russian. It carries the same facts in the
same structure, in the terms the godoc already uses (walk, envelope, wrapper,
cursor, ambiguous failure), because the two have to agree when read side by side.
CONTRIBUTING's language rule said the opposite of what is true now ("godoc in
English, README and CHANGELOG in Russian"). It is rewritten in both versions to
name the new policy outright, including which three files have a translation, so
the next person does not have to guess what language a changelog entry goes in.
Two things found while porting and fixed in both versions:
- The installFinish section called client.App().InstallFinish, which does not
exist: AppScope.InstallFinish was removed in 0.1.0 along with the generated
wrappers. The section now shows the replacement the CHANGELOG already names,
client.Core().CallJSON(ctx, "installFinish", nil).
- Installation did not say that `go get` fails outside a module. It answers
"go.mod file not found in current directory or any parent directory" and
installs nothing, which is the first thing a reader hits.
Every Go example in both READMEs was compiled against the local module through a
temporary module with a replace directive; the b24test example runs and passes.
All 41 code blocks are identical in both versions once comments and string
literals are discounted, and every relative link resolves.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ExaltedTrou6
force-pushed
the
docs/bilingual
branch
from
August 7, 2026 09:05
80b7192 to
36f3d2e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
The repository is about to become public. All three neighbouring official Bitrix24 SDKs —
b24phpsdk,b24pysdk,b24jssdk— ship English-only documentation; Russian-only docs would make this one unreadable to most of the people who find it.English is now the repository's language.
README.md,CONTRIBUTING.md,SECURITY.md,CHANGELOG.mdand the issue and pull request templates.Three files keep a Russian version beside them — the entry points a newcomer actually reads:
README.ru.md,CONTRIBUTING.ru.md,SECURITY.ru.md, each with a language link on its first line.The CHANGELOG and the templates stay single-language. GitHub shows one set of templates and cannot show two; and a bilingual 600-line changelog is a file that diverges — the two copies drift the first time somebody is in a hurry.
The English text is not a gloss of the Russian. It carries the same facts in the same structure, in the terms the godoc already uses (
walk,envelope,wrapper,cursor,ambiguous failure), because the two versions have to agree when read side by side.CONTRIBUTING's language rule said the opposite of what is now true ("godoc in English, README and CHANGELOG in Russian"). Both versions now name the policy outright, including which three files have a translation — so the next person does not have to guess what language a changelog entry goes in.Two bugs found while porting, fixed in both versions
installFinishcalled an API that does not exist. The section showedclient.App().InstallFinish(ctx, nil);AppScope.InstallFinishwas removed in0.1.0along with the generated wrappers. It now shows the replacement the CHANGELOG already names:client.Core().CallJSON(ctx, "installFinish", nil).go getfails outside a module. It answersgo.mod file not found in current directory or any parent directoryand installs nothing — the first thing a reader hits.Checks
go build ./...go vet ./...gofmt -l .— the output is emptygo test -race ./...Every Go example in both READMEs was compiled against the local module through a temporary module with a
replacedirective; theb24testexample runs and passes. All 41 code blocks are identical across the two versions once comments and string literals are discounted, the heading structure matches one to one, and every relative link resolves.The CHANGELOG translation was checked structurally against the Russian original: same 11 headings, 62 top-level bullets, 22 nested bullets, 10 code fences. Every measurement and error code survives unchanged (28.5 s, 12.0 s, 8.1 s, 0.6 s, ≈4 s, 177 methods, 423 rows,
BITRIX_REST_V3_EXCEPTION_…); only the decimal comma became a decimal point.Compatibility
Note
No CHANGELOG entry was added for this pull request. The
0.2.0section's preamble states that every entry there came from the live-portal run of the tutorials, and a documentation-language bullet would contradict that. Say the word and one goes in.🤖 Generated with Claude Code