From b79df0b265bc8f5df3dc7a248bccb43fbd389839 Mon Sep 17 00:00:00 2001 From: Vaishakh-SM Date: Tue, 15 Oct 2024 11:02:03 +0530 Subject: [PATCH 01/10] Adding i18 key for alternate message --- frontend/src/components/browser.tsx | 2 +- frontend/src/i18n/translation.json | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/browser.tsx b/frontend/src/components/browser.tsx index 6541ff98ff9f..f22860ec8ca3 100644 --- a/frontend/src/components/browser.tsx +++ b/frontend/src/components/browser.tsx @@ -27,7 +27,7 @@ function BrowserPanel() { src={imgSrc} style={{ objectFit: "contain", width: "100%", height: "auto" }} className="rounded-xl" - alt="Browser Screenshot" + alt={t(I18nKey.BROWSER$SCREENSHOT_ALT)} /> ) : (
diff --git a/frontend/src/i18n/translation.json b/frontend/src/i18n/translation.json index c575db763759..0d75de6d82d4 100644 --- a/frontend/src/i18n/translation.json +++ b/frontend/src/i18n/translation.json @@ -1740,6 +1740,20 @@ "fr": "Aucune page chargée.", "tr": "Sayfa yüklenmedi." }, + "BROWSER$SCREENSHOT_ALT": { + "en": "Browser Screenshot", + "zh-CN": "浏览器截图", + "de": "Browser-Screenshot", + "ko-KR": "브라우저 스크린샷", + "no": "Nettleserskjermbilde", + "zh-TW": "瀏覽器截圖", + "it": "Screenshot del browser", + "pt": "Captura de tela do navegador", + "es": "Captura de pantalla del navegador", + "ar": "لقطة شاشة المتصفح", + "fr": "Capture d'écran du navigateur", + "tr": "Tarayıcı Ekran Görüntüsü" + }, "PLANNER$EMPTY_MESSAGE": { "en": "No plan created.", "zh-CN": "计划未创建", From 3265c6253519c0586c31836319de831bd92afd30 Mon Sep 17 00:00:00 2001 From: Vaishakh-SM Date: Thu, 24 Oct 2024 00:43:17 +0530 Subject: [PATCH 02/10] Adding translations for Action Button in the Agent Control Bar --- frontend/src/components/agent-control-bar.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/agent-control-bar.tsx b/frontend/src/components/agent-control-bar.tsx index a043f2a6a0a8..915347e0c8c1 100644 --- a/frontend/src/components/agent-control-bar.tsx +++ b/frontend/src/components/agent-control-bar.tsx @@ -1,12 +1,14 @@ import { Tooltip } from "@nextui-org/react"; import React from "react"; import { useSelector } from "react-redux"; +import { useTranslation } from "react-i18next"; import PauseIcon from "#/assets/pause"; import PlayIcon from "#/assets/play"; import { generateAgentStateChangeEvent } from "#/services/agent-state-service"; import { RootState } from "#/store"; -import AgentState from "#/types/agent-state"; -import { useWsClient } from "#/context/ws-client-provider"; +import AgentState from "#/types/AgentState"; +import { useSocket } from "#/context/socket"; +import { I18nKey } from "#/i18n/declaration"; const IgnoreTaskStateMap: Record = { [AgentState.PAUSED]: [ @@ -81,6 +83,8 @@ function AgentControlBar() { } }; + const { t } = useTranslation(); + return (
Date: Thu, 24 Oct 2024 00:48:21 +0530 Subject: [PATCH 03/10] Using translation for Close button in error toast. Also changing redundant label in translation to a generic CLOSE label --- frontend/src/components/error-toast.tsx | 5 ++++- frontend/src/i18n/translation.json | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/error-toast.tsx b/frontend/src/components/error-toast.tsx index 30f2d7cbe6b5..dce92776ce35 100644 --- a/frontend/src/components/error-toast.tsx +++ b/frontend/src/components/error-toast.tsx @@ -1,4 +1,6 @@ import toast, { Toast } from "react-hot-toast"; +import { useTranslation } from "react-i18next"; +import { I18nKey } from "#/i18n/declaration"; interface ErrorToastProps { id: Toast["id"]; @@ -6,6 +8,7 @@ interface ErrorToastProps { } export function ErrorToast({ id, error }: ErrorToastProps) { + const { t } = useTranslation(); return (
{error} @@ -14,7 +17,7 @@ export function ErrorToast({ id, error }: ErrorToastProps) { onClick={() => toast.dismiss(id)} className="bg-neutral-500 px-1 rounded h-full" > - Close + {t(I18nKey.CLOSE)}
); diff --git a/frontend/src/i18n/translation.json b/frontend/src/i18n/translation.json index 0d75de6d82d4..e316faa40dd2 100644 --- a/frontend/src/i18n/translation.json +++ b/frontend/src/i18n/translation.json @@ -385,7 +385,7 @@ "fr": "Sélectionnez un analyseur de sécurité (facultatif)", "tr": "Bir güvenlik analizörü seçin (isteğe bağlı)" }, - "CONFIGURATION$MODAL_CLOSE_BUTTON_LABEL": { + "CLOSE": { "en": "Close", "zh-CN": "关闭", "de": "Schließen", @@ -1874,6 +1874,12 @@ "fr": "En attente que le client soit prêt...", "tr": "İstemcinin hazır olması bekleniyor..." }, + "ACTION_BUTTON$RESUME": { + "en": "Resume the agent task" + }, + "ACTION_BUTTON$PAUSE": { + "en": "Pause the current task" + }, "ACCOUNT_SETTINGS_MODAL$DISCONNECT":{ "en": "Disconnect", "es": "Desconectar" From 981b220ebca0d6b7ebddc704d9f8f1feda2b2f60 Mon Sep 17 00:00:00 2001 From: Vaishakh-SM Date: Sun, 27 Oct 2024 12:29:56 +0530 Subject: [PATCH 04/10] Using translations for the user-avatar component --- frontend/src/components/user-avatar.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/user-avatar.tsx b/frontend/src/components/user-avatar.tsx index 17433cde463e..c4ca7ebc84ee 100644 --- a/frontend/src/components/user-avatar.tsx +++ b/frontend/src/components/user-avatar.tsx @@ -1,6 +1,8 @@ -import { LoadingSpinner } from "./modals/loading-project"; -import DefaultUserAvatar from "#/icons/default-user.svg?react"; +import { useTranslation } from "react-i18next"; +import { LoadingSpinner } from "./modals/LoadingProject"; +import DefaultUserAvatar from "#/assets/default-user.svg?react"; import { cn } from "#/utils/utils"; +import { I18nKey } from "#/i18n/declaration"; interface UserAvatarProps { onClick: () => void; @@ -9,6 +11,7 @@ interface UserAvatarProps { } export function UserAvatar({ onClick, avatarUrl, isLoading }: UserAvatarProps) { + const { t } = useTranslation(); return ( From 4787dc7ba140e58569a19a94547beb013c8eef0b Mon Sep 17 00:00:00 2001 From: Vaishakh-SM Date: Sun, 27 Oct 2024 13:09:09 +0530 Subject: [PATCH 10/10] Addings I18 keys for Project Menu Components in translations file --- frontend/src/i18n/translation.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/frontend/src/i18n/translation.json b/frontend/src/i18n/translation.json index 3bc6756c48e3..581b3d246ff6 100644 --- a/frontend/src/i18n/translation.json +++ b/frontend/src/i18n/translation.json @@ -1901,6 +1901,30 @@ "FILE_EXPLORER$CLOSE_WORKSPACE": { "en": "Close workspace" }, + "PROJECT_MENU$NEW_PROJECT": { + "en": "New Project" + }, + "PROJECT_MENU$CONNECT_GITHUB": { + "en": "Connect to GitHub" + }, + "PROJECT_MENU$PUSH_GITHUB": { + "en": "Push to GitHub" + }, + "PROJECT_MENU$CONNECTED": { + "en": "Connected" + }, + "PROJECT_MENU$TIME_AGO": { + "en": "ago" + }, + "PROJECT_MENU$DOWNLOAD_AS_ZIP": { + "en": "Download as .zip" + }, + "PROJECT_MENU$OPEN": { + "en": "Open project menu" + }, + "PROJECT_MENU$RAW_EVENT_CONTENT": { + "en": "\nLet's push the code to GitHub.\nIf we're currently on the openhands-workspace branch, please create a new branch with a descriptive name.\nCommit any changes and push them to the remote repository.\nFinally, open up a pull request using the GitHub API and the token in the GITHUB_TOKEN environment variable, then show me the URL of the pull request." + }, "ACCOUNT_SETTINGS_MODAL$DISCONNECT":{ "en": "Disconnect", "es": "Desconectar"