Add Russian localization and i18n foundation#133
Open
DrMaks22 wants to merge 7 commits into
Open
Conversation
DrMaks22
marked this pull request as ready for review
July 7, 2026 16:15
…-i18n # Conflicts: # native/Package.swift # native/Sources/BrewBrowserKit/AppModel.swift # native/Sources/BrewBrowserKit/ContentView.swift # native/build-app.sh # src/lib/components/Library.svelte # src/lib/components/PackageDetail.svelte # src/lib/components/ResizeHandle.svelte # src/lib/components/Sidebar.svelte # src/lib/stores/ui.svelte.ts
Author
|
Fresh installed-build QA pass after syncing to
No maintainer comments/reviews were present when I checked; PR is still mergeable from GitHub's perspective. |
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.
Summary
This PR adds a lightweight Russian localization foundation for Brew Browser across both shipped shells: the Tauri/Svelte/Rust app and the native SwiftUI app. It is updated on upstream
mainthroughv0.7.1/ native0.3.1, including the new Bundles feature.The goal is not only Russian UI text, but a maintainable path for additional languages without pulling in a heavy i18n dependency.
What changed
src/lib/i18n/en.ts,src/lib/i18n/ru.ts,src/lib/i18n/messages.tsL10nfacade plusLocalizable.strings/Localizable.xcstringsresourcessrc-tauri/data/bundles.ru.jsonnative/Sources/BrewBrowserKit/Resources/bundles.ru.jsonbundles.<locale>.jsonoverlaybundles.<locale>.jsononly when the live host provides a matching overlay; otherwise it keeps live English recipe prose intactCONTRIBUTING-bundles.mdwith the localization overlay contract and instructions for adding future languages.agentic-web-devnow declares the third-partyanomalyco/taprequired foropencode.(user-refreshed).cask-пакет/формулаwithout changing package identifiers or brew commands.date.todaykey and translatesuser-refreshedasобновлён пользователем.How future languages can be added
src/lib/i18n/<locale>.tsand route it through the current message helpers.<locale>.lproj/Localizable.stringsandLocalizable.xcstringsresources, then include any new resources innative/Package.swift.src-tauri/data/bundles.<locale>.jsonnative/Sources/BrewBrowserKit/Resources/bundles.<locale>.jsonenrichment.<locale>.json) instead of mutating the base English catalog; search/index code should keep stable package IDs and add localized text as an additional display/search layer.Validation
Ran locally on this branch:
npm run check✅npm test✅ — 8 files / 66 testsnode scripts/validate-recipes.mjs✅ — 9/9 recipes valid, regenerated all bundledbundles.jsoncopiescargo test --manifest-path src-tauri/Cargo.toml✅ — 691 passed, 6 ignored integration testscd native && swift build✅cd native && swift test✅ — 204 Swift Testing tests passeden.ts/ru.ts: strict key and placeholder parity passed.stringsparity ✅ — English/Russian resource parity passed in both native resource roots.xcstringsstructural parse ✅git diff --check✅/Applications/Brew Browser RU.app(com.zerologic.brew-browser,0.7.1)/Applications/Brew Browser Native RU.app(com.zerologic.brew-browser-native,0.3.1)Notes:
.appbundle, then fails only at Developer ID signing because the maintainer certificateDeveloper ID Application: Michael Sitarzewski (7JQGQ7CRH8)is not present on this machine. For local visual QA I ad-hoc signed the app bundle; this does not change repo code or the maintainer release process.src. On native sources it flags the centralizedL10nhelper methods themselves; those helpers contain explicit Russian plural forms and are intentional.Maintainer-facing notes