feat: rename Account tab to Cloud tab (#7558)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
This commit is contained in:
roomote[bot] 2025-08-30 18:57:00 -04:00 committed by Shawn
parent 68b68a22cd
commit ec45503a98
49 changed files with 114 additions and 109 deletions

View file

@ -35,7 +35,7 @@ export const commandIds = [
"historyButtonClicked",
"marketplaceButtonClicked",
"popoutButtonClicked",
"accountButtonClicked",
"cloudButtonClicked",
"settingsButtonClicked",
"openInNewTab",

View file

@ -74,16 +74,16 @@ export const registerCommands = (options: RegisterCommandOptions) => {
const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOptions): Record<CommandId, any> => ({
activationCompleted: () => {},
accountButtonClicked: () => {
cloudButtonClicked: () => {
const visibleProvider = getVisibleProviderOrLog(outputChannel)
if (!visibleProvider) {
return
}
TelemetryService.instance.captureTitleButtonClicked("account")
TelemetryService.instance.captureTitleButtonClicked("cloud")
visibleProvider.postMessageToWebview({ type: "action", action: "accountButtonClicked" })
visibleProvider.postMessageToWebview({ type: "action", action: "cloudButtonClicked" })
},
plusButtonClicked: async () => {
const visibleProvider = getVisibleProviderOrLog(outputChannel)

View file

@ -1506,7 +1506,7 @@ public async clearTask(): Promise<void> {
// Check MDM compliance and send user to account tab if not compliant
// Only redirect if there's an actual MDM policy requiring authentication
if (this.mdmService?.requiresCloudAuth() && !this.checkMdmCompliance()) {
await this.postMessageToWebview({ type: "action", action: "accountButtonClicked" })
await this.postMessageToWebview({ type: "action", action: "cloudButtonClicked" })
}
}

View file

@ -2034,9 +2034,9 @@ export const webviewMessageHandler = async (
await provider.postStateToWebview()
break
}
case "accountButtonClicked": {
// Navigate to the account tab.
provider.postMessageToWebview({ type: "action", action: "accountButtonClicked" })
case "cloudButtonClicked": {
// Navigate to the cloud tab.
provider.postMessageToWebview({ type: "action", action: "cloudButtonClicked" })
break
}
case "rooCloudSignIn": {

View file

@ -101,9 +101,9 @@
"icon": "$(link-external)"
},
{
"command": "roo-cline.accountButtonClicked",
"title": "%command.account.title%",
"icon": "$(account)"
"command": "roo-cline.cloudButtonClicked",
"title": "%command.cloud.title%",
"icon": "$(cloud)"
},
{
"command": "roo-cline.settingsButtonClicked",
@ -234,7 +234,7 @@
"when": "view == roo-cline.SidebarProvider"
},
{
"command": "roo-cline.accountButtonClicked",
"command": "roo-cline.cloudButtonClicked",
"group": "navigation@4",
"when": "view == roo-cline.SidebarProvider"
},
@ -276,7 +276,7 @@
"when": "activeWebviewPanelId == roo-cline.TabPanelProvider"
},
{
"command": "roo-cline.accountButtonClicked",
"command": "roo-cline.cloudButtonClicked",
"group": "navigation@4",
"when": "activeWebviewPanelId == roo-cline.TabPanelProvider"
},

View file

@ -23,7 +23,7 @@
"command.history.title": "Historial",
"command.marketplace.title": "Mercat",
"command.openInEditor.title": "Obrir a l'Editor",
"command.account.title": "Compte",
"command.cloud.title": "Cloud",
"command.settings.title": "Configuració",
"command.documentation.title": "Documentació",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "Verlauf",
"command.marketplace.title": "Marktplatz",
"command.openInEditor.title": "Im Editor Öffnen",
"command.account.title": "Konto",
"command.cloud.title": "Cloud",
"command.settings.title": "Einstellungen",
"command.documentation.title": "Dokumentation",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "Historial",
"command.marketplace.title": "Mercado",
"command.openInEditor.title": "Abrir en Editor",
"command.account.title": "Cuenta",
"command.cloud.title": "Cloud",
"command.settings.title": "Configuración",
"command.documentation.title": "Documentación",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "Historique",
"command.marketplace.title": "Marché",
"command.openInEditor.title": "Ouvrir dans l'Éditeur",
"command.account.title": "Compte",
"command.cloud.title": "Cloud",
"command.settings.title": "Paramètres",
"command.documentation.title": "Documentation",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "इतिहास",
"command.marketplace.title": "मार्केटप्लेस",
"command.openInEditor.title": "एडिटर में खोलें",
"command.account.title": "खाता",
"command.cloud.title": "Cloud",
"command.settings.title": "सेटिंग्स",
"command.documentation.title": "दस्तावेज़ीकरण",
"configuration.title": "Roo Code",

View file

@ -11,7 +11,7 @@
"command.history.title": "Riwayat",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Buka di Editor",
"command.account.title": "Akun",
"command.cloud.title": "Cloud",
"command.settings.title": "Pengaturan",
"command.documentation.title": "Dokumentasi",
"command.openInNewTab.title": "Buka di Tab Baru",

View file

@ -23,7 +23,7 @@
"command.history.title": "Cronologia",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Apri nell'Editor",
"command.account.title": "Account",
"command.cloud.title": "Cloud",
"command.settings.title": "Impostazioni",
"command.documentation.title": "Documentazione",
"configuration.title": "Roo Code",

View file

@ -11,7 +11,7 @@
"command.history.title": "履歴",
"command.marketplace.title": "マーケットプレイス",
"command.openInEditor.title": "エディタで開く",
"command.account.title": "アカウント",
"command.cloud.title": "Cloud",
"command.settings.title": "設定",
"command.documentation.title": "ドキュメント",
"command.openInNewTab.title": "新しいタブで開く",

View file

@ -11,7 +11,7 @@
"command.history.title": "History",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Open in Editor",
"command.account.title": "Account",
"command.cloud.title": "Cloud",
"command.settings.title": "Settings",
"command.documentation.title": "Documentation",
"command.openInNewTab.title": "Open In New Tab",

View file

@ -23,7 +23,7 @@
"command.history.title": "기록",
"command.marketplace.title": "마켓플레이스",
"command.openInEditor.title": "에디터에서 열기",
"command.account.title": "계정",
"command.cloud.title": "Cloud",
"command.settings.title": "설정",
"command.documentation.title": "문서",
"configuration.title": "Roo Code",

View file

@ -11,7 +11,7 @@
"command.history.title": "Geschiedenis",
"command.marketplace.title": "Marktplaats",
"command.openInEditor.title": "Openen in Editor",
"command.account.title": "Account",
"command.cloud.title": "Cloud",
"command.settings.title": "Instellingen",
"command.documentation.title": "Documentatie",
"command.openInNewTab.title": "Openen in Nieuw Tabblad",

View file

@ -23,7 +23,7 @@
"command.history.title": "Historia",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Otwórz w Edytorze",
"command.account.title": "Konto",
"command.cloud.title": "Cloud",
"command.settings.title": "Ustawienia",
"command.documentation.title": "Dokumentacja",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "Histórico",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Abrir no Editor",
"command.account.title": "Conta",
"command.cloud.title": "Cloud",
"command.settings.title": "Configurações",
"command.documentation.title": "Documentação",
"configuration.title": "Roo Code",

View file

@ -11,7 +11,7 @@
"command.history.title": "История",
"command.marketplace.title": "Маркетплейс",
"command.openInEditor.title": "Открыть в редакторе",
"command.account.title": "Аккаунт",
"command.cloud.title": "Cloud",
"command.settings.title": "Настройки",
"command.documentation.title": "Документация",
"command.openInNewTab.title": "Открыть в новой вкладке",

View file

@ -23,7 +23,7 @@
"command.history.title": "Geçmiş",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Düzenleyicide Aç",
"command.account.title": "Hesap",
"command.cloud.title": "Cloud",
"command.settings.title": "Ayarlar",
"command.documentation.title": "Dokümantasyon",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "Lịch Sử",
"command.marketplace.title": "Marketplace",
"command.openInEditor.title": "Mở trong Trình Soạn Thảo",
"command.account.title": "Tài khoản",
"command.cloud.title": "Cloud",
"command.settings.title": "Cài Đặt",
"command.documentation.title": "Tài Liệu",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "历史记录",
"command.marketplace.title": "应用市场",
"command.openInEditor.title": "在编辑器中打开",
"command.account.title": "账户",
"command.cloud.title": "Cloud",
"command.settings.title": "设置",
"command.documentation.title": "文档",
"configuration.title": "Roo Code",

View file

@ -23,7 +23,7 @@
"command.history.title": "歷史記錄",
"command.marketplace.title": "應用市場",
"command.openInEditor.title": "在編輯器中開啟",
"command.account.title": "帳戶",
"command.cloud.title": "Cloud",
"command.settings.title": "設定",
"command.documentation.title": "文件",
"configuration.title": "Roo Code",

View file

@ -140,7 +140,7 @@ export interface ExtensionMessage {
| "historyButtonClicked"
| "promptsButtonClicked"
| "marketplaceButtonClicked"
| "accountButtonClicked"
| "cloudButtonClicked"
| "didBecomeVisible"
| "focusInput"
| "switchTab"

View file

@ -174,7 +174,7 @@ export interface WebviewMessage {
| "toggleApiConfigPin"
| "setHistoryPreviewCollapsed"
| "hasOpenedModeSelector"
| "accountButtonClicked"
| "cloudButtonClicked"
| "rooCloudSignIn"
| "rooCloudSignOut"
| "condenseTaskContextRequest"
@ -223,7 +223,7 @@ export interface WebviewMessage {
| "openRouterImageGenerationSelectedModel"
text?: string
editedMessageContent?: string
tab?: "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "account"
tab?: "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "cloud"
disabled?: boolean
context?: string
dataUri?: string

View file

@ -21,12 +21,12 @@ import ModesView from "./components/modes/ModesView"
import { HumanRelayDialog } from "./components/human-relay/HumanRelayDialog"
import { DeleteMessageDialog, EditMessageDialog } from "./components/chat/MessageModificationConfirmationDialog"
import ErrorBoundary from "./components/ErrorBoundary"
import { AccountView } from "./components/account/AccountView"
import { CloudView } from "./components/cloud/CloudView"
import { useAddNonInteractiveClickListener } from "./components/ui/hooks/useNonInteractiveClick"
import { TooltipProvider } from "./components/ui/tooltip"
import { STANDARD_TOOLTIP_DELAY } from "./components/ui/standard-tooltip"
type Tab = "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "account"
type Tab = "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "cloud"
interface HumanRelayDialogState {
isOpen: boolean
@ -58,7 +58,7 @@ const tabsByMessageAction: Partial<Record<NonNullable<ExtensionMessage["action"]
mcpButtonClicked: "mcp",
historyButtonClicked: "history",
marketplaceButtonClicked: "marketplace",
accountButtonClicked: "account",
cloudButtonClicked: "cloud",
}
const App = () => {
@ -107,7 +107,7 @@ const App = () => {
(newTab: Tab) => {
// Only check MDM compliance if mdmCompliant is explicitly false (meaning there's an MDM policy and user is non-compliant)
// If mdmCompliant is undefined or true, allow tab switching
if (mdmCompliant === false && newTab !== "account") {
if (mdmCompliant === false && newTab !== "cloud") {
// Notify the user that authentication is required by their organization
vscode.postMessage({ type: "showMdmAuthRequiredNotification" })
return
@ -249,8 +249,8 @@ const App = () => {
targetTab={currentMarketplaceTab as "mcp" | "mode" | undefined}
/>
)}
{tab === "account" && (
<AccountView
{tab === "cloud" && (
<CloudView
userInfo={cloudUserInfo}
isAuthenticated={cloudIsAuthenticated}
cloudApiUrl={cloudApiUrl}

View file

@ -90,11 +90,11 @@ vi.mock("@src/components/marketplace/MarketplaceView", () => ({
},
}))
vi.mock("@src/components/account/AccountView", () => ({
AccountView: function AccountView({ onDone }: { onDone: () => void }) {
vi.mock("@src/components/cloud/CloudView", () => ({
CloudView: function CloudView({ onDone }: { onDone: () => void }) {
return (
<div data-testid="account-view" onClick={onDone}>
Account View
<div data-testid="cloud-view" onClick={onDone}>
Cloud View
</div>
)
},

View file

@ -245,34 +245,34 @@ export const ShareButton = ({ item, disabled = false, showLabel = false }: Share
<DialogContent className="max-w-sm">
<DialogHeader className="text-center">
<DialogTitle className="text-lg font-medium text-vscode-foreground">
{t("account:cloudBenefitsTitle")}
{t("cloud:cloudBenefitsTitle")}
</DialogTitle>
</DialogHeader>
<div className="flex flex-col space-y-6">
<div>
<p className="text-md text-vscode-descriptionForeground mb-4">
{t("account:cloudBenefitsSubtitle")}
{t("cloud:cloudBenefitsSubtitle")}
</p>
<ul className="text-sm text-vscode-descriptionForeground space-y-2">
<li className="flex items-start">
<span className="mr-2 text-vscode-foreground"></span>
{t("account:cloudBenefitSharing")}
{t("cloud:cloudBenefitSharing")}
</li>
<li className="flex items-start">
<span className="mr-2 text-vscode-foreground"></span>
{t("account:cloudBenefitHistory")}
{t("cloud:cloudBenefitHistory")}
</li>
<li className="flex items-start">
<span className="mr-2 text-vscode-foreground"></span>
{t("account:cloudBenefitMetrics")}
{t("cloud:cloudBenefitMetrics")}
</li>
</ul>
</div>
<div className="flex flex-col gap-4">
<Button onClick={handleConnectToCloud} className="w-full">
{t("account:connect")}
{t("cloud:connect")}
</Button>
</div>
</div>

View file

@ -42,12 +42,12 @@ vi.mock("react-i18next", () => ({
"chat:task.connectToCloud": "Connect to Cloud",
"chat:task.connectToCloudDescription": "Sign in to Roo Code Cloud to share tasks",
"chat:task.sharingDisabledByOrganization": "Sharing disabled by organization",
"account:cloudBenefitsTitle": "Connect to Roo Code Cloud",
"account:cloudBenefitsSubtitle": "Sign in to Roo Code Cloud to share tasks",
"account:cloudBenefitHistory": "Access your task history from anywhere",
"account:cloudBenefitSharing": "Share tasks with your team",
"account:cloudBenefitMetrics": "Track usage and costs",
"account:connect": "Connect",
"cloud:cloudBenefitsTitle": "Connect to Roo Code Cloud",
"cloud:cloudBenefitsSubtitle": "Sign in to Roo Code Cloud to share tasks",
"cloud:cloudBenefitHistory": "Access your task history from anywhere",
"cloud:cloudBenefitSharing": "Share tasks with your team",
"cloud:cloudBenefitMetrics": "Track usage and costs",
"cloud:connect": "Connect",
}
return translations[key] || key
},
@ -260,7 +260,7 @@ describe("TaskActions", () => {
// Verify popover is not open initially
expect(screen.queryByText("Share with Organization")).not.toBeInTheDocument()
// Simulate user becoming authenticated (e.g., from AccountView)
// Simulate user becoming authenticated (e.g., from CloudView)
mockUseExtensionState.mockReturnValue({
sharingEnabled: true,
cloudIsAuthenticated: true,

View file

@ -11,14 +11,14 @@ import { ToggleSwitch } from "@/components/ui/toggle-switch"
import { History, PiggyBank, SquareArrowOutUpRightIcon } from "lucide-react"
type AccountViewProps = {
type CloudViewProps = {
userInfo: CloudUserInfo | null
isAuthenticated: boolean
cloudApiUrl?: string
onDone: () => void
}
export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }: AccountViewProps) => {
export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }: CloudViewProps) => {
const { t } = useAppTranslation()
const { remoteControlEnabled, setRemoteControlEnabled } = useExtensionState()
const wasAuthenticatedRef = useRef(false)
@ -31,25 +31,30 @@ export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }:
wasAuthenticatedRef.current = true
} else if (wasAuthenticatedRef.current && !isAuthenticated) {
// User just logged out successfully
// NOTE: Telemetry events use ACCOUNT_* naming for continuity with existing analytics
// and to maintain historical data consistency, even though the UI now uses "Cloud" terminology
telemetryClient.capture(TelemetryEventName.ACCOUNT_LOGOUT_SUCCESS)
wasAuthenticatedRef.current = false
}
}, [isAuthenticated])
const handleConnectClick = () => {
// Send telemetry for account connect action
// Send telemetry for cloud connect action
// NOTE: Using ACCOUNT_* telemetry events for backward compatibility with analytics
telemetryClient.capture(TelemetryEventName.ACCOUNT_CONNECT_CLICKED)
vscode.postMessage({ type: "rooCloudSignIn" })
}
const handleLogoutClick = () => {
// Send telemetry for account logout action
// Send telemetry for cloud logout action
// NOTE: Using ACCOUNT_* telemetry events for backward compatibility with analytics
telemetryClient.capture(TelemetryEventName.ACCOUNT_LOGOUT_CLICKED)
vscode.postMessage({ type: "rooCloudSignOut" })
}
const handleVisitCloudWebsite = () => {
// Send telemetry for cloud website visit
// NOTE: Using ACCOUNT_* telemetry events for backward compatibility with analytics
telemetryClient.capture(TelemetryEventName.ACCOUNT_CONNECT_CLICKED)
const cloudUrl = cloudApiUrl || "https://app.roocode.com"
vscode.postMessage({ type: "openExternal", url: cloudUrl })
@ -64,7 +69,7 @@ export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }:
return (
<div className="flex flex-col h-full">
<div className="flex justify-between items-center mb-6">
<h1 className="text-xl font-medium text-vscode-foreground">{t("account:title")}</h1>
<h1 className="text-xl font-medium text-vscode-foreground">{t("cloud:title")}</h1>
<VSCodeButton appearance="secondary" onClick={onDone}>
{t("settings:common.done")}
</VSCodeButton>
@ -77,7 +82,7 @@ export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }:
{userInfo?.picture ? (
<img
src={userInfo.picture}
alt={t("account:profilePicture")}
alt={t("cloud:profilePicture")}
className="w-full h-full object-cover"
/>
) : (
@ -114,13 +119,13 @@ export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }:
checked={remoteControlEnabled}
onChange={handleRemoteControlToggle}
size="medium"
aria-label={t("account:remoteControl")}
aria-label={t("cloud:remoteControl")}
data-testid="remote-control-toggle"
/>
<span className="font-medium text-vscode-foreground">{t("account:remoteControl")}</span>
<span className="font-medium text-vscode-foreground">{t("cloud:remoteControl")}</span>
</div>
<div className="text-vscode-descriptionForeground text-sm mt-1 mb-4 ml-8">
{t("account:remoteControlDescription")}
{t("cloud:remoteControlDescription")}
</div>
<hr className="border-vscode-widget-border mb-4" />
</div>
@ -128,10 +133,10 @@ export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }:
<div className="flex flex-col gap-2 mt-4">
<VSCodeButton appearance="secondary" onClick={handleVisitCloudWebsite} className="w-full">
{t("account:visitCloudWebsite")}
{t("cloud:visitCloudWebsite")}
</VSCodeButton>
<VSCodeButton appearance="secondary" onClick={handleLogoutClick} className="w-full">
{t("account:logOut")}
{t("cloud:logOut")}
</VSCodeButton>
</div>
</>
@ -156,27 +161,27 @@ export const AccountView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }:
<div className="flex flex-col mb-6 text-center">
<h2 className="text-xl font-bold text-vscode-foreground mb-2">
{t("account:cloudBenefitsTitle")}
{t("cloud:cloudBenefitsTitle")}
</h2>
<ul className="text-vscode-descriptionForeground space-y-3 mx-auto px-8">
<li className="flex items-start text-left gap-4">
<SquareArrowOutUpRightIcon size="16" className="shrink-0" />
{t("account:cloudBenefitSharing")}
{t("cloud:cloudBenefitSharing")}
</li>
<li className="flex items-start text-left gap-4">
<History size="16" className="shrink-0" />
{t("account:cloudBenefitHistory")}
{t("cloud:cloudBenefitHistory")}
</li>
<li className="flex items-start text-left gap-4">
<PiggyBank size="16" className="shrink-0" />
{t("account:cloudBenefitMetrics")}
{t("cloud:cloudBenefitMetrics")}
</li>
</ul>
</div>
<div className="flex flex-col items-center gap-4">
<VSCodeButton appearance="primary" onClick={handleConnectClick} className="w-1/2">
{t("account:connect")}
{t("cloud:connect")}
</VSCodeButton>
</div>
</>

View file

@ -1,26 +1,26 @@
import { render, screen } from "@/utils/test-utils"
import { AccountView } from "../AccountView"
import { CloudView } from "../CloudView"
// Mock the translation context
vi.mock("@src/i18n/TranslationContext", () => ({
useAppTranslation: () => ({
t: (key: string) => {
const translations: Record<string, string> = {
"account:title": "Account",
"cloud:title": "Cloud",
"settings:common.done": "Done",
"account:signIn": "Connect to Roo Code Cloud",
"account:cloudBenefitsTitle": "Connect to Roo Code Cloud",
"account:cloudBenefitSharing": "Share tasks with others",
"account:cloudBenefitHistory": "Access your task history",
"account:cloudBenefitMetrics": "Get a holistic view of your token consumption",
"account:logOut": "Log out",
"account:connect": "Connect Now",
"account:visitCloudWebsite": "Visit Roo Code Cloud",
"account:remoteControl": "Roomote Control",
"account:remoteControlDescription":
"cloud:signIn": "Connect to Roo Code Cloud",
"cloud:cloudBenefitsTitle": "Connect to Roo Code Cloud",
"cloud:cloudBenefitSharing": "Share tasks with others",
"cloud:cloudBenefitHistory": "Access your task history",
"cloud:cloudBenefitMetrics": "Get a holistic view of your token consumption",
"cloud:logOut": "Log out",
"cloud:connect": "Connect Now",
"cloud:visitCloudWebsite": "Visit Roo Code Cloud",
"cloud:remoteControl": "Roomote Control",
"cloud:remoteControlDescription":
"Enable following and interacting with tasks in this workspace with Roo Code Cloud",
"account:profilePicture": "Profile picture",
"cloud:profilePicture": "Profile picture",
}
return translations[key] || key
},
@ -55,10 +55,10 @@ Object.defineProperty(window, "IMAGES_BASE_URI", {
writable: true,
})
describe("AccountView", () => {
describe("CloudView", () => {
it("should display benefits when user is not authenticated", () => {
render(
<AccountView
<CloudView
userInfo={null}
isAuthenticated={false}
cloudApiUrl="https://app.roocode.com"
@ -83,7 +83,7 @@ describe("AccountView", () => {
}
render(
<AccountView
<CloudView
userInfo={mockUserInfo}
isAuthenticated={true}
cloudApiUrl="https://app.roocode.com"
@ -112,7 +112,7 @@ describe("AccountView", () => {
}
render(
<AccountView
<CloudView
userInfo={mockUserInfo}
isAuthenticated={true}
cloudApiUrl="https://app.roocode.com"
@ -136,7 +136,7 @@ describe("AccountView", () => {
}
render(
<AccountView
<CloudView
userInfo={mockUserInfo}
isAuthenticated={true}
cloudApiUrl="https://app.roocode.com"

View file

@ -1,5 +1,5 @@
{
"title": "Compte",
"title": "Cloud",
"profilePicture": "Imatge de perfil",
"logOut": "Tancar sessió",
"testApiAuthentication": "Provar autenticació d'API",

View file

@ -1,5 +1,5 @@
{
"title": "Konto",
"title": "Cloud",
"profilePicture": "Profilbild",
"logOut": "Abmelden",
"testApiAuthentication": "API-Authentifizierung testen",

View file

@ -1,5 +1,5 @@
{
"title": "Account",
"title": "Cloud",
"profilePicture": "Profile picture",
"logOut": "Log out",
"testApiAuthentication": "Test API Authentication",

View file

@ -1,5 +1,5 @@
{
"title": "Cuenta",
"title": "Cloud",
"profilePicture": "Foto de perfil",
"logOut": "Cerrar sesión",
"testApiAuthentication": "Probar autenticación de API",

View file

@ -1,5 +1,5 @@
{
"title": "Compte",
"title": "Cloud",
"profilePicture": "Photo de profil",
"logOut": "Déconnexion",
"testApiAuthentication": "Tester l'authentification API",

View file

@ -1,5 +1,5 @@
{
"title": "खाता",
"title": "Cloud",
"profilePicture": "प्रोफाइल चित्र",
"logOut": "लॉग आउट",
"testApiAuthentication": "API प्रमाणीकरण का परीक्षण करें",

View file

@ -1,5 +1,5 @@
{
"title": "Akun",
"title": "Cloud",
"profilePicture": "Foto profil",
"logOut": "Keluar",
"testApiAuthentication": "Uji Autentikasi API",

View file

@ -1,5 +1,5 @@
{
"title": "Account",
"title": "Cloud",
"profilePicture": "Immagine del profilo",
"logOut": "Disconnetti",
"testApiAuthentication": "Verifica autenticazione API",

View file

@ -1,5 +1,5 @@
{
"title": "アカウント",
"title": "Cloud",
"profilePicture": "プロフィール画像",
"logOut": "ログアウト",
"testApiAuthentication": "API認証をテスト",

View file

@ -1,5 +1,5 @@
{
"title": "계정",
"title": "Cloud",
"profilePicture": "프로필 사진",
"logOut": "로그아웃",
"testApiAuthentication": "API 인증 테스트",

View file

@ -1,5 +1,5 @@
{
"title": "Account",
"title": "Cloud",
"profilePicture": "Profielfoto",
"logOut": "Uitloggen",
"testApiAuthentication": "API-authenticatie testen",

View file

@ -1,5 +1,5 @@
{
"title": "Konto",
"title": "Cloud",
"profilePicture": "Zdjęcie profilowe",
"logOut": "Wyloguj",
"testApiAuthentication": "Testuj uwierzytelnianie API",

View file

@ -1,5 +1,5 @@
{
"title": "Conta",
"title": "Cloud",
"profilePicture": "Foto de perfil",
"logOut": "Sair",
"testApiAuthentication": "Testar Autenticação de API",

View file

@ -1,5 +1,5 @@
{
"title": "Учетная запись",
"title": "Cloud",
"profilePicture": "Фото профиля",
"logOut": "Выход",
"testApiAuthentication": "Проверить аутентификацию API",

View file

@ -1,5 +1,5 @@
{
"title": "Hesap",
"title": "Cloud",
"profilePicture": "Profil resmi",
"logOut": ıkış yap",
"testApiAuthentication": "API Kimlik Doğrulamayı Test Et",

View file

@ -1,5 +1,5 @@
{
"title": "Tài khoản",
"title": "Cloud",
"profilePicture": "Ảnh hồ sơ",
"logOut": "Đăng xuất",
"testApiAuthentication": "Kiểm tra xác thực API",

View file

@ -1,5 +1,5 @@
{
"title": "账户",
"title": "Cloud",
"profilePicture": "头像",
"logOut": "退出登录",
"testApiAuthentication": "测试 API 认证",

View file

@ -1,5 +1,5 @@
{
"title": "帳號",
"title": "Cloud",
"profilePicture": "個人圖片",
"logOut": "登出",
"testApiAuthentication": "測試 API 認證",