{"Manage your browser's general settings"}
+{t("Manage your browser's general settings")}
by {icon.author}
}{t("Manage your browser's general settings")}
+{tSettings("Manage your browser's general settings")}
- Manage websites and the protocols they are allowed to open automatically. + {tSettings("Manage websites and the protocols they are allowed to open automatically.")}
- Websites you have allowed to open external applications via specific protocols. + {tSettings("Websites you have allowed to open external applications via specific protocols.")}
Loading permissions...
+{tSettings("Loading permissions...")}
- {searchQuery ? "No matching permissions found" : "No permissions configured"} + {searchQuery ? tSettings("No matching permissions found") : tSettings("No permissions configured")}
{!searchQuery && (- Websites will ask for permission to open external links. + {tSettings("Websites will ask for permission to open external links.")}
)}- Note: When you revoke a permission, the website will need to ask for permission again the next time it tries - to open that protocol. + {tSettings( + "Note: When you revoke a permission, the website will need to ask for permission again the next time it tries to open that protocol." + )}
{{protocol}} links?": "Revoke permission for {{protocol}} links?",
+ "Cancel": "Cancel",
+ "Revoke Permission": "Revoke Permission",
+ "Permission revoked!": "Permission revoked!",
+ "Failed to revoke permission.": "Failed to revoke permission.",
+ "An error occurred while revoking permission.": "An error occurred while revoking permission.",
+ "Could not load permissions.": "Could not load permissions.",
+ "Revoke": "Revoke"
}
From 4b5eb87bd601851cfc1b8ebfdf524517e43971ce Mon Sep 17 00:00:00 2001
From: iamEvan <47493765+iamEvanYT@users.noreply.github.com>
Date: Fri, 9 May 2025 18:50:28 +0100
Subject: [PATCH 22/27] feat: about section translation
---
.../sections/about/browser-info-card.tsx | 20 ++++++++++---------
.../settings/sections/about/section.tsx | 7 +++++--
src/renderer/src/lib/i18n.ts | 3 +++
src/shared/locales/en-US/settings.json | 12 ++++++++++-
4 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/src/renderer/src/components/settings/sections/about/browser-info-card.tsx b/src/renderer/src/components/settings/sections/about/browser-info-card.tsx
index 1f525cc9..26f5b267 100644
--- a/src/renderer/src/components/settings/sections/about/browser-info-card.tsx
+++ b/src/renderer/src/components/settings/sections/about/browser-info-card.tsx
@@ -1,3 +1,4 @@
+import { useSettingsTranslations } from "@/lib/i18n";
import { useEffect, useState } from "react";
import { Loader2 } from "lucide-react"; // For loading state
@@ -18,6 +19,7 @@ function InfoRow({ label, value }: InfoRowProps) {
}
export function BrowserInfoCard() {
+ const { t: tSettings } = useSettingsTranslations();
const [appInfo, setAppInfo] = useStateDetails about your Flow Browser installation.
+{tSettings("Details about your browser")}
Information about your browser
+{tSettings("Information about your browser")}
{tSettings("Information about your browser")}
{tSettings("Manage your browser's general settings")}
{tSettings("Details about your browser")}
+{tSettings("sections.about.info.description")}
{tSettings("Information about your browser")}
+{tSettings("sections.about.description")}
{websiteUrl}
- {tSettings("Manage websites and the protocols they are allowed to open automatically.")} -
+{tSettings("settings.external-apps.description")}
- {tSettings("Websites you have allowed to open external applications via specific protocols.")} -
-{tSettings("Loading permissions...")}
+{tSettings("settings.external-apps.loading")}
- {searchQuery ? tSettings("No matching permissions found") : tSettings("No permissions configured")} + {searchQuery + ? tSettings("settings.external-apps.no-matching-permissions") + : tSettings("settings.external-apps.no-permissions-configured")}
{!searchQuery && (- {tSettings("Websites will ask for permission to open external links.")} + {tSettings("settings.external-apps.no-permissions-found.description")}
)}- {tSettings( - "Note: When you revoke a permission, the website will need to ask for permission again the next time it tries to open that protocol." - )} -
+{tSettings("settings.external-apps.note")}
{tSettings("Manage your browser's general settings")}
+{tSettings("sections.general.description")}
{{protocol}} links?": "Revoke permission for {{protocol}} links?",
- "Cancel": "Cancel",
- "Revoke Permission": "Revoke Permission",
- "Permission revoked!": "Permission revoked!",
- "Failed to revoke permission.": "Failed to revoke permission.",
- "An error occurred while revoking permission.": "An error occurred while revoking permission.",
- "Could not load permissions.": "Could not load permissions.",
- "Revoke": "Revoke",
- "Information about your browser": "Information about your browser",
- "Browser Information": "Browser Information",
- "Details about your browser": "Details about your browser",
- "Browser Name": "Browser Name",
- "Version": "Version",
- "Build": "Build",
- "Engine": "Engine",
- "OS": "OS",
- "Update Channel": "Update Channel",
- "Could not load browser information.": "Could not load browser information."
+ "sections.general.description": "Manage your browser's general settings",
+ "settings.icon.title": "Browser Icon",
+ "settings.icon.description": "Select an icon for your browser application",
+ "settings.icon.unsupported": "Icon customization is not supported on this platform.",
+ "settings.icon.loading": "Loading icons...",
+ "settings.icon.current": "CURRENT",
+ "settings.external-apps.title": "External Applications",
+ "settings.external-apps.description": "Manage websites and the protocols they are allowed to open automatically.",
+ "settings.external-apps.note": "Note: When you revoke a permission, the website will need to ask for permission again the next time it tries to open that protocol.",
+ "settings.external-apps.confirm-card.title": "Confirm Revocation",
+ "settings.external-apps.confirm-card.description": "Revoke permission for {{protocol}} links?",
+ "settings.external-apps.search-placeholder": "Search by website or protocol...",
+ "settings.external-apps.revoke-permission.confirm": "Revoke Permission",
+ "settings.external-apps.revoke-permission.success": "Permission revoked!",
+ "settings.external-apps.revoke-permission.failed": "Failed to revoke permission.",
+ "settings.external-apps.revoke-permission.error": "An error occurred while revoking permission.",
+ "settings.external-apps.protocol_one": "{{count}} protocol",
+ "settings.external-apps.protocol_other": "{{count}} protocols",
+ "settings.external-apps.no-matching-permissions": "No matching permissions found",
+ "settings.external-apps.no-permissions-configured": "No permissions configured",
+ "settings.external-apps.no-permissions-found.description": "We couldn't find any matching permissions.",
+ "settings.external-apps.loading": "Loading permissions...",
+ "settings.external-apps.loading.failed": "Could not load permissions.",
+ "settings.external-apps.revoke": "Revoke",
+ "sections.about.description": "Information about your browser",
+ "sections.about.info.title": "Browser Information",
+ "sections.about.info.description": "Details about your browser",
+ "sections.about.info.browser-name": "Browser Name",
+ "sections.about.info.version": "Version",
+ "sections.about.info.build": "Build",
+ "sections.about.info.engine": "Engine",
+ "sections.about.info.os": "OS",
+ "sections.about.info.update-channel": "Update Channel",
+ "sections.about.info.loading": "Loading browser details...",
+ "sections.about.info.loading.failed": "Could not load browser information."
}
From 503ad388828a8e28b771ebca76514080f474aadd Mon Sep 17 00:00:00 2001
From: iamEvan <47493765+iamEvanYT@users.noreply.github.com>
Date: Thu, 15 May 2025 12:35:38 +0100
Subject: [PATCH 26/27] feat: about page
---
src/renderer/src/lib/i18n.ts | 4 ++++
src/renderer/src/routes/about/page.tsx | 7 +++++--
src/shared/locales/en-US/pages.json | 4 ++++
3 files changed, 13 insertions(+), 2 deletions(-)
create mode 100644 src/shared/locales/en-US/pages.json
diff --git a/src/renderer/src/lib/i18n.ts b/src/renderer/src/lib/i18n.ts
index b107c8f8..f421706c 100644
--- a/src/renderer/src/lib/i18n.ts
+++ b/src/renderer/src/lib/i18n.ts
@@ -60,4 +60,8 @@ export function useIconsTranslations() {
return useTranslation("icons");
}
+export function usePagesTranslations() {
+ return useTranslation("pages");
+}
+
export default i18n;
diff --git a/src/renderer/src/routes/about/page.tsx b/src/renderer/src/routes/about/page.tsx
index 1feee2c1..6c4443bf 100644
--- a/src/renderer/src/routes/about/page.tsx
+++ b/src/renderer/src/routes/about/page.tsx
@@ -2,8 +2,11 @@ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/com
import { Button } from "@/components/ui/button";
import { motion } from "motion/react";
import { copyTextToClipboard } from "@/lib/utils";
+import { usePagesTranslations } from "@/lib/i18n";
function Page() {
+ const { t: tPages } = usePagesTranslations();
+
const hostnames = ["about", "new-tab", "games", "omnibox", "error", "extensions"];
return (
@@ -16,8 +19,8 @@ function Page() {
>