Skip to content

Add Crowdin translation links to settings pages#4395

Open
Jack251970 wants to merge 2 commits intodevfrom
crowdin
Open

Add Crowdin translation links to settings pages#4395
Jack251970 wants to merge 2 commits intodevfrom
crowdin

Conversation

@Jack251970
Copy link
Copy Markdown
Member

@Jack251970 Jack251970 commented Apr 7, 2026

Added Crowdin project URL constant and resource string. Exposed Crowdin link in About and General settings via new properties and hyperlink buttons, encouraging users to help translate Flow.

image image

Summary by cubic

Add Crowdin translation links to About and General settings so users can help translate Flow. Introduces a shared Crowdin URL constant and localized labels for both pages.

  • Summary of changes
    • Changed: General settings language row now includes a “Help us translate Flow” hyperlink next to the language selector; About settings Crowdin link label is now localized via the crowdin resource (no hardcoded text).
    • Added: Constant.CrowdinProjectUrl; HelpUsTranslateFlow and crowdin resource strings; Crowdin properties in About and General view models; hyperlink buttons in About and General settings.
    • Removed: No existing logic or UI removed.
    • Memory: Negligible. Adds two localized strings, one string constant, and two lightweight hyperlink buttons.
    • Security: Low risk. Links open a fixed, hardcoded Crowdin URL; no user input involved.
    • Tests: No unit tests added (UI-only change).

Written for commit b06680b. Summary will update on new commits.

Added Crowdin project URL constant and resource string. Exposed Crowdin link in About and General settings via new properties and hyperlink buttons, encouraging users to help translate Flow.
Copilot AI review requested due to automatic review settings April 7, 2026 16:24
@Jack251970 Jack251970 enabled auto-merge April 7, 2026 16:24
@github-actions github-actions bot added this to the 2.2.0 milestone Apr 7, 2026
@Jack251970 Jack251970 added the kind/ui related to UI, icons, themes, etc label Apr 7, 2026
@prlabeler prlabeler bot added the bug Something isn't working label Apr 7, 2026
@Jack251970 Jack251970 requested a review from onesounds April 7, 2026 16:24
@gitstream-cm
Copy link
Copy Markdown

gitstream-cm bot commented Apr 7, 2026

🥷 Code experts: no user but you matched threshold 10

Jack251970 has most 👩‍💻 activity in the files.
Jack251970 has most 🧠 knowledge in the files.

See details

Flow.Launcher.Infrastructure/Constant.cs

Activity based on git-commit:

Jack251970
APR 1 additions & 0 deletions
MAR
FEB
JAN
DEC
NOV

Knowledge based on git-blame:
Jack251970: 100%

Flow.Launcher/Languages/en.xaml

Activity based on git-commit:

Jack251970
APR 0 additions & 1 deletions
MAR
FEB 7 additions & 4 deletions
JAN
DEC
NOV

Knowledge based on git-blame:
Jack251970: 99%

Flow.Launcher/SettingPages/ViewModels/SettingsPaneAboutViewModel.cs

Activity based on git-commit:

Jack251970
APR
MAR
FEB
JAN
DEC
NOV

Knowledge based on git-blame:
Jack251970: 100%

Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs

Activity based on git-commit:

Jack251970
APR
MAR
FEB
JAN
DEC
NOV

Knowledge based on git-blame:
Jack251970: 1%

Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml

Activity based on git-commit:

Jack251970
APR
MAR
FEB
JAN
DEC
NOV

Knowledge based on git-blame:
Jack251970: 100%

Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml

Activity based on git-commit:

Jack251970
APR
MAR
FEB
JAN
DEC
NOV

Knowledge based on git-blame:
Jack251970: 3%

✨ Comment /gs review for LinearB AI review. Learn how to automate it here.

@Jack251970 Jack251970 removed the bug Something isn't working label Apr 7, 2026
@gitstream-cm
Copy link
Copy Markdown

gitstream-cm bot commented Apr 7, 2026

Be a legend 🏆 by adding a before and after screenshot of the changes you made, especially if they are around UI/UX.

@coderabbitai coderabbitai bot added the enhancement New feature or request label Apr 7, 2026
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 6 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml">

<violation number="1" location="Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml:80">
P2: Use a localized resource key for the hyperlink text instead of a hardcoded "Crowdin" string.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 7, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 61adbd03-c76e-41d4-bbf7-915361c3144d

📥 Commits

Reviewing files that changed from the base of the PR and between 49b901d and b06680b.

📒 Files selected for processing (2)
  • Flow.Launcher/Languages/en.xaml
  • Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml
✅ Files skipped from review due to trivial changes (1)
  • Flow.Launcher/Languages/en.xaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml

📝 Walkthrough

Walkthrough

Adds Crowdin translation links: new constant for the Crowdin project URL, two English localization strings, Crowdin properties on two settings view-models, and hyperlink buttons in the About and General settings UI that bind to that URL.

Changes

Cohort / File(s) Summary
Crowdin URL Configuration
Flow.Launcher.Infrastructure/Constant.cs
Added public const string CrowdinProjectUrl = "https://crowdin.com/project/flow-launcher";.
Localization
Flow.Launcher/Languages/en.xaml
Added HelpUsTranslateFlow and crowdin string resources.
View-Model Properties
Flow.Launcher/SettingPages/ViewModels/SettingsPaneAboutViewModel.cs, Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
Added Crowdin read-only property in both view-models exposing the new constant.
Settings UI Views
Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml, Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
Inserted HyperlinkButton for Crowdin: About page adds a Crowdin link; General page adds a "Help us translate Flow" link adjacent to the language ComboBox (layout adjusted).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • onesounds
  • jjw24
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add Crowdin translation links to settings pages' is directly related to the main change: adding Crowdin hyperlinks to the About and General settings pages with a shared URL constant and localized strings.
Description check ✅ Passed The description accurately explains the changes made: introducing a Crowdin URL constant, adding localized resource strings, and exposing Crowdin links in the About and General settings pages with supporting details and screenshots.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch crowdin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml (1)

80-80: Use a resource key for the “Crowdin” label for i18n consistency.

Line 80 is hardcoded while adjacent link labels are localized resources. Consider moving this label to language resources too.

Proposed change
-                    <ui:HyperlinkButton Content="Crowdin" NavigateUri="{Binding Crowdin}" />
+                    <ui:HyperlinkButton Content="{DynamicResource crowdin}" NavigateUri="{Binding Crowdin}" />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml` at line 80, Replace
the hardcoded "Crowdin" label on the HyperlinkButton with a localized resource
reference to match adjacent links: locate the HyperlinkButton with
Content="Crowdin" and NavigateUri="{Binding Crowdin}" in SettingsPaneAbout.xaml
and change its Content to use the same resource approach used by other link
labels (e.g., a StaticResource or x:Uid/resource binding for the "Crowdin"
display text), then add the corresponding resource key (e.g., CrowdinLabel) to
the language resource files so the label is localized.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Flow.Launcher/Languages/en.xaml`:
- Line 147: The resource key HelpUsTranslateFlow is defined only in en.xaml
causing missing-key labels in other language resource dictionaries; add a
matching <system:String x:Key="HelpUsTranslateFlow">…</system:String> entry to
each of the 26 shipped language XAML files (ar, cs, da, de, es, es-419, fr, he,
it, ja, ko, nb, nb-NO, nl, pl, pt-br, pt-pt, ru, sk, sr, sr-Cyrl-RS, tr, uk-UA,
vi, zh-cn, zh-tw) using the correct localized translation where available or the
English text "Help us translate Flow" as a fallback, ensuring the key name
HelpUsTranslateFlow exactly matches the one in Flow.Launcher/Languages/en.xaml
so the ResourceDictionary lookup succeeds for all locales.

---

Nitpick comments:
In `@Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml`:
- Line 80: Replace the hardcoded "Crowdin" label on the HyperlinkButton with a
localized resource reference to match adjacent links: locate the HyperlinkButton
with Content="Crowdin" and NavigateUri="{Binding Crowdin}" in
SettingsPaneAbout.xaml and change its Content to use the same resource approach
used by other link labels (e.g., a StaticResource or x:Uid/resource binding for
the "Crowdin" display text), then add the corresponding resource key (e.g.,
CrowdinLabel) to the language resource files so the label is localized.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2541676a-7df4-44f9-9bf8-098c6da5c145

📥 Commits

Reviewing files that changed from the base of the PR and between 3e320d5 and 49b901d.

📒 Files selected for processing (6)
  • Flow.Launcher.Infrastructure/Constant.cs
  • Flow.Launcher/Languages/en.xaml
  • Flow.Launcher/SettingPages/ViewModels/SettingsPaneAboutViewModel.cs
  • Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
  • Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml
  • Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a Crowdin project link to the settings UI so users can easily navigate to the translation project from both General (near language selection) and About pages.

Changes:

  • Introduced Constant.CrowdinProjectUrl and exposed it via new Crowdin properties on the About and General settings view models.
  • Added a “Help us translate Flow” hyperlink next to the language selector on the General settings page.
  • Added a Crowdin hyperlink to the About page links section and introduced a new English resource string.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml Adds a translation hyperlink alongside the language dropdown.
Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml Adds a Crowdin hyperlink to the About page link list.
Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs Exposes Crowdin URL for binding in General settings view.
Flow.Launcher/SettingPages/ViewModels/SettingsPaneAboutViewModel.cs Exposes Crowdin URL for binding in About settings view.
Flow.Launcher/Languages/en.xaml Adds the HelpUsTranslateFlow resource string.
Flow.Launcher.Infrastructure/Constant.cs Adds the Crowdin project URL constant.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Added "crowdin" string resource to en.xaml for localization.
Updated SettingsPaneAbout.xaml to use the localized resource
for the Crowdin hyperlink button instead of a hardcoded label.
@prlabeler prlabeler bot added the bug Something isn't working label Apr 8, 2026
@coderabbitai coderabbitai bot removed bug Something isn't working enhancement New feature or request labels Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1 min review kind/ui related to UI, icons, themes, etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants