feat(openlogi-gui): add Russian localization and language select#38
Merged
Conversation
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — adds ru as a first-class GUI locale: the language picker entry, BCP-47 matcher arm, full 110-entry translation column in app.yml, and unit tests covering ru / ru-RU resolution plus a basic translation spot-check.
SUPPORTEDandmatch_supportedextended —("ru", "Русский")slotted betweenjaandzh-CN;match_supportedgains aSome("ru")arm so both bareruand region-taggedru-RUcollapse to"ru".- Translation catalog complete — every key with a
jaentry gets aruentry (confirmed 110 = 110 = 110 againstzh-CN); strings are consistently double-quoted;%{name}/%{slot}interpolation placeholders preserved verbatim. - Doc comments updated — the module doc,
SUPPORTEDdoc, andAppSettings::languagedoc all now listru. TheSUPPORTEDdoc correctly notes that underru(likeja) the framework'sgpui-componentwidget strings fall back to English since onlyen/zh-CN/zh-HKship in upstreamui.yml. - Tests —
maps_locale_variantsgainsru/ru-RUcases;locale_file_resolves_keysadds aset_locale("ru")block asserting"Settings"and"Left Click". This matches the existing pattern (exhaustive coverage iteration stayszh-CN-only;jaandruare spot-checks).
Claude Opus | 𝕏
ff3b2e5 to
734f07a
Compare
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — the language picker is rewritten from a wrapping chip row to a gpui-component Select, and open_or_focus is generalized so view constructors receive a &mut Window (needed by SelectState::new).
SettingsViewadoptsSelect— holds aSelectState<Vec<LanguageOption>>entity built innew, subscribes toSelectEvent::Confirm, and applies the chosen value viaAppState::set_languagefollowed by the samerefresh_windows/rebuild/request_refreshtriad the old chip handler used. The chip helpers and their accent-color styling are removed.LanguageOption+SelectItem— a small option type wrapping(label, value, localize_label). The "Follow system" row setslocalize_label: truesotitle()re-evaluatesrust_i18n::t!("Follow system")on each render; the per-locale rows use their native names verbatim.selected_language_indexmaps the stored language code (or""for unset) back to anIndexPath, defaulting to row 0.open_or_focussignature change —build_view: FnOnce(&mut Window, &mut Context<V>) -> V; the innercx.new(build_view)is rewrapped ascx.new(|cx| build_view(window, cx)). The three otherAuxWindowconstructors (AboutView,AddDeviceView,UpdateConsentView) take the new_: &mut Windowparameter without otherwise changing.
Claude Opus | 𝕏
Open
Merged
AprilNEA
added a commit
that referenced
this pull request
Jun 1, 2026
Resolve the `settings.rs` conflict: keep the new Permissions section and its helpers (`permissions_group` / `permission_row` / `status_badge`) alongside master's `Select`-based language picker (#38), and restore the gpui imports (`InteractiveElement` / `StatefulInteractiveElement` / `rgb`) the permission rows need. Bump the `openlogi-hidpp` workspace dep version 0.2.0 -> 0.3.1 to match the released workspace version.
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
Verification