From 67a379641f1241e8a07ea92702ad051be8b75cf1 Mon Sep 17 00:00:00 2001 From: defi-failure <159208748+defi-failure@users.noreply.github.com> Date: Fri, 31 Oct 2025 21:00:35 +0800 Subject: [PATCH] fix(agent): resolve edit modal loading race condition (#11084) * fix(agent): resolve edit modal loading race condition * fix(i18n): Auto update translations for PR #11084 --------- Co-authored-by: GitHub Action --- src/renderer/src/hooks/agents/useAgent.ts | 11 ++-- src/renderer/src/i18n/locales/zh-tw.json | 46 ++++++++-------- src/renderer/src/i18n/translate/de-de.json | 62 +++++++++++----------- src/renderer/src/i18n/translate/el-gr.json | 62 +++++++++++----------- src/renderer/src/i18n/translate/es-es.json | 62 +++++++++++----------- src/renderer/src/i18n/translate/fr-fr.json | 62 +++++++++++----------- src/renderer/src/i18n/translate/ja-jp.json | 62 +++++++++++----------- src/renderer/src/i18n/translate/pt-pt.json | 38 ++++++------- src/renderer/src/i18n/translate/ru-ru.json | 56 +++++++++---------- 9 files changed, 231 insertions(+), 230 deletions(-) diff --git a/src/renderer/src/hooks/agents/useAgent.ts b/src/renderer/src/hooks/agents/useAgent.ts index e1c682046f..9c516673bf 100644 --- a/src/renderer/src/hooks/agents/useAgent.ts +++ b/src/renderer/src/hooks/agents/useAgent.ts @@ -10,6 +10,10 @@ export const useAgent = (id: string | null) => { const client = useAgentClient() const key = id ? client.agentPaths.withId(id) : null const { apiServerConfig, apiServerRunning } = useApiServer() + + // Disable SWR fetching when server is not running by setting key to null + const swrKey = apiServerRunning && id ? key : null + const fetcher = useCallback(async () => { if (!id) { throw new Error(t('agent.get.error.null_id')) @@ -17,13 +21,10 @@ export const useAgent = (id: string | null) => { if (!apiServerConfig.enabled) { throw new Error(t('apiServer.messages.notEnabled')) } - if (!apiServerRunning) { - throw new Error(t('agent.server.error.not_running')) - } const result = await client.getAgent(id) return result - }, [apiServerConfig.enabled, apiServerRunning, client, id, t]) - const { data, error, isLoading } = useSWR(key, id ? fetcher : null) + }, [apiServerConfig.enabled, client, id, t]) + const { data, error, isLoading } = useSWR(swrKey, fetcher) return { agent: data, diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index 58174e6944..332b52586a 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -1047,7 +1047,7 @@ "clear": "清除", "close": "關閉", "collapse": "折疊", - "completed": "[to be translated]:Completed", + "completed": "已完成", "confirm": "確認", "copied": "已複製", "copy": "複製", @@ -3045,37 +3045,37 @@ }, "content": "匯出部分數據,包括聊天記錄、設定。請注意,備份過程可能需要一些時間,感謝您的耐心等候。", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", + "auto_close_tip": "將於 {{seconds}} 秒後自動關閉...", + "confirm_close_message": "檔案傳輸正在進行中。關閉將會中斷傳輸。您確定要強制關閉嗎?", + "confirm_close_title": "確認關閉", + "connected": "已連線", + "connection_failed": "連線失敗", "content": "請確保電腦和手機處於同一網路以使用區域網路傳輸。請打開 Cherry Studio App 掃描此 QR 碼。", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "初始化失敗", + "no_file": "未選擇檔案", + "no_ip": "無法取得 IP 位址", + "send_failed": "無法傳送檔案" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", + "force_close": "強制關閉", + "generating_qr": "正在生成 QR 碼...", "noZipSelected": "未選取壓縮檔案", - "scan_qr": "[to be translated]:Please scan QR code with your phone", + "scan_qr": "請使用手機掃描QR碼", "selectZip": "選擇壓縮檔案", "sendZip": "開始恢復資料", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "轉帳完成", + "connected": "已連線", + "connecting": "連線中...", + "disconnected": "已斷線", + "error": "連線錯誤", + "initializing": "正在初始化連線...", + "preparing": "正在準備傳輸...", + "sending": "傳輸中 {{progress}}%", + "waiting_qr_scan": "請掃描QR碼以連接" }, "title": "區域網路傳輸", - "transfer_progress": "[to be translated]:Transfer progress" + "transfer_progress": "傳輸進度" }, "title": "匯出手機" }, diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json index 49a68809e0..06cc53ec12 100644 --- a/src/renderer/src/i18n/translate/de-de.json +++ b/src/renderer/src/i18n/translate/de-de.json @@ -1047,7 +1047,7 @@ "clear": "Löschen", "close": "Schließen", "collapse": "Einklappen", - "completed": "[to be translated]:Completed", + "completed": "Abgeschlossen", "confirm": "Bestätigen", "copied": "Kopiert", "copy": "Kopieren", @@ -3041,43 +3041,43 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:Select backup file" + "button": "Sicherungsdatei auswählen" }, - "content": "[to be translated]:Export some data, including chat logs and settings. Please note that the backup process may take some time. Thank you for your patience.", + "content": "Exportieren Sie einige Daten, einschließlich Chat-Protokollen und Einstellungen. Bitte beachten Sie, dass der Sicherungsvorgang einige Zeit in Anspruch nehmen kann. Vielen Dank für Ihre Geduld.", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:Please ensure your computer and phone are on the same network for LAN transfer. Open the Cherry Studio App to scan this QR code.", + "auto_close_tip": "Automatisches Schließen in {{seconds}} Sekunden...", + "confirm_close_message": "Dateiübertragung läuft. Beim Schließen wird die Übertragung unterbrochen. Möchten Sie wirklich das Schließen erzwingen?", + "confirm_close_title": "Schließen bestätigen", + "connected": "Verbunden", + "connection_failed": "Verbindung fehlgeschlagen", + "content": "Bitte stelle sicher, dass sich dein Computer und dein Telefon im selben Netzwerk befinden, um eine LAN-Übertragung durchzuführen. Öffne die Cherry Studio App, um diesen QR-Code zu scannen.", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "Initialisierung fehlgeschlagen", + "no_file": "Keine Datei ausgewählt", + "no_ip": "IP-Adresse kann nicht abgerufen werden", + "send_failed": "Fehler beim Senden der Datei" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:No compressed file selected", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:Select a compressed file", - "sendZip": "[to be translated]:Begin data recovery", + "force_close": "Erzwungenes Schließen", + "generating_qr": "QR-Code wird generiert...", + "noZipSelected": "Keine komprimierte Datei ausgewählt", + "scan_qr": "Bitte scannen Sie den QR-Code mit Ihrem Telefon.", + "selectZip": "Wählen Sie eine komprimierte Datei", + "sendZip": "Datenwiederherstellung beginnen", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "Übertragung abgeschlossen", + "connected": "Verbunden", + "connecting": "Verbindung wird hergestellt...", + "disconnected": "Getrennt", + "error": "Verbindungsfehler", + "initializing": "Verbindung wird initialisiert...", + "preparing": "Übertragung wird vorbereitet...", + "sending": "Übertrage {{progress}}%", + "waiting_qr_scan": "Bitte QR-Code scannen, um zu verbinden" }, - "title": "[to be translated]:LAN transmission", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "LAN-Übertragung", + "transfer_progress": "Übertragungsfortschritt" }, - "title": "[to be translated]:Export to phone" + "title": "Auf Telefon exportieren" }, "hour_interval_one": "{{count}} Stunde", "hour_interval_other": "{{count}} Stunden", diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index 5a38b80511..fe7885030b 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -1047,7 +1047,7 @@ "clear": "Καθαρισμός", "close": "Κλείσιμο", "collapse": "Σύμπτυξη", - "completed": "[to be translated]:Completed", + "completed": "Ολοκληρώθηκε", "confirm": "Επιβεβαίωση", "copied": "Αντιγράφηκε", "copy": "Αντιγραφή", @@ -3041,43 +3041,43 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:选择备份文件" + "button": "Επιλέξτε αρχείο αντιγράφων ασφαλείας" }, - "content": "[to be translated]:导出部分数据,包括聊天记录、设置。请注意,备份过程可能需要一些时间,感谢您的耐心等待。", + "content": "Εξαγωγή μέρους των δεδομένων, συμπεριλαμβανομένων των ιστορικών συνομιλιών και των ρυθμίσεων. Σημειώστε ότι η διαδικασία δημιουργίας αντιγράφων ασφαλείας ενδέχεται να διαρκέσει κάποιο χρονικό διάστημα, ευχαριστούμε για την υπομονή σας.", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:请确保电脑和手机处于同一网络以使用局域网传输。请打开 Cherry Studio App 扫描此二维码。", + "auto_close_tip": "Αυτόματο κλείσιμο σε {{seconds}} δευτερόλεπτα...", + "confirm_close_message": "Η μεταφορά αρχείων είναι σε εξέλιξη. Το κλείσιμο θα διακόψει τη μεταφορά. Είστε σίγουροι ότι θέλετε να κλείσετε βίαια;", + "confirm_close_title": "Επιβεβαίωση Κλεισίματος", + "connected": "Συνδεδεμένος", + "connection_failed": "Η σύνδεση απέτυχε", + "content": "Βεβαιωθείτε ότι ο υπολογιστής και το κινητό βρίσκονται στο ίδιο δίκτυο για να χρησιμοποιήσετε τη μεταφορά LAN. Ανοίξτε την εφαρμογή Cherry Studio και σαρώστε αυτόν τον κωδικό QR.", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "Η αρχικοποίηση απέτυχε", + "no_file": "Κανένα αρχείο δεν επιλέχθηκε", + "no_ip": "Αδυναμία λήψης διεύθυνσης IP", + "send_failed": "Αποτυχία αποστολής αρχείου" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:未选择压缩文件", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:选择压缩文件", - "sendZip": "[to be translated]:开始恢复数据", + "force_close": "Κλείσιμο με βία", + "generating_qr": "Δημιουργία κώδικα QR...", + "noZipSelected": "Δεν επιλέχθηκε συμπιεσμένο αρχείο", + "scan_qr": "Παρακαλώ σαρώστε τον κωδικό QR με το τηλέφωνό σας", + "selectZip": "Επιλέξτε συμπιεσμένο αρχείο", + "sendZip": "Έναρξη ανάκτησης δεδομένων", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "Η μεταφορά ολοκληρώθηκε", + "connected": "Συνδεδεμένος", + "connecting": "Σύνδεση...", + "disconnected": "Αποσυνδέθηκε", + "error": "Σφάλμα σύνδεσης", + "initializing": "Αρχικοποίηση σύνδεσης...", + "preparing": "Προετοιμασία μεταφοράς...", + "sending": "Μεταφορά {{progress}}%", + "waiting_qr_scan": "Παρακαλώ σαρώστε τον κωδικό QR για σύνδεση" }, - "title": "[to be translated]:局域网传输", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "Μεταφορά τοπικού δικτύου", + "transfer_progress": "Πρόοδος μεταφοράς" }, - "title": "[to be translated]:导出至手机" + "title": "Εξαγωγή στο κινητό" }, "hour_interval_one": "{{count}} ώρα", "hour_interval_other": "{{count}} ώρες", diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index b04258151d..182da4c1a0 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -1047,7 +1047,7 @@ "clear": "Limpiar", "close": "Cerrar", "collapse": "Colapsar", - "completed": "[to be translated]:Completed", + "completed": "Completado", "confirm": "Confirmar", "copied": "Copiado", "copy": "Copiar", @@ -3041,43 +3041,43 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:选择备份文件" + "button": "Seleccionar archivo de copia de seguridad" }, - "content": "[to be translated]:导出部分数据,包括聊天记录、设置。请注意,备份过程可能需要一些时间,感谢您的耐心等待。", + "content": "Exportar parte de los datos, incluidos los registros de chat y la configuración. Tenga en cuenta que el proceso de copia de seguridad puede tardar un tiempo; gracias por su paciencia.", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:请确保电脑和手机处于同一网络以使用局域网传输。请打开 Cherry Studio App 扫描此二维码。", + "auto_close_tip": "Cierre automático en {{seconds}} segundos...", + "confirm_close_message": "La transferencia de archivos está en progreso. Cerrar interrumpirá la transferencia. ¿Estás seguro de que quieres forzar el cierre?", + "confirm_close_title": "Confirmar Cierre", + "connected": "Conectado", + "connection_failed": "Conexión fallida", + "content": "Asegúrate de que el ordenador y el móvil estén en la misma red para usar la transferencia por LAN. Abre la aplicación Cherry Studio y escanea este código QR.", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "Falló la inicialización", + "no_file": "Ningún archivo seleccionado", + "no_ip": "No se puede obtener la dirección IP", + "send_failed": "Error al enviar el archivo" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:未选择压缩文件", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:选择压缩文件", - "sendZip": "[to be translated]:开始恢复数据", + "force_close": "Cerrar forzosamente", + "generating_qr": "Generando código QR...", + "noZipSelected": "No se ha seleccionado ningún archivo comprimido", + "scan_qr": "Por favor, escanea el código QR con tu teléfono", + "selectZip": "Seleccionar archivo comprimido", + "sendZip": "Comenzar la recuperación de datos", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "Transferencia completada", + "connected": "Conectado", + "connecting": "Conectando...", + "disconnected": "Desconectado", + "error": "Error de conexión", + "initializing": "Inicializando conexión...", + "preparing": "Preparando transferencia...", + "sending": "Transfiriendo {{progress}}%", + "waiting_qr_scan": "Por favor, escanea el código QR para conectarte" }, - "title": "[to be translated]:局域网传输", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "Transferencia de red local", + "transfer_progress": "Progreso de transferencia" }, - "title": "[to be translated]:导出至手机" + "title": "Exportar al teléfono" }, "hour_interval_one": "{{count}} hora", "hour_interval_other": "{{count}} horas", diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index b9c68d9a8e..32ee893d1a 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -1047,7 +1047,7 @@ "clear": "Effacer", "close": "Fermer", "collapse": "Réduire", - "completed": "[to be translated]:Completed", + "completed": "Terminé", "confirm": "Confirmer", "copied": "Copié", "copy": "Copier", @@ -3041,43 +3041,43 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:选择备份文件" + "button": "Sélectionner le fichier de sauvegarde" }, - "content": "[to be translated]:导出部分数据,包括聊天记录、设置。请注意,备份过程可能需要一些时间,感谢您的耐心等待。", + "content": "Exporter une partie des données, incluant les historiques de discussion et les paramètres. Veuillez noter que le processus de sauvegarde peut prendre un certain temps ; merci pour votre patience.", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:请确保电脑和手机处于同一网络以使用局域网传输。请打开 Cherry Studio App 扫描此二维码。", + "auto_close_tip": "Fermeture automatique dans {{seconds}} secondes...", + "confirm_close_message": "Le transfert de fichier est en cours. Fermer interrompra le transfert. Êtes-vous sûr de vouloir forcer la fermeture ?", + "confirm_close_title": "Confirmer la fermeture", + "connected": "Connecté", + "connection_failed": "Échec de la connexion", + "content": "Assurez-vous que l'ordinateur et le téléphone sont connectés au même réseau pour utiliser le transfert en réseau local. Ouvrez l'application Cherry Studio et scannez ce code QR.", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "Échec de l'initialisation", + "no_file": "Aucun fichier sélectionné", + "no_ip": "Impossible d'obtenir l'adresse IP", + "send_failed": "Échec de l'envoi du fichier" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:未选择压缩文件", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:选择压缩文件", - "sendZip": "[to be translated]:开始恢复数据", + "force_close": "Fermer de force", + "generating_qr": "Génération du code QR...", + "noZipSelected": "Aucun fichier compressé sélectionné", + "scan_qr": "Veuillez scanner le code QR avec votre téléphone", + "selectZip": "Sélectionner le fichier compressé", + "sendZip": "Commencer la restauration des données", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "Transfert terminé", + "connected": "Connecté", + "connecting": "Connexion...", + "disconnected": "Déconnecté", + "error": "Erreur de connexion", + "initializing": "Initialisation de la connexion...", + "preparing": "Préparation du transfert...", + "sending": "Transfert {{progress}} %", + "waiting_qr_scan": "Veuillez scanner le code QR pour vous connecter" }, - "title": "[to be translated]:局域网传输", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "Transmission en réseau local", + "transfer_progress": "Progression du transfert" }, - "title": "[to be translated]:导出至手机" + "title": "Exporter vers le téléphone" }, "hour_interval_one": "{{count}} heure", "hour_interval_other": "{{count}} heures", diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json index 15b2fb111b..fbbbbc9048 100644 --- a/src/renderer/src/i18n/translate/ja-jp.json +++ b/src/renderer/src/i18n/translate/ja-jp.json @@ -1047,7 +1047,7 @@ "clear": "クリア", "close": "閉じる", "collapse": "折りたたむ", - "completed": "[to be translated]:Completed", + "completed": "完了", "confirm": "確認", "copied": "コピーされました", "copy": "コピー", @@ -3041,43 +3041,43 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:选择备份文件" + "button": "バックアップファイルを選択" }, - "content": "[to be translated]:导出部分数据,包括聊天记录、设置。请注意,备份过程可能需要一些时间,感谢您的耐心等待。", + "content": "一部のデータ、チャット履歴や設定をエクスポートします。バックアップには時間がかかる場合がありますので、しばらくお待ちください。", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:请确保电脑和手机处于同一网络以使用局域网传输。请打开 Cherry Studio App 扫描此二维码。", + "auto_close_tip": "{{seconds}}秒後に自動的に閉じます...", + "confirm_close_message": "ファイル転送が進行中です。閉じると転送が中断されます。強制終了してもよろしいですか?", + "confirm_close_title": "閉じることを確認", + "connected": "接続済み", + "connection_failed": "接続に失敗しました", + "content": "コンピューターとスマートフォンが同じネットワークに接続されていることを確認し、ローカルエリアネットワーク転送を使用してください。Cherry Studioアプリを開き、このQRコードをスキャンしてください。", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "初期化に失敗しました", + "no_file": "ファイルが選択されていません", + "no_ip": "IPアドレスを取得できません", + "send_failed": "ファイルの送信に失敗しました" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:未选择压缩文件", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:选择压缩文件", - "sendZip": "[to be translated]:开始恢复数据", + "force_close": "強制終了", + "generating_qr": "QRコードを生成中...", + "noZipSelected": "圧縮ファイルが選択されていません", + "scan_qr": "携帯電話でQRコードをスキャンしてください", + "selectZip": "圧縮ファイルを選択", + "sendZip": "データの復元を開始します", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "転送完了", + "connected": "接続済み", + "connecting": "接続中...", + "disconnected": "切断されました", + "error": "接続エラー", + "initializing": "接続を初期化中...", + "preparing": "転送準備中...", + "sending": "転送中 {{progress}}%", + "waiting_qr_scan": "QRコードをスキャンして接続してください" }, - "title": "[to be translated]:局域网传输", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "LAN転送", + "transfer_progress": "転送進行" }, - "title": "[to be translated]:导出至手机" + "title": "スマートフォンにエクスポート" }, "hour_interval_one": "{{count}} 時間", "hour_interval_other": "{{count}} 時間", diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index 0253dba3cd..75c4db55e9 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -1047,7 +1047,7 @@ "clear": "Limpar", "close": "Fechar", "collapse": "Recolher", - "completed": "[to be translated]:Completed", + "completed": "Concluído", "confirm": "Confirmar", "copied": "Copiado", "copy": "Copiar", @@ -3041,28 +3041,28 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:选择备份文件" + "button": "Selecionar arquivo de backup" }, - "content": "[to be translated]:导出部分数据,包括聊天记录、设置。请注意,备份过程可能需要一些时间,感谢您的耐心等待。", + "content": "Exportar parte dos dados, incluindo registros de conversas e configurações. Observe que o processo de backup pode demorar um pouco; agradecemos sua paciência.", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:请确保电脑和手机处于同一网络以使用局域网传输。请打开 Cherry Studio App 扫描此二维码。", + "auto_close_tip": "Fechando automaticamente em {{seconds}} segundos...", + "confirm_close_message": "Transferência de arquivo em andamento. Fechar irá interromper a transferência. Tem certeza de que deseja forçar o fechamento?", + "confirm_close_title": "Confirmar Fechamento", + "connected": "Conectado", + "connection_failed": "Falha na conexão", + "content": "Certifique-se de que o computador e o telefone estejam na mesma rede para usar a transferência via LAN. Abra o aplicativo Cherry Studio e escaneie este código QR.", "error": { "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", + "no_file": "Nenhum arquivo selecionado", "no_ip": "[to be translated]:Unable to get IP address", "send_failed": "[to be translated]:Failed to send file" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:未选择压缩文件", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:选择压缩文件", - "sendZip": "[to be translated]:开始恢复数据", + "force_close": "Forçar Fechamento", + "generating_qr": "Gerando código QR...", + "noZipSelected": "Nenhum arquivo de compressão selecionado", + "scan_qr": "Por favor, escaneie o código QR com o seu telefone", + "selectZip": "Selecionar arquivo compactado", + "sendZip": "Iniciar recuperação de dados", "status": { "completed": "[to be translated]:Transfer completed", "connected": "[to be translated]:Connected", @@ -3074,10 +3074,10 @@ "sending": "[to be translated]:Transferring {{progress}}%", "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" }, - "title": "[to be translated]:局域网传输", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "transmissão de rede local", + "transfer_progress": "Progresso da transferência" }, - "title": "[to be translated]:导出至手机" + "title": "Exportar para o telemóvel" }, "hour_interval_one": "{{count}} hora", "hour_interval_other": "{{count}} horas", diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json index 7e31339a53..f86e16ff2f 100644 --- a/src/renderer/src/i18n/translate/ru-ru.json +++ b/src/renderer/src/i18n/translate/ru-ru.json @@ -3041,41 +3041,41 @@ }, "export_to_phone": { "confirm": { - "button": "[to be translated]:选择备份文件" + "button": "Выберите файл резервной копии" }, "content": "[to be translated]:导出部分数据,包括聊天记录、设置。请注意,备份过程可能需要一些时间,感谢您的耐心等待。", "lan": { - "auto_close_tip": "[to be translated]:Auto-closing in {{seconds}} seconds...", - "confirm_close_message": "[to be translated]:File transfer is in progress. Closing will interrupt the transfer. Are you sure you want to force close?", - "confirm_close_title": "[to be translated]:Confirm Close", - "connected": "[to be translated]:Connected", - "connection_failed": "[to be translated]:Connection failed", - "content": "[to be translated]:请确保电脑和手机处于同一网络以使用局域网传输。请打开 Cherry Studio App 扫描此二维码。", + "auto_close_tip": "Автоматическое закрытие через {{seconds}} секунд...", + "confirm_close_message": "Передача файла в процессе. Закрытие прервет передачу. Вы уверены, что хотите принудительно закрыть?", + "confirm_close_title": "Подтвердить закрытие", + "connected": "Подключено", + "connection_failed": "Соединение не удалось", + "content": "Убедитесь, что компьютер и телефон подключены к одной сети, чтобы использовать локальную передачу. Откройте приложение Cherry Studio и отсканируйте этот QR-код.", "error": { - "init_failed": "[to be translated]:Initialization failed", - "no_file": "[to be translated]:No file selected", - "no_ip": "[to be translated]:Unable to get IP address", - "send_failed": "[to be translated]:Failed to send file" + "init_failed": "Инициализация не удалась", + "no_file": "Файл не выбран", + "no_ip": "Не удалось получить IP-адрес", + "send_failed": "Не удалось отправить файл" }, - "force_close": "[to be translated]:Force Close", - "generating_qr": "[to be translated]:Generating QR code...", - "noZipSelected": "[to be translated]:未选择压缩文件", - "scan_qr": "[to be translated]:Please scan QR code with your phone", - "selectZip": "[to be translated]:选择压缩文件", - "sendZip": "[to be translated]:开始恢复数据", + "force_close": "Принудительное закрытие", + "generating_qr": "Генерация QR-кода...", + "noZipSelected": "Архив не выбран", + "scan_qr": "Пожалуйста, отсканируйте QR-код с помощью вашего телефона", + "selectZip": "Выберите архив", + "sendZip": "Начать восстановление данных", "status": { - "completed": "[to be translated]:Transfer completed", - "connected": "[to be translated]:Connected", - "connecting": "[to be translated]:Connecting...", - "disconnected": "[to be translated]:Disconnected", - "error": "[to be translated]:Connection error", - "initializing": "[to be translated]:Initializing connection...", - "preparing": "[to be translated]:Preparing transfer...", - "sending": "[to be translated]:Transferring {{progress}}%", - "waiting_qr_scan": "[to be translated]:Please scan QR code to connect" + "completed": "Перевод завершён", + "connected": "Подключено", + "connecting": "Подключение...", + "disconnected": "Отключено", + "error": "Ошибка подключения", + "initializing": "Инициализация соединения...", + "preparing": "Подготовка передачи...", + "sending": "Передача {{progress}}%", + "waiting_qr_scan": "Пожалуйста, отсканируйте QR-код для подключения" }, - "title": "[to be translated]:局域网传输", - "transfer_progress": "[to be translated]:Transfer progress" + "title": "Передача по локальной сети", + "transfer_progress": "Прогресс передачи" }, "title": "[to be translated]:导出至手机" },