Skip to content

Add private mode option to WebSearch plugin items #3891

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: dev
Choose a base branch
from

Conversation

zoltanvi
Copy link
Contributor

@zoltanvi zoltanvi commented Aug 9, 2025

This PR adds a "Private mode" option to individual setting items in the WebSearch plugin.
When enabled, and if Private mode is also configured in
Flow Launcher → General → Default Web Browser, links from these
items will open in a private browsing window — independently of other items’ settings.

This allows finer control over which links open in private mode,
without requiring all links to follow the same browser privacy
setting.

I'm not sure if I need to add the placeholders for the localization files or not.

Some screenshots:

image image

Copy link

gitstream-cm bot commented Aug 9, 2025

🥷 Code experts: jjw24

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

See details

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 4 additions & 4 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR
MAR 1 additions & 1 deletions

Knowledge based on git-blame:
jjw24: 41%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR 36 additions & 36 deletions

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY 1 additions & 1 deletions
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY 5 additions & 7 deletions
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL 1 additions & 1 deletions
JUN
MAY
APR 1 additions & 1 deletions
MAR 2 additions & 2 deletions

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 42%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 5 additions & 4 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 37%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN 4 additions & 4 deletions
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL 3 additions & 3 deletions
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN 3 additions & 3 deletions
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 100%

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR 1 additions & 1 deletions
MAR

Knowledge based on git-blame:
jjw24: 98%

Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN 2 additions & 2 deletions
MAY
APR 1 additions & 2 deletions
MAR

Knowledge based on git-blame:
jjw24: 14%

Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR
MAR

Knowledge based on git-blame:
jjw24: 36%

Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR
MAR

Knowledge based on git-blame:

Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml

Activity based on git-commit:

jjw24 Jack251970
AUG
JUL
JUN
MAY
APR
MAR 9 additions & 3 deletions

Knowledge based on git-blame:
jjw24: 2%

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

Copy link

gitstream-cm bot commented Aug 9, 2025

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 Aug 9, 2025
Copy link
Contributor

coderabbitai bot commented Aug 9, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Added a per-search-source Private Mode flag: new SearchSource.IsPrivateMode property, UI to set and display it, localization entries for the "Private Mode" label across WebSearch languages, and updated OpenWebUrl calls to pass the private-mode flag.

Changes

Cohort / File(s) Change Summary
Localization: Add "Private Mode" label
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/*.xaml
Added flowlauncher_plugin_websearch_private_mode_label entries across WebSearch language resource files (translations added in many locales).
SearchSource class: Add property and refactor
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs
Added public bool IsPrivateMode { get; set; }, simplified IconPath to an expression-bodied property, and copied IsPrivateMode in DeepCopy().
Main plugin logic: Pass Private Mode flag
Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs
Updated _context.API.OpenWebUrl(...) calls to include searchSource.IsPrivateMode as a second argument when opening URLs.
Settings UI: Add Private Mode option
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
Added a new grid row with a CheckBox bound to SearchSource.IsPrivateMode; adjusted row placement for the Enabled checkbox.
Settings ListView: Display Private Mode column
Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml
Added a fixed-width column showing a centered, read-only CheckBox bound to IsPrivateMode for each search source.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant SettingsUI
    participant SearchSource
    participant MainPlugin
    participant WebBrowser

    User->>SettingsUI: Open source settings / toggle Private Mode
    SettingsUI->>SearchSource: Set IsPrivateMode
    SearchSource-->>SettingsUI: Persist IsPrivateMode

    User->>MainPlugin: Trigger search or select suggestion
    MainPlugin->>SearchSource: Read IsPrivateMode
    MainPlugin->>WebBrowser: OpenWebUrl(url, IsPrivateMode)
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • Jack251970
  • taooceros
  • jjw24
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
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: 7

🔭 Outside diff range comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1)

1-53: Translate the “Private mode” label in remaining language files

We’ve identified that the flowlauncher_plugin_websearch_private_mode_label key is still using the English fallback in the following locales. Please update each entry to the correct translation:

• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml

Each file, at line 14, currently has:

<system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>

Please replace Private mode with the appropriate localized string.

🧹 Nitpick comments (20)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1)

14-14: Localize the new label (Italian).

Value is still in English. Suggest Italian translation.

Apply:

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Modalità privata</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml (1)

14-14: Localize the new label (Spanish).

Value is still in English. Suggest Spanish translation.

Apply:

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Modo privado</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1)

14-14: Localize the new label (French).

Value is still in English. Suggest French translation.

Apply:

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Mode privé</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1)

14-14: Localize the new label (Hebrew).

Value is still in English. Suggest Hebrew translation.

Apply:

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">מצב פרטי</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml (1)

14-14: Localize label to Danish instead of English placeholder

Use a proper Danish translation to avoid mixed-language UI.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privat tilstand</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml (1)

14-14: Localize label to Japanese instead of English placeholder

Adopt a common Japanese phrasing for the feature name.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">プライベート モード</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml (1)

14-14: Localize label to Spanish (LATAM) instead of English placeholder

Use neutral Latin American Spanish.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Modo privado</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml (1)

14-14: Localize label to Arabic instead of English placeholder

Provide an Arabic translation for consistency.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">الوضع الخاص</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1)

14-14: Localize label to Dutch instead of English placeholder

Use the commonly used Dutch term.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privémodus</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml (1)

14-14: Localize “Private mode” to Korean

Use a native label for consistency with the rest of this file.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">시크릿 모드</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml (1)

14-14: Translate “Private mode” to Turkish

Keep language consistency within the resource file.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Gizli mod</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml (1)

14-14: Translate “Private mode” to German

Use localized wording to match the rest of the resource file.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privater Modus</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml (1)

14-14: Translate “Private mode” to Russian

Use a commonly recognized term to match the file’s language.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Режим инкогнито</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1)

14-14: Localize label: translate “Private mode” to Vietnamese

Use a proper Vietnamese translation for consistency with the rest of this file.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Chế độ riêng tư</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml (1)

14-14: Localize label: translate “Private mode” to Czech

Use a localized term commonly used in browsers (e.g., “Anonymní režim”).

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Anonymní režim</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1)

14-14: Localize label: translate “Private mode” to Polish

Suggested translation: “Tryb prywatny”.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Tryb prywatny</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml (1)

14-14: 本地化标签:将 “Private mode” 翻译为简体中文

推荐用词:”隐私模式“(或“无痕模式”,任选其一;此处采用“隐私模式”)。

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">隐私模式</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml (1)

14-14: 在地化標籤:將 “Private mode” 翻譯為繁體中文

建議用詞:「無痕模式」(或「隱私模式」;此處採用「無痕模式」)。

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">無痕模式</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml (1)

99-112: UI OK; minor accessibility and visual tweak for read-only checkbox

The read-only CheckBox communicates state, but disabling it greys the control, which can reduce readability and negatively affect accessibility. Prefer keeping it enabled but non-interactive.

Use this tweak:

-                                <CheckBox
-                                    HorizontalAlignment="Center"
-                                    VerticalAlignment="Center"
-                                    IsChecked="{Binding IsPrivateMode}"
-                                    IsEnabled="False"
-                                    />
+                                <CheckBox
+                                    HorizontalAlignment="Center"
+                                    VerticalAlignment="Center"
+                                    IsChecked="{Binding IsPrivateMode}"
+                                    Focusable="False"
+                                    IsHitTestVisible="False" />

Also consider aligning boolean columns (Enabled vs Private mode) to a consistent visual style (both text or both checkboxes) for uniformity.

Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (1)

186-191: Add a tooltip to clarify dependency on global browser setting

To reduce confusion, clarify that per-item Private mode takes effect only when the default browser is configured to launch in private mode in General settings.

-                                <CheckBox
+                                <CheckBox
                                     Grid.Row="4"
                                     Grid.Column="1"
                                     Margin="10 10 10 15"
                                     VerticalAlignment="Center"
-                                    IsChecked="{Binding SearchSource.IsPrivateMode}" />
+                                    IsChecked="{Binding SearchSource.IsPrivateMode}"
+                                    ToolTip="{DynamicResource flowlauncher_plugin_websearch_private_mode_tooltip}" />

Follow-up: If flowlauncher_plugin_websearch_private_mode_tooltip doesn't exist, either add it to languages or inline a brief tooltip string.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4ae58c8 and 0a848a3.

📒 Files selected for processing (29)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (2 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs (3 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (2 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2024-11-03T07:40:11.014Z
Learnt from: Yusyuriv
PR: Flow-Launcher/Flow.Launcher#3057
File: Flow.Launcher.Core/Plugin/JsonRPCPluginSettings.cs:0-0
Timestamp: 2024-11-03T07:40:11.014Z
Learning: In Flow Launcher, when using Windows Forms dialogs (e.g., in `JsonRPCPluginSettings.cs`), path validation is enabled by default in `OpenFileDialog` and `FolderBrowserDialog`, preventing users from selecting invalid paths, but it's possible to opt out of this validation on individual dialogs.

Applied to files:

  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
📚 Learning: 2025-03-28T21:12:13.386Z
Learnt from: onesounds
PR: Flow-Launcher/Flow.Launcher#3394
File: Flow.Launcher/Themes/Darker Glass.xaml:134-141
Timestamp: 2025-03-28T21:12:13.386Z
Learning: In Flow.Launcher, hotkey styling is implemented with a two-component structure: a Border element with style `ItemHotkeyBGStyle` that provides background and border styling, containing a TextBlock with style `ItemHotkeyStyle` that handles the text styling.

Applied to files:

  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
📚 Learning: 2025-07-01T05:46:13.251Z
Learnt from: Jack251970
PR: Flow-Launcher/Flow.Launcher#3791
File: Flow.Launcher.Core/Plugin/PluginManager.cs:293-295
Timestamp: 2025-07-01T05:46:13.251Z
Learning: In Flow.Launcher.Core/Plugin/PluginManager.cs, when checking if a plugin is modified within the PluginManager class itself, prefer using the internal static PluginModified(string id) method directly rather than going through API.PluginModified() for better performance and architectural design.

Applied to files:

  • Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs
  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs
📚 Learning: 2025-03-28T21:20:54.978Z
Learnt from: onesounds
PR: Flow-Launcher/Flow.Launcher#3394
File: Flow.Launcher/Themes/Darker Glass.xaml:134-141
Timestamp: 2025-03-28T21:20:54.978Z
Learning: In WPF applications like Flow.Launcher, Border elements cannot directly display text content and require a child element like TextBlock to handle text rendering. This separation of concerns (Border for visual container styling, TextBlock for text display) follows WPF best practices and provides greater styling flexibility.

Applied to files:

  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
🧬 Code Graph Analysis (1)
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (1)
  • Main (12-209)
🔇 Additional comments (5)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1)

14-14: All WebSearch language files include the new key
Verified with a script across all 26 .xaml dictionaries under Plugins/Flow.Launcher.Plugin.WebSearch/Languages; no missing flowlauncher_plugin_websearch_private_mode_label entries were found.

Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (1)

74-74: OpenWebUrl(string, bool?) overload verified and private-mode flag propagation is correct

Verified:

  • IPublicAPI.cs declares
    public void OpenWebUrl(string url, bool? inPrivate = null)
  • PublicAPIInstance.cs implements it via OpenUri(url, inPrivate, true)
  • Calls in Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (lines 74 and 138) match this overload, with searchSource.IsPrivateMode (bool) implicitly converting to bool?
  • No remaining single-argument OpenWebUrl usages were found

The nullable inPrivate parameter will fall back to the global “Default Web Browser → Private mode” setting when null, and explicitly open in (or out of) private mode when true (or false). No changes required.

Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (1)

199-199: No missing localization key for flowlauncher_plugin_websearch_enabled_label

I’ve verified that flowlauncher_plugin_websearch_enabled_label is defined in every language file alongside the existing flowlauncher_plugin_websearch_enable key. No changes needed here.

Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs (2)

23-25: IconPath expression-bodied refactor looks good

The simplification is clear and correct, using the appropriate directory based on CustomIcon. No behavior change.


32-33: IsPrivateMode property and DeepCopy inclusion are correct

Property naming/binding matches XAML; default false ensures backward-compatible deserialization. DeepCopy includes the new field.

Also applies to: 45-45

@Jack251970 Jack251970 requested a review from Copilot August 12, 2025 04:21
Copy link
Contributor

@Copilot 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

This PR adds granular private mode control to the WebSearch plugin, allowing users to configure private browsing on a per-search-source basis rather than globally.

  • Adds a new IsPrivateMode boolean property to individual search sources
  • Updates the UI to include private mode checkboxes in both the settings list and individual source configuration
  • Modifies the web URL opening logic to respect the per-source private mode setting

Reviewed Changes

Copilot reviewed 29 out of 29 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
SearchSource.cs Adds IsPrivateMode property and includes it in the DeepCopy method
Main.cs Updates OpenWebUrl calls to pass the private mode parameter
SettingsControl.xaml Adds private mode column to the search sources list view
SearchSourceSetting.xaml Adds private mode checkbox to individual source settings
Languages/*.xaml Adds localization key for "Private mode" label across all language files

Copy link
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: 2

🔭 Outside diff range comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (1)

8-8: Fix resource key typo in all WebSearch translation files

The resource key prefix is misspelled (flowlaucnher_…) in every .xaml under Plugins/Flow.Launcher.Plugin.WebSearch/Languages, making the set_browser_path string unreachable at runtime. All occurrences of
flowlaucnher_plugin_websearch_set_browser_path
should be updated to
flowlauncher_plugin_websearch_set_browser_path.

Affected files (line 8 in each):

  • de.xaml
  • pl.xaml
  • zh-tw.xaml
  • vi.xaml
  • zh-cn.xaml
  • tr.xaml
  • he.xaml
  • sk.xaml
  • ru.xaml
  • uk-UA.xaml
  • pt-br.xaml
  • nl.xaml
  • pt-pt.xaml
  • nb.xaml
  • ko.xaml
  • ja.xaml
  • fr.xaml
  • es.xaml
  • es-419.xaml
  • it.xaml
  • en.xaml
  • da.xaml
  • cs.xaml
  • ar.xaml
  • sr.xaml

Example diff (pt-pt.xaml):

-    <system:String x:Key="flowlaucnher_plugin_websearch_set_browser_path">Caminho do navegador:</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_set_browser_path">Caminho do navegador:</system:String>

Please apply the same change across all translation files.

♻️ Duplicate comments (2)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml (1)

14-14: Use Norwegian Bokmål: “Privat modus” (not “Private modus”)

Replace the English adjective with the correct Norwegian one.

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private modus</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privat modus</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml (1)

14-14: Use sentence-case in Serbian: “Privatni režim” (lowercase ‘r’).

Serbian UI strings typically capitalize only the first word unless it’s a title/proper noun. Adjust casing for consistency.

Apply this diff:

-    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privatni Režim</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privatni režim</system:String>

Optionally re-verify presence of the new key across all language files:

#!/bin/bash
set -euo pipefail

base_dir='Plugins/Flow.Launcher.Plugin.WebSearch/Languages'

echo "Checking for presence of 'flowlauncher_plugin_websearch_private_mode_label' in all language files..."
fd -e xaml . "$base_dir" | while read -r f; do
  if rg -q 'x:Key="flowlauncher_plugin_websearch_private_mode_label"' "$f"; then
    echo "OK: $f"
  else
    echo "MISSING: $f"
  fi
done

echo
echo "Collected values for quick review:"
rg -n -S 'x:Key="flowlauncher_plugin_websearch_private_mode_label"' "$base_dir"
🧹 Nitpick comments (3)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (2)

4-4: Nit: Prefer “Definições” (plural) for “Settings” window title

In PT-PT, “Definições” is the conventional plural for a settings window label.

-    <system:String x:Key="flowlauncher_plugin_websearch_window_title">Definição do motor de pesquisa</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_window_title">Definições do motor de pesquisa</system:String>

48-48: Nit: Standardize ‘web’ capitalization

Elsewhere in this file “web” is lowercase. Align this line for consistency.

-    <system:String x:Key="flowlauncher_plugin_websearch_iconpath_hint">Dica: não é preciso colocar imagens personalizadas nesta pasta pois se Flow Launcher for atualizado, serão perdidas. Flow irá copiar todas as imagens que estejam fora desta pasta em todas as pesquisas Web.</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_iconpath_hint">Dica: não é preciso colocar imagens personalizadas nesta pasta pois se Flow Launcher for atualizado, serão perdidas. Flow irá copiar todas as imagens que estejam fora desta pasta em todas as pesquisas web.</system:String>
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1)

21-21: Optional: translate remaining English strings for consistency

These entries are still in English; consider translating for a consistent Italian UX.

Apply this diff if desired:

-    <system:String x:Key="flowlauncher_plugin_websearch_enable_suggestion">Use Search Query Autocomplete</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_enable_suggestion">Usa l'autocompletamento della ricerca</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_copyurl_title">Copy URL</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_copyurl_title">Copia URL</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_copyurl_subtitle">Copy search URL to clipboard</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_copyurl_subtitle">Copia l'URL di ricerca negli appunti</system:String>

Also applies to: 33-34

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0a848a3 and 1df6ac0.

📒 Files selected for processing (25)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
🚧 Files skipped from review as they are similar to previous changes (18)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: gitStream.cm
  • GitHub Check: gitStream.cm
  • GitHub Check: gitStream.cm
  • GitHub Check: gitStream.cm
🔇 Additional comments (2)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (1)

14-14: All languages include the private mode label key

I ran a verification across every .xaml file in Plugins/Flow.Launcher.Plugin.WebSearch/Languages—each one contains the flowlauncher_plugin_websearch_private_mode_label entry. “Modo privado” is concise, accurate, and consistent with the existing localization style.

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1)

8-8: Verify the resource key spelling before sweeping fixes
A search showed that the typo’d key flowlaucnher_plugin_websearch_set_browser_path appears in every XAML under
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/*.xaml (line 8), and no occurrences of the correctly-spelled flowlauncher_plugin_websearch_set_browser_path were found anywhere in code or UI XAML. It’s unclear which key the plugin actually looks up at runtime.

Please confirm which key your code/UI references, then:

  • If it uses the typo’d key, keep the existing x:Key values unchanged.
  • If it expects the correct spelling, update all language files’ x:Key from
    flowlaucnher_plugin_websearch_set_browser_path
    to
    flowlauncher_plugin_websearch_set_browser_path
    and adjust any code or XAML lookups accordingly.

Copy link
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: 0

🔭 Outside diff range comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1)

8-8: Rename resource key across all language files

The resource key flowlaucnher_plugin_websearch_set_browser_path is misspelled in every XAML language file and no correctly spelled variant exists in the repo. To fix this safely:

• Files to update:
‑ All files under Plugins/Flow.Launcher.Plugin.WebSearch/Languages/*.xaml

• Apply this change in each file:

-    <system:String x:Key="flowlaucnher_plugin_websearch_set_browser_path">…</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_set_browser_path">…</system:String>

• Also update any UI XAML or code references (e.g. {DynamicResource}, FindResource("…"), translation lookups) to use the new key.

• Optional deprecation strategy: keep the old key as an alias for one release before removal.

🧹 Nitpick comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1)

4-4: Fix existing Hebrew typos (unrelated to this PR, but worth correcting)

Several existing entries appear truncated. Suggest correcting for clarity and professionalism. Optional and can be done in a follow-up.

Apply the following diff to fix obvious typos:

-    <system:String x:Key="flowlauncher_plugin_websearch_window_title">הגדרת מקור חיפו</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_window_title">הגדרת מקור חיפוש</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_new_window">חלון חד</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_new_window">חלון חדש</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_choose">בח</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_choose">בחר</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_edit">ערו</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_edit">ערוך</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_confirm">אישו</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_confirm">אישור</system:String>
-    <system:String x:Key="flowlauncher_plugin_websearch_search">חיפו</system:String>
+    <system:String x:Key="flowlauncher_plugin_websearch_search">חיפוש</system:String>

If you want, I can scan all he.xaml entries and propose a comprehensive cleanup in a separate PR.

Also applies to: 6-6, 9-9, 11-11, 17-17, 20-20

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3e0539f and 52c08c0.

📒 Files selected for processing (18)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml (1 hunks)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
🚧 Files skipped from review as they are similar to previous changes (13)
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
  • Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (4)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (2)

14-14: Translation and key addition look good

“Mode privé” is correct and consistent with existing label casing. Key name aligns with established naming convention.


14-14: Localization key is present in all languages and correctly referenced in the UI

All 24 .xaml language files define flowlauncher_plugin_websearch_private_mode_label, and you’re using it via DynamicResource in:

  • Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml (Header)
  • Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (Text)

The IsPrivateMode binding and its use in Main.cs also look correct. No further action needed.

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1)

14-14: Polish translation is correct and consistent

“Tryb prywatny” is accurate. Key naming is consistent with the rest of the resource dictionary.

Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1)

14-14: Hebrew translation for the new label is correct

“מצב פרטי” is accurate and consistent with existing labels.

Copy link
Member

@Jack251970 Jack251970 left a comment

Choose a reason for hiding this comment

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

Please revert changes in all other language xaml files. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants