Skip to content

Show Lexbox instead of Language Forge/Depot in send/receive UI.#389

Open
hahn-kev wants to merge 2 commits into
masterfrom
lexbox-ui-branding
Open

Show Lexbox instead of Language Forge/Depot in send/receive UI.#389
hahn-kev wants to merge 2 commits into
masterfrom
lexbox-ui-branding

Conversation

@hahn-kev

@hahn-kev hahn-kev commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

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.

image

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 Reviewable

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>
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

Test Results

       8 files  ±0     333 suites  ±0   2h 26m 53s ⏱️ -6s
   992 tests ±0     936 ✔️ ±0    56 💤 ±0  0 ±0 
3 157 runs  ±0  3 034 ✔️ ±0  123 💤 ±0  0 ±0 

Results for commit d02d022. ± Comparison against base commit fa2a256.

♻️ This comment has been updated with latest results.

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>
@hahn-kev
hahn-kev marked this pull request as ready for review July 13, 2026 09:58

@imnasnainaec imnasnainaec left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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).

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.

2 participants