mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-29 22:55:24 +00:00
feat: convert ssh tunnels into a plugin
This commit is contained in:
1 parent
c85c1fdb86
commit
1682861853
220 files changed
+36928
-11374
No files matched your search
+1
-15
@@ -109,11 +109,6 @@ const CredentialsPanel = lazy(() =>
|
||||
default: m.CredentialsPanel,
|
||||
})),
|
||||
);
|
||||
const PortForwardingPanel = lazy(() =>
|
||||
import("@/sidebar/PortForwardingPanel").then((m) => ({
|
||||
default: m.PortForwardingPanel,
|
||||
})),
|
||||
);
|
||||
const TermixIdPanel = lazy(() =>
|
||||
import("@/sidebar/TermixIdPanel").then((m) => ({ default: m.TermixIdPanel })),
|
||||
);
|
||||
@@ -1885,7 +1880,6 @@ export function AppShell({
|
||||
const id = type;
|
||||
const singletonLabels: Partial<Record<TabType, string>> = {
|
||||
"host-manager": t("nav.hostManager"),
|
||||
tunnel: t("nav.tunnels"),
|
||||
sftp: t("nav.sftp"),
|
||||
tmux_monitor: t("nav.tmuxMonitor"), // --- tmux-monitor ---
|
||||
homepage: t("nav.homepage"),
|
||||
@@ -2501,12 +2495,6 @@ export function AppShell({
|
||||
</>
|
||||
)}
|
||||
|
||||
{railView === "port-forwarding" && (
|
||||
<div className="flex flex-col flex-1 min-h-0">
|
||||
<PortForwardingPanel />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{railView === "termix-id" && (
|
||||
<div className="flex flex-col flex-1 min-h-0">
|
||||
<TermixIdPanel />
|
||||
@@ -2623,9 +2611,7 @@ export function AppShell({
|
||||
const host = record.hostId
|
||||
? allHosts.find((h) => h.id === String(record.hostId))
|
||||
: undefined;
|
||||
const hostlessTypes: TabType[] = ["tunnel"];
|
||||
if (!host && !hostlessTypes.includes(record.tabType as TabType))
|
||||
return;
|
||||
if (!host && !getTabType(record.tabType)?.hostless) return;
|
||||
setBackgroundTabRecords((prev) =>
|
||||
prev.filter((r) => r.id !== record.id),
|
||||
);
|
||||
|
||||
@@ -1,255 +0,0 @@
|
||||
import axios from "axios";
|
||||
import {
|
||||
authApi,
|
||||
handleApiError,
|
||||
tunnelApi,
|
||||
getRemoteTunnelApi,
|
||||
isElectron,
|
||||
} from "@/main-axios";
|
||||
import type {
|
||||
C2STunnelPreset,
|
||||
TunnelConfig,
|
||||
TunnelConnection,
|
||||
TunnelStatus,
|
||||
} from "@/types/index";
|
||||
import { streamServerSentEvents } from "./sse-stream";
|
||||
import { runAdaptivePolling } from "@/lib/adaptive-polling";
|
||||
|
||||
// TUNNEL MANAGEMENT
|
||||
// ============================================================================
|
||||
//
|
||||
// Tunnel status is a process-local, in-memory view (no DB lookup) so it's
|
||||
// safe to read from both the embedded backend and a connected remote server
|
||||
// and merge the results. connectTunnel/disconnectTunnel/cancelTunnel are
|
||||
// NOT origin-routed: they resolve the target host by numeric database id
|
||||
// against whichever backend receives the request, and a synced host has a
|
||||
// different numeric id in each database (only its syncId matches across
|
||||
// them) -- routing those calls to a remote backend would need a
|
||||
// local-id-to-remote-id resolution step that doesn't exist yet. They always
|
||||
// target the embedded local backend for now.
|
||||
|
||||
async function isRemoteSyncConnected(): Promise<boolean> {
|
||||
if (!isElectron()) return false;
|
||||
try {
|
||||
const config = (await window.electronAPI?.invoke?.(
|
||||
"get-remote-sync-config",
|
||||
)) as { serverUrl?: string } | null;
|
||||
return !!config?.serverUrl;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getTunnelStatuses(): Promise<
|
||||
Record<string, TunnelStatus>
|
||||
> {
|
||||
try {
|
||||
const [localResult, remoteConnected] = await Promise.all([
|
||||
tunnelApi.get("/tunnel/status"),
|
||||
isRemoteSyncConnected(),
|
||||
]);
|
||||
const localStatuses = localResult.data || {};
|
||||
if (!remoteConnected) return localStatuses;
|
||||
|
||||
try {
|
||||
const remoteResult = await getRemoteTunnelApi().get("/tunnel/status");
|
||||
return { ...(remoteResult.data || {}), ...localStatuses };
|
||||
} catch {
|
||||
return localStatuses;
|
||||
}
|
||||
} catch (error) {
|
||||
handleApiError(error, "fetch tunnel statuses");
|
||||
}
|
||||
}
|
||||
|
||||
export function subscribeTunnelStatuses(
|
||||
onStatuses: (statuses: Record<string, TunnelStatus>) => void,
|
||||
onError?: () => void,
|
||||
): () => void {
|
||||
const baseURL = (tunnelApi.defaults.baseURL || "").replace(/\/$/, "");
|
||||
const controller = new AbortController();
|
||||
|
||||
let latestLocal: Record<string, TunnelStatus> = {};
|
||||
let latestRemote: Record<string, TunnelStatus> = {};
|
||||
let stopRemotePolling: (() => void) | null = null;
|
||||
|
||||
const emitMerged = () => {
|
||||
// Controls target the local backend, so its state wins name collisions.
|
||||
onStatuses({ ...latestRemote, ...latestLocal });
|
||||
};
|
||||
|
||||
const waitToReconnect = () =>
|
||||
new Promise<void>((resolve) => {
|
||||
const onAbort = () => {
|
||||
clearTimeout(timeout);
|
||||
resolve();
|
||||
};
|
||||
const timeout = setTimeout(() => {
|
||||
controller.signal.removeEventListener("abort", onAbort);
|
||||
resolve();
|
||||
}, 1000);
|
||||
controller.signal.addEventListener("abort", onAbort, { once: true });
|
||||
});
|
||||
|
||||
void (async () => {
|
||||
while (!controller.signal.aborted) {
|
||||
const headers = new Headers({ Accept: "text/event-stream" });
|
||||
if (isElectron()) {
|
||||
headers.set("X-Electron-App", "true");
|
||||
const jwt = localStorage.getItem("jwt");
|
||||
if (jwt) headers.set("Authorization", `Bearer ${jwt}`);
|
||||
}
|
||||
try {
|
||||
await streamServerSentEvents(
|
||||
`${baseURL}/tunnel/status/stream`,
|
||||
{ credentials: "include", headers, signal: controller.signal },
|
||||
(event) => {
|
||||
if (event.event !== "statuses") return;
|
||||
try {
|
||||
latestLocal = JSON.parse(event.data) as Record<
|
||||
string,
|
||||
TunnelStatus
|
||||
>;
|
||||
emitMerged();
|
||||
} catch {
|
||||
onError?.();
|
||||
}
|
||||
},
|
||||
);
|
||||
if (!controller.signal.aborted) onError?.();
|
||||
} catch (error) {
|
||||
const aborted =
|
||||
controller.signal.aborted ||
|
||||
(error instanceof DOMException && error.name === "AbortError");
|
||||
if (!aborted) onError?.();
|
||||
}
|
||||
if (!controller.signal.aborted) await waitToReconnect();
|
||||
}
|
||||
})();
|
||||
|
||||
// Remote tunnel status has no SSE stream exposed to the desktop app yet,
|
||||
// so poll it at a modest interval when a remote server is connected.
|
||||
isRemoteSyncConnected().then((connected) => {
|
||||
if (!connected || controller.signal.aborted) return;
|
||||
let signature = "";
|
||||
stopRemotePolling = runAdaptivePolling(
|
||||
async () => {
|
||||
const result = await getRemoteTunnelApi().get("/tunnel/status");
|
||||
const next = result.data || {};
|
||||
const nextSignature = JSON.stringify(next);
|
||||
const changed = nextSignature !== signature;
|
||||
signature = nextSignature;
|
||||
latestRemote = next;
|
||||
emitMerged();
|
||||
return changed;
|
||||
},
|
||||
{
|
||||
minIntervalMs: 5000,
|
||||
maxIntervalMs: 30000,
|
||||
stablePollsPerStep: 3,
|
||||
},
|
||||
{ enabled: () => !controller.signal.aborted },
|
||||
);
|
||||
});
|
||||
|
||||
return () => {
|
||||
controller.abort();
|
||||
stopRemotePolling?.();
|
||||
};
|
||||
}
|
||||
|
||||
export async function getTunnelStatusByName(
|
||||
tunnelName: string,
|
||||
): Promise<TunnelStatus | undefined> {
|
||||
const statuses = await getTunnelStatuses();
|
||||
return statuses[tunnelName];
|
||||
}
|
||||
|
||||
export async function connectTunnel(
|
||||
tunnelConfig: TunnelConfig,
|
||||
): Promise<Record<string, unknown>> {
|
||||
try {
|
||||
const response = await tunnelApi.post("/tunnel/connect", tunnelConfig);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "connect tunnel");
|
||||
}
|
||||
}
|
||||
|
||||
export async function disconnectTunnel(
|
||||
tunnelName: string,
|
||||
): Promise<Record<string, unknown>> {
|
||||
try {
|
||||
const response = await tunnelApi.post("/tunnel/disconnect", { tunnelName });
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "disconnect tunnel");
|
||||
}
|
||||
}
|
||||
|
||||
export async function cancelTunnel(
|
||||
tunnelName: string,
|
||||
): Promise<Record<string, unknown>> {
|
||||
try {
|
||||
const response = await tunnelApi.post("/tunnel/cancel", { tunnelName });
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "cancel tunnel");
|
||||
}
|
||||
}
|
||||
|
||||
export async function getC2STunnelPresets(): Promise<C2STunnelPreset[]> {
|
||||
try {
|
||||
const response = await authApi.get("/c2s-tunnel-presets");
|
||||
return response.data || [];
|
||||
} catch (error) {
|
||||
if (axios.isAxiosError(error) && error.response?.status === 404) {
|
||||
return [];
|
||||
}
|
||||
handleApiError(error, "fetch client tunnel presets");
|
||||
}
|
||||
}
|
||||
|
||||
export async function createC2STunnelPreset(data: {
|
||||
name: string;
|
||||
config: TunnelConnection[];
|
||||
platform?: string;
|
||||
computerName?: string;
|
||||
}): Promise<C2STunnelPreset> {
|
||||
try {
|
||||
const response = await authApi.post("/c2s-tunnel-presets", data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "create client tunnel preset");
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateC2STunnelPreset(
|
||||
id: number,
|
||||
data: Partial<{
|
||||
name: string;
|
||||
config: TunnelConnection[];
|
||||
platform: string;
|
||||
computerName: string;
|
||||
}>,
|
||||
): Promise<C2STunnelPreset> {
|
||||
try {
|
||||
const response = await authApi.put(`/c2s-tunnel-presets/${id}`, data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "update client tunnel preset");
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteC2STunnelPreset(
|
||||
id: number,
|
||||
): Promise<Record<string, unknown>> {
|
||||
try {
|
||||
const response = await authApi.delete(`/c2s-tunnel-presets/${id}`);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "delete client tunnel preset");
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
@@ -26,6 +26,7 @@ import { Kbd } from "@/components/kbd";
|
||||
import { VersionBadge } from "@/components/version-badge";
|
||||
import { DASHBOARD_CARDS } from "@/lib/theme";
|
||||
import { CONNECTION_STATES } from "@/types/index";
|
||||
import { invokeAction } from "@/shell/action-registry";
|
||||
import type { DashboardCardId, TabType, Host } from "@/types/ui-types";
|
||||
import {
|
||||
getSSHHosts,
|
||||
@@ -34,7 +35,6 @@ import {
|
||||
releaseUrlFrom,
|
||||
getDatabaseHealth,
|
||||
getRecentActivity,
|
||||
getTunnelStatuses,
|
||||
getCredentials,
|
||||
resetRecentActivity,
|
||||
getAllServerStatuses,
|
||||
@@ -289,7 +289,7 @@ function CountersBarCard({
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
onClick={() => onOpenSingletonTab("tunnel")}
|
||||
onClick={() => void invokeAction("tunnels.open")}
|
||||
className="flex items-center gap-2.5 px-4 py-2.5 hover:bg-muted transition-colors cursor-pointer text-left"
|
||||
>
|
||||
<Network className="size-3.5 text-muted-foreground shrink-0" />
|
||||
@@ -1501,11 +1501,12 @@ export function DashboardTab({
|
||||
),
|
||||
)
|
||||
.catch(() => {});
|
||||
getTunnelStatuses()
|
||||
// Undefined while the tunnels plugin is off, which reads as zero.
|
||||
invokeAction("tunnels.statuses")
|
||||
.then((statuses) => {
|
||||
const active = Object.values(statuses ?? {}).filter(
|
||||
(s) => s?.status === CONNECTION_STATES.CONNECTED,
|
||||
).length;
|
||||
const active = Object.values(
|
||||
(statuses ?? {}) as Record<string, { status?: string }>,
|
||||
).filter((s) => s?.status === CONNECTION_STATES.CONNECTED).length;
|
||||
setActiveTunnelCount(active);
|
||||
})
|
||||
.catch(() => {});
|
||||
|
||||
@@ -44,7 +44,6 @@ import "./widgets/TermixUptimeWidget";
|
||||
import "./widgets/SystemOverviewWidget";
|
||||
import "./widgets/SshTerminalWidget";
|
||||
import "./widgets/QuickConnectWidget";
|
||||
import "./widgets/TunnelWidget";
|
||||
import "./widgets/CalendarWidget";
|
||||
import "./widgets/CountdownWidget";
|
||||
import "./widgets/SearchBarWidget";
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
import type {
|
||||
TunnelWidgetConfig,
|
||||
WidgetEditFormProps,
|
||||
} from "@/types/homepage-types";
|
||||
import { SingleHostEditForm } from "./SingleHostEditForm";
|
||||
|
||||
export function TunnelWidgetEditForm({
|
||||
config,
|
||||
onChange,
|
||||
}: WidgetEditFormProps<TunnelWidgetConfig>) {
|
||||
return (
|
||||
<SingleHostEditForm
|
||||
hostId={config.hostId}
|
||||
onChange={(hostId) => onChange({ ...config, hostId })}
|
||||
filter={(h) => !!(h.enableSsh && h.enableTunnel)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -28,7 +28,6 @@ import type {
|
||||
SystemOverviewConfig,
|
||||
SshTerminalConfig,
|
||||
QuickConnectConfig,
|
||||
TunnelWidgetConfig,
|
||||
CalendarConfig,
|
||||
CountdownConfig,
|
||||
SearchBarConfig,
|
||||
@@ -57,7 +56,6 @@ import { TermixUptimeEditForm } from "./TermixUptimeEditForm";
|
||||
import { SystemOverviewEditForm } from "./SystemOverviewEditForm";
|
||||
import { SshTerminalEditForm } from "./SshTerminalEditForm";
|
||||
import { QuickConnectEditForm } from "./QuickConnectEditForm";
|
||||
import { TunnelWidgetEditForm } from "./TunnelWidgetEditForm";
|
||||
import { CalendarEditForm } from "./CalendarEditForm";
|
||||
import { CountdownEditForm } from "./CountdownEditForm";
|
||||
import { SearchBarEditForm } from "./SearchBarEditForm";
|
||||
@@ -225,13 +223,6 @@ export function WidgetEditDialog({
|
||||
onChange={(c) => setConfig(c as unknown as Record<string, unknown>)}
|
||||
/>
|
||||
);
|
||||
case "tunnel_widget":
|
||||
return (
|
||||
<TunnelWidgetEditForm
|
||||
config={config as unknown as TunnelWidgetConfig}
|
||||
onChange={(c) => setConfig(c as unknown as Record<string, unknown>)}
|
||||
/>
|
||||
);
|
||||
case "calendar":
|
||||
return (
|
||||
<CalendarEditForm
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { ComponentType } from "react";
|
||||
import { Network } from "lucide-react";
|
||||
import type { SSHHostWithStatus } from "@/main-axios";
|
||||
import type { Host } from "@/types/ui-types";
|
||||
import { sshHostToHost } from "@/sidebar/HostManagerData";
|
||||
@@ -15,19 +14,11 @@ export interface QuickConnectTarget {
|
||||
enabled: (host: SSHHostWithStatus) => boolean;
|
||||
}
|
||||
|
||||
/** What a quick connect widget can open: core tools plus plugin actions. */
|
||||
/** What a quick connect widget can open: the tools plugins registered. */
|
||||
export function quickConnectTargets(
|
||||
actions: HostActionDef[],
|
||||
): QuickConnectTarget[] {
|
||||
const core: QuickConnectTarget[] = [
|
||||
{
|
||||
type: "tunnel",
|
||||
icon: Network,
|
||||
labelKey: "homepage.connType_tunnel",
|
||||
enabled: (h) => !!(h.enableSsh && h.enableTunnel),
|
||||
},
|
||||
];
|
||||
const seen = new Set(core.map((target) => target.type));
|
||||
const seen = new Set<string>();
|
||||
const fromPlugins: QuickConnectTarget[] = [];
|
||||
for (const action of actions) {
|
||||
if (!action.tabType || seen.has(action.tabType)) continue;
|
||||
@@ -45,12 +36,12 @@ export function quickConnectTargets(
|
||||
},
|
||||
});
|
||||
}
|
||||
return [...fromPlugins, ...core];
|
||||
return fromPlugins;
|
||||
}
|
||||
|
||||
/** Recent-activity types a filter can pick: core ones plus plugin tabs'. */
|
||||
export function activityFilterTypes(): string[] {
|
||||
const types = new Set(["file_manager", "tunnel"]);
|
||||
const types = new Set(["file_manager"]);
|
||||
for (const def of listTabTypes()) {
|
||||
for (const type of def.activityTypes ?? []) types.add(type);
|
||||
}
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import { Network } from "lucide-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { registerWidget } from "./WidgetRegistry";
|
||||
import type {
|
||||
TunnelWidgetConfig,
|
||||
WidgetComponentProps,
|
||||
} from "@/types/homepage-types";
|
||||
import { GRID_SIZE } from "@/types/homepage-types";
|
||||
import { getSSHHosts } from "@/api/ssh-host-management-api";
|
||||
import type { SSHHostWithStatus } from "@/main-axios";
|
||||
import { TunnelTab } from "@/features/tunnel/TunnelTab";
|
||||
import { WidgetTitle } from "./WidgetTitle";
|
||||
|
||||
function TunnelWidget({
|
||||
widget,
|
||||
config,
|
||||
}: WidgetComponentProps<TunnelWidgetConfig>) {
|
||||
const { t } = useTranslation();
|
||||
const [host, setHost] = useState<SSHHostWithStatus | null>(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
if (!config.hostId) {
|
||||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
getSSHHosts()
|
||||
.then((hosts) => {
|
||||
const found = hosts.find(
|
||||
(h) => h.id === config.hostId && h.enableTunnel,
|
||||
);
|
||||
setHost(found ?? null);
|
||||
})
|
||||
.catch(() => {})
|
||||
.finally(() => setLoading(false));
|
||||
}, [config.hostId]);
|
||||
|
||||
if (!config.hostId) {
|
||||
return (
|
||||
<div className="flex flex-col items-center justify-center w-full h-full gap-2 text-muted-foreground/60">
|
||||
<Network size={20} />
|
||||
<span className="text-xs">{t("homepage.widgetNoHostSelected")}</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (loading) {
|
||||
return (
|
||||
<div className="flex items-center justify-center w-full h-full text-xs text-muted-foreground/60">
|
||||
{t("homepage.loading")}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!host) {
|
||||
return (
|
||||
<div className="flex items-center justify-center w-full h-full text-xs text-muted-foreground/60">
|
||||
{t("homepage.widgetNoHostSelected")}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
// TunnelTab expects Host (ui-types) — id must be a string
|
||||
const tunnelHost = {
|
||||
id: String(host.id),
|
||||
name: host.name,
|
||||
username: host.username,
|
||||
ip: host.ip,
|
||||
port: host.port,
|
||||
folder: host.folder ?? "",
|
||||
online: host.status === "online",
|
||||
cpu: null,
|
||||
ram: null,
|
||||
lastAccess: "",
|
||||
authType: host.authType,
|
||||
enableTerminal: host.enableTerminal ?? false,
|
||||
enableCommandHistory: false,
|
||||
enableTunnel: host.enableTunnel ?? false,
|
||||
serverTunnels: [],
|
||||
enableFileManager: host.enableFileManager ?? false,
|
||||
enableDocker: host.enableDocker ?? false,
|
||||
enableProxmox: false,
|
||||
enableTmuxMonitor: false,
|
||||
enableSsh: host.enableSsh ?? true,
|
||||
enableRdp: host.enableRdp ?? false,
|
||||
enableVnc: host.enableVnc ?? false,
|
||||
enableTelnet: host.enableTelnet ?? false,
|
||||
sshPort: host.sshPort ?? host.port,
|
||||
rdpPort: host.rdpPort ?? 3389,
|
||||
vncPort: host.vncPort ?? 5900,
|
||||
telnetPort: host.telnetPort ?? 23,
|
||||
quickActions: [],
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col w-full h-full overflow-hidden">
|
||||
<WidgetTitle title={widget.title} icon={<Network size={11} />} />
|
||||
<div
|
||||
className="flex-1 overflow-hidden"
|
||||
onMouseDown={(e) => e.stopPropagation()}
|
||||
>
|
||||
<TunnelTab
|
||||
label={host.name || host.ip}
|
||||
host={tunnelHost as Parameters<typeof TunnelTab>[0]["host"]}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
registerWidget<TunnelWidgetConfig>({
|
||||
id: "tunnel_widget",
|
||||
name: "Tunnel Manager",
|
||||
description: "Embedded SSH tunnel manager for a configured host",
|
||||
category: "system",
|
||||
icon: <Network size={14} />,
|
||||
defaultConfig: { hostId: 0 },
|
||||
defaultSize: { w: GRID_SIZE * 16, h: GRID_SIZE * 10 },
|
||||
minSize: { w: GRID_SIZE * 8, h: GRID_SIZE * 6 },
|
||||
component: TunnelWidget,
|
||||
});
|
||||
@@ -1,89 +0,0 @@
|
||||
import React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { FullScreenAppWrapper } from "@/features/FullScreenAppWrapper.tsx";
|
||||
import { TunnelTab } from "@/features/tunnel/TunnelTab.tsx";
|
||||
import { ConnectionScreen } from "@/components/connection/ConnectionScreen.tsx";
|
||||
import type { Host } from "@/types/ui-types";
|
||||
import type { SSHHost } from "@/types";
|
||||
|
||||
interface TunnelAppProps {
|
||||
hostId?: string;
|
||||
}
|
||||
|
||||
function sshHostToMinimalHost(h: SSHHost): Host {
|
||||
return {
|
||||
id: String(h.id),
|
||||
name: h.name,
|
||||
ip: h.ip,
|
||||
port: h.port,
|
||||
username: h.username,
|
||||
folder: h.folder ?? "",
|
||||
online: false,
|
||||
cpu: null,
|
||||
ram: null,
|
||||
lastAccess: "",
|
||||
tags: h.tags ?? [],
|
||||
pin: h.pin ?? false,
|
||||
authType: h.authType,
|
||||
enableTerminal: h.enableTerminal ?? false,
|
||||
enableCommandHistory: h.enableCommandHistory ?? false,
|
||||
enableProxmox: !!h.pluginSettings?.proxmox?.enableProxmox,
|
||||
enableProxmoxStats: !!h.pluginSettings?.proxmox?.enableProxmoxStats,
|
||||
enableTmuxMonitor: h.enableTmuxMonitor ?? false,
|
||||
enableTerminalToolbar: h.enableTerminalToolbar ?? true,
|
||||
enableAiAssistant: h.enableAiAssistant ?? false,
|
||||
enableTunnel: h.enableTunnel ?? false,
|
||||
enableFileManager: h.enableFileManager ?? false,
|
||||
enableDocker: h.enableDocker ?? false,
|
||||
enableSsh: h.enableSsh ?? true,
|
||||
enableRdp: h.enableRdp ?? false,
|
||||
enableVnc: h.enableVnc ?? false,
|
||||
enableTelnet: h.enableTelnet ?? false,
|
||||
sshPort: h.sshPort ?? h.port,
|
||||
rdpPort: h.rdpPort ?? 3389,
|
||||
vncPort: h.vncPort ?? 5900,
|
||||
telnetPort: h.telnetPort ?? 23,
|
||||
serverTunnels: [],
|
||||
quickActions: [],
|
||||
};
|
||||
}
|
||||
|
||||
const TunnelApp: React.FC<TunnelAppProps> = ({ hostId }) => {
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<FullScreenAppWrapper hostId={hostId}>
|
||||
{(hostConfig, phase) => {
|
||||
if (phase === "loading") {
|
||||
return (
|
||||
<div className="relative h-full w-full">
|
||||
<ConnectionScreen
|
||||
status="connecting"
|
||||
message={t("hosts.loadingHost")}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!hostConfig) {
|
||||
return (
|
||||
<div className="relative h-full w-full">
|
||||
<ConnectionScreen
|
||||
status="disconnected"
|
||||
message={t("hosts.hostNotFound")}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<TunnelTab
|
||||
label={hostConfig.name}
|
||||
host={sshHostToMinimalHost(hostConfig)}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
</FullScreenAppWrapper>
|
||||
);
|
||||
};
|
||||
|
||||
export default TunnelApp;
|
||||
@@ -1,506 +0,0 @@
|
||||
import React, { useCallback, useEffect, useState } from "react";
|
||||
import { Button } from "@/components/button";
|
||||
import { Card } from "@/components/card";
|
||||
|
||||
import {
|
||||
AlertCircle,
|
||||
Clock,
|
||||
ExternalLink,
|
||||
Network,
|
||||
Play,
|
||||
RefreshCw,
|
||||
Settings,
|
||||
Square,
|
||||
Wifi,
|
||||
WifiOff,
|
||||
} from "lucide-react";
|
||||
import { toast } from "sonner";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import {
|
||||
getSSHHosts,
|
||||
subscribeTunnelStatuses,
|
||||
connectTunnel,
|
||||
disconnectTunnel,
|
||||
cancelTunnel,
|
||||
logActivity,
|
||||
} from "@/main-axios";
|
||||
import type { Host as DemoHost } from "@/types/ui-types";
|
||||
import type { SSHHost, TunnelConnection, TunnelStatus } from "@/types";
|
||||
import { findHostByTunnelEndpoint } from "./tunnel-endpoints";
|
||||
|
||||
function tunnelName(
|
||||
host: SSHHost,
|
||||
index: number,
|
||||
tunnel: TunnelConnection,
|
||||
): string {
|
||||
const hostKey = host.name || `${host.username}@${host.ip}`;
|
||||
return `${host.id}::${index}::${hostKey}::${tunnel.sourcePort}::${tunnel.endpointHost}::${tunnel.endpointPort}`;
|
||||
}
|
||||
|
||||
function statusLabel(status: TunnelStatus | undefined): string {
|
||||
if (!status) return "DISCONNECTED";
|
||||
const s = status.status?.toUpperCase();
|
||||
if (s === "CONNECTED") return "CONNECTED";
|
||||
if (s === "CONNECTING" || s === "VERIFYING") return "CONNECTING";
|
||||
if (s === "FAILED") return "ERROR";
|
||||
if (s === "RETRYING" || s === "WAITING") return "WAITING";
|
||||
if (s === "DISCONNECTING") return "DISCONNECTED";
|
||||
return "DISCONNECTED";
|
||||
}
|
||||
|
||||
function TunnelCard({
|
||||
host,
|
||||
tunnel,
|
||||
status,
|
||||
isActing,
|
||||
onAction,
|
||||
}: {
|
||||
host: SSHHost;
|
||||
tunnel: TunnelConnection;
|
||||
status: TunnelStatus | undefined;
|
||||
isActing: boolean;
|
||||
onAction: (action: "connect" | "disconnect" | "cancel") => void;
|
||||
}) {
|
||||
const { t } = useTranslation();
|
||||
const [showSettings, setShowSettings] = useState(false);
|
||||
const label = statusLabel(status);
|
||||
const isConnected = label === "CONNECTED";
|
||||
const isConnecting = label === "CONNECTING";
|
||||
const isError = label === "ERROR";
|
||||
const isWaiting = label === "WAITING";
|
||||
|
||||
let statusColor = "text-muted-foreground border-border bg-muted/30";
|
||||
if (isConnected)
|
||||
statusColor = "text-accent-brand border-accent-brand/40 bg-accent-brand/10";
|
||||
if (isConnecting)
|
||||
statusColor = "text-blue-400 border-blue-400/40 bg-blue-400/10";
|
||||
if (isError)
|
||||
statusColor = "text-destructive border-destructive/40 bg-destructive/10";
|
||||
if (isWaiting)
|
||||
statusColor = "text-yellow-500 border-yellow-500/40 bg-yellow-500/10";
|
||||
|
||||
const mode = tunnel.mode ?? (tunnel.tunnelType as string) ?? "local";
|
||||
const destination =
|
||||
mode === "dynamic"
|
||||
? "SOCKS5 Proxy"
|
||||
: `${tunnel.endpointHost ?? ""}:${tunnel.endpointPort}`;
|
||||
|
||||
return (
|
||||
<Card className="flex flex-col overflow-hidden p-0 gap-0">
|
||||
<div className="flex items-center justify-between px-4 py-2.5 border-b border-border bg-muted/10">
|
||||
<div className="flex items-center gap-2">
|
||||
<Network className="size-3.5 text-muted-foreground" />
|
||||
<span className="text-xs font-bold uppercase tracking-widest text-muted-foreground">
|
||||
{t("tunnels.port")} {tunnel.sourcePort}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
className={`flex items-center gap-1.5 px-2 py-0.5 border text-[10px] font-bold ${statusColor}`}
|
||||
>
|
||||
{isConnecting || isActing ? (
|
||||
<RefreshCw className="size-3 animate-spin" />
|
||||
) : isConnected ? (
|
||||
<Wifi className="size-3" />
|
||||
) : isError ? (
|
||||
<AlertCircle className="size-3" />
|
||||
) : isWaiting ? (
|
||||
<Clock className="size-3" />
|
||||
) : (
|
||||
<WifiOff className="size-3" />
|
||||
)}
|
||||
{isActing ? t("tunnels.working") : label}
|
||||
</div>
|
||||
</div>
|
||||
<div className="px-4 py-4 flex flex-col gap-3">
|
||||
<div className="flex flex-col gap-1">
|
||||
<span className="text-[10px] text-muted-foreground uppercase font-bold tracking-wider">
|
||||
{t("tunnels.destination")}
|
||||
</span>
|
||||
<span
|
||||
className="text-sm font-mono font-semibold truncate"
|
||||
title={destination}
|
||||
>
|
||||
{destination}
|
||||
</span>
|
||||
<div className="flex items-center gap-1.5 mt-1">
|
||||
<span className="text-[10px] font-semibold px-1.5 py-px border border-border text-muted-foreground uppercase">
|
||||
{mode}
|
||||
</span>
|
||||
<span className="text-[10px] text-muted-foreground">
|
||||
→ localhost:{tunnel.sourcePort}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{isError && status?.reason && (
|
||||
<div className="flex items-start gap-2 p-2 bg-destructive/5 border border-destructive/20 text-destructive text-[10px]">
|
||||
<AlertCircle className="size-3 mt-0.5 shrink-0" />
|
||||
<span>{status.reason}</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{showSettings && (
|
||||
<div className="border border-border bg-muted/20 p-3 flex flex-col gap-2 text-xs">
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="text-muted-foreground font-semibold">
|
||||
{t("tunnels.host")}
|
||||
</span>
|
||||
<span className="font-mono">
|
||||
{host.name || `${host.username}@${host.ip}`}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="text-muted-foreground font-semibold">
|
||||
{t("tunnels.mode")}
|
||||
</span>
|
||||
<span className="uppercase font-bold">{mode}</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="text-muted-foreground font-semibold">
|
||||
{t("tunnels.localPort")}
|
||||
</span>
|
||||
<span className="font-mono">{tunnel.sourcePort}</span>
|
||||
</div>
|
||||
{mode !== "dynamic" && (
|
||||
<>
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="text-muted-foreground font-semibold">
|
||||
{t("tunnels.remoteHost")}
|
||||
</span>
|
||||
<span className="font-mono">{tunnel.endpointHost}</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="text-muted-foreground font-semibold">
|
||||
{t("tunnels.remotePort")}
|
||||
</span>
|
||||
<span className="font-mono">{tunnel.endpointPort}</span>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="text-muted-foreground font-semibold">
|
||||
{t("tunnels.maxRetries")}
|
||||
</span>
|
||||
<span className="font-mono">{tunnel.maxRetries}</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="flex gap-2 mt-1">
|
||||
{isConnected ? (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
className="flex-1 h-8 text-destructive border-destructive/40 hover:bg-destructive/10 hover:text-destructive gap-1.5"
|
||||
disabled={isActing}
|
||||
onClick={() => onAction("disconnect")}
|
||||
>
|
||||
<Square className="size-3" />
|
||||
{t("tunnels.stop")}
|
||||
</Button>
|
||||
) : isConnecting || isWaiting ? (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
className="flex-1 h-8 text-yellow-500 border-yellow-500/40 hover:bg-yellow-500/10 hover:text-yellow-500 gap-1.5"
|
||||
disabled={isActing}
|
||||
onClick={() => onAction("cancel")}
|
||||
>
|
||||
<Square className="size-3" />
|
||||
{t("tunnels.cancel")}
|
||||
</Button>
|
||||
) : (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
className="flex-1 h-8 text-accent-brand border-accent-brand/40 hover:bg-accent-brand/10 hover:text-accent-brand gap-1.5"
|
||||
disabled={isActing}
|
||||
onClick={() => onAction("connect")}
|
||||
>
|
||||
{isActing ? (
|
||||
<RefreshCw className="size-3 animate-spin" />
|
||||
) : (
|
||||
<Play className="size-3" />
|
||||
)}
|
||||
{t("tunnels.start")}
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
variant={showSettings ? "secondary" : "ghost"}
|
||||
size="icon"
|
||||
className={`h-8 w-8 ${showSettings ? "bg-accent-brand/10 text-accent-brand" : "text-muted-foreground hover:text-foreground"}`}
|
||||
onClick={() => setShowSettings((s) => !s)}
|
||||
>
|
||||
<Settings className="size-3.5" />
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
|
||||
export function TunnelTab({
|
||||
host,
|
||||
isVisible = true,
|
||||
}: {
|
||||
label: string;
|
||||
host?: DemoHost;
|
||||
isVisible?: boolean;
|
||||
}) {
|
||||
const { t } = useTranslation();
|
||||
const [sshHost, setSshHost] = useState<SSHHost | null>(null);
|
||||
const [tunnelStatuses, setTunnelStatuses] = useState<
|
||||
Record<string, TunnelStatus>
|
||||
>({});
|
||||
const [tunnelActions, setTunnelActions] = useState<Record<string, boolean>>(
|
||||
{},
|
||||
);
|
||||
const activityLoggedRef = React.useRef(false);
|
||||
|
||||
const fetchHost = useCallback(async () => {
|
||||
if (!host) return;
|
||||
try {
|
||||
const hosts = await getSSHHosts();
|
||||
const found = hosts.find(
|
||||
(h) => String(h.id) === host.id || h.name === host.name,
|
||||
);
|
||||
if (found) setSshHost(found);
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}, [host]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isVisible) return;
|
||||
|
||||
fetchHost();
|
||||
window.addEventListener("ssh-hosts:changed", fetchHost);
|
||||
|
||||
let intervalId: ReturnType<typeof setInterval> | null = null;
|
||||
const start = () => {
|
||||
if (intervalId !== null) return;
|
||||
// Host config rarely changes; tunnel runtime status uses subscribeTunnelStatuses.
|
||||
intervalId = setInterval(fetchHost, 30_000);
|
||||
};
|
||||
const stop = () => {
|
||||
if (intervalId === null) return;
|
||||
clearInterval(intervalId);
|
||||
intervalId = null;
|
||||
};
|
||||
const onVisibility = () => {
|
||||
if (document.visibilityState === "hidden") {
|
||||
stop();
|
||||
return;
|
||||
}
|
||||
void fetchHost();
|
||||
start();
|
||||
};
|
||||
|
||||
if (document.visibilityState !== "hidden") start();
|
||||
document.addEventListener("visibilitychange", onVisibility);
|
||||
|
||||
return () => {
|
||||
stop();
|
||||
document.removeEventListener("visibilitychange", onVisibility);
|
||||
window.removeEventListener("ssh-hosts:changed", fetchHost);
|
||||
};
|
||||
}, [fetchHost, isVisible]);
|
||||
|
||||
useEffect(() => {
|
||||
return subscribeTunnelStatuses(setTunnelStatuses, () => {});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!sshHost || activityLoggedRef.current) return;
|
||||
activityLoggedRef.current = true;
|
||||
const name = sshHost.name || `${sshHost.username}@${sshHost.ip}`;
|
||||
logActivity("tunnel", sshHost.id, name).catch(() => {
|
||||
activityLoggedRef.current = false;
|
||||
});
|
||||
}, [sshHost]);
|
||||
|
||||
const handleAction = async (
|
||||
action: "connect" | "disconnect" | "cancel",
|
||||
index: number,
|
||||
) => {
|
||||
if (!sshHost) return;
|
||||
const tunnel = sshHost.tunnelConnections[index];
|
||||
if (!tunnel) return;
|
||||
const name = tunnelName(sshHost, index, tunnel);
|
||||
|
||||
setTunnelActions((prev) => ({ ...prev, [name]: true }));
|
||||
try {
|
||||
if (action === "connect") {
|
||||
const isDirect =
|
||||
!tunnel.endpointHost ||
|
||||
tunnel.endpointHost === "127.0.0.1" ||
|
||||
tunnel.endpointHost === "localhost";
|
||||
let endpointSsh: SSHHost | undefined;
|
||||
if (!isDirect) {
|
||||
const allHosts = await getSSHHosts();
|
||||
endpointSsh = findHostByTunnelEndpoint(allHosts, tunnel.endpointHost);
|
||||
}
|
||||
await connectTunnel({
|
||||
name,
|
||||
scope: tunnel.scope ?? "s2s",
|
||||
mode:
|
||||
tunnel.mode ??
|
||||
(tunnel.tunnelType as "local" | "remote" | "dynamic") ??
|
||||
"local",
|
||||
tunnelType:
|
||||
tunnel.tunnelType ??
|
||||
(tunnel.mode === "local" || tunnel.mode === "remote"
|
||||
? tunnel.mode
|
||||
: "local"),
|
||||
bindHost: tunnel.bindHost,
|
||||
targetHost: tunnel.targetHost,
|
||||
sourceHostId: sshHost.id,
|
||||
tunnelIndex: index,
|
||||
hostName: sshHost.name || `${sshHost.username}@${sshHost.ip}`,
|
||||
sourceIP: sshHost.ip,
|
||||
sourceSSHPort: sshHost.port,
|
||||
sourceUsername: sshHost.username,
|
||||
sourcePassword:
|
||||
sshHost.authType === "password" ? sshHost.password : undefined,
|
||||
sourceAuthMethod: sshHost.authType,
|
||||
sourceSSHKey: sshHost.authType === "key" ? sshHost.key : undefined,
|
||||
sourceKeyPassword:
|
||||
sshHost.authType === "key" ? sshHost.keyPassword : undefined,
|
||||
sourceKeyType:
|
||||
sshHost.authType === "key" ? sshHost.keyType : undefined,
|
||||
sourceCredentialId: sshHost.credentialId,
|
||||
endpointHost: tunnel.endpointHost ?? "",
|
||||
endpointIP: isDirect
|
||||
? sshHost.ip
|
||||
: (endpointSsh?.ip ?? tunnel.endpointHost ?? ""),
|
||||
endpointSSHPort: isDirect ? sshHost.port : (endpointSsh?.port ?? 22),
|
||||
endpointUsername: isDirect
|
||||
? sshHost.username
|
||||
: (endpointSsh?.username ?? ""),
|
||||
endpointPassword:
|
||||
endpointSsh?.authType === "password"
|
||||
? endpointSsh.password
|
||||
: undefined,
|
||||
endpointAuthMethod: isDirect
|
||||
? sshHost.authType
|
||||
: (endpointSsh?.authType ?? "password"),
|
||||
endpointSSHKey:
|
||||
endpointSsh?.authType === "key" ? endpointSsh.key : undefined,
|
||||
endpointKeyPassword:
|
||||
endpointSsh?.authType === "key"
|
||||
? endpointSsh.keyPassword
|
||||
: undefined,
|
||||
endpointKeyType:
|
||||
endpointSsh?.authType === "key" ? endpointSsh.keyType : undefined,
|
||||
endpointCredentialId: endpointSsh?.credentialId,
|
||||
sourcePort: tunnel.sourcePort,
|
||||
endpointPort: tunnel.endpointPort,
|
||||
maxRetries: tunnel.maxRetries,
|
||||
retryInterval: tunnel.retryInterval * 1000,
|
||||
autoStart: tunnel.autoStart,
|
||||
isPinned: sshHost.pin,
|
||||
useSocks5: sshHost.useSocks5,
|
||||
socks5Host: sshHost.socks5Host,
|
||||
socks5Port: sshHost.socks5Port,
|
||||
socks5Username: sshHost.socks5Username,
|
||||
socks5Password: sshHost.socks5Password,
|
||||
});
|
||||
toast.success(t("tunnels.clientTunnelStarted"));
|
||||
} else if (action === "disconnect") {
|
||||
await disconnectTunnel(name);
|
||||
toast.info(t("tunnels.clientTunnelStopped"));
|
||||
} else {
|
||||
await cancelTunnel(name);
|
||||
toast.info(t("tunnels.canceling"));
|
||||
}
|
||||
} catch (err) {
|
||||
toast.error(t("tunnels.manualControlError"));
|
||||
console.error("Tunnel action failed:", err);
|
||||
} finally {
|
||||
setTunnelActions((prev) => ({ ...prev, [name]: false }));
|
||||
}
|
||||
};
|
||||
|
||||
if (!host) {
|
||||
return (
|
||||
<div className="flex flex-col items-center justify-center flex-1 gap-3 p-6 text-center">
|
||||
<div className="size-10 rounded-full bg-muted/40 flex items-center justify-center">
|
||||
<Network className="size-5 text-muted-foreground/30" />
|
||||
</div>
|
||||
<span className="text-sm font-semibold text-muted-foreground/60">
|
||||
{t("tunnels.noHostSelected")}
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const tunnels = sshHost?.tunnelConnections ?? [];
|
||||
const connectedCount = tunnels.filter((t, i) => {
|
||||
if (!sshHost) return false;
|
||||
const name = tunnelName(sshHost, i, t);
|
||||
return tunnelStatuses[name]?.status === "connected";
|
||||
}).length;
|
||||
|
||||
return (
|
||||
<div className="flex flex-col flex-1 min-h-0 overflow-hidden">
|
||||
<div className="flex-1 overflow-y-auto px-3 py-3 flex flex-col gap-3">
|
||||
<Card className="flex-row items-center justify-between px-3 py-3 shrink-0 gap-0">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="size-10 border border-border bg-muted flex items-center justify-center shrink-0">
|
||||
<Network className="size-5 text-accent-brand" />
|
||||
</div>
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold">{host.name}</h1>
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="size-2 rounded-full bg-accent-brand" />
|
||||
<span className="text-xs text-muted-foreground uppercase tracking-widest font-semibold">
|
||||
{connectedCount}/{tunnels.length} {t("tunnels.active")}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a
|
||||
href="https://docs.termix.site/features/networking/tunnels"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="flex items-center justify-center size-9 text-muted-foreground hover:text-foreground transition-colors"
|
||||
title={t("hosts.docsLink")}
|
||||
>
|
||||
<ExternalLink className="size-4" />
|
||||
</a>
|
||||
</Card>
|
||||
|
||||
{tunnels.length > 0 ? (
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3">
|
||||
{tunnels.map((tunnel, index) => {
|
||||
if (!sshHost) return null;
|
||||
const name = tunnelName(sshHost, index, tunnel);
|
||||
return (
|
||||
<TunnelCard
|
||||
key={name}
|
||||
host={sshHost}
|
||||
tunnel={tunnel}
|
||||
status={tunnelStatuses[name]}
|
||||
isActing={tunnelActions[name] ?? false}
|
||||
onAction={(action) => handleAction(action, index)}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex flex-col items-center justify-center h-full gap-4 py-20">
|
||||
<div className="opacity-10 flex flex-col items-center gap-4">
|
||||
<Network className="size-16" />
|
||||
<span className="text-xl font-bold uppercase tracking-widest">
|
||||
{t("tunnels.noSshTunnels")}
|
||||
</span>
|
||||
</div>
|
||||
<p className="text-sm text-muted-foreground text-center max-w-sm">
|
||||
{t("tunnels.createFirstTunnelMessage")}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
type EndpointHostLike = {
|
||||
id: number | string;
|
||||
name?: string;
|
||||
ip: string;
|
||||
username?: string;
|
||||
};
|
||||
|
||||
export function findHostByTunnelEndpoint<T extends EndpointHostLike>(
|
||||
hosts: T[],
|
||||
endpointHost?: string | null,
|
||||
): T | undefined {
|
||||
const value = endpointHost?.trim();
|
||||
if (!value) return undefined;
|
||||
|
||||
return hosts.find((host) => {
|
||||
const id = String(host.id);
|
||||
const userAtIp = host.username ? `${host.username}@${host.ip}` : "";
|
||||
return (
|
||||
id === value ||
|
||||
host.name === value ||
|
||||
host.ip === value ||
|
||||
userAtIp === value
|
||||
);
|
||||
});
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
import type { TunnelMode } from "@/types/index.js";
|
||||
|
||||
type Translate = (
|
||||
key: string,
|
||||
options?: Record<string, string | number>,
|
||||
) => string;
|
||||
|
||||
export function getTunnelTypeForMode(mode: TunnelMode): "local" | "remote" {
|
||||
return mode === "remote" ? "remote" : "local";
|
||||
}
|
||||
|
||||
export function getTunnelPortLabels(
|
||||
scope: "client" | "server",
|
||||
mode: TunnelMode,
|
||||
t: Translate,
|
||||
) {
|
||||
if (scope === "client") {
|
||||
return {
|
||||
sourcePortLabel:
|
||||
mode === "remote" ? t("tunnels.remotePort") : t("tunnels.localPort"),
|
||||
endpointPortLabel:
|
||||
mode === "remote"
|
||||
? t("tunnels.localPort")
|
||||
: t("tunnels.destinationPort"),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
sourcePortLabel: t("tunnels.currentHostPort"),
|
||||
endpointPortLabel: t("tunnels.endpointPort"),
|
||||
};
|
||||
}
|
||||
|
||||
export function getTunnelModeDescription(
|
||||
scope: "client" | "server",
|
||||
mode: TunnelMode,
|
||||
ports: {
|
||||
sourcePort: string | number;
|
||||
endpointPort: string | number;
|
||||
},
|
||||
t: Translate,
|
||||
) {
|
||||
if (scope === "client") {
|
||||
if (mode === "dynamic") {
|
||||
return t("tunnels.forwardDescriptionClientDynamic", {
|
||||
sourcePort: ports.sourcePort,
|
||||
});
|
||||
}
|
||||
if (mode === "local") {
|
||||
return t("tunnels.forwardDescriptionClientLocal", ports);
|
||||
}
|
||||
return t("tunnels.forwardDescriptionClientRemote", ports);
|
||||
}
|
||||
|
||||
if (mode === "dynamic") {
|
||||
return t("tunnels.forwardDescriptionServerDynamic", {
|
||||
sourcePort: ports.sourcePort,
|
||||
});
|
||||
}
|
||||
if (mode === "local") {
|
||||
return t("tunnels.forwardDescriptionServerLocal", ports);
|
||||
}
|
||||
return t("tunnels.forwardDescriptionServerRemote", ports);
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { ComponentType } from "react";
|
||||
import { Network } from "lucide-react";
|
||||
import { tabTypeForActivity } from "@/shell/tab-registry";
|
||||
|
||||
export interface ActivityTarget {
|
||||
@@ -9,14 +8,8 @@ export interface ActivityTarget {
|
||||
labelKey: string | undefined;
|
||||
}
|
||||
|
||||
/** Recent-activity types core itself records. */
|
||||
const CORE_ACTIVITY: Record<string, ActivityTarget> = {
|
||||
tunnel: {
|
||||
icon: Network,
|
||||
tab: "tunnel",
|
||||
labelKey: "dashboard.activityTunnel",
|
||||
},
|
||||
};
|
||||
/** Recent-activity types core itself records. None today. */
|
||||
const CORE_ACTIVITY: Record<string, ActivityTarget> = {};
|
||||
|
||||
/**
|
||||
* What a recent-activity entry opens and how it is labelled. Plugin tabs
|
||||
|
||||
@@ -161,10 +161,6 @@ class FrontendLogger {
|
||||
this.info(`SSH: ${message}`, { ...context, operation: "ssh" });
|
||||
}
|
||||
|
||||
tunnel(message: string, context?: LogContext): void {
|
||||
this.info(`TUNNEL: ${message}`, { ...context, operation: "tunnel" });
|
||||
}
|
||||
|
||||
file(message: string, context?: LogContext): void {
|
||||
this.info(`FILE: ${message}`, { ...context, operation: "file" });
|
||||
}
|
||||
@@ -375,7 +371,6 @@ class FrontendLogger {
|
||||
export const apiLogger = new FrontendLogger("API", "🌐", "#3b82f6");
|
||||
export const authLogger = new FrontendLogger("AUTH", "🔐", "#dc2626");
|
||||
export const sshLogger = new FrontendLogger("SSH", "🖥️", "#1e3a8a");
|
||||
export const tunnelLogger = new FrontendLogger("TUNNEL", "📡", "#1e3a8a");
|
||||
export const fileLogger = new FrontendLogger("FILE", "📁", "#1e3a8a");
|
||||
export const statsLogger = new FrontendLogger("STATS", "📊", "#22c55e");
|
||||
export const systemLogger = new FrontendLogger("SYSTEM", "🚀", "#1e3a8a");
|
||||
|
||||
+5
-141
@@ -437,7 +437,6 @@
|
||||
"connType_terminal": "Terminal",
|
||||
"connType_files": "File Manager",
|
||||
"connType_docker": "Docker",
|
||||
"connType_tunnel": "Tunnel",
|
||||
"connType_host-metrics": "Host Metrics",
|
||||
"connType_rdp": "RDP",
|
||||
"connType_vnc": "VNC",
|
||||
@@ -669,7 +668,6 @@
|
||||
"home": "Home",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Local Terminal",
|
||||
"tunnels": "Tunnels",
|
||||
"fileManager": "File Manager",
|
||||
"serverStats": "Host Metrics",
|
||||
"admin": "Admin",
|
||||
@@ -711,7 +709,6 @@
|
||||
"macros": "Macros",
|
||||
"hostManager": "Host Manager",
|
||||
"credentials": "Credentials",
|
||||
"portForwarding": "Forwarding",
|
||||
"connections": "Connections",
|
||||
"serial": "Serial",
|
||||
"keepSideMenuOpen": "Keep Menu Open",
|
||||
@@ -762,7 +759,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnels",
|
||||
"tabStats": "Host Metrics",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Sharing",
|
||||
@@ -1068,31 +1064,8 @@
|
||||
"startupSnippetLabel": "Startup Snippet",
|
||||
"keepaliveIntervalLabel": "Keepalive Interval (seconds)",
|
||||
"maxKeepaliveMisses": "Max Keepalive Misses",
|
||||
"tunnelSettings": "Tunnel Settings",
|
||||
"enableTunneling": "Enable Tunneling",
|
||||
"enableTunnelingDesc": "Enable SSH tunnel functionality for this host",
|
||||
"serverTunnelsSection": "Server Tunnels",
|
||||
"addTunnelBtn": "Add Tunnel",
|
||||
"noTunnelsConfigured": "No tunnels configured.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tunnel Type",
|
||||
"tunnelModeLocalDesc": "Forward a local port to a port on the remote server (or a host reachable from it).",
|
||||
"tunnelModeRemoteDesc": "Forward a port on the remote server back to a local port on your machine.",
|
||||
"tunnelModeDynamicDesc": "Create a SOCKS5 proxy on a local port for dynamic port forwarding.",
|
||||
"sameHost": "This host (direct tunnel)",
|
||||
"endpointHost": "Endpoint Host",
|
||||
"endpointHostPlaceholder": "Same host, SSH host, or reachable host/IP",
|
||||
"endpointPort": "Endpoint Port",
|
||||
"bindHost": "Bind Host",
|
||||
"sourcePort": "Source Port",
|
||||
"maxRetries": "Max Retries",
|
||||
"retryIntervalS": "Retry Interval (s)",
|
||||
"autoStartLabel": "Auto-start",
|
||||
"autoStartDesc": "Automatically connect this tunnel when the host is loaded",
|
||||
"tunnelConnecting": "Tunnel connecting...",
|
||||
"tunnelDisconnected": "Tunnel disconnected",
|
||||
"failedToConnectTunnel": "Failed to connect",
|
||||
"failedToDisconnectTunnel": "Failed to disconnect",
|
||||
"enableTmuxMonitor": "Enable Tmux Monitor",
|
||||
"enableTmuxMonitorDesc": "Show this host in the Tmux Monitor and add its tmux actions to the sidebar",
|
||||
"enableTerminalToolbar": "Enable Terminal Toolbar",
|
||||
@@ -1271,7 +1244,6 @@
|
||||
"deletedHost": "Deleted {{name}}",
|
||||
"copiedToClipboard": "Copied to clipboard",
|
||||
"terminalUrlCopied": "Terminal URL copied",
|
||||
"tunnelUrlCopied": "Tunnel URL copied",
|
||||
"dockerUrlCopied": "Docker URL copied",
|
||||
"hostMetricsUrlCopied": "Host Metrics URL copied",
|
||||
"tmuxMonitorUrlCopied": "Tmux Monitor URL copied",
|
||||
@@ -1288,7 +1260,6 @@
|
||||
"copyAddress": "Copy Address",
|
||||
"copyLink": "Copy Link",
|
||||
"copyTerminalUrlAction": "Copy Terminal URL",
|
||||
"copyTunnelUrlAction": "Copy Tunnel URL",
|
||||
"copyDockerUrlAction": "Copy Docker URL",
|
||||
"copyHostMetricsUrlAction": "Copy Host Metrics URL",
|
||||
"copyTmuxMonitorUrlAction": "Copy Tmux Monitor URL",
|
||||
@@ -1304,8 +1275,6 @@
|
||||
"disableTerminalFeature": "Disable Terminal",
|
||||
"enableFilesFeature": "Enable Files",
|
||||
"disableFilesFeature": "Disable Files",
|
||||
"enableTunnelsFeature": "Enable Tunnels",
|
||||
"disableTunnelsFeature": "Disable Tunnels",
|
||||
"enableDockerFeature": "Enable Docker",
|
||||
"disableDockerFeature": "Disable Docker",
|
||||
"enableProxmoxFeature": "Enable Proxmox",
|
||||
@@ -1328,12 +1297,9 @@
|
||||
"refreshBtn": "Refresh",
|
||||
"addTag": "Add tags...",
|
||||
"deleteConfirmBtn": "Delete",
|
||||
"tunnelRequirementsText": "The SSH server must have GatewayPorts yes, AllowTcpForwarding yes, and PermitRootLogin yes set in /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Delete \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Enable at least one protocol above to configure authentication and connection settings.",
|
||||
"keyPassphrase": "Key Passphrase",
|
||||
"connectBtn": "Connect",
|
||||
"disconnectBtn": "Disconnect",
|
||||
"basicInformation": "Basic Information",
|
||||
"authDetailsSection": "Authentication Details",
|
||||
"credTypeLabel": "Type",
|
||||
@@ -1365,7 +1331,7 @@
|
||||
"groupCredentials": "Credentials",
|
||||
"groupNotes": "Notes",
|
||||
"groupTags": "Tags & pin",
|
||||
"groupTunnels": "Tunnels",
|
||||
"groupProxy": "Proxy",
|
||||
"groupJumpHosts": "Jump hosts",
|
||||
"groupQuickActions": "Quick actions",
|
||||
"groupFeatureFlags": "Feature flags",
|
||||
@@ -1435,7 +1401,6 @@
|
||||
"filterFeaturesGroup": "Features",
|
||||
"filterFeatureTerminal": "Terminal",
|
||||
"filterFeatureFileManager": "File Manager",
|
||||
"filterFeatureTunnel": "Tunnel",
|
||||
"filterFeatureDocker": "Docker",
|
||||
"filterTagsGroup": "Tags",
|
||||
"connectRdp": "RDP",
|
||||
@@ -1963,100 +1928,25 @@
|
||||
"transferFailedRetryHint": "Partial data was kept on the destination. Retry will resume when the connection is back."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "No SSH Tunnels",
|
||||
"createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.",
|
||||
"connected": "Connected",
|
||||
"disconnected": "Disconnected",
|
||||
"connecting": "Connecting...",
|
||||
"error": "Error",
|
||||
"canceling": "Canceling...",
|
||||
"connect": "Connect",
|
||||
"disconnect": "Disconnect",
|
||||
"cancel": "Cancel",
|
||||
"port": "Port",
|
||||
"localPort": "Local Port",
|
||||
"remotePort": "Remote Port",
|
||||
"destinationPort": "Destination Port",
|
||||
"currentHostPort": "Current Host Port",
|
||||
"endpointPort": "Endpoint Port",
|
||||
"bindIp": "Local IP",
|
||||
"localAddress": "Local Address",
|
||||
"remoteAddress": "Remote Address",
|
||||
"destinationAddress": "Destination Address",
|
||||
"remoteBindAddress": "Remote Bind Address",
|
||||
"intermediateHost": "Intermediate Host",
|
||||
"endpointSshConfig": "Endpoint SSH Configuration",
|
||||
"endpointSshHost": "Endpoint SSH Host",
|
||||
"endpointSshHostPlaceholder": "Select a configured host",
|
||||
"endpointSshHostRequired": "Select an endpoint SSH host for each client tunnel.",
|
||||
"attempt": "Attempt {{current}} of {{max}}",
|
||||
"nextRetryIn": "Next retry in {{seconds}} seconds",
|
||||
"clientTunnels": "Client Tunnels",
|
||||
"clientTunnel": "Client Tunnel",
|
||||
"addClientTunnel": "Add Client Tunnel",
|
||||
"noClientTunnels": "No client tunnels configured on this desktop.",
|
||||
"tunnelName": "Tunnel Name",
|
||||
"remoteHost": "Remote Host",
|
||||
"autoStart": "Auto Start",
|
||||
"clientAutoStartDesc": "Starts when this desktop client opens and stays connected.",
|
||||
"clientManualStartDesc": "Use Start and Stop from this row. Termix will not open it automatically.",
|
||||
"clientRemoteServerNote": "Remote forwarding may require AllowTcpForwarding and GatewayPorts on the endpoint SSH server. The remote port closes when this desktop disconnects.",
|
||||
"clientTunnelStarted": "Client tunnel started",
|
||||
"clientTunnelStopped": "Client tunnel stopped",
|
||||
"tunnelTestSucceeded": "Tunnel test succeeded",
|
||||
"tunnelTestFailed": "Tunnel test failed",
|
||||
"localSaved": "Client tunnels saved",
|
||||
"localSaveError": "Failed to save local client tunnels",
|
||||
"invalidBindIp": "Local IP must be a valid IPv4 address.",
|
||||
"invalidLocalTargetIp": "Local target IP must be a valid IPv4 address.",
|
||||
"invalidRemoteAddress": "Remote address is required.",
|
||||
"invalidLocalPort": "Local port must be between 1 and 65535.",
|
||||
"invalidRemotePort": "Remote port must be between 1 and 65535.",
|
||||
"invalidLocalTargetPort": "Local target port must be between 1 and 65535.",
|
||||
"invalidEndpointPort": "Endpoint port must be between 1 and 65535.",
|
||||
"duplicateAutoStartBind": "Only one auto-start client tunnel can use {{bind}}.",
|
||||
"manualControlError": "Failed to update tunnel state.",
|
||||
"active": "Active",
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"test": "Test",
|
||||
"type": "Tunnel Type",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Remote (-R)",
|
||||
"typeDynamic": "Dynamic (-D)",
|
||||
"typeServerLocalDesc": "Current host to endpoint.",
|
||||
"typeServerRemoteDesc": "Endpoint back to current host.",
|
||||
"typeClientLocalDesc": "Local computer to endpoint.",
|
||||
"typeClientRemoteDesc": "Endpoint back to local computer.",
|
||||
"typeClientDynamicDesc": "SOCKS on local computer.",
|
||||
"typeDynamicDesc": "Forward SOCKS5 CONNECT traffic through SSH",
|
||||
"forwardDescriptionServerLocal": "Current host {{sourcePort}} → endpoint {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → current host {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS on current host {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remote {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Remote {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS on local port {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "Route:",
|
||||
"lastStarted": "Last started",
|
||||
"lastTested": "Last tested",
|
||||
"lastError": "Last error",
|
||||
"maxRetries": "Max Retries",
|
||||
"maxRetriesDescription": "Maximum amount of retry attempts.",
|
||||
"retryInterval": "Retry Interval (seconds)",
|
||||
"retryIntervalDescription": "Time to wait between retry attempts.",
|
||||
"local": "Local",
|
||||
"remote": "Remote",
|
||||
"destination": "Destination",
|
||||
"host": "Host",
|
||||
"mode": "Mode",
|
||||
"noHostSelected": "No host selected",
|
||||
"working": "Working..."
|
||||
"remote": "Remote"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Drag to move",
|
||||
@@ -2193,37 +2083,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Local desktop tunnels targeting configured SSH hosts.",
|
||||
"c2sTunnelPresets": "Client Tunnel Presets",
|
||||
"c2sTunnelPresetsDesc": "Save this desktop client's local tunnel list as a named server preset, or load a preset back into this client.",
|
||||
"c2sTunnelPresetsUnavailable": "Client tunnel presets are only available in the desktop client.",
|
||||
"c2sPresetName": "Preset Name",
|
||||
"c2sPresetNamePlaceholder": "Client preset name",
|
||||
"c2sPresetToLoad": "Preset To Load",
|
||||
"c2sNoPresetSelected": "No preset selected",
|
||||
"c2sNoPresets": "No presets saved",
|
||||
"c2sLoadPreset": "Load",
|
||||
"c2sCurrentLocalConfig": "{{count}} local client tunnel(s) configured on this desktop.",
|
||||
"c2sPresetSyncNote": "Presets are explicit snapshots; loading one replaces this desktop client's local client tunnel list.",
|
||||
"c2sPresetSaved": "Client tunnel preset saved",
|
||||
"c2sPresetLoaded": "Client tunnel preset loaded locally",
|
||||
"c2sPresetRenamed": "Client tunnel preset renamed",
|
||||
"c2sPresetDeleted": "Client tunnel preset deleted",
|
||||
"c2sPresetLoadError": "Failed to load client tunnel presets"
|
||||
"c2sTunnelPresetsDesc": "Save this desktop client's local tunnel list as a named server preset, or load a preset back into this client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Language",
|
||||
"keyPassword": "key password",
|
||||
"pastePrivateKey": "Paste your private key here...",
|
||||
"localListenerHost": "127.0.0.1 (listen locally)",
|
||||
"localTargetHost": "127.0.0.1 (target on this computer)",
|
||||
"remoteTargetHost": "127.0.0.1 (target from endpoint)",
|
||||
"remoteBindHost": "127.0.0.1 (listen on endpoint)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS listener)",
|
||||
"enterPassword": "Enter your password",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Enter your password"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
@@ -2273,8 +2139,7 @@
|
||||
"justNow": "just now",
|
||||
"serviceLinks": "Service Links",
|
||||
"homepagePreview": "Homepage Preview",
|
||||
"activityFileManager": "File manager",
|
||||
"activityTunnel": "Tunnel"
|
||||
"activityFileManager": "File manager"
|
||||
},
|
||||
"donation": {
|
||||
"title": "Enjoying Termix?",
|
||||
@@ -3150,7 +3015,6 @@
|
||||
"sectionSecurity": "Security",
|
||||
"sectionApiKeys": "API Keys",
|
||||
"sectionData": "Data",
|
||||
"sectionC2sTunnels": "C2S Tunnels",
|
||||
"usernameLabel": "Username",
|
||||
"roleLabel": "Role",
|
||||
"roleAdministrator": "Administrator",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Tuis",
|
||||
"terminal": "Terminaal",
|
||||
"localTerminal": "Plaaslike Terminaal",
|
||||
"tunnels": "Tonnels",
|
||||
"fileManager": "Lêerbestuurder",
|
||||
"serverStats": "Gasheermetrieke",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makro's",
|
||||
"hostManager": "Gasheerbestuurder",
|
||||
"credentials": "Geloofsbriewe",
|
||||
"portForwarding": "Aanstuur",
|
||||
"connections": "Verbindings",
|
||||
"serial": "Reeks",
|
||||
"keepSideMenuOpen": "Hou Kieslys Oop",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminaal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tonnels",
|
||||
"tabStats": "Gasheermetrieke",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Deling",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Opstart-brokkie",
|
||||
"keepaliveIntervalLabel": "Lewendige interval (sekondes)",
|
||||
"maxKeepaliveMisses": "Max Keepalive mis",
|
||||
"tunnelSettings": "Tonnelinstellings",
|
||||
"enableTunneling": "Aktiveer Tonnelbou",
|
||||
"enableTunnelingDesc": "Aktiveer SSH-tonnelfunksionaliteit vir hierdie gasheer",
|
||||
"serverTunnelsSection": "Bedienertonnels",
|
||||
"addTunnelBtn": "Voeg tonnel by",
|
||||
"noTunnelsConfigured": "Geen tonnels gekonfigureer nie.",
|
||||
"tunnelLabel": "Tonnel {{number}}",
|
||||
"tunnelType": "Tonnel Tipe",
|
||||
"tunnelModeLocalDesc": "Stuur 'n plaaslike poort aan na 'n poort op die afstandbediener (of 'n gasheer wat daarvandaan bereik kan word).",
|
||||
"tunnelModeRemoteDesc": "Stuur 'n poort op die afgeleë bediener terug na 'n plaaslike poort op jou masjien.",
|
||||
"tunnelModeDynamicDesc": "Skep 'n SOCKS5-instaanbediener op 'n plaaslike poort vir dinamiese poortaanstuuring.",
|
||||
"sameHost": "Hierdie gasheer (direkte tonnel)",
|
||||
"endpointHost": "Eindpuntgasheer",
|
||||
"endpointHostPlaceholder": "Dieselfde gasheer, SSH-gasheer of bereikbare gasheer/IP",
|
||||
"endpointPort": "Eindpuntpoort",
|
||||
"bindHost": "Bind gasheer",
|
||||
"sourcePort": "Bronpoort",
|
||||
"maxRetries": "Maksimum herprobeer",
|
||||
"retryIntervalS": "Herprobeerinterval (s)",
|
||||
"autoStartLabel": "Outomatiese begin",
|
||||
"autoStartDesc": "Koppel outomaties hierdie tonnel wanneer die gasheer gelaai is",
|
||||
"tunnelConnecting": "Tonnel verbind...",
|
||||
"tunnelDisconnected": "Tonnel ontkoppel",
|
||||
"failedToConnectTunnel": "Kon nie koppel nie",
|
||||
"failedToDisconnectTunnel": "Kon nie ontkoppel nie",
|
||||
"enableTmuxMonitor": "Aktiveer Tmux-monitor",
|
||||
"enableTmuxMonitorDesc": "Wys hierdie gasheer in die Tmux Monitor en voeg sy tmux-aksies by die sybalk.",
|
||||
"enableTerminalToolbar": "Aktiveer Terminale-nutsbalk",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Verfris",
|
||||
"addTag": "Voeg etikette by...",
|
||||
"deleteConfirmBtn": "Vee uit",
|
||||
"tunnelRequirementsText": "Die SSH-bediener moet GatewayPorts ja, AllowTcpForwarding ja, en PermitRootLogin ja gestel hê in /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Vee \"{{name}} \" uit?",
|
||||
"enableAtLeastOneProtocol": "Aktiveer ten minste een protokol hierbo om verifikasie- en verbindingsinstellings te konfigureer.",
|
||||
"keyPassphrase": "Sleutelwagwoordfrase",
|
||||
"connectBtn": "Verbind",
|
||||
"disconnectBtn": "Ontkoppel",
|
||||
"basicInformation": "Basiese Inligting",
|
||||
"authDetailsSection": "Verifikasiebesonderhede",
|
||||
"credTypeLabel": "Tipe",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Gedeeltelike data is op die bestemming gehou. Herprobeer sal hervat word wanneer die verbinding terug is."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Geen SSH-tonnels nie",
|
||||
"createFirstTunnelMessage": "Jy het nog geen SSH-tonnels geskep nie. Konfigureer tonnelverbindings in die Gasheerbestuurder om te begin.",
|
||||
"connected": "Verbonde",
|
||||
"disconnected": "Ontkoppel",
|
||||
"connecting": "Verbind...",
|
||||
"error": "Fout",
|
||||
"canceling": "Kanselleer tans...",
|
||||
"connect": "Verbind",
|
||||
"disconnect": "Ontkoppel",
|
||||
"cancel": "Kanselleer",
|
||||
"port": "Hawe",
|
||||
"localPort": "Plaaslike Hawe",
|
||||
"remotePort": "Afstandpoort",
|
||||
"destinationPort": "Bestemmingshawe",
|
||||
"currentHostPort": "Huidige gasheerpoort",
|
||||
"endpointPort": "Eindpuntpoort",
|
||||
"bindIp": "Plaaslike IP",
|
||||
"localAddress": "Plaaslike Adres",
|
||||
"remoteAddress": "Afgeleë adres",
|
||||
"destinationAddress": "Bestemmingsadres",
|
||||
"remoteBindAddress": "Afstandsbindadres",
|
||||
"intermediateHost": "Intermediêre gasheer",
|
||||
"endpointSshConfig": "Eindpunt SSH-konfigurasie",
|
||||
"endpointSshHost": "Eindpunt SSH-gasheer",
|
||||
"endpointSshHostPlaceholder": "Kies 'n gekonfigureerde gasheer",
|
||||
"endpointSshHostRequired": "Kies 'n eindpunt SSH-gasheer vir elke kliënttunnel.",
|
||||
"attempt": "Poging {{current}} van {{max}}",
|
||||
"nextRetryIn": "Volgende herprobeer oor {{seconds}} sekondes",
|
||||
"clientTunnels": "Kliënttonnels",
|
||||
"clientTunnel": "Kliënttonnel",
|
||||
"addClientTunnel": "Voeg kliënttonnel by",
|
||||
"noClientTunnels": "Geen kliënttunnels is op hierdie lessenaar gekonfigureer nie.",
|
||||
"tunnelName": "Tonnelnaam",
|
||||
"remoteHost": "Afstandgasheer",
|
||||
"autoStart": "Outomatiese Begin",
|
||||
"clientAutoStartDesc": "Begin wanneer hierdie rekenaarkliënt oopmaak en gekoppel bly.",
|
||||
"clientManualStartDesc": "Gebruik Begin en Stop vanaf hierdie ry. Termix sal dit nie outomaties oopmaak nie.",
|
||||
"clientRemoteServerNote": "Afstandsaanstuuring mag AllowTcpForwarding en GatewayPorts op die eindpunt SSH-bediener vereis. Die afstandspoort sluit wanneer hierdie lessenaar ontkoppel.",
|
||||
"clientTunnelStarted": "Kliënttonnel het begin",
|
||||
"clientTunnelStopped": "Kliënttonnel gestop",
|
||||
"tunnelTestSucceeded": "Tonneltoets het geslaag",
|
||||
"tunnelTestFailed": "Tonneltoets het misluk",
|
||||
"localSaved": "Kliënttonnels gestoor",
|
||||
"localSaveError": "Kon nie plaaslike kliënttonnels stoor nie",
|
||||
"invalidBindIp": "Plaaslike IP moet 'n geldige IPv4-adres wees.",
|
||||
"invalidLocalTargetIp": "Die plaaslike teiken-IP moet 'n geldige IPv4-adres wees.",
|
||||
"invalidRemoteAddress": "Afstandadres word vereis.",
|
||||
"invalidLocalPort": "Plaaslike poort moet tussen 1 en 65535 wees.",
|
||||
"invalidRemotePort": "Afstandpoort moet tussen 1 en 65535 wees.",
|
||||
"invalidLocalTargetPort": "Die plaaslike teikenpoort moet tussen 1 en 65535 wees.",
|
||||
"invalidEndpointPort": "Eindpuntpoort moet tussen 1 en 65535 wees.",
|
||||
"duplicateAutoStartBind": "Slegs een outomatiese begin-kliënttonnel kan {{bind}} gebruik.",
|
||||
"manualControlError": "Kon nie tonnelstatus opdateer nie.",
|
||||
"active": "Aktief",
|
||||
"start": "Begin",
|
||||
"stop": "Stop",
|
||||
"test": "Toets",
|
||||
"type": "Tonnel Tipe",
|
||||
"typeLocal": "Plaaslik (-L)",
|
||||
"typeRemote": "Afstandbeheer (-R)",
|
||||
"typeDynamic": "Dinamiese (-D)",
|
||||
"typeServerLocalDesc": "Huidige gasheer na eindpunt.",
|
||||
"typeServerRemoteDesc": "Eindpunt terug na huidige gasheer.",
|
||||
"typeClientLocalDesc": "Plaaslike rekenaar na eindpunt.",
|
||||
"typeClientRemoteDesc": "Eindpunt terug na plaaslike rekenaar.",
|
||||
"typeClientDynamicDesc": "SOKKE op plaaslike rekenaar.",
|
||||
"typeDynamicDesc": "Stuur SOCKS5 CONNECT-verkeer deur SSH aan",
|
||||
"forwardDescriptionServerLocal": "Huidige gasheer {{sourcePort}} → eindpunt {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Eindpunt {{endpointPort}} → huidige gasheer {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS op huidige gasheer {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Plaaslik {{sourcePort}} → afgeleë {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Afstand {{sourcePort}} → plaaslik {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS op plaaslike poort {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} op {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOKKIES via {{endpoint}}",
|
||||
"autoNameClientLocal": "Plaaslik {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → plaaslik {{localPort}}",
|
||||
"autoNameClientDynamic": "SOKKIES {{localPort}} via {{endpoint}}",
|
||||
"route": "Roete:",
|
||||
"lastStarted": "Laas begin",
|
||||
"lastTested": "Laas getoets",
|
||||
"lastError": "Laaste fout",
|
||||
"maxRetries": "Maksimum herprobeer",
|
||||
"maxRetriesDescription": "Maksimum aantal herprobeerpogings.",
|
||||
"retryInterval": "Herprobeerinterval (sekondes)",
|
||||
"retryIntervalDescription": "Tyd om te wag tussen herpogings.",
|
||||
"local": "Plaaslik",
|
||||
"remote": "Afstandsbediening",
|
||||
"destination": "Bestemming",
|
||||
"host": "Gasheer",
|
||||
"mode": "Modus",
|
||||
"noHostSelected": "Geen gasheer gekies nie",
|
||||
"working": "Werk..."
|
||||
"remote": "Afstandsbediening"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Sleep om te beweeg",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Plaaslike lessenaartunnels wat op gekonfigureerde SSH-gashere fokus.",
|
||||
"c2sTunnelPresets": "Kliënttonnelvoorinstellings",
|
||||
"c2sTunnelPresetsDesc": "Stoor hierdie lessenaarkliënt se plaaslike tonnellys as 'n benoemde bedienervoorinstelling, of laai 'n voorinstelling terug in hierdie kliënt.",
|
||||
"c2sTunnelPresetsUnavailable": "Kliënttunnelvoorinstellings is slegs beskikbaar in die rekenaarkliënt.",
|
||||
"c2sPresetName": "Voorafingestelde Naam",
|
||||
"c2sPresetNamePlaceholder": "Kliëntvooringestelde naam",
|
||||
"c2sPresetToLoad": "Voorafinstelling om te laai",
|
||||
"c2sNoPresetSelected": "Geen voorafinstelling gekies nie",
|
||||
"c2sNoPresets": "Geen voorinstellings gestoor nie",
|
||||
"c2sLoadPreset": "Laai",
|
||||
"c2sCurrentLocalConfig": "{{count}} plaaslike kliënttonnel(s) gekonfigureer op hierdie lessenaar.",
|
||||
"c2sPresetSyncNote": "Voorinstellings is eksplisiete kiekies; die laai van een vervang hierdie lessenaarkliënt se plaaslike kliënttonnellys.",
|
||||
"c2sPresetSaved": "Kliënttonnelvoorinstelling gestoor",
|
||||
"c2sPresetLoaded": "Kliënttonnelvoorinstelling plaaslik gelaai",
|
||||
"c2sPresetRenamed": "Kliënttonnel-voorinstelling hernoem",
|
||||
"c2sPresetDeleted": "Kliënttonnel-voorinstelling verwyder",
|
||||
"c2sPresetLoadError": "Kon nie kliënttonnelvoorinstellings laai nie"
|
||||
"c2sTunnelPresetsDesc": "Stoor hierdie lessenaarkliënt se plaaslike tonnellys as 'n benoemde bedienervoorinstelling, of laai 'n voorinstelling terug in hierdie kliënt."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Taal",
|
||||
"keyPassword": "sleutelwagwoord",
|
||||
"pastePrivateKey": "Plak jou privaat sleutel hier...",
|
||||
"localListenerHost": "127.0.0.1 (luister plaaslik)",
|
||||
"localTargetHost": "127.0.0.1 (teiken op hierdie rekenaar)",
|
||||
"remoteTargetHost": "127.0.0.1 (teiken vanaf eindpunt)",
|
||||
"remoteBindHost": "127.0.0.1 (luister op eindpunt)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-luisteraar)",
|
||||
"enterPassword": "Voer jou wagwoord in",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Voer jou wagwoord in"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "الرئيسية",
|
||||
"terminal": "الطرفية",
|
||||
"localTerminal": "المحطة المحلية",
|
||||
"tunnels": "الأنفاق",
|
||||
"fileManager": "مدير الملفات",
|
||||
"serverStats": "مقاييس المضيف",
|
||||
"admin": "الإدارة",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "وحدات الماكرو",
|
||||
"hostManager": "مدير المضيفين",
|
||||
"credentials": "بيانات الاعتماد",
|
||||
"portForwarding": "إعادة التوجيه",
|
||||
"connections": "الاتصالات",
|
||||
"serial": "تسلسلي",
|
||||
"keepSideMenuOpen": "أبقِ قائمة الطعام مفتوحة",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "الطرفية",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "الأنفاق",
|
||||
"tabStats": "مقاييس المضيف",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "المشاركة",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "مقتطف بدء التشغيل",
|
||||
"keepaliveIntervalLabel": "فترة إبقاء الاتصال (بالثواني)",
|
||||
"maxKeepaliveMisses": "الحد الأقصى لمرات فقدان إبقاء الاتصال",
|
||||
"tunnelSettings": "إعدادات النفق",
|
||||
"enableTunneling": "تمكين الأنفاق",
|
||||
"enableTunnelingDesc": "تمكين وظيفة نفق SSH لهذا المضيف",
|
||||
"serverTunnelsSection": "أنفاق الخادم",
|
||||
"addTunnelBtn": "إضافة نفق",
|
||||
"noTunnelsConfigured": "لم يتم تكوين أي أنفاق.",
|
||||
"tunnelLabel": "نفق {{number}}",
|
||||
"tunnelType": "نوع النفق",
|
||||
"tunnelModeLocalDesc": "توجيه منفذ محلي إلى منفذ على الخادم البعيد (أو مضيف يمكن الوصول إليه منه).",
|
||||
"tunnelModeRemoteDesc": "إعادة توجيه منفذ على الخادم البعيد إلى منفذ محلي على جهازك.",
|
||||
"tunnelModeDynamicDesc": "إنشاء وكيل SOCKS5 على منفذ محلي لتوجيه المنافذ الديناميكي.",
|
||||
"sameHost": "هذا المضيف (نفق مباشر)",
|
||||
"endpointHost": "مضيف نقطة النهاية",
|
||||
"endpointHostPlaceholder": "نفس المضيف، مضيف SSH، أو مضيف/IP يمكن الوصول إليه",
|
||||
"endpointPort": "منفذ نقطة النهاية",
|
||||
"bindHost": "مضيف الربط",
|
||||
"sourcePort": "منفذ المصدر",
|
||||
"maxRetries": "الحد الأقصى لإعادة المحاولات",
|
||||
"retryIntervalS": "فترة إعادة المحاولة (بالثواني)",
|
||||
"autoStartLabel": "تشغيل تلقائي",
|
||||
"autoStartDesc": "الاتصال بهذا النفق تلقائياً عند تحميل المضيف",
|
||||
"tunnelConnecting": "جارٍ توصيل النفق...",
|
||||
"tunnelDisconnected": "تم قطع اتصال النفق",
|
||||
"failedToConnectTunnel": "فشل الاتصال",
|
||||
"failedToDisconnectTunnel": "فشل قطع الاتصال",
|
||||
"enableTmuxMonitor": "تمكين مراقب Tmux",
|
||||
"enableTmuxMonitorDesc": "إظهار هذا المضيف في مراقب Tmux وإضافة إجراءات tmux الخاصة به إلى الشريط الجانبي",
|
||||
"enableTerminalToolbar": "تفعيل شريط أدوات الطرفية",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "تحديث",
|
||||
"addTag": "إضافة علامات...",
|
||||
"deleteConfirmBtn": "حذف",
|
||||
"tunnelRequirementsText": "يجب أن يحتوي خادم SSH على الإعدادات GatewayPorts yes و AllowTcpForwarding yes و PermitRootLogin yes في الملف /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "حذف \"{{name}}\"؟",
|
||||
"enableAtLeastOneProtocol": "قم بتمكين بروتوكول واحد على الأقل أعلاه لتكوين إعدادات المصادقة والاتصال.",
|
||||
"keyPassphrase": "عبارة مرور المفتاح",
|
||||
"connectBtn": "اتصال",
|
||||
"disconnectBtn": "قطع الاتصال",
|
||||
"basicInformation": "المعلومات الأساسية",
|
||||
"authDetailsSection": "تفاصيل المصادقة",
|
||||
"credTypeLabel": "النوع",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "تم الاحتفاظ بالبيانات الجزئية على الوجهة. ستُستأنف إعادة المحاولة عند عودة الاتصال."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "لا توجد أنفاق SSH",
|
||||
"createFirstTunnelMessage": "لم تُنشئ أي أنفاق SSH بعد. قم بتكوين اتصالات الأنفاق في مدير المضيف للبدء.",
|
||||
"connected": "متصل",
|
||||
"disconnected": "غير متصل",
|
||||
"connecting": "جارٍ الاتصال...",
|
||||
"error": "خطأ",
|
||||
"canceling": "جارٍ الإلغاء...",
|
||||
"connect": "اتصل",
|
||||
"disconnect": "فصل",
|
||||
"cancel": "إلغاء",
|
||||
"port": "منفذ",
|
||||
"localPort": "المنفذ المحلي",
|
||||
"remotePort": "المنفذ البعيد",
|
||||
"destinationPort": "ميناء الوجهة",
|
||||
"currentHostPort": "منفذ المضيف الحالي",
|
||||
"endpointPort": "منفذ النهاية",
|
||||
"bindIp": "عنوان IP المحلي",
|
||||
"localAddress": "العنوان المحلي",
|
||||
"remoteAddress": "عنوان بعيد",
|
||||
"destinationAddress": "عنوان الوجهة",
|
||||
"remoteBindAddress": "عنوان الربط عن بعد",
|
||||
"intermediateHost": "المضيف الوسيط",
|
||||
"endpointSshConfig": "إعدادات SSH للنهاية",
|
||||
"endpointSshHost": "مضيف SSH للنهاية",
|
||||
"endpointSshHostPlaceholder": "اختر مضيفًا مُعيّنًا",
|
||||
"endpointSshHostRequired": "اختر مضيف SSH للنهاية لكل نفق عميل.",
|
||||
"attempt": "محاولة {{current}} من {{max}}",
|
||||
"nextRetryIn": "إعادة المحاولة التالية في {{seconds}} ثانية",
|
||||
"clientTunnels": "أنفاق العميل",
|
||||
"clientTunnel": "نفق العميل",
|
||||
"addClientTunnel": "إضافة نفق عميل",
|
||||
"noClientTunnels": "لا توجد أنفاق عميل مُعدّة على سطح المكتب هذا.",
|
||||
"tunnelName": "اسم النفق",
|
||||
"remoteHost": "المضيف البعيد",
|
||||
"autoStart": "بدء تلقائي",
|
||||
"clientAutoStartDesc": "يبدأ عند فتح عميل سطح المكتب هذا ويبقى متصلاً.",
|
||||
"clientManualStartDesc": "استخدم بدء وإيقاف من هذا الصف. لن يقوم Termix بفتحه تلقائيًا.",
|
||||
"clientRemoteServerNote": "قد يتطلب التوجيه البعيد AllowTcpForwarding و GatewayPorts على خادم SSH للنهاية. يُغلق المنفذ البعيد عند فصل سطح المكتب هذا.",
|
||||
"clientTunnelStarted": "تم بدء نفق العميل",
|
||||
"clientTunnelStopped": "تم إيقاف نفق العميل",
|
||||
"tunnelTestSucceeded": "نجح اختبار النفق",
|
||||
"tunnelTestFailed": "فشل اختبار النفق",
|
||||
"localSaved": "تم حفظ أنفاق العميل",
|
||||
"localSaveError": "فشل حفظ أنفاق العميل المحلية",
|
||||
"invalidBindIp": "يجب أن يكون عنوان IP المحلي عنوان IPv4 صالحًا.",
|
||||
"invalidLocalTargetIp": "يجب أن يكون عنوان IP الهدف المحلي عنوان IPv4 صالحًا.",
|
||||
"invalidRemoteAddress": "يلزم وجود عنوان بعيد.",
|
||||
"invalidLocalPort": "يجب أن يكون المنفذ المحلي بين 1 و 65535.",
|
||||
"invalidRemotePort": "يجب أن يكون المنفذ البعيد بين 1 و 65535.",
|
||||
"invalidLocalTargetPort": "يجب أن يكون منفذ الهدف المحلي بين 1 و 65535.",
|
||||
"invalidEndpointPort": "يجب أن يكون منفذ النهاية بين 1 و 65535.",
|
||||
"duplicateAutoStartBind": "يمكن لنفق عميل تلقائي التشغيل واحد فقط استخدام {{bind}}.",
|
||||
"manualControlError": "فشل تحديث حالة النفق.",
|
||||
"active": "نشط",
|
||||
"start": "تشغيل",
|
||||
"stop": "إيقاف",
|
||||
"test": "اختبار",
|
||||
"type": "نوع النفق",
|
||||
"typeLocal": "محلي (-L)",
|
||||
"typeRemote": "بعيد (-R)",
|
||||
"typeDynamic": "ديناميكي (-D)",
|
||||
"typeServerLocalDesc": "من المضيف الحالي إلى نقطة النهاية.",
|
||||
"typeServerRemoteDesc": "من نقطة النهاية إلى المضيف الحالي.",
|
||||
"typeClientLocalDesc": "من الكمبيوتر المحلي إلى نقطة النهاية.",
|
||||
"typeClientRemoteDesc": "من نقطة النهاية إلى الكمبيوتر المحلي.",
|
||||
"typeClientDynamicDesc": "SOCKS على الكمبيوتر المحلي.",
|
||||
"typeDynamicDesc": "توجيه حركة مرور SOCKS5 CONNECT عبر SSH",
|
||||
"forwardDescriptionServerLocal": "من المضيف الحالي {{sourcePort}} إلى نقطة النهاية {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "من نقطة النهاية {{endpointPort}} إلى المضيف الحالي {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS على المضيف الحالي {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "من المحلي {{sourcePort}} إلى البعيد {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "من البعيد {{sourcePort}} إلى المحلي {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS على المنفذ المحلي {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} عبر {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS عبر {{endpoint}}",
|
||||
"autoNameClientLocal": "محلي {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → محلي {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} عبر {{endpoint}}",
|
||||
"route": "المسار:",
|
||||
"lastStarted": "آخر تشغيل",
|
||||
"lastTested": "آخر اختبار",
|
||||
"lastError": "آخر خطأ",
|
||||
"maxRetries": "الحد الأقصى لإعادة المحاولات",
|
||||
"maxRetriesDescription": "الحد الأقصى لعدد مرات إعادة المحاولة",
|
||||
"retryInterval": "فاصل إعادة المحاولة (ثوانٍ)",
|
||||
"retryIntervalDescription": "مدة الانتظار بين محاولات إعادة المحاولة",
|
||||
"local": "محلي",
|
||||
"remote": "البعيد",
|
||||
"destination": "الوجهة",
|
||||
"host": "المضيف",
|
||||
"mode": "الوضع",
|
||||
"noHostSelected": "لم يتم تحديد مضيف",
|
||||
"working": "جارٍ العمل..."
|
||||
"remote": "البعيد"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "اسحب للنقل",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "أنفاق سطح المكتب المحلية التي تستهدف مضيفي SSH المكونين.",
|
||||
"c2sTunnelPresets": "إعدادات النفق المُسبَقة للعميل",
|
||||
"c2sTunnelPresetsDesc": "احفظ قائمة الأنفاق المحلية لعميل سطح المكتب هذا كإعداد مُسبَق مسمى على الخادم، أو حمّل إعداداً مُسبَقاً إلى هذا العميل.",
|
||||
"c2sTunnelPresetsUnavailable": "إعدادات النفق المُسبَقة للعميل متاحة فقط في تطبيق سطح المكتب.",
|
||||
"c2sPresetName": "اسم الإعداد المُسبَق",
|
||||
"c2sPresetNamePlaceholder": "اسم الإعداد المُسبَق للعميل",
|
||||
"c2sPresetToLoad": "الإعداد المُسبَق للتحميل",
|
||||
"c2sNoPresetSelected": "لم يتم تحديد إعداد مُسبَق",
|
||||
"c2sNoPresets": "لا توجد إعدادات مُسبَقة محفوظة",
|
||||
"c2sLoadPreset": "تحميل",
|
||||
"c2sCurrentLocalConfig": "تم تكوين {{count}} نفق محلي للعميل على سطح المكتب هذا.",
|
||||
"c2sPresetSyncNote": "الإعدادات المُسبَقة هي لقطات واضحة؛ تحميل أحدها يستبدل قائمة الأنفاق المحلية لعميل سطح المكتب هذا.",
|
||||
"c2sPresetSaved": "تم حفظ الإعداد المُسبَق لنفق العميل",
|
||||
"c2sPresetLoaded": "تم تحميل الإعداد المُسبَق لنفق العميل محلياً",
|
||||
"c2sPresetRenamed": "تمت إعادة تسمية الإعداد المُسبَق لنفق العميل",
|
||||
"c2sPresetDeleted": "تم حذف الإعداد المُسبَق لنفق العميل",
|
||||
"c2sPresetLoadError": "فشل في تحميل إعدادات نفق العميل المُسبَقة"
|
||||
"c2sTunnelPresetsDesc": "احفظ قائمة الأنفاق المحلية لعميل سطح المكتب هذا كإعداد مُسبَق مسمى على الخادم، أو حمّل إعداداً مُسبَقاً إلى هذا العميل."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "اللغة",
|
||||
"keyPassword": "كلمة مرور المفتاح",
|
||||
"pastePrivateKey": "الصق مفتاحك الخاص هنا...",
|
||||
"localListenerHost": "127.0.0.1 (استماع محلي)",
|
||||
"localTargetHost": "127.0.0.1 (الهدف على هذا الكمبيوتر)",
|
||||
"remoteTargetHost": "127.0.0.1 (الهدف من نقطة النهاية)",
|
||||
"remoteBindHost": "127.0.0.1 (الاستماع على نقطة النهاية)",
|
||||
"socksListenerHost": "127.0.0.1 (مستمع SOCKS)",
|
||||
"enterPassword": "أدخل كلمة المرور",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "أدخل كلمة المرور"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "لوحة التحكم",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Дом",
|
||||
"terminal": "Терминал",
|
||||
"localTerminal": "Местен терминал",
|
||||
"tunnels": "Тунели",
|
||||
"fileManager": "Файлов мениджър",
|
||||
"serverStats": "Метрики на хоста",
|
||||
"admin": "Администратор",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Макроси",
|
||||
"hostManager": "Мениджър на домакини",
|
||||
"credentials": "Пълномощия",
|
||||
"portForwarding": "Препращане",
|
||||
"connections": "Връзки",
|
||||
"serial": "Сериен",
|
||||
"keepSideMenuOpen": "Запази менюто отворено",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Терминал",
|
||||
"tabRdp": "ПРСР",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Тунели",
|
||||
"tabStats": "Метрики на хоста",
|
||||
"tabTelnet": "Телнет",
|
||||
"tabSharing": "Споделяне",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Стартов фрагмент",
|
||||
"keepaliveIntervalLabel": "Интервал за поддържане на активност (секунди)",
|
||||
"maxKeepaliveMisses": "Максимални пропуски на Keepalive",
|
||||
"tunnelSettings": "Настройки на тунела",
|
||||
"enableTunneling": "Активиране на тунелиране",
|
||||
"enableTunnelingDesc": "Активиране на SSH тунелната функционалност за този хост",
|
||||
"serverTunnelsSection": "Сървърни тунели",
|
||||
"addTunnelBtn": "Добавяне на тунел",
|
||||
"noTunnelsConfigured": "Няма конфигурирани тунели.",
|
||||
"tunnelLabel": "Тунел {{number}}",
|
||||
"tunnelType": "Тип тунел",
|
||||
"tunnelModeLocalDesc": "Пренасочване на локален порт към порт на отдалечения сървър (или хост, достъпен от него).",
|
||||
"tunnelModeRemoteDesc": "Пренасочете порт на отдалечения сървър обратно към локален порт на вашата машина.",
|
||||
"tunnelModeDynamicDesc": "Създайте SOCKS5 прокси на локален порт за динамично пренасочване на портове.",
|
||||
"sameHost": "Този хост (директен тунел)",
|
||||
"endpointHost": "Краен хост",
|
||||
"endpointHostPlaceholder": "Същият хост, SSH хост или достъпен хост/IP адрес",
|
||||
"endpointPort": "Порт за крайна точка",
|
||||
"bindHost": "Свързване на хост",
|
||||
"sourcePort": "Източник Порт",
|
||||
"maxRetries": "Максимален брой повторни опити",
|
||||
"retryIntervalS": "Интервал на повторен опит (и)",
|
||||
"autoStartLabel": "Автоматично стартиране",
|
||||
"autoStartDesc": "Автоматично свързване на този тунел при зареждане на хоста",
|
||||
"tunnelConnecting": "Тунел, свързващ...",
|
||||
"tunnelDisconnected": "Тунелът е прекъснат",
|
||||
"failedToConnectTunnel": "Свързването не бе успешно",
|
||||
"failedToDisconnectTunnel": "Прекъсването не бе успешно",
|
||||
"enableTmuxMonitor": "Активиране на Tmux монитор",
|
||||
"enableTmuxMonitorDesc": "Показване на този хост в Tmux монитора и добавяне на неговите tmux действия към страничната лента",
|
||||
"enableTerminalToolbar": "Активиране на лентата с инструменти на терминала",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Обновяване",
|
||||
"addTag": "Добавяне на етикети...",
|
||||
"deleteConfirmBtn": "Изтриване",
|
||||
"tunnelRequirementsText": "SSH сървърът трябва да има зададени стойности за GatewayPorts (да), AllowTcpForwarding (да) и PermitRootLogin (да) в /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Да се изтрие ли „{{name}}“?",
|
||||
"enableAtLeastOneProtocol": "Активирайте поне един протокол по-горе, за да конфигурирате настройките за удостоверяване и връзка.",
|
||||
"keyPassphrase": "Ключова парола",
|
||||
"connectBtn": "Свържете се",
|
||||
"disconnectBtn": "Изключване",
|
||||
"basicInformation": "Основна информация",
|
||||
"authDetailsSection": "Детайли за удостоверяване",
|
||||
"credTypeLabel": "Тип",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "В местоназначението са запазени частични данни. Повторният опит ще се възобнови, когато връзката се възстанови."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Няма SSH тунели",
|
||||
"createFirstTunnelMessage": "Все още не сте създали SSH тунели. Конфигурирайте тунелни връзки в Host Manager, за да започнете.",
|
||||
"connected": "Свързан",
|
||||
"disconnected": "Изключен",
|
||||
"connecting": "Свързване...",
|
||||
"error": "Грешка",
|
||||
"canceling": "Анулиране...",
|
||||
"connect": "Свържете се",
|
||||
"disconnect": "Изключване",
|
||||
"cancel": "Отказ",
|
||||
"port": "Порт",
|
||||
"localPort": "Локален порт",
|
||||
"remotePort": "Отдалечен порт",
|
||||
"destinationPort": "Пристанище на местоназначение",
|
||||
"currentHostPort": "Текущ хост порт",
|
||||
"endpointPort": "Порт за крайна точка",
|
||||
"bindIp": "Локален IP адрес",
|
||||
"localAddress": "Местен адрес",
|
||||
"remoteAddress": "Отдалечен адрес",
|
||||
"destinationAddress": "Адрес на местоназначението",
|
||||
"remoteBindAddress": "Адрес за отдалечено свързване",
|
||||
"intermediateHost": "Междинен гостоприемник",
|
||||
"endpointSshConfig": "SSH конфигурация на крайна точка",
|
||||
"endpointSshHost": "SSH хост за крайна точка",
|
||||
"endpointSshHostPlaceholder": "Изберете конфигуриран хост",
|
||||
"endpointSshHostRequired": "Изберете SSH хост за крайна точка за всеки клиентски тунел.",
|
||||
"attempt": "Опит {{current}} от {{max}}",
|
||||
"nextRetryIn": "Следващ опит след {{seconds}} секунди",
|
||||
"clientTunnels": "Клиентски тунели",
|
||||
"clientTunnel": "Клиентски тунел",
|
||||
"addClientTunnel": "Добавяне на клиентски тунел",
|
||||
"noClientTunnels": "Няма конфигурирани клиентски тунели на този работен плот.",
|
||||
"tunnelName": "Име на тунела",
|
||||
"remoteHost": "Отдалечен хост",
|
||||
"autoStart": "Автоматично стартиране",
|
||||
"clientAutoStartDesc": "Стартира, когато този настолен клиент се отвори и остане свързан.",
|
||||
"clientManualStartDesc": "Използвайте „Старт“ и „Стоп“ от този ред. Termix няма да го отвори автоматично.",
|
||||
"clientRemoteServerNote": "Отдалеченото пренасочване може да изисква AllowTcpForwarding и GatewayPorts на SSH сървъра на крайната точка. Отдалеченият порт се затваря, когато този работен плот се изключи.",
|
||||
"clientTunnelStarted": "Тунелът на клиента е стартиран",
|
||||
"clientTunnelStopped": "Тунелът на клиента е спрян",
|
||||
"tunnelTestSucceeded": "Тестът в тунела е успешен",
|
||||
"tunnelTestFailed": "Тестът на тунела не беше успешен",
|
||||
"localSaved": "Клиентските тунели са запазени",
|
||||
"localSaveError": "Запазването на тунелите на локалните клиенти не бе успешно",
|
||||
"invalidBindIp": "Локалният IP адрес трябва да е валиден IPv4 адрес.",
|
||||
"invalidLocalTargetIp": "Локалният целеви IP адрес трябва да е валиден IPv4 адрес.",
|
||||
"invalidRemoteAddress": "Изисква се отдалечен адрес.",
|
||||
"invalidLocalPort": "Локалният порт трябва да е между 1 и 65535.",
|
||||
"invalidRemotePort": "Отдалеченият порт трябва да е между 1 и 65535.",
|
||||
"invalidLocalTargetPort": "Локалният целеви порт трябва да е между 1 и 65535.",
|
||||
"invalidEndpointPort": "Портът на крайната точка трябва да е между 1 и 65535.",
|
||||
"duplicateAutoStartBind": "Само един тунел за автоматично стартиране на клиент може да използва {{bind}}.",
|
||||
"manualControlError": "Актуализирането на състоянието на тунела не бе успешно.",
|
||||
"active": "Активен",
|
||||
"start": "Старт",
|
||||
"stop": "Спри",
|
||||
"test": "Тест",
|
||||
"type": "Тип тунел",
|
||||
"typeLocal": "Местен (-L)",
|
||||
"typeRemote": "Дистанционно (-R)",
|
||||
"typeDynamic": "Динамичен (-D)",
|
||||
"typeServerLocalDesc": "Текущ хост към крайна точка.",
|
||||
"typeServerRemoteDesc": "Крайна точка обратно към текущия хост.",
|
||||
"typeClientLocalDesc": "Локален компютър към крайна точка.",
|
||||
"typeClientRemoteDesc": "Крайна точка обратно към локалния компютър.",
|
||||
"typeClientDynamicDesc": "SOCKS на локален компютър.",
|
||||
"typeDynamicDesc": "Пренасочване на SOCKS5 CONNECT трафик през SSH",
|
||||
"forwardDescriptionServerLocal": "Текущ хост {{sourcePort}} → крайна точка {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Крайна точка {{endpointPort}} → текущ хост {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS на текущия хост {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Локален {{sourcePort}} → отдалечен {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Отдалечено {{sourcePort}} → локално {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS на локален порт {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} чрез {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ЧОРАПИ чрез {{endpoint}}",
|
||||
"autoNameClientLocal": "Местно {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → местен {{localPort}}",
|
||||
"autoNameClientDynamic": "ЧОРАПИ {{localPort}} чрез {{endpoint}}",
|
||||
"route": "Маршрут:",
|
||||
"lastStarted": "Последно стартирано",
|
||||
"lastTested": "Последно тествано",
|
||||
"lastError": "Последна грешка",
|
||||
"maxRetries": "Максимален брой повторни опити",
|
||||
"maxRetriesDescription": "Максимален брой опити за повторно опитване.",
|
||||
"retryInterval": "Интервал на повторен опит (секунди)",
|
||||
"retryIntervalDescription": "Време за изчакване между опитите за повторен опит.",
|
||||
"local": "Местно",
|
||||
"remote": "Дистанционно",
|
||||
"destination": "Дестинация",
|
||||
"host": "Домакин",
|
||||
"mode": "Режим",
|
||||
"noHostSelected": "Няма избран хост",
|
||||
"working": "Работа..."
|
||||
"remote": "Дистанционно"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Плъзнете, за да преместите",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Локални тунели за настолни компютри, насочени към конфигурирани SSH хостове.",
|
||||
"c2sTunnelPresets": "Предварителни настройки на клиентския тунел",
|
||||
"c2sTunnelPresetsDesc": "Запазете локалния списък с тунели на този настолен клиент като именуван предварително зададен сървър или заредете предварително зададена настройка обратно в този клиент.",
|
||||
"c2sTunnelPresetsUnavailable": "Предварителните настройки на клиентските тунели са налични само в настолния клиент.",
|
||||
"c2sPresetName": "Име на предварително зададена настройка",
|
||||
"c2sPresetNamePlaceholder": "Име на предварително зададена настройка на клиента",
|
||||
"c2sPresetToLoad": "Предварително зададено зареждане",
|
||||
"c2sNoPresetSelected": "Няма избрана предварително зададена настройка",
|
||||
"c2sNoPresets": "Няма запазени предварително зададени настройки",
|
||||
"c2sLoadPreset": "Зареждане",
|
||||
"c2sCurrentLocalConfig": "{{count}} локални клиентски тунели, конфигурирани на този работен плот.",
|
||||
"c2sPresetSyncNote": "Предварителните настройки са изрични снимки; зареждането на такава замества списъка с локални клиентски тунели на този настолен клиент.",
|
||||
"c2sPresetSaved": "Предварително зададена настройка за тунел на клиента е запазена",
|
||||
"c2sPresetLoaded": "Предварително зададена настройка за тунел на клиента, заредена локално",
|
||||
"c2sPresetRenamed": "Предварителното преименуване на клиентския тунел",
|
||||
"c2sPresetDeleted": "Предварително зададена настройка за тунел на клиента е изтрита",
|
||||
"c2sPresetLoadError": "Неуспешно зареждане на предварително зададени настройки за тунел на клиента"
|
||||
"c2sTunnelPresetsDesc": "Запазете локалния списък с тунели на този настолен клиент като именуван предварително зададен сървър или заредете предварително зададена настройка обратно в този клиент."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Език",
|
||||
"keyPassword": "ключова парола",
|
||||
"pastePrivateKey": "Поставете личния си ключ тук...",
|
||||
"localListenerHost": "127.0.0.1 (слушане локално)",
|
||||
"localTargetHost": "127.0.0.1 (цел на този компютър)",
|
||||
"remoteTargetHost": "127.0.0.1 (цел от крайната точка)",
|
||||
"remoteBindHost": "127.0.0.1 (слушане на крайната точка)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS слушател)",
|
||||
"enterPassword": "Въведете паролата си",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Въведете паролата си"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Табло за управление",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "হোম",
|
||||
"terminal": "টার্মিনাল",
|
||||
"localTerminal": "স্থানীয় টার্মিনাল",
|
||||
"tunnels": "টানেল",
|
||||
"fileManager": "ফাইল ম্যানেজার",
|
||||
"serverStats": "হোস্ট মেট্রিক্স",
|
||||
"admin": "প্রশাসক",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "ম্যাক্রো",
|
||||
"hostManager": "হোস্ট ম্যানেজার",
|
||||
"credentials": "যোগ্যতা",
|
||||
"portForwarding": "ফরোয়ার্ডিং",
|
||||
"connections": "সংযোগ",
|
||||
"serial": "সিরিয়াল",
|
||||
"keepSideMenuOpen": "মেনু খোলা রাখুন",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "টার্মিনাল",
|
||||
"tabRdp": "আরডিপি",
|
||||
"tabVnc": "ভিএনসি",
|
||||
"tabTunnels": "টানেল",
|
||||
"tabStats": "হোস্ট মেট্রিক্স",
|
||||
"tabTelnet": "টেলনেট",
|
||||
"tabSharing": "শেয়ারিং",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "স্টার্টআপ স্নিপেট",
|
||||
"keepaliveIntervalLabel": "কিপঅ্যালাইভ ব্যবধান (সেকেন্ড)",
|
||||
"maxKeepaliveMisses": "ম্যাক্স কিপঅ্যালাইভ মিস করে",
|
||||
"tunnelSettings": "টানেল সেটিংস",
|
||||
"enableTunneling": "টানেলিং সক্ষম করুন",
|
||||
"enableTunnelingDesc": "এই হোস্টের জন্য SSH টানেল কার্যকারিতা সক্রিয় করুন",
|
||||
"serverTunnelsSection": "সার্ভার টানেল",
|
||||
"addTunnelBtn": "টানেল যোগ করুন",
|
||||
"noTunnelsConfigured": "কোনো টানেল কনফিগার করা নেই।",
|
||||
"tunnelLabel": "টানেল {{number}}",
|
||||
"tunnelType": "টানেল টাইপ",
|
||||
"tunnelModeLocalDesc": "একটি স্থানীয় পোর্টকে রিমোট সার্ভারের (বা সেখান থেকে পৌঁছানো যায় এমন কোনো হোস্টের) একটি পোর্টে ফরওয়ার্ড করুন।",
|
||||
"tunnelModeRemoteDesc": "রিমোট সার্ভারের একটি পোর্ট আপনার মেশিনের লোকাল পোর্টে ফরওয়ার্ড করুন।",
|
||||
"tunnelModeDynamicDesc": "ডাইনামিক পোর্ট ফরওয়ার্ডিংয়ের জন্য লোকাল পোর্টে একটি SOCKS5 প্রক্সি তৈরি করুন।",
|
||||
"sameHost": "এই হোস্ট (সরাসরি টানেল)",
|
||||
"endpointHost": "এন্ডপয়েন্ট হোস্ট",
|
||||
"endpointHostPlaceholder": "একই হোস্ট, SSH হোস্ট, অথবা পৌঁছানো যায় এমন হোস্ট/আইপি",
|
||||
"endpointPort": "এন্ডপয়েন্ট পোর্ট",
|
||||
"bindHost": "হোস্টকে বাঁধুন",
|
||||
"sourcePort": "উৎস বন্দর",
|
||||
"maxRetries": "সর্বোচ্চ পুনঃপ্রচেষ্টা",
|
||||
"retryIntervalS": "পুনরায় চেষ্টার ব্যবধান (সেকেন্ড)",
|
||||
"autoStartLabel": "স্বয়ংক্রিয়-শুরু",
|
||||
"autoStartDesc": "হোস্ট লোড হলে এই টানেলটি স্বয়ংক্রিয়ভাবে সংযুক্ত করুন।",
|
||||
"tunnelConnecting": "সংযোগকারী টানেল...",
|
||||
"tunnelDisconnected": "টানেল বিচ্ছিন্ন",
|
||||
"failedToConnectTunnel": "সংযোগ করতে ব্যর্থ হয়েছে",
|
||||
"failedToDisconnectTunnel": "সংযোগ বিচ্ছিন্ন করতে ব্যর্থ হয়েছে",
|
||||
"enableTmuxMonitor": "Tmux মনিটর সক্রিয় করুন",
|
||||
"enableTmuxMonitorDesc": "এই হোস্টটিকে Tmux মনিটরে দেখান এবং এর tmux অ্যাকশনগুলো সাইডবারে যোগ করুন।",
|
||||
"enableTerminalToolbar": "টার্মিনাল টুলবার সক্রিয় করুন",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "রিফ্রেশ",
|
||||
"addTag": "ট্যাগ যোগ করুন...",
|
||||
"deleteConfirmBtn": "মুছে ফেলুন",
|
||||
"tunnelRequirementsText": "SSH সার্ভারের /etc/ssh/sshd_config ফাইলে GatewayPorts yes, AllowTcpForwarding yes, এবং PermitRootLogin yes সেট করা থাকতে হবে।",
|
||||
"deleteHostConfirm": "\"{{name}} \" মুছে ফেলুন?",
|
||||
"enableAtLeastOneProtocol": "প্রমাণীকরণ এবং সংযোগ সেটিংস কনফিগার করতে উপরের প্রোটোকলগুলোর মধ্যে অন্তত একটি সক্রিয় করুন।",
|
||||
"keyPassphrase": "মূল পাসফ্রেজ",
|
||||
"connectBtn": "সংযোগ করুন",
|
||||
"disconnectBtn": "সংযোগ বিচ্ছিন্ন করুন",
|
||||
"basicInformation": "মৌলিক তথ্য",
|
||||
"authDetailsSection": "প্রমাণীকরণের বিবরণ",
|
||||
"credTypeLabel": "প্রকার",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "গন্তব্যে আংশিক ডেটা সংরক্ষিত হয়েছে। সংযোগ ফিরে এলে পুনরায় চেষ্টা শুরু হবে।"
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "কোন SSH টানেল নেই",
|
||||
"createFirstTunnelMessage": "আপনি এখনও কোনো SSH টানেল তৈরি করেননি। শুরু করার জন্য হোস্ট ম্যানেজারে টানেল সংযোগগুলি কনফিগার করুন।",
|
||||
"connected": "সংযুক্ত",
|
||||
"disconnected": "বিচ্ছিন্ন",
|
||||
"connecting": "সংযোগ স্থাপন...",
|
||||
"error": "ত্রুটি",
|
||||
"canceling": "বাতিল করা হচ্ছে...",
|
||||
"connect": "সংযোগ করুন",
|
||||
"disconnect": "সংযোগ বিচ্ছিন্ন করুন",
|
||||
"cancel": "বাতিল করুন",
|
||||
"port": "বন্দর",
|
||||
"localPort": "স্থানীয় বন্দর",
|
||||
"remotePort": "রিমোট পোর্ট",
|
||||
"destinationPort": "গন্তব্য বন্দর",
|
||||
"currentHostPort": "বর্তমান হোস্ট পোর্ট",
|
||||
"endpointPort": "এন্ডপয়েন্ট পোর্ট",
|
||||
"bindIp": "স্থানীয় আইপি",
|
||||
"localAddress": "স্থানীয় ঠিকানা",
|
||||
"remoteAddress": "দূরবর্তী ঠিকানা",
|
||||
"destinationAddress": "গন্তব্য ঠিকানা",
|
||||
"remoteBindAddress": "রিমোট বাইন্ড অ্যাড্রেস",
|
||||
"intermediateHost": "মধ্যবর্তী হোস্ট",
|
||||
"endpointSshConfig": "এন্ডপয়েন্ট SSH কনফিগারেশন",
|
||||
"endpointSshHost": "এন্ডপয়েন্ট SSH হোস্ট",
|
||||
"endpointSshHostPlaceholder": "একটি কনফিগার করা হোস্ট নির্বাচন করুন",
|
||||
"endpointSshHostRequired": "প্রতিটি ক্লায়েন্ট টানেলের জন্য একটি এন্ডপয়েন্ট SSH হোস্ট নির্বাচন করুন।",
|
||||
"attempt": "{{max}} এর {{current}} প্রচেষ্টা",
|
||||
"nextRetryIn": "{{seconds}} সেকেন্ড পর আবার চেষ্টা করা হবে।",
|
||||
"clientTunnels": "ক্লায়েন্ট টানেল",
|
||||
"clientTunnel": "ক্লায়েন্ট টানেল",
|
||||
"addClientTunnel": "ক্লায়েন্ট টানেল যোগ করুন",
|
||||
"noClientTunnels": "এই ডেস্কটপে কোনো ক্লায়েন্ট টানেল কনফিগার করা নেই।",
|
||||
"tunnelName": "টানেলের নাম",
|
||||
"remoteHost": "রিমোট হোস্ট",
|
||||
"autoStart": "অটো স্টার্ট",
|
||||
"clientAutoStartDesc": "এই ডেস্কটপ ক্লায়েন্টটি খুললে এটি চালু হয় এবং সংযুক্ত থাকে।",
|
||||
"clientManualStartDesc": "এই সারি থেকে স্টার্ট এবং স্টপ ব্যবহার করুন। টারমিক্স এটি স্বয়ংক্রিয়ভাবে খুলবে না।",
|
||||
"clientRemoteServerNote": "রিমোট ফরওয়ার্ডিংয়ের জন্য এন্ডপয়েন্ট SSH সার্ভারে AllowTcpForwarding এবং GatewayPorts চালু করার প্রয়োজন হতে পারে। এই ডেস্কটপটি সংযোগ বিচ্ছিন্ন করলে রিমোট পোর্টটি বন্ধ হয়ে যায়।",
|
||||
"clientTunnelStarted": "ক্লায়েন্ট টানেল শুরু হয়েছে",
|
||||
"clientTunnelStopped": "ক্লায়েন্ট টানেল বন্ধ হয়ে গেছে",
|
||||
"tunnelTestSucceeded": "টানেল পরীক্ষা সফল হয়েছে",
|
||||
"tunnelTestFailed": "টানেল পরীক্ষা ব্যর্থ হয়েছে",
|
||||
"localSaved": "ক্লায়েন্ট টানেলগুলি সংরক্ষিত হয়েছে",
|
||||
"localSaveError": "স্থানীয় ক্লায়েন্ট টানেলগুলি সংরক্ষণ করতে ব্যর্থ হয়েছে",
|
||||
"invalidBindIp": "লোকাল আইপি অবশ্যই একটি বৈধ IPv4 অ্যাড্রেস হতে হবে।",
|
||||
"invalidLocalTargetIp": "স্থানীয় টার্গেট আইপি অবশ্যই একটি বৈধ IPv4 অ্যাড্রেস হতে হবে।",
|
||||
"invalidRemoteAddress": "দূরবর্তী ঠিকানা প্রয়োজন।",
|
||||
"invalidLocalPort": "স্থানীয় পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।",
|
||||
"invalidRemotePort": "রিমোট পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।",
|
||||
"invalidLocalTargetPort": "স্থানীয় টার্গেট পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।",
|
||||
"invalidEndpointPort": "এন্ডপয়েন্ট পোর্ট অবশ্যই ১ থেকে ৬৫৫৩৫-এর মধ্যে হতে হবে।",
|
||||
"duplicateAutoStartBind": "শুধুমাত্র একটি অটো-স্টার্ট ক্লায়েন্ট টানেল {{bind}} ব্যবহার করতে পারে।",
|
||||
"manualControlError": "টানেলের অবস্থা আপডেট করতে ব্যর্থ হয়েছে।",
|
||||
"active": "সক্রিয়",
|
||||
"start": "শুরু করুন",
|
||||
"stop": "থামুন",
|
||||
"test": "পরীক্ষা",
|
||||
"type": "টানেল টাইপ",
|
||||
"typeLocal": "স্থানীয় (-L)",
|
||||
"typeRemote": "রিমোট (-R)",
|
||||
"typeDynamic": "গতিশীল (-D)",
|
||||
"typeServerLocalDesc": "বর্তমান হোস্ট থেকে এন্ডপয়েন্ট।",
|
||||
"typeServerRemoteDesc": "এন্ডপয়েন্টটি বর্তমান হোস্টে ফিরে যাচ্ছে।",
|
||||
"typeClientLocalDesc": "স্থানীয় কম্পিউটার থেকে এন্ডপয়েন্ট পর্যন্ত।",
|
||||
"typeClientRemoteDesc": "এন্ডপয়েন্টটি স্থানীয় কম্পিউটারে ফিরে যাচ্ছে।",
|
||||
"typeClientDynamicDesc": "স্থানীয় কম্পিউটারে SOCKS।",
|
||||
"typeDynamicDesc": "SSH এর মাধ্যমে SOCKS5 CONNECT ট্র্যাফিক ফরওয়ার্ড করুন",
|
||||
"forwardDescriptionServerLocal": "বর্তমান হোস্ট {{sourcePort}} → শেষ বিন্দু {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "এন্ডপয়েন্ট {{endpointPort}} → বর্তমান হোস্ট {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "বর্তমান হোস্টে SOCKS {{sourcePort}}।",
|
||||
"forwardDescriptionClientLocal": "স্থানীয় {{sourcePort}} → দূরবর্তী {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "রিমোট {{sourcePort}} → লোকাল {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "স্থানীয় পোর্ট {{sourcePort}}-এ SOCKS।",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} {{endpoint}} এর মাধ্যমে",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} {{endpoint}} এর উপর → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "স্থানীয় {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → স্থানীয় {{localPort}}",
|
||||
"autoNameClientDynamic": "মোজা {{localPort}} {{endpoint}} এর মাধ্যমে",
|
||||
"route": "পথ:",
|
||||
"lastStarted": "সর্বশেষ শুরু হয়েছে",
|
||||
"lastTested": "সর্বশেষ পরীক্ষা করা হয়েছে",
|
||||
"lastError": "শেষ ত্রুটি",
|
||||
"maxRetries": "সর্বোচ্চ পুনঃপ্রচেষ্টা",
|
||||
"maxRetriesDescription": "পুনরায় চেষ্টার সর্বোচ্চ সংখ্যা।",
|
||||
"retryInterval": "পুনরায় চেষ্টার ব্যবধান (সেকেন্ড)",
|
||||
"retryIntervalDescription": "পুনরায় চেষ্টার মাঝে অপেক্ষার সময়।",
|
||||
"local": "স্থানীয়",
|
||||
"remote": "দূরবর্তী",
|
||||
"destination": "গন্তব্য",
|
||||
"host": "হোস্ট",
|
||||
"mode": "মোড",
|
||||
"noHostSelected": "কোন হোস্ট নির্বাচন করা হয়নি",
|
||||
"working": "কাজ চলছে..."
|
||||
"remote": "দূরবর্তী"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "সরাতে টেনে আনুন",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "কনফিগার করা SSH হোস্টগুলোকে লক্ষ্য করে স্থানীয় ডেস্কটপ টানেল।",
|
||||
"c2sTunnelPresets": "ক্লায়েন্ট টানেল প্রিসেট",
|
||||
"c2sTunnelPresetsDesc": "এই ডেস্কটপ ক্লায়েন্টের স্থানীয় টানেল তালিকাটিকে একটি নামযুক্ত সার্ভার প্রিসেট হিসাবে সংরক্ষণ করুন, অথবা এই ক্লায়েন্টে একটি প্রিসেট পুনরায় লোড করুন।",
|
||||
"c2sTunnelPresetsUnavailable": "ক্লায়েন্ট টানেল প্রিসেটগুলো শুধুমাত্র ডেস্কটপ ক্লায়েন্টে পাওয়া যায়।",
|
||||
"c2sPresetName": "পূর্বনির্ধারিত নাম",
|
||||
"c2sPresetNamePlaceholder": "ক্লায়েন্টের পূর্বনির্ধারিত নাম",
|
||||
"c2sPresetToLoad": "লোড করার জন্য প্রিসেট",
|
||||
"c2sNoPresetSelected": "কোনো পূর্বনির্ধারিত সেট নির্বাচন করা হয়নি",
|
||||
"c2sNoPresets": "কোন প্রিসেট সংরক্ষণ করা হয়নি",
|
||||
"c2sLoadPreset": "লোড",
|
||||
"c2sCurrentLocalConfig": "এই ডেস্কটপে {{count}} টি স্থানীয় ক্লায়েন্ট টানেল কনফিগার করা হয়েছে।",
|
||||
"c2sPresetSyncNote": "প্রিসেটগুলি হলো সুনির্দিষ্ট স্ন্যাপশট; এর কোনো একটি লোড করলে এই ডেস্কটপ ক্লায়েন্টের স্থানীয় ক্লায়েন্ট টানেল তালিকা প্রতিস্থাপিত হয়।",
|
||||
"c2sPresetSaved": "ক্লায়েন্ট টানেল প্রিসেট সংরক্ষিত",
|
||||
"c2sPresetLoaded": "ক্লায়েন্ট টানেল প্রিসেট স্থানীয়ভাবে লোড করা হয়েছে",
|
||||
"c2sPresetRenamed": "ক্লায়েন্ট টানেল প্রিসেটের নাম পরিবর্তন করা হয়েছে",
|
||||
"c2sPresetDeleted": "ক্লায়েন্ট টানেল প্রিসেট মুছে ফেলা হয়েছে",
|
||||
"c2sPresetLoadError": "ক্লায়েন্ট টানেল প্রিসেট লোড করতে ব্যর্থ হয়েছে"
|
||||
"c2sTunnelPresetsDesc": "এই ডেস্কটপ ক্লায়েন্টের স্থানীয় টানেল তালিকাটিকে একটি নামযুক্ত সার্ভার প্রিসেট হিসাবে সংরক্ষণ করুন, অথবা এই ক্লায়েন্টে একটি প্রিসেট পুনরায় লোড করুন।"
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "৩",
|
||||
"retryInterval": "১০",
|
||||
"language": "ভাষা",
|
||||
"keyPassword": "কী পাসওয়ার্ড",
|
||||
"pastePrivateKey": "আপনার প্রাইভেট কী এখানে পেস্ট করুন...",
|
||||
"localListenerHost": "১২৭.০.০.১ (স্থানীয়ভাবে শুনুন)",
|
||||
"localTargetHost": "১২৭.০.০.১ (এই কম্পিউটারে লক্ষ্যবস্তু)",
|
||||
"remoteTargetHost": "১২৭.০.০.১ (এন্ডপয়েন্ট থেকে টার্গেট)",
|
||||
"remoteBindHost": "১২৭.০.০.১ (এন্ডপয়েন্টে শুনুন)",
|
||||
"socksListenerHost": "১২৭.০.০.১ (SOCKS লিসেনার)",
|
||||
"enterPassword": "আপনার পাসওয়ার্ড লিখুন",
|
||||
"defaultPort": "২২",
|
||||
"defaultEndpointPort": "২২৪"
|
||||
"enterPassword": "আপনার পাসওয়ার্ড লিখুন"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "ড্যাশবোর্ড",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Inici",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal local",
|
||||
"tunnels": "Túnels",
|
||||
"fileManager": "Gestor de fitxers",
|
||||
"serverStats": "Mètriques de l'amfitrió",
|
||||
"admin": "Administrador",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macros",
|
||||
"hostManager": "Gestor d'amfitrions",
|
||||
"credentials": "Credencials",
|
||||
"portForwarding": "Reenviament",
|
||||
"connections": "Connexions",
|
||||
"serial": "Sèrie",
|
||||
"keepSideMenuOpen": "Mantenir el menú obert",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Túnels",
|
||||
"tabStats": "Mètriques de l'amfitrió",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Compartir",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Fragment d'inici",
|
||||
"keepaliveIntervalLabel": "Interval de manteniment (segons)",
|
||||
"maxKeepaliveMisses": "Màxims errors de manteniment en directe",
|
||||
"tunnelSettings": "Configuració del túnel",
|
||||
"enableTunneling": "Activa la tunelització",
|
||||
"enableTunnelingDesc": "Habilita la funcionalitat del túnel SSH per a aquest amfitrió",
|
||||
"serverTunnelsSection": "Túnels de servidor",
|
||||
"addTunnelBtn": "Afegeix un túnel",
|
||||
"noTunnelsConfigured": "No hi ha túnels configurats.",
|
||||
"tunnelLabel": "Túnel {{number}}",
|
||||
"tunnelType": "Tipus de túnel",
|
||||
"tunnelModeLocalDesc": "Reenvia un port local a un port del servidor remot (o a un host accessible des d'aquest).",
|
||||
"tunnelModeRemoteDesc": "Reenvia un port del servidor remot a un port local de la teva màquina.",
|
||||
"tunnelModeDynamicDesc": "Crea un proxy SOCKS5 en un port local per al reenviament dinàmic de ports.",
|
||||
"sameHost": "Aquest host (túnel directe)",
|
||||
"endpointHost": "Amfitrió de punt final",
|
||||
"endpointHostPlaceholder": "Mateix host, host SSH o host/IP accessible",
|
||||
"endpointPort": "Port de punt final",
|
||||
"bindHost": "Vincula l'amfitrió",
|
||||
"sourcePort": "Port d'origen",
|
||||
"maxRetries": "Màxim d'intents",
|
||||
"retryIntervalS": "Interval de reintent (s)",
|
||||
"autoStartLabel": "Inici automàtic",
|
||||
"autoStartDesc": "Connecta automàticament aquest túnel quan es carregui l'amfitrió",
|
||||
"tunnelConnecting": "Túnel que connecta...",
|
||||
"tunnelDisconnected": "Túnel desconnectat",
|
||||
"failedToConnectTunnel": "No s'ha pogut connectar",
|
||||
"failedToDisconnectTunnel": "No s'ha pogut desconnectar",
|
||||
"enableTmuxMonitor": "Activa el monitor Tmux",
|
||||
"enableTmuxMonitorDesc": "Mostra aquest host al monitor Tmux i afegeix les seves accions tmux a la barra lateral",
|
||||
"enableTerminalToolbar": "Habilita la barra d'eines del terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Actualitza",
|
||||
"addTag": "Afegeix etiquetes...",
|
||||
"deleteConfirmBtn": "Suprimeix",
|
||||
"tunnelRequirementsText": "El servidor SSH ha de tenir definits GatewayPorts sí, AllowTcpForwarding sí i PermitRootLogin sí a /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Voleu suprimir \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Activeu com a mínim un dels protocols anteriors per configurar l'autenticació i la connexió.",
|
||||
"keyPassphrase": "Contrasenya de clau",
|
||||
"connectBtn": "Connecta",
|
||||
"disconnectBtn": "Desconnecta",
|
||||
"basicInformation": "Informació bàsica",
|
||||
"authDetailsSection": "Detalls d'autenticació",
|
||||
"credTypeLabel": "Tipus",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "S'han conservat dades parcials a la destinació. El reintent es reprendrà quan es restableixi la connexió."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Sense túnels SSH",
|
||||
"createFirstTunnelMessage": "Encara no has creat cap túnel SSH. Configureu les connexions del túnel al Gestor d'amfitrions per començar.",
|
||||
"connected": "Connectat",
|
||||
"disconnected": "Desconnectat",
|
||||
"connecting": "Connectant...",
|
||||
"error": "Error",
|
||||
"canceling": "Cancel·lant...",
|
||||
"connect": "Connecta",
|
||||
"disconnect": "Desconnecta",
|
||||
"cancel": "Cancel·la",
|
||||
"port": "Port",
|
||||
"localPort": "Port local",
|
||||
"remotePort": "Port remot",
|
||||
"destinationPort": "Port de destinació",
|
||||
"currentHostPort": "Port d'amfitrió actual",
|
||||
"endpointPort": "Port del punt final",
|
||||
"bindIp": "IP local",
|
||||
"localAddress": "Adreça local",
|
||||
"remoteAddress": "Adreça remota",
|
||||
"destinationAddress": "Adreça de destinació",
|
||||
"remoteBindAddress": "Adreça d'enllaç remota",
|
||||
"intermediateHost": "Hoste intermedi",
|
||||
"endpointSshConfig": "Configuració SSH del punt final",
|
||||
"endpointSshHost": "Amfitrió SSH de punt final",
|
||||
"endpointSshHostPlaceholder": "Seleccioneu un amfitrió configurat",
|
||||
"endpointSshHostRequired": "Seleccioneu un host SSH de punt final per a cada túnel de client.",
|
||||
"attempt": "Intent {{current}} de {{max}}",
|
||||
"nextRetryIn": "Proper intent en {{seconds}} segons",
|
||||
"clientTunnels": "Túnels de client",
|
||||
"clientTunnel": "Túnel del client",
|
||||
"addClientTunnel": "Afegeix un túnel de client",
|
||||
"noClientTunnels": "No hi ha túnels de client configurats en aquest escriptori.",
|
||||
"tunnelName": "Nom del túnel",
|
||||
"remoteHost": "Amfitrió remot",
|
||||
"autoStart": "Inici automàtic",
|
||||
"clientAutoStartDesc": "S'inicia quan s'obre aquest client d'escriptori i roman connectat.",
|
||||
"clientManualStartDesc": "Feu servir Start i Stop des d'aquesta fila. Termix no l'obrirà automàticament.",
|
||||
"clientRemoteServerNote": "El reenviament remot pot requerir AllowTcpForwarding i GatewayPorts al servidor SSH del punt final. El port remot es tanca quan aquest escriptori es desconnecta.",
|
||||
"clientTunnelStarted": "Túnel del client iniciat",
|
||||
"clientTunnelStopped": "Túnel del client aturat",
|
||||
"tunnelTestSucceeded": "La prova del túnel ha tingut èxit",
|
||||
"tunnelTestFailed": "La prova del túnel ha fallat",
|
||||
"localSaved": "Túnels de client desats",
|
||||
"localSaveError": "No s'han pogut desar els túnels del client local.",
|
||||
"invalidBindIp": "La IP local ha de ser una adreça IPv4 vàlida.",
|
||||
"invalidLocalTargetIp": "La IP de destinació local ha de ser una adreça IPv4 vàlida.",
|
||||
"invalidRemoteAddress": "Cal una adreça remota.",
|
||||
"invalidLocalPort": "El port local ha d'estar entre 1 i 65535.",
|
||||
"invalidRemotePort": "El port remot ha d'estar entre 1 i 65535.",
|
||||
"invalidLocalTargetPort": "El port de destinació local ha d'estar entre 1 i 65535.",
|
||||
"invalidEndpointPort": "El port del punt final ha d'estar entre 1 i 65535.",
|
||||
"duplicateAutoStartBind": "Només un túnel de client d'inici automàtic pot utilitzar {{bind}}.",
|
||||
"manualControlError": "No s'ha pogut actualitzar l'estat del túnel.",
|
||||
"active": "Actiu",
|
||||
"start": "Inici",
|
||||
"stop": "Atura",
|
||||
"test": "Prova",
|
||||
"type": "Tipus de túnel",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Comandament a distància (-R)",
|
||||
"typeDynamic": "Dinàmic (-D)",
|
||||
"typeServerLocalDesc": "De l'amfitrió actual al punt final.",
|
||||
"typeServerRemoteDesc": "Punt final torna a l'amfitrió actual.",
|
||||
"typeClientLocalDesc": "Ordinador local al punt final.",
|
||||
"typeClientRemoteDesc": "Punt final de tornada a l'ordinador local.",
|
||||
"typeClientDynamicDesc": "SOCKS a l'ordinador local.",
|
||||
"typeDynamicDesc": "Reenvia el trànsit de SOCKS5 CONNECT a través de SSH",
|
||||
"forwardDescriptionServerLocal": "Amfitrió actual {{sourcePort}} → punt final {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Punt final {{endpointPort}} → amfitrió actual {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS a l'amfitrió actual {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remot {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Remot {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS al port local {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} a {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → MITJONS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "MITJONS {{localPort}} via {{endpoint}}",
|
||||
"route": "Ruta:",
|
||||
"lastStarted": "Últim inici",
|
||||
"lastTested": "Última prova",
|
||||
"lastError": "Últim error",
|
||||
"maxRetries": "Màxim d'intents",
|
||||
"maxRetriesDescription": "Nombre màxim d'intents de reintent.",
|
||||
"retryInterval": "Interval de reintent (segons)",
|
||||
"retryIntervalDescription": "Temps d'espera entre intents de reintent.",
|
||||
"local": "Local",
|
||||
"remote": "Remot",
|
||||
"destination": "Destinació",
|
||||
"host": "Amfitrió",
|
||||
"mode": "Mode",
|
||||
"noHostSelected": "No s'ha seleccionat cap amfitrió",
|
||||
"working": "Treballant..."
|
||||
"remote": "Remot"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Arrossega per moure",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Túnels d'escriptori locals dirigits a hosts SSH configurats.",
|
||||
"c2sTunnelPresets": "Preajustos del túnel del client",
|
||||
"c2sTunnelPresetsDesc": "Desa la llista de túnels locals d'aquest client d'escriptori com a predefinició de servidor amb nom o torna a carregar una predefinició en aquest client.",
|
||||
"c2sTunnelPresetsUnavailable": "Els preajustos del túnel del client només estan disponibles al client d'escriptori.",
|
||||
"c2sPresetName": "Nom predefinit",
|
||||
"c2sPresetNamePlaceholder": "Nom predefinit del client",
|
||||
"c2sPresetToLoad": "Predefinició per carregar",
|
||||
"c2sNoPresetSelected": "No s'ha seleccionat cap predefinició",
|
||||
"c2sNoPresets": "No s'han desat presets",
|
||||
"c2sLoadPreset": "Carrega",
|
||||
"c2sCurrentLocalConfig": "{{count}} túnel(s) de client local configurat(s) en aquest escriptori.",
|
||||
"c2sPresetSyncNote": "Els preajustaments són instantànies explícites; carregar-ne una substitueix la llista de túnels de clients locals d'aquest client d'escriptori.",
|
||||
"c2sPresetSaved": "S'ha desat la configuració predefinida del túnel del client",
|
||||
"c2sPresetLoaded": "Predefinició del túnel del client carregada localment",
|
||||
"c2sPresetRenamed": "S'ha canviat el nom de la predefinició del túnel del client",
|
||||
"c2sPresetDeleted": "S'ha suprimit la configuració predefinida del túnel del client",
|
||||
"c2sPresetLoadError": "No s'han pogut carregar els preajustos del túnel del client"
|
||||
"c2sTunnelPresetsDesc": "Desa la llista de túnels locals d'aquest client d'escriptori com a predefinició de servidor amb nom o torna a carregar una predefinició en aquest client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Llengua",
|
||||
"keyPassword": "contrasenya clau",
|
||||
"pastePrivateKey": "Enganxa la teva clau privada aquí...",
|
||||
"localListenerHost": "127.0.0.1 (escolta localment)",
|
||||
"localTargetHost": "127.0.0.1 (objectiu en aquest ordinador)",
|
||||
"remoteTargetHost": "127.0.0.1 (objectiu des del punt final)",
|
||||
"remoteBindHost": "127.0.0.1 (escolta al punt final)",
|
||||
"socksListenerHost": "127.0.0.1 (escoltador de SOCKS)",
|
||||
"enterPassword": "Introdueix la teva contrasenya",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Introdueix la teva contrasenya"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Tauler de control",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Domov",
|
||||
"terminal": "Terminál",
|
||||
"localTerminal": "Místní terminál",
|
||||
"tunnels": "Tunely",
|
||||
"fileManager": "Správce souborů",
|
||||
"serverStats": "Metriky hostitele",
|
||||
"admin": "Administrátor",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makra",
|
||||
"hostManager": "Hostitelský manažer",
|
||||
"credentials": "Pověření",
|
||||
"portForwarding": "Přeposílání",
|
||||
"connections": "Připojení",
|
||||
"serial": "Seriál",
|
||||
"keepSideMenuOpen": "Ponechat nabídku otevřenou",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminál",
|
||||
"tabRdp": "PRV",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunely",
|
||||
"tabStats": "Metriky hostitele",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Sdílení",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Úryvek pro spuštění",
|
||||
"keepaliveIntervalLabel": "Interval udržování aktivity (sekundy)",
|
||||
"maxKeepaliveMisses": "Max. chyb v Keepalive",
|
||||
"tunnelSettings": "Nastavení tunelu",
|
||||
"enableTunneling": "Povolit tunelování",
|
||||
"enableTunnelingDesc": "Povolit funkci SSH tunelu pro tohoto hostitele",
|
||||
"serverTunnelsSection": "Serverové tunely",
|
||||
"addTunnelBtn": "Přidat tunel",
|
||||
"noTunnelsConfigured": "Nejsou nakonfigurovány žádné tunely.",
|
||||
"tunnelLabel": "Tunel {{number}}",
|
||||
"tunnelType": "Typ tunelu",
|
||||
"tunnelModeLocalDesc": "Přesměrování lokálního portu na port na vzdáleném serveru (nebo na hostitele, který je z něj dosažitelný).",
|
||||
"tunnelModeRemoteDesc": "Přesměrujte port na vzdáleném serveru zpět na lokální port na vašem počítači.",
|
||||
"tunnelModeDynamicDesc": "Vytvořte proxy SOCKS5 na lokálním portu pro dynamické přesměrování portů.",
|
||||
"sameHost": "Tento hostitel (přímý tunel)",
|
||||
"endpointHost": "Koncový hostitel",
|
||||
"endpointHostPlaceholder": "Stejný hostitel, hostitel SSH nebo dostupný hostitel/IP adresa",
|
||||
"endpointPort": "Koncový port",
|
||||
"bindHost": "Vázat hostitele",
|
||||
"sourcePort": "Zdrojový port",
|
||||
"maxRetries": "Maximální počet opakování",
|
||||
"retryIntervalS": "Interval opakování (s)",
|
||||
"autoStartLabel": "Automatické spuštění",
|
||||
"autoStartDesc": "Automaticky připojit tento tunel po načtení hostitele",
|
||||
"tunnelConnecting": "Spojující tunel...",
|
||||
"tunnelDisconnected": "Tunel odpojen",
|
||||
"failedToConnectTunnel": "Připojení se nezdařilo",
|
||||
"failedToDisconnectTunnel": "Odpojení se nezdařilo",
|
||||
"enableTmuxMonitor": "Povolit monitorování Tmux",
|
||||
"enableTmuxMonitorDesc": "Zobrazit tohoto hostitele v Tmux Monitoru a přidat jeho tmux akce do postranního panelu",
|
||||
"enableTerminalToolbar": "Povolit panel nástrojů terminálu",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Obnovit",
|
||||
"addTag": "Přidat štítky...",
|
||||
"deleteConfirmBtn": "Vymazat",
|
||||
"tunnelRequirementsText": "SSH server musí mít v souboru /etc/ssh/sshd_config nastaveny hodnoty GatewayPorts – yes, AllowTcpForwarding – yes a PermitRootLogin – yes.",
|
||||
"deleteHostConfirm": "Smazat „{{name}}“?",
|
||||
"enableAtLeastOneProtocol": "Povolte alespoň jeden protokol výše pro konfiguraci nastavení ověřování a připojení.",
|
||||
"keyPassphrase": "Klíčová hesla",
|
||||
"connectBtn": "Připojit",
|
||||
"disconnectBtn": "Odpojit",
|
||||
"basicInformation": "Základní informace",
|
||||
"authDetailsSection": "Podrobnosti o ověřování",
|
||||
"credTypeLabel": "Typ",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "V cíli byla uložena částečná data. Po obnovení připojení bude pokus pokračovat."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Žádné SSH tunely",
|
||||
"createFirstTunnelMessage": "Zatím jste nevytvořili žádné SSH tunely. Chcete-li začít, nakonfigurujte tunelová připojení ve Správci hostitele.",
|
||||
"connected": "Připojeno",
|
||||
"disconnected": "Odpojeno",
|
||||
"connecting": "Spojovací...",
|
||||
"error": "Chyba",
|
||||
"canceling": "Rušení...",
|
||||
"connect": "Připojit",
|
||||
"disconnect": "Odpojit",
|
||||
"cancel": "Zrušit",
|
||||
"port": "Přístav",
|
||||
"localPort": "Místní port",
|
||||
"remotePort": "Vzdálený port",
|
||||
"destinationPort": "Cílový přístav",
|
||||
"currentHostPort": "Aktuální hostitelský port",
|
||||
"endpointPort": "Koncový port",
|
||||
"bindIp": "Místní IP adresa",
|
||||
"localAddress": "Místní adresa",
|
||||
"remoteAddress": "Vzdálená adresa",
|
||||
"destinationAddress": "Cílová adresa",
|
||||
"remoteBindAddress": "Adresa vzdálené vazby",
|
||||
"intermediateHost": "Mezihostitel",
|
||||
"endpointSshConfig": "Konfigurace SSH koncového bodu",
|
||||
"endpointSshHost": "Koncový SSH hostitel",
|
||||
"endpointSshHostPlaceholder": "Vyberte nakonfigurovaného hostitele",
|
||||
"endpointSshHostRequired": "Pro každý klientský tunel vyberte koncový bod SSH hostitele.",
|
||||
"attempt": "Pokus {{current}} z {{max}}",
|
||||
"nextRetryIn": "Další pokus za {{seconds}} sekund",
|
||||
"clientTunnels": "Klientské tunely",
|
||||
"clientTunnel": "Klientský tunel",
|
||||
"addClientTunnel": "Přidat klientský tunel",
|
||||
"noClientTunnels": "Na této ploše nejsou nakonfigurovány žádné klientské tunely.",
|
||||
"tunnelName": "Název tunelu",
|
||||
"remoteHost": "Vzdálený hostitel",
|
||||
"autoStart": "Automatický start",
|
||||
"clientAutoStartDesc": "Spustí se při otevření tohoto desktopového klienta a zůstane připojen.",
|
||||
"clientManualStartDesc": "Použijte Start a Stop z tohoto řádku. Termix jej neotevře automaticky.",
|
||||
"clientRemoteServerNote": "Vzdálené přesměrování může vyžadovat AllowTcpForwarding a GatewayPorts na SSH serveru koncového bodu. Vzdálený port se zavře, když se tato plocha odpojí.",
|
||||
"clientTunnelStarted": "Tunel klienta spuštěn",
|
||||
"clientTunnelStopped": "Tunel klienta zastaven",
|
||||
"tunnelTestSucceeded": "Test tunelu byl úspěšný",
|
||||
"tunnelTestFailed": "Test tunelu selhal",
|
||||
"localSaved": "Tunely klientů uloženy",
|
||||
"localSaveError": "Nepodařilo se uložit tunely lokálních klientů.",
|
||||
"invalidBindIp": "Lokální IP adresa musí být platná IPv4 adresa.",
|
||||
"invalidLocalTargetIp": "Lokální cílová IP adresa musí být platná IPv4 adresa.",
|
||||
"invalidRemoteAddress": "Je vyžadována vzdálená adresa.",
|
||||
"invalidLocalPort": "Místní port musí být v rozsahu od 1 do 65535.",
|
||||
"invalidRemotePort": "Vzdálený port musí být v rozsahu od 1 do 65535.",
|
||||
"invalidLocalTargetPort": "Lokální cílový port musí být v rozmezí od 1 do 65535.",
|
||||
"invalidEndpointPort": "Koncový port musí být v rozsahu od 1 do 65535.",
|
||||
"duplicateAutoStartBind": "Pouze jeden automaticky spouštěný klientský tunel může používat {{bind}}.",
|
||||
"manualControlError": "Nepodařilo se aktualizovat stav tunelu.",
|
||||
"active": "Aktivní",
|
||||
"start": "Start",
|
||||
"stop": "Zastávka",
|
||||
"test": "Test",
|
||||
"type": "Typ tunelu",
|
||||
"typeLocal": "Místní (-L)",
|
||||
"typeRemote": "Vzdálené (-R)",
|
||||
"typeDynamic": "Dynamický (-D)",
|
||||
"typeServerLocalDesc": "Aktuální hostitel ke koncovému bodu.",
|
||||
"typeServerRemoteDesc": "Koncový bod zpět k aktuálnímu hostiteli.",
|
||||
"typeClientLocalDesc": "Místní počítač ke koncovému bodu.",
|
||||
"typeClientRemoteDesc": "Koncový bod zpět k místnímu počítači.",
|
||||
"typeClientDynamicDesc": "SOCKS na lokálním počítači.",
|
||||
"typeDynamicDesc": "Přeposílání provozu SOCKS5 CONNECT přes SSH",
|
||||
"forwardDescriptionServerLocal": "Aktuální hostitel {{sourcePort}} → koncový bod {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Koncový bod {{endpointPort}} → aktuální hostitel {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS na aktuálním hostiteli {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Místní {{sourcePort}} → vzdálený {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Vzdálené {{sourcePort}} → místní {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS na lokálním portu {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} přes {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} na {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → PONOŽKY přes {{endpoint}}",
|
||||
"autoNameClientLocal": "Místní {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → místní {{localPort}}",
|
||||
"autoNameClientDynamic": "PONOŽKY {{localPort}} přes {{endpoint}}",
|
||||
"route": "Trasa:",
|
||||
"lastStarted": "Naposledy spuštěno",
|
||||
"lastTested": "Naposledy testováno",
|
||||
"lastError": "Poslední chyba",
|
||||
"maxRetries": "Maximální počet opakování",
|
||||
"maxRetriesDescription": "Maximální počet pokusů o opakování.",
|
||||
"retryInterval": "Interval opakování (sekundy)",
|
||||
"retryIntervalDescription": "Doba čekání mezi opakovanými pokusy.",
|
||||
"local": "Místní",
|
||||
"remote": "Vzdálený",
|
||||
"destination": "Cíl",
|
||||
"host": "Hostitel",
|
||||
"mode": "Režim",
|
||||
"noHostSelected": "Nebyl vybrán žádný hostitel",
|
||||
"working": "Pracovní..."
|
||||
"remote": "Vzdálený"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Přetažením přesunete",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokální tunely pro počítače cílené na nakonfigurované hostitele SSH.",
|
||||
"c2sTunnelPresets": "Přednastavení klientského tunelu",
|
||||
"c2sTunnelPresetsDesc": "Uložte seznam lokálních tunelů tohoto desktopového klienta jako pojmenovanou předvolbu serveru nebo načtěte předvolbu zpět do tohoto klienta.",
|
||||
"c2sTunnelPresetsUnavailable": "Přednastavení tunelů klienta jsou k dispozici pouze v klientské verzi pro stolní počítače.",
|
||||
"c2sPresetName": "Název předvolby",
|
||||
"c2sPresetNamePlaceholder": "Název předvolby klienta",
|
||||
"c2sPresetToLoad": "Předvolba k načtení",
|
||||
"c2sNoPresetSelected": "Není vybrána žádná předvolba",
|
||||
"c2sNoPresets": "Žádné předvolby nejsou uloženy",
|
||||
"c2sLoadPreset": "Zatížení",
|
||||
"c2sCurrentLocalConfig": "{{count}} lokálních klientských tunelů nakonfigurovaných na této ploše.",
|
||||
"c2sPresetSyncNote": "Předvolby jsou explicitní snímky; načtením jedné z nich se nahradí seznam tunelů lokálních klientů tohoto desktopového klienta.",
|
||||
"c2sPresetSaved": "Přednastavení klientského tunelu uloženo",
|
||||
"c2sPresetLoaded": "Přednastavení klientského tunelu načteno lokálně",
|
||||
"c2sPresetRenamed": "Přednastavení klientského tunelu přejmenováno",
|
||||
"c2sPresetDeleted": "Předvolba klientského tunelu smazána",
|
||||
"c2sPresetLoadError": "Nepodařilo se načíst předvolby tunelu klienta"
|
||||
"c2sTunnelPresetsDesc": "Uložte seznam lokálních tunelů tohoto desktopového klienta jako pojmenovanou předvolbu serveru nebo načtěte předvolbu zpět do tohoto klienta."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Jazyk",
|
||||
"keyPassword": "klíčové heslo",
|
||||
"pastePrivateKey": "Vložte sem svůj soukromý klíč...",
|
||||
"localListenerHost": "127.0.0.1 (poslouchat lokálně)",
|
||||
"localTargetHost": "127.0.0.1 (cíl na tomto počítači)",
|
||||
"remoteTargetHost": "127.0.0.1 (cíl z koncového bodu)",
|
||||
"remoteBindHost": "127.0.0.1 (naslouchání na koncovém bodě)",
|
||||
"socksListenerHost": "127.0.0.1 (posluchač SOCKS)",
|
||||
"enterPassword": "Zadejte své heslo",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Zadejte své heslo"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Hjem",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Lokal terminal",
|
||||
"tunnels": "Tunneler",
|
||||
"fileManager": "Filhåndtering",
|
||||
"serverStats": "Værtsmålinger",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makroer",
|
||||
"hostManager": "Værtsadministrator",
|
||||
"credentials": "Akkreditiver",
|
||||
"portForwarding": "Videresendelse",
|
||||
"connections": "Forbindelser",
|
||||
"serial": "Seriel",
|
||||
"keepSideMenuOpen": "Hold menuen åben",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "Landdistriktsudviklingsplan",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunneler",
|
||||
"tabStats": "Værtsmålinger",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Deling",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Opstartskodestykke",
|
||||
"keepaliveIntervalLabel": "Keepalive-interval (sekunder)",
|
||||
"maxKeepaliveMisses": "Max Keepalive misser",
|
||||
"tunnelSettings": "Tunnelindstillinger",
|
||||
"enableTunneling": "Aktivér tunnelering",
|
||||
"enableTunnelingDesc": "Aktivér SSH-tunnelfunktionalitet for denne vært",
|
||||
"serverTunnelsSection": "Servertunneler",
|
||||
"addTunnelBtn": "Tilføj tunnel",
|
||||
"noTunnelsConfigured": "Ingen tunneler konfigureret.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tunneltype",
|
||||
"tunnelModeLocalDesc": "Videresend en lokal port til en port på den eksterne server (eller en vært, der kan nås fra den).",
|
||||
"tunnelModeRemoteDesc": "Videresend en port på den eksterne server tilbage til en lokal port på din maskine.",
|
||||
"tunnelModeDynamicDesc": "Opret en SOCKS5-proxy på en lokal port til dynamisk portvideresendelse.",
|
||||
"sameHost": "Denne vært (direkte tunnel)",
|
||||
"endpointHost": "Endpoint-vært",
|
||||
"endpointHostPlaceholder": "Samme vært, SSH-vært eller tilgængelig vært/IP",
|
||||
"endpointPort": "Endepunktsport",
|
||||
"bindHost": "Bind vært",
|
||||
"sourcePort": "Kildeport",
|
||||
"maxRetries": "Maks. antal genforsøg",
|
||||
"retryIntervalS": "Gentagelsesinterval (s)",
|
||||
"autoStartLabel": "Automatisk start",
|
||||
"autoStartDesc": "Tilslut automatisk denne tunnel, når værten er indlæst",
|
||||
"tunnelConnecting": "Tunnelforbindelse...",
|
||||
"tunnelDisconnected": "Tunnelen afbrudt",
|
||||
"failedToConnectTunnel": "Kunne ikke oprette forbindelse",
|
||||
"failedToDisconnectTunnel": "Kunne ikke afbryde forbindelsen",
|
||||
"enableTmuxMonitor": "Aktivér Tmux-skærm",
|
||||
"enableTmuxMonitorDesc": "Vis denne vært i Tmux Monitor og tilføj dens tmux-handlinger til sidebjælken",
|
||||
"enableTerminalToolbar": "Aktivér Terminalværktøjslinjen",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Opfriske",
|
||||
"addTag": "Tilføj tags...",
|
||||
"deleteConfirmBtn": "Slet",
|
||||
"tunnelRequirementsText": "SSH-serveren skal have GatewayPorts angivet ja, AllowTcpForwarding ja og PermitRootLogin ja i /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Slet \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Aktiver mindst én af ovenstående protokoller for at konfigurere godkendelses- og forbindelsesindstillinger.",
|
||||
"keyPassphrase": "Nøgleadgangskode",
|
||||
"connectBtn": "Forbinde",
|
||||
"disconnectBtn": "Afbryde",
|
||||
"basicInformation": "Grundlæggende oplysninger",
|
||||
"authDetailsSection": "Godkendelsesoplysninger",
|
||||
"credTypeLabel": "Type",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Delvise data blev gemt på destinationen. Forsøget genoptages, når forbindelsen er tilbage."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Ingen SSH-tunneler",
|
||||
"createFirstTunnelMessage": "Du har endnu ikke oprettet nogen SSH-tunneler. Konfigurer tunnelforbindelser i Host Manager for at komme i gang.",
|
||||
"connected": "Forbundet",
|
||||
"disconnected": "Afbrudt",
|
||||
"connecting": "Forbinder...",
|
||||
"error": "Fejl",
|
||||
"canceling": "Annullerer...",
|
||||
"connect": "Forbinde",
|
||||
"disconnect": "Afbryde",
|
||||
"cancel": "Ophæve",
|
||||
"port": "Havn",
|
||||
"localPort": "Lokal havn",
|
||||
"remotePort": "Fjernport",
|
||||
"destinationPort": "Destinationshavn",
|
||||
"currentHostPort": "Nuværende værtsport",
|
||||
"endpointPort": "Endepunktsport",
|
||||
"bindIp": "Lokal IP-adresse",
|
||||
"localAddress": "Lokal adresse",
|
||||
"remoteAddress": "Fjernadresse",
|
||||
"destinationAddress": "Destinationsadresse",
|
||||
"remoteBindAddress": "Fjernbindingsadresse",
|
||||
"intermediateHost": "Mellemliggende vært",
|
||||
"endpointSshConfig": "Slutpunkts-SSH-konfiguration",
|
||||
"endpointSshHost": "Endpoint SSH-vært",
|
||||
"endpointSshHostPlaceholder": "Vælg en konfigureret vært",
|
||||
"endpointSshHostRequired": "Vælg en endpoint SSH-vært for hver klienttunnel.",
|
||||
"attempt": "Forsøg {{current}} af {{max}}",
|
||||
"nextRetryIn": "Næste forsøg om {{seconds}} sekunder",
|
||||
"clientTunnels": "Klienttunneler",
|
||||
"clientTunnel": "Klienttunnel",
|
||||
"addClientTunnel": "Tilføj klienttunnel",
|
||||
"noClientTunnels": "Ingen klienttunneller er konfigureret på dette skrivebord.",
|
||||
"tunnelName": "Tunnelnavn",
|
||||
"remoteHost": "Fjernvært",
|
||||
"autoStart": "Automatisk start",
|
||||
"clientAutoStartDesc": "Starter, når denne desktopklient åbnes og forbliver forbundet.",
|
||||
"clientManualStartDesc": "Brug Start og Stop fra denne række. Termix åbner den ikke automatisk.",
|
||||
"clientRemoteServerNote": "Fjernvideresendelse kan kræve AllowTcpForwarding og GatewayPorts på slutpunktets SSH-server. Fjernporten lukkes, når denne desktop afbryder forbindelsen.",
|
||||
"clientTunnelStarted": "Klienttunnel startet",
|
||||
"clientTunnelStopped": "Klienttunnel stoppet",
|
||||
"tunnelTestSucceeded": "Tunneltesten lykkedes",
|
||||
"tunnelTestFailed": "Tunneltest mislykkedes",
|
||||
"localSaved": "Klienttunneler gemt",
|
||||
"localSaveError": "Kunne ikke gemme lokale klienttunneller",
|
||||
"invalidBindIp": "Lokal IP-adresse skal være en gyldig IPv4-adresse.",
|
||||
"invalidLocalTargetIp": "Den lokale mål-IP-adresse skal være en gyldig IPv4-adresse.",
|
||||
"invalidRemoteAddress": "Fjernadresse er påkrævet.",
|
||||
"invalidLocalPort": "Den lokale port skal være mellem 1 og 65535.",
|
||||
"invalidRemotePort": "Fjernporten skal være mellem 1 og 65535.",
|
||||
"invalidLocalTargetPort": "Den lokale målport skal være mellem 1 og 65535.",
|
||||
"invalidEndpointPort": "Slutpunktsporten skal være mellem 1 og 65535.",
|
||||
"duplicateAutoStartBind": "Kun én autostart-klientunnel kan bruge {{bind}}.",
|
||||
"manualControlError": "Kunne ikke opdatere tunnelens tilstand.",
|
||||
"active": "Aktiv",
|
||||
"start": "Starte",
|
||||
"stop": "Stop",
|
||||
"test": "Prøve",
|
||||
"type": "Tunneltype",
|
||||
"typeLocal": "Lokal (-L)",
|
||||
"typeRemote": "Fjernbetjening (-R)",
|
||||
"typeDynamic": "Dynamisk (-D)",
|
||||
"typeServerLocalDesc": "Nuværende vært til slutpunkt.",
|
||||
"typeServerRemoteDesc": "Slutpunkt tilbage til nuværende vært.",
|
||||
"typeClientLocalDesc": "Lokal computer til slutpunkt.",
|
||||
"typeClientRemoteDesc": "Slutpunkt tilbage til lokal computer.",
|
||||
"typeClientDynamicDesc": "SOCKS på den lokale computer.",
|
||||
"typeDynamicDesc": "Videresend SOCKS5 CONNECT-trafik via SSH",
|
||||
"forwardDescriptionServerLocal": "Nuværende vært {{sourcePort}} → slutpunkt {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Slutpunkt {{endpointPort}} → nuværende vært {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS på nuværende vært {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokal {{sourcePort}} → fjern {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Fjern {{sourcePort}} → lokal {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS på lokal port {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} på {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → STRØMPER via {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}",
|
||||
"autoNameClientDynamic": "SOKKER {{localPort}} via {{endpoint}}",
|
||||
"route": "Rute:",
|
||||
"lastStarted": "Sidst startet",
|
||||
"lastTested": "Sidst testet",
|
||||
"lastError": "Sidste fejl",
|
||||
"maxRetries": "Maks. antal genforsøg",
|
||||
"maxRetriesDescription": "Maksimalt antal gentagne forsøg.",
|
||||
"retryInterval": "Interval for nye forsøg (sekunder)",
|
||||
"retryIntervalDescription": "Tid til at vente mellem nye forsøg.",
|
||||
"local": "Lokal",
|
||||
"remote": "Fjern",
|
||||
"destination": "Bestemmelsessted",
|
||||
"host": "Vært",
|
||||
"mode": "Mode",
|
||||
"noHostSelected": "Ingen vært valgt",
|
||||
"working": "Arbejder..."
|
||||
"remote": "Fjern"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Træk for at flytte",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokale desktop-tunneller, der er målrettet mod konfigurerede SSH-værter.",
|
||||
"c2sTunnelPresets": "Klienttunnelforudindstillinger",
|
||||
"c2sTunnelPresetsDesc": "Gem denne desktopklients lokale tunnelliste som en navngiven serverforudindstilling, eller indlæs en forudindstilling tilbage i denne klient.",
|
||||
"c2sTunnelPresetsUnavailable": "Forudindstillinger for klienttunnel er kun tilgængelige i desktopklienten.",
|
||||
"c2sPresetName": "Forudindstillet navn",
|
||||
"c2sPresetNamePlaceholder": "Klientens forudindstillingsnavn",
|
||||
"c2sPresetToLoad": "Forudindstilling til indlæsning",
|
||||
"c2sNoPresetSelected": "Ingen forudindstilling valgt",
|
||||
"c2sNoPresets": "Ingen forudindstillinger gemt",
|
||||
"c2sLoadPreset": "Indlæs",
|
||||
"c2sCurrentLocalConfig": "{{count}} lokale klienttunneler konfigureret på dette skrivebord.",
|
||||
"c2sPresetSyncNote": "Forudindstillinger er eksplicitte snapshots; indlæsning af en erstatter denne desktopklients lokale klienttunnelliste.",
|
||||
"c2sPresetSaved": "Forudindstilling for klienttunnel gemt",
|
||||
"c2sPresetLoaded": "Forudindstilling for klienttunnel indlæses lokalt",
|
||||
"c2sPresetRenamed": "Omdøbt forudindstilling for klienttunnel",
|
||||
"c2sPresetDeleted": "Forudindstilling for klienttunnel slettet",
|
||||
"c2sPresetLoadError": "Kunne ikke indlæse klienttunnelforudindstillinger"
|
||||
"c2sTunnelPresetsDesc": "Gem denne desktopklients lokale tunnelliste som en navngiven serverforudindstilling, eller indlæs en forudindstilling tilbage i denne klient."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Sprog",
|
||||
"keyPassword": "nøgleadgangskode",
|
||||
"pastePrivateKey": "Indsæt din private nøgle her...",
|
||||
"localListenerHost": "127.0.0.1 (lyt lokalt)",
|
||||
"localTargetHost": "127.0.0.1 (mål på denne computer)",
|
||||
"remoteTargetHost": "127.0.0.1 (mål fra slutpunkt)",
|
||||
"remoteBindHost": "127.0.0.1 (lyt på slutpunkt)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-lytter)",
|
||||
"enterPassword": "Indtast din adgangskode",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Indtast din adgangskode"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Startseite",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Lokales Terminal",
|
||||
"tunnels": "Tunnel",
|
||||
"fileManager": "Dateimanager",
|
||||
"serverStats": "Host-Metriken",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makros",
|
||||
"hostManager": "Host-Manager",
|
||||
"credentials": "Zugangsdaten",
|
||||
"portForwarding": "Weiterleitung",
|
||||
"connections": "Verbindungen",
|
||||
"serial": "Seriell",
|
||||
"keepSideMenuOpen": "Menü geöffnet lassen",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnel",
|
||||
"tabStats": "Host-Metriken",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Freigabe",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Startup-Snippet",
|
||||
"keepaliveIntervalLabel": "Keepalive-Intervall (Sekunden)",
|
||||
"maxKeepaliveMisses": "Max. Keepalive-Fehlschläge",
|
||||
"tunnelSettings": "Tunnel-Einstellungen",
|
||||
"enableTunneling": "Tunnel aktivieren",
|
||||
"enableTunnelingDesc": "SSH-Tunnel-Funktionalität für diesen Host aktivieren",
|
||||
"serverTunnelsSection": "Server-Tunnel",
|
||||
"addTunnelBtn": "Tunnel hinzufügen",
|
||||
"noTunnelsConfigured": "Keine Tunnel konfiguriert.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tunneltyp",
|
||||
"tunnelModeLocalDesc": "Leitet einen lokalen Port an einen Port auf dem Remote-Server (oder einen von dort erreichbaren Host) weiter.",
|
||||
"tunnelModeRemoteDesc": "Leitet einen Port auf dem Remote-Server zurück zu einem lokalen Port auf Ihrem Rechner weiter.",
|
||||
"tunnelModeDynamicDesc": "Erstellt einen SOCKS5-Proxy auf einem lokalen Port für dynamische Portweiterleitung.",
|
||||
"sameHost": "Dieser Host (direkter Tunnel)",
|
||||
"endpointHost": "Endpunkt-Host",
|
||||
"endpointHostPlaceholder": "Gleicher Host, SSH-Host oder erreichbarer Host/IP",
|
||||
"endpointPort": "Endpunkt-Port",
|
||||
"bindHost": "Bind-Host",
|
||||
"sourcePort": "Quellport",
|
||||
"maxRetries": "Max. Wiederholungen",
|
||||
"retryIntervalS": "Wiederholungsintervall (s)",
|
||||
"autoStartLabel": "Autostart",
|
||||
"autoStartDesc": "Diesen Tunnel automatisch verbinden, wenn der Host geladen wird",
|
||||
"tunnelConnecting": "Tunnel wird verbunden...",
|
||||
"tunnelDisconnected": "Tunnel getrennt",
|
||||
"failedToConnectTunnel": "Verbindungsaufbau fehlgeschlagen",
|
||||
"failedToDisconnectTunnel": "Trennung fehlgeschlagen",
|
||||
"enableTmuxMonitor": "Tmux-Monitor aktivieren",
|
||||
"enableTmuxMonitorDesc": "Diesen Host im Tmux-Monitor anzeigen und seine tmux-Aktionen zur Seitenleiste hinzufügen",
|
||||
"enableTerminalToolbar": "Terminal-Symbolleiste aktivieren",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Aktualisieren",
|
||||
"addTag": "Tags hinzufügen...",
|
||||
"deleteConfirmBtn": "Löschen",
|
||||
"tunnelRequirementsText": "Der SSH-Server muss in /etc/ssh/sshd_config die Optionen GatewayPorts yes, AllowTcpForwarding yes und PermitRootLogin yes gesetzt haben.",
|
||||
"deleteHostConfirm": "\"{{name}}\" löschen?",
|
||||
"enableAtLeastOneProtocol": "Aktivieren Sie mindestens ein Protokoll oben, um Authentifizierungs- und Verbindungseinstellungen zu konfigurieren.",
|
||||
"keyPassphrase": "Schlüsselpassphrase",
|
||||
"connectBtn": "Verbinden",
|
||||
"disconnectBtn": "Trennen",
|
||||
"basicInformation": "Grundlegende Informationen",
|
||||
"authDetailsSection": "Authentifizierungsdetails",
|
||||
"credTypeLabel": "Typ",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Unvollständige Daten wurden am Ziel beibehalten. Die Wiederholung wird fortgesetzt, sobald die Verbindung wiederhergestellt ist."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Keine SSH-Tunnel",
|
||||
"createFirstTunnelMessage": "Sie haben noch keine SSH-Tunnel erstellt. Konfigurieren Sie Tunnelverbindungen im Host-Manager, um zu beginnen.",
|
||||
"connected": "Verbunden",
|
||||
"disconnected": "Getrennt",
|
||||
"connecting": "Verbinde...",
|
||||
"error": "Fehler",
|
||||
"canceling": "Wird abgebrochen...",
|
||||
"connect": "Verbinden",
|
||||
"disconnect": "Trennen",
|
||||
"cancel": "Abbrechen",
|
||||
"port": "Port",
|
||||
"localPort": "Lokaler Port",
|
||||
"remotePort": "Remote-Port",
|
||||
"destinationPort": "Zielhafen",
|
||||
"currentHostPort": "Aktueller Host-Port",
|
||||
"endpointPort": "Endpunkt-Port",
|
||||
"bindIp": "Lokale IP",
|
||||
"localAddress": "Lokale Adresse",
|
||||
"remoteAddress": "Remote-Adresse",
|
||||
"destinationAddress": "Zieladresse",
|
||||
"remoteBindAddress": "Remote-Bind-Adresse",
|
||||
"intermediateHost": "Zwischenwirt",
|
||||
"endpointSshConfig": "Endpunkt-SSH-Konfiguration",
|
||||
"endpointSshHost": "Endpunkt-SSH-Host",
|
||||
"endpointSshHostPlaceholder": "Konfigurierten Host auswählen",
|
||||
"endpointSshHostRequired": "Wählen Sie einen Endpunkt-SSH-Host für jeden Client-Tunnel aus.",
|
||||
"attempt": "Versuch {{current}} von {{max}}",
|
||||
"nextRetryIn": "Nächster Wiederholungsversuch in {{seconds}} Sekunden",
|
||||
"clientTunnels": "Client-Tunnel",
|
||||
"clientTunnel": "Client-Tunnel",
|
||||
"addClientTunnel": "Client-Tunnel hinzufügen",
|
||||
"noClientTunnels": "Keine Client-Tunnel auf diesem Desktop konfiguriert.",
|
||||
"tunnelName": "Tunnelname",
|
||||
"remoteHost": "Remote-Host",
|
||||
"autoStart": "Autostart",
|
||||
"clientAutoStartDesc": "Startet automatisch, wenn dieser Desktop-Client geöffnet wird und die Verbindung aufrechterhalten wird.",
|
||||
"clientManualStartDesc": "Verwenden Sie Start und Stopp in dieser Zeile. Termix startet den Tunnel nicht automatisch.",
|
||||
"clientRemoteServerNote": "Remote-Weiterleitung erfordert möglicherweise AllowTcpForwarding und GatewayPorts auf dem Endpunkt-SSH-Server. Der entfernte Port wird geschlossen, wenn dieser Desktop die Verbindung trennt.",
|
||||
"clientTunnelStarted": "Client-Tunnel gestartet",
|
||||
"clientTunnelStopped": "Client-Tunnel gestoppt",
|
||||
"tunnelTestSucceeded": "Tunneltest erfolgreich",
|
||||
"tunnelTestFailed": "Tunneltest fehlgeschlagen",
|
||||
"localSaved": "Client-Tunnel gespeichert",
|
||||
"localSaveError": "Fehler beim Speichern der lokalen Client-Tunnel",
|
||||
"invalidBindIp": "Lokale IP muss eine gültige IPv4-Adresse sein.",
|
||||
"invalidLocalTargetIp": "Lokale Ziel-IP muss eine gültige IPv4-Adresse sein.",
|
||||
"invalidRemoteAddress": "Eine Remote-Adresse ist erforderlich.",
|
||||
"invalidLocalPort": "Lokaler Port muss zwischen 1 und 65535 liegen.",
|
||||
"invalidRemotePort": "Remote-Port muss zwischen 1 und 65535 liegen.",
|
||||
"invalidLocalTargetPort": "Lokaler Zielport muss zwischen 1 und 65535 liegen.",
|
||||
"invalidEndpointPort": "Endpunkt-Port muss zwischen 1 und 65535 liegen.",
|
||||
"duplicateAutoStartBind": "Nur ein automatisch startender Client-Tunnel kann {{bind}} verwenden.",
|
||||
"manualControlError": "Fehler beim Aktualisieren des Tunnelstatus.",
|
||||
"active": "Aktiv",
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"test": "Test",
|
||||
"type": "Tunneltyp",
|
||||
"typeLocal": "Lokal (-L)",
|
||||
"typeRemote": "Remote (-R)",
|
||||
"typeDynamic": "Dynamisch (-D)",
|
||||
"typeServerLocalDesc": "Vom aktuellen Host zum Endpunkt.",
|
||||
"typeServerRemoteDesc": "Vom Endpunkt zurück zum aktuellen Host.",
|
||||
"typeClientLocalDesc": "Vom lokalen Computer zum Endpunkt.",
|
||||
"typeClientRemoteDesc": "Vom Endpunkt zurück zum lokalen Computer.",
|
||||
"typeClientDynamicDesc": "SOCKS auf dem lokalen Computer.",
|
||||
"typeDynamicDesc": "SOCKS5 CONNECT-Verkehr über SSH weiterleiten.",
|
||||
"forwardDescriptionServerLocal": "Aktueller Host {{sourcePort}} → Endpunkt {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Endpunkt {{endpointPort}} → aktueller Host {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS auf aktuellem Host {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokal {{sourcePort}} → entfernt {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Entfernt {{sourcePort}} → lokal {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS auf lokalem Port {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} auf {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "Route:",
|
||||
"lastStarted": "Zuletzt gestartet",
|
||||
"lastTested": "Zuletzt getestet",
|
||||
"lastError": "Letzter Fehler",
|
||||
"maxRetries": "Max. Wiederholungen",
|
||||
"maxRetriesDescription": "Maximale Anzahl von Wiederholungsversuchen.",
|
||||
"retryInterval": "Wiederholungsintervall (Sekunden)",
|
||||
"retryIntervalDescription": "Wartezeit zwischen Wiederholungsversuchen.",
|
||||
"local": "Lokal",
|
||||
"remote": "Remote",
|
||||
"destination": "Ziel",
|
||||
"host": "Host",
|
||||
"mode": "Modus",
|
||||
"noHostSelected": "Kein Host ausgewählt",
|
||||
"working": "In Bearbeitung..."
|
||||
"remote": "Remote"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Zum Verschieben ziehen",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokale Desktop-Tunnel, die auf konfigurierte SSH-Hosts abzielen.",
|
||||
"c2sTunnelPresets": "Client-Tunnel-Voreinstellungen",
|
||||
"c2sTunnelPresetsDesc": "Speichern Sie die lokale Tunnel-Liste dieses Desktop-Clients als benannte Server-Voreinstellung oder laden Sie eine Voreinstellung zurück in diesen Client.",
|
||||
"c2sTunnelPresetsUnavailable": "Client-Tunnel-Voreinstellungen sind nur im Desktop-Client verfügbar.",
|
||||
"c2sPresetName": "Voreinstellungsname",
|
||||
"c2sPresetNamePlaceholder": "Name der Client-Voreinstellung",
|
||||
"c2sPresetToLoad": "Zu ladende Voreinstellung",
|
||||
"c2sNoPresetSelected": "Keine Voreinstellung ausgewählt",
|
||||
"c2sNoPresets": "Keine Voreinstellungen gespeichert",
|
||||
"c2sLoadPreset": "Laden",
|
||||
"c2sCurrentLocalConfig": "{{count}} lokale Client-Tunnel auf diesem Desktop konfiguriert.",
|
||||
"c2sPresetSyncNote": "Voreinstellungen sind explizite Snapshots; das Laden einer Voreinstellung ersetzt die lokale Client-Tunnel-Liste dieses Desktop-Clients.",
|
||||
"c2sPresetSaved": "Client-Tunnel-Voreinstellung gespeichert",
|
||||
"c2sPresetLoaded": "Client-Tunnel-Voreinstellung lokal geladen",
|
||||
"c2sPresetRenamed": "Client-Tunnel-Voreinstellung umbenannt",
|
||||
"c2sPresetDeleted": "Client-Tunnel-Voreinstellung gelöscht",
|
||||
"c2sPresetLoadError": "Fehler beim Laden der Client-Tunnel-Voreinstellungen"
|
||||
"c2sTunnelPresetsDesc": "Speichern Sie die lokale Tunnel-Liste dieses Desktop-Clients als benannte Server-Voreinstellung oder laden Sie eine Voreinstellung zurück in diesen Client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Sprache",
|
||||
"keyPassword": "Schlüsselpasswort",
|
||||
"pastePrivateKey": "Privaten Schlüssel hier einfügen...",
|
||||
"localListenerHost": "127.0.0.1 (lokal lauschen)",
|
||||
"localTargetHost": "127.0.0.1 (Ziel auf diesem Computer)",
|
||||
"remoteTargetHost": "127.0.0.1 (Ziel vom Endpunkt)",
|
||||
"remoteBindHost": "127.0.0.1 (auf Endpunkt lauschen)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-Listener)",
|
||||
"enterPassword": "Passwort eingeben",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Passwort eingeben"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Σπίτι",
|
||||
"terminal": "Τερματικό",
|
||||
"localTerminal": "Τοπικό τερματικό",
|
||||
"tunnels": "Σήραγγες",
|
||||
"fileManager": "Διαχειριστής αρχείων",
|
||||
"serverStats": "Μετρήσεις κεντρικού υπολογιστή",
|
||||
"admin": "Διαχειριστής",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Μακροεντολές",
|
||||
"hostManager": "Διευθυντής Υποδοχής",
|
||||
"credentials": "Διαπιστευτήρια",
|
||||
"portForwarding": "Προώθηση",
|
||||
"connections": "Συνδέσεις",
|
||||
"serial": "Σειράς",
|
||||
"keepSideMenuOpen": "Διατήρηση μενού ανοιχτού",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Τερματικό",
|
||||
"tabRdp": "ΠΑΑ",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Σήραγγες",
|
||||
"tabStats": "Μετρήσεις κεντρικού υπολογιστή",
|
||||
"tabTelnet": "Τέλνετ",
|
||||
"tabSharing": "Μοιρασιά",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Απόσπασμα εκκίνησης",
|
||||
"keepaliveIntervalLabel": "Διάστημα διατήρησης ζωντανής λειτουργίας (δευτερόλεπτα)",
|
||||
"maxKeepaliveMisses": "Ο Max Keepalive αστοχεί",
|
||||
"tunnelSettings": "Ρυθμίσεις σήραγγας",
|
||||
"enableTunneling": "Ενεργοποίηση σήραγγας",
|
||||
"enableTunnelingDesc": "Ενεργοποίηση λειτουργικότητας σήραγγας SSH για αυτόν τον κεντρικό υπολογιστή",
|
||||
"serverTunnelsSection": "Σήραγγες διακομιστή",
|
||||
"addTunnelBtn": "Προσθήκη σήραγγας",
|
||||
"noTunnelsConfigured": "Δεν έχουν διαμορφωθεί σήραγγες.",
|
||||
"tunnelLabel": "Σήραγγα {{number}}",
|
||||
"tunnelType": "Τύπος σήραγγας",
|
||||
"tunnelModeLocalDesc": "Προώθηση μιας τοπικής θύρας σε μια θύρα στον απομακρυσμένο διακομιστή (ή σε έναν κεντρικό υπολογιστή προσβάσιμο από αυτόν).",
|
||||
"tunnelModeRemoteDesc": "Προωθήστε μια θύρα στον απομακρυσμένο διακομιστή πίσω σε μια τοπική θύρα στο μηχάνημά σας.",
|
||||
"tunnelModeDynamicDesc": "Δημιουργήστε έναν διακομιστή μεσολάβησης SOCKS5 σε μια τοπική θύρα για δυναμική προώθηση θυρών.",
|
||||
"sameHost": "Αυτός ο κεντρικός υπολογιστής (άμεση σήραγγα)",
|
||||
"endpointHost": "Κεντρικός υπολογιστής τελικού σημείου",
|
||||
"endpointHostPlaceholder": "Ίδιος κεντρικός υπολογιστής, κεντρικός υπολογιστής SSH ή προσβάσιμος κεντρικός υπολογιστής/IP",
|
||||
"endpointPort": "Θύρα τελικού σημείου",
|
||||
"bindHost": "Bind Host",
|
||||
"sourcePort": "Θύρα πηγής",
|
||||
"maxRetries": "Μέγιστος αριθμός επαναλήψεων",
|
||||
"retryIntervalS": "Διάστημα επανάληψης (s)",
|
||||
"autoStartLabel": "Αυτόματη εκκίνηση",
|
||||
"autoStartDesc": "Αυτόματη σύνδεση αυτής της σήραγγας όταν φορτωθεί ο κεντρικός υπολογιστής",
|
||||
"tunnelConnecting": "Σύνδεση σήραγγας...",
|
||||
"tunnelDisconnected": "Η σήραγγα αποσυνδέθηκε",
|
||||
"failedToConnectTunnel": "Αποτυχία σύνδεσης",
|
||||
"failedToDisconnectTunnel": "Η αποσύνδεση απέτυχε",
|
||||
"enableTmuxMonitor": "Ενεργοποίηση παρακολούθησης Tmux",
|
||||
"enableTmuxMonitorDesc": "Εμφάνιση αυτού του κεντρικού υπολογιστή στην οθόνη Tmux και προσθήκη των ενεργειών tmux του στην πλαϊνή μπάρα",
|
||||
"enableTerminalToolbar": "Ενεργοποίηση γραμμής εργαλείων τερματικού",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Φρεσκάρω",
|
||||
"addTag": "Προσθήκη ετικετών...",
|
||||
"deleteConfirmBtn": "Διαγράφω",
|
||||
"tunnelRequirementsText": "Ο διακομιστής SSH πρέπει να έχει ορίσει τις τιμές GatewayPorts yes, AllowTcpForwarding yes και PermitRootLogin yes στο /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Διαγραφή του \"{{name}}\";",
|
||||
"enableAtLeastOneProtocol": "Ενεργοποιήστε τουλάχιστον ένα από τα παραπάνω πρωτόκολλα για να διαμορφώσετε τις ρυθμίσεις ελέγχου ταυτότητας και σύνδεσης.",
|
||||
"keyPassphrase": "Κλειδί Κωδικός πρόσβασης",
|
||||
"connectBtn": "Συνδέω",
|
||||
"disconnectBtn": "Αποσυνδέω",
|
||||
"basicInformation": "Βασικές πληροφορίες",
|
||||
"authDetailsSection": "Λεπτομέρειες ελέγχου ταυτότητας",
|
||||
"credTypeLabel": "Τύπος",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Μερικά δεδομένα διατηρήθηκαν στον προορισμό. Η επανάληψη θα συνεχιστεί όταν αποκατασταθεί η σύνδεση."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Δεν υπάρχουν σήραγγες SSH",
|
||||
"createFirstTunnelMessage": "Δεν έχετε δημιουργήσει ακόμη σήραγγες SSH. Διαμορφώστε τις συνδέσεις σήραγγας στο Host Manager για να ξεκινήσετε.",
|
||||
"connected": "Συνδεδεμένος",
|
||||
"disconnected": "Ασύνδετος",
|
||||
"connecting": "Συνδετικός...",
|
||||
"error": "Σφάλμα",
|
||||
"canceling": "Ακύρωση...",
|
||||
"connect": "Συνδέω",
|
||||
"disconnect": "Αποσυνδέω",
|
||||
"cancel": "Ματαίωση",
|
||||
"port": "Λιμάνι",
|
||||
"localPort": "Τοπικό Λιμάνι",
|
||||
"remotePort": "Απομακρυσμένη θύρα",
|
||||
"destinationPort": "Λιμάνι προορισμού",
|
||||
"currentHostPort": "Τρέχουσα θύρα κεντρικού υπολογιστή",
|
||||
"endpointPort": "Θύρα τελικού σημείου",
|
||||
"bindIp": "Τοπική IP",
|
||||
"localAddress": "Τοπική διεύθυνση",
|
||||
"remoteAddress": "Απομακρυσμένη διεύθυνση",
|
||||
"destinationAddress": "Διεύθυνση προορισμού",
|
||||
"remoteBindAddress": "Διεύθυνση απομακρυσμένης σύνδεσης",
|
||||
"intermediateHost": "Ενδιάμεσος οικοδεσπότης",
|
||||
"endpointSshConfig": "Ρύθμιση παραμέτρων SSH τελικού σημείου",
|
||||
"endpointSshHost": "Κεντρικός υπολογιστής SSH τελικού σημείου",
|
||||
"endpointSshHostPlaceholder": "Επιλέξτε έναν διαμορφωμένο κεντρικό υπολογιστή",
|
||||
"endpointSshHostRequired": "Επιλέξτε έναν κεντρικό υπολογιστή SSH τελικού σημείου για κάθε σήραγγα πελάτη.",
|
||||
"attempt": "Προσπάθεια {{current}} από {{max}}",
|
||||
"nextRetryIn": "Επόμενη προσπάθεια σε {{seconds}} δευτερόλεπτα",
|
||||
"clientTunnels": "Σήραγγες Πελατών",
|
||||
"clientTunnel": "Σήραγγα Πελάτη",
|
||||
"addClientTunnel": "Προσθήκη σήραγγας πελάτη",
|
||||
"noClientTunnels": "Δεν έχουν ρυθμιστεί σήραγγες-πελάτες σε αυτήν την επιφάνεια εργασίας.",
|
||||
"tunnelName": "Όνομα σήραγγας",
|
||||
"remoteHost": "Απομακρυσμένος κεντρικός υπολογιστής",
|
||||
"autoStart": "Αυτόματη έναρξη",
|
||||
"clientAutoStartDesc": "Ξεκινά όταν ανοίξει αυτός ο υπολογιστής-πελάτης επιφάνειας εργασίας και παραμένει συνδεδεμένος.",
|
||||
"clientManualStartDesc": "Χρησιμοποιήστε τις εντολές Έναρξη και Διακοπή από αυτήν τη γραμμή. Το Termix δεν θα την ανοίξει αυτόματα.",
|
||||
"clientRemoteServerNote": "Η απομακρυσμένη προώθηση ενδέχεται να απαιτεί AllowTcpForwarding και GatewayPorts στον διακομιστή SSH τελικού σημείου. Η απομακρυσμένη θύρα κλείνει όταν αποσυνδεθεί αυτή η επιφάνεια εργασίας.",
|
||||
"clientTunnelStarted": "Ξεκίνησε η σήραγγα πελατών",
|
||||
"clientTunnelStopped": "Η σήραγγα πελατών διακόπηκε",
|
||||
"tunnelTestSucceeded": "Η δοκιμή της σήραγγας ήταν επιτυχής",
|
||||
"tunnelTestFailed": "Η δοκιμή σήραγγας απέτυχε",
|
||||
"localSaved": "Οι σήραγγες πελατών αποθηκεύτηκαν",
|
||||
"localSaveError": "Αποτυχία αποθήκευσης τοπικών σηράγγων πελατών",
|
||||
"invalidBindIp": "Η τοπική διεύθυνση IP πρέπει να είναι μια έγκυρη διεύθυνση IPv4.",
|
||||
"invalidLocalTargetIp": "Η τοπική IP προορισμού πρέπει να είναι μια έγκυρη διεύθυνση IPv4.",
|
||||
"invalidRemoteAddress": "Απαιτείται απομακρυσμένη διεύθυνση.",
|
||||
"invalidLocalPort": "Η τοπική θύρα πρέπει να είναι μεταξύ 1 και 65535.",
|
||||
"invalidRemotePort": "Η απομακρυσμένη θύρα πρέπει να είναι μεταξύ 1 και 65535.",
|
||||
"invalidLocalTargetPort": "Η τοπική θύρα προορισμού πρέπει να είναι μεταξύ 1 και 65535.",
|
||||
"invalidEndpointPort": "Η θύρα τελικού σημείου πρέπει να είναι μεταξύ 1 και 65535.",
|
||||
"duplicateAutoStartBind": "Μόνο μία σήραγγα προγράμματος-πελάτη αυτόματης εκκίνησης μπορεί να χρησιμοποιήσει το {{bind}}.",
|
||||
"manualControlError": "Αποτυχία ενημέρωσης κατάστασης σήραγγας.",
|
||||
"active": "Ενεργός",
|
||||
"start": "Αρχή",
|
||||
"stop": "Στάση",
|
||||
"test": "Δοκιμή",
|
||||
"type": "Τύπος σήραγγας",
|
||||
"typeLocal": "Τοπικό (-L)",
|
||||
"typeRemote": "Τηλεχειριστήριο (-R)",
|
||||
"typeDynamic": "Δυναμικό (-D)",
|
||||
"typeServerLocalDesc": "Τρέχων κεντρικός υπολογιστής προς τελικό σημείο.",
|
||||
"typeServerRemoteDesc": "Επιστροφή στο τελικό σημείο στον τρέχοντα κεντρικό υπολογιστή.",
|
||||
"typeClientLocalDesc": "Τοπικός υπολογιστής προς τελικό σημείο.",
|
||||
"typeClientRemoteDesc": "Επιστροφή στο τελικό σημείο στον τοπικό υπολογιστή.",
|
||||
"typeClientDynamicDesc": "SOCKS στον τοπικό υπολογιστή.",
|
||||
"typeDynamicDesc": "Προώθηση κίνησης SOCKS5 CONNECT μέσω SSH",
|
||||
"forwardDescriptionServerLocal": "Τρέχων κεντρικός υπολογιστής {{sourcePort}} → τελικό σημείο {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Τελικό σημείο {{endpointPort}} → τρέχων κεντρικός υπολογιστής {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS στον τρέχοντα κεντρικό υπολογιστή {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Τοπικό {{sourcePort}} → απομακρυσμένο {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Απομακρυσμένο {{sourcePort}} → τοπικό {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS στην τοπική θύρα {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} μέσω {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} στις {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ΚΑΛΤΣΕΣ μέσω {{endpoint}}",
|
||||
"autoNameClientLocal": "Τοπικό {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → τοπικό {{localPort}}",
|
||||
"autoNameClientDynamic": "ΚΑΛΤΣΕΣ {{localPort}} μέσω {{endpoint}}",
|
||||
"route": "Διαδρομή:",
|
||||
"lastStarted": "Τελευταία έναρξη",
|
||||
"lastTested": "Τελευταία δοκιμή",
|
||||
"lastError": "Τελευταίο σφάλμα",
|
||||
"maxRetries": "Μέγιστος αριθμός επαναλήψεων",
|
||||
"maxRetriesDescription": "Μέγιστος αριθμός επαναληπτικών προσπαθειών.",
|
||||
"retryInterval": "Διάστημα επανάληψης (δευτερόλεπτα)",
|
||||
"retryIntervalDescription": "Χρόνος αναμονής μεταξύ των επαναληπτικών προσπαθειών.",
|
||||
"local": "Τοπικός",
|
||||
"remote": "Μακρινός",
|
||||
"destination": "Προορισμός",
|
||||
"host": "Πλήθος",
|
||||
"mode": "Τρόπος",
|
||||
"noHostSelected": "Δεν έχει επιλεγεί κεντρικός υπολογιστής",
|
||||
"working": "Εργαζόμενος..."
|
||||
"remote": "Μακρινός"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Σύρετε για μετακίνηση",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Τοπικές σήραγγες επιφάνειας εργασίας που στοχεύουν διαμορφωμένους κεντρικούς υπολογιστές SSH.",
|
||||
"c2sTunnelPresets": "Προεπιλογές σήραγγας πελάτη",
|
||||
"c2sTunnelPresetsDesc": "Αποθηκεύστε τη λίστα τοπικής σήραγγας αυτού του υπολογιστή-πελάτη ως προκαθορισμένη ρύθμιση διακομιστή με όνομα ή φορτώστε ξανά μια προκαθορισμένη ρύθμιση σε αυτόν τον υπολογιστή-πελάτη.",
|
||||
"c2sTunnelPresetsUnavailable": "Οι προεπιλογές σήραγγας προγράμματος-πελάτη είναι διαθέσιμες μόνο στον υπολογιστή-πελάτη για υπολογιστές.",
|
||||
"c2sPresetName": "Όνομα προεπιλογής",
|
||||
"c2sPresetNamePlaceholder": "Όνομα προεπιλογής πελάτη",
|
||||
"c2sPresetToLoad": "Προεπιλογή για φόρτωση",
|
||||
"c2sNoPresetSelected": "Δεν έχει επιλεγεί προεπιλογή",
|
||||
"c2sNoPresets": "Δεν έχουν αποθηκευτεί προεπιλογές",
|
||||
"c2sLoadPreset": "Φορτίο",
|
||||
"c2sCurrentLocalConfig": "{{count}} τοπική(ές) διοχέτευση(εις) πελάτη που έχουν ρυθμιστεί σε αυτήν την επιφάνεια εργασίας.",
|
||||
"c2sPresetSyncNote": "Οι προεπιλογές είναι σαφή στιγμιότυπα. Η φόρτωση ενός αντικαθιστά τη λίστα τοπικής σήραγγας πελατών αυτού του υπολογιστή-πελάτη επιφάνειας εργασίας.",
|
||||
"c2sPresetSaved": "Η προεπιλογή σήραγγας πελάτη αποθηκεύτηκε",
|
||||
"c2sPresetLoaded": "Η προεπιλογή σήραγγας πελάτη φορτώθηκε τοπικά",
|
||||
"c2sPresetRenamed": "Η προεπιλογή σήραγγας πελάτη μετονομάστηκε",
|
||||
"c2sPresetDeleted": "Η προεπιλογή σήραγγας πελάτη διαγράφηκε",
|
||||
"c2sPresetLoadError": "Αποτυχία φόρτωσης προεπιλογών σήραγγας πελάτη"
|
||||
"c2sTunnelPresetsDesc": "Αποθηκεύστε τη λίστα τοπικής σήραγγας αυτού του υπολογιστή-πελάτη ως προκαθορισμένη ρύθμιση διακομιστή με όνομα ή φορτώστε ξανά μια προκαθορισμένη ρύθμιση σε αυτόν τον υπολογιστή-πελάτη."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Γλώσσα",
|
||||
"keyPassword": "κωδικός πρόσβασης κλειδιού",
|
||||
"pastePrivateKey": "Επικολλήστε το ιδιωτικό σας κλειδί εδώ...",
|
||||
"localListenerHost": "127.0.0.1 (ακρόαση τοπικά)",
|
||||
"localTargetHost": "127.0.0.1 (προορισμός σε αυτόν τον υπολογιστή)",
|
||||
"remoteTargetHost": "127.0.0.1 (στόχος από το τελικό σημείο)",
|
||||
"remoteBindHost": "127.0.0.1 (ακρόαση στο τελικό σημείο)",
|
||||
"socksListenerHost": "127.0.0.1 (ακροατής SOCKS)",
|
||||
"enterPassword": "Εισαγάγετε τον κωδικό πρόσβασής σας",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Εισαγάγετε τον κωδικό πρόσβασής σας"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Ταμπλό",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Inicio",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal local",
|
||||
"tunnels": "Túneles",
|
||||
"fileManager": "Gestor de archivos",
|
||||
"serverStats": "Métricas del host",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macros",
|
||||
"hostManager": "Gestor de hosts",
|
||||
"credentials": "Credenciales",
|
||||
"portForwarding": "Reenvío",
|
||||
"connections": "Conexiones",
|
||||
"serial": "Serial",
|
||||
"keepSideMenuOpen": "Mantener el menú abierto",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Túneles",
|
||||
"tabStats": "Métricas del host",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Compartir",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Fragmento de inicio",
|
||||
"keepaliveIntervalLabel": "Intervalo de keepalive (segundos)",
|
||||
"maxKeepaliveMisses": "Máximo de fallos de keepalive",
|
||||
"tunnelSettings": "Configuración de túnel",
|
||||
"enableTunneling": "Habilitar tunelización",
|
||||
"enableTunnelingDesc": "Habilitar la funcionalidad de túnel SSH para este host",
|
||||
"serverTunnelsSection": "Túneles del servidor",
|
||||
"addTunnelBtn": "Añadir túnel",
|
||||
"noTunnelsConfigured": "No hay túneles configurados.",
|
||||
"tunnelLabel": "Túnel {{number}}",
|
||||
"tunnelType": "Tipo de túnel",
|
||||
"tunnelModeLocalDesc": "Reenviar un puerto local a un puerto en el servidor remoto (o a un host accesible desde él).",
|
||||
"tunnelModeRemoteDesc": "Reenviar un puerto del servidor remoto a un puerto local en tu equipo.",
|
||||
"tunnelModeDynamicDesc": "Crear un proxy SOCKS5 en un puerto local para el reenvío dinámico de puertos.",
|
||||
"sameHost": "Este host (túnel directo)",
|
||||
"endpointHost": "Host de destino",
|
||||
"endpointHostPlaceholder": "Mismo host, host SSH o host/dirección IP accesible",
|
||||
"endpointPort": "Puerto de destino",
|
||||
"bindHost": "Host de enlace",
|
||||
"sourcePort": "Puerto origen",
|
||||
"maxRetries": "Reintentos máximos",
|
||||
"retryIntervalS": "Intervalo de reintento (s)",
|
||||
"autoStartLabel": "Inicio automático",
|
||||
"autoStartDesc": "Conectar automáticamente este túnel cuando se cargue el host.",
|
||||
"tunnelConnecting": "Túnel conectando...",
|
||||
"tunnelDisconnected": "Túnel desconectado",
|
||||
"failedToConnectTunnel": "Error al conectar",
|
||||
"failedToDisconnectTunnel": "Error al desconectar",
|
||||
"enableTmuxMonitor": "Activar Tmux Monitor",
|
||||
"enableTmuxMonitorDesc": "Mostrar este host en el Tmux Monitor y añadir sus acciones de tmux a la barra lateral.",
|
||||
"enableTerminalToolbar": "Habilitar la barra de herramientas del terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Actualizar",
|
||||
"addTag": "Añadir etiquetas...",
|
||||
"deleteConfirmBtn": "Eliminar",
|
||||
"tunnelRequirementsText": "El servidor SSH debe tener GatewayPorts yes, AllowTcpForwarding yes y PermitRootLogin yes configurados en /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "¿Eliminar \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Active al menos un protocolo de los anteriores para configurar los ajustes de autenticación y conexión.",
|
||||
"keyPassphrase": "Contraseña de la clave",
|
||||
"connectBtn": "Conectar",
|
||||
"disconnectBtn": "Desconectar",
|
||||
"basicInformation": "Información básica",
|
||||
"authDetailsSection": "Detalles de autenticación",
|
||||
"credTypeLabel": "Tipo",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Se conservaron datos parciales en el destino. El reintento se reanudará cuando se restablezca la conexión."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Sin túneles SSH",
|
||||
"createFirstTunnelMessage": "Aún no has creado ningún túnel SSH. Configura las conexiones de túnel en el Administrador de hosts para empezar.",
|
||||
"connected": "Conectado",
|
||||
"disconnected": "Desconectado",
|
||||
"connecting": "Conectando...",
|
||||
"error": "Error",
|
||||
"canceling": "Cancelando...",
|
||||
"connect": "Conectar",
|
||||
"disconnect": "Desconectar",
|
||||
"cancel": "Cancelar",
|
||||
"port": "Puerto",
|
||||
"localPort": "Puerto local",
|
||||
"remotePort": "Puerto remoto",
|
||||
"destinationPort": "Puerto de destino",
|
||||
"currentHostPort": "Puerto del host actual",
|
||||
"endpointPort": "Puerto del endpoint",
|
||||
"bindIp": "IP local",
|
||||
"localAddress": "Dirección local",
|
||||
"remoteAddress": "Dirección remota",
|
||||
"destinationAddress": "Dirección de destino",
|
||||
"remoteBindAddress": "Dirección de enlace remoto",
|
||||
"intermediateHost": "Huésped intermedio",
|
||||
"endpointSshConfig": "Configuración SSH del endpoint",
|
||||
"endpointSshHost": "Host SSH del endpoint",
|
||||
"endpointSshHostPlaceholder": "Seleccionar un host configurado",
|
||||
"endpointSshHostRequired": "Seleccione un host SSH del endpoint para cada túnel de cliente.",
|
||||
"attempt": "Intento {{current}} de {{max}}",
|
||||
"nextRetryIn": "Próximo reintento en {{seconds}} segundos",
|
||||
"clientTunnels": "Túneles de cliente",
|
||||
"clientTunnel": "Túnel de cliente",
|
||||
"addClientTunnel": "Añadir túnel de cliente",
|
||||
"noClientTunnels": "No hay túneles de cliente configurados en este escritorio.",
|
||||
"tunnelName": "Nombre del túnel",
|
||||
"remoteHost": "Host remoto",
|
||||
"autoStart": "Inicio automático",
|
||||
"clientAutoStartDesc": "Se inicia al abrir este cliente de escritorio y permanece conectado.",
|
||||
"clientManualStartDesc": "Use Iniciar y Detener desde esta fila. Termix no lo iniciará automáticamente.",
|
||||
"clientRemoteServerNote": "El reenvío remoto puede requerir AllowTcpForwarding y GatewayPorts en el servidor SSH del endpoint. El puerto remoto se cierra cuando este escritorio se desconecta.",
|
||||
"clientTunnelStarted": "Túnel de cliente iniciado",
|
||||
"clientTunnelStopped": "Túnel de cliente detenido",
|
||||
"tunnelTestSucceeded": "Prueba de túnel exitosa",
|
||||
"tunnelTestFailed": "Prueba de túnel fallida",
|
||||
"localSaved": "Túneles de cliente guardados",
|
||||
"localSaveError": "Error al guardar los túneles de cliente locales",
|
||||
"invalidBindIp": "La IP local debe ser una dirección IPv4 válida.",
|
||||
"invalidLocalTargetIp": "La IP de destino local debe ser una dirección IPv4 válida.",
|
||||
"invalidRemoteAddress": "Se requiere una dirección remota.",
|
||||
"invalidLocalPort": "El puerto local debe estar entre 1 y 65535.",
|
||||
"invalidRemotePort": "El puerto remoto debe estar entre 1 y 65535.",
|
||||
"invalidLocalTargetPort": "El puerto de destino local debe estar entre 1 y 65535.",
|
||||
"invalidEndpointPort": "El puerto del endpoint debe estar entre 1 y 65535.",
|
||||
"duplicateAutoStartBind": "Solo un túnel de cliente de inicio automático puede usar {{bind}}.",
|
||||
"manualControlError": "Error al actualizar el estado del túnel.",
|
||||
"active": "Activo",
|
||||
"start": "Iniciar",
|
||||
"stop": "Detener",
|
||||
"test": "Probar",
|
||||
"type": "Tipo de túnel",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Remoto (-R)",
|
||||
"typeDynamic": "Dinámico (-D)",
|
||||
"typeServerLocalDesc": "Del host actual al endpoint.",
|
||||
"typeServerRemoteDesc": "Del endpoint al host actual.",
|
||||
"typeClientLocalDesc": "Del equipo local al endpoint.",
|
||||
"typeClientRemoteDesc": "Del endpoint al equipo local.",
|
||||
"typeClientDynamicDesc": "SOCKS en el equipo local.",
|
||||
"typeDynamicDesc": "Reenviar tráfico SOCKS5 CONNECT a través de SSH",
|
||||
"forwardDescriptionServerLocal": "Host actual {{sourcePort}} → endpoint {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → host actual {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS en el host actual {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remoto {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Remoto {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS en puerto local {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} vía {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} en {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS a través de {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} a través de {{endpoint}}",
|
||||
"route": "Ruta:",
|
||||
"lastStarted": "Último inicio",
|
||||
"lastTested": "Última prueba",
|
||||
"lastError": "Último error",
|
||||
"maxRetries": "Reintentos máx.",
|
||||
"maxRetriesDescription": "Número máximo de intentos de reintento.",
|
||||
"retryInterval": "Intervalo de reintento (segundos)",
|
||||
"retryIntervalDescription": "Tiempo de espera entre intentos de reintento.",
|
||||
"local": "Local",
|
||||
"remote": "Remoto",
|
||||
"destination": "Destino",
|
||||
"host": "Host",
|
||||
"mode": "Modo",
|
||||
"noHostSelected": "Ningún host seleccionado",
|
||||
"working": "Trabajando..."
|
||||
"remote": "Remoto"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Arrastrar para mover",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Túneles de escritorio locales hacia los hosts SSH configurados.",
|
||||
"c2sTunnelPresets": "Preajustes de túneles de cliente",
|
||||
"c2sTunnelPresetsDesc": "Guarde la lista de túneles locales de este cliente de escritorio como un preajuste de servidor con nombre, o cargue un preajuste de nuevo en este cliente.",
|
||||
"c2sTunnelPresetsUnavailable": "Los preajustes de túneles de cliente solo están disponibles en el cliente de escritorio.",
|
||||
"c2sPresetName": "Nombre del preajuste",
|
||||
"c2sPresetNamePlaceholder": "Nombre del preajuste de cliente",
|
||||
"c2sPresetToLoad": "Preajuste a cargar",
|
||||
"c2sNoPresetSelected": "Ningún preajuste seleccionado",
|
||||
"c2sNoPresets": "No hay preajustes guardados",
|
||||
"c2sLoadPreset": "Cargar",
|
||||
"c2sCurrentLocalConfig": "{{count}} túnel(es) de cliente local configurado(s) en este escritorio.",
|
||||
"c2sPresetSyncNote": "Los preajustes son instantáneas explícitas; cargar uno reemplaza la lista de túneles de cliente local de este cliente de escritorio.",
|
||||
"c2sPresetSaved": "Preajuste de túnel de cliente guardado",
|
||||
"c2sPresetLoaded": "Preajuste de túnel de cliente cargado localmente",
|
||||
"c2sPresetRenamed": "Preajuste de túnel de cliente renombrado",
|
||||
"c2sPresetDeleted": "Preajuste de túnel de cliente eliminado",
|
||||
"c2sPresetLoadError": "Error al cargar los preajustes de túneles de cliente"
|
||||
"c2sTunnelPresetsDesc": "Guarde la lista de túneles locales de este cliente de escritorio como un preajuste de servidor con nombre, o cargue un preajuste de nuevo en este cliente."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Idioma",
|
||||
"keyPassword": "contraseña de la clave",
|
||||
"pastePrivateKey": "Pegue su clave privada aquí...",
|
||||
"localListenerHost": "127.0.0.1 (escuchar localmente)",
|
||||
"localTargetHost": "127.0.0.1 (destino en este equipo)",
|
||||
"remoteTargetHost": "127.0.0.1 (destino desde el punto final)",
|
||||
"remoteBindHost": "127.0.0.1 (escuchar en el punto final)",
|
||||
"socksListenerHost": "127.0.0.1 (escucha SOCKS)",
|
||||
"enterPassword": "Introduce tu contraseña",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Introduce tu contraseña"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Panel de control",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Kotiin",
|
||||
"terminal": "Terminaali",
|
||||
"localTerminal": "Paikallinen terminaali",
|
||||
"tunnels": "Tunnelit",
|
||||
"fileManager": "Tiedostonhallinta",
|
||||
"serverStats": "Isännän mittarit",
|
||||
"admin": "Ylläpitäjä",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makrot",
|
||||
"hostManager": "Isäntäpäällikkö",
|
||||
"credentials": "Valtakirjat",
|
||||
"portForwarding": "Edelleenlähetys",
|
||||
"connections": "Yhteydet",
|
||||
"serial": "Sarjanumero",
|
||||
"keepSideMenuOpen": "Pidä valikko auki",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminaali",
|
||||
"tabRdp": "Maaseudun kehittämisohjelma",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnelit",
|
||||
"tabStats": "Isännän mittarit",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Jakaminen",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Käynnistyskoodinpätkä",
|
||||
"keepaliveIntervalLabel": "Säilytysaika (sekuntia)",
|
||||
"maxKeepaliveMisses": "Max Keepalive -heitot",
|
||||
"tunnelSettings": "Tunnelin asetukset",
|
||||
"enableTunneling": "Ota tunnelointi käyttöön",
|
||||
"enableTunnelingDesc": "Ota SSH-tunnelitoiminto käyttöön tälle isännälle",
|
||||
"serverTunnelsSection": "Palvelintunnelit",
|
||||
"addTunnelBtn": "Lisää tunneli",
|
||||
"noTunnelsConfigured": "Ei tunneleita määritettynä.",
|
||||
"tunnelLabel": "Tunneli {{number}}",
|
||||
"tunnelType": "Tunnelin tyyppi",
|
||||
"tunnelModeLocalDesc": "Lähetä paikallinen portti etäpalvelimen (tai siitä tavoitettavan isännän) porttiin.",
|
||||
"tunnelModeRemoteDesc": "Lähetä etäpalvelimen portti takaisin oman koneesi paikalliseen porttiin.",
|
||||
"tunnelModeDynamicDesc": "Luo SOCKS5-välityspalvelin paikalliseen porttiin dynaamista portin edelleenlähetystä varten.",
|
||||
"sameHost": "Tämä isäntä (suora tunneli)",
|
||||
"endpointHost": "Päätepisteen isäntä",
|
||||
"endpointHostPlaceholder": "Sama isäntä, SSH-isäntä tai tavoitettava isäntä/IP-osoite",
|
||||
"endpointPort": "Päätepisteen portti",
|
||||
"bindHost": "Sido isäntä",
|
||||
"sourcePort": "Lähdeportti",
|
||||
"maxRetries": "Maks. uudelleenyritykset",
|
||||
"retryIntervalS": "Uudelleenyritysväli (s)",
|
||||
"autoStartLabel": "Automaattinen käynnistys",
|
||||
"autoStartDesc": "Yhdistä tämä tunneli automaattisesti, kun isäntä ladataan",
|
||||
"tunnelConnecting": "Tunneli, joka yhdistää...",
|
||||
"tunnelDisconnected": "Tunneli irrotettu",
|
||||
"failedToConnectTunnel": "Yhteyden muodostaminen epäonnistui",
|
||||
"failedToDisconnectTunnel": "Yhteyden katkaiseminen epäonnistui",
|
||||
"enableTmuxMonitor": "Ota Tmux-monitori käyttöön",
|
||||
"enableTmuxMonitorDesc": "Näytä tämä isäntä Tmux-monitorissa ja lisää sen tmux-toiminnot sivupalkkiin",
|
||||
"enableTerminalToolbar": "Ota käyttöön päätetyökalurivi",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Päivitä",
|
||||
"addTag": "Lisää tunnisteita...",
|
||||
"deleteConfirmBtn": "Poistaa",
|
||||
"tunnelRequirementsText": "SSH-palvelimella on oltava GatewayPorts-, AllowTcpForwarding- ja PermitRootLogin-arvot asetettuina tiedostossa /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Poistetaanko \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Ota käyttöön vähintään yksi yllä olevista protokolla todennus- ja yhteysasetusten määrittämiseksi.",
|
||||
"keyPassphrase": "Avaimen salasana",
|
||||
"connectBtn": "Yhdistä",
|
||||
"disconnectBtn": "Katkaise yhteys",
|
||||
"basicInformation": "Perustiedot",
|
||||
"authDetailsSection": "Todennustiedot",
|
||||
"credTypeLabel": "Tyyppi",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Kohteessa säilytettiin vain osa tiedoista. Uudelleenyritys jatkuu, kun yhteys on palannut."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Ei SSH-tunneleita",
|
||||
"createFirstTunnelMessage": "Et ole vielä luonut SSH-tunneleita. Aloita määrittämällä tunneliyhteydet Host Managerissa.",
|
||||
"connected": "Yhdistetty",
|
||||
"disconnected": "Yhteys katkennut",
|
||||
"connecting": "Yhdistetään...",
|
||||
"error": "Virhe",
|
||||
"canceling": "Peruutetaan...",
|
||||
"connect": "Yhdistä",
|
||||
"disconnect": "Katkaise yhteys",
|
||||
"cancel": "Peruuttaa",
|
||||
"port": "Portti",
|
||||
"localPort": "Paikallinen satama",
|
||||
"remotePort": "Etäportti",
|
||||
"destinationPort": "Määränpääsatama",
|
||||
"currentHostPort": "Nykyinen isäntäportti",
|
||||
"endpointPort": "Päätepisteen portti",
|
||||
"bindIp": "Paikallinen IP-osoite",
|
||||
"localAddress": "Paikallinen osoite",
|
||||
"remoteAddress": "Etäosoite",
|
||||
"destinationAddress": "Kohdeosoite",
|
||||
"remoteBindAddress": "Etäsidontaosoite",
|
||||
"intermediateHost": "Väliaikainen isäntä",
|
||||
"endpointSshConfig": "Päätepisteen SSH-konfiguraatio",
|
||||
"endpointSshHost": "Päätepisteen SSH-isäntä",
|
||||
"endpointSshHostPlaceholder": "Valitse määritetty isäntä",
|
||||
"endpointSshHostRequired": "Valitse kullekin asiakastunnelille SSH-päätepisteisäntä.",
|
||||
"attempt": "Yritys {{current}} / {{max}}",
|
||||
"nextRetryIn": "Seuraava uudelleenyritys {{seconds}} sekunnin kuluttua",
|
||||
"clientTunnels": "Asiakastunnelit",
|
||||
"clientTunnel": "Asiakastunneli",
|
||||
"addClientTunnel": "Lisää asiakastunneli",
|
||||
"noClientTunnels": "Tälle työpöydälle ei ole määritetty asiakastunneleita.",
|
||||
"tunnelName": "Tunnelin nimi",
|
||||
"remoteHost": "Etäisäntä",
|
||||
"autoStart": "Automaattinen käynnistys",
|
||||
"clientAutoStartDesc": "Käynnistyy, kun tämä työpöytäsovellus avautuu ja pysyy yhteydessä.",
|
||||
"clientManualStartDesc": "Käytä Käynnistä- ja Pysäytä-painikkeita tältä riviltä. Termix ei avaa sitä automaattisesti.",
|
||||
"clientRemoteServerNote": "Etä edelleenlähetys saattaa vaatia AllowTcpForwarding- ja GatewayPorts-määritykset SSH-päätepalvelimella. Etäportti sulkeutuu, kun tämä työpöytä katkaisee yhteyden.",
|
||||
"clientTunnelStarted": "Asiakastunneli aloitettu",
|
||||
"clientTunnelStopped": "Asiakastunneli pysäytetty",
|
||||
"tunnelTestSucceeded": "Tunnelitesti onnistui",
|
||||
"tunnelTestFailed": "Tunnelitesti epäonnistui",
|
||||
"localSaved": "Asiakastunnelit tallennettu",
|
||||
"localSaveError": "Paikallisten asiakastunnelien tallentaminen epäonnistui",
|
||||
"invalidBindIp": "Paikallisen IP-osoitteen on oltava kelvollinen IPv4-osoite.",
|
||||
"invalidLocalTargetIp": "Paikallisen kohde-IP-osoitteen on oltava kelvollinen IPv4-osoite.",
|
||||
"invalidRemoteAddress": "Etäosoite vaaditaan.",
|
||||
"invalidLocalPort": "Paikallisen portin on oltava välillä 1–65535.",
|
||||
"invalidRemotePort": "Etäportin on oltava välillä 1–65535.",
|
||||
"invalidLocalTargetPort": "Paikallisen kohdeportin on oltava välillä 1–65535.",
|
||||
"invalidEndpointPort": "Päätepisteen portin on oltava välillä 1–65535.",
|
||||
"duplicateAutoStartBind": "Vain yksi automaattisesti käynnistyvä asiakastunneli voi käyttää {{bind}} -merkkiä.",
|
||||
"manualControlError": "Tunnelin tilan päivittäminen epäonnistui.",
|
||||
"active": "Aktiivinen",
|
||||
"start": "Aloita",
|
||||
"stop": "Stop",
|
||||
"test": "Testata",
|
||||
"type": "Tunnelin tyyppi",
|
||||
"typeLocal": "Paikallinen (-L)",
|
||||
"typeRemote": "Kauko-ohjain (-R)",
|
||||
"typeDynamic": "Dynaaminen (-D)",
|
||||
"typeServerLocalDesc": "Nykyisestä isännästä päätepisteeseen.",
|
||||
"typeServerRemoteDesc": "Päätepiste takaisin nykyiseen isäntään.",
|
||||
"typeClientLocalDesc": "Paikallinen tietokone päätepisteeseen.",
|
||||
"typeClientRemoteDesc": "Päätepiste takaisin paikalliseen tietokoneeseen.",
|
||||
"typeClientDynamicDesc": "SOCKS paikallisella tietokoneella.",
|
||||
"typeDynamicDesc": "Välitä SOCKS5 CONNECT -liikennettä SSH:n kautta",
|
||||
"forwardDescriptionServerLocal": "Nykyinen isäntä {{sourcePort}} → päätepiste {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Päätepiste {{endpointPort}} → nykyinen isäntä {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS nykyisellä koneella {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Paikallinen {{sourcePort}} → etäinen {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Etäinen {{sourcePort}} → paikallinen {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS paikallisessa portissa {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} kautta {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} kohdassa {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SUKAT {{endpoint}} kautta",
|
||||
"autoNameClientLocal": "Paikallinen {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → paikallinen {{localPort}}",
|
||||
"autoNameClientDynamic": "SUKAT {{localPort}} kautta {{endpoint}}",
|
||||
"route": "Reitti:",
|
||||
"lastStarted": "Viimeksi aloitettu",
|
||||
"lastTested": "Viimeksi testattu",
|
||||
"lastError": "Viimeisin virhe",
|
||||
"maxRetries": "Uudelleenyritysten enimmäismäärä",
|
||||
"maxRetriesDescription": "Uudelleenyritysten enimmäismäärä.",
|
||||
"retryInterval": "Uudelleenyritysväli (sekuntia)",
|
||||
"retryIntervalDescription": "Odotusaika uudelleenyritysten välillä.",
|
||||
"local": "Paikallinen",
|
||||
"remote": "Kauko",
|
||||
"destination": "Määränpää",
|
||||
"host": "Isäntä",
|
||||
"mode": "Tila",
|
||||
"noHostSelected": "Ei valittua isäntää",
|
||||
"working": "Työskentely..."
|
||||
"remote": "Kauko"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Vedä siirtääksesi",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Paikalliset työpöytätunnelit, jotka kohdistuvat konfiguroituihin SSH-isäntiin.",
|
||||
"c2sTunnelPresets": "Asiakastunnelin esiasetukset",
|
||||
"c2sTunnelPresetsDesc": "Tallenna tämän työpöytäsovelluksen paikallinen tunneliluettelo nimetyn palvelimen esiasetukseksi tai lataa esiasetus takaisin tähän työasemaan.",
|
||||
"c2sTunnelPresetsUnavailable": "Asiakasohjelman tunnelin esiasetukset ovat käytettävissä vain työpöytäsovelluksessa.",
|
||||
"c2sPresetName": "Esiasetetun nimen",
|
||||
"c2sPresetNamePlaceholder": "Asiakkaan esiasetettu nimi",
|
||||
"c2sPresetToLoad": "Ladattava esiasetus",
|
||||
"c2sNoPresetSelected": "Ei valittua esiasetusta",
|
||||
"c2sNoPresets": "Ei tallennettuja esiasetuksia",
|
||||
"c2sLoadPreset": "Ladata",
|
||||
"c2sCurrentLocalConfig": "{{count}} paikallista asiakastunnelia, jotka on konfiguroitu tälle työpöydälle.",
|
||||
"c2sPresetSyncNote": "Esiasetukset ovat eksplisiittisiä tilannevedoksia; yhden lataaminen korvaa tämän työpöytäasiakkaan paikallisen asiakastunneliluettelon.",
|
||||
"c2sPresetSaved": "Asiakastunnelin esiasetus tallennettu",
|
||||
"c2sPresetLoaded": "Asiakastunnelin esiasetus ladattu paikallisesti",
|
||||
"c2sPresetRenamed": "Asiakastunnelin esiasetettu nimi",
|
||||
"c2sPresetDeleted": "Asiakastunnelin esiasetus poistettu",
|
||||
"c2sPresetLoadError": "Asiakasohjelman tunnelin esiasetusten lataaminen epäonnistui"
|
||||
"c2sTunnelPresetsDesc": "Tallenna tämän työpöytäsovelluksen paikallinen tunneliluettelo nimetyn palvelimen esiasetukseksi tai lataa esiasetus takaisin tähän työasemaan."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Kieli",
|
||||
"keyPassword": "avainsalasana",
|
||||
"pastePrivateKey": "Liitä yksityinen avaimesi tähän...",
|
||||
"localListenerHost": "127.0.0.1 (kuuntele paikallisesti)",
|
||||
"localTargetHost": "127.0.0.1 (kohde tässä tietokoneessa)",
|
||||
"remoteTargetHost": "127.0.0.1 (kohde päätepisteestä)",
|
||||
"remoteBindHost": "127.0.0.1 (kuuntele päätepisteessä)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-kuuntelija)",
|
||||
"enterPassword": "Anna salasanasi",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Anna salasanasi"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Kojelauta",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Accueil",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal local",
|
||||
"tunnels": "Tunnels",
|
||||
"fileManager": "Gestionnaire de fichiers",
|
||||
"serverStats": "Métriques de l'hôte",
|
||||
"admin": "Administration",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macros",
|
||||
"hostManager": "Gestionnaire d'hôtes",
|
||||
"credentials": "Identifiants",
|
||||
"portForwarding": "Expéditeur",
|
||||
"connections": "Connexions",
|
||||
"serial": "Série",
|
||||
"keepSideMenuOpen": "Garder le menu ouvert",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnels",
|
||||
"tabStats": "Métriques de l'hôte",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Partage",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Extrait de démarrage",
|
||||
"keepaliveIntervalLabel": "Intervalle de keepalive (secondes)",
|
||||
"maxKeepaliveMisses": "Nombre maximal d'échecs de keepalive",
|
||||
"tunnelSettings": "Paramètres du tunnel",
|
||||
"enableTunneling": "Activer le tunneling",
|
||||
"enableTunnelingDesc": "Activer la fonctionnalité de tunnel SSH pour cet hôte",
|
||||
"serverTunnelsSection": "Tunnels serveur",
|
||||
"addTunnelBtn": "Ajouter un tunnel",
|
||||
"noTunnelsConfigured": "Aucun tunnel configuré.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Type de tunnel",
|
||||
"tunnelModeLocalDesc": "Redirige un port local vers un port sur le serveur distant (ou un hôte accessible depuis celui-ci).",
|
||||
"tunnelModeRemoteDesc": "Redirige un port sur le serveur distant vers un port local sur votre machine.",
|
||||
"tunnelModeDynamicDesc": "Crée un proxy SOCKS5 sur un port local pour la redirection de port dynamique.",
|
||||
"sameHost": "Cet hôte (tunnel direct)",
|
||||
"endpointHost": "Hôte de destination",
|
||||
"endpointHostPlaceholder": "Même hôte, hôte SSH ou hôte/IP accessible",
|
||||
"endpointPort": "Port de destination",
|
||||
"bindHost": "Hôte de liaison",
|
||||
"sourcePort": "Port source",
|
||||
"maxRetries": "Tentatives max",
|
||||
"retryIntervalS": "Intervalle de tentative (s)",
|
||||
"autoStartLabel": "Démarrage automatique",
|
||||
"autoStartDesc": "Connecter automatiquement ce tunnel lorsque l'hôte est chargé",
|
||||
"tunnelConnecting": "Connexion du tunnel...",
|
||||
"tunnelDisconnected": "Tunnel déconnecté",
|
||||
"failedToConnectTunnel": "Échec de la connexion",
|
||||
"failedToDisconnectTunnel": "Échec de la déconnexion",
|
||||
"enableTmuxMonitor": "Activer le Moniteur Tmux",
|
||||
"enableTmuxMonitorDesc": "Afficher cet hôte dans le Moniteur Tmux et ajouter ses actions tmux à la barre latérale",
|
||||
"enableTerminalToolbar": "Activer la barre d'outils du terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Actualiser",
|
||||
"addTag": "Ajouter des étiquettes...",
|
||||
"deleteConfirmBtn": "Supprimer",
|
||||
"tunnelRequirementsText": "Le serveur SSH doit avoir GatewayPorts yes, AllowTcpForwarding yes et PermitRootLogin yes définis dans /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Supprimer \"{{name}}\" ?",
|
||||
"enableAtLeastOneProtocol": "Activez au moins un protocole ci-dessus pour configurer les paramètres d'authentification et de connexion.",
|
||||
"keyPassphrase": "Phrase de passe de la clé",
|
||||
"connectBtn": "Connecter",
|
||||
"disconnectBtn": "Déconnecter",
|
||||
"basicInformation": "Informations de base",
|
||||
"authDetailsSection": "Détails d'authentification",
|
||||
"credTypeLabel": "Type",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Des données partielles ont été conservées sur la destination. La nouvelle tentative reprendra lorsque la connexion sera rétablie."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Aucun tunnel SSH",
|
||||
"createFirstTunnelMessage": "Vous n'avez encore créé aucun tunnel SSH. Configurez des connexions de tunnel dans le Gestionnaire d'hôtes pour commencer.",
|
||||
"connected": "Connecté",
|
||||
"disconnected": "Déconnecté",
|
||||
"connecting": "Connexion en cours...",
|
||||
"error": "Erreur",
|
||||
"canceling": "Annulation en cours...",
|
||||
"connect": "Connecter",
|
||||
"disconnect": "Déconnecter",
|
||||
"cancel": "Annuler",
|
||||
"port": "Port",
|
||||
"localPort": "Port local",
|
||||
"remotePort": "Port distant",
|
||||
"destinationPort": "Port de destination",
|
||||
"currentHostPort": "Port de l'hôte actuel",
|
||||
"endpointPort": "Port du point de terminaison",
|
||||
"bindIp": "IP locale",
|
||||
"localAddress": "Adresse locale",
|
||||
"remoteAddress": "Adresse distante",
|
||||
"destinationAddress": "Adresse de destination",
|
||||
"remoteBindAddress": "Adresse de liaison distante",
|
||||
"intermediateHost": "Hôte intermédiaire",
|
||||
"endpointSshConfig": "Configuration SSH du point de terminaison",
|
||||
"endpointSshHost": "Hôte SSH du point de terminaison",
|
||||
"endpointSshHostPlaceholder": "Sélectionner un hôte configuré",
|
||||
"endpointSshHostRequired": "Sélectionnez un hôte SSH de point de terminaison pour chaque tunnel client.",
|
||||
"attempt": "Tentative {{current}} sur {{max}}",
|
||||
"nextRetryIn": "Prochaine tentative dans {{seconds}} secondes",
|
||||
"clientTunnels": "Tunnels client",
|
||||
"clientTunnel": "Tunnel client",
|
||||
"addClientTunnel": "Ajouter un tunnel client",
|
||||
"noClientTunnels": "Aucun tunnel client configuré sur ce bureau.",
|
||||
"tunnelName": "Nom du tunnel",
|
||||
"remoteHost": "Hôte distant",
|
||||
"autoStart": "Démarrage automatique",
|
||||
"clientAutoStartDesc": "Démarre à l'ouverture de ce client de bureau et reste connecté.",
|
||||
"clientManualStartDesc": "Utilisez Démarrer et Arrêter depuis cette ligne. Termix ne l'ouvrira pas automatiquement.",
|
||||
"clientRemoteServerNote": "La redirection distante peut nécessiter AllowTcpForwarding et GatewayPorts sur le serveur SSH du point de terminaison. Le port distant se ferme lorsque ce bureau se déconnecte.",
|
||||
"clientTunnelStarted": "Tunnel client démarré",
|
||||
"clientTunnelStopped": "Tunnel client arrêté",
|
||||
"tunnelTestSucceeded": "Test du tunnel réussi",
|
||||
"tunnelTestFailed": "Échec du test du tunnel",
|
||||
"localSaved": "Tunnels client enregistrés",
|
||||
"localSaveError": "Échec de l'enregistrement des tunnels client locaux",
|
||||
"invalidBindIp": "L'IP locale doit être une adresse IPv4 valide.",
|
||||
"invalidLocalTargetIp": "L'IP cible locale doit être une adresse IPv4 valide.",
|
||||
"invalidRemoteAddress": "Une adresse distante est requise.",
|
||||
"invalidLocalPort": "Le port local doit être compris entre 1 et 65535.",
|
||||
"invalidRemotePort": "Le port distant doit être compris entre 1 et 65535.",
|
||||
"invalidLocalTargetPort": "Le port cible local doit être compris entre 1 et 65535.",
|
||||
"invalidEndpointPort": "Le port du point de terminaison doit être compris entre 1 et 65535.",
|
||||
"duplicateAutoStartBind": "Un seul tunnel client à démarrage automatique peut utiliser {{bind}}.",
|
||||
"manualControlError": "Échec de la mise à jour de l'état du tunnel.",
|
||||
"active": "Actif",
|
||||
"start": "Démarrer",
|
||||
"stop": "Arrêter",
|
||||
"test": "Tester",
|
||||
"type": "Type de tunnel",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Distant (-R)",
|
||||
"typeDynamic": "Dynamique (-D)",
|
||||
"typeServerLocalDesc": "De l’hôte actuel vers le point de terminaison.",
|
||||
"typeServerRemoteDesc": "Du point de terminaison vers l’hôte actuel.",
|
||||
"typeClientLocalDesc": "De l’ordinateur local vers le point de terminaison.",
|
||||
"typeClientRemoteDesc": "Du point de terminaison vers l’ordinateur local.",
|
||||
"typeClientDynamicDesc": "SOCKS sur l’ordinateur local.",
|
||||
"typeDynamicDesc": "Transférer le trafic SOCKS5 CONNECT via SSH.",
|
||||
"forwardDescriptionServerLocal": "Hôte actuel {{sourcePort}} → point de terminaison {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Point de terminaison {{endpointPort}} → hôte actuel {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS sur l’hôte actuel {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → distant {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Distant {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS sur le port local {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} sur {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "Route :",
|
||||
"lastStarted": "Dernier démarrage",
|
||||
"lastTested": "Dernier test",
|
||||
"lastError": "Dernière erreur",
|
||||
"maxRetries": "Tentatives maximum",
|
||||
"maxRetriesDescription": "Nombre maximal de tentatives.",
|
||||
"retryInterval": "Intervalle de réessai (secondes)",
|
||||
"retryIntervalDescription": "Temps d’attente entre les tentatives.",
|
||||
"local": "Local",
|
||||
"remote": "Distant",
|
||||
"destination": "Destination",
|
||||
"host": "Hôte",
|
||||
"mode": "Mode",
|
||||
"noHostSelected": "Aucun hôte sélectionné",
|
||||
"working": "En cours…"
|
||||
"remote": "Distant"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Glisser pour déplacer",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Tunnels de bureau locaux ciblant les hôtes SSH configurés.",
|
||||
"c2sTunnelPresets": "Préréglages de tunnel client",
|
||||
"c2sTunnelPresetsDesc": "Enregistrez la liste de tunnels locaux de ce client de bureau en tant que préréglage serveur nommé, ou chargez un préréglage dans ce client.",
|
||||
"c2sTunnelPresetsUnavailable": "Les préréglages de tunnel client sont disponibles uniquement dans le client de bureau.",
|
||||
"c2sPresetName": "Nom du préréglage",
|
||||
"c2sPresetNamePlaceholder": "Nom du préréglage client",
|
||||
"c2sPresetToLoad": "Préréglage à charger",
|
||||
"c2sNoPresetSelected": "Aucun préréglage sélectionné",
|
||||
"c2sNoPresets": "Aucun préréglage enregistré",
|
||||
"c2sLoadPreset": "Charger",
|
||||
"c2sCurrentLocalConfig": "{{count}} tunnel(s) client local configuré(s) sur ce bureau.",
|
||||
"c2sPresetSyncNote": "Les préréglages sont des instantanés explicites ; en charger un remplace la liste de tunnels client locaux de ce client de bureau.",
|
||||
"c2sPresetSaved": "Préréglage de tunnel client enregistré",
|
||||
"c2sPresetLoaded": "Préréglage de tunnel client chargé localement",
|
||||
"c2sPresetRenamed": "Préréglage de tunnel client renommé",
|
||||
"c2sPresetDeleted": "Préréglage de tunnel client supprimé",
|
||||
"c2sPresetLoadError": "Échec du chargement des préréglages de tunnel client"
|
||||
"c2sTunnelPresetsDesc": "Enregistrez la liste de tunnels locaux de ce client de bureau en tant que préréglage serveur nommé, ou chargez un préréglage dans ce client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Langue",
|
||||
"keyPassword": "mot de passe de la clé",
|
||||
"pastePrivateKey": "Collez votre clé privée ici...",
|
||||
"localListenerHost": "127.0.0.1 (écouter en local)",
|
||||
"localTargetHost": "127.0.0.1 (cible sur cet ordinateur)",
|
||||
"remoteTargetHost": "127.0.0.1 (cible du point de terminaison)",
|
||||
"remoteBindHost": "127.0.0.1 (écoute sur le point de terminaison)",
|
||||
"socksListenerHost": "127.0.0.1 (écouteur SOCKS)",
|
||||
"enterPassword": "Saisissez votre mot de passe",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Saisissez votre mot de passe"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Tableau de bord",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "בַּיִת",
|
||||
"terminal": "מָסוֹף",
|
||||
"localTerminal": "מסוף מקומי",
|
||||
"tunnels": "מנהרות",
|
||||
"fileManager": "מנהל הקבצים",
|
||||
"serverStats": "מדדי מארח",
|
||||
"admin": "מנהל",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "פקודות מאקרו",
|
||||
"hostManager": "מנהל מארח",
|
||||
"credentials": "אישורים",
|
||||
"portForwarding": "העברה",
|
||||
"connections": "חיבורים",
|
||||
"serial": "סִדרָתִי",
|
||||
"keepSideMenuOpen": "שמור את התפריט פתוח",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "מָסוֹף",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "מנהרות",
|
||||
"tabStats": "מדדי מארח",
|
||||
"tabTelnet": "טלנט",
|
||||
"tabSharing": "שיתוף",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "קטע הפעלה",
|
||||
"keepaliveIntervalLabel": "מרווח זמן שמירה (שניות)",
|
||||
"maxKeepaliveMisses": "מקס קיפלייב מחמיץ",
|
||||
"tunnelSettings": "הגדרות מנהרה",
|
||||
"enableTunneling": "הפעלת מנהור",
|
||||
"enableTunnelingDesc": "הפעל פונקציונליות מנהרת SSH עבור מארח זה",
|
||||
"serverTunnelsSection": "מנהרות שרתים",
|
||||
"addTunnelBtn": "הוסף מנהרה",
|
||||
"noTunnelsConfigured": "לא הוגדרו מנהרות.",
|
||||
"tunnelLabel": "מנהרה {{number}}",
|
||||
"tunnelType": "סוג המנהרה",
|
||||
"tunnelModeLocalDesc": "העברת פורט מקומי לפורט בשרת מרוחק (או למארח שניתן להגיע אליו ממנו).",
|
||||
"tunnelModeRemoteDesc": "העבר פורט בשרת המרוחק חזרה לפורט מקומי במחשב שלך.",
|
||||
"tunnelModeDynamicDesc": "צור פרוקסי SOCKS5 בפורט מקומי עבור העברת פורטים דינמית.",
|
||||
"sameHost": "מארח זה (מנהרה ישירה)",
|
||||
"endpointHost": "מארח נקודת קצה",
|
||||
"endpointHostPlaceholder": "אותו מארח, מארח SSH, או מארח/IP נגיש",
|
||||
"endpointPort": "יציאת נקודת קצה",
|
||||
"bindHost": "מארח קשירה",
|
||||
"sourcePort": "יציאת מקור",
|
||||
"maxRetries": "מקסימום ניסיונות חוזרים",
|
||||
"retryIntervalS": "מרווח זמן לניסיון חוזר (ים)",
|
||||
"autoStartLabel": "הפעלה אוטומטית",
|
||||
"autoStartDesc": "חבר אוטומטית את המנהרה הזו כאשר המארח נטען",
|
||||
"tunnelConnecting": "מנהרה מתחברת...",
|
||||
"tunnelDisconnected": "מנהרה מנותקת",
|
||||
"failedToConnectTunnel": "נכשל בחיבור",
|
||||
"failedToDisconnectTunnel": "נכשל הניתוק",
|
||||
"enableTmuxMonitor": "הפעל את צג Tmux",
|
||||
"enableTmuxMonitorDesc": "הצג מארח זה בצג Tmux והוסף את פעולות ה-tmux שלו לסרגל הצד",
|
||||
"enableTerminalToolbar": "הפעלת סרגל הכלים של הטרמינל",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "לְרַעֲנֵן",
|
||||
"addTag": "הוסף תגיות...",
|
||||
"deleteConfirmBtn": "לִמְחוֹק",
|
||||
"tunnelRequirementsText": "שרת ה-SSH חייב להגדיר את האפשרויות GatewayPorts כן, AllowTcpForwarding כן, ו-PermitRootLogin כן ב-/etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "למחוק את \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "הפעל לפחות פרוטוקול אחד לעיל כדי להגדיר הגדרות אימות וחיבור.",
|
||||
"keyPassphrase": "סיסמת מפתח",
|
||||
"connectBtn": "לְחַבֵּר",
|
||||
"disconnectBtn": "לְנַתֵק",
|
||||
"basicInformation": "מידע בסיסי",
|
||||
"authDetailsSection": "פרטי אימות",
|
||||
"credTypeLabel": "סוּג",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "נתונים חלקיים נשמרו ביעד. ניסיון חוזר יחודש כאשר החיבור יחזור."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "אין מנהרות SSH",
|
||||
"createFirstTunnelMessage": "עדיין לא יצרת מנהרות SSH. הגדר חיבורי מנהרות במנהל המארח כדי להתחיל.",
|
||||
"connected": "מְחוּבָּר",
|
||||
"disconnected": "מְנוּתָק",
|
||||
"connecting": "מְקַשֵׁר...",
|
||||
"error": "שְׁגִיאָה",
|
||||
"canceling": "מבטל...",
|
||||
"connect": "לְחַבֵּר",
|
||||
"disconnect": "לְנַתֵק",
|
||||
"cancel": "לְבַטֵל",
|
||||
"port": "נָמָל",
|
||||
"localPort": "נמל מקומי",
|
||||
"remotePort": "יציאה מרוחקת",
|
||||
"destinationPort": "נמל יעד",
|
||||
"currentHostPort": "יציאת המארח הנוכחית",
|
||||
"endpointPort": "יציאת נקודת קצה",
|
||||
"bindIp": "IP מקומי",
|
||||
"localAddress": "כתובת מקומית",
|
||||
"remoteAddress": "כתובת מרוחקת",
|
||||
"destinationAddress": "כתובת היעד",
|
||||
"remoteBindAddress": "כתובת קישור מרחוק",
|
||||
"intermediateHost": "מארח ביניים",
|
||||
"endpointSshConfig": "תצורת SSH של נקודת קצה",
|
||||
"endpointSshHost": "מארח SSH של נקודת קצה",
|
||||
"endpointSshHostPlaceholder": "בחר מארח מוגדר",
|
||||
"endpointSshHostRequired": "בחר מארח SSH של נקודת קצה עבור כל מנהרת לקוח.",
|
||||
"attempt": "ניסיון {{current}} של {{max}}",
|
||||
"nextRetryIn": "ניסיון חוזר הבא בעוד {{seconds}} שניות",
|
||||
"clientTunnels": "מנהרות לקוח",
|
||||
"clientTunnel": "מנהרת לקוח",
|
||||
"addClientTunnel": "הוסף מנהרת לקוח",
|
||||
"noClientTunnels": "לא הוגדרו מנהרות לקוח בשולחן עבודה זה.",
|
||||
"tunnelName": "שם המנהרה",
|
||||
"remoteHost": "מארח מרוחק",
|
||||
"autoStart": "הפעלה אוטומטית",
|
||||
"clientAutoStartDesc": "מתחיל כאשר לקוח שולחן עבודה זה נפתח ונשאר מחובר.",
|
||||
"clientManualStartDesc": "השתמשו בפקודות התחל ועצירה משורה זו. טרמיקס לא יפתח אותה אוטומטית.",
|
||||
"clientRemoteServerNote": "ייתכן שהעברת נתונים מרחוק תדרוש את AllowTcpForwarding ו-GatewayPorts בשרת ה-SSH של נקודת הקצה. היציאה המרוחקת נסגרת כאשר שולחן עבודה זה מתנתק.",
|
||||
"clientTunnelStarted": "מנהרת הלקוחות התחילה",
|
||||
"clientTunnelStopped": "מנהרת הלקוח נעצרה",
|
||||
"tunnelTestSucceeded": "מבחן המנהרה הצליח",
|
||||
"tunnelTestFailed": "מבחן המנהרה נכשל",
|
||||
"localSaved": "מנהרות הלקוח נשמרו",
|
||||
"localSaveError": "נכשלה שמירת מנהרות הלקוח המקומיות",
|
||||
"invalidBindIp": "כתובת IP מקומית חייבת להיות כתובת IPv4 תקפה.",
|
||||
"invalidLocalTargetIp": "כתובת ה-IP המקומית של היעד חייבת להיות כתובת IPv4 חוקית.",
|
||||
"invalidRemoteAddress": "נדרשת כתובת מרוחקת.",
|
||||
"invalidLocalPort": "היציאה המקומית חייבת להיות בין 1 ל-65535.",
|
||||
"invalidRemotePort": "היציאה המרוחקת חייבת להיות בין 1 ל-65535.",
|
||||
"invalidLocalTargetPort": "יציאת היעד המקומית חייבת להיות בין 1 ל-65535.",
|
||||
"invalidEndpointPort": "יציאת נקודת הקצה חייבת להיות בין 1 ל-65535.",
|
||||
"duplicateAutoStartBind": "רק מנהרת לקוח אחת עם הפעלה אוטומטית יכולה להשתמש ב- {{bind}}.",
|
||||
"manualControlError": "עדכון מצב המנהרה נכשל.",
|
||||
"active": "פָּעִיל",
|
||||
"start": "הַתחָלָה",
|
||||
"stop": "לְהַפְסִיק",
|
||||
"test": "מִבְחָן",
|
||||
"type": "סוג המנהרה",
|
||||
"typeLocal": "מקומי (-L)",
|
||||
"typeRemote": "מרחוק (-R)",
|
||||
"typeDynamic": "דינמי (-D)",
|
||||
"typeServerLocalDesc": "מהמארח הנוכחי לנקודת הקצה.",
|
||||
"typeServerRemoteDesc": "נקודת הקצה חזרה למארח הנוכחי.",
|
||||
"typeClientLocalDesc": "מחשב מקומי לנקודת קצה.",
|
||||
"typeClientRemoteDesc": "נקודת הקצה חזרה למחשב המקומי.",
|
||||
"typeClientDynamicDesc": "גרביים במחשב מקומי.",
|
||||
"typeDynamicDesc": "העברת תעבורת SOCKS5 CONNECT דרך SSH",
|
||||
"forwardDescriptionServerLocal": "מארח נוכחי {{sourcePort}} → נקודת קצה {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "נקודת קצה {{endpointPort}} → מארח נוכחי {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS על המארח הנוכחי {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "מקומי {{sourcePort}} → מרוחק {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "מרוחק {{sourcePort}} → מקומי {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS בפורט המקומי {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} דרך {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} על {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → גרביים דרך {{endpoint}}",
|
||||
"autoNameClientLocal": "מקומי {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → מקומי {{localPort}}",
|
||||
"autoNameClientDynamic": "גרביים {{localPort}} דרך {{endpoint}}",
|
||||
"route": "מַסלוּל:",
|
||||
"lastStarted": "התחיל לאחרונה",
|
||||
"lastTested": "נבדק לאחרונה",
|
||||
"lastError": "השגיאה האחרונה",
|
||||
"maxRetries": "מקסימום ניסיונות חוזרים",
|
||||
"maxRetriesDescription": "מספר מקסימלי של ניסיונות ניסיון חוזר.",
|
||||
"retryInterval": "מרווח זמן לניסיון חוזר (שניות)",
|
||||
"retryIntervalDescription": "זמן המתנה בין ניסיונות חוזרים.",
|
||||
"local": "מְקוֹמִי",
|
||||
"remote": "מְרוּחָק",
|
||||
"destination": "יַעַד",
|
||||
"host": "מְאָרֵחַ",
|
||||
"mode": "מצב",
|
||||
"noHostSelected": "לא נבחר מארח",
|
||||
"working": "עובד..."
|
||||
"remote": "מְרוּחָק"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "גרור כדי להזיז",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "מנהרות שולחן עבודה מקומיות המכוונות למארחי SSH שהוגדרו.",
|
||||
"c2sTunnelPresets": "קביעות מוגדרות מראש של מנהרת לקוח",
|
||||
"c2sTunnelPresetsDesc": "שמור את רשימת המנהרות המקומית של לקוח שולחן עבודה זה כקביעה מוגדרת מראש של שרת בעל שם, או טען קביעה מוגדרת מראש בחזרה ללקוח זה.",
|
||||
"c2sTunnelPresetsUnavailable": "הגדרות קבועות מראש של מנהרת לקוח זמינות רק בלקוח שולחן העבודה.",
|
||||
"c2sPresetName": "שם מוגדר מראש",
|
||||
"c2sPresetNamePlaceholder": "שם קבוע מראש של הלקוח",
|
||||
"c2sPresetToLoad": "הגדרה מראש לטעינה",
|
||||
"c2sNoPresetSelected": "לא נבחרה הגדרה מוגדרת מראש",
|
||||
"c2sNoPresets": "לא נשמרו הגדרות קבועות מראש",
|
||||
"c2sLoadPreset": "לִטעוֹן",
|
||||
"c2sCurrentLocalConfig": "מנהרה/ות לקוח מקומיות {{count}} מוגדרות בשולחן עבודה זה.",
|
||||
"c2sPresetSyncNote": "קביעות מוגדרות מראש הן תמונות בזק מפורשות; טעינת אחת מהן מחליפה את רשימת מנהרות הלקוחות המקומיות של לקוח שולחן העבודה הזה.",
|
||||
"c2sPresetSaved": "מנהרת הלקוח מוגדרת מראש נשמרה",
|
||||
"c2sPresetLoaded": "מנהרת לקוח מוגדרת מראש נטענת באופן מקומי",
|
||||
"c2sPresetRenamed": "שם של פריסט של מנהרת הלקוח",
|
||||
"c2sPresetDeleted": "מנהרת הלקוח מוגדרת מראש נמחקה",
|
||||
"c2sPresetLoadError": "נכשלה טעינת הגדרות קבועות מראש של מנהרת הלקוח"
|
||||
"c2sTunnelPresetsDesc": "שמור את רשימת המנהרות המקומית של לקוח שולחן עבודה זה כקביעה מוגדרת מראש של שרת בעל שם, או טען קביעה מוגדרת מראש בחזרה ללקוח זה."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "שָׂפָה",
|
||||
"keyPassword": "סיסמת מפתח",
|
||||
"pastePrivateKey": "הדבק את המפתח הפרטי שלך כאן...",
|
||||
"localListenerHost": "127.0.0.1 (האזנה מקומית)",
|
||||
"localTargetHost": "127.0.0.1 (היעד במחשב זה)",
|
||||
"remoteTargetHost": "127.0.0.1 (יעד מנקודת הקצה)",
|
||||
"remoteBindHost": "127.0.0.1 (האזנה בנקודת הקצה)",
|
||||
"socksListenerHost": "127.0.0.1 (מאזין SOCKS)",
|
||||
"enterPassword": "הזן את הסיסמה שלך",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "הזן את הסיסמה שלך"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "לוּחַ מַחווָנִים",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "होम",
|
||||
"terminal": "टर्मिनल",
|
||||
"localTerminal": "स्थानीय टर्मिनल",
|
||||
"tunnels": "टनल",
|
||||
"fileManager": "फ़ाइल प्रबंधक",
|
||||
"serverStats": "होस्ट मेट्रिक्स",
|
||||
"admin": "एडमिन",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "मैक्रो",
|
||||
"hostManager": "होस्ट प्रबंधक",
|
||||
"credentials": "क्रेडेंशियल्स",
|
||||
"portForwarding": "अग्रेषित करना",
|
||||
"connections": "कनेक्शन्स",
|
||||
"serial": "सीरियल",
|
||||
"keepSideMenuOpen": "मेनू खुला रखें",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "टर्मिनल",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "टनलें",
|
||||
"tabStats": "होस्ट मेट्रिक्स",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "साझाकरण",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "स्टार्टअप स्निपेट",
|
||||
"keepaliveIntervalLabel": "कीपअलाइव अंतराल (सेकंड)",
|
||||
"maxKeepaliveMisses": "अधिकतम कीपअलाइव मिस",
|
||||
"tunnelSettings": "टनल सेटिंग्स",
|
||||
"enableTunneling": "टनलिंग सक्षम करें",
|
||||
"enableTunnelingDesc": "इस होस्ट के लिए SSH टनल कार्यक्षमता सक्षम करें",
|
||||
"serverTunnelsSection": "सर्वर टनल",
|
||||
"addTunnelBtn": "टनल जोड़ें",
|
||||
"noTunnelsConfigured": "कोई टनल कॉन्फ़िगर नहीं की गई।",
|
||||
"tunnelLabel": "टनल {{number}}",
|
||||
"tunnelType": "टनल प्रकार",
|
||||
"tunnelModeLocalDesc": "स्थानीय पोर्ट को दूरस्थ सर्वर (या उससे पहुंच योग्य किसी होस्ट) के पोर्ट पर अग्रेषित करें।",
|
||||
"tunnelModeRemoteDesc": "दूरस्थ सर्वर पर एक पोर्ट को अपनी मशीन पर स्थानीय पोर्ट पर वापस अग्रेषित करें।",
|
||||
"tunnelModeDynamicDesc": "गतिशील पोर्ट अग्रेषण के लिए स्थानीय पोर्ट पर SOCKS5 प्रॉक्सी बनाएं।",
|
||||
"sameHost": "यह होस्ट (डायरेक्ट टनल)",
|
||||
"endpointHost": "एंडपॉइंट होस्ट",
|
||||
"endpointHostPlaceholder": "समान होस्ट, SSH होस्ट, या पहुंच योग्य होस्ट/IP",
|
||||
"endpointPort": "एंडपॉइंट पोर्ट",
|
||||
"bindHost": "बाइंड होस्ट",
|
||||
"sourcePort": "स्रोत पोर्ट",
|
||||
"maxRetries": "अधिकतम पुनर्प्रयास",
|
||||
"retryIntervalS": "पुनर्प्रयास अंतराल (s)",
|
||||
"autoStartLabel": "स्वतः आरंभ",
|
||||
"autoStartDesc": "होस्ट लोड होने पर यह टनल स्वचालित रूप से कनेक्ट करें",
|
||||
"tunnelConnecting": "टनल कनेक्ट हो रही है...",
|
||||
"tunnelDisconnected": "टनल डिस्कनेक्ट हो गई",
|
||||
"failedToConnectTunnel": "कनेक्ट करने में विफल",
|
||||
"failedToDisconnectTunnel": "डिस्कनेक्ट करने में विफल",
|
||||
"enableTmuxMonitor": "Tmux मॉनिटर सक्षम करें",
|
||||
"enableTmuxMonitorDesc": "इस होस्ट को Tmux मॉनिटर में दिखाएँ और इसकी tmux क्रियाओं को साइडबार में जोड़ें",
|
||||
"enableTerminalToolbar": "टर्मिनल टूलबार को सक्षम करें",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "ताज़ा करें",
|
||||
"addTag": "टैग जोड़ें…",
|
||||
"deleteConfirmBtn": "हटाएँ",
|
||||
"tunnelRequirementsText": "SSH सर्वर में /etc/ssh/sshd_config में GatewayPorts yes, AllowTcpForwarding yes, और PermitRootLogin yes सेट होना चाहिए।",
|
||||
"deleteHostConfirm": "क्या \"{{name}}\" हटाएँ?",
|
||||
"enableAtLeastOneProtocol": "प्रमाणीकरण और कनेक्शन सेटिंग्स कॉन्फ़िगर करने के लिए ऊपर कम से कम एक प्रोटोकॉल सक्षम करें।",
|
||||
"keyPassphrase": "कुंजी पासफ़्रेज़",
|
||||
"connectBtn": "कनेक्ट करें",
|
||||
"disconnectBtn": "डिस्कनेक्ट करें",
|
||||
"basicInformation": "मूल जानकारी",
|
||||
"authDetailsSection": "प्रमाणीकरण विवरण",
|
||||
"credTypeLabel": "प्रकार",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "आंशिक डेटा गंतव्य पर रखा गया था। कनेक्शन वापस आने पर पुनः प्रयास फिर से शुरू होगा।"
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "कोई SSH टनल नहीं",
|
||||
"createFirstTunnelMessage": "आपने अभी तक कोई SSH टनल नहीं बनाई है। शुरू करने के लिए होस्ट प्रबंधक में टनल कनेक्शन कॉन्फ़िगर करें।",
|
||||
"connected": "कनेक्टेड",
|
||||
"disconnected": "डिस्कनेक्टेड",
|
||||
"connecting": "कनेक्ट हो रहा है...",
|
||||
"error": "त्रुटि",
|
||||
"canceling": "रद्द कर रहा है...",
|
||||
"connect": "कनेक्ट करें",
|
||||
"disconnect": "डिस्कनेक्ट करें",
|
||||
"cancel": "रद्द करें",
|
||||
"port": "पोर्ट",
|
||||
"localPort": "स्थानीय पोर्ट",
|
||||
"remotePort": "दूरस्थ पोर्ट",
|
||||
"destinationPort": "गंतव्य बंदरगाह",
|
||||
"currentHostPort": "वर्तमान होस्ट पोर्ट",
|
||||
"endpointPort": "एंडपॉइंट पोर्ट",
|
||||
"bindIp": "स्थानीय आईपी",
|
||||
"localAddress": "स्थानीय पता",
|
||||
"remoteAddress": "दूरस्थ पता",
|
||||
"destinationAddress": "गंतव्य पता",
|
||||
"remoteBindAddress": "रिमोट बाइंड पता",
|
||||
"intermediateHost": "मध्यवर्ती मेजबान",
|
||||
"endpointSshConfig": "एंडपॉइंट SSH कॉन्फ़िगरेशन",
|
||||
"endpointSshHost": "एंडपॉइंट SSH होस्ट",
|
||||
"endpointSshHostPlaceholder": "कॉन्फ़िगर किया गया होस्ट चुनें",
|
||||
"endpointSshHostRequired": "प्रत्येक क्लाइंट टनल के लिए एक एंडपॉइंट SSH होस्ट चुनें।",
|
||||
"attempt": "प्रयास {{current}} / {{max}}",
|
||||
"nextRetryIn": "अगला पुनः प्रयास {{seconds}} सेकंड में",
|
||||
"clientTunnels": "क्लाइंट टनलें",
|
||||
"clientTunnel": "क्लाइंट टनल",
|
||||
"addClientTunnel": "क्लाइंट टनल जोड़ें",
|
||||
"noClientTunnels": "इस डेस्कटॉप पर कोई क्लाइंट टनल कॉन्फ़िगर नहीं है।",
|
||||
"tunnelName": "टनल का नाम",
|
||||
"remoteHost": "दूरस्थ होस्ट",
|
||||
"autoStart": "स्वतः आरंभ",
|
||||
"clientAutoStartDesc": "यह डेस्कटॉप क्लाइंट खुलने पर आरंभ होता है और जुड़ा रहता है।",
|
||||
"clientManualStartDesc": "इस पंक्ति से आरंभ और रोकें का उपयोग करें। Termix इसे स्वचालित रूप से नहीं खोलेगा।",
|
||||
"clientRemoteServerNote": "दूरस्थ अग्रेषण के लिए एंडपॉइंट SSH सर्वर पर AllowTcpForwarding और GatewayPorts की आवश्यकता हो सकती है। यह डेस्कटॉप डिस्कनेक्ट होने पर दूरस्थ पोर्ट बंद हो जाता है।",
|
||||
"clientTunnelStarted": "क्लाइंट टनल आरंभ हो गई",
|
||||
"clientTunnelStopped": "क्लाइंट टनल रुक गई",
|
||||
"tunnelTestSucceeded": "टनल परीक्षण सफल",
|
||||
"tunnelTestFailed": "टनल परीक्षण विफल",
|
||||
"localSaved": "क्लाइंट टनलें सहेजी गईं",
|
||||
"localSaveError": "स्थानीय क्लाइंट टनल सहेजने में विफल",
|
||||
"invalidBindIp": "स्थानीय आईपी एक मान्य IPv4 पता होना चाहिए।",
|
||||
"invalidLocalTargetIp": "स्थानीय लक्ष्य आईपी एक मान्य IPv4 पता होना चाहिए।",
|
||||
"invalidRemoteAddress": "रिमोट एड्रेस आवश्यक है।",
|
||||
"invalidLocalPort": "स्थानीय पोर्ट 1 और 65535 के बीच होना चाहिए।",
|
||||
"invalidRemotePort": "दूरस्थ पोर्ट 1 और 65535 के बीच होना चाहिए।",
|
||||
"invalidLocalTargetPort": "स्थानीय लक्ष्य पोर्ट 1 और 65535 के बीच होना चाहिए।",
|
||||
"invalidEndpointPort": "एंडपॉइंट पोर्ट 1 और 65535 के बीच होना चाहिए।",
|
||||
"duplicateAutoStartBind": "केवल एक स्वतः-आरंभ क्लाइंट टनल {{bind}} का उपयोग कर सकती है।",
|
||||
"manualControlError": "टनल स्थिति अपडेट करने में विफल।",
|
||||
"active": "सक्रिय",
|
||||
"start": "शुरू करें",
|
||||
"stop": "बंद करें",
|
||||
"test": "परीक्षण करें",
|
||||
"type": "टनल प्रकार",
|
||||
"typeLocal": "स्थानीय (-L)",
|
||||
"typeRemote": "दूरस्थ (-R)",
|
||||
"typeDynamic": "डायनामिक (-D)",
|
||||
"typeServerLocalDesc": "वर्तमान होस्ट से एंडपॉइंट तक।",
|
||||
"typeServerRemoteDesc": "एंडपॉइंट से वर्तमान होस्ट तक वापस।",
|
||||
"typeClientLocalDesc": "स्थानीय कंप्यूटर से एंडपॉइंट तक।",
|
||||
"typeClientRemoteDesc": "एंडपॉइंट से स्थानीय कंप्यूटर तक वापस।",
|
||||
"typeClientDynamicDesc": "स्थानीय कंप्यूटर पर SOCKS।",
|
||||
"typeDynamicDesc": "SSH के माध्यम से SOCKS5 CONNECT ट्रैफ़िक अग्रेषित करें",
|
||||
"forwardDescriptionServerLocal": "वर्तमान होस्ट {{sourcePort}} → एंडपॉइंट {{endpointPort}}।",
|
||||
"forwardDescriptionServerRemote": "एंडपॉइंट {{endpointPort}} → वर्तमान होस्ट {{sourcePort}}।",
|
||||
"forwardDescriptionServerDynamic": "वर्तमान होस्ट {{sourcePort}} पर SOCKS।",
|
||||
"forwardDescriptionClientLocal": "स्थानीय {{sourcePort}} → दूरस्थ {{endpointPort}}।",
|
||||
"forwardDescriptionClientRemote": "दूरस्थ {{sourcePort}} → स्थानीय {{endpointPort}}।",
|
||||
"forwardDescriptionClientDynamic": "स्थानीय पोर्ट {{sourcePort}} पर SOCKS।",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} वाया {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "स्थानीय {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → स्थानीय {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "रूट:",
|
||||
"lastStarted": "अंतिम बार शुरू हुआ",
|
||||
"lastTested": "अंतिम बार परीक्षण किया गया",
|
||||
"lastError": "अंतिम त्रुटि",
|
||||
"maxRetries": "अधिकतम पुनर्प्रयास",
|
||||
"maxRetriesDescription": "पुनर्प्रयास प्रयासों की अधिकतम संख्या।",
|
||||
"retryInterval": "पुनर्प्रयास अंतराल (सेकंड)",
|
||||
"retryIntervalDescription": "पुनर्प्रयास प्रयासों के बीच प्रतीक्षा समय।",
|
||||
"local": "स्थानीय",
|
||||
"remote": "रिमोट",
|
||||
"destination": "डेस्टिनेशन",
|
||||
"host": "होस्ट",
|
||||
"mode": "मोड",
|
||||
"noHostSelected": "कोई होस्ट चयनित नहीं",
|
||||
"working": "कार्यरत..."
|
||||
"remote": "रिमोट"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "खिसकाने के लिए खींचें",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "कॉन्फ़िगर किए गए SSH होस्ट को लक्षित करने वाली स्थानीय डेस्कटॉप टनलें।",
|
||||
"c2sTunnelPresets": "क्लाइंट टनल प्रीसेट",
|
||||
"c2sTunnelPresetsDesc": "इस डेस्कटॉप क्लाइंट की स्थानीय टनल सूची को एक नामित सर्वर प्रीसेट के रूप में सहेजें, या किसी प्रीसेट को वापस इस क्लाइंट में लोड करें।",
|
||||
"c2sTunnelPresetsUnavailable": "क्लाइंट टनल प्रीसेट केवल डेस्कटॉप क्लाइंट में उपलब्ध हैं।",
|
||||
"c2sPresetName": "प्रीसेट नाम",
|
||||
"c2sPresetNamePlaceholder": "क्लाइंट प्रीसेट नाम",
|
||||
"c2sPresetToLoad": "लोड करने के लिए प्रीसेट",
|
||||
"c2sNoPresetSelected": "कोई प्रीसेट चयनित नहीं",
|
||||
"c2sNoPresets": "कोई प्रीसेट सहेजा नहीं गया",
|
||||
"c2sLoadPreset": "लोड करें",
|
||||
"c2sCurrentLocalConfig": "इस डेस्कटॉप पर {{count}} स्थानीय क्लाइंट टनल(s) कॉन्फ़िगर की गई हैं।",
|
||||
"c2sPresetSyncNote": "प्रीसेट स्पष्ट स्नैपशॉट हैं; एक लोड करने पर यह डेस्कटॉप क्लाइंट की स्थानीय क्लाइंट टनल सूची को बदल देता है।",
|
||||
"c2sPresetSaved": "क्लाइंट टनल प्रीसेट सहेजा गया",
|
||||
"c2sPresetLoaded": "क्लाइंट टनल प्रीसेट स्थानीय रूप से लोड हुआ",
|
||||
"c2sPresetRenamed": "क्लाइंट टनल प्रीसेट का नाम बदला गया",
|
||||
"c2sPresetDeleted": "क्लाइंट टनल प्रीसेट हटाया गया",
|
||||
"c2sPresetLoadError": "क्लाइंट टनल प्रीसेट लोड करने में विफल"
|
||||
"c2sTunnelPresetsDesc": "इस डेस्कटॉप क्लाइंट की स्थानीय टनल सूची को एक नामित सर्वर प्रीसेट के रूप में सहेजें, या किसी प्रीसेट को वापस इस क्लाइंट में लोड करें।"
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "भाषा",
|
||||
"keyPassword": "कुंजी पासवर्ड",
|
||||
"pastePrivateKey": "अपनी निजी कुंजी यहाँ चिपकाएँ...",
|
||||
"localListenerHost": "127.0.0.1 (स्थानीय रूप से सुनें)",
|
||||
"localTargetHost": "127.0.0.1 (इस कंप्यूटर पर लक्ष्य)",
|
||||
"remoteTargetHost": "127.0.0.1 (एंडपॉइंट से लक्ष्य)",
|
||||
"remoteBindHost": "127.0.0.1 (एंडपॉइंट पर सुनें)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS श्रोता)",
|
||||
"enterPassword": "अपना पासवर्ड दर्ज करें",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "अपना पासवर्ड दर्ज करें"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "डैशबोर्ड",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Otthon",
|
||||
"terminal": "Terminál",
|
||||
"localTerminal": "Helyi terminál",
|
||||
"tunnels": "Alagutak",
|
||||
"fileManager": "Fájlkezelő",
|
||||
"serverStats": "Gazdagép-metrikák",
|
||||
"admin": "Adminisztrátor",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makrók",
|
||||
"hostManager": "Házigazda-kezelő",
|
||||
"credentials": "Hitelesítő adatok",
|
||||
"portForwarding": "Szállítmányozás",
|
||||
"connections": "Kapcsolatok",
|
||||
"serial": "Sorozatszám",
|
||||
"keepSideMenuOpen": "Menü nyitva tartása",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminál",
|
||||
"tabRdp": "Vidékfejlesztési Program",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Alagutak",
|
||||
"tabStats": "Gazdagép-metrikák",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Megosztás",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Indítási kódrészlet",
|
||||
"keepaliveIntervalLabel": "Életben tartási időköz (másodperc)",
|
||||
"maxKeepaliveMisses": "Max Keepalive kihagyások",
|
||||
"tunnelSettings": "Alagútbeállítások",
|
||||
"enableTunneling": "Alagútkezelés engedélyezése",
|
||||
"enableTunnelingDesc": "SSH alagút funkció engedélyezése ehhez a gazdagéphez",
|
||||
"serverTunnelsSection": "Szerver alagutak",
|
||||
"addTunnelBtn": "Alagút hozzáadása",
|
||||
"noTunnelsConfigured": "Nincsenek konfigurált alagutak.",
|
||||
"tunnelLabel": "Alagút {{number}}",
|
||||
"tunnelType": "Alagút típusa",
|
||||
"tunnelModeLocalDesc": "Továbbítson egy helyi portot a távoli szerveren (vagy egy onnan elérhető gépen) lévő portra.",
|
||||
"tunnelModeRemoteDesc": "Továbbítsd a távoli szerver egyik portját a saját gépeden lévő helyi portra.",
|
||||
"tunnelModeDynamicDesc": "Hozz létre egy SOCKS5 proxyt egy helyi porton a dinamikus porttovábbításhoz.",
|
||||
"sameHost": "Ez a gazdagép (közvetlen alagút)",
|
||||
"endpointHost": "Végponti gazdagép",
|
||||
"endpointHostPlaceholder": "Ugyanaz a gép, SSH-gép vagy elérhető gép/IP-cím",
|
||||
"endpointPort": "Végponti port",
|
||||
"bindHost": "Kötőállomás",
|
||||
"sourcePort": "Forrásport",
|
||||
"maxRetries": "Max. újrapróbálkozások",
|
||||
"retryIntervalS": "Újrapróbálkozási intervallum (s)",
|
||||
"autoStartLabel": "Automatikus indítás",
|
||||
"autoStartDesc": "Automatikus csatlakozás ehhez az alagúthoz, amikor a gazdagép betöltődik",
|
||||
"tunnelConnecting": "Alagút összeköt...",
|
||||
"tunnelDisconnected": "Alagút leválasztva",
|
||||
"failedToConnectTunnel": "Sikertelen csatlakozás",
|
||||
"failedToDisconnectTunnel": "Nem sikerült lecsatlakozni",
|
||||
"enableTmuxMonitor": "Tmux monitor engedélyezése",
|
||||
"enableTmuxMonitorDesc": "Mutassa meg ezt a gépet a Tmux Monitorban, és adja hozzá a tmux műveleteit az oldalsávhoz",
|
||||
"enableTerminalToolbar": "Terminál eszköztár engedélyezése",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Frissítés",
|
||||
"addTag": "Címkék hozzáadása...",
|
||||
"deleteConfirmBtn": "Töröl",
|
||||
"tunnelRequirementsText": "Az SSH szervernek a /etc/ssh/sshd_config fájlban be kell állítania a GatewayPorts yes, az AllowTcpForwarding yes és a PermitRootLogin yes értékeket.",
|
||||
"deleteHostConfirm": "Törölni a \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Engedélyezzen legalább egy protokollt a fentiekből a hitelesítés és a kapcsolat beállításainak konfigurálásához.",
|
||||
"keyPassphrase": "Kulcs jelszó",
|
||||
"connectBtn": "Csatlakozás",
|
||||
"disconnectBtn": "Leválasztás",
|
||||
"basicInformation": "Alapvető információk",
|
||||
"authDetailsSection": "Hitelesítési adatok",
|
||||
"credTypeLabel": "Típus",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Részleges adatok maradtak a célállomáson. Az újrapróbálkozás a kapcsolat helyreállásakor folytatódik."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Nincsenek SSH alagutak",
|
||||
"createFirstTunnelMessage": "Még nem hozott létre SSH alagutakat. A kezdéshez konfigurálja az alagútkapcsolatokat a Host Managerben.",
|
||||
"connected": "Csatlakoztatva",
|
||||
"disconnected": "Szétkapcsolt",
|
||||
"connecting": "Kapcsolódás...",
|
||||
"error": "Hiba",
|
||||
"canceling": "Lemondás...",
|
||||
"connect": "Csatlakozás",
|
||||
"disconnect": "Leválasztás",
|
||||
"cancel": "Mégsem",
|
||||
"port": "Kikötő",
|
||||
"localPort": "Helyi kikötő",
|
||||
"remotePort": "Távoli port",
|
||||
"destinationPort": "Célkikötő",
|
||||
"currentHostPort": "Jelenlegi host port",
|
||||
"endpointPort": "Végponti port",
|
||||
"bindIp": "Helyi IP-cím",
|
||||
"localAddress": "Helyi cím",
|
||||
"remoteAddress": "Távoli cím",
|
||||
"destinationAddress": "Célcím",
|
||||
"remoteBindAddress": "Távoli kötési cím",
|
||||
"intermediateHost": "Köztes gazda",
|
||||
"endpointSshConfig": "Végpont SSH konfiguráció",
|
||||
"endpointSshHost": "Végpont SSH-gazdagép",
|
||||
"endpointSshHostPlaceholder": "Válasszon ki egy konfigurált gazdagépet",
|
||||
"endpointSshHostRequired": "Válasszon ki egy végponti SSH-hosztot minden kliens alagúthoz.",
|
||||
"attempt": "{{current}} kísérlet a {{max}}-ből",
|
||||
"nextRetryIn": "Következő újrapróbálkozás {{seconds}} másodperc múlva",
|
||||
"clientTunnels": "Ügyfél alagutak",
|
||||
"clientTunnel": "Ügyfél alagút",
|
||||
"addClientTunnel": "Ügyfélalagút hozzáadása",
|
||||
"noClientTunnels": "Nincsenek kliens alagutak konfigurálva ezen az asztalon.",
|
||||
"tunnelName": "Alagút neve",
|
||||
"remoteHost": "Távoli gép",
|
||||
"autoStart": "Automatikus indítás",
|
||||
"clientAutoStartDesc": "Akkor indul el, amikor ez az asztali kliens megnyílik és csatlakoztatva marad.",
|
||||
"clientManualStartDesc": "Használd a Start és Stop gombokat ebből a sorból. A Termix nem nyitja meg automatikusan.",
|
||||
"clientRemoteServerNote": "A távoli továbbításhoz szükség lehet az AllowTcpForwarding és a GatewayPorts paraméterekre a végponti SSH-kiszolgálón. A távoli port bezárul, amikor ez az asztal lecsatlakozik.",
|
||||
"clientTunnelStarted": "Ügyfélalagút elindult",
|
||||
"clientTunnelStopped": "Kliens alagút leállt",
|
||||
"tunnelTestSucceeded": "Alagútteszt sikeres",
|
||||
"tunnelTestFailed": "Alagútteszt sikertelen",
|
||||
"localSaved": "Kliens alagutak mentve",
|
||||
"localSaveError": "Nem sikerült menteni a helyi kliens alagutak.",
|
||||
"invalidBindIp": "A helyi IP-címnek érvényes IPv4-címnek kell lennie.",
|
||||
"invalidLocalTargetIp": "A helyi cél IP-címnek érvényes IPv4-címnek kell lennie.",
|
||||
"invalidRemoteAddress": "Távoli cím megadása kötelező.",
|
||||
"invalidLocalPort": "A helyi portnak 1 és 65535 között kell lennie.",
|
||||
"invalidRemotePort": "A távoli portnak 1 és 65535 között kell lennie.",
|
||||
"invalidLocalTargetPort": "A helyi célportnak 1 és 65535 között kell lennie.",
|
||||
"invalidEndpointPort": "A végpont portjának 1 és 65535 között kell lennie.",
|
||||
"duplicateAutoStartBind": "Csak egy automatikusan induló kliens alagút használhatja a {{bind}} kapcsolót.",
|
||||
"manualControlError": "Nem sikerült frissíteni az alagút állapotát.",
|
||||
"active": "Aktív",
|
||||
"start": "Indul",
|
||||
"stop": "Stop",
|
||||
"test": "Teszt",
|
||||
"type": "Alagút típusa",
|
||||
"typeLocal": "Helyi (-L)",
|
||||
"typeRemote": "Távoli (-R)",
|
||||
"typeDynamic": "Dinamikus (-D)",
|
||||
"typeServerLocalDesc": "Aktuális gazdagéptől a végpontig.",
|
||||
"typeServerRemoteDesc": "Végpont vissza az aktuális gazdagépre.",
|
||||
"typeClientLocalDesc": "Helyi számítógépről a végpontra.",
|
||||
"typeClientRemoteDesc": "Végpont vissza a helyi számítógépre.",
|
||||
"typeClientDynamicDesc": "SOCKS a helyi számítógépen.",
|
||||
"typeDynamicDesc": "SOCKS5 CONNECT forgalom továbbítása SSH-n keresztül",
|
||||
"forwardDescriptionServerLocal": "Aktuális hoszt {{sourcePort}} → végpont {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Végpont {{endpointPort}} → aktuális gazdagép {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS a jelenlegi gépen {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Helyi {{sourcePort}} → távoli {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Távoli {{sourcePort}} → helyi {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS a helyi {{sourcePort}} porton.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} {{endpoint}} útvonalon",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} itt: {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ZOKNIK {{endpoint}}-on keresztül",
|
||||
"autoNameClientLocal": "Lokális {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → helyi {{localPort}}",
|
||||
"autoNameClientDynamic": "ZOKNIK {{localPort}} via {{endpoint}}",
|
||||
"route": "Útvonal:",
|
||||
"lastStarted": "Utolsó indítás",
|
||||
"lastTested": "Utolsó tesztelés",
|
||||
"lastError": "Utolsó hiba",
|
||||
"maxRetries": "Max. újrapróbálkozások",
|
||||
"maxRetriesDescription": "Az újrapróbálkozások maximális száma.",
|
||||
"retryInterval": "Újrapróbálkozási intervallum (másodperc)",
|
||||
"retryIntervalDescription": "Várakozási idő az újrapróbálkozások között.",
|
||||
"local": "Helyi",
|
||||
"remote": "Távoli",
|
||||
"destination": "Rendeltetési hely",
|
||||
"host": "Házigazda",
|
||||
"mode": "Mód",
|
||||
"noHostSelected": "Nincs kiválasztva gazdagép",
|
||||
"working": "Dolgozó..."
|
||||
"remote": "Távoli"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Húzd át a mozgatáshoz",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Konfigurált SSH-hosztokat célzó helyi asztali alagutak.",
|
||||
"c2sTunnelPresets": "Kliens alagút előbeállításai",
|
||||
"c2sTunnelPresetsDesc": "Mentse el az asztali kliens helyi alagútlistáját elnevezett kiszolgálói előbeállításként, vagy töltsön be egy előbeállítást vissza ebbe a kliensbe.",
|
||||
"c2sTunnelPresetsUnavailable": "Az ügyfélalagút-előbeállítások csak az asztali kliensben érhetők el.",
|
||||
"c2sPresetName": "Előbeállítás neve",
|
||||
"c2sPresetNamePlaceholder": "Ügyfél előre beállított neve",
|
||||
"c2sPresetToLoad": "Betöltendő előbeállítás",
|
||||
"c2sNoPresetSelected": "Nincs kiválasztva előbeállítás",
|
||||
"c2sNoPresets": "Nincsenek mentett előbeállítások",
|
||||
"c2sLoadPreset": "Terhelés",
|
||||
"c2sCurrentLocalConfig": "{{count}} helyi kliens alagút(ok) konfigurálva ezen az asztalon.",
|
||||
"c2sPresetSyncNote": "Az előbeállítások explicit pillanatképek; egyik betöltése felülírja az asztali kliens helyi kliens alagútlistáját.",
|
||||
"c2sPresetSaved": "Kliens alagút előre beállított értéke mentve",
|
||||
"c2sPresetLoaded": "A kliens alagút presetje helyben betöltött",
|
||||
"c2sPresetRenamed": "Ügyfél alagút preset átnevezve",
|
||||
"c2sPresetDeleted": "Kliens alagút preset törölve",
|
||||
"c2sPresetLoadError": "Nem sikerült betölteni a kliens alagút előbeállításait"
|
||||
"c2sTunnelPresetsDesc": "Mentse el az asztali kliens helyi alagútlistáját elnevezett kiszolgálói előbeállításként, vagy töltsön be egy előbeállítást vissza ebbe a kliensbe."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Nyelv",
|
||||
"keyPassword": "kulcs jelszó",
|
||||
"pastePrivateKey": "Illeszd be ide a privát kulcsodat...",
|
||||
"localListenerHost": "127.0.0.1 (helyben hallgatható)",
|
||||
"localTargetHost": "127.0.0.1 (cél ezen a számítógépen)",
|
||||
"remoteTargetHost": "127.0.0.1 (cél a végponttól)",
|
||||
"remoteBindHost": "127.0.0.1 (figyelés a végponton)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS figyelő)",
|
||||
"enterPassword": "Írja be a jelszavát",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Írja be a jelszavát"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Műszerfal",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Rumah",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal Lokal",
|
||||
"tunnels": "Terowongan",
|
||||
"fileManager": "Pengelola File",
|
||||
"serverStats": "Metrik Host",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makro",
|
||||
"hostManager": "Manajer Host",
|
||||
"credentials": "Kredensial",
|
||||
"portForwarding": "Meneruskan",
|
||||
"connections": "Koneksi",
|
||||
"serial": "Serial",
|
||||
"keepSideMenuOpen": "Biarkan Menu Tetap Terbuka",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Terowongan",
|
||||
"tabStats": "Metrik Host",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Membagikan",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Cuplikan Startup",
|
||||
"keepaliveIntervalLabel": "Interval Keepalive (detik)",
|
||||
"maxKeepaliveMisses": "Max Keepalive Gagal",
|
||||
"tunnelSettings": "Pengaturan Terowongan",
|
||||
"enableTunneling": "Aktifkan Tunneling",
|
||||
"enableTunnelingDesc": "Aktifkan fungsi terowongan SSH untuk host ini.",
|
||||
"serverTunnelsSection": "Terowongan Server",
|
||||
"addTunnelBtn": "Tambahkan Terowongan",
|
||||
"noTunnelsConfigured": "Tidak ada terowongan yang dikonfigurasi.",
|
||||
"tunnelLabel": "Terowongan {{number}}",
|
||||
"tunnelType": "Jenis Terowongan",
|
||||
"tunnelModeLocalDesc": "Teruskan port lokal ke port pada server jarak jauh (atau host yang dapat dijangkau dari server tersebut).",
|
||||
"tunnelModeRemoteDesc": "Teruskan port pada server jarak jauh kembali ke port lokal pada mesin Anda.",
|
||||
"tunnelModeDynamicDesc": "Buat proxy SOCKS5 pada port lokal untuk penerusan port dinamis.",
|
||||
"sameHost": "Host ini (terowongan langsung)",
|
||||
"endpointHost": "Host Titik Akhir",
|
||||
"endpointHostPlaceholder": "Host yang sama, host SSH, atau host/IP yang dapat dijangkau",
|
||||
"endpointPort": "Port Titik Akhir",
|
||||
"bindHost": "Host Terikat",
|
||||
"sourcePort": "Port Sumber",
|
||||
"maxRetries": "Jumlah Percobaan Maksimum",
|
||||
"retryIntervalS": "Interval Percobaan Ulang (detik)",
|
||||
"autoStartLabel": "Mulai otomatis",
|
||||
"autoStartDesc": "Terowongan ini akan terhubung secara otomatis saat host dimuat.",
|
||||
"tunnelConnecting": "Terowongan penghubung...",
|
||||
"tunnelDisconnected": "Terowongan terputus",
|
||||
"failedToConnectTunnel": "Gagal terhubung",
|
||||
"failedToDisconnectTunnel": "Gagal memutuskan koneksi",
|
||||
"enableTmuxMonitor": "Aktifkan Monitor Tmux",
|
||||
"enableTmuxMonitorDesc": "Tampilkan host ini di Tmux Monitor dan tambahkan aksi tmux-nya ke sidebar.",
|
||||
"enableTerminalToolbar": "Aktifkan Toolbar Terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Menyegarkan",
|
||||
"addTag": "Tambahkan tag...",
|
||||
"deleteConfirmBtn": "Menghapus",
|
||||
"tunnelRequirementsText": "Server SSH harus memiliki pengaturan GatewayPorts yes, AllowTcpForwarding yes, dan PermitRootLogin yes di /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Hapus \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Aktifkan setidaknya satu protokol di atas untuk mengkonfigurasi pengaturan otentikasi dan koneksi.",
|
||||
"keyPassphrase": "Kata Sandi Kunci",
|
||||
"connectBtn": "Menghubungkan",
|
||||
"disconnectBtn": "Memutuskan",
|
||||
"basicInformation": "Informasi Dasar",
|
||||
"authDetailsSection": "Detail Otentikasi",
|
||||
"credTypeLabel": "Jenis",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Sebagian data tersimpan di tujuan. Upaya pengulangan akan dilanjutkan saat koneksi kembali pulih."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Tidak ada terowongan SSH",
|
||||
"createFirstTunnelMessage": "Anda belum membuat terowongan SSH apa pun. Konfigurasikan koneksi terowongan di Host Manager untuk memulai.",
|
||||
"connected": "Terhubung",
|
||||
"disconnected": "Terputus",
|
||||
"connecting": "Menghubungkan...",
|
||||
"error": "Kesalahan",
|
||||
"canceling": "Membatalkan...",
|
||||
"connect": "Menghubungkan",
|
||||
"disconnect": "Memutuskan",
|
||||
"cancel": "Membatalkan",
|
||||
"port": "Pelabuhan",
|
||||
"localPort": "Pelabuhan Lokal",
|
||||
"remotePort": "Port Jarak Jauh",
|
||||
"destinationPort": "Pelabuhan Tujuan",
|
||||
"currentHostPort": "Port Host Saat Ini",
|
||||
"endpointPort": "Port Titik Akhir",
|
||||
"bindIp": "IP Lokal",
|
||||
"localAddress": "Alamat Lokal",
|
||||
"remoteAddress": "Alamat Jarak Jauh",
|
||||
"destinationAddress": "Alamat Tujuan",
|
||||
"remoteBindAddress": "Alamat Pengikatan Jarak Jauh",
|
||||
"intermediateHost": "Inang Perantara",
|
||||
"endpointSshConfig": "Konfigurasi Endpoint SSH",
|
||||
"endpointSshHost": "Host SSH Titik Akhir",
|
||||
"endpointSshHostPlaceholder": "Pilih host yang telah dikonfigurasi.",
|
||||
"endpointSshHostRequired": "Pilih host SSH titik akhir untuk setiap terowongan klien.",
|
||||
"attempt": "Percobaan {{current}} dari {{max}}",
|
||||
"nextRetryIn": "Percobaan berikutnya dalam {{seconds}} detik",
|
||||
"clientTunnels": "Terowongan Klien",
|
||||
"clientTunnel": "Terowongan Klien",
|
||||
"addClientTunnel": "Tambahkan Terowongan Klien",
|
||||
"noClientTunnels": "Tidak ada terowongan klien yang dikonfigurasi pada desktop ini.",
|
||||
"tunnelName": "Nama Terowongan",
|
||||
"remoteHost": "Host Jarak Jauh",
|
||||
"autoStart": "Mulai Otomatis",
|
||||
"clientAutoStartDesc": "Proses dimulai saat klien desktop ini dibuka dan tetap terhubung.",
|
||||
"clientManualStartDesc": "Gunakan tombol Mulai dan Berhenti dari baris ini. Termix tidak akan membukanya secara otomatis.",
|
||||
"clientRemoteServerNote": "Penerusan jarak jauh mungkin memerlukan AllowTcpForwarding dan GatewayPorts pada server SSH titik akhir. Port jarak jauh akan tertutup ketika desktop ini terputus.",
|
||||
"clientTunnelStarted": "Terowongan klien telah dimulai.",
|
||||
"clientTunnelStopped": "Terowongan klien dihentikan",
|
||||
"tunnelTestSucceeded": "Uji terowongan berhasil",
|
||||
"tunnelTestFailed": "Uji terowongan gagal",
|
||||
"localSaved": "Terowongan klien tersimpan",
|
||||
"localSaveError": "Gagal menyimpan terowongan klien lokal",
|
||||
"invalidBindIp": "IP lokal harus berupa alamat IPv4 yang valid.",
|
||||
"invalidLocalTargetIp": "Alamat IP target lokal harus berupa alamat IPv4 yang valid.",
|
||||
"invalidRemoteAddress": "Alamat jarak jauh diperlukan.",
|
||||
"invalidLocalPort": "Port lokal harus berada di antara 1 dan 65535.",
|
||||
"invalidRemotePort": "Port jarak jauh harus berada di antara 1 dan 65535.",
|
||||
"invalidLocalTargetPort": "Port target lokal harus berada di antara 1 dan 65535.",
|
||||
"invalidEndpointPort": "Port endpoint harus berada di antara 1 dan 65535.",
|
||||
"duplicateAutoStartBind": "Hanya satu terowongan klien auto-start yang dapat menggunakan {{bind}}.",
|
||||
"manualControlError": "Gagal memperbarui status terowongan.",
|
||||
"active": "Aktif",
|
||||
"start": "Awal",
|
||||
"stop": "Berhenti",
|
||||
"test": "Tes",
|
||||
"type": "Jenis Terowongan",
|
||||
"typeLocal": "Lokal (-L)",
|
||||
"typeRemote": "Jarak Jauh (-R)",
|
||||
"typeDynamic": "Dinamis (-D)",
|
||||
"typeServerLocalDesc": "Host saat ini ke titik akhir.",
|
||||
"typeServerRemoteDesc": "Endpoint kembali ke host saat ini.",
|
||||
"typeClientLocalDesc": "Komputer lokal ke titik akhir.",
|
||||
"typeClientRemoteDesc": "Titik akhir kembali ke komputer lokal.",
|
||||
"typeClientDynamicDesc": "SOCKS di komputer lokal.",
|
||||
"typeDynamicDesc": "Meneruskan lalu lintas SOCKS5 CONNECT melalui SSH",
|
||||
"forwardDescriptionServerLocal": "Host saat ini {{sourcePort}} → titik akhir {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Titik akhir {{endpointPort}} → host saat ini {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS pada host saat ini {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokal {{sourcePort}} → jarak jauh {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Jarak jauh {{sourcePort}} → lokal {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS pada port lokal {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} melalui {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} pada {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → KAOS KAKI melalui {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}",
|
||||
"autoNameClientDynamic": "KAOS KAKI {{localPort}} melalui {{endpoint}}",
|
||||
"route": "Rute:",
|
||||
"lastStarted": "Terakhir dimulai",
|
||||
"lastTested": "Terakhir diuji",
|
||||
"lastError": "Kesalahan terakhir",
|
||||
"maxRetries": "Jumlah Percobaan Maksimum",
|
||||
"maxRetriesDescription": "Jumlah maksimum percobaan ulang.",
|
||||
"retryInterval": "Interval Percobaan Ulang (detik)",
|
||||
"retryIntervalDescription": "Waktu tunggu antar upaya percobaan ulang.",
|
||||
"local": "Lokal",
|
||||
"remote": "Terpencil",
|
||||
"destination": "Tujuan",
|
||||
"host": "Tuan rumah",
|
||||
"mode": "Mode",
|
||||
"noHostSelected": "Tidak ada pembawa acara yang dipilih.",
|
||||
"working": "Bekerja..."
|
||||
"remote": "Terpencil"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Seret untuk memindahkan",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Terowongan desktop lokal yang menargetkan host SSH yang telah dikonfigurasi.",
|
||||
"c2sTunnelPresets": "Pengaturan Awal Terowongan Klien",
|
||||
"c2sTunnelPresetsDesc": "Simpan daftar terowongan lokal klien desktop ini sebagai preset server bernama, atau muat preset kembali ke klien ini.",
|
||||
"c2sTunnelPresetsUnavailable": "Pengaturan terowongan klien hanya tersedia di klien desktop.",
|
||||
"c2sPresetName": "Nama Preset",
|
||||
"c2sPresetNamePlaceholder": "Nama preset klien",
|
||||
"c2sPresetToLoad": "Preset untuk Memuat",
|
||||
"c2sNoPresetSelected": "Tidak ada preset yang dipilih.",
|
||||
"c2sNoPresets": "Tidak ada preset yang tersimpan.",
|
||||
"c2sLoadPreset": "Memuat",
|
||||
"c2sCurrentLocalConfig": "{{count}} terowongan klien lokal yang dikonfigurasi pada desktop ini.",
|
||||
"c2sPresetSyncNote": "Preset adalah snapshot eksplisit; memuat salah satunya akan mengganti daftar terowongan klien lokal klien desktop ini.",
|
||||
"c2sPresetSaved": "Pengaturan terowongan klien tersimpan.",
|
||||
"c2sPresetLoaded": "Pengaturan terowongan klien dimuat secara lokal.",
|
||||
"c2sPresetRenamed": "Pengaturan terowongan klien diubah namanya.",
|
||||
"c2sPresetDeleted": "Pengaturan awal terowongan klien telah dihapus.",
|
||||
"c2sPresetLoadError": "Gagal memuat preset terowongan klien"
|
||||
"c2sTunnelPresetsDesc": "Simpan daftar terowongan lokal klien desktop ini sebagai preset server bernama, atau muat preset kembali ke klien ini."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Bahasa",
|
||||
"keyPassword": "kata sandi kunci",
|
||||
"pastePrivateKey": "Tempelkan kunci pribadi Anda di sini...",
|
||||
"localListenerHost": "127.0.0.1 (dengarkan secara lokal)",
|
||||
"localTargetHost": "127.0.0.1 (target pada komputer ini)",
|
||||
"remoteTargetHost": "127.0.0.1 (target dari titik akhir)",
|
||||
"remoteBindHost": "127.0.0.1 (dengarkan di titik akhir)",
|
||||
"socksListenerHost": "127.0.0.1 (Pendengar SOCKS)",
|
||||
"enterPassword": "Masukkan kata sandi Anda",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Masukkan kata sandi Anda"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dasbor",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Home",
|
||||
"terminal": "Terminale",
|
||||
"localTerminal": "Terminale locale",
|
||||
"tunnels": "Tunnel",
|
||||
"fileManager": "Gestione file",
|
||||
"serverStats": "Metriche host",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macro",
|
||||
"hostManager": "Gestione host",
|
||||
"credentials": "Credenziali",
|
||||
"portForwarding": "Inoltro",
|
||||
"connections": "Connessioni",
|
||||
"serial": "Seriale",
|
||||
"keepSideMenuOpen": "Mantieni il menu aperto",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminale",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnel",
|
||||
"tabStats": "Metriche host",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Condivisione",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Frammento di avvio",
|
||||
"keepaliveIntervalLabel": "Intervallo keepalive (secondi)",
|
||||
"maxKeepaliveMisses": "Numero massimo di mancate keepalive",
|
||||
"tunnelSettings": "Impostazioni tunnel",
|
||||
"enableTunneling": "Abilita tunneling",
|
||||
"enableTunnelingDesc": "Abilita la funzionalità di tunnel SSH per questo host",
|
||||
"serverTunnelsSection": "Tunnel server",
|
||||
"addTunnelBtn": "Aggiungi tunnel",
|
||||
"noTunnelsConfigured": "Nessun tunnel configurato.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tipo di tunnel",
|
||||
"tunnelModeLocalDesc": "Inoltra una porta locale a una porta sul server remoto (o a un host raggiungibile da esso).",
|
||||
"tunnelModeRemoteDesc": "Inoltra una porta sul server remoto verso una porta locale sulla tua macchina.",
|
||||
"tunnelModeDynamicDesc": "Crea un proxy SOCKS5 su una porta locale per il port forwarding dinamico.",
|
||||
"sameHost": "Questo host (tunnel diretto)",
|
||||
"endpointHost": "Host di destinazione",
|
||||
"endpointHostPlaceholder": "Stesso host, host SSH o host/IP raggiungibile",
|
||||
"endpointPort": "Porta di destinazione",
|
||||
"bindHost": "Host di bind",
|
||||
"sourcePort": "Porta sorgente",
|
||||
"maxRetries": "Tentativi massimi",
|
||||
"retryIntervalS": "Intervallo tentativi (s)",
|
||||
"autoStartLabel": "Avvio automatico",
|
||||
"autoStartDesc": "Connetti automaticamente questo tunnel all'avvio dell'host",
|
||||
"tunnelConnecting": "Connessione tunnel in corso...",
|
||||
"tunnelDisconnected": "Tunnel disconnesso",
|
||||
"failedToConnectTunnel": "Connessione fallita",
|
||||
"failedToDisconnectTunnel": "Disconnessione fallita",
|
||||
"enableTmuxMonitor": "Abilita Monitor Tmux",
|
||||
"enableTmuxMonitorDesc": "Mostra questo host nel Monitor Tmux e aggiungi le sue azioni tmux alla barra laterale",
|
||||
"enableTerminalToolbar": "Abilita la barra degli strumenti del terminale",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Aggiorna",
|
||||
"addTag": "Aggiungi tag...",
|
||||
"deleteConfirmBtn": "Elimina",
|
||||
"tunnelRequirementsText": "Il server SSH deve avere GatewayPorts yes, AllowTcpForwarding yes e PermitRootLogin yes impostati in /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Eliminare \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Abilita almeno un protocollo tra quelli sopra per configurare le impostazioni di autenticazione e connessione.",
|
||||
"keyPassphrase": "Passphrase della chiave",
|
||||
"connectBtn": "Connetti",
|
||||
"disconnectBtn": "Disconnetti",
|
||||
"basicInformation": "Informazioni di base",
|
||||
"authDetailsSection": "Dettagli di autenticazione",
|
||||
"credTypeLabel": "Tipo",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "I dati parziali sono stati conservati sulla destinazione. Il nuovo tentativo riprenderà quando la connessione sarà ripristinata."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Nessun tunnel SSH",
|
||||
"createFirstTunnelMessage": "Non hai ancora creato nessun tunnel SSH. Configura le connessioni tunnel nel Gestore host per iniziare.",
|
||||
"connected": "Connesso",
|
||||
"disconnected": "Disconnesso",
|
||||
"connecting": "Connessione in corso...",
|
||||
"error": "Errore",
|
||||
"canceling": "Annullamento in corso...",
|
||||
"connect": "Connetti",
|
||||
"disconnect": "Disconnetti",
|
||||
"cancel": "Annulla",
|
||||
"port": "Porta",
|
||||
"localPort": "Porta locale",
|
||||
"remotePort": "Porta remota",
|
||||
"destinationPort": "Porto di destinazione",
|
||||
"currentHostPort": "Porta host corrente",
|
||||
"endpointPort": "Porta endpoint",
|
||||
"bindIp": "IP locale",
|
||||
"localAddress": "Indirizzo locale",
|
||||
"remoteAddress": "Indirizzo remoto",
|
||||
"destinationAddress": "Indirizzo di destinazione",
|
||||
"remoteBindAddress": "Indirizzo di associazione remota",
|
||||
"intermediateHost": "Host intermedio",
|
||||
"endpointSshConfig": "Configurazione SSH endpoint",
|
||||
"endpointSshHost": "Host SSH endpoint",
|
||||
"endpointSshHostPlaceholder": "Seleziona un host configurato",
|
||||
"endpointSshHostRequired": "Seleziona un host SSH endpoint per ogni tunnel client.",
|
||||
"attempt": "Tentativo {{current}} di {{max}}",
|
||||
"nextRetryIn": "Prossimo tentativo tra {{seconds}} secondi",
|
||||
"clientTunnels": "Tunnel client",
|
||||
"clientTunnel": "Tunnel client",
|
||||
"addClientTunnel": "Aggiungi tunnel client",
|
||||
"noClientTunnels": "Nessun tunnel client configurato su questo desktop.",
|
||||
"tunnelName": "Nome tunnel",
|
||||
"remoteHost": "Host remoto",
|
||||
"autoStart": "Avvio automatico",
|
||||
"clientAutoStartDesc": "Si avvia all'apertura del client desktop e rimane connesso.",
|
||||
"clientManualStartDesc": "Usa Avvia e Arresta da questa riga. Termix non lo avvierà automaticamente.",
|
||||
"clientRemoteServerNote": "L'inoltro remoto potrebbe richiedere AllowTcpForwarding e GatewayPorts sul server SSH endpoint. La porta remota viene chiusa quando questo desktop si disconnette.",
|
||||
"clientTunnelStarted": "Tunnel client avviato",
|
||||
"clientTunnelStopped": "Tunnel client arrestato",
|
||||
"tunnelTestSucceeded": "Test del tunnel riuscito",
|
||||
"tunnelTestFailed": "Test del tunnel fallito",
|
||||
"localSaved": "Tunnel client salvati",
|
||||
"localSaveError": "Salvataggio dei tunnel client locali non riuscito",
|
||||
"invalidBindIp": "L'IP locale deve essere un indirizzo IPv4 valido.",
|
||||
"invalidLocalTargetIp": "L'IP di destinazione locale deve essere un indirizzo IPv4 valido.",
|
||||
"invalidRemoteAddress": "È necessario un indirizzo remoto.",
|
||||
"invalidLocalPort": "La porta locale deve essere compresa tra 1 e 65535.",
|
||||
"invalidRemotePort": "La porta remota deve essere compresa tra 1 e 65535.",
|
||||
"invalidLocalTargetPort": "La porta di destinazione locale deve essere compresa tra 1 e 65535.",
|
||||
"invalidEndpointPort": "La porta endpoint deve essere compresa tra 1 e 65535.",
|
||||
"duplicateAutoStartBind": "Solo un tunnel client con avvio automatico può utilizzare {{bind}}.",
|
||||
"manualControlError": "Aggiornamento dello stato del tunnel non riuscito.",
|
||||
"active": "Attivo",
|
||||
"start": "Avvia",
|
||||
"stop": "Ferma",
|
||||
"test": "Verifica",
|
||||
"type": "Tipo di tunnel",
|
||||
"typeLocal": "Locale (-L)",
|
||||
"typeRemote": "Remoto (-R)",
|
||||
"typeDynamic": "Dinamico (-D)",
|
||||
"typeServerLocalDesc": "Dall'host attuale all'endpoint.",
|
||||
"typeServerRemoteDesc": "Dall'endpoint all'host attuale.",
|
||||
"typeClientLocalDesc": "Dal computer locale all'endpoint.",
|
||||
"typeClientRemoteDesc": "Dall'endpoint al computer locale.",
|
||||
"typeClientDynamicDesc": "SOCKS sul computer locale.",
|
||||
"typeDynamicDesc": "Inoltra traffico SOCKS5 CONNECT via SSH",
|
||||
"forwardDescriptionServerLocal": "Host attuale {{sourcePort}} → endpoint {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → host attuale {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS su host attuale {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Locale {{sourcePort}} → remoto {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Remoto {{sourcePort}} → locale {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS su porta locale {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} su {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Locale {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → locale {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "Percorso:",
|
||||
"lastStarted": "Ultimo avvio",
|
||||
"lastTested": "Ultimo test",
|
||||
"lastError": "Ultimo errore",
|
||||
"maxRetries": "Tentativi massimi",
|
||||
"maxRetriesDescription": "Numero massimo di tentativi.",
|
||||
"retryInterval": "Intervallo tra tentativi (secondi)",
|
||||
"retryIntervalDescription": "Tempo di attesa tra i tentativi.",
|
||||
"local": "Locale",
|
||||
"remote": "Remoto",
|
||||
"destination": "Destinazione",
|
||||
"host": "Host",
|
||||
"mode": "Modalità",
|
||||
"noHostSelected": "Nessun host selezionato",
|
||||
"working": "In corso..."
|
||||
"remote": "Remoto"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Trascina per spostare",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Tunnel desktop locale verso host SSH configurati.",
|
||||
"c2sTunnelPresets": "Preimpostazioni tunnel client",
|
||||
"c2sTunnelPresetsDesc": "Salva l'elenco dei tunnel locali di questo client desktop come preimpostazione server con nome, oppure carica una preimpostazione in questo client.",
|
||||
"c2sTunnelPresetsUnavailable": "Le preimpostazioni tunnel client sono disponibili solo nel client desktop.",
|
||||
"c2sPresetName": "Nome preimpostazione",
|
||||
"c2sPresetNamePlaceholder": "Nome preimpostazione client",
|
||||
"c2sPresetToLoad": "Preimpostazione da caricare",
|
||||
"c2sNoPresetSelected": "Nessuna preimpostazione selezionata",
|
||||
"c2sNoPresets": "Nessuna preimpostazione salvata",
|
||||
"c2sLoadPreset": "Carica",
|
||||
"c2sCurrentLocalConfig": "{{count}} tunnel client locale configurato/i su questo desktop.",
|
||||
"c2sPresetSyncNote": "Le preimpostazioni sono snapshot espliciti; caricandone una si sostituisce l'elenco dei tunnel client locali di questo desktop.",
|
||||
"c2sPresetSaved": "Preimpostazione tunnel client salvata",
|
||||
"c2sPresetLoaded": "Preimpostazione tunnel client caricata localmente",
|
||||
"c2sPresetRenamed": "Preimpostazione tunnel client rinominata",
|
||||
"c2sPresetDeleted": "Preimpostazione tunnel client eliminata",
|
||||
"c2sPresetLoadError": "Caricamento delle preimpostazioni tunnel client non riuscito"
|
||||
"c2sTunnelPresetsDesc": "Salva l'elenco dei tunnel locali di questo client desktop come preimpostazione server con nome, oppure carica una preimpostazione in questo client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Lingua",
|
||||
"keyPassword": "password chiave",
|
||||
"pastePrivateKey": "Incolla qui la tua chiave privata...",
|
||||
"localListenerHost": "127.0.0.1 (ascolta localmente)",
|
||||
"localTargetHost": "127.0.0.1 (destinazione su questo computer)",
|
||||
"remoteTargetHost": "127.0.0.1 (destinazione dall'endpoint)",
|
||||
"remoteBindHost": "127.0.0.1 (ascolta sull'endpoint)",
|
||||
"socksListenerHost": "127.0.0.1 (listener SOCKS)",
|
||||
"enterPassword": "Inserisci la password",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Inserisci la password"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "ホーム",
|
||||
"terminal": "ターミナル",
|
||||
"localTerminal": "ローカル端末",
|
||||
"tunnels": "トンネル",
|
||||
"fileManager": "ファイルマネージャー",
|
||||
"serverStats": "ホストメトリクス",
|
||||
"admin": "管理",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "マクロ",
|
||||
"hostManager": "ホストマネージャー",
|
||||
"credentials": "認証情報",
|
||||
"portForwarding": "転送",
|
||||
"connections": "接続",
|
||||
"serial": "シリアル",
|
||||
"keepSideMenuOpen": "メニューを開いたままにする",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "ターミナル",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "トンネル",
|
||||
"tabStats": "ホストメトリクス",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "共有",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "起動時スニペット",
|
||||
"keepaliveIntervalLabel": "キープアライブ間隔(秒)",
|
||||
"maxKeepaliveMisses": "最大キープアライブミス回数",
|
||||
"tunnelSettings": "トンネル設定",
|
||||
"enableTunneling": "トンネリングを有効にする",
|
||||
"enableTunnelingDesc": "このホストのSSHトンネル機能を有効にします",
|
||||
"serverTunnelsSection": "サーバートンネル",
|
||||
"addTunnelBtn": "トンネルを追加",
|
||||
"noTunnelsConfigured": "トンネルが設定されていません",
|
||||
"tunnelLabel": "トンネル {{number}}",
|
||||
"tunnelType": "トンネルの種類",
|
||||
"tunnelModeLocalDesc": "ローカルポートをリモートサーバー(またはそこから到達可能なホスト)のポートに転送します。",
|
||||
"tunnelModeRemoteDesc": "リモートサーバーのポートをローカルマシンのポートに転送します。",
|
||||
"tunnelModeDynamicDesc": "動的ポート転送用にローカルポートにSOCKS5プロキシを作成します。",
|
||||
"sameHost": "このホスト(直接トンネル)",
|
||||
"endpointHost": "エンドポイントホスト",
|
||||
"endpointHostPlaceholder": "同じホスト、SSHホスト、または到達可能なホスト/IP",
|
||||
"endpointPort": "エンドポイントポート",
|
||||
"bindHost": "バインドホスト",
|
||||
"sourcePort": "ソースポート",
|
||||
"maxRetries": "最大再試行回数",
|
||||
"retryIntervalS": "再試行間隔(秒)",
|
||||
"autoStartLabel": "自動起動",
|
||||
"autoStartDesc": "ホスト読み込み時にこのトンネルを自動接続します。",
|
||||
"tunnelConnecting": "トンネル接続中...",
|
||||
"tunnelDisconnected": "トンネル切断",
|
||||
"failedToConnectTunnel": "接続に失敗しました",
|
||||
"failedToDisconnectTunnel": "切断に失敗しました",
|
||||
"enableTmuxMonitor": "Tmuxモニターを有効にする",
|
||||
"enableTmuxMonitorDesc": "Tmuxモニターにこのホストを表示し、tmuxアクションをサイドバーに追加します。",
|
||||
"enableTerminalToolbar": "ターミナルツールバーを有効にする",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "更新",
|
||||
"addTag": "タグを追加...",
|
||||
"deleteConfirmBtn": "削除",
|
||||
"tunnelRequirementsText": "SSHサーバーの/etc/ssh/sshd_configに、GatewayPorts yes、AllowTcpForwarding yes、PermitRootLogin yesが設定されている必要があります。",
|
||||
"deleteHostConfirm": "\"{{name}}\"を削除しますか?",
|
||||
"enableAtLeastOneProtocol": "認証と接続の設定を行うには、上記のプロトコルを少なくとも1つ有効にしてください。",
|
||||
"keyPassphrase": "鍵パスフレーズ",
|
||||
"connectBtn": "接続",
|
||||
"disconnectBtn": "切断",
|
||||
"basicInformation": "基本情報",
|
||||
"authDetailsSection": "認証の詳細",
|
||||
"credTypeLabel": "タイプ",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "部分的なデータが宛先に保持されました。接続が復旧したら再試行が再開されます。"
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "SSHトンネルがありません",
|
||||
"createFirstTunnelMessage": "まだSSHトンネルが作成されていません。開始するにはホストマネージャーでトンネル接続を設定してください。",
|
||||
"connected": "接続済み",
|
||||
"disconnected": "切断済み",
|
||||
"connecting": "接続中...",
|
||||
"error": "エラー",
|
||||
"canceling": "キャンセル中...",
|
||||
"connect": "接続",
|
||||
"disconnect": "切断",
|
||||
"cancel": "キャンセル",
|
||||
"port": "ポート",
|
||||
"localPort": "ローカルポート",
|
||||
"remotePort": "リモートポート",
|
||||
"destinationPort": "目的地港",
|
||||
"currentHostPort": "現在のホストポート",
|
||||
"endpointPort": "エンドポイントポート",
|
||||
"bindIp": "ローカルIP",
|
||||
"localAddress": "現地住所",
|
||||
"remoteAddress": "リモートアドレス",
|
||||
"destinationAddress": "宛先住所",
|
||||
"remoteBindAddress": "リモートバインドアドレス",
|
||||
"intermediateHost": "中間宿主",
|
||||
"endpointSshConfig": "エンドポイントSSH設定",
|
||||
"endpointSshHost": "エンドポイントSSHホスト",
|
||||
"endpointSshHostPlaceholder": "設定済みのホストを選択",
|
||||
"endpointSshHostRequired": "各クライアントトンネルにエンドポイントSSHホストを選択してください。",
|
||||
"attempt": "試行 {{current}} / {{max}}",
|
||||
"nextRetryIn": "{{seconds}} 秒後に再試行",
|
||||
"clientTunnels": "クライアントトンネル",
|
||||
"clientTunnel": "クライアントトンネル",
|
||||
"addClientTunnel": "クライアントトンネルを追加",
|
||||
"noClientTunnels": "このデスクトップにはクライアントトンネルが設定されていません。",
|
||||
"tunnelName": "トンネル名",
|
||||
"remoteHost": "リモートホスト",
|
||||
"autoStart": "自動起動",
|
||||
"clientAutoStartDesc": "デスクトップクライアントが起動すると自動的に接続し、接続を維持します。",
|
||||
"clientManualStartDesc": "この行の開始/停止を使用します。Termixは自動的に起動しません。",
|
||||
"clientRemoteServerNote": "リモート転送にはエンドポイントSSHサーバーでAllowTcpForwardingとGatewayPortsが必要な場合があります。このデスクトップが切断されるとリモートポートは閉じます。",
|
||||
"clientTunnelStarted": "クライアントトンネルが起動しました",
|
||||
"clientTunnelStopped": "クライアントトンネルが停止しました",
|
||||
"tunnelTestSucceeded": "トンネルテストが成功しました",
|
||||
"tunnelTestFailed": "トンネルテストが失敗しました",
|
||||
"localSaved": "クライアントトンネルを保存しました",
|
||||
"localSaveError": "クライアントトンネルの保存に失敗しました",
|
||||
"invalidBindIp": "ローカルIPは有効なIPv4アドレスでなければなりません。",
|
||||
"invalidLocalTargetIp": "ローカルターゲットIPは有効なIPv4アドレスでなければなりません。",
|
||||
"invalidRemoteAddress": "リモートアドレスが必要です。",
|
||||
"invalidLocalPort": "ローカルポートは1~65535の間でなければなりません。",
|
||||
"invalidRemotePort": "リモートポートは1~65535の間でなければなりません。",
|
||||
"invalidLocalTargetPort": "ローカルターゲットポートは1~65535の間でなければなりません。",
|
||||
"invalidEndpointPort": "エンドポイントポートは1~65535の間でなければなりません。",
|
||||
"duplicateAutoStartBind": "自動起動クライアントトンネルで同じ{{bind}}を使用できるのは1つだけです。",
|
||||
"manualControlError": "トンネル状態の更新に失敗しました。",
|
||||
"active": "アクティブ",
|
||||
"start": "開始",
|
||||
"stop": "停止",
|
||||
"test": "テスト",
|
||||
"type": "トンネルタイプ",
|
||||
"typeLocal": "ローカル (-L)",
|
||||
"typeRemote": "リモート (-R)",
|
||||
"typeDynamic": "ダイナミック (-D)",
|
||||
"typeServerLocalDesc": "現在のホストからエンドポイントへ。",
|
||||
"typeServerRemoteDesc": "エンドポイントから現在のホストへ。",
|
||||
"typeClientLocalDesc": "ローカルコンピューターからエンドポイントへ。",
|
||||
"typeClientRemoteDesc": "エンドポイントからローカルコンピューターへ。",
|
||||
"typeClientDynamicDesc": "ローカルコンピューター上のSOCKS。",
|
||||
"typeDynamicDesc": "SSH経由でSOCKS5 CONNECTトラフィックを転送",
|
||||
"forwardDescriptionServerLocal": "現在のホスト {{sourcePort}} → エンドポイント {{endpointPort}}。",
|
||||
"forwardDescriptionServerRemote": "エンドポイント {{endpointPort}} → 現在のホスト {{sourcePort}}。",
|
||||
"forwardDescriptionServerDynamic": "現在のホスト上のSOCKS {{sourcePort}}。",
|
||||
"forwardDescriptionClientLocal": "ローカル {{sourcePort}} → リモート {{endpointPort}}。",
|
||||
"forwardDescriptionClientRemote": "リモート {{sourcePort}} → ローカル {{endpointPort}}。",
|
||||
"forwardDescriptionClientDynamic": "ローカルポート {{sourcePort}} 上のSOCKS。",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} 経由 {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} を {{endpoint}} 上で → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "ローカル {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → ローカル {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "ルート:",
|
||||
"lastStarted": "最終起動日時",
|
||||
"lastTested": "最終テスト日時",
|
||||
"lastError": "最終エラー",
|
||||
"maxRetries": "最大再試行回数",
|
||||
"maxRetriesDescription": "再試行の最大試行回数。",
|
||||
"retryInterval": "再試行間隔 (秒)",
|
||||
"retryIntervalDescription": "再試行の間隔。",
|
||||
"local": "ローカル",
|
||||
"remote": "リモート",
|
||||
"destination": "宛先",
|
||||
"host": "ホスト",
|
||||
"mode": "モード",
|
||||
"noHostSelected": "ホストが選択されていません",
|
||||
"working": "処理中..."
|
||||
"remote": "リモート"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "ドラッグして移動",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "設定されたSSHホストを対象とするローカルデスクトップトンネル。",
|
||||
"c2sTunnelPresets": "クライアントトンネルプリセット",
|
||||
"c2sTunnelPresetsDesc": "このデスクトップクライアントのローカルトンネルリストを名前付きのサーバープリセットとして保存するか、プリセットをこのクライアントに読み込みます。",
|
||||
"c2sTunnelPresetsUnavailable": "クライアントトンネルプリセットはデスクトップクライアントでのみ利用可能です。",
|
||||
"c2sPresetName": "プリセット名",
|
||||
"c2sPresetNamePlaceholder": "クライアントプリセット名",
|
||||
"c2sPresetToLoad": "読み込むプリセット",
|
||||
"c2sNoPresetSelected": "プリセットが選択されていません",
|
||||
"c2sNoPresets": "保存されたプリセットはありません",
|
||||
"c2sLoadPreset": "読み込み",
|
||||
"c2sCurrentLocalConfig": "このデスクトップに{{count}}個のローカルクライアントトンネルが設定されています。",
|
||||
"c2sPresetSyncNote": "プリセットは明示的なスナップショットです。読み込むと、このデスクトップクライアントのローカルクライアントトンネルリストが置き換えられます。",
|
||||
"c2sPresetSaved": "クライアントトンネルプリセットを保存しました",
|
||||
"c2sPresetLoaded": "クライアントトンネルプリセットをローカルに読み込みました",
|
||||
"c2sPresetRenamed": "クライアントトンネルプリセットの名前を変更しました",
|
||||
"c2sPresetDeleted": "クライアントトンネルプリセットを削除しました",
|
||||
"c2sPresetLoadError": "クライアントトンネルプリセットの読み込みに失敗しました"
|
||||
"c2sTunnelPresetsDesc": "このデスクトップクライアントのローカルトンネルリストを名前付きのサーバープリセットとして保存するか、プリセットをこのクライアントに読み込みます。"
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "言語",
|
||||
"keyPassword": "キーパスワード",
|
||||
"pastePrivateKey": "秘密鍵をここに貼り付け...",
|
||||
"localListenerHost": "127.0.0.1(ローカルでリッスン)",
|
||||
"localTargetHost": "127.0.0.1(このコンピューターのターゲット)",
|
||||
"remoteTargetHost": "127.0.0.1(エンドポイントからのターゲット)",
|
||||
"remoteBindHost": "127.0.0.1(エンドポイントでリッスン)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKSリスナー)",
|
||||
"enterPassword": "パスワードを入力",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "パスワードを入力"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "ダッシュボード",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "홈",
|
||||
"terminal": "터미널",
|
||||
"localTerminal": "로컬 터미널",
|
||||
"tunnels": "터널",
|
||||
"fileManager": "파일 관리자",
|
||||
"serverStats": "호스트 메트릭",
|
||||
"admin": "관리자",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "매크로",
|
||||
"hostManager": "호스트 관리자",
|
||||
"credentials": "자격 증명",
|
||||
"portForwarding": "전송",
|
||||
"connections": "연결",
|
||||
"serial": "시리얼",
|
||||
"keepSideMenuOpen": "메뉴를 열어 두세요",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "터미널",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "터널",
|
||||
"tabStats": "호스트 메트릭",
|
||||
"tabTelnet": "텔넷",
|
||||
"tabSharing": "공유",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "시작 스니펫",
|
||||
"keepaliveIntervalLabel": "연결 유지 간격(초)",
|
||||
"maxKeepaliveMisses": "최대 연결 유지 미스",
|
||||
"tunnelSettings": "터널 설정",
|
||||
"enableTunneling": "터널링 활성화",
|
||||
"enableTunnelingDesc": "이 호스트에 대한 SSH 터널 기능을 활성화합니다",
|
||||
"serverTunnelsSection": "서버 터널",
|
||||
"addTunnelBtn": "터널 추가",
|
||||
"noTunnelsConfigured": "구성된 터널이 없습니다",
|
||||
"tunnelLabel": "터널 {{number}}",
|
||||
"tunnelType": "터널 유형",
|
||||
"tunnelModeLocalDesc": "로컬 포트를 원격 서버(또는 해당 서버에서 접근 가능한 호스트)의 포트로 포워딩합니다.",
|
||||
"tunnelModeRemoteDesc": "원격 서버의 포트를 내 컴퓨터의 로컬 포트로 역방향 포워딩합니다.",
|
||||
"tunnelModeDynamicDesc": "동적 포트 포워딩을 위해 로컬 포트에 SOCKS5 프록시를 생성합니다.",
|
||||
"sameHost": "이 호스트 (직접 터널)",
|
||||
"endpointHost": "엔드포인트 호스트",
|
||||
"endpointHostPlaceholder": "동일 호스트, SSH 호스트 또는 접근 가능한 호스트/IP",
|
||||
"endpointPort": "엔드포인트 포트",
|
||||
"bindHost": "바인드 호스트",
|
||||
"sourcePort": "소스 포트",
|
||||
"maxRetries": "최대 재시도",
|
||||
"retryIntervalS": "재시도 간격 (초)",
|
||||
"autoStartLabel": "자동 시작",
|
||||
"autoStartDesc": "호스트가 로드될 때 이 터널을 자동으로 연결합니다.",
|
||||
"tunnelConnecting": "터널 연결 중...",
|
||||
"tunnelDisconnected": "터널 연결 끊김",
|
||||
"failedToConnectTunnel": "연결 실패",
|
||||
"failedToDisconnectTunnel": "연결 해제 실패",
|
||||
"enableTmuxMonitor": "Tmux 모니터 활성화",
|
||||
"enableTmuxMonitorDesc": "Tmux 모니터에 이 호스트를 표시하고 tmux 작업을 사이드바에 추가합니다.",
|
||||
"enableTerminalToolbar": "터미널 툴바 활성화",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "새로 고침",
|
||||
"addTag": "태그 추가...",
|
||||
"deleteConfirmBtn": "삭제",
|
||||
"tunnelRequirementsText": "SSH 서버의 /etc/ssh/sshd_config에 GatewayPorts yes, AllowTcpForwarding yes, PermitRootLogin yes가 설정되어 있어야 합니다.",
|
||||
"deleteHostConfirm": "\"{{name}}\"을(를) 삭제하시겠습니까?",
|
||||
"enableAtLeastOneProtocol": "위에서 하나 이상의 프로토콜을 활성화하여 인증 및 연결 설정을 구성하세요.",
|
||||
"keyPassphrase": "키 암호문",
|
||||
"connectBtn": "연결",
|
||||
"disconnectBtn": "연결 해제",
|
||||
"basicInformation": "기본 정보",
|
||||
"authDetailsSection": "인증 세부 정보",
|
||||
"credTypeLabel": "유형",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "대상에 부분 데이터가 유지되었습니다. 연결이 복구되면 다시 시도하면 이어서 전송됩니다."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "SSH 터널 없음",
|
||||
"createFirstTunnelMessage": "아직 SSH 터널을 생성하지 않았습니다. 시작하려면 호스트 관리자에서 터널 연결을 구성하세요.",
|
||||
"connected": "연결됨",
|
||||
"disconnected": "연결 끊김",
|
||||
"connecting": "연결 중...",
|
||||
"error": "오류",
|
||||
"canceling": "취소 중...",
|
||||
"connect": "연결",
|
||||
"disconnect": "연결 끊기",
|
||||
"cancel": "취소",
|
||||
"port": "포트",
|
||||
"localPort": "로컬 포트",
|
||||
"remotePort": "원격 포트",
|
||||
"destinationPort": "목적지 항구",
|
||||
"currentHostPort": "현재 호스트 포트",
|
||||
"endpointPort": "엔드포인트 포트",
|
||||
"bindIp": "로컬 IP",
|
||||
"localAddress": "지역 주소",
|
||||
"remoteAddress": "원격 주소",
|
||||
"destinationAddress": "목적지 주소",
|
||||
"remoteBindAddress": "원격 바인딩 주소",
|
||||
"intermediateHost": "중간 호스트",
|
||||
"endpointSshConfig": "엔드포인트 SSH 설정",
|
||||
"endpointSshHost": "엔드포인트 SSH 호스트",
|
||||
"endpointSshHostPlaceholder": "설정된 호스트 선택",
|
||||
"endpointSshHostRequired": "각 클라이언트 터널에 엔드포인트 SSH 호스트를 선택하세요.",
|
||||
"attempt": "시도 {{current}}/{{max}}",
|
||||
"nextRetryIn": "{{seconds}}초 후 재시도",
|
||||
"clientTunnels": "클라이언트 터널",
|
||||
"clientTunnel": "클라이언트 터널",
|
||||
"addClientTunnel": "클라이언트 터널 추가",
|
||||
"noClientTunnels": "이 데스크톱에 구성된 클라이언트 터널이 없습니다.",
|
||||
"tunnelName": "터널 이름",
|
||||
"remoteHost": "원격 호스트",
|
||||
"autoStart": "자동 시작",
|
||||
"clientAutoStartDesc": "이 데스크톱 클라이언트가 열리면 자동 시작되고 연결을 유지합니다.",
|
||||
"clientManualStartDesc": "이 행에서 시작 및 중지를 사용하세요. Termix가 자동으로 열지 않습니다.",
|
||||
"clientRemoteServerNote": "원격 포워딩은 엔드포인트 SSH 서버에서 AllowTcpForwarding 및 GatewayPorts 설정이 필요할 수 있습니다. 이 데스크톱 연결이 끊어지면 원격 포트가 닫힙니다.",
|
||||
"clientTunnelStarted": "클라이언트 터널 시작됨",
|
||||
"clientTunnelStopped": "클라이언트 터널 중지됨",
|
||||
"tunnelTestSucceeded": "터널 테스트 성공",
|
||||
"tunnelTestFailed": "터널 테스트 실패",
|
||||
"localSaved": "클라이언트 터널 저장됨",
|
||||
"localSaveError": "로컬 클라이언트 터널 저장 실패",
|
||||
"invalidBindIp": "로컬 IP는 유효한 IPv4 주소여야 합니다.",
|
||||
"invalidLocalTargetIp": "로컬 대상 IP는 유효한 IPv4 주소여야 합니다.",
|
||||
"invalidRemoteAddress": "원격 주소가 필요합니다.",
|
||||
"invalidLocalPort": "로컬 포트는 1에서 65535 사이여야 합니다.",
|
||||
"invalidRemotePort": "원격 포트는 1에서 65535 사이여야 합니다.",
|
||||
"invalidLocalTargetPort": "로컬 대상 포트는 1에서 65535 사이여야 합니다.",
|
||||
"invalidEndpointPort": "엔드포인트 포트는 1에서 65535 사이여야 합니다.",
|
||||
"duplicateAutoStartBind": "자동 시작 클라이언트 터널 중 하나만 {{bind}}를 사용할 수 있습니다.",
|
||||
"manualControlError": "터널 상태 업데이트 실패",
|
||||
"active": "활성",
|
||||
"start": "시작",
|
||||
"stop": "중지",
|
||||
"test": "테스트",
|
||||
"type": "터널 유형",
|
||||
"typeLocal": "로컬 (-L)",
|
||||
"typeRemote": "원격 (-R)",
|
||||
"typeDynamic": "동적 (-D)",
|
||||
"typeServerLocalDesc": "현재 호스트에서 엔드포인트로.",
|
||||
"typeServerRemoteDesc": "엔드포인트에서 현재 호스트로 역방향 연결.",
|
||||
"typeClientLocalDesc": "로컬 컴퓨터에서 엔드포인트로.",
|
||||
"typeClientRemoteDesc": "엔드포인트에서 로컬 컴퓨터로 역방향 연결.",
|
||||
"typeClientDynamicDesc": "로컬 컴퓨터에서 SOCKS.",
|
||||
"typeDynamicDesc": "SSH를 통해 SOCKS5 CONNECT 트래픽 전달",
|
||||
"forwardDescriptionServerLocal": "현재 호스트 {{sourcePort}} → 엔드포인트 {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "엔드포인트 {{endpointPort}} → 현재 호스트 {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "현재 호스트 {{sourcePort}}에서 SOCKS.",
|
||||
"forwardDescriptionClientLocal": "로컬 {{sourcePort}} → 원격 {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "원격 {{sourcePort}} → 로컬 {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "로컬 포트 {{sourcePort}}에서 SOCKS.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} (경유: {{endpoint}})",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS ({{endpoint}} 경유)",
|
||||
"autoNameClientLocal": "로컬 {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → 로컬 {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} ({{endpoint}} 경유)",
|
||||
"route": "경로:",
|
||||
"lastStarted": "마지막 시작",
|
||||
"lastTested": "마지막 테스트",
|
||||
"lastError": "마지막 오류",
|
||||
"maxRetries": "최대 재시도 횟수",
|
||||
"maxRetriesDescription": "최대 재시도 횟수.",
|
||||
"retryInterval": "재시도 간격(초)",
|
||||
"retryIntervalDescription": "재시도 사이 대기 시간.",
|
||||
"local": "로컬",
|
||||
"remote": "원격",
|
||||
"destination": "목적지",
|
||||
"host": "호스트",
|
||||
"mode": "모드",
|
||||
"noHostSelected": "선택된 호스트 없음",
|
||||
"working": "작업 중..."
|
||||
"remote": "원격"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "드래그하여 이동",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "구성된 SSH 호스트를 대상으로 하는 로컬 데스크톱 터널입니다.",
|
||||
"c2sTunnelPresets": "클라이언트 터널 프리셋",
|
||||
"c2sTunnelPresetsDesc": "이 데스크톱 클라이언트의 로컬 터널 목록을 명명된 서버 프리셋으로 저장하거나, 프리셋을 이 클라이언트에 다시 불러옵니다.",
|
||||
"c2sTunnelPresetsUnavailable": "클라이언트 터널 프리셋은 데스크톱 클라이언트에서만 사용할 수 있습니다.",
|
||||
"c2sPresetName": "프리셋 이름",
|
||||
"c2sPresetNamePlaceholder": "클라이언트 프리셋 이름",
|
||||
"c2sPresetToLoad": "불러올 프리셋",
|
||||
"c2sNoPresetSelected": "프리셋이 선택되지 않음",
|
||||
"c2sNoPresets": "저장된 프리셋이 없음",
|
||||
"c2sLoadPreset": "불러오기",
|
||||
"c2sCurrentLocalConfig": "이 데스크톱에 구성된 로컬 클라이언트 터널 {{count}}개.",
|
||||
"c2sPresetSyncNote": "프리셋은 명시적 스냅샷입니다. 프리셋을 불러오면 이 데스크톱 클라이언트의 로컬 클라이언트 터널 목록이 대체됩니다.",
|
||||
"c2sPresetSaved": "클라이언트 터널 프리셋이 저장되었습니다.",
|
||||
"c2sPresetLoaded": "클라이언트 터널 프리셋이 로컬에 불러와졌습니다.",
|
||||
"c2sPresetRenamed": "클라이언트 터널 프리셋의 이름이 변경되었습니다.",
|
||||
"c2sPresetDeleted": "클라이언트 터널 프리셋이 삭제되었습니다.",
|
||||
"c2sPresetLoadError": "클라이언트 터널 프리셋을 불러오지 못했습니다."
|
||||
"c2sTunnelPresetsDesc": "이 데스크톱 클라이언트의 로컬 터널 목록을 명명된 서버 프리셋으로 저장하거나, 프리셋을 이 클라이언트에 다시 불러옵니다."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "언어",
|
||||
"keyPassword": "키 비밀번호",
|
||||
"pastePrivateKey": "여기에 개인 키를 붙여넣으세요...",
|
||||
"localListenerHost": "127.0.0.1 (로컬에서 수신 대기)",
|
||||
"localTargetHost": "127.0.0.1 (이 컴퓨터의 대상)",
|
||||
"remoteTargetHost": "127.0.0.1 (엔드포인트에서 대상 주소)",
|
||||
"remoteBindHost": "127.0.0.1 (엔드포인트에서 수신 대기)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS 리스너)",
|
||||
"enterPassword": "비밀번호를 입력하세요",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "비밀번호를 입력하세요"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "대시보드",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Thuis",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Lokale terminal",
|
||||
"tunnels": "Tunnels",
|
||||
"fileManager": "Bestandsbeheerder",
|
||||
"serverStats": "Hoststatistieken",
|
||||
"admin": "Beheerder",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macro's",
|
||||
"hostManager": "Hostmanager",
|
||||
"credentials": "Referenties",
|
||||
"portForwarding": "Doorsturen",
|
||||
"connections": "Verbindingen",
|
||||
"serial": "Serieel",
|
||||
"keepSideMenuOpen": "Menu open houden",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnels",
|
||||
"tabStats": "Hoststatistieken",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Delen",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Opstartfragment",
|
||||
"keepaliveIntervalLabel": "Keepalive-interval (seconden)",
|
||||
"maxKeepaliveMisses": "Max Keepalive mist",
|
||||
"tunnelSettings": "Tunnelinstellingen",
|
||||
"enableTunneling": "Tunneling inschakelen",
|
||||
"enableTunnelingDesc": "Schakel de SSH-tunnelfunctionaliteit voor deze host in.",
|
||||
"serverTunnelsSection": "Servertunnels",
|
||||
"addTunnelBtn": "Voeg tunnel toe",
|
||||
"noTunnelsConfigured": "Er zijn geen tunnels geconfigureerd.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tunneltype",
|
||||
"tunnelModeLocalDesc": "Een lokale poort doorsturen naar een poort op de externe server (of een host die vanaf die server bereikbaar is).",
|
||||
"tunnelModeRemoteDesc": "Een poort op de externe server doorsturen naar een lokale poort op uw computer.",
|
||||
"tunnelModeDynamicDesc": "Maak een SOCKS5-proxy aan op een lokale poort voor dynamische poortdoorsturing.",
|
||||
"sameHost": "Deze host (directe tunnel)",
|
||||
"endpointHost": "Eindpunthost",
|
||||
"endpointHostPlaceholder": "Dezelfde host, SSH-host of bereikbare host/IP-adres",
|
||||
"endpointPort": "Eindpuntpoort",
|
||||
"bindHost": "Bind Host",
|
||||
"sourcePort": "Bronpoort",
|
||||
"maxRetries": "Max. aantal herhalingen",
|
||||
"retryIntervalS": "Herhaalinterval (s)",
|
||||
"autoStartLabel": "Automatisch starten",
|
||||
"autoStartDesc": "Deze tunnel automatisch verbinden wanneer de host wordt geladen.",
|
||||
"tunnelConnecting": "Tunnelverbinding...",
|
||||
"tunnelDisconnected": "Tunnel losgekoppeld",
|
||||
"failedToConnectTunnel": "Verbinding mislukt",
|
||||
"failedToDisconnectTunnel": "Verbinding verbreken mislukt",
|
||||
"enableTmuxMonitor": "Tmux Monitor inschakelen",
|
||||
"enableTmuxMonitorDesc": "Toon deze host in de Tmux Monitor en voeg de bijbehorende Tmux-acties toe aan de zijbalk.",
|
||||
"enableTerminalToolbar": "Terminalwerkbalk inschakelen",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Vernieuwen",
|
||||
"addTag": "Tags toevoegen...",
|
||||
"deleteConfirmBtn": "Verwijderen",
|
||||
"tunnelRequirementsText": "De SSH-server moet de volgende instellingen hebben: GatewayPorts yes, AllowTcpForwarding yes en PermitRootLogin yes in /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Verwijder \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Schakel ten minste één van de bovenstaande protocollen in om de authenticatie- en verbindingsinstellingen te configureren.",
|
||||
"keyPassphrase": "Sleutelwachtwoordzin",
|
||||
"connectBtn": "Verbinden",
|
||||
"disconnectBtn": "Verbinding verbreken",
|
||||
"basicInformation": "Basisgegevens",
|
||||
"authDetailsSection": "Authenticatiegegevens",
|
||||
"credTypeLabel": "Type",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Er zijn gedeeltelijke gegevens op de bestemming bewaard gebleven. De herhaalpoging wordt hervat zodra de verbinding hersteld is."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Geen SSH-tunnels",
|
||||
"createFirstTunnelMessage": "Je hebt nog geen SSH-tunnels aangemaakt. Configureer tunnelverbindingen in de Host Manager om te beginnen.",
|
||||
"connected": "Aangesloten",
|
||||
"disconnected": "Verbinding verbroken",
|
||||
"connecting": "Verbinden...",
|
||||
"error": "Fout",
|
||||
"canceling": "Annuleren...",
|
||||
"connect": "Verbinden",
|
||||
"disconnect": "Verbinding verbreken",
|
||||
"cancel": "Annuleren",
|
||||
"port": "Haven",
|
||||
"localPort": "Lokale haven",
|
||||
"remotePort": "Externe poort",
|
||||
"destinationPort": "Bestemmingshaven",
|
||||
"currentHostPort": "Huidige hostpoort",
|
||||
"endpointPort": "Eindpuntpoort",
|
||||
"bindIp": "Lokaal IP-adres",
|
||||
"localAddress": "Lokaal adres",
|
||||
"remoteAddress": "Extern adres",
|
||||
"destinationAddress": "Bestemmingsadres",
|
||||
"remoteBindAddress": "Extern bindadres",
|
||||
"intermediateHost": "Tussenliggende gastheer",
|
||||
"endpointSshConfig": "SSH-configuratie van het eindpunt",
|
||||
"endpointSshHost": "Eindpunt SSH-host",
|
||||
"endpointSshHostPlaceholder": "Selecteer een geconfigureerde host.",
|
||||
"endpointSshHostRequired": "Selecteer een SSH-host voor elke clienttunnel.",
|
||||
"attempt": "Poging {{current}} van {{max}}",
|
||||
"nextRetryIn": "Volgende poging over {{seconds}} seconden",
|
||||
"clientTunnels": "Clienttunnels",
|
||||
"clientTunnel": "Clienttunnel",
|
||||
"addClientTunnel": "Clienttunnel toevoegen",
|
||||
"noClientTunnels": "Er zijn geen clienttunnels geconfigureerd op deze desktop.",
|
||||
"tunnelName": "Tunnelnaam",
|
||||
"remoteHost": "Externe host",
|
||||
"autoStart": "Automatische start",
|
||||
"clientAutoStartDesc": "Begint wanneer deze desktopclient wordt geopend en blijft verbonden.",
|
||||
"clientManualStartDesc": "Gebruik Start en Stop vanuit deze regel. Termix opent deze niet automatisch.",
|
||||
"clientRemoteServerNote": "Voor het doorsturen van externe poorten zijn mogelijk de instellingen AllowTcpForwarding en GatewayPorts vereist op de SSH-server van het eindpunt. De externe poort wordt gesloten wanneer deze desktop de verbinding verbreekt.",
|
||||
"clientTunnelStarted": "Clienttunnel gestart",
|
||||
"clientTunnelStopped": "Clienttunnel gestopt",
|
||||
"tunnelTestSucceeded": "Tunneltest geslaagd",
|
||||
"tunnelTestFailed": "Tunneltest mislukt",
|
||||
"localSaved": "Clienttunnels opgeslagen",
|
||||
"localSaveError": "Het opslaan van lokale clienttunnels is mislukt.",
|
||||
"invalidBindIp": "Het lokale IP-adres moet een geldig IPv4-adres zijn.",
|
||||
"invalidLocalTargetIp": "Het lokale doel-IP-adres moet een geldig IPv4-adres zijn.",
|
||||
"invalidRemoteAddress": "Een extern adres is vereist.",
|
||||
"invalidLocalPort": "Het lokale poortnummer moet tussen 1 en 65535 liggen.",
|
||||
"invalidRemotePort": "De externe poort moet tussen 1 en 65535 liggen.",
|
||||
"invalidLocalTargetPort": "De lokale doelpoort moet tussen 1 en 65535 liggen.",
|
||||
"invalidEndpointPort": "De eindpoort moet tussen 1 en 65535 liggen.",
|
||||
"duplicateAutoStartBind": "Slechts één automatisch startende clienttunnel kan {{bind}} gebruiken.",
|
||||
"manualControlError": "Het bijwerken van de tunnelstatus is mislukt.",
|
||||
"active": "Actief",
|
||||
"start": "Begin",
|
||||
"stop": "Stop",
|
||||
"test": "Test",
|
||||
"type": "Tunneltype",
|
||||
"typeLocal": "Lokaal (-L)",
|
||||
"typeRemote": "Afstandsbediening (-R)",
|
||||
"typeDynamic": "Dynamisch (-D)",
|
||||
"typeServerLocalDesc": "Huidige host naar eindpunt.",
|
||||
"typeServerRemoteDesc": "Eindpunt terug naar de huidige host.",
|
||||
"typeClientLocalDesc": "Lokale computer naar eindpunt.",
|
||||
"typeClientRemoteDesc": "Eindpunt terug naar lokale computer.",
|
||||
"typeClientDynamicDesc": "SOCKS op de lokale computer.",
|
||||
"typeDynamicDesc": "Stuur SOCKS5 CONNECT-verkeer door via SSH.",
|
||||
"forwardDescriptionServerLocal": "Huidige host {{sourcePort}} → eindpunt {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Eindpunt {{endpointPort}} → huidige host {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS op de huidige host {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokaal {{sourcePort}} → extern {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Extern {{sourcePort}} → lokaal {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS op lokale poort {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} op {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOKKEN via {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokaal {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokaal {{localPort}}",
|
||||
"autoNameClientDynamic": "SOKKEN {{localPort}} via {{endpoint}}",
|
||||
"route": "Route:",
|
||||
"lastStarted": "Laatst gestart",
|
||||
"lastTested": "Laatst getest",
|
||||
"lastError": "Laatste fout",
|
||||
"maxRetries": "Max. aantal herhalingen",
|
||||
"maxRetriesDescription": "Maximaal aantal herhaalpogingen.",
|
||||
"retryInterval": "Interval voor herpogingen (seconden)",
|
||||
"retryIntervalDescription": "De tijd die tussen herhaalpogingen verstreken moet worden.",
|
||||
"local": "Lokaal",
|
||||
"remote": "Op afstand",
|
||||
"destination": "Bestemming",
|
||||
"host": "Gastheer",
|
||||
"mode": "Modus",
|
||||
"noHostSelected": "Geen host geselecteerd",
|
||||
"working": "Bezig met verwerken..."
|
||||
"remote": "Op afstand"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Sleep om te verplaatsen",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokale desktoptunnels gericht op geconfigureerde SSH-hosts.",
|
||||
"c2sTunnelPresets": "Clienttunnel-voorinstellingen",
|
||||
"c2sTunnelPresetsDesc": "Sla de lokale tunnellijst van deze desktopclient op als een vooraf ingestelde server met een naam, of laad een vooraf ingestelde server in deze client.",
|
||||
"c2sTunnelPresetsUnavailable": "Clienttunnelvoorinstellingen zijn alleen beschikbaar in de desktopclient.",
|
||||
"c2sPresetName": "Voorinstellingnaam",
|
||||
"c2sPresetNamePlaceholder": "Naam van de clientvoorinstelling",
|
||||
"c2sPresetToLoad": "Voorinstelling om te laden",
|
||||
"c2sNoPresetSelected": "Geen voorinstelling geselecteerd",
|
||||
"c2sNoPresets": "Geen presets opgeslagen",
|
||||
"c2sLoadPreset": "Laden",
|
||||
"c2sCurrentLocalConfig": "{{count}} lokale clienttunnel(s) geconfigureerd op deze desktop.",
|
||||
"c2sPresetSyncNote": "Voorinstellingen zijn expliciete momentopnamen; het laden ervan vervangt de lokale lijst met clienttunnels van deze desktopclient.",
|
||||
"c2sPresetSaved": "Voorinstelling voor clienttunnel opgeslagen",
|
||||
"c2sPresetLoaded": "Client tunnel preset lokaal geladen",
|
||||
"c2sPresetRenamed": "Client tunnel-voorinstelling hernoemd",
|
||||
"c2sPresetDeleted": "Client tunnel-voorinstelling verwijderd",
|
||||
"c2sPresetLoadError": "Het laden van de clienttunnelvoorinstellingen is mislukt."
|
||||
"c2sTunnelPresetsDesc": "Sla de lokale tunnellijst van deze desktopclient op als een vooraf ingestelde server met een naam, of laad een vooraf ingestelde server in deze client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Taal",
|
||||
"keyPassword": "sleutel wachtwoord",
|
||||
"pastePrivateKey": "Plak hier uw privésleutel...",
|
||||
"localListenerHost": "127.0.0.1 (lokaal luisteren)",
|
||||
"localTargetHost": "127.0.0.1 (doel op deze computer)",
|
||||
"remoteTargetHost": "127.0.0.1 (doel van eindpunt)",
|
||||
"remoteBindHost": "127.0.0.1 (luisteren op eindpunt)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-luisteraar)",
|
||||
"enterPassword": "Voer uw wachtwoord in",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Voer uw wachtwoord in"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Hjem",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Lokal terminal",
|
||||
"tunnels": "Tunneler",
|
||||
"fileManager": "Filbehandler",
|
||||
"serverStats": "Vertsmålinger",
|
||||
"admin": "Admin",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makroer",
|
||||
"hostManager": "Vertsadministrator",
|
||||
"credentials": "Legitimasjon",
|
||||
"portForwarding": "Videresending",
|
||||
"connections": "Tilkoblinger",
|
||||
"serial": "Seriell",
|
||||
"keepSideMenuOpen": "Hold menyen åpen",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunneler",
|
||||
"tabStats": "Vertsmålinger",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Deling",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Oppstartsutdrag",
|
||||
"keepaliveIntervalLabel": "Keepalive-intervall (sekunder)",
|
||||
"maxKeepaliveMisses": "Max Keepalive bommer",
|
||||
"tunnelSettings": "Tunnelinnstillinger",
|
||||
"enableTunneling": "Aktiver tunnelering",
|
||||
"enableTunnelingDesc": "Aktiver SSH-tunnelfunksjonalitet for denne verten",
|
||||
"serverTunnelsSection": "Servertunneler",
|
||||
"addTunnelBtn": "Legg til tunnel",
|
||||
"noTunnelsConfigured": "Ingen tunneler konfigurert.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tunneltype",
|
||||
"tunnelModeLocalDesc": "Videresend en lokal port til en port på den eksterne serveren (eller en vert som er tilgjengelig fra den).",
|
||||
"tunnelModeRemoteDesc": "Videresend en port på den eksterne serveren tilbake til en lokal port på maskinen din.",
|
||||
"tunnelModeDynamicDesc": "Opprett en SOCKS5-proxy på en lokal port for dynamisk portvideresending.",
|
||||
"sameHost": "Denne verten (direkte tunnel)",
|
||||
"endpointHost": "Endepunktvert",
|
||||
"endpointHostPlaceholder": "Samme vert, SSH-vert eller tilgjengelig vert/IP",
|
||||
"endpointPort": "Endepunktport",
|
||||
"bindHost": "Bind vert",
|
||||
"sourcePort": "Kildeport",
|
||||
"maxRetries": "Maks antall nye forsøk",
|
||||
"retryIntervalS": "Intervall for nye forsøk (s)",
|
||||
"autoStartLabel": "Automatisk start",
|
||||
"autoStartDesc": "Koble til denne tunnelen automatisk når verten lastes inn",
|
||||
"tunnelConnecting": "Tunnelforbindelse...",
|
||||
"tunnelDisconnected": "Tunnelen frakoblet",
|
||||
"failedToConnectTunnel": "Kunne ikke koble til",
|
||||
"failedToDisconnectTunnel": "Kunne ikke koble fra",
|
||||
"enableTmuxMonitor": "Aktiver Tmux-monitor",
|
||||
"enableTmuxMonitorDesc": "Vis denne verten i Tmux-monitoren og legg til tmux-handlingene i sidefeltet",
|
||||
"enableTerminalToolbar": "Aktiver terminalverktøylinjen",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Forfriske",
|
||||
"addTag": "Legg til tagger...",
|
||||
"deleteConfirmBtn": "Slett",
|
||||
"tunnelRequirementsText": "SSH-serveren må ha GatewayPorts ja, AllowTcpForwarding ja og PermitRootLogin ja angitt i /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Slett «{{name}}»?",
|
||||
"enableAtLeastOneProtocol": "Aktiver minst én protokoll ovenfor for å konfigurere autentiserings- og tilkoblingsinnstillinger.",
|
||||
"keyPassphrase": "Nøkkelpassord",
|
||||
"connectBtn": "Koble til",
|
||||
"disconnectBtn": "Frakople",
|
||||
"basicInformation": "Grunnleggende informasjon",
|
||||
"authDetailsSection": "Autentiseringsdetaljer",
|
||||
"credTypeLabel": "Type",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Delvise data ble lagret på destinasjonen. Forsøket gjenopptas når forbindelsen er tilbake."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Ingen SSH-tunneler",
|
||||
"createFirstTunnelMessage": "Du har ikke opprettet noen SSH-tunneler ennå. Konfigurer tunneltilkoblinger i Host Manager for å komme i gang.",
|
||||
"connected": "Tilkoblet",
|
||||
"disconnected": "Frakoblet",
|
||||
"connecting": "Kobler til...",
|
||||
"error": "Feil",
|
||||
"canceling": "Avbryter...",
|
||||
"connect": "Koble til",
|
||||
"disconnect": "Frakople",
|
||||
"cancel": "Kansellere",
|
||||
"port": "Havn",
|
||||
"localPort": "Lokal havn",
|
||||
"remotePort": "Ekstern port",
|
||||
"destinationPort": "Destinasjonshavn",
|
||||
"currentHostPort": "Gjeldende vertsport",
|
||||
"endpointPort": "Endepunktport",
|
||||
"bindIp": "Lokal IP-adresse",
|
||||
"localAddress": "Lokal adresse",
|
||||
"remoteAddress": "Ekstern adresse",
|
||||
"destinationAddress": "Destinasjonsadresse",
|
||||
"remoteBindAddress": "Fjernbindingsadresse",
|
||||
"intermediateHost": "Mellomliggende vert",
|
||||
"endpointSshConfig": "SSH-konfigurasjon for endepunkt",
|
||||
"endpointSshHost": "Endepunkt SSH-vert",
|
||||
"endpointSshHostPlaceholder": "Velg en konfigurert vert",
|
||||
"endpointSshHostRequired": "Velg en SSH-vert for endepunktet for hver klienttunnel.",
|
||||
"attempt": "Forsøk {{current}} av {{max}}",
|
||||
"nextRetryIn": "Neste forsøk om {{seconds}} sekunder",
|
||||
"clientTunnels": "Klienttunneler",
|
||||
"clientTunnel": "Klienttunnel",
|
||||
"addClientTunnel": "Legg til klienttunnel",
|
||||
"noClientTunnels": "Ingen klienttunneler er konfigurert på dette skrivebordet.",
|
||||
"tunnelName": "Tunnelnavn",
|
||||
"remoteHost": "Ekstern vert",
|
||||
"autoStart": "Automatisk start",
|
||||
"clientAutoStartDesc": "Starter når denne skrivebordsklienten åpnes og forblir tilkoblet.",
|
||||
"clientManualStartDesc": "Bruk Start og Stopp fra denne raden. Termix vil ikke åpne den automatisk.",
|
||||
"clientRemoteServerNote": "Ekstern videresending kan kreve AllowTcpForwarding og GatewayPorts på endepunktets SSH-server. Den eksterne porten lukkes når dette skrivebordet kobles fra.",
|
||||
"clientTunnelStarted": "Klienttunnel startet",
|
||||
"clientTunnelStopped": "Klienttunnelen stoppet",
|
||||
"tunnelTestSucceeded": "Tunneltesten var vellykket",
|
||||
"tunnelTestFailed": "Tunneltest mislyktes",
|
||||
"localSaved": "Klienttunneler lagret",
|
||||
"localSaveError": "Kunne ikke lagre lokale klienttunneler",
|
||||
"invalidBindIp": "Lokal IP-adresse må være en gyldig IPv4-adresse.",
|
||||
"invalidLocalTargetIp": "Lokal mål-IP må være en gyldig IPv4-adresse.",
|
||||
"invalidRemoteAddress": "Ekstern adresse er påkrevd.",
|
||||
"invalidLocalPort": "Lokal port må være mellom 1 og 65535.",
|
||||
"invalidRemotePort": "Ekstern port må være mellom 1 og 65535.",
|
||||
"invalidLocalTargetPort": "Den lokale målporten må være mellom 1 og 65535.",
|
||||
"invalidEndpointPort": "Endepunktporten må være mellom 1 og 65535.",
|
||||
"duplicateAutoStartBind": "Bare én automatisk-start-klientunnel kan bruke {{bind}}.",
|
||||
"manualControlError": "Kunne ikke oppdatere tunnelstatus.",
|
||||
"active": "Aktiv",
|
||||
"start": "Start",
|
||||
"stop": "Stoppe",
|
||||
"test": "Test",
|
||||
"type": "Tunneltype",
|
||||
"typeLocal": "Lokal (-L)",
|
||||
"typeRemote": "Fjernkontroll (-R)",
|
||||
"typeDynamic": "Dynamisk (-D)",
|
||||
"typeServerLocalDesc": "Gjeldende vert til endepunkt.",
|
||||
"typeServerRemoteDesc": "Endepunkt tilbake til nåværende vert.",
|
||||
"typeClientLocalDesc": "Lokal datamaskin til endepunkt.",
|
||||
"typeClientRemoteDesc": "Endepunkt tilbake til lokal datamaskin.",
|
||||
"typeClientDynamicDesc": "SOCKS på lokal datamaskin.",
|
||||
"typeDynamicDesc": "Videresend SOCKS5 CONNECT-trafikk via SSH",
|
||||
"forwardDescriptionServerLocal": "Nåværende vert {{sourcePort}} → endepunkt {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Endepunkt {{endpointPort}} → gjeldende vert {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS på gjeldende vert {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokal {{sourcePort}} → ekstern {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Fjern {{sourcePort}} → lokal {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS på lokal port {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} på {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOKKER via {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}",
|
||||
"autoNameClientDynamic": "SOKKER {{localPort}} via {{endpoint}}",
|
||||
"route": "Rute:",
|
||||
"lastStarted": "Sist startet",
|
||||
"lastTested": "Sist testet",
|
||||
"lastError": "Siste feil",
|
||||
"maxRetries": "Maks antall nye forsøk",
|
||||
"maxRetriesDescription": "Maksimalt antall nye forsøk.",
|
||||
"retryInterval": "Intervall for nye forsøk (sekunder)",
|
||||
"retryIntervalDescription": "Tid til å vente mellom nye forsøk.",
|
||||
"local": "Lokalt",
|
||||
"remote": "Fjernkontroll",
|
||||
"destination": "Destinasjon",
|
||||
"host": "Vert",
|
||||
"mode": "Modus",
|
||||
"noHostSelected": "Ingen vert valgt",
|
||||
"working": "Arbeider..."
|
||||
"remote": "Fjernkontroll"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Dra for å flytte",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokale skrivebordstunneler som er rettet mot konfigurerte SSH-verter.",
|
||||
"c2sTunnelPresets": "Forhåndsinnstillinger for klienttunnel",
|
||||
"c2sTunnelPresetsDesc": "Lagre denne skrivebordsklientens lokale tunnelliste som en navngitt serverforhåndsinnstilling, eller last inn en forhåndsinnstilling tilbake i denne klienten.",
|
||||
"c2sTunnelPresetsUnavailable": "Forhåndsinnstillinger for klienttunnel er bare tilgjengelige i skrivebordsklienten.",
|
||||
"c2sPresetName": "Forhåndsinnstilt navn",
|
||||
"c2sPresetNamePlaceholder": "Klientens forhåndsinnstilte navn",
|
||||
"c2sPresetToLoad": "Forhåndsinnstilt for lasting",
|
||||
"c2sNoPresetSelected": "Ingen forhåndsinnstilling valgt",
|
||||
"c2sNoPresets": "Ingen forhåndsinnstillinger lagret",
|
||||
"c2sLoadPreset": "Laste",
|
||||
"c2sCurrentLocalConfig": "{{count}} lokale klienttunneler konfigurert på dette skrivebordet.",
|
||||
"c2sPresetSyncNote": "Forhåndsinnstillinger er eksplisitte øyeblikksbilder; lasting av et erstatter denne skrivebordsklientens lokale klienttunnelliste.",
|
||||
"c2sPresetSaved": "Forhåndsinnstilling for klienttunnel lagret",
|
||||
"c2sPresetLoaded": "Forhåndsinnstilling for klienttunnel lastes inn lokalt",
|
||||
"c2sPresetRenamed": "Forhåndsinnstilling for klienttunnel omdøpt",
|
||||
"c2sPresetDeleted": "Forhåndsinnstilling for klienttunnel slettet",
|
||||
"c2sPresetLoadError": "Kunne ikke laste inn forhåndsinnstillinger for klienttunnel"
|
||||
"c2sTunnelPresetsDesc": "Lagre denne skrivebordsklientens lokale tunnelliste som en navngitt serverforhåndsinnstilling, eller last inn en forhåndsinnstilling tilbake i denne klienten."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Språk",
|
||||
"keyPassword": "nøkkelpassord",
|
||||
"pastePrivateKey": "Lim inn din private nøkkel her...",
|
||||
"localListenerHost": "127.0.0.1 (lytt lokalt)",
|
||||
"localTargetHost": "127.0.0.1 (mål på denne datamaskinen)",
|
||||
"remoteTargetHost": "127.0.0.1 (mål fra endepunkt)",
|
||||
"remoteBindHost": "127.0.0.1 (lytt på endepunkt)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-lytter)",
|
||||
"enterPassword": "Skriv inn passordet ditt",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Skriv inn passordet ditt"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashbord",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Start",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal lokalny",
|
||||
"tunnels": "Tunele",
|
||||
"fileManager": "Menedżer plików",
|
||||
"serverStats": "Metryki hosta",
|
||||
"admin": "Administracja",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makra",
|
||||
"hostManager": "Menedżer hostów",
|
||||
"credentials": "Poświadczenia",
|
||||
"portForwarding": "Przekierowanie",
|
||||
"connections": "Połączenia",
|
||||
"serial": "Port szeregowy",
|
||||
"keepSideMenuOpen": "Zachowaj otwarte menu",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunele",
|
||||
"tabStats": "Metryki hosta",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Udostępnianie",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Snippet startowy",
|
||||
"keepaliveIntervalLabel": "Interwał utrzymywania połączenia (sekundy)",
|
||||
"maxKeepaliveMisses": "Maks. pominiętych keepalive",
|
||||
"tunnelSettings": "Ustawienia tunelu",
|
||||
"enableTunneling": "Włącz tunelowanie",
|
||||
"enableTunnelingDesc": "Włącz funkcjonalność tunelu SSH dla tego hosta",
|
||||
"serverTunnelsSection": "Tunele serwerowe",
|
||||
"addTunnelBtn": "Dodaj tunel",
|
||||
"noTunnelsConfigured": "Nie skonfigurowano żadnych tuneli.",
|
||||
"tunnelLabel": "Tunel {{number}}",
|
||||
"tunnelType": "Typ tunelu",
|
||||
"tunnelModeLocalDesc": "Przekieruj port lokalny do portu na serwerze zdalnym (lub do hosta, do którego można uzyskać dostęp z tego serwera).",
|
||||
"tunnelModeRemoteDesc": "Przekieruj port na serwerze zdalnym z powrotem do portu lokalnego na swoim komputerze.",
|
||||
"tunnelModeDynamicDesc": "Utwórz serwer proxy SOCKS5 na porcie lokalnym w celu dynamicznego przekierowywania portów.",
|
||||
"sameHost": "Ten host (tunel bezpośredni)",
|
||||
"endpointHost": "Host punktu końcowego",
|
||||
"endpointHostPlaceholder": "Ten sam host, host SSH lub dostępny host/adres IP",
|
||||
"endpointPort": "Port końcowy",
|
||||
"bindHost": "Host nasłuchu",
|
||||
"sourcePort": "Port źródłowy",
|
||||
"maxRetries": "Maksymalna liczba ponownych prób",
|
||||
"retryIntervalS": "Interwał ponawiania (s)",
|
||||
"autoStartLabel": "Autostart",
|
||||
"autoStartDesc": "Automatycznie połącz ten tunel po załadowaniu hosta",
|
||||
"tunnelConnecting": "Łączenie tunelu...",
|
||||
"tunnelDisconnected": "Tunel rozłączony",
|
||||
"failedToConnectTunnel": "Nie udało się połączyć",
|
||||
"failedToDisconnectTunnel": "Nie udało się rozłączyć",
|
||||
"enableTmuxMonitor": "Włącz monitor Tmux",
|
||||
"enableTmuxMonitorDesc": "Pokaż tego hosta w monitorze Tmux i dodaj jego akcje tmux do paska bocznego",
|
||||
"enableTerminalToolbar": "Włącz pasek narzędzi terminala",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Odśwież",
|
||||
"addTag": "Dodaj tagi...",
|
||||
"deleteConfirmBtn": "Usuń",
|
||||
"tunnelRequirementsText": "Serwer SSH musi mieć w /etc/ssh/sshd_config ustawione GatewayPorts yes, AllowTcpForwarding yes i PermitRootLogin yes.",
|
||||
"deleteHostConfirm": "Usunąć „{{name}}”?",
|
||||
"enableAtLeastOneProtocol": "Włącz co najmniej jeden z powyższych protokołów, aby skonfigurować ustawienia uwierzytelniania i połączenia.",
|
||||
"keyPassphrase": "Hasło klucza",
|
||||
"connectBtn": "Połącz",
|
||||
"disconnectBtn": "Odłącz",
|
||||
"basicInformation": "Informacje podstawowe",
|
||||
"authDetailsSection": "Szczegóły uwierzytelniania",
|
||||
"credTypeLabel": "Typ",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "W miejscu docelowym zachowano częściowe dane. Ponowna próba zostanie wznowiona po przywróceniu połączenia."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Brak tuneli SSH",
|
||||
"createFirstTunnelMessage": "Nie utworzono jeszcze żadnych tuneli SSH. Skonfiguruj połączenia tunelowe w Menedżerze hostów, aby zacząć.",
|
||||
"connected": "Połączono",
|
||||
"disconnected": "Rozłączono",
|
||||
"connecting": "Łączenie...",
|
||||
"error": "Błąd",
|
||||
"canceling": "Anulowanie...",
|
||||
"connect": "Połącz",
|
||||
"disconnect": "Odłącz",
|
||||
"cancel": "Anuluj",
|
||||
"port": "Port",
|
||||
"localPort": "Port lokalny",
|
||||
"remotePort": "Zdalny port",
|
||||
"destinationPort": "Port docelowy",
|
||||
"currentHostPort": "Aktualny port hosta",
|
||||
"endpointPort": "Port końcowy",
|
||||
"bindIp": "Lokalny adres IP",
|
||||
"localAddress": "Adres lokalny",
|
||||
"remoteAddress": "Zdalny adres",
|
||||
"destinationAddress": "Adres docelowy",
|
||||
"remoteBindAddress": "Zdalny adres powiązania",
|
||||
"intermediateHost": "Żywiciel pośredni",
|
||||
"endpointSshConfig": "Konfiguracja SSH punktu końcowego",
|
||||
"endpointSshHost": "Host SSH punktu końcowego",
|
||||
"endpointSshHostPlaceholder": "Wybierz skonfigurowanego hosta",
|
||||
"endpointSshHostRequired": "Wybierz hosta SSH punktu końcowego dla każdego tunelu klienta.",
|
||||
"attempt": "Próba {{current}} z {{max}}",
|
||||
"nextRetryIn": "Następna próba za {{seconds}} sekund",
|
||||
"clientTunnels": "Tunele klienckie",
|
||||
"clientTunnel": "Tunel klienta",
|
||||
"addClientTunnel": "Dodaj tunel klienta",
|
||||
"noClientTunnels": "Na tym komputerze nie skonfigurowano żadnych tuneli klienckich.",
|
||||
"tunnelName": "Nazwa tunelu",
|
||||
"remoteHost": "Zdalny host",
|
||||
"autoStart": "Autostart",
|
||||
"clientAutoStartDesc": "Uruchamia się przy starcie aplikacji desktopowej i pozostaje połączony.",
|
||||
"clientManualStartDesc": "Użyj przycisków Start i Stop z tego wiersza. Termix nie otworzy go automatycznie.",
|
||||
"clientRemoteServerNote": "Przekierowanie zdalne może wymagać opcji AllowTcpForwarding i GatewayPorts na serwerze SSH punktu końcowego. Port zdalny zamyka się po rozłączeniu tego komputera.",
|
||||
"clientTunnelStarted": "Uruchomiono tunel klienta",
|
||||
"clientTunnelStopped": "Zatrzymano tunel klienta",
|
||||
"tunnelTestSucceeded": "Test tunelu zakończony powodzeniem",
|
||||
"tunnelTestFailed": "Test tunelu nie powiódł się",
|
||||
"localSaved": "Zapisano tunele klienta",
|
||||
"localSaveError": "Nie udało się zapisać lokalnych tuneli klienta",
|
||||
"invalidBindIp": "Lokalny adres IP musi być prawidłowym adresem IPv4.",
|
||||
"invalidLocalTargetIp": "Lokalny adres IP docelowy musi być prawidłowym adresem IPv4.",
|
||||
"invalidRemoteAddress": "Wymagany jest adres zdalny.",
|
||||
"invalidLocalPort": "Port lokalny musi mieścić się w zakresie od 1 do 65535.",
|
||||
"invalidRemotePort": "Port zdalny musi mieścić się w zakresie od 1 do 65535.",
|
||||
"invalidLocalTargetPort": "Lokalny port docelowy musi mieścić się w zakresie od 1 do 65535.",
|
||||
"invalidEndpointPort": "Port końcowy musi mieścić się w zakresie od 1 do 65535.",
|
||||
"duplicateAutoStartBind": "Tylko jeden tunel klienta z automatycznym uruchomieniem może używać {{bind}}.",
|
||||
"manualControlError": "Nie udało się zaktualizować stanu tunelu.",
|
||||
"active": "Aktywny",
|
||||
"start": "Start",
|
||||
"stop": "Zatrzymaj",
|
||||
"test": "Test",
|
||||
"type": "Typ tunelu",
|
||||
"typeLocal": "Lokalny (-L)",
|
||||
"typeRemote": "Zdalny (-R)",
|
||||
"typeDynamic": "Dynamiczny (-D)",
|
||||
"typeServerLocalDesc": "Bieżący host do punktu końcowego.",
|
||||
"typeServerRemoteDesc": "Punkt końcowy z powrotem do bieżącego hosta.",
|
||||
"typeClientLocalDesc": "Komputer lokalny do punktu końcowego.",
|
||||
"typeClientRemoteDesc": "Punkt końcowy z powrotem do komputera lokalnego.",
|
||||
"typeClientDynamicDesc": "SOCKS na komputerze lokalnym.",
|
||||
"typeDynamicDesc": "Przekieruj ruch SOCKS5 CONNECT przez SSH",
|
||||
"forwardDescriptionServerLocal": "Aktualny host {{sourcePort}} → punkt końcowy {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Punkt końcowy {{endpointPort}} → bieżący host {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS na bieżącym hoście {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokalny {{sourcePort}} → zdalny {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Zdalny {{sourcePort}} → lokalny {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS na porcie lokalnym {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} przez {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} na {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS przez {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokalny {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokalny {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} przez {{endpoint}}",
|
||||
"route": "Trasa:",
|
||||
"lastStarted": "Ostatnio uruchomiony",
|
||||
"lastTested": "Ostatnio testowane",
|
||||
"lastError": "Ostatni błąd",
|
||||
"maxRetries": "Maksymalna liczba ponownych prób",
|
||||
"maxRetriesDescription": "Maksymalna liczba ponownych prób.",
|
||||
"retryInterval": "Interwał ponawiania (sekundy)",
|
||||
"retryIntervalDescription": "Czas oczekiwania pomiędzy kolejnymi próbami.",
|
||||
"local": "Lokalny",
|
||||
"remote": "Zdalny",
|
||||
"destination": "Cel",
|
||||
"host": "Host",
|
||||
"mode": "Tryb",
|
||||
"noHostSelected": "Nie wybrano hosta",
|
||||
"working": "Przetwarzanie..."
|
||||
"remote": "Zdalny"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Przeciągnij, aby przesunąć",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokalne tunele aplikacji desktopowej kierowane do skonfigurowanych hostów SSH.",
|
||||
"c2sTunnelPresets": "Zestawy tuneli klienta",
|
||||
"c2sTunnelPresetsDesc": "Zapisz listę lokalnych tuneli tej aplikacji jako nazwany zestaw na serwerze albo wczytaj zestaw z powrotem do tej aplikacji.",
|
||||
"c2sTunnelPresetsUnavailable": "Zestawy tuneli klienta są dostępne tylko w aplikacji desktopowej.",
|
||||
"c2sPresetName": "Nazwa zestawu",
|
||||
"c2sPresetNamePlaceholder": "Nazwa zestawu klienta",
|
||||
"c2sPresetToLoad": "Zestaw do wczytania",
|
||||
"c2sNoPresetSelected": "Nie wybrano zestawu",
|
||||
"c2sNoPresets": "Brak zapisanych zestawów",
|
||||
"c2sLoadPreset": "Wczytaj",
|
||||
"c2sCurrentLocalConfig": "Liczba lokalnych tuneli klienta skonfigurowanych na tym komputerze: {{count}}.",
|
||||
"c2sPresetSyncNote": "Zestawy to jawne migawki; wczytanie zestawu zastępuje listę lokalnych tuneli klienta w tej aplikacji.",
|
||||
"c2sPresetSaved": "Zapisano zestaw tuneli klienta",
|
||||
"c2sPresetLoaded": "Wczytano zestaw tuneli klienta lokalnie",
|
||||
"c2sPresetRenamed": "Zmieniono nazwę zestawu tuneli klienta",
|
||||
"c2sPresetDeleted": "Usunięto zestaw tuneli klienta",
|
||||
"c2sPresetLoadError": "Nie udało się wczytać zestawów tuneli klienta"
|
||||
"c2sTunnelPresetsDesc": "Zapisz listę lokalnych tuneli tej aplikacji jako nazwany zestaw na serwerze albo wczytaj zestaw z powrotem do tej aplikacji."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Język",
|
||||
"keyPassword": "hasło klucza",
|
||||
"pastePrivateKey": "Wklej tutaj klucz prywatny...",
|
||||
"localListenerHost": "127.0.0.1 (nasłuch lokalny)",
|
||||
"localTargetHost": "127.0.0.1 (cel na tym komputerze)",
|
||||
"remoteTargetHost": "127.0.0.1 (cel z punktu końcowego)",
|
||||
"remoteBindHost": "127.0.0.1 (nasłuchiwanie na punkcie końcowym)",
|
||||
"socksListenerHost": "127.0.0.1 (nasłuch SOCKS)",
|
||||
"enterPassword": "Wprowadź hasło",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Wprowadź hasło"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Pulpit",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Lar",
|
||||
"terminal": "terminal",
|
||||
"localTerminal": "Terminal local",
|
||||
"tunnels": "Túneis",
|
||||
"fileManager": "Gerenciador de arquivos",
|
||||
"serverStats": "Métricas do host",
|
||||
"admin": "Administrador",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macros",
|
||||
"hostManager": "Gerente de Hospedagem",
|
||||
"credentials": "Credenciais",
|
||||
"portForwarding": "Encaminhamento",
|
||||
"connections": "Conexões",
|
||||
"serial": "Serial",
|
||||
"keepSideMenuOpen": "Mantenha o menu aberto",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Túneis",
|
||||
"tabStats": "Métricas do host",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Compartilhamento",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Trecho de startup",
|
||||
"keepaliveIntervalLabel": "Intervalo de Keepalive (segundos)",
|
||||
"maxKeepaliveMisses": "Max Keepalive falha",
|
||||
"tunnelSettings": "Configurações do túnel",
|
||||
"enableTunneling": "Habilitar o tunelamento",
|
||||
"enableTunnelingDesc": "Ative a funcionalidade de túnel SSH para este host.",
|
||||
"serverTunnelsSection": "Túneis de servidor",
|
||||
"addTunnelBtn": "Adicionar túnel",
|
||||
"noTunnelsConfigured": "Nenhum túnel configurado.",
|
||||
"tunnelLabel": "Túnel {{number}}",
|
||||
"tunnelType": "Tipo de túnel",
|
||||
"tunnelModeLocalDesc": "Encaminhar uma porta local para uma porta no servidor remoto (ou em um host acessível a partir dele).",
|
||||
"tunnelModeRemoteDesc": "Encaminhe uma porta no servidor remoto de volta para uma porta local em sua máquina.",
|
||||
"tunnelModeDynamicDesc": "Crie um proxy SOCKS5 em uma porta local para encaminhamento dinâmico de portas.",
|
||||
"sameHost": "Este host (túnel direto)",
|
||||
"endpointHost": "Host do ponto final",
|
||||
"endpointHostPlaceholder": "Mesmo host, host SSH ou host/IP acessível",
|
||||
"endpointPort": "Porta de ponto final",
|
||||
"bindHost": "Vincular host",
|
||||
"sourcePort": "Porta de origem",
|
||||
"maxRetries": "Número máximo de tentativas",
|
||||
"retryIntervalS": "Intervalo de tentativas (s)",
|
||||
"autoStartLabel": "Início automático",
|
||||
"autoStartDesc": "Conecte este túnel automaticamente quando o host estiver carregado.",
|
||||
"tunnelConnecting": "Túnel de ligação...",
|
||||
"tunnelDisconnected": "Túnel desconectado",
|
||||
"failedToConnectTunnel": "Falha ao conectar",
|
||||
"failedToDisconnectTunnel": "Falha ao desconectar",
|
||||
"enableTmuxMonitor": "Ativar monitor Tmux",
|
||||
"enableTmuxMonitorDesc": "Exiba este host no Monitor Tmux e adicione suas ações tmux à barra lateral.",
|
||||
"enableTerminalToolbar": "Ativar a barra de ferramentas do terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Atualizar",
|
||||
"addTag": "Adicionar etiquetas...",
|
||||
"deleteConfirmBtn": "Excluir",
|
||||
"tunnelRequirementsText": "O servidor SSH deve ter as seguintes configurações definidas em /etc/ssh/sshd_config: GatewayPorts yes, AllowTcpForwarding yes e PermitRootLogin yes.",
|
||||
"deleteHostConfirm": "Apagar \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Habilite pelo menos um dos protocolos acima para configurar as definições de autenticação e conexão.",
|
||||
"keyPassphrase": "Senha da chave",
|
||||
"connectBtn": "Conectar",
|
||||
"disconnectBtn": "Desconectar",
|
||||
"basicInformation": "Informações básicas",
|
||||
"authDetailsSection": "Detalhes de autenticação",
|
||||
"credTypeLabel": "Tipo",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Dados parciais foram mantidos no destino. A tentativa será retomada quando a conexão for restabelecida."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Sem túneis SSH",
|
||||
"createFirstTunnelMessage": "Você ainda não criou nenhum túnel SSH. Configure as conexões de túnel no Gerenciador de Hosts para começar.",
|
||||
"connected": "Conectado",
|
||||
"disconnected": "Desconectado",
|
||||
"connecting": "Conectando...",
|
||||
"error": "Erro",
|
||||
"canceling": "Cancelando...",
|
||||
"connect": "Conectar",
|
||||
"disconnect": "Desconectar",
|
||||
"cancel": "Cancelar",
|
||||
"port": "Porta",
|
||||
"localPort": "Porto local",
|
||||
"remotePort": "Porta remota",
|
||||
"destinationPort": "Porto de destino",
|
||||
"currentHostPort": "Porta do host atual",
|
||||
"endpointPort": "Porta de ponto final",
|
||||
"bindIp": "IP local",
|
||||
"localAddress": "Endereço local",
|
||||
"remoteAddress": "Endereço remoto",
|
||||
"destinationAddress": "Endereço de destino",
|
||||
"remoteBindAddress": "Endereço de vinculação remota",
|
||||
"intermediateHost": "Anfitrião intermediário",
|
||||
"endpointSshConfig": "Configuração SSH do endpoint",
|
||||
"endpointSshHost": "Host SSH de ponto final",
|
||||
"endpointSshHostPlaceholder": "Selecione um host configurado",
|
||||
"endpointSshHostRequired": "Selecione um host SSH de ponto final para cada túnel de cliente.",
|
||||
"attempt": "Tentativa {{current}} de {{max}}",
|
||||
"nextRetryIn": "Próxima tentativa em {{seconds}} segundos",
|
||||
"clientTunnels": "Túneis para clientes",
|
||||
"clientTunnel": "Túnel do Cliente",
|
||||
"addClientTunnel": "Adicionar túnel de cliente",
|
||||
"noClientTunnels": "Nenhum túnel de cliente configurado nesta área de trabalho.",
|
||||
"tunnelName": "Nome do túnel",
|
||||
"remoteHost": "Host remoto",
|
||||
"autoStart": "Início automático",
|
||||
"clientAutoStartDesc": "Inicia quando este cliente de desktop é aberto e permanece conectado.",
|
||||
"clientManualStartDesc": "Use os botões Iniciar e Parar a partir desta linha. O Termix não os abrirá automaticamente.",
|
||||
"clientRemoteServerNote": "O encaminhamento remoto pode exigir as permissões AllowTcpForwarding e GatewayPorts no servidor SSH do endpoint. A porta remota é fechada quando esta área de trabalho se desconecta.",
|
||||
"clientTunnelStarted": "O túnel do cliente foi iniciado.",
|
||||
"clientTunnelStopped": "O túnel do cliente foi interrompido.",
|
||||
"tunnelTestSucceeded": "O teste no túnel foi bem-sucedido.",
|
||||
"tunnelTestFailed": "O teste do túnel falhou",
|
||||
"localSaved": "Túneis de clientes salvos",
|
||||
"localSaveError": "Falha ao salvar os túneis do cliente local.",
|
||||
"invalidBindIp": "O endereço IP local deve ser um endereço IPv4 válido.",
|
||||
"invalidLocalTargetIp": "O endereço IP de destino local deve ser um endereço IPv4 válido.",
|
||||
"invalidRemoteAddress": "É necessário um endereço remoto.",
|
||||
"invalidLocalPort": "A porta local deve estar entre 1 e 65535.",
|
||||
"invalidRemotePort": "A porta remota deve estar entre 1 e 65535.",
|
||||
"invalidLocalTargetPort": "A porta de destino local deve estar entre 1 e 65535.",
|
||||
"invalidEndpointPort": "A porta do ponto final deve estar entre 1 e 65535.",
|
||||
"duplicateAutoStartBind": "Apenas um túnel de cliente de inicialização automática pode usar {{bind}}.",
|
||||
"manualControlError": "Falha ao atualizar o estado do túnel.",
|
||||
"active": "Ativo",
|
||||
"start": "Começar",
|
||||
"stop": "Parar",
|
||||
"test": "Teste",
|
||||
"type": "Tipo de túnel",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Remoto (-R)",
|
||||
"typeDynamic": "Dinâmico (-D)",
|
||||
"typeServerLocalDesc": "Host atual para endpoint.",
|
||||
"typeServerRemoteDesc": "Retorno do ponto final para o host atual.",
|
||||
"typeClientLocalDesc": "Computador local para ponto final.",
|
||||
"typeClientRemoteDesc": "O ponto de extremidade retorna ao computador local.",
|
||||
"typeClientDynamicDesc": "SOCKS no computador local.",
|
||||
"typeDynamicDesc": "Encaminhar tráfego SOCKS5 CONNECT através de SSH",
|
||||
"forwardDescriptionServerLocal": "Host atual {{sourcePort}} → endpoint {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Ponto final {{endpointPort}} → host atual {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS no host atual {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remoto {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Remoto {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS na porta local {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} em {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → MEIAS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "MEIAS {{localPort}} via {{endpoint}}",
|
||||
"route": "Rota:",
|
||||
"lastStarted": "Última vez iniciado",
|
||||
"lastTested": "Último teste",
|
||||
"lastError": "Último erro",
|
||||
"maxRetries": "Número máximo de tentativas",
|
||||
"maxRetriesDescription": "Número máximo de tentativas.",
|
||||
"retryInterval": "Intervalo de tentativas (segundos)",
|
||||
"retryIntervalDescription": "Tempo de espera entre tentativas de repetição.",
|
||||
"local": "Local",
|
||||
"remote": "Remoto",
|
||||
"destination": "Destino",
|
||||
"host": "Hospedar",
|
||||
"mode": "Modo",
|
||||
"noHostSelected": "Nenhum host selecionado",
|
||||
"working": "Trabalhando..."
|
||||
"remote": "Remoto"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Arraste para mover",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Túneis de desktop locais direcionados a hosts SSH configurados.",
|
||||
"c2sTunnelPresets": "Configurações predefinidas do túnel do cliente",
|
||||
"c2sTunnelPresetsDesc": "Salve a lista de túneis locais deste cliente de desktop como uma predefinição de servidor nomeada ou carregue uma predefinição de volta neste cliente.",
|
||||
"c2sTunnelPresetsUnavailable": "As configurações predefinidas de túnel do cliente estão disponíveis apenas no cliente para desktop.",
|
||||
"c2sPresetName": "Nome predefinido",
|
||||
"c2sPresetNamePlaceholder": "Nome predefinido do cliente",
|
||||
"c2sPresetToLoad": "Predefinido para carregar",
|
||||
"c2sNoPresetSelected": "Nenhuma predefinição selecionada",
|
||||
"c2sNoPresets": "Nenhuma predefinição salva",
|
||||
"c2sLoadPreset": "Carregar",
|
||||
"c2sCurrentLocalConfig": "{{count}} Túneis de cliente local configurados nesta área de trabalho.",
|
||||
"c2sPresetSyncNote": "As predefinições são instantâneos explícitos; carregar uma substitui a lista de túneis de clientes locais deste cliente de desktop.",
|
||||
"c2sPresetSaved": "Configuração predefinida do túnel do cliente salva",
|
||||
"c2sPresetLoaded": "Configuração predefinida do túnel do cliente carregada localmente",
|
||||
"c2sPresetRenamed": "A predefinição do túnel do cliente foi renomeada.",
|
||||
"c2sPresetDeleted": "Configuração de túnel do cliente excluída",
|
||||
"c2sPresetLoadError": "Falha ao carregar as predefinições do túnel do cliente."
|
||||
"c2sTunnelPresetsDesc": "Salve a lista de túneis locais deste cliente de desktop como uma predefinição de servidor nomeada ou carregue uma predefinição de volta neste cliente."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Linguagem",
|
||||
"keyPassword": "senha chave",
|
||||
"pastePrivateKey": "Cole sua chave privada aqui...",
|
||||
"localListenerHost": "127.0.0.1 (ouvir localmente)",
|
||||
"localTargetHost": "127.0.0.1 (alvo neste computador)",
|
||||
"remoteTargetHost": "127.0.0.1 (destino do ponto de extremidade)",
|
||||
"remoteBindHost": "127.0.0.1 (escutar no ponto de extremidade)",
|
||||
"socksListenerHost": "127.0.0.1 (ouvinte SOCKS)",
|
||||
"enterPassword": "Digite sua senha",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Digite sua senha"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Painel",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Início",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal local",
|
||||
"tunnels": "Túneis",
|
||||
"fileManager": "Gestor de ficheiros",
|
||||
"serverStats": "Métricas do Servidor",
|
||||
"admin": "Administração",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macros",
|
||||
"hostManager": "Gestor de Máquinas",
|
||||
"credentials": "Credenciais",
|
||||
"portForwarding": "Encaminhamento",
|
||||
"connections": "Ligações",
|
||||
"serial": "Serial",
|
||||
"keepSideMenuOpen": "Mantenha o menu aberto",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Túneis",
|
||||
"tabStats": "Métricas do Host",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Partilha",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Fragmento de inicialização",
|
||||
"keepaliveIntervalLabel": "Intervalo de Keepalive (segundos)",
|
||||
"maxKeepaliveMisses": "Máximo de falhas de Keepalive",
|
||||
"tunnelSettings": "Definições de túnel",
|
||||
"enableTunneling": "Ativar tunelamento",
|
||||
"enableTunnelingDesc": "Ativar a funcionalidade de túnel SSH para este host",
|
||||
"serverTunnelsSection": "Túneis do servidor",
|
||||
"addTunnelBtn": "Adicionar túnel",
|
||||
"noTunnelsConfigured": "Nenhum túnel configurado.",
|
||||
"tunnelLabel": "Túnel {{number}}",
|
||||
"tunnelType": "Tipo de túnel",
|
||||
"tunnelModeLocalDesc": "Reencaminhar uma porta local para uma porta no servidor remoto (ou um host acessível a partir dele).",
|
||||
"tunnelModeRemoteDesc": "Reencaminhar uma porta no servidor remoto de volta para uma porta local na sua máquina.",
|
||||
"tunnelModeDynamicDesc": "Criar um proxy SOCKS5 numa porta local para reencaminhamento dinâmico de portas.",
|
||||
"sameHost": "Este host (túnel direto)",
|
||||
"endpointHost": "Host de Destino",
|
||||
"endpointHostPlaceholder": "Mesmo host, host SSH ou host/IP acessível",
|
||||
"endpointPort": "Porta de Destino",
|
||||
"bindHost": "Host de Ligação",
|
||||
"sourcePort": "Porta de Origem",
|
||||
"maxRetries": "Tentativas Máximas",
|
||||
"retryIntervalS": "Intervalo de Repetição (s)",
|
||||
"autoStartLabel": "Início Automático",
|
||||
"autoStartDesc": "Conectar automaticamente este túnel quando o host for carregado",
|
||||
"tunnelConnecting": "Túnel a conectar...",
|
||||
"tunnelDisconnected": "Túnel desligado",
|
||||
"failedToConnectTunnel": "Falha ao conectar",
|
||||
"failedToDisconnectTunnel": "Falha ao desligar",
|
||||
"enableTmuxMonitor": "Ativar Monitor Tmux",
|
||||
"enableTmuxMonitorDesc": "Mostrar este host no Monitor Tmux e adicionar as suas ações tmux à barra lateral",
|
||||
"enableTerminalToolbar": "Ativar a barra de ferramentas do terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Atualizar",
|
||||
"addTag": "Adicionar tags...",
|
||||
"deleteConfirmBtn": "Eliminar",
|
||||
"tunnelRequirementsText": "O servidor SSH deve ter GatewayPorts yes, AllowTcpForwarding yes e PermitRootLogin yes definidos em /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Eliminar \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Ative pelo menos um protocolo acima para configurar as definições de autenticação e ligação.",
|
||||
"keyPassphrase": "Frase-senha da chave",
|
||||
"connectBtn": "Ligar",
|
||||
"disconnectBtn": "Desligar",
|
||||
"basicInformation": "Informação básica",
|
||||
"authDetailsSection": "Detalhes de autenticação",
|
||||
"credTypeLabel": "Tipo",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Foram mantidos dados parciais no destino. A repetição será retomada quando a ligação for restabelecida."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Sem túneis SSH",
|
||||
"createFirstTunnelMessage": "Ainda não criou nenhum túnel SSH. Configure as ligações de túnel no Gestor de Anfitriões para começar.",
|
||||
"connected": "Ligado",
|
||||
"disconnected": "Desligado",
|
||||
"connecting": "A ligar...",
|
||||
"error": "Erro",
|
||||
"canceling": "A cancelar...",
|
||||
"connect": "Ligar",
|
||||
"disconnect": "Desligar",
|
||||
"cancel": "Cancelar",
|
||||
"port": "Porta",
|
||||
"localPort": "Porta local",
|
||||
"remotePort": "Porta remota",
|
||||
"destinationPort": "Porto de destino",
|
||||
"currentHostPort": "Porta do host atual",
|
||||
"endpointPort": "Porta do endpoint",
|
||||
"bindIp": "IP local",
|
||||
"localAddress": "Endereço local",
|
||||
"remoteAddress": "Endereço remoto",
|
||||
"destinationAddress": "Endereço de destino",
|
||||
"remoteBindAddress": "Endereço de ligação remota",
|
||||
"intermediateHost": "Anfitrião intermediário",
|
||||
"endpointSshConfig": "Configuração SSH do endpoint",
|
||||
"endpointSshHost": "Host SSH do endpoint",
|
||||
"endpointSshHostPlaceholder": "Selecionar um host configurado",
|
||||
"endpointSshHostRequired": "Selecione um host SSH do endpoint para cada túnel de cliente.",
|
||||
"attempt": "Tentativa {{current}} de {{max}}",
|
||||
"nextRetryIn": "Próxima tentativa em {{seconds}} segundos",
|
||||
"clientTunnels": "Túneis de cliente",
|
||||
"clientTunnel": "Túnel de cliente",
|
||||
"addClientTunnel": "Adicionar túnel de cliente",
|
||||
"noClientTunnels": "Nenhum túnel de cliente configurado neste desktop.",
|
||||
"tunnelName": "Nome do túnel",
|
||||
"remoteHost": "Host remoto",
|
||||
"autoStart": "Arranque automático",
|
||||
"clientAutoStartDesc": "Inicia quando este cliente de desktop abre e permanece ligado.",
|
||||
"clientManualStartDesc": "Utilize Iniciar e Parar nesta linha. O Termix não o abrirá automaticamente.",
|
||||
"clientRemoteServerNote": "O reencaminhamento remoto pode exigir AllowTcpForwarding e GatewayPorts no servidor SSH do endpoint. A porta remota fecha quando este desktop se desliga.",
|
||||
"clientTunnelStarted": "Túnel de cliente iniciado",
|
||||
"clientTunnelStopped": "Túnel de cliente parado",
|
||||
"tunnelTestSucceeded": "Teste do túnel bem-sucedido",
|
||||
"tunnelTestFailed": "Teste do túnel falhou",
|
||||
"localSaved": "Túneis de cliente guardados",
|
||||
"localSaveError": "Falha ao guardar os túneis de cliente locais",
|
||||
"invalidBindIp": "O IP local deve ser um endereço IPv4 válido.",
|
||||
"invalidLocalTargetIp": "O IP de destino local deve ser um endereço IPv4 válido.",
|
||||
"invalidRemoteAddress": "É necessário um endereço remoto.",
|
||||
"invalidLocalPort": "A porta local deve estar entre 1 e 65535.",
|
||||
"invalidRemotePort": "A porta remota deve estar entre 1 e 65535.",
|
||||
"invalidLocalTargetPort": "A porta de destino local deve estar entre 1 e 65535.",
|
||||
"invalidEndpointPort": "A porta do endpoint deve estar entre 1 e 65535.",
|
||||
"duplicateAutoStartBind": "Apenas um túnel de cliente com arranque automático pode utilizar {{bind}}.",
|
||||
"manualControlError": "Falha ao atualizar o estado do túnel.",
|
||||
"active": "Ativo",
|
||||
"start": "Iniciar",
|
||||
"stop": "Parar",
|
||||
"test": "Testar",
|
||||
"type": "Tipo de Túnel",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Remoto (-R)",
|
||||
"typeDynamic": "Dinâmico (-D)",
|
||||
"typeServerLocalDesc": "Do host atual para o endpoint.",
|
||||
"typeServerRemoteDesc": "Do endpoint de volta para o host atual.",
|
||||
"typeClientLocalDesc": "Do computador local para o endpoint.",
|
||||
"typeClientRemoteDesc": "Do endpoint de volta para o computador local.",
|
||||
"typeClientDynamicDesc": "SOCKS no computador local.",
|
||||
"typeDynamicDesc": "Encaminha tráfego SOCKS5 CONNECT via SSH",
|
||||
"forwardDescriptionServerLocal": "Host atual {{sourcePort}} → endpoint {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Endpoint {{endpointPort}} → host atual {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS no host atual {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remoto {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Remoto {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS na porta local {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} em {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} via {{endpoint}}",
|
||||
"route": "Rota:",
|
||||
"lastStarted": "Último início",
|
||||
"lastTested": "Último teste",
|
||||
"lastError": "Último erro",
|
||||
"maxRetries": "Máx. tentativas",
|
||||
"maxRetriesDescription": "Número máximo de tentativas.",
|
||||
"retryInterval": "Intervalo de repetição (segundos)",
|
||||
"retryIntervalDescription": "Tempo de espera entre tentativas.",
|
||||
"local": "Local",
|
||||
"remote": "Remoto",
|
||||
"destination": "Destino",
|
||||
"host": "Servidor",
|
||||
"mode": "Modo",
|
||||
"noHostSelected": "Nenhum servidor selecionado",
|
||||
"working": "A trabalhar..."
|
||||
"remote": "Remoto"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Arraste para mover",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Túneis locais do ambiente de trabalho direcionados para hosts SSH configurados.",
|
||||
"c2sTunnelPresets": "Predefinições de túneis do cliente",
|
||||
"c2sTunnelPresetsDesc": "Guarde a lista de túneis locais deste cliente de ambiente de trabalho como uma predefinição de servidor nomeada ou carregue uma predefinição de volta para este cliente.",
|
||||
"c2sTunnelPresetsUnavailable": "As predefinições de túneis do cliente estão disponíveis apenas no cliente de ambiente de trabalho.",
|
||||
"c2sPresetName": "Nome da predefinição",
|
||||
"c2sPresetNamePlaceholder": "Nome da predefinição do cliente",
|
||||
"c2sPresetToLoad": "Predefinição a carregar",
|
||||
"c2sNoPresetSelected": "Nenhuma predefinição selecionada",
|
||||
"c2sNoPresets": "Nenhuma predefinição guardada",
|
||||
"c2sLoadPreset": "Carregar",
|
||||
"c2sCurrentLocalConfig": "{{count}} túnel/túneis de cliente local configurado(s) neste ambiente de trabalho.",
|
||||
"c2sPresetSyncNote": "As predefinições são instantâneos explícitos; carregar uma substitui a lista de túneis de cliente local deste cliente de ambiente de trabalho.",
|
||||
"c2sPresetSaved": "Predefinição de túnel do cliente guardada",
|
||||
"c2sPresetLoaded": "Predefinição de túnel do cliente carregada localmente",
|
||||
"c2sPresetRenamed": "Predefinição de túnel do cliente renomeada",
|
||||
"c2sPresetDeleted": "Predefinição de túnel do cliente eliminada",
|
||||
"c2sPresetLoadError": "Falha ao carregar as predefinições de túneis do cliente"
|
||||
"c2sTunnelPresetsDesc": "Guarde a lista de túneis locais deste cliente de ambiente de trabalho como uma predefinição de servidor nomeada ou carregue uma predefinição de volta para este cliente."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Idioma",
|
||||
"keyPassword": "palavra-passe da chave",
|
||||
"pastePrivateKey": "Cole aqui a sua chave privada...",
|
||||
"localListenerHost": "127.0.0.1 (escuta localmente)",
|
||||
"localTargetHost": "127.0.0.1 (alvo neste computador)",
|
||||
"remoteTargetHost": "127.0.0.1 (destino do ponto final)",
|
||||
"remoteBindHost": "127.0.0.1 (escutar no ponto final)",
|
||||
"socksListenerHost": "127.0.0.1 (escuta SOCKS)",
|
||||
"enterPassword": "Introduza a sua palavra-passe",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Introduza a sua palavra-passe"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Painel de Controlo",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Acasă",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Terminal local",
|
||||
"tunnels": "Tuneluri",
|
||||
"fileManager": "Manager de fișiere",
|
||||
"serverStats": "Metrici ale gazdei",
|
||||
"admin": "Administrator",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macrocomenzi",
|
||||
"hostManager": "Manager de gazdă",
|
||||
"credentials": "Acreditări",
|
||||
"portForwarding": "Redirecționare",
|
||||
"connections": "Conexiuni",
|
||||
"serial": "Serial",
|
||||
"keepSideMenuOpen": "Mențineți meniul deschis",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tuneluri",
|
||||
"tabStats": "Metrici ale gazdei",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Partajare",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Fragment de pornire",
|
||||
"keepaliveIntervalLabel": "Interval Keepalive (secunde)",
|
||||
"maxKeepaliveMisses": "Ratări maxime de menținere în viață",
|
||||
"tunnelSettings": "Setări tunel",
|
||||
"enableTunneling": "Activează tunelarea",
|
||||
"enableTunnelingDesc": "Activează funcționalitatea tunelului SSH pentru această gazdă",
|
||||
"serverTunnelsSection": "Tuneluri de server",
|
||||
"addTunnelBtn": "Adăugați tunel",
|
||||
"noTunnelsConfigured": "Niciun tunel configurat.",
|
||||
"tunnelLabel": "Tunel {{number}}",
|
||||
"tunnelType": "Tipul de tunel",
|
||||
"tunnelModeLocalDesc": "Redirecționează un port local către un port de pe serverul la distanță (sau o gazdă accesibilă de pe acesta).",
|
||||
"tunnelModeRemoteDesc": "Redirecționează un port de pe serverul la distanță înapoi către un port local de pe mașina ta.",
|
||||
"tunnelModeDynamicDesc": "Creați un proxy SOCKS5 pe un port local pentru redirecționarea dinamică a porturilor.",
|
||||
"sameHost": "Această gazdă (tunel direct)",
|
||||
"endpointHost": "Gazdă punct final",
|
||||
"endpointHostPlaceholder": "Aceeași gazdă, gazdă SSH sau gazdă/IP accesibil",
|
||||
"endpointPort": "Portul punctului final",
|
||||
"bindHost": "Legați gazda",
|
||||
"sourcePort": "Port sursă",
|
||||
"maxRetries": "Număr maxim de reîncercări",
|
||||
"retryIntervalS": "Interval de reîncercare (s)",
|
||||
"autoStartLabel": "Pornire automată",
|
||||
"autoStartDesc": "Conectează automat acest tunel când gazda este încărcată",
|
||||
"tunnelConnecting": "Tunel care conectează...",
|
||||
"tunnelDisconnected": "Tunel deconectat",
|
||||
"failedToConnectTunnel": "Conectarea nu a reușit",
|
||||
"failedToDisconnectTunnel": "Deconectare eșuată",
|
||||
"enableTmuxMonitor": "Activează monitorul Tmux",
|
||||
"enableTmuxMonitorDesc": "Afișează această gazdă în Monitorul Tmux și adaugă acțiunile sale tmux în bara laterală",
|
||||
"enableTerminalToolbar": "Activează bara de instrumente Terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Reîmprospăta",
|
||||
"addTag": "Adăugați etichete...",
|
||||
"deleteConfirmBtn": "Şterge",
|
||||
"tunnelRequirementsText": "Serverul SSH trebuie să aibă setate GatewayPorts da, AllowTcpForwarding da și PermitRootLogin da în /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Ștergeți „{{name}}”?",
|
||||
"enableAtLeastOneProtocol": "Activați cel puțin unul dintre protocolele de mai sus pentru a configura setările de autentificare și conexiune.",
|
||||
"keyPassphrase": "Parolă cheie",
|
||||
"connectBtn": "Conectează-te",
|
||||
"disconnectBtn": "Deconecta",
|
||||
"basicInformation": "Informații de bază",
|
||||
"authDetailsSection": "Detalii de autentificare",
|
||||
"credTypeLabel": "Tip",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Date parțiale au fost păstrate la destinație. Reîncercarea va fi reluată după restabilirea conexiunii."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Fără tuneluri SSH",
|
||||
"createFirstTunnelMessage": "Nu ați creat încă niciun tunel SSH. Configurați conexiunile la tunel în Host Manager pentru a începe.",
|
||||
"connected": "Conectat",
|
||||
"disconnected": "Deconectat",
|
||||
"connecting": "Se conectează...",
|
||||
"error": "Eroare",
|
||||
"canceling": "Se anulează...",
|
||||
"connect": "Conectează-te",
|
||||
"disconnect": "Deconecta",
|
||||
"cancel": "Anula",
|
||||
"port": "Port",
|
||||
"localPort": "Port local",
|
||||
"remotePort": "Port la distanță",
|
||||
"destinationPort": "Port de destinație",
|
||||
"currentHostPort": "Portul gazdă curent",
|
||||
"endpointPort": "Portul punctului final",
|
||||
"bindIp": "IP local",
|
||||
"localAddress": "Adresă locală",
|
||||
"remoteAddress": "Adresă la distanță",
|
||||
"destinationAddress": "Adresă de destinație",
|
||||
"remoteBindAddress": "Adresă de legare la distanță",
|
||||
"intermediateHost": "Gazdă intermediară",
|
||||
"endpointSshConfig": "Configurarea SSH a terminalului",
|
||||
"endpointSshHost": "Gazdă SSH pentru punct final",
|
||||
"endpointSshHostPlaceholder": "Selectați o gazdă configurată",
|
||||
"endpointSshHostRequired": "Selectați o gazdă SSH endpoint pentru fiecare tunel client.",
|
||||
"attempt": "Încercare {{current}} din {{max}}",
|
||||
"nextRetryIn": "Următoarea reîncercare în {{seconds}} secunde",
|
||||
"clientTunnels": "Tuneluri client",
|
||||
"clientTunnel": "Tunelul clientului",
|
||||
"addClientTunnel": "Adăugați un tunel client",
|
||||
"noClientTunnels": "Nu sunt configurate tuneluri client pe acest desktop.",
|
||||
"tunnelName": "Numele tunelului",
|
||||
"remoteHost": "Gazdă la distanță",
|
||||
"autoStart": "Pornire automată",
|
||||
"clientAutoStartDesc": "Pornește când se deschide acest client desktop și rămâne conectat.",
|
||||
"clientManualStartDesc": "Folosește Start și Stop de pe acest rând. Termix nu îl va deschide automat.",
|
||||
"clientRemoteServerNote": "Redirecționarea la distanță poate necesita AllowTcpForwarding și GatewayPorts pe serverul SSH al terminalului. Portul la distanță se închide când acest desktop se deconectează.",
|
||||
"clientTunnelStarted": "Tunelul clientului a fost pornit",
|
||||
"clientTunnelStopped": "Tunelul clientului s-a oprit",
|
||||
"tunnelTestSucceeded": "Testul tunelului a reușit",
|
||||
"tunnelTestFailed": "Testul tunelului a eșuat",
|
||||
"localSaved": "Tunelurile clientului au fost salvate",
|
||||
"localSaveError": "Nu s-au putut salva tunelurile clientului local",
|
||||
"invalidBindIp": "Adresa IP locală trebuie să fie o adresă IPv4 validă.",
|
||||
"invalidLocalTargetIp": "Adresa IP locală țintă trebuie să fie o adresă IPv4 validă.",
|
||||
"invalidRemoteAddress": "Este necesară adresa la distanță.",
|
||||
"invalidLocalPort": "Portul local trebuie să fie între 1 și 65535.",
|
||||
"invalidRemotePort": "Portul la distanță trebuie să fie între 1 și 65535.",
|
||||
"invalidLocalTargetPort": "Portul țintă local trebuie să fie între 1 și 65535.",
|
||||
"invalidEndpointPort": "Portul punctului final trebuie să fie între 1 și 65535.",
|
||||
"duplicateAutoStartBind": "Doar un tunel client cu pornire automată poate utiliza {{bind}}.",
|
||||
"manualControlError": "Nu s-a putut actualiza starea tunelului.",
|
||||
"active": "Activ",
|
||||
"start": "Început",
|
||||
"stop": "Stop",
|
||||
"test": "Test",
|
||||
"type": "Tipul de tunel",
|
||||
"typeLocal": "Local (-L)",
|
||||
"typeRemote": "Telecomandă (-R)",
|
||||
"typeDynamic": "Dinamic (-D)",
|
||||
"typeServerLocalDesc": "Gazdă curentă către endpoint.",
|
||||
"typeServerRemoteDesc": "Revenire la gazda curentă în punctul final.",
|
||||
"typeClientLocalDesc": "Calculator local către endpoint.",
|
||||
"typeClientRemoteDesc": "Punct terminal înapoi la computerul local.",
|
||||
"typeClientDynamicDesc": "ȘOSETE pe computerul local.",
|
||||
"typeDynamicDesc": "Redirecționează traficul SOCKS5 CONNECT prin SSH",
|
||||
"forwardDescriptionServerLocal": "Gazdă curentă {{sourcePort}} → punct final {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Punct final {{endpointPort}} → gazdă curentă {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "ȘOSETE pe gazda curentă {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Local {{sourcePort}} → la distanță {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "La distanță {{sourcePort}} → local {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "ȘOSETE pe portul local {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} prin {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} pe {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ȘOSETE prin {{endpoint}}",
|
||||
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
|
||||
"autoNameClientDynamic": "ȘOSETE {{localPort}} prin {{endpoint}}",
|
||||
"route": "Traseu:",
|
||||
"lastStarted": "Ultima pornire",
|
||||
"lastTested": "Ultima testare",
|
||||
"lastError": "Ultima eroare",
|
||||
"maxRetries": "Număr maxim de reîncercări",
|
||||
"maxRetriesDescription": "Numărul maxim de reîncercări.",
|
||||
"retryInterval": "Interval de reîncercare (secunde)",
|
||||
"retryIntervalDescription": "Timp de așteptare între reîncercări.",
|
||||
"local": "Local",
|
||||
"remote": "De la distanță",
|
||||
"destination": "Destinaţie",
|
||||
"host": "Gazdă",
|
||||
"mode": "Mod",
|
||||
"noHostSelected": "Nicio gazdă selectată",
|
||||
"working": "Lucru..."
|
||||
"remote": "De la distanță"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Trageți pentru a muta",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Tuneluri desktop locale care vizează gazde SSH configurate.",
|
||||
"c2sTunnelPresets": "Presetări tunel client",
|
||||
"c2sTunnelPresetsDesc": "Salvați lista de tuneluri locale a acestui client desktop ca presetare de server denumit sau încărcați o presetare înapoi în acest client.",
|
||||
"c2sTunnelPresetsUnavailable": "Presetările tunelului client sunt disponibile numai în clientul desktop.",
|
||||
"c2sPresetName": "Nume presetat",
|
||||
"c2sPresetNamePlaceholder": "Numele presetat al clientului",
|
||||
"c2sPresetToLoad": "Presetare pentru încărcare",
|
||||
"c2sNoPresetSelected": "Nicio presetare selectată",
|
||||
"c2sNoPresets": "Nicio presetare salvată",
|
||||
"c2sLoadPreset": "Încărca",
|
||||
"c2sCurrentLocalConfig": "{{count}} tunel(uri) client local configurat(e) pe acest desktop.",
|
||||
"c2sPresetSyncNote": "Presetările sunt instantanee explicite; încărcarea uneia înlocuiește lista de tuneluri de clienți locali a acestui client desktop.",
|
||||
"c2sPresetSaved": "Presetarea tunelului clientului a fost salvată",
|
||||
"c2sPresetLoaded": "Presetarea tunelului clientului a fost încărcată local",
|
||||
"c2sPresetRenamed": "Presetarea tunelului clientului a fost redenumită",
|
||||
"c2sPresetDeleted": "Presetarea tunelului clientului a fost ștearsă",
|
||||
"c2sPresetLoadError": "Presetările tunelului clientului nu au putut fi încărcate."
|
||||
"c2sTunnelPresetsDesc": "Salvați lista de tuneluri locale a acestui client desktop ca presetare de server denumit sau încărcați o presetare înapoi în acest client."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Limbă",
|
||||
"keyPassword": "parolă cheie",
|
||||
"pastePrivateKey": "Lipește cheia privată aici...",
|
||||
"localListenerHost": "127.0.0.1 (ascultați local)",
|
||||
"localTargetHost": "127.0.0.1 (ținta pe acest computer)",
|
||||
"remoteTargetHost": "127.0.0.1 (ținta de la punctul final)",
|
||||
"remoteBindHost": "127.0.0.1 (ascultă pe endpoint)",
|
||||
"socksListenerHost": "127.0.0.1 (ascultător SOCKS)",
|
||||
"enterPassword": "Introduceți parola",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Introduceți parola"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Bord",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Главная",
|
||||
"terminal": "Терминал",
|
||||
"localTerminal": "Локальный терминал",
|
||||
"tunnels": "Туннели",
|
||||
"fileManager": "Файловый менеджер",
|
||||
"serverStats": "Метрики хоста",
|
||||
"admin": "Администрирование",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Макросы",
|
||||
"hostManager": "Менеджер хостов",
|
||||
"credentials": "Учетные данные",
|
||||
"portForwarding": "Пересылка",
|
||||
"connections": "Подключения",
|
||||
"serial": "Последовательный порт",
|
||||
"keepSideMenuOpen": "Оставить меню открытым",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Терминал",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Туннели",
|
||||
"tabStats": "Метрики хоста",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Общий доступ",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Фрагмент запуска",
|
||||
"keepaliveIntervalLabel": "Интервал keepalive (секунд)",
|
||||
"maxKeepaliveMisses": "Макс. пропусков keepalive",
|
||||
"tunnelSettings": "Настройки туннеля",
|
||||
"enableTunneling": "Включить туннелирование",
|
||||
"enableTunnelingDesc": "Включить функциональность SSH-туннеля для этого хоста",
|
||||
"serverTunnelsSection": "Серверные туннели",
|
||||
"addTunnelBtn": "Добавить туннель",
|
||||
"noTunnelsConfigured": "Туннели не настроены.",
|
||||
"tunnelLabel": "Туннель {{number}}",
|
||||
"tunnelType": "Тип туннеля",
|
||||
"tunnelModeLocalDesc": "Пробросить локальный порт на порт удалённого сервера (или хоста, доступного с него).",
|
||||
"tunnelModeRemoteDesc": "Пробросить порт на удалённом сервере на локальный порт вашей машины.",
|
||||
"tunnelModeDynamicDesc": "Создать SOCKS5-прокси на локальном порту для динамического пробрасывания портов.",
|
||||
"sameHost": "Этот хост (прямой туннель)",
|
||||
"endpointHost": "Целевой хост",
|
||||
"endpointHostPlaceholder": "Тот же хост, SSH-хост или доступный хост/IP-адрес",
|
||||
"endpointPort": "Целевой порт",
|
||||
"bindHost": "Хост для привязки",
|
||||
"sourcePort": "Исходный порт",
|
||||
"maxRetries": "Макс. число попыток",
|
||||
"retryIntervalS": "Интервал повтора (с)",
|
||||
"autoStartLabel": "Автозапуск",
|
||||
"autoStartDesc": "Автоматически подключать этот туннель при загрузке хоста",
|
||||
"tunnelConnecting": "Туннель подключается...",
|
||||
"tunnelDisconnected": "Туннель отключён",
|
||||
"failedToConnectTunnel": "Не удалось подключиться",
|
||||
"failedToDisconnectTunnel": "Не удалось отключиться",
|
||||
"enableTmuxMonitor": "Включить монитор Tmux",
|
||||
"enableTmuxMonitorDesc": "Показывать этот хост в Мониторе Tmux и добавлять действия tmux в боковую панель",
|
||||
"enableTerminalToolbar": "Включить панель инструментов терминала",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Обновить",
|
||||
"addTag": "Добавить теги...",
|
||||
"deleteConfirmBtn": "Удалить",
|
||||
"tunnelRequirementsText": "На SSH-сервере должны быть установлены параметры GatewayPorts yes, AllowTcpForwarding yes и PermitRootLogin yes в /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Удалить \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Включите хотя бы один протокол выше, чтобы настроить параметры аутентификации и подключения.",
|
||||
"keyPassphrase": "Парольная фраза ключа",
|
||||
"connectBtn": "Подключиться",
|
||||
"disconnectBtn": "Отключиться",
|
||||
"basicInformation": "Основная информация",
|
||||
"authDetailsSection": "Данные аутентификации",
|
||||
"credTypeLabel": "Тип",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Частичные данные сохранены в месте назначения. Повтор возобновится, когда соединение восстановится."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Нет SSH-туннелей",
|
||||
"createFirstTunnelMessage": "Вы ещё не создали ни одного SSH-туннеля. Настройте туннельные соединения в Менеджере хостов, чтобы начать.",
|
||||
"connected": "Подключено",
|
||||
"disconnected": "Отключено",
|
||||
"connecting": "Подключение...",
|
||||
"error": "Ошибка",
|
||||
"canceling": "Отмена...",
|
||||
"connect": "Подключить",
|
||||
"disconnect": "Отключить",
|
||||
"cancel": "Отмена",
|
||||
"port": "Порт",
|
||||
"localPort": "Локальный порт",
|
||||
"remotePort": "Удаленный порт",
|
||||
"destinationPort": "Порт назначения",
|
||||
"currentHostPort": "Порт текущего хоста",
|
||||
"endpointPort": "Порт конечной точки",
|
||||
"bindIp": "Локальный IP",
|
||||
"localAddress": "Местный адрес",
|
||||
"remoteAddress": "Удаленный адрес",
|
||||
"destinationAddress": "Адрес назначения",
|
||||
"remoteBindAddress": "Удаленный адрес привязки",
|
||||
"intermediateHost": "Промежуточный хост",
|
||||
"endpointSshConfig": "Конфигурация SSH конечной точки",
|
||||
"endpointSshHost": "Хост SSH конечной точки",
|
||||
"endpointSshHostPlaceholder": "Выберите настроенный хост",
|
||||
"endpointSshHostRequired": "Выберите хост SSH конечной точки для каждого клиентского туннеля.",
|
||||
"attempt": "Попытка {{current}} из {{max}}",
|
||||
"nextRetryIn": "Следующая попытка через {{seconds}} сек.",
|
||||
"clientTunnels": "Клиентские туннели",
|
||||
"clientTunnel": "Клиентский туннель",
|
||||
"addClientTunnel": "Добавить клиентский туннель",
|
||||
"noClientTunnels": "На этом рабочем столе не настроено ни одного клиентского туннеля.",
|
||||
"tunnelName": "Имя туннеля",
|
||||
"remoteHost": "Удаленный хост",
|
||||
"autoStart": "Автозапуск",
|
||||
"clientAutoStartDesc": "Запускается при открытии этого клиента рабочего стола и остается подключенным.",
|
||||
"clientManualStartDesc": "Используйте «Запустить» и «Остановить» в этой строке. Termix не будет запускать его автоматически.",
|
||||
"clientRemoteServerNote": "Удаленная переадресация может потребовать AllowTcpForwarding и GatewayPorts на конечном SSH-сервере. Удаленный порт закрывается при отключении этого рабочего стола.",
|
||||
"clientTunnelStarted": "Клиентский туннель запущен",
|
||||
"clientTunnelStopped": "Клиентский туннель остановлен",
|
||||
"tunnelTestSucceeded": "Проверка туннеля успешна",
|
||||
"tunnelTestFailed": "Проверка туннеля не удалась",
|
||||
"localSaved": "Клиентские туннели сохранены",
|
||||
"localSaveError": "Не удалось сохранить локальные клиентские туннели",
|
||||
"invalidBindIp": "Локальный IP-адрес должен быть действительным адресом IPv4.",
|
||||
"invalidLocalTargetIp": "Локальный целевой IP-адрес должен быть действительным адресом IPv4.",
|
||||
"invalidRemoteAddress": "Требуется удаленный адрес.",
|
||||
"invalidLocalPort": "Локальный порт должен быть в диапазоне от 1 до 65535.",
|
||||
"invalidRemotePort": "Удаленный порт должен быть в диапазоне от 1 до 65535.",
|
||||
"invalidLocalTargetPort": "Локальный целевой порт должен быть в диапазоне от 1 до 65535.",
|
||||
"invalidEndpointPort": "Порт конечной точки должен быть в диапазоне от 1 до 65535.",
|
||||
"duplicateAutoStartBind": "Только один клиентский туннель с автозапуском может использовать {{bind}}.",
|
||||
"manualControlError": "Не удалось обновить состояние туннеля.",
|
||||
"active": "Активные",
|
||||
"start": "Запустить",
|
||||
"stop": "Остановить",
|
||||
"test": "Проверить",
|
||||
"type": "Тип туннеля",
|
||||
"typeLocal": "Локальный (-L)",
|
||||
"typeRemote": "Удалённый (-R)",
|
||||
"typeDynamic": "Динамический (-D)",
|
||||
"typeServerLocalDesc": "С текущего хоста на конечную точку.",
|
||||
"typeServerRemoteDesc": "С конечной точки обратно на текущий хост.",
|
||||
"typeClientLocalDesc": "С локального компьютера на конечную точку.",
|
||||
"typeClientRemoteDesc": "С конечной точки обратно на локальный компьютер.",
|
||||
"typeClientDynamicDesc": "SOCKS на локальном компьютере.",
|
||||
"typeDynamicDesc": "Проброс трафика SOCKS5 CONNECT через SSH",
|
||||
"forwardDescriptionServerLocal": "Текущий хост {{sourcePort}} → конечная точка {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Конечная точка {{endpointPort}} → текущий хост {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS на текущем хосте {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Локальный {{sourcePort}} → удалённый {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Удалённый {{sourcePort}} → локальный {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS на локальном порту {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} через {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS через {{endpoint}}",
|
||||
"autoNameClientLocal": "Локальный {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → локальный {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} через {{endpoint}}",
|
||||
"route": "Маршрут:",
|
||||
"lastStarted": "Последний запуск",
|
||||
"lastTested": "Последняя проверка",
|
||||
"lastError": "Последняя ошибка",
|
||||
"maxRetries": "Макс. попыток",
|
||||
"maxRetriesDescription": "Максимальное количество повторных попыток.",
|
||||
"retryInterval": "Интервал повтора (секунд)",
|
||||
"retryIntervalDescription": "Время ожидания между повторными попытками.",
|
||||
"local": "Локальный",
|
||||
"remote": "Удалённый",
|
||||
"destination": "Назначение",
|
||||
"host": "Хост",
|
||||
"mode": "Режим",
|
||||
"noHostSelected": "Хост не выбран",
|
||||
"working": "Выполняется..."
|
||||
"remote": "Удалённый"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Перетащите для перемещения",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Локальные туннели рабочего стола, нацеленные на настроенные хосты SSH.",
|
||||
"c2sTunnelPresets": "Предустановки клиентских туннелей",
|
||||
"c2sTunnelPresetsDesc": "Сохраните список локальных туннелей этого клиента как именованную предустановку на сервере или загрузите предустановку обратно в клиент.",
|
||||
"c2sTunnelPresetsUnavailable": "Предустановки клиентских туннелей доступны только в десктопном клиенте.",
|
||||
"c2sPresetName": "Имя предустановки",
|
||||
"c2sPresetNamePlaceholder": "Имя клиентской предустановки",
|
||||
"c2sPresetToLoad": "Предустановка для загрузки",
|
||||
"c2sNoPresetSelected": "Предустановка не выбрана",
|
||||
"c2sNoPresets": "Нет сохраненных предустановок",
|
||||
"c2sLoadPreset": "Загрузить",
|
||||
"c2sCurrentLocalConfig": "На этом рабочем столе настроено {{count}} локальных клиентских туннелей.",
|
||||
"c2sPresetSyncNote": "Предустановки — это явные снимки; загрузка одной заменяет список локальных клиентских туннелей этого десктопного клиента.",
|
||||
"c2sPresetSaved": "Предустановка клиентского туннеля сохранена",
|
||||
"c2sPresetLoaded": "Предустановка клиентского туннеля загружена локально",
|
||||
"c2sPresetRenamed": "Предустановка клиентского туннеля переименована",
|
||||
"c2sPresetDeleted": "Предустановка клиентского туннеля удалена",
|
||||
"c2sPresetLoadError": "Не удалось загрузить предустановки клиентских туннелей"
|
||||
"c2sTunnelPresetsDesc": "Сохраните список локальных туннелей этого клиента как именованную предустановку на сервере или загрузите предустановку обратно в клиент."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Язык",
|
||||
"keyPassword": "пароль ключа",
|
||||
"pastePrivateKey": "Вставьте свой закрытый ключ сюда...",
|
||||
"localListenerHost": "127.0.0.1 (слушать локально)",
|
||||
"localTargetHost": "127.0.0.1 (цель на этом компьютере)",
|
||||
"remoteTargetHost": "127.0.0.1 (цель с конечной точки)",
|
||||
"remoteBindHost": "127.0.0.1 (прослушивание конечной точки)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-слушатель)",
|
||||
"enterPassword": "Введите пароль",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Введите пароль"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Панель управления",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Дом",
|
||||
"terminal": "Терминал",
|
||||
"localTerminal": "Локални терминал",
|
||||
"tunnels": "Тунели",
|
||||
"fileManager": "Менаџер датотека",
|
||||
"serverStats": "Метрике хоста",
|
||||
"admin": "Администратор",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Макрои",
|
||||
"hostManager": "Менаџер домаћина",
|
||||
"credentials": "Акредитиви",
|
||||
"portForwarding": "Преусмеравање",
|
||||
"connections": "Везе",
|
||||
"serial": "Серијски",
|
||||
"keepSideMenuOpen": "Остави мени отвореним",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Терминал",
|
||||
"tabRdp": "РДП",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Тунели",
|
||||
"tabStats": "Метрике хоста",
|
||||
"tabTelnet": "Телнет",
|
||||
"tabSharing": "Дељење",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Исечак за покретање",
|
||||
"keepaliveIntervalLabel": "Интервал одржавања активности (секунде)",
|
||||
"maxKeepaliveMisses": "Максимални промашаји у Keepalive-у",
|
||||
"tunnelSettings": "Подешавања тунела",
|
||||
"enableTunneling": "Омогући тунелирање",
|
||||
"enableTunnelingDesc": "Омогући функционалност SSH тунела за овај хост",
|
||||
"serverTunnelsSection": "Серверски тунели",
|
||||
"addTunnelBtn": "Додај тунел",
|
||||
"noTunnelsConfigured": "Није конфигурисан ниједан тунел.",
|
||||
"tunnelLabel": "Тунел {{number}}",
|
||||
"tunnelType": "Тип тунела",
|
||||
"tunnelModeLocalDesc": "Прослеђује локални порт на порт на удаљеном серверу (или хосту који је доступан са њега).",
|
||||
"tunnelModeRemoteDesc": "Проследите порт на удаљеном серверу назад на локални порт на вашој машини.",
|
||||
"tunnelModeDynamicDesc": "Направите SOCKS5 прокси на локалном порту за динамичко прослеђивање портова.",
|
||||
"sameHost": "Овај хост (директни тунел)",
|
||||
"endpointHost": "Крајњи хост",
|
||||
"endpointHostPlaceholder": "Исти хост, SSH хост или доступни хост/IP адреса",
|
||||
"endpointPort": "Порт крајње тачке",
|
||||
"bindHost": "Повежи хост",
|
||||
"sourcePort": "Изворни порт",
|
||||
"maxRetries": "Максималан број поновних покушаја",
|
||||
"retryIntervalS": "Интервал поновног покушаја (s)",
|
||||
"autoStartLabel": "Аутоматско покретање",
|
||||
"autoStartDesc": "Аутоматски повежи овај тунел када се хост учита",
|
||||
"tunnelConnecting": "Тунел који се повезује...",
|
||||
"tunnelDisconnected": "Тунел је искључен",
|
||||
"failedToConnectTunnel": "Повезивање није успело",
|
||||
"failedToDisconnectTunnel": "Прекид везе није успео",
|
||||
"enableTmuxMonitor": "Омогући Tmux монитор",
|
||||
"enableTmuxMonitorDesc": "Прикажи овај хост у Tmux монитору и додај његове tmux акције у бочну траку",
|
||||
"enableTerminalToolbar": "Омогући траку са алаткама терминала",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Освежи",
|
||||
"addTag": "Додај ознаке...",
|
||||
"deleteConfirmBtn": "Обриши",
|
||||
"tunnelRequirementsText": "SSH сервер мора имати подешена подешавања за GatewayPorts, AllowTcpForwarding и PermitRootLogin у /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Обрисати „{{name}}“?",
|
||||
"enableAtLeastOneProtocol": "Омогућите барем један протокол изнад да бисте конфигурисали подешавања аутентификације и повезивања.",
|
||||
"keyPassphrase": "Кључна лозинка",
|
||||
"connectBtn": "Повежи се",
|
||||
"disconnectBtn": "Прекини везу",
|
||||
"basicInformation": "Основне информације",
|
||||
"authDetailsSection": "Детаљи аутентификације",
|
||||
"credTypeLabel": "Тип",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Делимични подаци су сачувани на одредишту. Покушај ће бити настављен када се веза поново успостави."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Нема SSH тунела",
|
||||
"createFirstTunnelMessage": "Још увек нисте креирали ниједан SSH тунел. Конфигуришите тунелске везе у Host Manager-у да бисте започели.",
|
||||
"connected": "Повезано",
|
||||
"disconnected": "Искључено",
|
||||
"connecting": "Повезивање...",
|
||||
"error": "Грешка",
|
||||
"canceling": "Отказивање...",
|
||||
"connect": "Повежи се",
|
||||
"disconnect": "Прекини везу",
|
||||
"cancel": "Откажи",
|
||||
"port": "Лука",
|
||||
"localPort": "Локални порт",
|
||||
"remotePort": "Удаљени порт",
|
||||
"destinationPort": "Одредишна лука",
|
||||
"currentHostPort": "Тренутни порт хоста",
|
||||
"endpointPort": "Порт крајње тачке",
|
||||
"bindIp": "Локална ИП адреса",
|
||||
"localAddress": "Локална адреса",
|
||||
"remoteAddress": "Удаљена адреса",
|
||||
"destinationAddress": "Адреса одредишта",
|
||||
"remoteBindAddress": "Адреса за удаљено повезивање",
|
||||
"intermediateHost": "Посредни домаћин",
|
||||
"endpointSshConfig": "SSH конфигурација крајње тачке",
|
||||
"endpointSshHost": "SSH хост крајње тачке",
|
||||
"endpointSshHostPlaceholder": "Изаберите конфигурисани хост",
|
||||
"endpointSshHostRequired": "Изаберите SSH хост крајње тачке за сваки клијентски тунел.",
|
||||
"attempt": "Покушај {{current}} од {{max}}",
|
||||
"nextRetryIn": "Следећи поновни покушај за {{seconds}} секунди",
|
||||
"clientTunnels": "Клијентски тунели",
|
||||
"clientTunnel": "Тунел клијента",
|
||||
"addClientTunnel": "Додај клијентски тунел",
|
||||
"noClientTunnels": "Ниједан клијентски тунел није конфигурисан на овој радној површини.",
|
||||
"tunnelName": "Назив тунела",
|
||||
"remoteHost": "Удаљени хост",
|
||||
"autoStart": "Аутоматски старт",
|
||||
"clientAutoStartDesc": "Покреће се када се овај десктоп клијент отвори и остане повезан.",
|
||||
"clientManualStartDesc": "Користите опције „Старт“ и „Стоп“ из овог реда. Termix га неће аутоматски отворити.",
|
||||
"clientRemoteServerNote": "Даљинско преусмеравање може захтевати AllowTcpForwarding и GatewayPorts на SSH серверу крајње тачке. Удаљени порт се затвара када се ова радна површина искључи.",
|
||||
"clientTunnelStarted": "Тунел клијента је покренут",
|
||||
"clientTunnelStopped": "Тунел клијента је заустављен",
|
||||
"tunnelTestSucceeded": "Тест тунела је успешан",
|
||||
"tunnelTestFailed": "Тест тунела није успео",
|
||||
"localSaved": "Тунели клијента сачувани",
|
||||
"localSaveError": "Чување локалних клијентских тунела није успело",
|
||||
"invalidBindIp": "Локална IP адреса мора бити важећа IPv4 адреса.",
|
||||
"invalidLocalTargetIp": "Локална циљна IP адреса мора бити важећа IPv4 адреса.",
|
||||
"invalidRemoteAddress": "Удаљена адреса је обавезна.",
|
||||
"invalidLocalPort": "Локални порт мора бити између 1 и 65535.",
|
||||
"invalidRemotePort": "Удаљени порт мора бити између 1 и 65535.",
|
||||
"invalidLocalTargetPort": "Локални циљни порт мора бити између 1 и 65535.",
|
||||
"invalidEndpointPort": "Порт крајње тачке мора бити између 1 и 65535.",
|
||||
"duplicateAutoStartBind": "Само један аутоматски покренути клијентски тунел може да користи {{bind}}.",
|
||||
"manualControlError": "Ажурирање стања тунела није успело.",
|
||||
"active": "Активно",
|
||||
"start": "Почетак",
|
||||
"stop": "Заустави",
|
||||
"test": "Тест",
|
||||
"type": "Тип тунела",
|
||||
"typeLocal": "Локално (-Л)",
|
||||
"typeRemote": "Даљински (-R)",
|
||||
"typeDynamic": "Динамички (-Д)",
|
||||
"typeServerLocalDesc": "Тренутни хост до крајње тачке.",
|
||||
"typeServerRemoteDesc": "Крајња тачка назад на тренутни хост.",
|
||||
"typeClientLocalDesc": "Локални рачунар до крајње тачке.",
|
||||
"typeClientRemoteDesc": "Крајња тачка назад на локални рачунар.",
|
||||
"typeClientDynamicDesc": "SOCKS на локалном рачунару.",
|
||||
"typeDynamicDesc": "Прослеђивање SOCKS5 CONNECT саобраћаја преко SSH-а",
|
||||
"forwardDescriptionServerLocal": "Тренутни хост {{sourcePort}} → крајња тачка {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Крајња тачка {{endpointPort}} → тренутни хост {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS на тренутном хосту {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Локално {{sourcePort}} → удаљено {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Удаљено {{sourcePort}} → локално {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS на локалном порту {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} преко {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ЧАРАПЕ преко {{endpoint}}",
|
||||
"autoNameClientLocal": "Локално {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → локално {{localPort}}",
|
||||
"autoNameClientDynamic": "ЧАРАПЕ {{localPort}} преко {{endpoint}}",
|
||||
"route": "Рута:",
|
||||
"lastStarted": "Последњи пут започет",
|
||||
"lastTested": "Последње тестирање",
|
||||
"lastError": "Последња грешка",
|
||||
"maxRetries": "Максималан број поновних покушаја",
|
||||
"maxRetriesDescription": "Максималан број поновних покушаја.",
|
||||
"retryInterval": "Интервал поновног покушаја (секунде)",
|
||||
"retryIntervalDescription": "Време чекања између поновних покушаја.",
|
||||
"local": "Локално",
|
||||
"remote": "Даљински",
|
||||
"destination": "Одредиште",
|
||||
"host": "Домаћин",
|
||||
"mode": "Режим",
|
||||
"noHostSelected": "Није изабран домаћин",
|
||||
"working": "Ради се..."
|
||||
"remote": "Даљински"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Превуците да бисте померили",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Локални тунели за рачунаре усмерени на конфигурисане SSH хостове.",
|
||||
"c2sTunnelPresets": "Унапред подешена подешавања клијентског тунела",
|
||||
"c2sTunnelPresetsDesc": "Сачувајте локалну листу тунела овог десктоп клијента као именовани пресет сервера или поново учитајте пресет у овог клијента.",
|
||||
"c2sTunnelPresetsUnavailable": "Унапред подешена подешавања тунела клијента доступна су само у десктоп клијенту.",
|
||||
"c2sPresetName": "Име пресета",
|
||||
"c2sPresetNamePlaceholder": "Назив унапред подешеног подешавања клијента",
|
||||
"c2sPresetToLoad": "Унапред подешено за учитавање",
|
||||
"c2sNoPresetSelected": "Није изабран ниједан унапред подешени подешавања",
|
||||
"c2sNoPresets": "Нема сачуваних предефинисаних подешавања",
|
||||
"c2sLoadPreset": "Учитај",
|
||||
"c2sCurrentLocalConfig": "{{count}} локалних клијентских тунела конфигурисаних на овој радној површини.",
|
||||
"c2sPresetSyncNote": "Унапред подешена подешавања су експлицитни снимци; учитавање једног замењује листу локалних тунела клијената овог десктоп клијента.",
|
||||
"c2sPresetSaved": "Унапред подешено подешавање тунела клијента је сачувано",
|
||||
"c2sPresetLoaded": "Унапред унапред учитан тунел клијента",
|
||||
"c2sPresetRenamed": "Преименован је унапред одређен тунел клијента",
|
||||
"c2sPresetDeleted": "Унапред подешено подешавање тунела клијента је избрисано",
|
||||
"c2sPresetLoadError": "Није успело учитавање унапред подешених подешавања клијентског тунела"
|
||||
"c2sTunnelPresetsDesc": "Сачувајте локалну листу тунела овог десктоп клијента као именовани пресет сервера или поново учитајте пресет у овог клијента."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Језик",
|
||||
"keyPassword": "кључна лозинка",
|
||||
"pastePrivateKey": "Налепите свој приватни кључ овде...",
|
||||
"localListenerHost": "127.0.0.1 (слушај локално)",
|
||||
"localTargetHost": "127.0.0.1 (циљ на овом рачунару)",
|
||||
"remoteTargetHost": "127.0.0.1 (циљ са крајње тачке)",
|
||||
"remoteBindHost": "127.0.0.1 (слушање на крајњој тачки)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS слушалац)",
|
||||
"enterPassword": "Унесите лозинку",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Унесите лозинку"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Контролна табла",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Hem",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Lokal terminal",
|
||||
"tunnels": "Tunnlar",
|
||||
"fileManager": "Filhanteraren",
|
||||
"serverStats": "Värdstatistik",
|
||||
"admin": "Administration",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makron",
|
||||
"hostManager": "Värdhanterare",
|
||||
"credentials": "Referenser",
|
||||
"portForwarding": "Spedition",
|
||||
"connections": "Anslutningar",
|
||||
"serial": "Serie",
|
||||
"keepSideMenuOpen": "Håll menyn öppen",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "Landsbygdsutveckling",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tunnlar",
|
||||
"tabStats": "Värdstatistik",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Delning",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Startkodavsnitt",
|
||||
"keepaliveIntervalLabel": "Keepalive-intervall (sekunder)",
|
||||
"maxKeepaliveMisses": "Max Keepalive missar",
|
||||
"tunnelSettings": "Tunnelinställningar",
|
||||
"enableTunneling": "Aktivera tunnelering",
|
||||
"enableTunnelingDesc": "Aktivera SSH-tunnelfunktionalitet för den här värden",
|
||||
"serverTunnelsSection": "Servertunnlar",
|
||||
"addTunnelBtn": "Lägg till tunnel",
|
||||
"noTunnelsConfigured": "Inga tunnlar konfigurerade.",
|
||||
"tunnelLabel": "Tunnel {{number}}",
|
||||
"tunnelType": "Tunneltyp",
|
||||
"tunnelModeLocalDesc": "Vidarebefordra en lokal port till en port på fjärrservern (eller en värd som är nåbar från den).",
|
||||
"tunnelModeRemoteDesc": "Vidarebefordra en port på fjärrservern tillbaka till en lokal port på din maskin.",
|
||||
"tunnelModeDynamicDesc": "Skapa en SOCKS5-proxy på en lokal port för dynamisk portvidarebefordran.",
|
||||
"sameHost": "Denna värd (direkt tunnel)",
|
||||
"endpointHost": "Slutpunktsvärd",
|
||||
"endpointHostPlaceholder": "Samma värd, SSH-värd eller nåbar värd/IP",
|
||||
"endpointPort": "Slutpunktsport",
|
||||
"bindHost": "Bind värd",
|
||||
"sourcePort": "Källport",
|
||||
"maxRetries": "Max antal återförsök",
|
||||
"retryIntervalS": "Intervall för återförsök (s)",
|
||||
"autoStartLabel": "Autostart",
|
||||
"autoStartDesc": "Anslut automatiskt den här tunneln när värden laddas",
|
||||
"tunnelConnecting": "Tunnelförbindelse...",
|
||||
"tunnelDisconnected": "Tunneln frånkopplad",
|
||||
"failedToConnectTunnel": "Misslyckades med att ansluta",
|
||||
"failedToDisconnectTunnel": "Misslyckades med att koppla från",
|
||||
"enableTmuxMonitor": "Aktivera Tmux-monitorn",
|
||||
"enableTmuxMonitorDesc": "Visa denna värd i Tmux Monitor och lägg till dess tmux-åtgärder i sidofältet",
|
||||
"enableTerminalToolbar": "Aktivera terminalverktygsfältet",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Uppdatera",
|
||||
"addTag": "Lägg till taggar...",
|
||||
"deleteConfirmBtn": "Radera",
|
||||
"tunnelRequirementsText": "SSH-servern måste ha GatewayPorts ja, AllowTcpForwarding ja och PermitRootLogin ja angivna i /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Ta bort \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Aktivera minst ett protokoll ovan för att konfigurera autentiserings- och anslutningsinställningar.",
|
||||
"keyPassphrase": "Nyckellösenord",
|
||||
"connectBtn": "Ansluta",
|
||||
"disconnectBtn": "Koppla från",
|
||||
"basicInformation": "Grundläggande information",
|
||||
"authDetailsSection": "Autentiseringsuppgifter",
|
||||
"credTypeLabel": "Typ",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Delvis data sparades på destinationen. Försöket återupptas när anslutningen är tillbaka."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Inga SSH-tunnlar",
|
||||
"createFirstTunnelMessage": "Du har inte skapat några SSH-tunnlar än. Konfigurera tunnelanslutningar i Host Manager för att komma igång.",
|
||||
"connected": "Ansluten",
|
||||
"disconnected": "Osammanhängande",
|
||||
"connecting": "Ansluter...",
|
||||
"error": "Fel",
|
||||
"canceling": "Inställande...",
|
||||
"connect": "Ansluta",
|
||||
"disconnect": "Koppla från",
|
||||
"cancel": "Avboka",
|
||||
"port": "Hamn",
|
||||
"localPort": "Lokal hamn",
|
||||
"remotePort": "Fjärrport",
|
||||
"destinationPort": "Destinationshamn",
|
||||
"currentHostPort": "Nuvarande värdport",
|
||||
"endpointPort": "Slutpunktsport",
|
||||
"bindIp": "Lokal IP-adress",
|
||||
"localAddress": "Lokal adress",
|
||||
"remoteAddress": "Fjärradress",
|
||||
"destinationAddress": "Destinationsadress",
|
||||
"remoteBindAddress": "Fjärrbindningsadress",
|
||||
"intermediateHost": "Mellanvärd",
|
||||
"endpointSshConfig": "Slutpunkts-SSH-konfiguration",
|
||||
"endpointSshHost": "Slutpunkts-SSH-värd",
|
||||
"endpointSshHostPlaceholder": "Välj en konfigurerad värd",
|
||||
"endpointSshHostRequired": "Välj en SSH-värd för slutpunkten för varje klienttunnel.",
|
||||
"attempt": "Försök {{current}} av {{max}}",
|
||||
"nextRetryIn": "Nästa försök om {{seconds}} sekunder",
|
||||
"clientTunnels": "Klienttunnlar",
|
||||
"clientTunnel": "Klienttunnel",
|
||||
"addClientTunnel": "Lägg till klienttunnel",
|
||||
"noClientTunnels": "Inga klienttunnlar konfigurerade på den här skrivbordet.",
|
||||
"tunnelName": "Tunnelnamn",
|
||||
"remoteHost": "Fjärrvärd",
|
||||
"autoStart": "Automatisk start",
|
||||
"clientAutoStartDesc": "Startar när den här skrivbordsklienten öppnas och förblir ansluten.",
|
||||
"clientManualStartDesc": "Använd Start och Stopp från den här raden. Termix öppnar den inte automatiskt.",
|
||||
"clientRemoteServerNote": "Fjärrvidarebefordran kan kräva AllowTcpForwarding och GatewayPorts på slutpunktens SSH-server. Fjärrporten stängs när den här skrivbordsmiljön kopplas bort.",
|
||||
"clientTunnelStarted": "Klienttunneln har startats",
|
||||
"clientTunnelStopped": "Klienttunneln stoppad",
|
||||
"tunnelTestSucceeded": "Tunneltestet lyckades",
|
||||
"tunnelTestFailed": "Tunneltestet misslyckades",
|
||||
"localSaved": "Klienttunnlar sparade",
|
||||
"localSaveError": "Misslyckades med att spara lokala klienttunnlar",
|
||||
"invalidBindIp": "Lokal IP-adress måste vara en giltig IPv4-adress.",
|
||||
"invalidLocalTargetIp": "Den lokala mål-IP-adressen måste vara en giltig IPv4-adress.",
|
||||
"invalidRemoteAddress": "Fjärradress krävs.",
|
||||
"invalidLocalPort": "Den lokala porten måste vara mellan 1 och 65535.",
|
||||
"invalidRemotePort": "Fjärrporten måste vara mellan 1 och 65535.",
|
||||
"invalidLocalTargetPort": "Den lokala målporten måste vara mellan 1 och 65535.",
|
||||
"invalidEndpointPort": "Slutpunktsporten måste vara mellan 1 och 65535.",
|
||||
"duplicateAutoStartBind": "Endast en automatiskt startad klienttunnel kan använda {{bind}}.",
|
||||
"manualControlError": "Misslyckades med att uppdatera tunnelns tillstånd.",
|
||||
"active": "Aktiv",
|
||||
"start": "Start",
|
||||
"stop": "Stopp",
|
||||
"test": "Testa",
|
||||
"type": "Tunneltyp",
|
||||
"typeLocal": "Lokal (-L)",
|
||||
"typeRemote": "Fjärrkontroll (-R)",
|
||||
"typeDynamic": "Dynamisk (-D)",
|
||||
"typeServerLocalDesc": "Nuvarande värd till slutpunkt.",
|
||||
"typeServerRemoteDesc": "Slutpunkt tillbaka till nuvarande värd.",
|
||||
"typeClientLocalDesc": "Lokal dator till slutpunkt.",
|
||||
"typeClientRemoteDesc": "Slutpunkten tillbaka till den lokala datorn.",
|
||||
"typeClientDynamicDesc": "SOCKS på den lokala datorn.",
|
||||
"typeDynamicDesc": "Vidarebefordra SOCKS5 CONNECT-trafik via SSH",
|
||||
"forwardDescriptionServerLocal": "Nuvarande värd {{sourcePort}} → slutpunkt {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Slutpunkt {{endpointPort}} → aktuell värd {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS på nuvarande värd {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Lokal {{sourcePort}} → fjärrkontroll {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Fjärrstyrd {{sourcePort}} → lokal {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS på lokal port {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} på {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS via {{endpoint}}",
|
||||
"autoNameClientLocal": "Lokal {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → lokal {{localPort}}",
|
||||
"autoNameClientDynamic": "STRUMPOCKOR {{localPort}} via {{endpoint}}",
|
||||
"route": "Rutt:",
|
||||
"lastStarted": "Senast startade",
|
||||
"lastTested": "Senast testad",
|
||||
"lastError": "Senaste felet",
|
||||
"maxRetries": "Max antal återförsök",
|
||||
"maxRetriesDescription": "Maximalt antal återförsök.",
|
||||
"retryInterval": "Intervall för återförsök (sekunder)",
|
||||
"retryIntervalDescription": "Tid att vänta mellan återförsök.",
|
||||
"local": "Lokal",
|
||||
"remote": "Avlägsen",
|
||||
"destination": "Destination",
|
||||
"host": "Värd",
|
||||
"mode": "Läge",
|
||||
"noHostSelected": "Ingen värd vald",
|
||||
"working": "Arbetssätt..."
|
||||
"remote": "Avlägsen"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Dra för att flytta",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Lokala skrivbordstunnlar som riktar sig mot konfigurerade SSH-värdar.",
|
||||
"c2sTunnelPresets": "Förinställningar för klienttunnel",
|
||||
"c2sTunnelPresetsDesc": "Spara den här skrivbordsklientens lokala tunnellista som en namngiven serverförinställning, eller ladda tillbaka en förinställning till den här klienten.",
|
||||
"c2sTunnelPresetsUnavailable": "Förinställningar för klienttunneln är endast tillgängliga i skrivbordsklienten.",
|
||||
"c2sPresetName": "Förinställt namn",
|
||||
"c2sPresetNamePlaceholder": "Klientförinställningsnamn",
|
||||
"c2sPresetToLoad": "Förinställning att ladda",
|
||||
"c2sNoPresetSelected": "Ingen förinställning vald",
|
||||
"c2sNoPresets": "Inga förinställningar sparade",
|
||||
"c2sLoadPreset": "Ladda",
|
||||
"c2sCurrentLocalConfig": "{{count}} lokala klienttunnlar konfigurerade på den här skrivbordet.",
|
||||
"c2sPresetSyncNote": "Förinställningar är explicita ögonblicksbilder; om en sådan läses in ersätts den här skrivbordsklientens lokala klienttunnellista.",
|
||||
"c2sPresetSaved": "Förinställningen för klienttunneln sparad",
|
||||
"c2sPresetLoaded": "Förinställningen för klienttunnel laddas lokalt",
|
||||
"c2sPresetRenamed": "Förinställningen för klienttunneln har bytt namn",
|
||||
"c2sPresetDeleted": "Förinställningen för klienttunneln har raderats",
|
||||
"c2sPresetLoadError": "Misslyckades med att läsa in förinställningar för klienttunneln"
|
||||
"c2sTunnelPresetsDesc": "Spara den här skrivbordsklientens lokala tunnellista som en namngiven serverförinställning, eller ladda tillbaka en förinställning till den här klienten."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Språk",
|
||||
"keyPassword": "nyckellösenord",
|
||||
"pastePrivateKey": "Klistra in din privata nyckel här...",
|
||||
"localListenerHost": "127.0.0.1 (lyssna lokalt)",
|
||||
"localTargetHost": "127.0.0.1 (mål på den här datorn)",
|
||||
"remoteTargetHost": "127.0.0.1 (mål från slutpunkt)",
|
||||
"remoteBindHost": "127.0.0.1 (lyssna på slutpunkten)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS-lyssnare)",
|
||||
"enterPassword": "Ange ditt lösenord",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Ange ditt lösenord"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Instrumentpanel",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "บ้าน",
|
||||
"terminal": "เทอร์มินัล",
|
||||
"localTerminal": "สถานีปลายทางท้องถิ่น",
|
||||
"tunnels": "อุโมงค์",
|
||||
"fileManager": "ตัวจัดการไฟล์",
|
||||
"serverStats": "เมตริกโฮสต์",
|
||||
"admin": "ผู้ดูแลระบบ",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "มาโคร",
|
||||
"hostManager": "ผู้จัดการโฮสต์",
|
||||
"credentials": "คุณสมบัติ",
|
||||
"portForwarding": "การส่งต่อ",
|
||||
"connections": "การเชื่อมต่อ",
|
||||
"serial": "ซีเรียล",
|
||||
"keepSideMenuOpen": "เปิดเมนูค้างไว้",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "เทอร์มินัล",
|
||||
"tabRdp": "อาร์ดีพี",
|
||||
"tabVnc": "วีเอ็นซี",
|
||||
"tabTunnels": "อุโมงค์",
|
||||
"tabStats": "เมตริกโฮสต์",
|
||||
"tabTelnet": "เทลเน็ต",
|
||||
"tabSharing": "การแบ่งปัน",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "ตัวอย่างโค้ดสำหรับเริ่มต้น",
|
||||
"keepaliveIntervalLabel": "ช่วงเวลาการเชื่อมต่อ (วินาที)",
|
||||
"maxKeepaliveMisses": "แม็กซ์ คีทอะไลฟ์ พลาด",
|
||||
"tunnelSettings": "การตั้งค่าอุโมงค์",
|
||||
"enableTunneling": "เปิดใช้งานการสร้างอุโมงค์",
|
||||
"enableTunnelingDesc": "เปิดใช้งานฟังก์ชันอุโมงค์ SSH สำหรับโฮสต์นี้",
|
||||
"serverTunnelsSection": "อุโมงค์เซิร์ฟเวอร์",
|
||||
"addTunnelBtn": "เพิ่มอุโมงค์",
|
||||
"noTunnelsConfigured": "ไม่มีการกำหนดค่าอุโมงค์ใดๆ",
|
||||
"tunnelLabel": "อุโมงค์ {{number}}",
|
||||
"tunnelType": "ประเภทอุโมงค์",
|
||||
"tunnelModeLocalDesc": "ส่งต่อพอร์ตภายในเครื่องไปยังพอร์ตบนเซิร์ฟเวอร์ระยะไกล (หรือโฮสต์ที่สามารถเข้าถึงได้จากเซิร์ฟเวอร์นั้น)",
|
||||
"tunnelModeRemoteDesc": "ส่งต่อพอร์ตบนเซิร์ฟเวอร์ระยะไกลกลับมายังพอร์ตภายในเครื่องของคุณ",
|
||||
"tunnelModeDynamicDesc": "สร้างพร็อกซี SOCKS5 บนพอร์ตภายในเครื่องเพื่อใช้ในการส่งต่อพอร์ตแบบไดนามิก",
|
||||
"sameHost": "โฮสต์นี้ (อุโมงค์ตรง)",
|
||||
"endpointHost": "โฮสต์ปลายทาง",
|
||||
"endpointHostPlaceholder": "โฮสต์เดียวกัน โฮสต์ SSH หรือโฮสต์/IP ที่สามารถเข้าถึงได้",
|
||||
"endpointPort": "พอร์ตปลายทาง",
|
||||
"bindHost": "โฮสต์ผูก",
|
||||
"sourcePort": "พอร์ตต้นทาง",
|
||||
"maxRetries": "จำนวนครั้งการลองใหม่สูงสุด",
|
||||
"retryIntervalS": "ช่วงเวลาการลองใหม่ (วินาที)",
|
||||
"autoStartLabel": "เริ่มอัตโนมัติ",
|
||||
"autoStartDesc": "เชื่อมต่ออุโมงค์นี้โดยอัตโนมัติเมื่อโหลดโฮสต์เสร็จ",
|
||||
"tunnelConnecting": "อุโมงค์เชื่อมต่อ...",
|
||||
"tunnelDisconnected": "อุโมงค์ถูกตัดการเชื่อมต่อ",
|
||||
"failedToConnectTunnel": "ไม่สามารถเชื่อมต่อได้",
|
||||
"failedToDisconnectTunnel": "ไม่สามารถตัดการเชื่อมต่อได้",
|
||||
"enableTmuxMonitor": "เปิดใช้งาน Tmux Monitor",
|
||||
"enableTmuxMonitorDesc": "แสดงโฮสต์นี้ใน Tmux Monitor และเพิ่มการดำเนินการ tmux ของโฮสต์นี้ลงในแถบด้านข้าง",
|
||||
"enableTerminalToolbar": "เปิดใช้งานแถบเครื่องมือเทอร์มินัล",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "รีเฟรช",
|
||||
"addTag": "เพิ่มแท็ก...",
|
||||
"deleteConfirmBtn": "ลบ",
|
||||
"tunnelRequirementsText": "เซิร์ฟเวอร์ SSH ต้องตั้งค่า GatewayPorts yes, AllowTcpForwarding yes และ PermitRootLogin yes ในไฟล์ /etc/ssh/sshd_config",
|
||||
"deleteHostConfirm": "ลบ \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "เปิดใช้งานโปรโตคอลอย่างน้อยหนึ่งรายการด้านบนเพื่อกำหนดค่าการตรวจสอบสิทธิ์และการตั้งค่าการเชื่อมต่อ",
|
||||
"keyPassphrase": "รหัสผ่านหลัก",
|
||||
"connectBtn": "เชื่อมต่อ",
|
||||
"disconnectBtn": "ตัดการเชื่อมต่อ",
|
||||
"basicInformation": "ข้อมูลพื้นฐาน",
|
||||
"authDetailsSection": "รายละเอียดการตรวจสอบสิทธิ์",
|
||||
"credTypeLabel": "พิมพ์",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "ข้อมูลบางส่วนถูกเก็บไว้ในปลายทาง การลองใหม่จะดำเนินการต่อเมื่อการเชื่อมต่อกลับมาใช้งานได้"
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "ไม่มีอุโมงค์ SSH",
|
||||
"createFirstTunnelMessage": "คุณยังไม่ได้สร้างอุโมงค์ SSH ใดๆ เลย กำหนดค่าการเชื่อมต่ออุโมงค์ใน Host Manager เพื่อเริ่มต้นใช้งาน",
|
||||
"connected": "เชื่อมต่อแล้ว",
|
||||
"disconnected": "ตัดการเชื่อมต่อ",
|
||||
"connecting": "กำลังเชื่อมต่อ...",
|
||||
"error": "ข้อผิดพลาด",
|
||||
"canceling": "ยกเลิก...",
|
||||
"connect": "เชื่อมต่อ",
|
||||
"disconnect": "ตัดการเชื่อมต่อ",
|
||||
"cancel": "ยกเลิก",
|
||||
"port": "ท่าเรือ",
|
||||
"localPort": "ท่าเรือท้องถิ่น",
|
||||
"remotePort": "พอร์ตระยะไกล",
|
||||
"destinationPort": "ท่าเรือปลายทาง",
|
||||
"currentHostPort": "พอร์ตโฮสต์ปัจจุบัน",
|
||||
"endpointPort": "พอร์ตปลายทาง",
|
||||
"bindIp": "ที่อยู่ IP ภายใน",
|
||||
"localAddress": "ที่อยู่ท้องถิ่น",
|
||||
"remoteAddress": "ที่อยู่ระยะไกล",
|
||||
"destinationAddress": "ที่อยู่ปลายทาง",
|
||||
"remoteBindAddress": "ที่อยู่การเชื่อมต่อระยะไกล",
|
||||
"intermediateHost": "โฮสต์ตัวกลาง",
|
||||
"endpointSshConfig": "การกำหนดค่า SSH ปลายทาง",
|
||||
"endpointSshHost": "โฮสต์ SSH ปลายทาง",
|
||||
"endpointSshHostPlaceholder": "เลือกโฮสต์ที่กำหนดค่าไว้",
|
||||
"endpointSshHostRequired": "เลือกโฮสต์ SSH ปลายทางสำหรับแต่ละอุโมงค์ไคลเอ็นต์",
|
||||
"attempt": "ความพยายาม {{current}} ของ {{max}}",
|
||||
"nextRetryIn": "ลองใหม่อีกครั้งใน {{seconds}} วินาที",
|
||||
"clientTunnels": "อุโมงค์ไคลเอ็นต์",
|
||||
"clientTunnel": "อุโมงค์ลูกค้า",
|
||||
"addClientTunnel": "เพิ่มอุโมงค์ไคลเอ็นต์",
|
||||
"noClientTunnels": "ไม่มีการกำหนดค่าอุโมงค์ไคลเอ็นต์บนเดสก์ท็อปนี้",
|
||||
"tunnelName": "ชื่ออุโมงค์",
|
||||
"remoteHost": "โฮสต์ระยะไกล",
|
||||
"autoStart": "เริ่มอัตโนมัติ",
|
||||
"clientAutoStartDesc": "เริ่มทำงานเมื่อโปรแกรมไคลเอ็นต์บนเดสก์ท็อปนี้เปิดขึ้นและเชื่อมต่ออยู่ตลอดเวลา",
|
||||
"clientManualStartDesc": "ใช้ปุ่ม Start และ Stop จากแถวนี้ Termix จะไม่เปิดไฟล์นี้โดยอัตโนมัติ",
|
||||
"clientRemoteServerNote": "การส่งต่อพอร์ตระยะไกลอาจต้องใช้การตั้งค่า AllowTcpForwarding และ GatewayPorts บนเซิร์ฟเวอร์ SSH ปลายทาง พอร์ตระยะไกลจะปิดลงเมื่อเดสก์ท็อปนี้ตัดการเชื่อมต่อ",
|
||||
"clientTunnelStarted": "อุโมงค์ไคลเอ็นต์เริ่มต้นแล้ว",
|
||||
"clientTunnelStopped": "อุโมงค์ไคลเอ็นต์หยุดทำงานแล้ว",
|
||||
"tunnelTestSucceeded": "การทดสอบอุโมงค์ประสบความสำเร็จ",
|
||||
"tunnelTestFailed": "การทดสอบอุโมงค์ล้มเหลว",
|
||||
"localSaved": "บันทึกอุโมงค์ไคลเอ็นต์แล้ว",
|
||||
"localSaveError": "ไม่สามารถบันทึกอุโมงค์ไคลเอ็นต์ในพื้นที่ได้",
|
||||
"invalidBindIp": "ที่อยู่ IP ภายในเครื่องต้องเป็นที่อยู่ IPv4 ที่ถูกต้อง",
|
||||
"invalidLocalTargetIp": "ที่อยู่ IP เป้าหมายในเครือข่ายท้องถิ่นต้องเป็นที่อยู่ IPv4 ที่ถูกต้อง",
|
||||
"invalidRemoteAddress": "ต้องระบุที่อยู่เครือข่ายระยะไกล",
|
||||
"invalidLocalPort": "หมายเลขพอร์ตท้องถิ่นต้องอยู่ระหว่าง 1 ถึง 65535",
|
||||
"invalidRemotePort": "พอร์ตระยะไกลต้องอยู่ระหว่าง 1 ถึง 65535",
|
||||
"invalidLocalTargetPort": "พอร์ตเป้าหมายในเครื่องต้องอยู่ระหว่าง 1 ถึง 65535",
|
||||
"invalidEndpointPort": "พอร์ตปลายทางต้องอยู่ระหว่าง 1 ถึง 65535",
|
||||
"duplicateAutoStartBind": "อุโมงค์ไคลเอ็นต์ที่เริ่มต้นอัตโนมัติเพียงหนึ่งเดียวเท่านั้นที่สามารถใช้ {{bind}} ได้",
|
||||
"manualControlError": "ไม่สามารถอัปเดตสถานะอุโมงค์ได้",
|
||||
"active": "คล่องแคล่ว",
|
||||
"start": "เริ่ม",
|
||||
"stop": "หยุด",
|
||||
"test": "ทดสอบ",
|
||||
"type": "ประเภทอุโมงค์",
|
||||
"typeLocal": "ท้องถิ่น (-L)",
|
||||
"typeRemote": "รีโมท (-R)",
|
||||
"typeDynamic": "ไดนามิก (-D)",
|
||||
"typeServerLocalDesc": "ปัจจุบันโฮสต์ไปยังเอนด์พอยต์",
|
||||
"typeServerRemoteDesc": "ปลายทางกลับไปยังโฮสต์ปัจจุบัน",
|
||||
"typeClientLocalDesc": "คอมพิวเตอร์ในพื้นที่เชื่อมต่อกับอุปกรณ์ปลายทาง",
|
||||
"typeClientRemoteDesc": "ปลายทางกลับไปยังคอมพิวเตอร์เครื่องโลคอล",
|
||||
"typeClientDynamicDesc": "ถุงเท้าบนคอมพิวเตอร์เครื่องโลคัล",
|
||||
"typeDynamicDesc": "ส่งต่อทราฟฟิก SOCKS5 CONNECT ผ่าน SSH",
|
||||
"forwardDescriptionServerLocal": "โฮสต์ปัจจุบัน {{sourcePort}} → ปลายทาง {{endpointPort}}",
|
||||
"forwardDescriptionServerRemote": "ปลายทาง {{endpointPort}} → โฮสต์ปัจจุบัน {{sourcePort}}",
|
||||
"forwardDescriptionServerDynamic": "SOCKS บนโฮสต์ปัจจุบัน {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "เครื่องโลคอล {{sourcePort}} → รีโมท {{endpointPort}}",
|
||||
"forwardDescriptionClientRemote": "รีโมท {{sourcePort}} → โลคอล {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS บนพอร์ตท้องถิ่น {{sourcePort}}",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} ผ่าน {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} บน {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ถุงเท้า ผ่านทาง {{endpoint}}",
|
||||
"autoNameClientLocal": "โลคอล {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → โลคอล {{localPort}}",
|
||||
"autoNameClientDynamic": "ถุงเท้า {{localPort}} ผ่าน {{endpoint}}",
|
||||
"route": "เส้นทาง:",
|
||||
"lastStarted": "เริ่มครั้งล่าสุด",
|
||||
"lastTested": "ทดสอบครั้งล่าสุด",
|
||||
"lastError": "ข้อผิดพลาดล่าสุด",
|
||||
"maxRetries": "จำนวนครั้งการลองใหม่สูงสุด",
|
||||
"maxRetriesDescription": "จำนวนครั้งสูงสุดในการลองใหม่",
|
||||
"retryInterval": "ช่วงเวลาการลองใหม่ (วินาที)",
|
||||
"retryIntervalDescription": "ต้องรอเวลาระหว่างการลองใหม่แต่ละครั้ง",
|
||||
"local": "ท้องถิ่น",
|
||||
"remote": "ระยะไกล",
|
||||
"destination": "ปลายทาง",
|
||||
"host": "เจ้าภาพ",
|
||||
"mode": "โหมด",
|
||||
"noHostSelected": "ไม่ได้เลือกโฮสต์",
|
||||
"working": "การทำงาน..."
|
||||
"remote": "ระยะไกล"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "ลากเพื่อย้าย",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "อุโมงค์เดสก์ท็อปภายในเครื่องที่กำหนดเป้าหมายไปยังโฮสต์ SSH ที่กำหนดค่าไว้",
|
||||
"c2sTunnelPresets": "ค่าที่ตั้งไว้ล่วงหน้าสำหรับอุโมงค์ไคลเอ็นต์",
|
||||
"c2sTunnelPresetsDesc": "บันทึกรายการอุโมงค์ภายในเครื่องของไคลเอนต์เดสก์ท็อปนี้เป็นค่าที่ตั้งไว้ล่วงหน้าของเซิร์ฟเวอร์ที่มีชื่อ หรือโหลดค่าที่ตั้งไว้ล่วงหน้ากลับไปยังไคลเอนต์นี้",
|
||||
"c2sTunnelPresetsUnavailable": "การตั้งค่าล่วงหน้าสำหรับอุโมงค์ไคลเอ็นต์มีให้ใช้งานเฉพาะในไคลเอ็นต์เดสก์ท็อปเท่านั้น",
|
||||
"c2sPresetName": "ชื่อพรีเซ็ต",
|
||||
"c2sPresetNamePlaceholder": "ชื่อการตั้งค่าล่วงหน้าของลูกค้า",
|
||||
"c2sPresetToLoad": "ตั้งค่าล่วงหน้าเพื่อโหลด",
|
||||
"c2sNoPresetSelected": "ไม่ได้เลือกค่าที่ตั้งไว้ล่วงหน้า",
|
||||
"c2sNoPresets": "ไม่มีการบันทึกค่าที่ตั้งไว้ล่วงหน้า",
|
||||
"c2sLoadPreset": "โหลด",
|
||||
"c2sCurrentLocalConfig": "{{count}} อุโมงค์ไคลเอ็นต์ภายในเครื่องที่กำหนดค่าไว้บนเดสก์ท็อปนี้",
|
||||
"c2sPresetSyncNote": "ค่าที่ตั้งไว้ล่วงหน้าเป็นภาพรวมที่ถูกกำหนดไว้อย่างชัดเจน การโหลดค่าใดค่าหนึ่งจะแทนที่รายการอุโมงค์ไคลเอ็นต์ในเครื่องของไคลเอ็นต์เดสก์ท็อปนี้",
|
||||
"c2sPresetSaved": "บันทึกการตั้งค่าอุโมงค์ไคลเอ็นต์ไว้แล้ว",
|
||||
"c2sPresetLoaded": "โหลดค่าที่ตั้งไว้ล่วงหน้าของอุโมงค์ไคลเอ็นต์ในเครื่องแล้ว",
|
||||
"c2sPresetRenamed": "เปลี่ยนชื่อพรีเซ็ตอุโมงค์ไคลเอ็นต์แล้ว",
|
||||
"c2sPresetDeleted": "ลบการตั้งค่าล่วงหน้าของอุโมงค์ไคลเอ็นต์แล้ว",
|
||||
"c2sPresetLoadError": "ไม่สามารถโหลดค่าที่ตั้งไว้ล่วงหน้าของอุโมงค์ไคลเอ็นต์ได้"
|
||||
"c2sTunnelPresetsDesc": "บันทึกรายการอุโมงค์ภายในเครื่องของไคลเอนต์เดสก์ท็อปนี้เป็นค่าที่ตั้งไว้ล่วงหน้าของเซิร์ฟเวอร์ที่มีชื่อ หรือโหลดค่าที่ตั้งไว้ล่วงหน้ากลับไปยังไคลเอนต์นี้"
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "ภาษา",
|
||||
"keyPassword": "รหัสผ่านสำคัญ",
|
||||
"pastePrivateKey": "วางรหัสส่วนตัวของคุณที่นี่...",
|
||||
"localListenerHost": "127.0.0.1 (ฟังในพื้นที่ของคุณ)",
|
||||
"localTargetHost": "127.0.0.1 (เป้าหมายบนคอมพิวเตอร์เครื่องนี้)",
|
||||
"remoteTargetHost": "127.0.0.1 (เป้าหมายจากปลายทาง)",
|
||||
"remoteBindHost": "127.0.0.1 (รับฟังที่ปลายทาง)",
|
||||
"socksListenerHost": "127.0.0.1 (ผู้ฟัง SOCKS)",
|
||||
"enterPassword": "ป้อนรหัสผ่านของคุณ",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "ป้อนรหัสผ่านของคุณ"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "แดชบอร์ด",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Ana Sayfa",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Yerel Terminal",
|
||||
"tunnels": "Tüneller",
|
||||
"fileManager": "Dosya Yöneticisi",
|
||||
"serverStats": "Sunucu Metrikleri",
|
||||
"admin": "Yönetici",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Makrolar",
|
||||
"hostManager": "Ana Bilgisayar Yöneticisi",
|
||||
"credentials": "Kimlik Bilgileri",
|
||||
"portForwarding": "İletme",
|
||||
"connections": "Bağlantılar",
|
||||
"serial": "Seri",
|
||||
"keepSideMenuOpen": "Menüyü Açık Tutun",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Tüneller",
|
||||
"tabStats": "Sunucu Metrikleri",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Paylaşım",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Başlangıç Betiği",
|
||||
"keepaliveIntervalLabel": "Canlı Tutma Aralığı (saniye)",
|
||||
"maxKeepaliveMisses": "Maksimum Keepalive Kaçırma",
|
||||
"tunnelSettings": "Tünel Ayarları",
|
||||
"enableTunneling": "Tünellemeyi Etkinleştir",
|
||||
"enableTunnelingDesc": "Bu ana bilgisayar için SSH tünel işlevselliğini etkinleştir",
|
||||
"serverTunnelsSection": "Sunucu Tünelleri",
|
||||
"addTunnelBtn": "Tünel Ekle",
|
||||
"noTunnelsConfigured": "Yapılandırılmış tünel yok.",
|
||||
"tunnelLabel": "Tünel {{number}}",
|
||||
"tunnelType": "Tünel Türü",
|
||||
"tunnelModeLocalDesc": "Yerel bir portu uzak sunucudaki bir porta (veya ondan erişilebilen bir sunucuya) yönlendirin.",
|
||||
"tunnelModeRemoteDesc": "Uzak sunucudaki bir portu, makinenizdeki yerel bir porta geri yönlendirin.",
|
||||
"tunnelModeDynamicDesc": "Dinamik port yönlendirme için yerel bir portta bir SOCKS5 proxy oluşturun.",
|
||||
"sameHost": "Bu ana bilgisayar (doğrudan tünel)",
|
||||
"endpointHost": "Hedef Ana Bilgisayar",
|
||||
"endpointHostPlaceholder": "Aynı ana bilgisayar, SSH ana bilgisayarı veya erişilebilir ana bilgisayar/IP",
|
||||
"endpointPort": "Hedef Port",
|
||||
"bindHost": "Bağlanma Ana Bilgisayarı",
|
||||
"sourcePort": "Kaynak Port",
|
||||
"maxRetries": "Maksimum Yeniden Deneme",
|
||||
"retryIntervalS": "Yeniden Deneme Aralığı (sn)",
|
||||
"autoStartLabel": "Otomatik başlat",
|
||||
"autoStartDesc": "Ana bilgisayar yüklendiğinde bu tüneli otomatik olarak bağla",
|
||||
"tunnelConnecting": "Tünel bağlanıyor...",
|
||||
"tunnelDisconnected": "Tünel bağlantısı kesildi",
|
||||
"failedToConnectTunnel": "Bağlantı başarısız oldu",
|
||||
"failedToDisconnectTunnel": "Bağlantı kesme başarısız oldu",
|
||||
"enableTmuxMonitor": "Tmux İzleyiciyi Etkinleştir",
|
||||
"enableTmuxMonitorDesc": "Bu ana bilgisayarı Tmux İzleyicide göster ve tmux eylemlerini kenar çubuğuna ekle",
|
||||
"enableTerminalToolbar": "Terminal Araç Çubuğunu Etkinleştir",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Yenile",
|
||||
"addTag": "Etiket Ekle...",
|
||||
"deleteConfirmBtn": "Sil",
|
||||
"tunnelRequirementsText": "SSH sunucusunda /etc/ssh/sshd_config dosyasında GatewayPorts yes, AllowTcpForwarding yes ve PermitRootLogin yes ayarlanmış olmalıdır.",
|
||||
"deleteHostConfirm": "\"{{name}}\" silinsin mi?",
|
||||
"enableAtLeastOneProtocol": "Kimlik doğrulama ve bağlantı ayarlarını yapılandırmak için yukarıdaki protokollerden en az birini etkinleştirin.",
|
||||
"keyPassphrase": "Anahtar Parolası",
|
||||
"connectBtn": "Bağlan",
|
||||
"disconnectBtn": "Bağlantıyı Kes",
|
||||
"basicInformation": "Temel Bilgiler",
|
||||
"authDetailsSection": "Kimlik Doğrulama Detayları",
|
||||
"credTypeLabel": "Tür",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Hedefte kısmi veri tutuldu. Bağlantı geri geldiğinde yeniden deneme devam edecek."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "SSH Tüneli yok",
|
||||
"createFirstTunnelMessage": "Henüz hiç SSH tüneli oluşturmadınız. Başlamak için Ana Bilgisayar Yöneticisi'nde tünel bağlantılarını yapılandırın.",
|
||||
"connected": "Bağlı",
|
||||
"disconnected": "Bağlantı kesildi",
|
||||
"connecting": "Bağlanıyor...",
|
||||
"error": "Hata",
|
||||
"canceling": "İptal ediliyor...",
|
||||
"connect": "Bağlan",
|
||||
"disconnect": "Bağlantıyı kes",
|
||||
"cancel": "İptal",
|
||||
"port": "Port",
|
||||
"localPort": "Yerel Port",
|
||||
"remotePort": "Uzak Port",
|
||||
"destinationPort": "Varış Limanı",
|
||||
"currentHostPort": "Geçerli Sunucu Portu",
|
||||
"endpointPort": "Uç Nokta Portu",
|
||||
"bindIp": "Yerel IP",
|
||||
"localAddress": "Yerel Adres",
|
||||
"remoteAddress": "Uzak Adres",
|
||||
"destinationAddress": "Hedef Adresi",
|
||||
"remoteBindAddress": "Uzak Bağlantı Adresi",
|
||||
"intermediateHost": "Ara Ev Sahibi",
|
||||
"endpointSshConfig": "Uç Nokta SSH Yapılandırması",
|
||||
"endpointSshHost": "Uç Nokta SSH Sunucusu",
|
||||
"endpointSshHostPlaceholder": "Yapılandırılmış bir sunucu seçin",
|
||||
"endpointSshHostRequired": "Her istemci tüneli için bir uç nokta SSH sunucusu seçin.",
|
||||
"attempt": "Deneme {{current}}/{{max}}",
|
||||
"nextRetryIn": "Sonraki deneme {{seconds}} saniye sonra",
|
||||
"clientTunnels": "İstemci Tünelleri",
|
||||
"clientTunnel": "İstemci Tüneli",
|
||||
"addClientTunnel": "İstemci Tüneli Ekle",
|
||||
"noClientTunnels": "Bu masaüstünde hiçbir istemci tüneli yapılandırılmamış.",
|
||||
"tunnelName": "Tünel Adı",
|
||||
"remoteHost": "Uzak Sunucu",
|
||||
"autoStart": "Otomatik Başlat",
|
||||
"clientAutoStartDesc": "Bu masaüstü istemcisi açıldığında başlar ve bağlı kalır.",
|
||||
"clientManualStartDesc": "Bu satırdaki Başlat ve Durdur'u kullanın. Termix otomatik olarak açmaz.",
|
||||
"clientRemoteServerNote": "Uzak yönlendirme, uç nokta SSH sunucusunda AllowTcpForwarding ve GatewayPorts gerektirebilir. Bu masaüstü bağlantısı kesildiğinde uzak port kapanır.",
|
||||
"clientTunnelStarted": "İstemci tüneli başlatıldı",
|
||||
"clientTunnelStopped": "İstemci tüneli durduruldu",
|
||||
"tunnelTestSucceeded": "Tünel testi başarılı",
|
||||
"tunnelTestFailed": "Tünel testi başarısız",
|
||||
"localSaved": "İstemci tünelleri kaydedildi",
|
||||
"localSaveError": "Yerel istemci tünelleri kaydedilemedi",
|
||||
"invalidBindIp": "Yerel IP geçerli bir IPv4 adresi olmalıdır.",
|
||||
"invalidLocalTargetIp": "Yerel hedef IP geçerli bir IPv4 adresi olmalıdır.",
|
||||
"invalidRemoteAddress": "Uzak adres gereklidir.",
|
||||
"invalidLocalPort": "Yerel port 1 ile 65535 arasında olmalıdır.",
|
||||
"invalidRemotePort": "Uzak port 1 ile 65535 arasında olmalıdır.",
|
||||
"invalidLocalTargetPort": "Yerel hedef portu 1 ile 65535 arasında olmalıdır.",
|
||||
"invalidEndpointPort": "Uç nokta portu 1 ile 65535 arasında olmalıdır.",
|
||||
"duplicateAutoStartBind": "Yalnızca bir otomatik başlatmalı istemci tüneli {{bind}} kullanabilir.",
|
||||
"manualControlError": "Tünel durumu güncellenemedi.",
|
||||
"active": "Aktif",
|
||||
"start": "Başlat",
|
||||
"stop": "Durdur",
|
||||
"test": "Test Et",
|
||||
"type": "Tünel Türü",
|
||||
"typeLocal": "Yerel (-L)",
|
||||
"typeRemote": "Uzak (-R)",
|
||||
"typeDynamic": "Dinamik (-D)",
|
||||
"typeServerLocalDesc": "Geçerli sunucudan uç noktaya.",
|
||||
"typeServerRemoteDesc": "Uç noktadan geçerli sunucuya.",
|
||||
"typeClientLocalDesc": "Yerel bilgisayardan uç noktaya.",
|
||||
"typeClientRemoteDesc": "Uç noktadan yerel bilgisayara.",
|
||||
"typeClientDynamicDesc": "Yerel bilgisayarda SOCKS.",
|
||||
"typeDynamicDesc": "SOCKS5 CONNECT trafiğini SSH üzerinden ilet.",
|
||||
"forwardDescriptionServerLocal": "Geçerli sunucu {{sourcePort}} → uç nokta {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Uç nokta {{endpointPort}} → geçerli sunucu {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "Geçerli sunucuda SOCKS {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Yerel {{sourcePort}} → uzak {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Uzak {{sourcePort}} → yerel {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "Yerel port {{sourcePort}} üzerinde SOCKS.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → {{endpoint}} üzerinden SOCKS",
|
||||
"autoNameClientLocal": "Yerel {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → yerel {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} üzerinden {{endpoint}}",
|
||||
"route": "Rota:",
|
||||
"lastStarted": "Son başlatma",
|
||||
"lastTested": "Son test",
|
||||
"lastError": "Son hata",
|
||||
"maxRetries": "Maks. Yeniden Deneme",
|
||||
"maxRetriesDescription": "En fazla yeniden deneme sayısı.",
|
||||
"retryInterval": "Yeniden Deneme Aralığı (saniye)",
|
||||
"retryIntervalDescription": "Yeniden denemeler arasında beklenecek süre.",
|
||||
"local": "Yerel",
|
||||
"remote": "Uzak",
|
||||
"destination": "Hedef",
|
||||
"host": "Host",
|
||||
"mode": "Mod",
|
||||
"noHostSelected": "Hiçbir host seçilmedi",
|
||||
"working": "Çalışıyor..."
|
||||
"remote": "Uzak"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Taşımak için sürükle",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Yapılandırılmış SSH ana makinelerini hedefleyen yerel masaüstü tünelleri.",
|
||||
"c2sTunnelPresets": "İstemci Tünel Ön Ayarları",
|
||||
"c2sTunnelPresetsDesc": "Bu masaüstü istemcinin yerel tünel listesini adlandırılmış bir sunucu ön ayarı olarak kaydedin veya bir ön ayarı bu istemciye yükleyin.",
|
||||
"c2sTunnelPresetsUnavailable": "İstemci tünel ön ayarları yalnızca masaüstü istemcisinde kullanılabilir.",
|
||||
"c2sPresetName": "Ön Ayar Adı",
|
||||
"c2sPresetNamePlaceholder": "İstemci ön ayar adı",
|
||||
"c2sPresetToLoad": "Yüklenecek Ön Ayar",
|
||||
"c2sNoPresetSelected": "Ön ayar seçilmedi",
|
||||
"c2sNoPresets": "Kayıtlı ön ayar yok",
|
||||
"c2sLoadPreset": "Yükle",
|
||||
"c2sCurrentLocalConfig": "Bu masaüstünde yapılandırılmış {{count}} yerel istemci tüneli.",
|
||||
"c2sPresetSyncNote": "Ön ayarlar belirli anlık görüntülerdir; birini yüklemek, bu masaüstü istemcinin yerel istemci tünel listesini değiştirir.",
|
||||
"c2sPresetSaved": "İstemci tünel ön ayarı kaydedildi",
|
||||
"c2sPresetLoaded": "İstemci tünel ön ayarı yerel olarak yüklendi",
|
||||
"c2sPresetRenamed": "İstemci tünel ön ayarı yeniden adlandırıldı",
|
||||
"c2sPresetDeleted": "İstemci tünel ön ayarı silindi",
|
||||
"c2sPresetLoadError": "İstemci tünel ön ayarları yüklenemedi"
|
||||
"c2sTunnelPresetsDesc": "Bu masaüstü istemcinin yerel tünel listesini adlandırılmış bir sunucu ön ayarı olarak kaydedin veya bir ön ayarı bu istemciye yükleyin."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Dil",
|
||||
"keyPassword": "anahtar parolası",
|
||||
"pastePrivateKey": "Özel anahtarınızı buraya yapıştırın...",
|
||||
"localListenerHost": "127.0.0.1 (yerel olarak dinle)",
|
||||
"localTargetHost": "127.0.0.1 (bu bilgisayardaki hedef)",
|
||||
"remoteTargetHost": "127.0.0.1 (uç noktadan hedef)",
|
||||
"remoteBindHost": "127.0.0.1 (uç noktada dinleme)",
|
||||
"socksListenerHost": "127.0.0.1 (SOCKS dinleyici)",
|
||||
"enterPassword": "Parolanızı girin",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Parolanızı girin"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Gösterge Paneli",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Дім",
|
||||
"terminal": "Термінал",
|
||||
"localTerminal": "Місцевий термінал",
|
||||
"tunnels": "Тунелі",
|
||||
"fileManager": "Файловий менеджер",
|
||||
"serverStats": "Метрики хоста",
|
||||
"admin": "Адміністратор",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Макроси",
|
||||
"hostManager": "Менеджер хостингу",
|
||||
"credentials": "Облікові дані",
|
||||
"portForwarding": "Переадресація",
|
||||
"connections": "З'єднання",
|
||||
"serial": "Серійний",
|
||||
"keepSideMenuOpen": "Залишити меню відкритим",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Термінал",
|
||||
"tabRdp": "ПРП",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Тунелі",
|
||||
"tabStats": "Метрики хоста",
|
||||
"tabTelnet": "Телнет",
|
||||
"tabSharing": "Спільне використання",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Фрагмент запуску",
|
||||
"keepaliveIntervalLabel": "Інтервал підтримки активності (секунди)",
|
||||
"maxKeepaliveMisses": "Макс. промахи Keepalive",
|
||||
"tunnelSettings": "Налаштування тунелю",
|
||||
"enableTunneling": "Увімкнути тунелювання",
|
||||
"enableTunnelingDesc": "Увімкнути функцію SSH-тунелю для цього хоста",
|
||||
"serverTunnelsSection": "Тунелі серверів",
|
||||
"addTunnelBtn": "Додати тунель",
|
||||
"noTunnelsConfigured": "Тунелі не налаштовано.",
|
||||
"tunnelLabel": "Тунель {{number}}",
|
||||
"tunnelType": "Тип тунелю",
|
||||
"tunnelModeLocalDesc": "Перенаправити локальний порт на порт на віддаленому сервері (або на хост, доступний з нього).",
|
||||
"tunnelModeRemoteDesc": "Перенаправте порт на віддаленому сервері назад на локальний порт на вашому комп'ютері.",
|
||||
"tunnelModeDynamicDesc": "Створіть проксі-сервер SOCKS5 на локальному порту для динамічного переадресації портів.",
|
||||
"sameHost": "Цей хост (прямий тунель)",
|
||||
"endpointHost": "Кінцевий хост",
|
||||
"endpointHostPlaceholder": "Той самий хост, хост SSH або доступний хост/IP-адреса",
|
||||
"endpointPort": "Порт кінцевої точки",
|
||||
"bindHost": "Прив’язати хост",
|
||||
"sourcePort": "Порт джерела",
|
||||
"maxRetries": "Макс. кількість повторних спроб",
|
||||
"retryIntervalS": "Інтервал повторних спроб (с)",
|
||||
"autoStartLabel": "Автоматичний запуск",
|
||||
"autoStartDesc": "Автоматично підключати цей тунель, коли хост завантажено",
|
||||
"tunnelConnecting": "Тунель, що з'єднує...",
|
||||
"tunnelDisconnected": "Тунель відключено",
|
||||
"failedToConnectTunnel": "Не вдалося підключитися",
|
||||
"failedToDisconnectTunnel": "Не вдалося відключитися",
|
||||
"enableTmuxMonitor": "Увімкнути монітор Tmux",
|
||||
"enableTmuxMonitorDesc": "Показати цей хост у моніторі Tmux та додати його дії tmux до бічної панелі",
|
||||
"enableTerminalToolbar": "Увімкнути панель інструментів термінала",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Оновити",
|
||||
"addTag": "Додати теги...",
|
||||
"deleteConfirmBtn": "Видалити",
|
||||
"tunnelRequirementsText": "Для SSH-сервера у файлі /etc/ssh/sshd_config мають бути встановлені значення GatewayPorts: «так», AllowTcpForwarding: «так» та PermitRootLogin: «так».",
|
||||
"deleteHostConfirm": "Видалити \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Увімкніть принаймні один протокол вище, щоб налаштувати параметри автентифікації та підключення.",
|
||||
"keyPassphrase": "Ключова парольна фраза",
|
||||
"connectBtn": "Підключитися",
|
||||
"disconnectBtn": "Відключитися",
|
||||
"basicInformation": "Основна інформація",
|
||||
"authDetailsSection": "Деталі автентифікації",
|
||||
"credTypeLabel": "Тип",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "На місці призначення збережено частку даних. Повторна спроба відновиться після відновлення з’єднання."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Без SSH-тунелів",
|
||||
"createFirstTunnelMessage": "Ви ще не створили жодного SSH-тунелю. Налаштуйте тунельні з’єднання в Host Manager, щоб розпочати.",
|
||||
"connected": "Підключено",
|
||||
"disconnected": "Відключено",
|
||||
"connecting": "Підключення...",
|
||||
"error": "Помилка",
|
||||
"canceling": "Скасування...",
|
||||
"connect": "Підключитися",
|
||||
"disconnect": "Відключитися",
|
||||
"cancel": "Скасувати",
|
||||
"port": "Порт",
|
||||
"localPort": "Локальний порт",
|
||||
"remotePort": "Віддалений порт",
|
||||
"destinationPort": "Порт призначення",
|
||||
"currentHostPort": "Поточний порт хоста",
|
||||
"endpointPort": "Порт кінцевої точки",
|
||||
"bindIp": "Локальна IP-адреса",
|
||||
"localAddress": "Локальна адреса",
|
||||
"remoteAddress": "Віддалена адреса",
|
||||
"destinationAddress": "Адреса призначення",
|
||||
"remoteBindAddress": "Адреса віддаленого зв'язування",
|
||||
"intermediateHost": "Проміжний господар",
|
||||
"endpointSshConfig": "Конфігурація SSH кінцевої точки",
|
||||
"endpointSshHost": "Кінцева точка SSH-хост",
|
||||
"endpointSshHostPlaceholder": "Виберіть налаштований хост",
|
||||
"endpointSshHostRequired": "Виберіть кінцевий SSH-хост для кожного клієнтського тунелю.",
|
||||
"attempt": "Спроба {{current}} з {{max}}",
|
||||
"nextRetryIn": "Наступна спроба через {{seconds}} секунд",
|
||||
"clientTunnels": "Тунелі клієнтів",
|
||||
"clientTunnel": "Тунель клієнта",
|
||||
"addClientTunnel": "Додати клієнтський тунель",
|
||||
"noClientTunnels": "На цьому робочому столі не налаштовано жодних клієнтських тунелів.",
|
||||
"tunnelName": "Назва тунелю",
|
||||
"remoteHost": "Віддалений хост",
|
||||
"autoStart": "Автоматичний запуск",
|
||||
"clientAutoStartDesc": "Запускається, коли цей клієнт для робочого столу відкривається та залишається підключеним.",
|
||||
"clientManualStartDesc": "Використовуйте «Пуск» і «Стоп» з цього рядка. Termix не відкриє його автоматично.",
|
||||
"clientRemoteServerNote": "Для віддаленого переадресування можуть знадобитися параметри AllowTcpForwarding та GatewayPorts на SSH-сервері кінцевої точки. Віддалений порт закривається, коли цей робочий стіл відключається.",
|
||||
"clientTunnelStarted": "Тунель клієнта розпочато",
|
||||
"clientTunnelStopped": "Тунель клієнта зупинено",
|
||||
"tunnelTestSucceeded": "Випробування тунелю успішно",
|
||||
"tunnelTestFailed": "Випробування тунелю не вдалося",
|
||||
"localSaved": "Тунелі клієнтів збережено",
|
||||
"localSaveError": "Не вдалося зберегти локальні тунелі клієнта",
|
||||
"invalidBindIp": "Локальна IP-адреса має бути дійсною IPv4-адресою.",
|
||||
"invalidLocalTargetIp": "Локальна цільова IP-адреса має бути дійсною IPv4-адресою.",
|
||||
"invalidRemoteAddress": "Потрібна віддалена адреса.",
|
||||
"invalidLocalPort": "Локальний порт має бути в діапазоні від 1 до 65535.",
|
||||
"invalidRemotePort": "Віддалений порт має бути в діапазоні від 1 до 65535.",
|
||||
"invalidLocalTargetPort": "Локальний цільовий порт має бути в діапазоні від 1 до 65535.",
|
||||
"invalidEndpointPort": "Порт кінцевої точки має бути в діапазоні від 1 до 65535.",
|
||||
"duplicateAutoStartBind": "Тільки один тунель клієнта з автозапуском може використовувати {{bind}}.",
|
||||
"manualControlError": "Не вдалося оновити стан тунелю.",
|
||||
"active": "Активний",
|
||||
"start": "Початок",
|
||||
"stop": "СТІЙ",
|
||||
"test": "Тест",
|
||||
"type": "Тип тунелю",
|
||||
"typeLocal": "Місцевий (-L)",
|
||||
"typeRemote": "Віддалений (-R)",
|
||||
"typeDynamic": "Динамічний (-D)",
|
||||
"typeServerLocalDesc": "Поточний хост до кінцевої точки.",
|
||||
"typeServerRemoteDesc": "Кінцева точка повертається до поточного хоста.",
|
||||
"typeClientLocalDesc": "Локальний комп'ютер до кінцевої точки.",
|
||||
"typeClientRemoteDesc": "Кінцева точка повернення до локального комп'ютера.",
|
||||
"typeClientDynamicDesc": "SOCKS на локальному комп'ютері.",
|
||||
"typeDynamicDesc": "Перенаправлення трафіку SOCKS5 CONNECT через SSH",
|
||||
"forwardDescriptionServerLocal": "Поточний хост {{sourcePort}} → кінцева точка {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Кінцева точка {{endpointPort}} → поточний хост {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS на поточному хості {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Локальний {{sourcePort}} → віддалений {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Віддалений {{sourcePort}} → локальний {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS на локальному порту {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} через {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} на {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → ШКАРПЕТКИ через {{endpoint}}",
|
||||
"autoNameClientLocal": "Місцевий {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → місцевий {{localPort}}",
|
||||
"autoNameClientDynamic": "ШКАРПЕТКИ {{localPort}} через {{endpoint}}",
|
||||
"route": "Маршрут:",
|
||||
"lastStarted": "Останній запуск",
|
||||
"lastTested": "Останнє тестування",
|
||||
"lastError": "Остання помилка",
|
||||
"maxRetries": "Макс. кількість повторних спроб",
|
||||
"maxRetriesDescription": "Максимальна кількість спроб повторення.",
|
||||
"retryInterval": "Інтервал повторних спроб (секунди)",
|
||||
"retryIntervalDescription": "Час очікування між повторними спробами.",
|
||||
"local": "Місцевий",
|
||||
"remote": "Віддалений",
|
||||
"destination": "Пункт призначення",
|
||||
"host": "Хост",
|
||||
"mode": "Режим",
|
||||
"noHostSelected": "Хост не вибрано",
|
||||
"working": "Працюємо..."
|
||||
"remote": "Віддалений"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Перетягніть, щоб перемістити",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Локальні тунелі робочих станцій, орієнтовані на налаштовані хости SSH.",
|
||||
"c2sTunnelPresets": "Пресети тунелю клієнта",
|
||||
"c2sTunnelPresetsDesc": "Збережіть список локальних тунелів цього клієнта робочого столу як іменований пресет сервера або завантажте пресет назад у цей клієнт.",
|
||||
"c2sTunnelPresetsUnavailable": "Попередні налаштування тунелю клієнта доступні лише у клієнтській версії для настільних комп'ютерів.",
|
||||
"c2sPresetName": "Назва пресета",
|
||||
"c2sPresetNamePlaceholder": "Назва попереднього налаштування клієнта",
|
||||
"c2sPresetToLoad": "Попередньо налаштовані для завантаження",
|
||||
"c2sNoPresetSelected": "Не вибрано пресетів",
|
||||
"c2sNoPresets": "Немає збережених пресетів",
|
||||
"c2sLoadPreset": "Навантаження",
|
||||
"c2sCurrentLocalConfig": "{{count}} локальних клієнтських тунелів, налаштованих на цьому робочому столі.",
|
||||
"c2sPresetSyncNote": "Пресети – це явні знімки; завантаження одного з них замінює список тунелів локальних клієнтів цього клієнта робочого столу.",
|
||||
"c2sPresetSaved": "Збережено пресет тунелю клієнта",
|
||||
"c2sPresetLoaded": "Попередній набір тунелю клієнта завантажено локально",
|
||||
"c2sPresetRenamed": "Попередній заготовку тунелю клієнта перейменовано",
|
||||
"c2sPresetDeleted": "Попередній налаштування тунелю клієнта видалено",
|
||||
"c2sPresetLoadError": "Не вдалося завантажити попередні налаштування тунелю клієнта"
|
||||
"c2sTunnelPresetsDesc": "Збережіть список локальних тунелів цього клієнта робочого столу як іменований пресет сервера або завантажте пресет назад у цей клієнт."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Мова",
|
||||
"keyPassword": "пароль ключа",
|
||||
"pastePrivateKey": "Вставте сюди свій закритий ключ...",
|
||||
"localListenerHost": "127.0.0.1 (прослуховувати локально)",
|
||||
"localTargetHost": "127.0.0.1 (ціль на цьому комп'ютері)",
|
||||
"remoteTargetHost": "127.0.0.1 (ціль з кінцевої точки)",
|
||||
"remoteBindHost": "127.0.0.1 (прослуховування на кінцевій точці)",
|
||||
"socksListenerHost": "127.0.0.1 (слухач SOCKS)",
|
||||
"enterPassword": "Введіть свій пароль",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Введіть свій пароль"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Інформаційна панель",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "Trang chủ",
|
||||
"terminal": "Terminal",
|
||||
"localTerminal": "Ga địa phương",
|
||||
"tunnels": "Đường hầm",
|
||||
"fileManager": "Quản lý tệp",
|
||||
"serverStats": "Chỉ số máy chủ",
|
||||
"admin": "Quản trị",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "Macro",
|
||||
"hostManager": "Quản lý máy chủ",
|
||||
"credentials": "Thông tin đăng nhập",
|
||||
"portForwarding": "Chuyển tiếp",
|
||||
"connections": "Kết nối",
|
||||
"serial": "Nối tiếp",
|
||||
"keepSideMenuOpen": "Giữ menu luôn mở",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "Terminal",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "Đường hầm",
|
||||
"tabStats": "Số liệu máy chủ",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "Chia sẻ",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "Đoạn mã khởi động",
|
||||
"keepaliveIntervalLabel": "Khoảng thời gian Keepalive (giây)",
|
||||
"maxKeepaliveMisses": "Số lần bỏ lỡ Keepalive tối đa",
|
||||
"tunnelSettings": "Cài đặt đường hầm",
|
||||
"enableTunneling": "Kích hoạt đường hầm",
|
||||
"enableTunnelingDesc": "Kích hoạt chức năng đường hầm SSH cho máy chủ này",
|
||||
"serverTunnelsSection": "Đường hầm máy chủ",
|
||||
"addTunnelBtn": "Thêm đường hầm",
|
||||
"noTunnelsConfigured": "Chưa cấu hình đường hầm nào.",
|
||||
"tunnelLabel": "Đường hầm {{number}}",
|
||||
"tunnelType": "Loại đường hầm",
|
||||
"tunnelModeLocalDesc": "Chuyển tiếp một cổng cục bộ đến một cổng trên máy chủ từ xa (hoặc máy chủ có thể truy cập từ đó).",
|
||||
"tunnelModeRemoteDesc": "Chuyển tiếp một cổng trên máy chủ từ xa về một cổng cục bộ trên máy của bạn.",
|
||||
"tunnelModeDynamicDesc": "Tạo proxy SOCKS5 trên một cổng cục bộ để chuyển tiếp cổng động.",
|
||||
"sameHost": "Máy chủ này (đường hầm trực tiếp)",
|
||||
"endpointHost": "Máy chủ đích",
|
||||
"endpointHostPlaceholder": "Cùng máy chủ, máy chủ SSH, hoặc máy chủ/IP có thể truy cập",
|
||||
"endpointPort": "Cổng đích",
|
||||
"bindHost": "Máy chủ bind",
|
||||
"sourcePort": "Cổng nguồn",
|
||||
"maxRetries": "Số lần thử lại tối đa",
|
||||
"retryIntervalS": "Khoảng thời gian thử lại (giây)",
|
||||
"autoStartLabel": "Tự động khởi động",
|
||||
"autoStartDesc": "Tự động kết nối đường hầm này khi máy chủ được tải",
|
||||
"tunnelConnecting": "Đang kết nối đường hầm...",
|
||||
"tunnelDisconnected": "Đã ngắt kết nối đường hầm",
|
||||
"failedToConnectTunnel": "Kết nối thất bại",
|
||||
"failedToDisconnectTunnel": "Ngắt kết nối thất bại",
|
||||
"enableTmuxMonitor": "Bật Tmux Monitor",
|
||||
"enableTmuxMonitorDesc": "Hiển thị máy chủ này trong Tmux Monitor và thêm các hành động tmux của nó vào thanh bên",
|
||||
"enableTerminalToolbar": "Kích hoạt thanh công cụ Terminal",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "Làm mới",
|
||||
"addTag": "Thêm thẻ...",
|
||||
"deleteConfirmBtn": "Xoá",
|
||||
"tunnelRequirementsText": "Máy chủ SSH phải có GatewayPorts yes, AllowTcpForwarding yes, và PermitRootLogin yes được đặt trong /etc/ssh/sshd_config.",
|
||||
"deleteHostConfirm": "Xoá \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "Bật ít nhất một giao thức ở trên để cấu hình cài đặt xác thực và kết nối.",
|
||||
"keyPassphrase": "Cụm mật khẩu khóa",
|
||||
"connectBtn": "Kết nối",
|
||||
"disconnectBtn": "Ngắt kết nối",
|
||||
"basicInformation": "Thông tin cơ bản",
|
||||
"authDetailsSection": "Chi tiết xác thực",
|
||||
"credTypeLabel": "Loại",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "Dữ liệu chưa hoàn chỉnh được giữ ở đích. Thử lại sẽ tiếp tục khi kết nối được khôi phục."
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "Không có đường hầm SSH",
|
||||
"createFirstTunnelMessage": "Bạn chưa tạo đường hầm SSH nào. Hãy cấu hình kết nối đường hầm trong Trình quản lý máy chủ để bắt đầu.",
|
||||
"connected": "Đã kết nối",
|
||||
"disconnected": "Đã ngắt kết nối",
|
||||
"connecting": "Đang kết nối...",
|
||||
"error": "Lỗi",
|
||||
"canceling": "Đang hủy...",
|
||||
"connect": "Kết nối",
|
||||
"disconnect": "Ngắt kết nối",
|
||||
"cancel": "Hủy",
|
||||
"port": "Cổng",
|
||||
"localPort": "Cổng cục bộ",
|
||||
"remotePort": "Cổng từ xa",
|
||||
"destinationPort": "Cảng đích",
|
||||
"currentHostPort": "Cổng máy hiện tại",
|
||||
"endpointPort": "Cổng điểm cuối",
|
||||
"bindIp": "IP cục bộ",
|
||||
"localAddress": "Địa chỉ địa phương",
|
||||
"remoteAddress": "Địa chỉ từ xa",
|
||||
"destinationAddress": "Địa chỉ đích",
|
||||
"remoteBindAddress": "Địa chỉ liên kết từ xa",
|
||||
"intermediateHost": "Máy chủ trung gian",
|
||||
"endpointSshConfig": "Cấu hình SSH điểm cuối",
|
||||
"endpointSshHost": "Máy chủ SSH điểm cuối",
|
||||
"endpointSshHostPlaceholder": "Chọn máy chủ đã cấu hình",
|
||||
"endpointSshHostRequired": "Chọn máy chủ SSH điểm cuối cho mỗi đường hầm máy khách.",
|
||||
"attempt": "Lần thử {{current}} / {{max}}",
|
||||
"nextRetryIn": "Thử lại sau {{seconds}} giây",
|
||||
"clientTunnels": "Đường hầm máy khách",
|
||||
"clientTunnel": "Đường hầm máy khách",
|
||||
"addClientTunnel": "Thêm đường hầm máy khách",
|
||||
"noClientTunnels": "Chưa có đường hầm máy khách nào được cấu hình trên máy này.",
|
||||
"tunnelName": "Tên đường hầm",
|
||||
"remoteHost": "Máy chủ từ xa",
|
||||
"autoStart": "Tự động khởi động",
|
||||
"clientAutoStartDesc": "Tự động khởi động khi mở ứng dụng máy khách và duy trì kết nối.",
|
||||
"clientManualStartDesc": "Sử dụng nút Bắt đầu và Dừng trên dòng này. Termix sẽ không tự động mở.",
|
||||
"clientRemoteServerNote": "Chuyển tiếp từ xa có thể yêu cầu AllowTcpForwarding và GatewayPorts trên máy chủ SSH điểm cuối. Cổng từ xa sẽ đóng khi máy này ngắt kết nối.",
|
||||
"clientTunnelStarted": "Đường hầm máy khách đã khởi động",
|
||||
"clientTunnelStopped": "Đường hầm máy khách đã dừng",
|
||||
"tunnelTestSucceeded": "Kiểm tra đường hầm thành công",
|
||||
"tunnelTestFailed": "Kiểm tra đường hầm thất bại",
|
||||
"localSaved": "Đã lưu đường hầm máy khách",
|
||||
"localSaveError": "Lưu đường hầm máy khách cục bộ thất bại",
|
||||
"invalidBindIp": "IP cục bộ phải là địa chỉ IPv4 hợp lệ.",
|
||||
"invalidLocalTargetIp": "IP đích cục bộ phải là địa chỉ IPv4 hợp lệ.",
|
||||
"invalidRemoteAddress": "Cần có địa chỉ từ xa.",
|
||||
"invalidLocalPort": "Cổng cục bộ phải nằm trong khoảng 1 đến 65535.",
|
||||
"invalidRemotePort": "Cổng từ xa phải nằm trong khoảng 1 đến 65535.",
|
||||
"invalidLocalTargetPort": "Cổng đích cục bộ phải nằm trong khoảng 1 đến 65535.",
|
||||
"invalidEndpointPort": "Cổng điểm cuối phải nằm trong khoảng 1 đến 65535.",
|
||||
"duplicateAutoStartBind": "Chỉ một đường hầm máy khách tự động có thể sử dụng {{bind}}.",
|
||||
"manualControlError": "Cập nhật trạng thái đường hầm thất bại.",
|
||||
"active": "Hoạt động",
|
||||
"start": "Bắt đầu",
|
||||
"stop": "Dừng",
|
||||
"test": "Kiểm tra",
|
||||
"type": "Loại đường hầm",
|
||||
"typeLocal": "Cục bộ (-L)",
|
||||
"typeRemote": "Từ xa (-R)",
|
||||
"typeDynamic": "Động (-D)",
|
||||
"typeServerLocalDesc": "Máy chủ hiện tại đến điểm cuối.",
|
||||
"typeServerRemoteDesc": "Điểm cuối trở về máy chủ hiện tại.",
|
||||
"typeClientLocalDesc": "Máy tính cục bộ đến điểm cuối.",
|
||||
"typeClientRemoteDesc": "Điểm cuối trở về máy tính cục bộ.",
|
||||
"typeClientDynamicDesc": "SOCKS trên máy tính cục bộ.",
|
||||
"typeDynamicDesc": "Chuyển tiếp lưu lượng SOCKS5 CONNECT qua SSH",
|
||||
"forwardDescriptionServerLocal": "Máy chủ hiện tại {{sourcePort}} → điểm cuối {{endpointPort}}.",
|
||||
"forwardDescriptionServerRemote": "Điểm cuối {{endpointPort}} → máy chủ hiện tại {{sourcePort}}.",
|
||||
"forwardDescriptionServerDynamic": "SOCKS trên máy chủ hiện tại {{sourcePort}}.",
|
||||
"forwardDescriptionClientLocal": "Cục bộ {{sourcePort}} → từ xa {{endpointPort}}.",
|
||||
"forwardDescriptionClientRemote": "Từ xa {{sourcePort}} → cục bộ {{endpointPort}}.",
|
||||
"forwardDescriptionClientDynamic": "SOCKS trên cổng cục bộ {{sourcePort}}.",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} qua {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} trên {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS qua {{endpoint}}",
|
||||
"autoNameClientLocal": "Cục bộ {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → cục bộ {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} qua {{endpoint}}",
|
||||
"route": "Tuyến:",
|
||||
"lastStarted": "Lần bắt đầu cuối",
|
||||
"lastTested": "Lần kiểm tra cuối",
|
||||
"lastError": "Lỗi cuối cùng",
|
||||
"maxRetries": "Số lần thử lại tối đa",
|
||||
"maxRetriesDescription": "Số lần thử lại tối đa.",
|
||||
"retryInterval": "Khoảng thời gian thử lại (giây)",
|
||||
"retryIntervalDescription": "Thời gian chờ giữa các lần thử lại.",
|
||||
"local": "Cục bộ",
|
||||
"remote": "Từ xa",
|
||||
"destination": "Điểm đến",
|
||||
"host": "Máy chủ",
|
||||
"mode": "Chế độ",
|
||||
"noHostSelected": "Chưa chọn máy chủ",
|
||||
"working": "Đang làm việc..."
|
||||
"remote": "Từ xa"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "Kéo để di chuyển",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "Đường hầm máy tính cục bộ trỏ đến các máy chủ SSH đã cấu hình.",
|
||||
"c2sTunnelPresets": "Cài đặt sẵn Đường hầm Máy khách",
|
||||
"c2sTunnelPresetsDesc": "Lưu danh sách đường hầm cục bộ của máy khách này thành cài đặt sẵn trên máy chủ có tên, hoặc tải cài đặt sẵn trở lại máy khách này.",
|
||||
"c2sTunnelPresetsUnavailable": "Cài đặt sẵn đường hầm máy khách chỉ khả dụng trên ứng dụng máy tính.",
|
||||
"c2sPresetName": "Tên cài đặt sẵn",
|
||||
"c2sPresetNamePlaceholder": "Tên cài đặt sẵn máy khách",
|
||||
"c2sPresetToLoad": "Cài đặt sẵn để tải",
|
||||
"c2sNoPresetSelected": "Chưa chọn cài đặt sẵn",
|
||||
"c2sNoPresets": "Chưa lưu cài đặt sẵn nào",
|
||||
"c2sLoadPreset": "Tải",
|
||||
"c2sCurrentLocalConfig": "{{count}} đường hầm máy khách cục bộ đã được cấu hình trên máy tính này.",
|
||||
"c2sPresetSyncNote": "Cài đặt sẵn là ảnh chụp tức thời; tải một cài đặt sẽ thay thế danh sách đường hầm máy khách cục bộ trên máy này.",
|
||||
"c2sPresetSaved": "Đã lưu cài đặt sẵn đường hầm máy khách",
|
||||
"c2sPresetLoaded": "Đã tải cài đặt sẵn đường hầm máy khách cục bộ",
|
||||
"c2sPresetRenamed": "Đã đổi tên cài đặt sẵn đường hầm máy khách",
|
||||
"c2sPresetDeleted": "Đã xóa cài đặt sẵn đường hầm máy khách",
|
||||
"c2sPresetLoadError": "Tải cài đặt sẵn đường hầm máy khách thất bại"
|
||||
"c2sTunnelPresetsDesc": "Lưu danh sách đường hầm cục bộ của máy khách này thành cài đặt sẵn trên máy chủ có tên, hoặc tải cài đặt sẵn trở lại máy khách này."
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "Ngôn ngữ",
|
||||
"keyPassword": "mật khẩu khóa",
|
||||
"pastePrivateKey": "Dán khóa riêng tư của bạn vào đây...",
|
||||
"localListenerHost": "127.0.0.1 (lắng nghe cục bộ)",
|
||||
"localTargetHost": "127.0.0.1 (đích trên máy này)",
|
||||
"remoteTargetHost": "127.0.0.1 (mục tiêu từ điểm cuối)",
|
||||
"remoteBindHost": "127.0.0.1 (lắng nghe trên điểm cuối)",
|
||||
"socksListenerHost": "127.0.0.1 (Trình nghe SOCKS)",
|
||||
"enterPassword": "Nhập mật khẩu của bạn",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "Nhập mật khẩu của bạn"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Bảng điều khiển",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "首页",
|
||||
"terminal": "终端",
|
||||
"localTerminal": "本地终端",
|
||||
"tunnels": "隧道",
|
||||
"fileManager": "文件管理器",
|
||||
"serverStats": "主机指标",
|
||||
"admin": "管理",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "宏",
|
||||
"hostManager": "主机管理器",
|
||||
"credentials": "凭据",
|
||||
"portForwarding": "转发",
|
||||
"connections": "连接",
|
||||
"serial": "串口",
|
||||
"keepSideMenuOpen": "保持菜单打开",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "终端",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "隧道",
|
||||
"tabStats": "主机指标",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "共享",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "启动代码片段",
|
||||
"keepaliveIntervalLabel": "保活间隔(秒)",
|
||||
"maxKeepaliveMisses": "最大保活失败次数",
|
||||
"tunnelSettings": "隧道设置",
|
||||
"enableTunneling": "启用隧道",
|
||||
"enableTunnelingDesc": "为此主机启用 SSH 隧道功能",
|
||||
"serverTunnelsSection": "服务器隧道",
|
||||
"addTunnelBtn": "添加隧道",
|
||||
"noTunnelsConfigured": "未配置隧道。",
|
||||
"tunnelLabel": "隧道 {{number}}",
|
||||
"tunnelType": "隧道类型",
|
||||
"tunnelModeLocalDesc": "将本地端口转发到远程服务器(或可从其访问的主机)上的端口。",
|
||||
"tunnelModeRemoteDesc": "将远程服务器上的端口转发回您机器上的本地端口。",
|
||||
"tunnelModeDynamicDesc": "在本地端口上创建 SOCKS5 代理,用于动态端口转发。",
|
||||
"sameHost": "此主机(直接隧道)",
|
||||
"endpointHost": "端点主机",
|
||||
"endpointHostPlaceholder": "相同主机、SSH 主机或可访问的主机/IP",
|
||||
"endpointPort": "端点端口",
|
||||
"bindHost": "绑定主机",
|
||||
"sourcePort": "源端口",
|
||||
"maxRetries": "最大重试次数",
|
||||
"retryIntervalS": "重试间隔(秒)",
|
||||
"autoStartLabel": "自动启动",
|
||||
"autoStartDesc": "主机加载时自动连接此隧道",
|
||||
"tunnelConnecting": "隧道连接中...",
|
||||
"tunnelDisconnected": "隧道已断开连接",
|
||||
"failedToConnectTunnel": "连接失败",
|
||||
"failedToDisconnectTunnel": "断开连接失败",
|
||||
"enableTmuxMonitor": "启用 Tmux 监控",
|
||||
"enableTmuxMonitorDesc": "在 Tmux 监控中显示此主机,并将其 tmux 操作添加到侧边栏",
|
||||
"enableTerminalToolbar": "启用终端工具栏",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "刷新",
|
||||
"addTag": "添加标签...",
|
||||
"deleteConfirmBtn": "删除",
|
||||
"tunnelRequirementsText": "SSH 服务器必须在 /etc/ssh/sshd_config 中设置 GatewayPorts yes、AllowTcpForwarding yes 和 PermitRootLogin yes。",
|
||||
"deleteHostConfirm": "删除 \"{{name}}\"?",
|
||||
"enableAtLeastOneProtocol": "请至少启用上述一种协议以配置认证和连接设置。",
|
||||
"keyPassphrase": "密钥密码",
|
||||
"connectBtn": "连接",
|
||||
"disconnectBtn": "断开",
|
||||
"basicInformation": "基本信息",
|
||||
"authDetailsSection": "认证详情",
|
||||
"credTypeLabel": "类型",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "部分数据已保留在目标位置。连接恢复后重试将继续。"
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "无 SSH 隧道",
|
||||
"createFirstTunnelMessage": "您尚未创建任何 SSH 隧道。在主机管理器中配置隧道连接以开始使用。",
|
||||
"connected": "已连接",
|
||||
"disconnected": "已断开",
|
||||
"connecting": "连接中...",
|
||||
"error": "错误",
|
||||
"canceling": "取消中...",
|
||||
"connect": "连接",
|
||||
"disconnect": "断开",
|
||||
"cancel": "取消",
|
||||
"port": "端口",
|
||||
"localPort": "本地端口",
|
||||
"remotePort": "远程端口",
|
||||
"destinationPort": "目的港",
|
||||
"currentHostPort": "当前主机端口",
|
||||
"endpointPort": "端点端口",
|
||||
"bindIp": "本地 IP",
|
||||
"localAddress": "本地地址",
|
||||
"remoteAddress": "远程地址",
|
||||
"destinationAddress": "目的地地址",
|
||||
"remoteBindAddress": "远程绑定地址",
|
||||
"intermediateHost": "中间宿主",
|
||||
"endpointSshConfig": "端点 SSH 配置",
|
||||
"endpointSshHost": "端点 SSH 主机",
|
||||
"endpointSshHostPlaceholder": "选择已配置的主机",
|
||||
"endpointSshHostRequired": "为每个客户端隧道选择一个端点 SSH 主机。",
|
||||
"attempt": "尝试 {{current}}/{{max}}",
|
||||
"nextRetryIn": "{{seconds}} 秒后重试",
|
||||
"clientTunnels": "客户端隧道",
|
||||
"clientTunnel": "客户端隧道",
|
||||
"addClientTunnel": "添加客户端隧道",
|
||||
"noClientTunnels": "此桌面未配置客户端隧道。",
|
||||
"tunnelName": "隧道名称",
|
||||
"remoteHost": "远程主机",
|
||||
"autoStart": "自动启动",
|
||||
"clientAutoStartDesc": "在此桌面客户端打开时启动并保持连接。",
|
||||
"clientManualStartDesc": "从此行使用启动和停止。Termix 不会自动启动它。",
|
||||
"clientRemoteServerNote": "远程转发可能需要在端点 SSH 服务器上设置 AllowTcpForwarding 和 GatewayPorts。此桌面断开连接时远程端口将关闭。",
|
||||
"clientTunnelStarted": "客户端隧道已启动",
|
||||
"clientTunnelStopped": "客户端隧道已停止",
|
||||
"tunnelTestSucceeded": "隧道测试成功",
|
||||
"tunnelTestFailed": "隧道测试失败",
|
||||
"localSaved": "客户端隧道已保存",
|
||||
"localSaveError": "保存本地客户端隧道失败",
|
||||
"invalidBindIp": "本地 IP 必须是有效的 IPv4 地址。",
|
||||
"invalidLocalTargetIp": "本地目标 IP 必须是有效的 IPv4 地址。",
|
||||
"invalidRemoteAddress": "需要远程地址。",
|
||||
"invalidLocalPort": "本地端口必须在 1 到 65535 之间。",
|
||||
"invalidRemotePort": "远程端口必须在 1 到 65535 之间。",
|
||||
"invalidLocalTargetPort": "本地目标端口必须在 1 到 65535 之间。",
|
||||
"invalidEndpointPort": "端点端口必须在 1 到 65535 之间。",
|
||||
"duplicateAutoStartBind": "只有一个自启动客户端隧道可以使用 {{bind}}。",
|
||||
"manualControlError": "更新隧道状态失败。",
|
||||
"active": "活跃",
|
||||
"start": "启动",
|
||||
"stop": "停止",
|
||||
"test": "测试",
|
||||
"type": "隧道类型",
|
||||
"typeLocal": "本地 (-L)",
|
||||
"typeRemote": "远程 (-R)",
|
||||
"typeDynamic": "动态 (-D)",
|
||||
"typeServerLocalDesc": "当前主机至端点。",
|
||||
"typeServerRemoteDesc": "端点回连至当前主机。",
|
||||
"typeClientLocalDesc": "本地计算机至端点。",
|
||||
"typeClientRemoteDesc": "端点回连至本地计算机。",
|
||||
"typeClientDynamicDesc": "本地计算机上的 SOCKS。",
|
||||
"typeDynamicDesc": "通过 SSH 转发 SOCKS5 CONNECT 流量",
|
||||
"forwardDescriptionServerLocal": "当前主机 {{sourcePort}} → 端点 {{endpointPort}}。",
|
||||
"forwardDescriptionServerRemote": "端点 {{endpointPort}} → 当前主机 {{sourcePort}}。",
|
||||
"forwardDescriptionServerDynamic": "当前主机上的 SOCKS {{sourcePort}}。",
|
||||
"forwardDescriptionClientLocal": "本地 {{sourcePort}} → 远程 {{endpointPort}}。",
|
||||
"forwardDescriptionClientRemote": "远程 {{sourcePort}} → 本地 {{endpointPort}}。",
|
||||
"forwardDescriptionClientDynamic": "本地端口 {{sourcePort}} 上的 SOCKS。",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} 经由 {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} 在 {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS 通过 {{endpoint}}",
|
||||
"autoNameClientLocal": "本地 {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → 本地 {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} 通过 {{endpoint}}",
|
||||
"route": "路由:",
|
||||
"lastStarted": "最后启动",
|
||||
"lastTested": "最后测试",
|
||||
"lastError": "最后错误",
|
||||
"maxRetries": "最大重试次数",
|
||||
"maxRetriesDescription": "最大重试尝试次数。",
|
||||
"retryInterval": "重试间隔(秒)",
|
||||
"retryIntervalDescription": "重试间隔等待时间。",
|
||||
"local": "本地",
|
||||
"remote": "远程",
|
||||
"destination": "目标",
|
||||
"host": "主机",
|
||||
"mode": "模式",
|
||||
"noHostSelected": "未选择主机",
|
||||
"working": "处理中..."
|
||||
"remote": "远程"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "拖动以移动",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "本地桌面隧道目标为已配置的 SSH 主机。",
|
||||
"c2sTunnelPresets": "客户端隧道预设",
|
||||
"c2sTunnelPresetsDesc": "将本桌面客户端的本地隧道列表保存为命名服务器预设,或将预设加载回此客户端。",
|
||||
"c2sTunnelPresetsUnavailable": "客户端隧道预设仅在桌面客户端中可用。",
|
||||
"c2sPresetName": "预设名称",
|
||||
"c2sPresetNamePlaceholder": "客户端预设名称",
|
||||
"c2sPresetToLoad": "要加载的预设",
|
||||
"c2sNoPresetSelected": "未选择预设",
|
||||
"c2sNoPresets": "无保存的预设",
|
||||
"c2sLoadPreset": "加载",
|
||||
"c2sCurrentLocalConfig": "此桌面上已配置 {{count}} 条本地客户端隧道。",
|
||||
"c2sPresetSyncNote": "预设是显式快照;加载预设将替换此桌面客户端的本地客户端隧道列表。",
|
||||
"c2sPresetSaved": "客户端隧道预设已保存",
|
||||
"c2sPresetLoaded": "客户端隧道预设已在本地加载",
|
||||
"c2sPresetRenamed": "客户端隧道预设已重命名",
|
||||
"c2sPresetDeleted": "客户端隧道预设已删除",
|
||||
"c2sPresetLoadError": "加载客户端隧道预设失败"
|
||||
"c2sTunnelPresetsDesc": "将本桌面客户端的本地隧道列表保存为命名服务器预设,或将预设加载回此客户端。"
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "语言",
|
||||
"keyPassword": "密钥密码",
|
||||
"pastePrivateKey": "在此粘贴您的私钥...",
|
||||
"localListenerHost": "127.0.0.1 (本地监听)",
|
||||
"localTargetHost": "127.0.0.1 (此计算机上的目标)",
|
||||
"remoteTargetHost": "127.0.0.1(来自端点的目标)",
|
||||
"remoteBindHost": "127.0.0.1(监听端点)",
|
||||
"socksListenerHost": "127.0.0.1(SOCKS 监听器)",
|
||||
"enterPassword": "输入您的密码",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "输入您的密码"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "仪表盘",
|
||||
|
||||
@@ -671,7 +671,6 @@
|
||||
"home": "首頁",
|
||||
"terminal": "終端機",
|
||||
"localTerminal": "本地端",
|
||||
"tunnels": "隧道",
|
||||
"fileManager": "檔案管理員",
|
||||
"serverStats": "主機指標",
|
||||
"admin": "管理",
|
||||
@@ -714,7 +713,6 @@
|
||||
"macros": "宏",
|
||||
"hostManager": "主機管理員",
|
||||
"credentials": "憑證",
|
||||
"portForwarding": "轉發",
|
||||
"connections": "連線",
|
||||
"serial": "序列",
|
||||
"keepSideMenuOpen": "保持菜單打開",
|
||||
@@ -765,7 +763,6 @@
|
||||
"tabTerminal": "終端機",
|
||||
"tabRdp": "RDP",
|
||||
"tabVnc": "VNC",
|
||||
"tabTunnels": "通道",
|
||||
"tabStats": "主機指標",
|
||||
"tabTelnet": "Telnet",
|
||||
"tabSharing": "分享",
|
||||
@@ -1071,31 +1068,8 @@
|
||||
"startupSnippetLabel": "啟動程式碼片段",
|
||||
"keepaliveIntervalLabel": "保持連線間隔(秒)",
|
||||
"maxKeepaliveMisses": "最大保持連線遺失次數",
|
||||
"tunnelSettings": "通道設定",
|
||||
"enableTunneling": "啟用通道",
|
||||
"enableTunnelingDesc": "為此主機啟用 SSH 通道功能",
|
||||
"serverTunnelsSection": "伺服器通道",
|
||||
"addTunnelBtn": "新增通道",
|
||||
"noTunnelsConfigured": "未設定任何通道。",
|
||||
"tunnelLabel": "通道 {{number}}",
|
||||
"tunnelType": "通道類型",
|
||||
"tunnelModeLocalDesc": "將本機連接埠轉送至遠端伺服器的連接埠(或可從其連線的主機)。",
|
||||
"tunnelModeRemoteDesc": "將遠端伺服器的連接埠轉送回本機的連接埠。",
|
||||
"tunnelModeDynamicDesc": "在本機連接埠上建立 SOCKS5 代理以進行動態連接埠轉送。",
|
||||
"sameHost": "此主機(直接通道)",
|
||||
"endpointHost": "端點主機",
|
||||
"endpointHostPlaceholder": "同一主機、SSH 主機或可連線的主機/IP",
|
||||
"endpointPort": "端點連接埠",
|
||||
"bindHost": "綁定主機",
|
||||
"sourcePort": "來源連接埠",
|
||||
"maxRetries": "最大重試次數",
|
||||
"retryIntervalS": "重試間隔(秒)",
|
||||
"autoStartLabel": "自動啟動",
|
||||
"autoStartDesc": "載入主機時自動連線此通道",
|
||||
"tunnelConnecting": "通道連線中…",
|
||||
"tunnelDisconnected": "通道已中斷連線",
|
||||
"failedToConnectTunnel": "連線失敗",
|
||||
"failedToDisconnectTunnel": "中斷連線失敗",
|
||||
"enableTmuxMonitor": "啟用 Tmux 監控器",
|
||||
"enableTmuxMonitorDesc": "在 Tmux 監控器中顯示此主機,並將其 tmux 操作新增至側邊欄",
|
||||
"enableTerminalToolbar": "啟用終端機工具列",
|
||||
@@ -1326,12 +1300,9 @@
|
||||
"refreshBtn": "重新整理",
|
||||
"addTag": "新增標籤...",
|
||||
"deleteConfirmBtn": "刪除",
|
||||
"tunnelRequirementsText": "SSH 伺服器必須在 /etc/ssh/sshd_config 中設定 GatewayPorts yes、AllowTcpForwarding yes 以及 PermitRootLogin yes。",
|
||||
"deleteHostConfirm": "刪除「{{name}}」?",
|
||||
"enableAtLeastOneProtocol": "請至少啟用上方一種通訊協定,以設定驗證與連線選項。",
|
||||
"keyPassphrase": "金鑰密碼短語",
|
||||
"connectBtn": "連線",
|
||||
"disconnectBtn": "中斷連線",
|
||||
"basicInformation": "基本資訊",
|
||||
"authDetailsSection": "驗證詳細資訊",
|
||||
"credTypeLabel": "類型",
|
||||
@@ -1952,100 +1923,26 @@
|
||||
"transferFailedRetryHint": "部分資料已保留在目的地。重新連線後,重試將從斷點繼續。"
|
||||
},
|
||||
"tunnels": {
|
||||
"noSshTunnels": "無 SSH 通道",
|
||||
"createFirstTunnelMessage": "您尚未建立任何 SSH 通道。請在主機管理員中設定通道連線以開始使用。",
|
||||
"connected": "已連線",
|
||||
"disconnected": "已離線",
|
||||
"connecting": "連線中…",
|
||||
"error": "錯誤",
|
||||
"canceling": "正在取消…",
|
||||
"connect": "連線",
|
||||
"disconnect": "中斷連線",
|
||||
"cancel": "取消",
|
||||
"port": "連接埠",
|
||||
"localPort": "本機連接埠",
|
||||
"remotePort": "遠端連接埠",
|
||||
"destinationPort": "目的港",
|
||||
"currentHostPort": "目前主機連接埠",
|
||||
"endpointPort": "端點連接埠",
|
||||
"bindIp": "本機 IP",
|
||||
"localAddress": "本地地址",
|
||||
"remoteAddress": "遠端位址",
|
||||
"destinationAddress": "目的地地址",
|
||||
"remoteBindAddress": "遠端綁定位址",
|
||||
"intermediateHost": "中間宿主",
|
||||
"endpointSshConfig": "端點 SSH 設定",
|
||||
"endpointSshHost": "端點 SSH 主機",
|
||||
"endpointSshHostPlaceholder": "選擇已設定的主機",
|
||||
"endpointSshHostRequired": "為每個用戶端通道選取一個端點 SSH 主機。",
|
||||
"attempt": "嘗試 {{current}}/{{max}}",
|
||||
"nextRetryIn": "下次重試於 {{seconds}} 秒後",
|
||||
"clientTunnels": "用戶端通道",
|
||||
"clientTunnel": "用戶端通道",
|
||||
"addClientTunnel": "新增用戶端通道",
|
||||
"noClientTunnels": "此桌面未設定任何用戶端通道。",
|
||||
"tunnelName": "通道名稱",
|
||||
"remoteHost": "遠端主機",
|
||||
"autoStart": "自動啟動",
|
||||
"clientAutoStartDesc": "在此桌面用戶端開啟時啟動並保持連線。",
|
||||
"clientManualStartDesc": "從此列使用「啟動」與「停止」。Termix 不會自動開啟。",
|
||||
"clientRemoteServerNote": "遠端轉送可能需要在端點 SSH 伺服器上啟用 AllowTcpForwarding 和 GatewayPorts。遠端連接埠會在此桌面中斷連線時關閉。",
|
||||
"clientTunnelStarted": "用戶端通道已啟動",
|
||||
"clientTunnelStopped": "用戶端通道已停止",
|
||||
"tunnelTestSucceeded": "通道測試成功",
|
||||
"tunnelTestFailed": "通道測試失敗",
|
||||
"localSaved": "用戶端通道已儲存",
|
||||
"localSaveError": "無法儲存本機用戶端通道",
|
||||
"invalidBindIp": "本機 IP 必須是有效的 IPv4 位址。",
|
||||
"invalidLocalTargetIp": "本機目標 IP 必須是有效的 IPv4 位址。",
|
||||
"invalidRemoteAddress": "需要遠端位址。",
|
||||
"invalidLocalPort": "本機連接埠必須介於 1 到 65535 之間。",
|
||||
"invalidRemotePort": "遠端連接埠必須介於 1 到 65535 之間。",
|
||||
"invalidLocalTargetPort": "本機目標連接埠必須介於 1 到 65535 之間。",
|
||||
"invalidEndpointPort": "端點連接埠必須介於 1 到 65535 之間。",
|
||||
"duplicateAutoStartBind": "只有一個自動啟動的用戶端通道可以使用 {{bind}}。",
|
||||
"manualControlError": "無法更新通道狀態。",
|
||||
"active": "作用中",
|
||||
"start": "啟動",
|
||||
"stop": "停止",
|
||||
"test": "測試",
|
||||
"type": "通道類型",
|
||||
"typeLocal": "本機 (-L)",
|
||||
"typeRemote": "遠端 (-R)",
|
||||
"typeDynamic": "動態 (-D)",
|
||||
"typeServerLocalDesc": "從目前主機到端點。",
|
||||
"typeServerRemoteDesc": "從端點返回目前主機。",
|
||||
"typeClientLocalDesc": "從本機電腦到端點。",
|
||||
"typeClientRemoteDesc": "從端點返回本機電腦。",
|
||||
"typeClientDynamicDesc": "本機電腦上的 SOCKS。",
|
||||
"typeDynamicDesc": "透過 SSH 轉送 SOCKS5 CONNECT 流量",
|
||||
"forwardDescriptionServerLocal": "目前主機 {{sourcePort}} → 端點 {{endpointPort}}。",
|
||||
"forwardDescriptionServerRemote": "端點 {{endpointPort}} → 目前主機 {{sourcePort}}。",
|
||||
"forwardDescriptionServerDynamic": "目前主機上的 SOCKS {{sourcePort}}。",
|
||||
"forwardDescriptionClientLocal": "本機 {{sourcePort}} → 遠端 {{endpointPort}}。",
|
||||
"forwardDescriptionClientRemote": "遠端 {{sourcePort}} → 本機 {{endpointPort}}。",
|
||||
"forwardDescriptionClientDynamic": "本機連接埠 {{sourcePort}} 上的 SOCKS。",
|
||||
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
|
||||
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{endpoint}} → {{localHost}}:{{localPort}}",
|
||||
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS 透過 {{endpoint}}",
|
||||
"autoNameClientLocal": "本機 {{localPort}} → {{endpoint}} {{remotePort}}",
|
||||
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → 本機 {{localPort}}",
|
||||
"autoNameClientDynamic": "SOCKS {{localPort}} 透過 {{endpoint}}",
|
||||
"route": "路由:",
|
||||
"lastStarted": "上次啟動",
|
||||
"lastTested": "上次測試",
|
||||
"lastError": "上次錯誤",
|
||||
"maxRetries": "最大重試次數",
|
||||
"maxRetriesDescription": "最大重試次數。",
|
||||
"retryInterval": "重試間隔(秒)",
|
||||
"retryIntervalDescription": "每次重試之間的等待時間。",
|
||||
"local": "本機",
|
||||
"remote": "遠端",
|
||||
"destination": "目的地",
|
||||
"host": "主機",
|
||||
"mode": "模式",
|
||||
"noHostSelected": "未選取主機",
|
||||
"working": "處理中..."
|
||||
"remote": "遠端"
|
||||
},
|
||||
"cardGrid": {
|
||||
"dragToMove": "拖曳以移動",
|
||||
@@ -2175,37 +2072,13 @@
|
||||
},
|
||||
"profile": {
|
||||
"c2sTunnelConfigDesc": "本機桌面通道,目標為已設定的 SSH 主機。",
|
||||
"c2sTunnelPresets": "用戶端通道預設組",
|
||||
"c2sTunnelPresetsDesc": "將此桌面用戶端的本機通道清單儲存為命名的伺服器預設組,或將預設組載回此用戶端。",
|
||||
"c2sTunnelPresetsUnavailable": "用戶端通道預設組僅在桌面用戶端中可用。",
|
||||
"c2sPresetName": "預設組名稱",
|
||||
"c2sPresetNamePlaceholder": "用戶端預設組名稱",
|
||||
"c2sPresetToLoad": "要載入的預設組",
|
||||
"c2sNoPresetSelected": "未選取預設組",
|
||||
"c2sNoPresets": "無儲存的預設組",
|
||||
"c2sLoadPreset": "載入",
|
||||
"c2sCurrentLocalConfig": "此桌面上設定了 {{count}} 個本機用戶端通道。",
|
||||
"c2sPresetSyncNote": "預設組是明確的快照;載入預設組將會取代此桌面用戶端的本機用戶端通道清單。",
|
||||
"c2sPresetSaved": "用戶端通道預設組已儲存",
|
||||
"c2sPresetLoaded": "用戶端通道預設組已在本機載入",
|
||||
"c2sPresetRenamed": "用戶端通道預設組已重新命名",
|
||||
"c2sPresetDeleted": "用戶端通道預設組已刪除",
|
||||
"c2sPresetLoadError": "無法載入用戶端通道預設組"
|
||||
"c2sTunnelPresetsDesc": "將此桌面用戶端的本機通道清單儲存為命名的伺服器預設組,或將預設組載回此用戶端。"
|
||||
},
|
||||
"placeholders": {
|
||||
"maxRetries": "3",
|
||||
"retryInterval": "10",
|
||||
"language": "語言",
|
||||
"keyPassword": "金鑰密碼",
|
||||
"pastePrivateKey": "在此貼上您的私密金鑰...",
|
||||
"localListenerHost": "127.0.0.1 (本機監聽)",
|
||||
"localTargetHost": "127.0.0.1 (此電腦上的目標)",
|
||||
"remoteTargetHost": "127.0.0.1(來自端點的目標)",
|
||||
"remoteBindHost": "127.0.0.1(監聽端點)",
|
||||
"socksListenerHost": "127.0.0.1(SOCKS 監聽器)",
|
||||
"enterPassword": "輸入您的密碼",
|
||||
"defaultPort": "22",
|
||||
"defaultEndpointPort": "224"
|
||||
"enterPassword": "輸入您的密碼"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "儀表板",
|
||||
|
||||
+2
-38
@@ -55,7 +55,6 @@ import {
|
||||
apiLogger,
|
||||
authLogger,
|
||||
sshLogger,
|
||||
tunnelLogger,
|
||||
fileLogger,
|
||||
statsLogger,
|
||||
dashboardLogger,
|
||||
@@ -268,8 +267,6 @@ export { isElectron };
|
||||
function getLoggerForService(serviceName: string) {
|
||||
if (serviceName.includes("SSH") || serviceName.includes("ssh")) {
|
||||
return sshLogger;
|
||||
} else if (serviceName.includes("TUNNEL") || serviceName.includes("tunnel")) {
|
||||
return tunnelLogger;
|
||||
} else if (serviceName.includes("FILE") || serviceName.includes("file")) {
|
||||
return fileLogger;
|
||||
} else if (serviceName.includes("STATS") || serviceName.includes("stats")) {
|
||||
@@ -786,12 +783,12 @@ function getApiUrl(path: string, defaultPort: number): string {
|
||||
// PER-HOST ORIGIN ROUTING (Electron desktop only)
|
||||
// ============================================================================
|
||||
//
|
||||
// hostApi/fileManagerApi/tunnelApi/statsApi above always point at the
|
||||
// hostApi/fileManagerApi/statsApi above always point at the
|
||||
// embedded local backend -- they're the shared, always-on instances. When a
|
||||
// host's connection origin resolves to "remote" (see
|
||||
// src/ui/lib/connection-origin.ts), the backend that actually holds that
|
||||
// host's live SSH session is the connected remote server instead, so file
|
||||
// manager, tunnel, and stats calls for that host must follow it there.
|
||||
// manager and stats calls for that host must follow it there.
|
||||
//
|
||||
// These dynamically-baseURL'd instances resolve the remote server's URL and
|
||||
// JWT fresh on every request (cheap, and correct even if the user
|
||||
@@ -836,7 +833,6 @@ function createRemoteOriginApiInstance(path: string): AxiosInstance {
|
||||
}
|
||||
|
||||
let remoteFileManagerApi: AxiosInstance | null = null;
|
||||
let remoteTunnelApi: AxiosInstance | null = null;
|
||||
let remoteStatsApi: AxiosInstance | null = null;
|
||||
let remoteCoreApi: AxiosInstance | null = null;
|
||||
let remoteGuacamoleApi: AxiosInstance | null = null;
|
||||
@@ -850,13 +846,6 @@ export function getRemoteFileManagerApi(): AxiosInstance {
|
||||
return remoteFileManagerApi;
|
||||
}
|
||||
|
||||
export function getRemoteTunnelApi(): AxiosInstance {
|
||||
if (!remoteTunnelApi) {
|
||||
remoteTunnelApi = createRemoteOriginApiInstance("/ssh");
|
||||
}
|
||||
return remoteTunnelApi;
|
||||
}
|
||||
|
||||
export function getRemoteStatsApi(): AxiosInstance {
|
||||
if (!remoteStatsApi) {
|
||||
remoteStatsApi = createRemoteOriginApiInstance("/plugin-api/host-metrics");
|
||||
@@ -913,12 +902,6 @@ export function getSessionOrigin(sessionId: string): "local" | "remote" {
|
||||
return sessionOrigins.get(sessionId) === "remote" ? "remote" : "local";
|
||||
}
|
||||
|
||||
export function getTunnelApiForOrigin(
|
||||
origin: "local" | "remote",
|
||||
): AxiosInstance {
|
||||
return origin === "remote" ? getRemoteTunnelApi() : tunnelApi;
|
||||
}
|
||||
|
||||
export function getStatsApiForOrigin(
|
||||
origin: "local" | "remote",
|
||||
): AxiosInstance {
|
||||
@@ -930,9 +913,6 @@ function initializeApiInstances() {
|
||||
hostApi = createApiInstance(getApiUrl("/host", 30001), "HOST");
|
||||
sshHostApi = hostApi;
|
||||
|
||||
// Tunnel Management API (port 30003)
|
||||
tunnelApi = createApiInstance(getApiUrl("/ssh", 30003), "TUNNEL");
|
||||
|
||||
// File Manager Operations API - the file-manager plugin, mounted on the
|
||||
// main backend.
|
||||
fileManagerApi = createApiInstance(
|
||||
@@ -978,9 +958,6 @@ export let hostApi: AxiosInstance;
|
||||
// Backward compatibility
|
||||
export let sshHostApi: AxiosInstance;
|
||||
|
||||
// Tunnel Management API (port 30003)
|
||||
export let tunnelApi: AxiosInstance;
|
||||
|
||||
// File Manager Operations API (file-manager plugin)
|
||||
export let fileManagerApi: AxiosInstance;
|
||||
|
||||
@@ -1572,19 +1549,6 @@ export {
|
||||
testProxyConnection,
|
||||
} from "@/api/ssh-host-management-api";
|
||||
|
||||
export {
|
||||
getTunnelStatuses,
|
||||
subscribeTunnelStatuses,
|
||||
getTunnelStatusByName,
|
||||
connectTunnel,
|
||||
disconnectTunnel,
|
||||
cancelTunnel,
|
||||
getC2STunnelPresets,
|
||||
createC2STunnelPreset,
|
||||
updateC2STunnelPreset,
|
||||
deleteC2STunnelPreset,
|
||||
} from "@/api/tunnel-api";
|
||||
|
||||
export {
|
||||
getAllServerStatuses,
|
||||
getServerStatusById,
|
||||
|
||||
@@ -1,34 +1,23 @@
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Plug, type LucideIcon } from "lucide-react";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
import { useActionSlot } from "@/hooks/use-action-slot";
|
||||
|
||||
/**
|
||||
* A tour of the things people miss because they live behind a rail icon.
|
||||
* Terminal and hosts are covered by the welcome step, so this is deliberately
|
||||
* the "there is more than SSH here" list. Plugins add their own entries
|
||||
* the "there is more than SSH here" list. Every entry comes from a plugin,
|
||||
* through the "onboarding.features" slot.
|
||||
*/
|
||||
const FEATURES: { icon: LucideIcon; key: string }[] = [
|
||||
{ icon: Plug, key: "tunnels" },
|
||||
];
|
||||
|
||||
export function FeaturesStep() {
|
||||
const { t } = useTranslation();
|
||||
const pluginFeatures = useActionSlot("onboarding.features");
|
||||
const features = [
|
||||
...FEATURES.map(({ icon, key }) => ({
|
||||
id: key,
|
||||
icon,
|
||||
title: t(`onboarding.feature_${key}`),
|
||||
description: t(`onboarding.feature_${key}_desc`),
|
||||
})),
|
||||
...pluginFeatures.map((feature) => ({
|
||||
id: feature.actionId,
|
||||
icon: feature.icon as LucideIcon | undefined,
|
||||
title: t(feature.titleKey),
|
||||
description: feature.descriptionKey ? t(feature.descriptionKey) : "",
|
||||
})),
|
||||
];
|
||||
const features = pluginFeatures.map((feature) => ({
|
||||
id: feature.actionId,
|
||||
icon: feature.icon as LucideIcon | undefined,
|
||||
title: t(feature.titleKey),
|
||||
description: feature.descriptionKey ? t(feature.descriptionKey) : "",
|
||||
}));
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-3">
|
||||
|
||||
@@ -19,7 +19,6 @@ import {
|
||||
MessagesSquare,
|
||||
LifeBuoy,
|
||||
Search,
|
||||
Network,
|
||||
User,
|
||||
KeyRound,
|
||||
Layers, // --- tmux-monitor ---
|
||||
@@ -73,7 +72,6 @@ function getSshActions(host: Host): {
|
||||
icon: Layers,
|
||||
label: "Tmux Monitor",
|
||||
},
|
||||
host.enableTunnel && { type: "tunnel", icon: Network, label: "Tunnels" },
|
||||
].filter(Boolean) as {
|
||||
type: TabType;
|
||||
icon: React.ElementType;
|
||||
|
||||
@@ -111,11 +111,7 @@ export function TabProvider({ children }: TabProviderProps) {
|
||||
const computeUniqueTitle = useCallback(
|
||||
(tabType: Tab["type"], desiredTitle: string | undefined): string => {
|
||||
const defaultTitle =
|
||||
tabType === "file_manager"
|
||||
? t("nav.fileManager")
|
||||
: tabType === "tunnel"
|
||||
? t("nav.tunnels")
|
||||
: t("nav.terminal");
|
||||
tabType === "file_manager" ? t("nav.fileManager") : t("nav.terminal");
|
||||
const baseTitle = (desiredTitle || defaultTitle).trim();
|
||||
const match = baseTitle.match(/^(.*) \((\d+)\)$/);
|
||||
const root = match ? match[1] : baseTitle;
|
||||
@@ -180,9 +176,7 @@ export function TabProvider({ children }: TabProviderProps) {
|
||||
const id = nextTabId.current++;
|
||||
const instanceId = `tab_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
||||
const needsUniqueTitle =
|
||||
tabData.type === "terminal" ||
|
||||
tabData.type === "file_manager" ||
|
||||
tabData.type === "tunnel";
|
||||
tabData.type === "terminal" || tabData.type === "file_manager";
|
||||
const effectiveTitle = needsUniqueTitle
|
||||
? computeUniqueTitle(tabData.type, tabData.title)
|
||||
: tabData.type === "tmux_monitor" // --- tmux-monitor ---
|
||||
|
||||
@@ -19,7 +19,6 @@ import { getTabType } from "./tab-registry";
|
||||
* not a meaningful part of an arrangement.
|
||||
*/
|
||||
const CORE_CAPTURABLE = new Set([
|
||||
"tunnel",
|
||||
"tmux_monitor",
|
||||
"serial",
|
||||
"homepage",
|
||||
@@ -32,7 +31,6 @@ const CORE_CAPTURABLE = new Set([
|
||||
|
||||
/** Core types reopened as singletons, with an optional preselected host. */
|
||||
const CORE_SINGLETON = new Set([
|
||||
"tunnel",
|
||||
"tmux_monitor",
|
||||
"homepage",
|
||||
"termix-id",
|
||||
|
||||
@@ -83,11 +83,11 @@ export const useTabTypes = registry.useList;
|
||||
export const resetTabTypes = registry.reset;
|
||||
|
||||
/** Core tab types that are saved and reopened after login. */
|
||||
const CORE_PERSISTENT = new Set(["tunnel"]);
|
||||
const CORE_PERSISTENT = new Set<string>();
|
||||
/** Core tab types that hold a live session (close confirm, refresh). */
|
||||
const CORE_SESSION = new Set(["serial"]);
|
||||
/** Core tab types that restore without a host. */
|
||||
const CORE_HOSTLESS = new Set(["dashboard", "tunnel"]);
|
||||
const CORE_HOSTLESS = new Set(["dashboard"]);
|
||||
|
||||
/**
|
||||
* A plugin tab type nobody registered right now: its plugin is off, failed or
|
||||
|
||||
@@ -4,7 +4,6 @@ import {
|
||||
LayoutDashboard,
|
||||
LayoutGrid,
|
||||
LayoutPanelLeft,
|
||||
Network,
|
||||
Server,
|
||||
Settings,
|
||||
Usb,
|
||||
@@ -59,11 +58,6 @@ const HomepageCanvas = lazy(() =>
|
||||
default: m.HomepageCanvas,
|
||||
})),
|
||||
);
|
||||
const loadTunnelTab = () =>
|
||||
import("@/features/tunnel/TunnelTab").then((m) => ({
|
||||
default: m.TunnelTab,
|
||||
}));
|
||||
const TunnelTab = lazy(loadTunnelTab);
|
||||
const Serial = lazy(() =>
|
||||
import("@/features/serial/Serial").then((m) => ({
|
||||
default: m.Serial,
|
||||
@@ -89,7 +83,6 @@ const SshToolsPanel = lazy(() =>
|
||||
);
|
||||
const tabSurfaceLoaders: Partial<Record<TabType, () => Promise<unknown>>> = {
|
||||
tmux_monitor: loadTmuxMonitor,
|
||||
tunnel: loadTunnelTab,
|
||||
};
|
||||
|
||||
/** Download a likely next tab without starting a connection or mounting UI. */
|
||||
@@ -161,8 +154,6 @@ export function tabIcon(type: TabType) {
|
||||
return <User className="size-3.5" />;
|
||||
case "admin-settings":
|
||||
return <Settings className="size-3.5" />;
|
||||
case "tunnel":
|
||||
return <Network className="size-3.5" />;
|
||||
// --- tmux-monitor ---
|
||||
case "tmux_monitor":
|
||||
return <Layers className="size-3.5" />;
|
||||
@@ -259,7 +250,7 @@ export interface TabRenderContext {
|
||||
|
||||
export function renderTabContent(tab: Tab, context: TabRenderContext) {
|
||||
const { shell, isVisible = true, isFocusedPane = true, panelProps } = context;
|
||||
const { host, label } = tab;
|
||||
const { host } = tab;
|
||||
|
||||
switch (tab.type) {
|
||||
case "dashboard":
|
||||
@@ -276,11 +267,6 @@ export function renderTabContent(tab: Tab, context: TabRenderContext) {
|
||||
<LocalTerminal instanceId={tab.instanceId} isVisible={isVisible} />,
|
||||
);
|
||||
|
||||
case "tunnel":
|
||||
return withTabSuspense(
|
||||
<TunnelTab label={label} host={host} isVisible={isVisible} />,
|
||||
);
|
||||
|
||||
// --- tmux-monitor ---
|
||||
case "tmux_monitor":
|
||||
return withTabSuspense(
|
||||
|
||||
@@ -30,7 +30,6 @@ const RESOURCE_TYPES = [
|
||||
"session",
|
||||
"api_key",
|
||||
"setting",
|
||||
"tunnel",
|
||||
];
|
||||
|
||||
type AdminAuditLogSectionProps = {
|
||||
|
||||
@@ -19,7 +19,6 @@ import { useRailItems, type RailItemDef } from "./rail-items";
|
||||
export type CoreRailView =
|
||||
| "hosts"
|
||||
| "credentials"
|
||||
| "port-forwarding"
|
||||
| "termix-id"
|
||||
| "quick-connect"
|
||||
| "serial"
|
||||
|
||||
@@ -25,7 +25,6 @@ import { useAdaptivePolling } from "@/hooks/use-adaptive-polling";
|
||||
/** Core badge labels; plugin tabs are labelled by their registered title. */
|
||||
const CORE_TYPE_LABELS: Record<string, string> = {
|
||||
files: "Files",
|
||||
tunnel: "Tunnel",
|
||||
};
|
||||
|
||||
/** Saved connection tabs: the ones reopened after login. */
|
||||
|
||||
@@ -26,7 +26,6 @@ import {
|
||||
Globe,
|
||||
Info,
|
||||
Layers, // --- tmux-monitor ---
|
||||
Network,
|
||||
Palette,
|
||||
Pencil,
|
||||
Plus,
|
||||
@@ -42,9 +41,6 @@ import {
|
||||
createSSHHost,
|
||||
updateSSHHost,
|
||||
getSnippets,
|
||||
subscribeTunnelStatuses,
|
||||
connectTunnel,
|
||||
disconnectTunnel,
|
||||
getUserInfo,
|
||||
getVaultProfiles,
|
||||
getHostPassword,
|
||||
@@ -63,7 +59,7 @@ import {
|
||||
type SavedCustomTheme,
|
||||
} from "@/api/open-tabs-api";
|
||||
import type { Host, VaultProfile } from "@/types/ui-types";
|
||||
import type { SSHHost, TunnelStatus } from "@/types";
|
||||
import type { SSHHost } from "@/types";
|
||||
import { useTabsSafe } from "@/shell/TabContext";
|
||||
import { updatePluginHostSettings } from "@/api/plugins-api";
|
||||
import {
|
||||
@@ -97,7 +93,6 @@ import {
|
||||
SecretReferenceHint,
|
||||
SecretSourceManager,
|
||||
} from "./SecretSourceManager";
|
||||
import { findHostByTunnelEndpoint } from "@/features/tunnel/tunnel-endpoints";
|
||||
import {
|
||||
toCredentialOption,
|
||||
type CredentialOption,
|
||||
@@ -177,10 +172,6 @@ export function HostEditor({
|
||||
|
||||
const [saving, setSaving] = useState(false);
|
||||
const [snippets, setSnippets] = useState<{ id: number; name: string }[]>([]);
|
||||
const [tunnelStatuses, setTunnelStatuses] = useState<
|
||||
Record<string, TunnelStatus>
|
||||
>({});
|
||||
const [connectingTunnel, setConnectingTunnel] = useState<number | null>(null);
|
||||
const [isOidcUser, setIsOidcUser] = useState(false);
|
||||
const [vaultProfiles, setVaultProfiles] = useState<VaultProfile[]>([]);
|
||||
const [showVaultManager, setShowVaultManager] = useState(false);
|
||||
@@ -299,12 +290,6 @@ export function HostEditor({
|
||||
};
|
||||
}, [form.vncAuthType, form.vncPassword, host?.id, adminTargetUserId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (activeTab !== "tunnels") return;
|
||||
const unsub = subscribeTunnelStatuses((s) => setTunnelStatuses(s));
|
||||
return unsub;
|
||||
}, [activeTab]);
|
||||
|
||||
/**
|
||||
* Writes each plugin's host-scope values through its own route.
|
||||
*
|
||||
@@ -2130,392 +2115,6 @@ export function HostEditor({
|
||||
</>
|
||||
)}
|
||||
|
||||
{activeTab === "tunnels" && (
|
||||
<>
|
||||
<SectionCard
|
||||
title={t("hosts.tunnelSettings")}
|
||||
icon={<Network className="size-3.5" />}
|
||||
>
|
||||
<div className="flex flex-col gap-4 py-3">
|
||||
<SettingRow
|
||||
label={t("hosts.enableTunneling")}
|
||||
description={
|
||||
<>
|
||||
{t("hosts.enableTunnelingDesc")}{" "}
|
||||
<a
|
||||
href="https://docs.termix.site/features/networking/tunnels"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="text-accent-brand hover:underline"
|
||||
>
|
||||
{t("hosts.docsLink")}
|
||||
</a>
|
||||
</>
|
||||
}
|
||||
>
|
||||
<FakeSwitch
|
||||
checked={form.enableTunnel}
|
||||
onChange={(v) => setField("enableTunnel", v)}
|
||||
/>
|
||||
</SettingRow>
|
||||
<div className="text-xs text-muted-foreground p-3 bg-muted/30 border border-border space-y-1">
|
||||
<p>{t("hosts.tunnelRequirementsText")}</p>
|
||||
</div>
|
||||
</div>
|
||||
</SectionCard>
|
||||
<SectionCard
|
||||
title={t("hosts.serverTunnelsSection")}
|
||||
icon={<Network className="size-3.5" />}
|
||||
action={
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
className="h-6 text-[10px] px-2 border-accent-brand/40 text-accent-brand"
|
||||
onClick={() =>
|
||||
setField("serverTunnels", [
|
||||
...form.serverTunnels,
|
||||
{
|
||||
mode: "local" as const,
|
||||
sourcePort: 8080,
|
||||
endpointHost: "",
|
||||
endpointPort: 80,
|
||||
bindHost: "127.0.0.1",
|
||||
maxRetries: 3,
|
||||
retryInterval: 10,
|
||||
autoStart: false,
|
||||
},
|
||||
])
|
||||
}
|
||||
>
|
||||
<Plus className="size-3 mr-1" /> {t("hosts.addTunnelBtn")}
|
||||
</Button>
|
||||
}
|
||||
>
|
||||
<div className="flex flex-col gap-3 py-3">
|
||||
{form.serverTunnels.length === 0 && (
|
||||
<p className="text-[10px] text-muted-foreground/50 px-1">
|
||||
{t("hosts.noTunnelsConfigured")}
|
||||
</p>
|
||||
)}
|
||||
{form.serverTunnels.map((tun, i) => {
|
||||
const endpointValue = (tun.endpointHost ?? "").trim();
|
||||
const selectedEndpointHost = findHostByTunnelEndpoint(
|
||||
hosts,
|
||||
endpointValue,
|
||||
);
|
||||
const directEndpoint =
|
||||
!endpointValue ||
|
||||
endpointValue === "127.0.0.1" ||
|
||||
endpointValue === "localhost";
|
||||
const endpointInputId = `server-tunnel-endpoint-${host?.id ?? "new"}-${i}`;
|
||||
const hostLabel =
|
||||
host?.name ||
|
||||
(host ? `${host.username}@${host.ip}` : "new");
|
||||
const tunnelName = `${host?.id ?? "new"}::${i}::${hostLabel}::${tun.sourcePort}::${endpointValue}::${tun.endpointPort}`;
|
||||
const tunnelStatus = tunnelStatuses[tunnelName]?.status as
|
||||
string | undefined;
|
||||
const isConnected = tunnelStatus === "connected";
|
||||
return (
|
||||
<div
|
||||
key={i}
|
||||
className="flex flex-col gap-3 p-3 border border-border bg-muted/20 relative group"
|
||||
>
|
||||
<div className="flex items-center justify-between mb-1">
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="text-xs font-bold text-muted-foreground">
|
||||
{t("hosts.tunnelLabel", { number: i + 1 })}
|
||||
</span>
|
||||
<div
|
||||
className={`size-1.5 rounded-full shrink-0 ${
|
||||
isConnected
|
||||
? "bg-accent-brand shadow-[0_0_4px_rgba(251,146,60,0.4)]"
|
||||
: tunnelStatus === "error"
|
||||
? "bg-red-400"
|
||||
: "bg-muted-foreground/25"
|
||||
}`}
|
||||
title={tunnelStatus ?? "not connected"}
|
||||
/>
|
||||
{host && (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
disabled={connectingTunnel === i}
|
||||
className={`h-6 text-[10px] px-2 ${isConnected ? "border-destructive/40 text-destructive hover:bg-destructive/10" : "border-accent-brand/40 text-accent-brand hover:bg-accent-brand/10"}`}
|
||||
onClick={async () => {
|
||||
setConnectingTunnel(i);
|
||||
try {
|
||||
if (isConnected) {
|
||||
await disconnectTunnel(tunnelName);
|
||||
toast.success(
|
||||
t("hosts.tunnelDisconnected"),
|
||||
);
|
||||
} else {
|
||||
await connectTunnel({
|
||||
name: tunnelName,
|
||||
mode: tun.mode,
|
||||
sourceHostId: Number(host.id),
|
||||
tunnelIndex: i,
|
||||
hostName: host.name,
|
||||
sourceIP: host.ip,
|
||||
sourceSSHPort:
|
||||
host.sshPort ?? host.port,
|
||||
sourceUsername: form.username,
|
||||
sourcePassword:
|
||||
form.password || undefined,
|
||||
sourceAuthMethod: form.authType,
|
||||
sourceSSHKey: form.key || undefined,
|
||||
sourceKeyPassword:
|
||||
form.keyPassword || undefined,
|
||||
sourceCredentialId: form.credentialId
|
||||
? Number(form.credentialId)
|
||||
: undefined,
|
||||
endpointIP: directEndpoint
|
||||
? host.ip
|
||||
: (selectedEndpointHost?.ip ??
|
||||
endpointValue),
|
||||
endpointSSHPort:
|
||||
directEndpoint || selectedEndpointHost
|
||||
? directEndpoint
|
||||
? (host.sshPort ?? host.port)
|
||||
: (selectedEndpointHost?.sshPort ??
|
||||
selectedEndpointHost?.port ??
|
||||
22)
|
||||
: 22,
|
||||
endpointHost: endpointValue,
|
||||
endpointUsername: directEndpoint
|
||||
? form.username
|
||||
: (selectedEndpointHost?.username ??
|
||||
""),
|
||||
endpointAuthMethod:
|
||||
selectedEndpointHost?.authType ??
|
||||
"none",
|
||||
endpointCredentialId:
|
||||
selectedEndpointHost?.credentialId
|
||||
? Number(
|
||||
selectedEndpointHost.credentialId,
|
||||
)
|
||||
: undefined,
|
||||
sourcePort: tun.sourcePort,
|
||||
endpointPort: tun.endpointPort ?? 0,
|
||||
bindHost: tun.bindHost ?? "127.0.0.1",
|
||||
maxRetries: tun.maxRetries ?? 3,
|
||||
retryInterval: tun.retryInterval ?? 10,
|
||||
autoStart: tun.autoStart ?? false,
|
||||
isPinned: false,
|
||||
});
|
||||
toast.success(
|
||||
t("hosts.tunnelConnecting"),
|
||||
);
|
||||
}
|
||||
} catch {
|
||||
toast.error(
|
||||
isConnected
|
||||
? t("hosts.failedToDisconnectTunnel")
|
||||
: t("hosts.failedToConnectTunnel"),
|
||||
);
|
||||
} finally {
|
||||
setConnectingTunnel(null);
|
||||
}
|
||||
}}
|
||||
>
|
||||
{connectingTunnel === i
|
||||
? "..."
|
||||
: isConnected
|
||||
? t("hosts.disconnectBtn")
|
||||
: t("hosts.connectBtn")}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="h-6 text-[10px] px-2 text-destructive"
|
||||
onClick={() =>
|
||||
setField(
|
||||
"serverTunnels",
|
||||
form.serverTunnels.filter(
|
||||
(_, idx) => idx !== i,
|
||||
),
|
||||
)
|
||||
}
|
||||
>
|
||||
{t("common.delete")}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex flex-col gap-1.5">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.tunnelType")}
|
||||
</label>
|
||||
<div className="flex gap-2">
|
||||
{(["remote", "local", "dynamic"] as const).map(
|
||||
(m) => (
|
||||
<button
|
||||
key={m}
|
||||
onClick={() => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = { ...updated[i], mode: m };
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
className={`px-3 py-1.5 text-[10px] font-bold uppercase tracking-widest border transition-colors ${tun.mode === m ? "border-accent-brand/40 bg-accent-brand/10 text-accent-brand" : "border-border text-muted-foreground hover:text-foreground"}`}
|
||||
>
|
||||
{m}
|
||||
</button>
|
||||
),
|
||||
)}
|
||||
</div>
|
||||
<p className="text-[10px] text-muted-foreground/70 mt-0.5">
|
||||
{tun.mode === "local"
|
||||
? t("hosts.tunnelModeLocalDesc")
|
||||
: tun.mode === "remote"
|
||||
? t("hosts.tunnelModeRemoteDesc")
|
||||
: t("hosts.tunnelModeDynamicDesc")}
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
{tun.mode !== "dynamic" && (
|
||||
<div className="flex flex-col gap-1">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.endpointHost")}
|
||||
</label>
|
||||
<Input
|
||||
className="h-7 text-xs border border-border bg-background px-2 outline-none focus:ring-1 focus:ring-ring"
|
||||
list={endpointInputId}
|
||||
placeholder={t("hosts.endpointHostPlaceholder")}
|
||||
value={tun.endpointHost ?? ""}
|
||||
onChange={(e) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = {
|
||||
...updated[i],
|
||||
endpointHost: e.target.value,
|
||||
};
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
<datalist id={endpointInputId}>
|
||||
{hosts
|
||||
.filter((h) => h.enableSsh)
|
||||
.map((h) => (
|
||||
<option key={h.id} value={h.ip}>
|
||||
{h.name || h.ip} ({h.ip})
|
||||
</option>
|
||||
))}
|
||||
</datalist>
|
||||
</div>
|
||||
)}
|
||||
{tun.mode !== "dynamic" && (
|
||||
<div className="flex flex-col gap-1">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.endpointPort")}
|
||||
</label>
|
||||
<Input
|
||||
className="h-7 text-xs [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
|
||||
type="number"
|
||||
value={tun.endpointPort}
|
||||
onChange={(e) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = {
|
||||
...updated[i],
|
||||
endpointPort: Number(e.target.value),
|
||||
};
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex flex-col gap-1">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.bindHost")}
|
||||
</label>
|
||||
<Input
|
||||
className="h-7 text-xs"
|
||||
placeholder="127.0.0.1"
|
||||
value={tun.bindHost ?? ""}
|
||||
onChange={(e) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = {
|
||||
...updated[i],
|
||||
bindHost: e.target.value,
|
||||
};
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.sourcePort")}
|
||||
</label>
|
||||
<Input
|
||||
className="h-7 text-xs [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
|
||||
type="number"
|
||||
value={tun.sourcePort}
|
||||
onChange={(e) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = {
|
||||
...updated[i],
|
||||
sourcePort: Number(e.target.value),
|
||||
};
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.maxRetries")}
|
||||
</label>
|
||||
<Input
|
||||
className="h-7 text-xs [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
|
||||
type="number"
|
||||
value={tun.maxRetries}
|
||||
onChange={(e) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = {
|
||||
...updated[i],
|
||||
maxRetries: Number(e.target.value),
|
||||
};
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col gap-1">
|
||||
<label className="text-[10px] font-bold text-muted-foreground">
|
||||
{t("hosts.retryIntervalS")}
|
||||
</label>
|
||||
<Input
|
||||
className="h-7 text-xs [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
|
||||
type="number"
|
||||
value={tun.retryInterval}
|
||||
onChange={(e) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = {
|
||||
...updated[i],
|
||||
retryInterval: Number(e.target.value),
|
||||
};
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<SettingRow
|
||||
label={t("hosts.autoStartLabel")}
|
||||
description={t("hosts.autoStartDesc")}
|
||||
>
|
||||
<FakeSwitch
|
||||
checked={tun.autoStart}
|
||||
onChange={(v) => {
|
||||
const updated = [...form.serverTunnels];
|
||||
updated[i] = { ...updated[i], autoStart: v };
|
||||
setField("serverTunnels", updated);
|
||||
}}
|
||||
/>
|
||||
</SettingRow>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</SectionCard>
|
||||
</>
|
||||
)}
|
||||
|
||||
{(() => {
|
||||
const section = getHostEditorSection(activeTab);
|
||||
if (!section) return null;
|
||||
|
||||
@@ -221,7 +221,6 @@ export function createHostEditorForm(
|
||||
pollInterval: 60,
|
||||
nodeName: null,
|
||||
}) as Host["proxmoxStatsConfig"],
|
||||
enableTunnel: host?.enableTunnel ?? false,
|
||||
defaultPath: host?.defaultPath ?? "/",
|
||||
forceKeyboardInteractive: host?.forceKeyboardInteractive ?? false,
|
||||
inheritTerminalAppearance:
|
||||
@@ -290,7 +289,6 @@ export function createHostEditorForm(
|
||||
environmentVariables:
|
||||
host?.terminalConfig?.environmentVariables ??
|
||||
([] as { key: string; value: string }[]),
|
||||
serverTunnels: host?.serverTunnels ?? ([] as Host["serverTunnels"]),
|
||||
jumpHosts: host?.jumpHosts ?? ([] as { hostId: string }[]),
|
||||
portKnockSequence:
|
||||
host?.portKnockSequence ??
|
||||
@@ -506,7 +504,6 @@ export function buildHostEditorPayload(
|
||||
enableTerminal: form.enableTerminal,
|
||||
enableSessionLogging: form.enableSessionLogging,
|
||||
enableCommandHistory: form.enableCommandHistory,
|
||||
enableTunnel: form.enableTunnel,
|
||||
enableFileManager: form.enableFileManager,
|
||||
scpLegacy: form.scpLegacy,
|
||||
enableDocker: form.enableDocker,
|
||||
@@ -606,7 +603,6 @@ export function buildHostEditorPayload(
|
||||
// a number, and a string id does not compare equal on Postgres/MySQL.
|
||||
jumpHosts: form.jumpHosts.map((j) => ({ hostId: Number(j.hostId) })),
|
||||
portKnockSequence: form.portKnockSequence,
|
||||
tunnelConnections: form.serverTunnels,
|
||||
quickActions: form.quickActions.map((a) => ({
|
||||
name: a.name,
|
||||
snippetId: Number(a.snippetId),
|
||||
|
||||
@@ -27,7 +27,7 @@ const GROUPS: { key: FieldGroup; label: string }[] = [
|
||||
{ key: "connection", label: "groupConnection" },
|
||||
{ key: "notes", label: "groupNotes" },
|
||||
{ key: "tags", label: "groupTags" },
|
||||
{ key: "tunnels", label: "groupTunnels" },
|
||||
{ key: "proxy", label: "groupProxy" },
|
||||
{ key: "jumpHosts", label: "groupJumpHosts" },
|
||||
{ key: "quickActions", label: "groupQuickActions" },
|
||||
{ key: "featureFlags", label: "groupFeatureFlags" },
|
||||
@@ -38,7 +38,7 @@ const DEFAULT_GROUPS: FieldGroup[] = [
|
||||
"connection",
|
||||
"notes",
|
||||
"tags",
|
||||
"tunnels",
|
||||
"proxy",
|
||||
"jumpHosts",
|
||||
"quickActions",
|
||||
"featureFlags",
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
/* eslint-disable react-refresh/only-export-components */
|
||||
import { useEffect, useRef, type ComponentType, type ReactNode } from "react";
|
||||
import {
|
||||
KeyRound,
|
||||
Network,
|
||||
Settings,
|
||||
SquareTerminal,
|
||||
Terminal,
|
||||
} from "lucide-react";
|
||||
import { KeyRound, Settings, SquareTerminal, Terminal } from "lucide-react";
|
||||
import { byOrderThenId, createRegistry } from "@/lib/registry";
|
||||
|
||||
/** Core host editor tabs. Plugins add theirs through registerHostEditorSection. */
|
||||
export type CoreHostTabId = "general" | "ssh" | "terminal" | "tunnels";
|
||||
export type CoreHostTabId = "general" | "ssh" | "terminal";
|
||||
export type HostTabId = CoreHostTabId | (string & {});
|
||||
export type CredentialTabId = "general" | "auth";
|
||||
|
||||
@@ -66,7 +60,7 @@ export const hostEditorSectionList = sections.list;
|
||||
export const useHostEditorSections = sections.useList;
|
||||
export const resetHostEditorSections = sections.reset;
|
||||
|
||||
const CORE_SSH_GROUP = new Set<string>(["ssh", "terminal", "tunnels"]);
|
||||
const CORE_SSH_GROUP = new Set<string>(["ssh", "terminal"]);
|
||||
|
||||
/** Whether a tab lives in the SSH group's second strip. */
|
||||
export function isSshGroupTab(id: string): boolean {
|
||||
@@ -159,12 +153,6 @@ export function makeHostSshSubTabs(
|
||||
icon: <SquareTerminal className="size-3" />,
|
||||
order: 10,
|
||||
},
|
||||
{
|
||||
id: "tunnels",
|
||||
label: t("hosts.tabTunnels"),
|
||||
icon: <Network className="size-3" />,
|
||||
order: 20,
|
||||
},
|
||||
],
|
||||
"ssh",
|
||||
t,
|
||||
|
||||
@@ -153,7 +153,6 @@ function hostPassesFilters(host: Host, filters: FilterState): boolean {
|
||||
const ok =
|
||||
(filters.features.includes("terminal") && host.enableTerminal) ||
|
||||
(filters.features.includes("fileManager") && host.enableFileManager) ||
|
||||
(filters.features.includes("tunnel") && host.enableTunnel) ||
|
||||
(filters.features.includes("docker") && host.enableDocker);
|
||||
if (!ok) return false;
|
||||
}
|
||||
@@ -797,7 +796,6 @@ export function HostsPanel({
|
||||
[
|
||||
["terminal", "Terminal"],
|
||||
["fileManager", "FileManager"],
|
||||
["tunnel", "Tunnel"],
|
||||
["docker", "Docker"],
|
||||
] as const
|
||||
).map(([val, key]) => (
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
import { C2STunnelPresetManager } from "@/user/C2STunnelPresetManager";
|
||||
|
||||
export function PortForwardingPanel() {
|
||||
return (
|
||||
<div className="flex flex-col flex-1 min-h-0 overflow-y-auto px-2">
|
||||
<C2STunnelPresetManager />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -35,7 +35,6 @@ import type React from "react";
|
||||
import { isElectron } from "@/lib/electron";
|
||||
import { RemoteSyncPanel } from "@/settings/RemoteSyncPanel.tsx";
|
||||
import { shouldForceLocalPreferenceStorage } from "@/settings/remote-sync-state";
|
||||
import { C2STunnelPresetManager } from "@/user/C2STunnelPresetManager";
|
||||
import { Button } from "@/components/button";
|
||||
import { Input } from "@/components/input";
|
||||
import { VersionBadge } from "@/components/version-badge";
|
||||
@@ -48,7 +47,6 @@ import {
|
||||
DialogFooter,
|
||||
} from "@/components/dialog";
|
||||
import {
|
||||
Activity,
|
||||
AlertCircle,
|
||||
CheckCircle2,
|
||||
ChevronDown,
|
||||
@@ -92,13 +90,7 @@ import { clearLocalAdaptivePreferences } from "@/lib/local-adaptive-preferences"
|
||||
import { ConnectionDefaultsSettings } from "./ConnectionDefaultsSettings";
|
||||
|
||||
type UserProfileSection =
|
||||
| "account"
|
||||
| "interface"
|
||||
| "appearance"
|
||||
| "security"
|
||||
| "api-keys"
|
||||
| "data"
|
||||
| "c2s-tunnels";
|
||||
"account" | "interface" | "appearance" | "security" | "api-keys" | "data";
|
||||
|
||||
const THEMES: { id: ThemeId; preview: string }[] = [
|
||||
{ id: "system", preview: "auto" },
|
||||
@@ -2763,18 +2755,6 @@ export function UserProfilePanel({
|
||||
</div>
|
||||
</AccordionSection>
|
||||
|
||||
{isElectron() && (
|
||||
<AccordionSection
|
||||
id="c2s-tunnels"
|
||||
label={t("newUi.sidebar.userProfile.sectionC2sTunnels")}
|
||||
icon={<Activity className="size-3.5" />}
|
||||
open={openSections.has("c2s-tunnels")}
|
||||
onToggle={() => toggle("c2s-tunnels")}
|
||||
>
|
||||
<C2STunnelPresetManager />
|
||||
</AccordionSection>
|
||||
)}
|
||||
|
||||
{/* Delete account dialog */}
|
||||
<Dialog
|
||||
open={showDeleteConfirm}
|
||||
|
||||
@@ -2,7 +2,7 @@ export type FieldGroup =
|
||||
| "connection"
|
||||
| "notes"
|
||||
| "tags"
|
||||
| "tunnels"
|
||||
| "proxy"
|
||||
| "jumpHosts"
|
||||
| "quickActions"
|
||||
| "featureFlags"
|
||||
@@ -29,8 +29,7 @@ export const FIELD_GROUP_KEYS: Record<FieldGroup, string[]> = {
|
||||
],
|
||||
notes: ["notes"],
|
||||
tags: ["tags", "pin"],
|
||||
tunnels: [
|
||||
"tunnelConnections",
|
||||
proxy: [
|
||||
"useSocks5",
|
||||
"socks5Host",
|
||||
"socks5Port",
|
||||
@@ -44,7 +43,6 @@ export const FIELD_GROUP_KEYS: Record<FieldGroup, string[]> = {
|
||||
"enableCommandHistory",
|
||||
"enableTerminalToolbar",
|
||||
"enableAiAssistant",
|
||||
"enableTunnel",
|
||||
"enableFileManager",
|
||||
"enableDocker",
|
||||
"enableWebUi",
|
||||
|
||||
@@ -5,7 +5,6 @@ import {
|
||||
Hammer,
|
||||
KeyRound,
|
||||
LayoutPanelLeft,
|
||||
Network,
|
||||
Plug,
|
||||
ScrollText,
|
||||
Server,
|
||||
@@ -80,13 +79,6 @@ export const RAIL_ITEMS: RailItemDef[] = [
|
||||
labelKey: "nav.credentials",
|
||||
separatorAfter: true,
|
||||
},
|
||||
{
|
||||
id: "port-forwarding",
|
||||
icon: Network,
|
||||
labelKey: "nav.portForwarding",
|
||||
electronOnly: true,
|
||||
separatorAfter: true,
|
||||
},
|
||||
{
|
||||
id: "termix-id",
|
||||
icon: Fingerprint,
|
||||
|
||||
@@ -15,7 +15,6 @@ import {
|
||||
Link,
|
||||
MemoryStick,
|
||||
MoreHorizontal,
|
||||
Network,
|
||||
Pencil,
|
||||
Pin,
|
||||
Share2,
|
||||
@@ -125,13 +124,6 @@ export function getSshActions(host: Host): {
|
||||
order: number;
|
||||
}[] {
|
||||
return [
|
||||
host.enableSsh &&
|
||||
host.enableTunnel && {
|
||||
type: "tunnel" as TabType,
|
||||
icon: Network,
|
||||
label: "Tunnel",
|
||||
order: 40,
|
||||
},
|
||||
// --- tmux-monitor --- opt-in per host, off by default
|
||||
host.enableSsh &&
|
||||
host.enableTerminal &&
|
||||
@@ -806,20 +798,6 @@ export function HostItem({
|
||||
{t("hosts.copyLink")}
|
||||
</DropdownMenuSubTrigger>
|
||||
<DropdownMenuSubContent>
|
||||
{host.enableSsh && host.enableTunnel && (
|
||||
<DropdownMenuItem
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
writeClipboardText(
|
||||
`${window.location.origin}?view=tunnel&hostId=${host.id}`,
|
||||
);
|
||||
toast.success(t("hosts.tunnelUrlCopied"));
|
||||
}}
|
||||
>
|
||||
<Network className="size-3.5 mr-2" />
|
||||
{t("hosts.copyTunnelUrlAction")}
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{host.enableSsh &&
|
||||
host.enableTerminal &&
|
||||
host.enableTmuxMonitor && (
|
||||
|
||||
@@ -17,7 +17,6 @@ import {
|
||||
FolderOpen,
|
||||
FolderSearch,
|
||||
Loader2,
|
||||
Network,
|
||||
Plus,
|
||||
Server,
|
||||
Terminal,
|
||||
@@ -1169,18 +1168,6 @@ export function SidebarTree({
|
||||
value: false,
|
||||
icon: FolderSearch,
|
||||
},
|
||||
{
|
||||
labelKey: "hosts.enableTunnelsFeature",
|
||||
field: "enableTunnel",
|
||||
value: true,
|
||||
icon: Network,
|
||||
},
|
||||
{
|
||||
labelKey: "hosts.disableTunnelsFeature",
|
||||
field: "enableTunnel",
|
||||
value: false,
|
||||
icon: Network,
|
||||
},
|
||||
{
|
||||
labelKey: "hosts.enableDockerFeature",
|
||||
field: "enableDocker",
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
import { beforeEach, expect, it, vi } from "vitest";
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
local: vi.fn(),
|
||||
remote: vi.fn(),
|
||||
stream: vi.fn(),
|
||||
poll: vi.fn(),
|
||||
}));
|
||||
vi.mock("@/main-axios", () => ({
|
||||
authApi: {},
|
||||
handleApiError: (error: unknown) => {
|
||||
throw error;
|
||||
},
|
||||
tunnelApi: {
|
||||
get: mocks.local,
|
||||
defaults: { baseURL: "http://localhost/ssh" },
|
||||
},
|
||||
getRemoteTunnelApi: () => ({ get: mocks.remote }),
|
||||
isElectron: () => true,
|
||||
}));
|
||||
vi.mock("../../api/sse-stream", () => ({
|
||||
streamServerSentEvents: mocks.stream,
|
||||
}));
|
||||
vi.mock("@/lib/adaptive-polling", () => ({ runAdaptivePolling: mocks.poll }));
|
||||
import {
|
||||
getTunnelStatuses,
|
||||
subscribeTunnelStatuses,
|
||||
} from "../../api/tunnel-api";
|
||||
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
Object.defineProperty(window, "electronAPI", {
|
||||
configurable: true,
|
||||
value: {
|
||||
invoke: vi
|
||||
.fn()
|
||||
.mockResolvedValue({ serverUrl: "https://remote.example" }),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it("keeps local connected state when a remote tunnel with the same name is disconnected", async () => {
|
||||
mocks.local.mockResolvedValue({ data: { shared: { status: "connected" } } });
|
||||
mocks.remote.mockResolvedValue({
|
||||
data: {
|
||||
shared: { status: "disconnected" },
|
||||
remoteOnly: { status: "connected" },
|
||||
},
|
||||
});
|
||||
expect(await getTunnelStatuses()).toEqual({
|
||||
shared: { status: "connected" },
|
||||
remoteOnly: { status: "connected" },
|
||||
});
|
||||
});
|
||||
|
||||
it("keeps local state through remote polling and subsequent local SSE updates", async () => {
|
||||
let deliver: (event: { event: string; data: string }) => void = () => {};
|
||||
mocks.stream.mockImplementation((_url, _options, callback) => {
|
||||
deliver = callback;
|
||||
return new Promise(() => {});
|
||||
});
|
||||
let poll: () => Promise<boolean> = async () => false;
|
||||
mocks.poll.mockImplementation((callback) => {
|
||||
poll = callback;
|
||||
return vi.fn();
|
||||
});
|
||||
mocks.remote.mockResolvedValue({
|
||||
data: { shared: { status: "disconnected" } },
|
||||
});
|
||||
const onStatuses = vi.fn();
|
||||
const stop = subscribeTunnelStatuses(onStatuses);
|
||||
await vi.waitFor(() => expect(mocks.poll).toHaveBeenCalled());
|
||||
deliver({
|
||||
event: "statuses",
|
||||
data: JSON.stringify({ shared: { status: "connected" } }),
|
||||
});
|
||||
await poll();
|
||||
expect(onStatuses).toHaveBeenLastCalledWith({
|
||||
shared: { status: "connected" },
|
||||
});
|
||||
deliver({
|
||||
event: "statuses",
|
||||
data: JSON.stringify({ shared: { status: "disconnected" } }),
|
||||
});
|
||||
expect(onStatuses).toHaveBeenLastCalledWith({
|
||||
shared: { status: "disconnected" },
|
||||
});
|
||||
stop();
|
||||
});
|
||||
@@ -1,62 +0,0 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import {
|
||||
getTunnelTypeForMode,
|
||||
getTunnelPortLabels,
|
||||
getTunnelModeDescription,
|
||||
} from "../../../features/tunnel/tunnel-form-utils.js";
|
||||
|
||||
// A fake translate that echoes the key plus any interpolation args so we can
|
||||
// assert which translation key + payload the helpers chose.
|
||||
const t = (key: string, opts?: Record<string, string | number>) =>
|
||||
opts ? `${key}:${JSON.stringify(opts)}` : key;
|
||||
|
||||
describe("getTunnelTypeForMode", () => {
|
||||
it("maps remote to remote and everything else to local", () => {
|
||||
expect(getTunnelTypeForMode("remote")).toBe("remote");
|
||||
expect(getTunnelTypeForMode("local")).toBe("local");
|
||||
expect(getTunnelTypeForMode("dynamic")).toBe("local");
|
||||
});
|
||||
});
|
||||
|
||||
describe("getTunnelPortLabels", () => {
|
||||
it("labels client local mode source/endpoint ports", () => {
|
||||
const labels = getTunnelPortLabels("client", "local", t);
|
||||
expect(labels.sourcePortLabel).toBe("tunnels.localPort");
|
||||
expect(labels.endpointPortLabel).toBe("tunnels.destinationPort");
|
||||
});
|
||||
|
||||
it("swaps labels for client remote mode", () => {
|
||||
const labels = getTunnelPortLabels("client", "remote", t);
|
||||
expect(labels.sourcePortLabel).toBe("tunnels.remotePort");
|
||||
expect(labels.endpointPortLabel).toBe("tunnels.localPort");
|
||||
});
|
||||
|
||||
it("uses host/endpoint labels in server scope", () => {
|
||||
const labels = getTunnelPortLabels("server", "local", t);
|
||||
expect(labels.sourcePortLabel).toBe("tunnels.currentHostPort");
|
||||
expect(labels.endpointPortLabel).toBe("tunnels.endpointPort");
|
||||
});
|
||||
});
|
||||
|
||||
describe("getTunnelModeDescription", () => {
|
||||
const ports = { sourcePort: 8080, endpointPort: 9090 };
|
||||
|
||||
it("selects the client dynamic description with only the source port", () => {
|
||||
const desc = getTunnelModeDescription("client", "dynamic", ports, t);
|
||||
expect(desc).toContain("tunnels.forwardDescriptionClientDynamic");
|
||||
expect(desc).toContain("8080");
|
||||
expect(desc).not.toContain("9090");
|
||||
});
|
||||
|
||||
it("selects the client local description with both ports", () => {
|
||||
const desc = getTunnelModeDescription("client", "local", ports, t);
|
||||
expect(desc).toContain("tunnels.forwardDescriptionClientLocal");
|
||||
expect(desc).toContain("8080");
|
||||
expect(desc).toContain("9090");
|
||||
});
|
||||
|
||||
it("selects the server remote description", () => {
|
||||
const desc = getTunnelModeDescription("server", "remote", ports, t);
|
||||
expect(desc).toContain("tunnels.forwardDescriptionServerRemote");
|
||||
});
|
||||
});
|
||||
@@ -25,9 +25,6 @@ vi.mock("react-i18next", () => ({
|
||||
vi.mock("@/settings/RemoteSyncPanel.tsx", () => ({
|
||||
RemoteSyncPanel: () => null,
|
||||
}));
|
||||
vi.mock("@/user/C2STunnelPresetManager", () => ({
|
||||
C2STunnelPresetManager: () => null,
|
||||
}));
|
||||
vi.mock("@/i18n/i18n", () => ({
|
||||
changeAppLanguage: vi.fn(),
|
||||
normalizeLanguageCode: (code: string) => code,
|
||||
|
||||
@@ -12,7 +12,7 @@ const ALL_GROUPS = new Set<FieldGroup>([
|
||||
"connection",
|
||||
"notes",
|
||||
"tags",
|
||||
"tunnels",
|
||||
"proxy",
|
||||
"jumpHosts",
|
||||
"quickActions",
|
||||
"featureFlags",
|
||||
|
||||
@@ -48,11 +48,11 @@ describe("RAIL_ITEMS", () => {
|
||||
// Guards against a destination silently disappearing now that the rail,
|
||||
// the settings toggles, the sidebar titles and the mobile bar all read
|
||||
// from this one list.
|
||||
// "sftp" moved to the file-manager plugin's own registerRailItem.
|
||||
// "sftp" moved to the file-manager plugin's own registerRailItem, and
|
||||
// "port-forwarding" to the tunnels plugin's.
|
||||
expect(RAIL_ITEMS.map((item) => item.id)).toEqual([
|
||||
"hosts",
|
||||
"credentials",
|
||||
"port-forwarding",
|
||||
"termix-id",
|
||||
"connections",
|
||||
"collab",
|
||||
|
||||
@@ -60,6 +60,7 @@ const baseHost: Host = {
|
||||
enableTerminal: true,
|
||||
enableCommandHistory: true,
|
||||
enableTunnel: true,
|
||||
enableTmuxMonitor: true,
|
||||
enableFileManager: true,
|
||||
enableDocker: true,
|
||||
enableRdp: true,
|
||||
@@ -219,16 +220,16 @@ describe("HostItem density parity", () => {
|
||||
|
||||
it("learns repeated local actions and preloads the preferred host tool", () => {
|
||||
renderHostItem("comfortable");
|
||||
const tunnelButton = screen.getByTitle("Tunnel");
|
||||
fireEvent.click(tunnelButton);
|
||||
fireEvent.click(tunnelButton);
|
||||
fireEvent.click(tunnelButton);
|
||||
const tmuxButton = screen.getByTitle("Tmux Monitor");
|
||||
fireEvent.click(tmuxButton);
|
||||
fireEvent.click(tmuxButton);
|
||||
fireEvent.click(tmuxButton);
|
||||
|
||||
const hostRow = screen.getByText("web-01").closest(".cursor-pointer");
|
||||
expect(hostRow).toBeTruthy();
|
||||
fireEvent.pointerEnter(hostRow!);
|
||||
|
||||
expect(preloadTabSurfaceMock).toHaveBeenCalledWith("terminal");
|
||||
expect(preloadTabSurfaceMock).toHaveBeenCalledWith("tunnel");
|
||||
expect(preloadTabSurfaceMock).toHaveBeenCalledWith("tmux_monitor");
|
||||
});
|
||||
});
|
||||
@@ -1,151 +0,0 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
normalizeClientTunnel,
|
||||
stripClientTunnelDiagnostics,
|
||||
type ClientTunnel,
|
||||
} from "../../user/c2s-tunnel-config-utils.js";
|
||||
|
||||
describe("C2STunnelPresetManager tunnel normalization", () => {
|
||||
it("preserves explicit local and remote address fields in saved config", () => {
|
||||
const tunnel = normalizeClientTunnel({
|
||||
scope: "c2s",
|
||||
mode: "local",
|
||||
tunnelType: "local",
|
||||
localAddress: " 127.0.0.2 ",
|
||||
remoteAddress: " 10.10.0.25 ",
|
||||
sourceHostId: 42,
|
||||
sourceHostSyncId: "host-sync-42",
|
||||
sourcePort: 8080,
|
||||
endpointPort: 5432,
|
||||
maxRetries: 3,
|
||||
retryInterval: 10,
|
||||
autoStart: true,
|
||||
});
|
||||
|
||||
const saved = stripClientTunnelDiagnostics(tunnel);
|
||||
|
||||
expect(saved).toMatchObject({
|
||||
localAddress: "127.0.0.2",
|
||||
remoteAddress: "10.10.0.25",
|
||||
bindHost: "127.0.0.2",
|
||||
targetHost: "10.10.0.25",
|
||||
sourceHostId: 42,
|
||||
sourceHostSyncId: "host-sync-42",
|
||||
sourcePort: 8080,
|
||||
endpointPort: 5432,
|
||||
});
|
||||
});
|
||||
|
||||
it("preserves source host sync identity for cross-device C2S presets", () => {
|
||||
const tunnel = normalizeClientTunnel({
|
||||
scope: "c2s",
|
||||
mode: "local",
|
||||
tunnelType: "local",
|
||||
localAddress: "127.0.0.1",
|
||||
remoteAddress: "10.0.0.25",
|
||||
sourceHostId: 5,
|
||||
sourceHostSyncId: "shared-host-sync-id",
|
||||
sourcePort: 8080,
|
||||
endpointPort: 80,
|
||||
maxRetries: 3,
|
||||
retryInterval: 10,
|
||||
autoStart: false,
|
||||
});
|
||||
|
||||
const saved = stripClientTunnelDiagnostics(tunnel);
|
||||
|
||||
expect(saved).toMatchObject({
|
||||
sourceHostId: 5,
|
||||
sourceHostSyncId: "shared-host-sync-id",
|
||||
});
|
||||
});
|
||||
|
||||
it("normalizes legacy bindHost and targetHost configs into address fields", () => {
|
||||
const tunnel = normalizeClientTunnel({
|
||||
scope: "c2s",
|
||||
mode: "local",
|
||||
tunnelType: "local",
|
||||
bindHost: "127.0.0.3",
|
||||
targetHost: "172.16.1.50",
|
||||
sourceHostId: 7,
|
||||
sourcePort: 9000,
|
||||
endpointPort: 9443,
|
||||
maxRetries: 1,
|
||||
retryInterval: 5,
|
||||
autoStart: false,
|
||||
});
|
||||
|
||||
expect(tunnel).toMatchObject({
|
||||
localAddress: "127.0.0.3",
|
||||
remoteAddress: "172.16.1.50",
|
||||
bindHost: "127.0.0.3",
|
||||
targetHost: "172.16.1.50",
|
||||
});
|
||||
});
|
||||
|
||||
it("preserves tunnel name spacing while editing", () => {
|
||||
const tunnel = normalizeClientTunnel({
|
||||
scope: "c2s",
|
||||
mode: "local",
|
||||
tunnelType: "local",
|
||||
displayName: "Axolot ",
|
||||
});
|
||||
|
||||
expect(tunnel.displayName).toBe("Axolot ");
|
||||
});
|
||||
|
||||
it("trims tunnel names only when saving", () => {
|
||||
const tunnel = normalizeClientTunnel({
|
||||
scope: "c2s",
|
||||
mode: "local",
|
||||
tunnelType: "local",
|
||||
localAddress: "127.0.0.1",
|
||||
remoteAddress: "10.0.0.10",
|
||||
sourcePort: 8080,
|
||||
endpointPort: 80,
|
||||
displayName: " Axolot MO ",
|
||||
});
|
||||
|
||||
const saved = stripClientTunnelDiagnostics(tunnel);
|
||||
|
||||
expect(saved).toMatchObject({
|
||||
displayName: "Axolot MO",
|
||||
});
|
||||
});
|
||||
|
||||
it("removes diagnostics without dropping routing fields", () => {
|
||||
const tunnel: ClientTunnel = {
|
||||
scope: "c2s",
|
||||
mode: "local",
|
||||
tunnelType: "local",
|
||||
localAddress: "127.0.0.1",
|
||||
remoteAddress: "10.0.0.10",
|
||||
bindHost: "127.0.0.1",
|
||||
targetHost: "10.0.0.10",
|
||||
sourceHostId: 1,
|
||||
sourcePort: 8080,
|
||||
endpointPort: 80,
|
||||
endpointHost: "edge",
|
||||
maxRetries: 3,
|
||||
retryInterval: 10,
|
||||
autoStart: false,
|
||||
displayName: "web",
|
||||
lastStartedAt: "2026-07-20T00:00:00.000Z",
|
||||
lastTestedAt: "2026-07-20T00:01:00.000Z",
|
||||
lastError: "previous error",
|
||||
};
|
||||
|
||||
const saved = stripClientTunnelDiagnostics(tunnel);
|
||||
|
||||
expect(saved).not.toHaveProperty("lastStartedAt");
|
||||
expect(saved).not.toHaveProperty("lastTestedAt");
|
||||
expect(saved).not.toHaveProperty("lastError");
|
||||
expect(saved).toMatchObject({
|
||||
localAddress: "127.0.0.1",
|
||||
remoteAddress: "10.0.0.10",
|
||||
sourceHostId: 1,
|
||||
sourcePort: 8080,
|
||||
endpointPort: 80,
|
||||
});
|
||||
});
|
||||
});
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,70 +0,0 @@
|
||||
import type { TunnelConnection, TunnelMode } from "@/types/index.js";
|
||||
|
||||
export type ClientTunnel = TunnelConnection & {
|
||||
localAddress: string;
|
||||
remoteAddress: string;
|
||||
bindHost: string;
|
||||
sourceHostId?: number;
|
||||
sourceHostSyncId?: string;
|
||||
sourceHostName?: string;
|
||||
displayName?: string;
|
||||
lastStartedAt?: string;
|
||||
lastTestedAt?: string;
|
||||
lastError?: string;
|
||||
};
|
||||
|
||||
export function getTunnelMode(tunnel: Partial<TunnelConnection>): TunnelMode {
|
||||
return tunnel.mode || tunnel.tunnelType || "local";
|
||||
}
|
||||
|
||||
export function normalizeClientTunnel(
|
||||
tunnel: Partial<ClientTunnel>,
|
||||
): ClientTunnel {
|
||||
const mode = getTunnelMode(tunnel);
|
||||
const metadata = tunnel as Partial<ClientTunnel>;
|
||||
const localAddress =
|
||||
tunnel.localAddress?.trim() || tunnel.bindHost?.trim() || "";
|
||||
const remoteAddress =
|
||||
tunnel.remoteAddress?.trim() || tunnel.targetHost?.trim() || "";
|
||||
|
||||
return {
|
||||
...tunnel,
|
||||
scope: "c2s",
|
||||
mode,
|
||||
tunnelType: mode === "dynamic" ? "local" : mode,
|
||||
localAddress,
|
||||
remoteAddress,
|
||||
bindHost: localAddress,
|
||||
targetHost: remoteAddress,
|
||||
sourcePort: Number(tunnel.sourcePort) || 8080,
|
||||
endpointPort: Number(tunnel.endpointPort) || 22,
|
||||
sourceHostSyncId: metadata.sourceHostSyncId,
|
||||
endpointHost: tunnel.endpointHost || tunnel.sourceHostName || "",
|
||||
maxRetries: Number(tunnel.maxRetries) || 3,
|
||||
retryInterval: Number(tunnel.retryInterval) || 10,
|
||||
autoStart: Boolean(tunnel.autoStart),
|
||||
displayName: metadata.displayName ?? "",
|
||||
lastStartedAt: metadata.lastStartedAt,
|
||||
lastTestedAt: metadata.lastTestedAt,
|
||||
lastError: metadata.lastError,
|
||||
};
|
||||
}
|
||||
|
||||
export function stripClientTunnelDiagnostics(
|
||||
tunnel: ClientTunnel,
|
||||
): TunnelConnection {
|
||||
const presetTunnel = normalizeClientTunnel(tunnel);
|
||||
const displayName = presetTunnel.displayName?.trim();
|
||||
|
||||
if (displayName) {
|
||||
presetTunnel.displayName = displayName;
|
||||
} else {
|
||||
delete presetTunnel.displayName;
|
||||
}
|
||||
|
||||
delete presetTunnel.lastStartedAt;
|
||||
delete presetTunnel.lastTestedAt;
|
||||
delete presetTunnel.lastError;
|
||||
|
||||
return presetTunnel;
|
||||
}
|
||||
Reference in new issue
Block a user