feat: add some translate (#13194)

This commit is contained in:
CityFun
2026-07-03 15:59:35 +08:00
committed by GitHub
parent 1c1f3c7761
commit ec9e609f10
13 changed files with 38 additions and 50 deletions

View File

@@ -706,8 +706,6 @@ const message = {
appVersion: 'App Version',
webuiPort: 'WebUI Port',
tokenOrAuth: 'Token/Username & Password',
dashboardUsername: 'Dashboard Username',
dashboardPassword: 'Dashboard Password',
allowedOrigins: 'Access Addresses',
allowedOriginsRequired: 'Enter at least one access address',
allowedOriginsInvalid: 'Use the format http(s)://host-or-ip[:port]',
@@ -864,7 +862,7 @@ const message = {
'Click to start the QR login task. The QR code will appear in the task log, and the container will restart automatically after the scan succeeds.',
channelAutoRestartHelper: 'Saving will automatically restart the container so the changes take effect.',
dashboardAuthAutoRebuildHelper:
'Saving the Dashboard username or password will automatically rebuild the container so the changes take effect.',
'Saving the username or password will automatically rebuild the container so the changes take effect.',
channelDeleteConfirm: 'Delete the {0} channel configuration?',
customProviderHelper: 'Custom model providers do not validate whether the account is available.',
apiTypeBaseURLHelper: 'This type sends requests to {0}. Recommended Base URL: {1}',

View File

@@ -708,8 +708,6 @@ const message = {
appVersion: 'Versión de la app',
webuiPort: 'Puerto WebUI',
tokenOrAuth: 'Token/Usuario y contraseña',
dashboardUsername: 'Usuario del Dashboard',
dashboardPassword: 'Contraseña del Dashboard',
allowedOrigins: 'Direcciones de acceso',
allowedOriginsRequired: 'Introduce al menos una dirección de acceso',
allowedOriginsInvalid: 'Usa el formato http(s)://host-o-ip[:puerto]',
@@ -871,7 +869,7 @@ const message = {
channelAutoRestartHelper:
'Al guardar, el contenedor se reiniciará automáticamente para que la configuración surta efecto.',
dashboardAuthAutoRebuildHelper:
'Al guardar el usuario o la contraseña del Dashboard, el contenedor se reconstruirá automáticamente para que los cambios surtan efecto.',
'Al guardar el usuario o la contraseña, el contenedor se reconstruirá automáticamente para que los cambios surtan efecto.',
channelDeleteConfirm: '¿Eliminar la configuración del canal {0}?',
customProviderHelper: 'En el proveedor de modelo personalizado no se valida si la cuenta está disponible',
apiTypeBaseURLHelper: 'Este tipo envía solicitudes a {0}. Base URL recomendada: {1}',

View File

@@ -703,8 +703,6 @@ const message = {
appVersion: 'アプリバージョン',
webuiPort: 'WebUI ポート',
tokenOrAuth: 'Token/ユーザー名・パスワード',
dashboardUsername: 'Dashboard ユーザー名',
dashboardPassword: 'Dashboard パスワード',
allowedOrigins: 'アクセスアドレス',
allowedOriginsRequired: '少なくとも 1 つのアクセスアドレスを入力してください',
allowedOriginsInvalid: 'http(s)://host-or-ip[:port] の形式で入力してください',
@@ -863,7 +861,7 @@ const message = {
'クリックして QR ログインタスクを開始します。QR コードはタスクログに表示され、スキャン成功後にコンテナが自動で再起動されます。',
channelAutoRestartHelper: '保存後、設定を反映するためにコンテナが自動で再起動されます。',
dashboardAuthAutoRebuildHelper:
'Dashboard のユーザー名またはパスワードを保存すると、変更を反映するためにコンテナが自動で再作成されます。',
'ユーザー名またはパスワードを保存すると、変更を反映するためにコンテナが自動で再作成されます。',
channelDeleteConfirm: '{0} チャンネルの設定を削除しますか?',
customProviderHelper: 'カスタムモデルプロバイダーでは、アカウントの有効性を検証しません',
apiTypeBaseURLHelper: 'このタイプは最終的に {0} にリクエストします。推奨 Base URL: {1}',

View File

@@ -695,8 +695,6 @@ const message = {
appVersion: '앱 버전',
webuiPort: 'WebUI 포트',
tokenOrAuth: 'Token/사용자 이름 및 비밀번호',
dashboardUsername: 'Dashboard 사용자 이름',
dashboardPassword: 'Dashboard 비밀번호',
allowedOrigins: '접속 주소',
allowedOriginsRequired: '접속 주소를 하나 이상 입력하세요',
allowedOriginsInvalid: 'http(s)://host-or-ip[:port] 형식으로 입력하세요',
@@ -848,7 +846,7 @@ const message = {
'클릭하여 QR 로그인 작업을 시작하세요. QR 코드는 작업 로그에 표시되며 스캔이 완료되면 컨테이너가 자동으로 재시작됩니다.',
channelAutoRestartHelper: '저장하면 설정 적용을 위해 컨테이너가 자동으로 재시작됩니다.',
dashboardAuthAutoRebuildHelper:
'Dashboard 사용자 이름 또는 비밀번호를 저장하면 변경 사항 적용을 위해 컨테이너가 자동으로 재생성됩니다.',
'사용자 이름 또는 비밀번호를 저장하면 변경 사항 적용을 위해 컨테이너가 자동으로 재생성됩니다.',
channelDeleteConfirm: '{0} 채널 구성을 삭제하시겠습니까?',
customProviderHelper: '사용자 정의 모델 공급자는 계정 사용 가능 여부를 검증하지 않습니다',
apiTypeBaseURLHelper: '이 유형은 최종적으로 {0}에 요청합니다. 권장 Base URL: {1}',

View File

@@ -710,8 +710,6 @@ const message = {
appVersion: 'Versi aplikasi',
webuiPort: 'Port WebUI',
tokenOrAuth: 'Token/Nama pengguna & Kata laluan',
dashboardUsername: 'Nama pengguna Dashboard',
dashboardPassword: 'Kata laluan Dashboard',
allowedOrigins: 'Alamat akses',
allowedOriginsRequired: 'Masukkan sekurang-kurangnya satu alamat akses',
allowedOriginsInvalid: 'Gunakan format http(s)://hos-atau-ip[:port]',
@@ -870,7 +868,7 @@ const message = {
channelAutoRestartHelper:
'Menyimpan akan memulakan semula bekas secara automatik supaya konfigurasi berkuat kuasa.',
dashboardAuthAutoRebuildHelper:
'Menyimpan nama pengguna atau kata laluan Dashboard akan membina semula bekas secara automatik supaya perubahan berkuat kuasa.',
'Menyimpan nama pengguna atau kata laluan akan membina semula bekas secara automatik supaya perubahan berkuat kuasa.',
channelDeleteConfirm: 'Padam konfigurasi saluran {0}?',
customProviderHelper: 'Penyedia model tersuai tidak mengesahkan sama ada akaun boleh digunakan',
apiTypeBaseURLHelper: 'Jenis ini menghantar permintaan ke {0}. Base URL yang disyorkan: {1}',

View File

@@ -704,8 +704,6 @@ const message = {
appVersion: 'Versão do app',
webuiPort: 'Porta WebUI',
tokenOrAuth: 'Token/Usuário e senha',
dashboardUsername: 'Usuário do Dashboard',
dashboardPassword: 'Senha do Dashboard',
allowedOrigins: 'Endereços de acesso',
allowedOriginsRequired: 'Informe pelo menos um endereço de acesso',
allowedOriginsInvalid: 'Use o formato http(s)://host-ou-ip[:porta]',
@@ -866,7 +864,7 @@ const message = {
channelAutoRestartHelper:
'Ao salvar, o contêiner será reiniciado automaticamente para que a configuração entre em vigor.',
dashboardAuthAutoRebuildHelper:
'Ao salvar o usuário ou a senha do Dashboard, o contêiner será reconstruído automaticamente para que as alterações entrem em vigor.',
'Ao salvar o usuário ou a senha, o contêiner será reconstruído automaticamente para que as alterações entrem em vigor.',
channelDeleteConfirm: 'Excluir a configuração do canal {0}?',
customProviderHelper: 'Provedores de modelo personalizados não validam se a conta está disponível',
apiTypeBaseURLHelper: 'Este tipo envia requisições para {0}. Base URL recomendada: {1}',

View File

@@ -702,8 +702,6 @@ const message = {
appVersion: 'Версия приложения',
webuiPort: 'Порт WebUI',
tokenOrAuth: 'Token/имя пользователя и пароль',
dashboardUsername: 'Имя пользователя Dashboard',
dashboardPassword: 'Пароль Dashboard',
allowedOrigins: 'Адреса доступа',
allowedOriginsRequired: 'Укажите хотя бы один адрес доступа',
allowedOriginsInvalid: 'Используйте формат http(s)://host-or-ip[:port]',
@@ -861,7 +859,7 @@ const message = {
channelAutoRestartHelper:
'После сохранения контейнер будет автоматически перезапущен, чтобы настройки вступили в силу.',
dashboardAuthAutoRebuildHelper:
'После сохранения имени пользователя или пароля Dashboard контейнер будет автоматически пересобран, чтобы изменения вступили в силу.',
'После сохранения имени пользователя или пароля контейнер будет автоматически пересобран, чтобы изменения вступили в силу.',
channelDeleteConfirm: 'Удалить конфигурацию канала {0}?',
customProviderHelper: 'Для пользовательского провайдера модели доступность учетной записи не проверяется',
apiTypeBaseURLHelper: 'Этот тип отправляет запросы в {0}. Рекомендуемый Base URL: {1}',

View File

@@ -706,8 +706,6 @@ const message = {
appVersion: 'Uygulama sürümü',
webuiPort: 'WebUI portu',
tokenOrAuth: 'Token/Kullanıcı adı ve parola',
dashboardUsername: 'Dashboard kullanıcı adı',
dashboardPassword: 'Dashboard parolası',
allowedOrigins: 'Erişim adresleri',
allowedOriginsRequired: 'En az bir erişim adresi girin',
allowedOriginsInvalid: 'http(s)://host-veya-ip[:port] biçimini kullanın',
@@ -869,7 +867,7 @@ const message = {
channelAutoRestartHelper:
'Kaydettiğinizde ayarların etkili olması için konteyner otomatik olarak yeniden başlatılır.',
dashboardAuthAutoRebuildHelper:
'Dashboard kullanıcı adı veya parolası kaydedildiğinde değişikliklerin etkili olması için konteyner otomatik olarak yeniden oluşturulur.',
'Kullanıcı adı veya parola kaydedildiğinde değişikliklerin etkili olması için konteyner otomatik olarak yeniden oluşturulur.',
channelDeleteConfirm: '{0} kanal yapılandırması silinsin mi?',
customProviderHelper: 'Özel model sağlayıcısında hesabın kullanılabilirliği doğrulanmaz',
apiTypeBaseURLHelper: 'Bu tür istekleri {0} yoluna gönderir. Önerilen Base URL: {1}',

View File

@@ -672,8 +672,6 @@ const message = {
appVersion: '應用版本',
webuiPort: 'WebUI 埠',
tokenOrAuth: 'Token/使用者名稱密碼',
dashboardUsername: 'Dashboard 使用者名稱',
dashboardPassword: 'Dashboard 密碼',
allowedOrigins: '訪問地址',
allowedOriginsRequired: '請至少填寫一個訪問地址',
allowedOriginsInvalid: '訪問地址格式錯誤,請輸入 http(s)://網域或IP[:埠]',
@@ -813,7 +811,7 @@ const message = {
scanConnect: '掃碼對接',
scanConnectHelper: '點擊後將在任務日誌中顯示 QR Code掃碼確認成功後將自動重新啟動容器。',
channelAutoRestartHelper: '保存後將自動重新啟動容器以使設定生效。',
dashboardAuthAutoRebuildHelper: '保存 Dashboard 使用者名稱或密碼後將自動重建容器以使設定生效。',
dashboardAuthAutoRebuildHelper: '保存使用者名稱或密碼後將自動重建容器以使設定生效。',
channelDeleteConfirm: '確認刪除 {0} 頻道設定?',
customProviderHelper: '自訂模型供應商不驗證帳號是否可用',
apiTypeBaseURLHelper: '目前類型最終請求 {0}Base URL 建議填寫 {1}',

View File

@@ -672,8 +672,6 @@ const message = {
appVersion: '应用版本',
webuiPort: 'WebUI 端口',
tokenOrAuth: 'Token/用户名密码',
dashboardUsername: 'Dashboard 用户名',
dashboardPassword: 'Dashboard 密码',
allowedOrigins: '访问地址',
allowedOriginsRequired: '请至少填写一个访问地址',
allowedOriginsInvalid: '访问地址格式错误,请输入 http(s)://域名或IP[:端口]',
@@ -809,7 +807,7 @@ const message = {
scanConnect: '扫码对接',
scanConnectHelper: '点击后将在任务日志中显示二维码,扫码确认成功后将自动重启容器。',
channelAutoRestartHelper: '保存后将自动重启容器以使配置生效。',
dashboardAuthAutoRebuildHelper: '保存 Dashboard 用户名密码后将自动重建容器以使配置生效。',
dashboardAuthAutoRebuildHelper: '保存用户名密码后将自动重建容器以使配置生效。',
channelDeleteConfirm: '确认删除 {0} 频道配置?',
customProviderHelper: '自定义模型供应商不验证账号是否可用',
apiTypeBaseURLHelper: '当前类型最终请求 {0}Base URL 建议填写 {1}',

View File

@@ -23,6 +23,20 @@
<el-form-item :label="$t('aiTools.agents.webuiPort')" prop="webUIPort">
<el-input-number v-model="form.webUIPort" :min="1" :max="65535" />
</el-form-item>
<template v-if="form.agentType === 'hermes-agent'">
<el-form-item :label="$t('commons.login.username')" prop="dashboardUsername">
<el-input v-model="form.dashboardUsername" />
</el-form-item>
<el-form-item :label="$t('commons.login.password')" prop="dashboardPassword">
<div class="password-row">
<el-input v-model="form.dashboardPassword" type="password" show-password />
<CopyButton :content="form.dashboardPassword" />
<el-button type="primary" plain @click="generateDashboardPassword">
{{ $t('commons.button.random') }}
</el-button>
</div>
</el-form-item>
</template>
<el-form-item
v-if="form.agentType === 'openclaw'"
:label="$t('aiTools.agents.allowedOrigins')"
@@ -87,23 +101,6 @@
</template>
</el-input>
</el-form-item>
<template v-if="form.agentType === 'hermes-agent'">
<el-form-item :label="$t('aiTools.agents.dashboardUsername')" prop="dashboardUsername">
<el-input v-model="form.dashboardUsername" />
</el-form-item>
<el-form-item :label="$t('aiTools.agents.dashboardPassword')" prop="dashboardPassword">
<el-input v-model="form.dashboardPassword" type="password" show-password>
<template #append>
<el-space>
<CopyButton :content="form.dashboardPassword" />
<el-button link type="primary" @click="generateDashboardPassword">
{{ $t('commons.button.random') }}
</el-button>
</el-space>
</template>
</el-input>
</el-form-item>
</template>
</el-card>
<el-card class="form-card">
<AdvancedSetting :form="form" />
@@ -627,6 +624,17 @@ defineExpose({
font-size: inherit;
}
.password-row {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
}
.password-row .el-input {
flex: 1;
}
.option-row {
display: flex;
align-items: center;

View File

@@ -13,10 +13,10 @@
<el-input v-model="form.userTimezone" />
</el-form-item>
<template v-if="agentType === 'hermes-agent'">
<el-form-item :label="t('aiTools.agents.dashboardUsername')" prop="dashboardUsername">
<el-form-item :label="t('commons.login.username')" prop="dashboardUsername">
<el-input v-model="form.dashboardUsername" />
</el-form-item>
<el-form-item :label="t('aiTools.agents.dashboardPassword')" prop="dashboardPassword">
<el-form-item :label="t('commons.login.password')" prop="dashboardPassword">
<el-input v-model="form.dashboardPassword" type="password" show-password>
<template #append>
<CopyButton :content="form.dashboardPassword" />

View File

@@ -275,7 +275,7 @@
<el-checkbox
@change="random"
v-model="website.enableFtp"
:label="$t('commons.button.create')"
:label="$t('commons.button.create') + ' FTP'"
size="large"
/>
<span class="input-help">{{ $t('website.ftpHelper') }}</span>