Add comprehensive Chinese internationalization support #149
@@ -246,6 +246,19 @@
|
|||||||
"enableFileManagerDesc": "Enable/disable host visibility in File Manager tab",
|
"enableFileManagerDesc": "Enable/disable host visibility in File Manager tab",
|
||||||
"autoStartDesc": "Automatically start this tunnel when the container launches",
|
"autoStartDesc": "Automatically start this tunnel when the container launches",
|
||||||
"defaultPathDesc": "Default directory when opening file manager for this host",
|
"defaultPathDesc": "Default directory when opening file manager for this host",
|
||||||
|
"tunnelForwardDescription": "This tunnel will forward traffic from port {{sourcePort}} on the source machine (current connection details in general tab) to port {{endpointPort}} on the endpoint machine.",
|
||||||
|
"endpointSshConfiguration": "Endpoint SSH Configuration",
|
||||||
|
"sourcePortDescription": "(Source refers to the Current Connection Details in the General tab)",
|
||||||
|
"autoStartContainer": "Auto Start on Container Launch",
|
||||||
|
"upload": "Upload",
|
||||||
|
"authentication": "Authentication",
|
||||||
|
"password": "Password",
|
||||||
|
"key": "Key",
|
||||||
|
"sshPrivateKey": "SSH Private Key",
|
||||||
|
"keyPassword": "Key Password",
|
||||||
|
"keyType": "Key Type",
|
||||||
|
"maxRetriesDescription": "Maximum number of retry attempts for tunnel connection.",
|
||||||
|
"retryIntervalDescription": "Time to wait between retry attempts.",
|
||||||
"otherInstallMethods": "Other installation methods:",
|
"otherInstallMethods": "Other installation methods:",
|
||||||
"sshpassOSInstructions": {
|
"sshpassOSInstructions": {
|
||||||
"centos": "CentOS/RHEL/Fedora: sudo yum install sshpass or sudo dnf install sshpass",
|
"centos": "CentOS/RHEL/Fedora: sudo yum install sshpass or sudo dnf install sshpass",
|
||||||
|
|||||||
@@ -246,6 +246,19 @@
|
|||||||
"enableFileManagerDesc": "启用/禁用在文件管理器选项卡中显示此主机",
|
"enableFileManagerDesc": "启用/禁用在文件管理器选项卡中显示此主机",
|
||||||
"autoStartDesc": "容器启动时自动启动此隧道",
|
"autoStartDesc": "容器启动时自动启动此隧道",
|
||||||
"defaultPathDesc": "打开此主机文件管理器时的默认目录",
|
"defaultPathDesc": "打开此主机文件管理器时的默认目录",
|
||||||
|
"tunnelForwardDescription": "此隧道将从源计算机(常规选项卡中的当前连接详情)的端口 {{sourcePort}} 转发流量到端点计算机的端口 {{endpointPort}}。",
|
||||||
|
"endpointSshConfiguration": "端点 SSH 配置",
|
||||||
|
"sourcePortDescription": "(源指的是常规选项卡中的当前连接详情)",
|
||||||
|
"autoStartContainer": "容器启动时自动启动",
|
||||||
|
"upload": "上传",
|
||||||
|
"authentication": "认证方式",
|
||||||
|
"password": "密码",
|
||||||
|
"key": "密钥",
|
||||||
|
"sshPrivateKey": "SSH 私钥",
|
||||||
|
"keyPassword": "密钥密码",
|
||||||
|
"keyType": "密钥类型",
|
||||||
|
"maxRetriesDescription": "隧道连接的最大重试次数。",
|
||||||
|
"retryIntervalDescription": "重试尝试之间的等待时间。",
|
||||||
"otherInstallMethods": "其他安装方法:",
|
"otherInstallMethods": "其他安装方法:",
|
||||||
"sshpassOSInstructions": {
|
"sshpassOSInstructions": {
|
||||||
"centos": "CentOS/RHEL/Fedora: sudo yum install sshpass 或 sudo dnf install sshpass",
|
"centos": "CentOS/RHEL/Fedora: sudo yum install sshpass 或 sudo dnf install sshpass",
|
||||||
|
|||||||
@@ -567,7 +567,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<FormLabel className="mb-3 mt-3 font-bold">Authentication</FormLabel>
|
<FormLabel className="mb-3 mt-3 font-bold">{t('hosts.authentication')}</FormLabel>
|
||||||
<Tabs
|
<Tabs
|
||||||
value={authTab}
|
value={authTab}
|
||||||
onValueChange={(value) => {
|
onValueChange={(value) => {
|
||||||
@@ -577,8 +577,8 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
className="flex-1 flex flex-col h-full min-h-0"
|
className="flex-1 flex flex-col h-full min-h-0"
|
||||||
>
|
>
|
||||||
<TabsList>
|
<TabsList>
|
||||||
<TabsTrigger value="password">Password</TabsTrigger>
|
<TabsTrigger value="password">{t('hosts.password')}</TabsTrigger>
|
||||||
<TabsTrigger value="key">Key</TabsTrigger>
|
<TabsTrigger value="key">{t('hosts.key')}</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
<TabsContent value="password">
|
<TabsContent value="password">
|
||||||
<FormField
|
<FormField
|
||||||
@@ -586,7 +586,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
name="password"
|
name="password"
|
||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>Password</FormLabel>
|
<FormLabel>{t('hosts.password')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input type="password" placeholder={t('placeholders.password')} {...field} />
|
<Input type="password" placeholder={t('placeholders.password')} {...field} />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
@@ -601,7 +601,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
name="key"
|
name="key"
|
||||||
render={({field}) => (
|
render={({field}) => (
|
||||||
<FormItem className="col-span-4 overflow-hidden min-w-0">
|
<FormItem className="col-span-4 overflow-hidden min-w-0">
|
||||||
<FormLabel>SSH Private Key</FormLabel>
|
<FormLabel>{t('hosts.sshPrivateKey')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<div className="relative min-w-0">
|
<div className="relative min-w-0">
|
||||||
<input
|
<input
|
||||||
@@ -634,7 +634,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
name="keyPassword"
|
name="keyPassword"
|
||||||
render={({field}) => (
|
render={({field}) => (
|
||||||
<FormItem className="col-span-8">
|
<FormItem className="col-span-8">
|
||||||
<FormLabel>Key Password</FormLabel>
|
<FormLabel>{t('hosts.keyPassword')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input
|
<Input
|
||||||
placeholder={t('placeholders.keyPassword')}
|
placeholder={t('placeholders.keyPassword')}
|
||||||
@@ -650,7 +650,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
name="keyType"
|
name="keyType"
|
||||||
render={({field}) => (
|
render={({field}) => (
|
||||||
<FormItem className="relative col-span-3">
|
<FormItem className="relative col-span-3">
|
||||||
<FormLabel>Key Type</FormLabel>
|
<FormLabel>{t('hosts.keyType')}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<div className="relative">
|
<div className="relative">
|
||||||
<Button
|
<Button
|
||||||
@@ -796,9 +796,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
render={({field: sourcePortField}) => (
|
render={({field: sourcePortField}) => (
|
||||||
<FormItem className="col-span-4">
|
<FormItem className="col-span-4">
|
||||||
<FormLabel>{t('hosts.sourcePort')}
|
<FormLabel>{t('hosts.sourcePort')}
|
||||||
(Source refers to the Current
|
{t('hosts.sourcePortDescription')}</FormLabel>
|
||||||
Connection Details in the
|
|
||||||
General tab)</FormLabel>
|
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input
|
<Input
|
||||||
placeholder="22" {...sourcePortField} />
|
placeholder="22" {...sourcePortField} />
|
||||||
@@ -826,8 +824,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
render={({field: endpointHostField}) => (
|
render={({field: endpointHostField}) => (
|
||||||
<FormItem
|
<FormItem
|
||||||
className="col-span-4 relative">
|
className="col-span-4 relative">
|
||||||
<FormLabel>Endpoint SSH
|
<FormLabel>{t('hosts.endpointSshConfiguration')}</FormLabel>
|
||||||
Configuration</FormLabel>
|
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input
|
<Input
|
||||||
ref={(el) => {
|
ref={(el) => {
|
||||||
@@ -880,12 +877,10 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p className="text-sm text-muted-foreground mt-2">
|
<p className="text-sm text-muted-foreground mt-2">
|
||||||
This tunnel will forward traffic from
|
{t('hosts.tunnelForwardDescription', {
|
||||||
port {form.watch(`tunnelConnections.${index}.sourcePort`) || '22'} on
|
sourcePort: form.watch(`tunnelConnections.${index}.sourcePort`) || '22',
|
||||||
the source machine (current connection details
|
endpointPort: form.watch(`tunnelConnections.${index}.endpointPort`) || '224'
|
||||||
in general tab) to
|
})}
|
||||||
port {form.watch(`tunnelConnections.${index}.endpointPort`) || '224'} on
|
|
||||||
the endpoint machine.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="grid grid-cols-12 gap-4 mt-4">
|
<div className="grid grid-cols-12 gap-4 mt-4">
|
||||||
@@ -900,8 +895,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
placeholder="3" {...maxRetriesField} />
|
placeholder="3" {...maxRetriesField} />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
Maximum number of retry attempts
|
{t('hosts.maxRetriesDescription')}
|
||||||
for tunnel connection.
|
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
@@ -917,8 +911,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
placeholder="10" {...retryIntervalField} />
|
placeholder="10" {...retryIntervalField} />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
Time to wait between retry
|
{t('hosts.retryIntervalDescription')}
|
||||||
attempts.
|
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
@@ -928,8 +921,7 @@ export function HostManagerHostEditor({editingHost, onFormSubmit}: SSHManagerHos
|
|||||||
name={`tunnelConnections.${index}.autoStart`}
|
name={`tunnelConnections.${index}.autoStart`}
|
||||||
render={({field}) => (
|
render={({field}) => (
|
||||||
<FormItem className="col-span-4">
|
<FormItem className="col-span-4">
|
||||||
<FormLabel>Auto Start on Container
|
<FormLabel>{t('hosts.autoStartContainer')}</FormLabel>
|
||||||
Launch</FormLabel>
|
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Switch
|
<Switch
|
||||||
checked={field.value}
|
checked={field.value}
|
||||||
|
|||||||
Reference in New Issue
Block a user