Show Lexbox instead of Language Forge/Depot in send/receive UI.#389
Show Lexbox instead of Language Forge/Depot in send/receive UI.#389hahn-kev wants to merge 2 commits into
Conversation
User-facing labels, aliases, and error messages now say Lexbox while server URLs and internal settings keys remain on languageforge.org. Co-authored-by: Cursor <cursoragent@cursor.com>
Show "Log in to Lexbox" without the hostname, initialize L10NSharp for Chorus.exe and SampleApp, and mark server settings dialog tests STA. Co-authored-by: Cursor <cursoragent@cursor.com>
imnasnainaec
left a comment
There was a problem hiding this comment.
@imnasnainaec reviewed 3 files and made 4 comments.
Reviewable status: 3 of 13 files reviewed, 4 unresolved discussions (waiting on hahn-kev).
src/Chorus/Program.cs line 77 at r1 (raw file):
if (Directory.Exists(Path.Combine(installedTranslations, "Chorus"))) { var userTranslations = Path.Combine(
Devin nit:
src/Chorus/Program.cs:R77-81
Localization setup creates a nested 'Chorus/Chorus' directory for user translations
In Program.cs:77-81, userTranslations is set to %APPDATA%/SIL/Chorus, then ChorusSystem.SetUpLocalization appends "Chorus" internally (src/Chorus/ChorusSystem.cs:119), resulting in user-modified translation files being stored at %APPDATA%/SIL/Chorus/Chorus. The SampleApp avoids this by using "SIL", "ChorusSampleApp" as the base. The double-Chorus nesting is functional but slightly awkward. The SetUpLocalization parameter is documented as a path where "a folder named Chorus\localizations will be created" (src/Chorus/ChorusSystem.cs:112-113), so the intent is for the caller to pass the app's settings root, not a Chorus-specific path.
src/Chorus/UI/Misc/ServerSettingsControl.Designer.cs line 299 at r1 (raw file):
this._serverLabel.Size = new System.Drawing.Size(122, 13); this._serverLabel.TabIndex = 18; this._serverLabel.Text = "to Lexbox";
Devin nit:
src/Chorus/UI/Misc/ServerSettingsControl.Designer.cs:R299
Login label no longer shows which server (public vs private) the user will connect to
The old code dynamically formatted _serverLabel.Text with the actual server hostname (e.g. public.languageforge.org or private.languageforge.org). [...] Users connecting to a private server will see the same label as public server users, losing a visual cue about which server they're targeting.
src/Chorus/UI/Settings/SettingsView.resx line 159 at r1 (raw file):
online = https://JoeSmith:mypassword@hg-public.languageforge.org/tpi For a free Lexbox internet repository, visit https://public.languageforge.org</value>
Since https://public.languageforge.org redirects to https://languagedepot.org/login, shouldn't we update the url here to avoid the redirect reliance?
src/LibChorus/Model/ServerSettingsModel.cs line 368 at r1 (raw file):
} return $"Lexbox [{Bandwidth}]";
Devin potential bug:
src/LibChorus/Model/ServerSettingsModel.cs:R368
Renaming the repository alias breaks automatic sync for existing projects
The repository alias written to the config file's paths section is changed from the old name to the new name ($"Lexbox [{Bandwidth}]" at src/LibChorus/Model/ServerSettingsModel.cs:368), but the matching entry in the default-sync section is never updated, so the two sections fall out of sync.
Impact: Existing projects that previously auto-synced will silently stop being included in default sync operations after settings are saved.
Alias name mismatch between [paths] and [ChorusDefaultRepositories] in hgrc
When SaveSettings() is called (src/LibChorus/Model/ServerSettingsModel.cs:263-276), it invokes SetTheOnlyAddressOfThisType(CreateRepositoryAddress(AliasName)). The SetTheOnlyAddressOfThisType method (src/LibChorus/VcsDrivers/Mercurial/HgRepository.cs:1494-1503) removes the old HttpRepositoryPath entry from [paths] by type and adds a new one with the new alias name "Lexbox [High bandwidth]". However, the [ChorusDefaultRepositories] section still contains the old key "languageForge.org [High bandwidth]". Since GetDefaultSyncAliases() (src/LibChorus/VcsDrivers/Mercurial/HgRepository.cs:1535-1541) returns keys from [ChorusDefaultRepositories] and these are matched by name against entries in [paths], the old alias no longer resolves to any path.
This is triggered whenever SaveSettings() runs for an existing repository — either through the server settings dialog or via RemoveCredentialsFromIniIfNecessary() (src/LibChorus/VcsDrivers/Mercurial/HgRepository.cs:1437-1448).
Getting lots of confusion from people seeing Language Forge in the UI, especially now that Language forge is in maintenance mode.
User-facing labels, aliases, and error messages now say Lexbox while server URLs and internal settings keys remain on languageforge.org.
one thing I noticed is that the FLEx help still references language depot and language forge. Not sure how we update those, I thought they already were but maybe they didn't make it into the most recent release?
I also fixed launching the sample app and Chorus directly, previously they would crash because localization manager was not setup.
This change is