feat: redirect macOS About menu to settings About page (#10902)

* ci: add GitHub issue tracker workflow with Feishu notifications  (#10895)

* feat: add GitHub issue tracker workflow with Feishu notifications

* fix: add missing environment variable for Claude translator in GitHub issue tracker workflow

* fix: update environment variable for Claude translator in GitHub issue tracker workflow

* Add quiet hours handling and scheduled processing for GitHub issue notifications

- Implement quiet hours detection (00:00-08:30 Beijing Time) with delayed notifications
- Add scheduled workflow to process pending issues daily at 08:30 Beijing Time
- Create new script to batch process and summarize multiple pending issues with Claude

* Replace custom Node.js script with Claude Code Action for issue processing

- Migrate from custom JavaScript implementation to Claude Code Action for AI-powered issue summarization and processing
- Simplify workflow by leveraging Claude's built-in GitHub API integration and tool usage capabilities
- Maintain same functionality: fetch pending issues, generate Chinese summaries, send Feishu notifications, and clean up labels
- Update Claude action reference from version pin to main branch for latest features

* Remove GitHub issue comment functionality

- Delete automated AI summary comments on issues after processing
- Remove documentation for manual issue commenting workflow
- Keep Feishu notification system intact while streamlining issue interactions

* feat: redirect macOS About menu to settings About page

Add functionality to navigate to the About page in settings when clicking the About menu item in macOS menu bar.

Changes:
- Add Windows_NavigateToAbout IPC channel for communication between main and renderer processes
- Create AppMenuService to setup macOS application menu with custom About handler
- Add IPC handler in main process to show main window and trigger navigation
- Add IPC listener in renderer NavigationHandler to navigate to /settings/about
- Initialize AppMenuService on app startup for macOS platform

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* * feat: add GitHub issue tracker workflow with Feishu notifications

* feat: add GitHub issue tracker workflow with Feishu notifications

* fix: add missing environment variable for Claude translator in GitHub issue tracker workflow

* fix: update environment variable for Claude translator in GitHub issue tracker workflow

* Add quiet hours handling and scheduled processing for GitHub issue notifications

- Implement quiet hours detection (00:00-08:30 Beijing Time) with delayed notifications
- Add scheduled workflow to process pending issues daily at 08:30 Beijing Time
- Create new script to batch process and summarize multiple pending issues with Claude

* Replace custom Node.js script with Claude Code Action for issue processing

- Migrate from custom JavaScript implementation to Claude Code Action for AI-powered issue summarization and processing
- Simplify workflow by leveraging Claude's built-in GitHub API integration and tool usage capabilities
- Maintain same functionality: fetch pending issues, generate Chinese summaries, send Feishu notifications, and clean up labels
- Update Claude action reference from version pin to main branch for latest features

* Remove GitHub issue comment functionality

- Delete automated AI summary comments on issues after processing
- Remove documentation for manual issue commenting workflow
- Keep Feishu notification system intact while streamlining issue interactions

* Add OIDC token permissions and GitHub token to Claude workflow

- Add `id-token: write` permission for OIDC authentication in both jobs
- Pass `github_token` to Claude action for proper GitHub API access
- Maintain existing issue write and contents read permissions

* fix: add GitHub issue tracker workflow with Feishu notifications

* feat: add GitHub issue tracker workflow with Feishu notifications

* fix: add missing environment variable for Claude translator in GitHub issue tracker workflow

* fix: update environment variable for Claude translator in GitHub issue tracker workflow

* Add quiet hours handling and scheduled processing for GitHub issue notifications

- Implement quiet hours detection (00:00-08:30 Beijing Time) with delayed notifications
- Add scheduled workflow to process pending issues daily at 08:30 Beijing Time
- Create new script to batch process and summarize multiple pending issues with Claude

* Replace custom Node.js script with Claude Code Action for issue processing

- Migrate from custom JavaScript implementation to Claude Code Action for AI-powered issue summarization and processing
- Simplify workflow by leveraging Claude's built-in GitHub API integration and tool usage capabilities
- Maintain same functionality: fetch pending issues, generate Chinese summaries, send Feishu notifications, and clean up labels
- Update Claude action reference from version pin to main branch for latest features

* Remove GitHub issue comment functionality

- Delete automated AI summary comments on issues after processing
- Remove documentation for manual issue commenting workflow
- Keep Feishu notification system intact while streamlining issue interactions

* Add OIDC token permissions and GitHub token to Claude workflow

- Add `id-token: write` permission for OIDC authentication in both jobs
- Pass `github_token` to Claude action for proper GitHub API access
- Maintain existing issue write and contents read permissions

* Enhance GitHub issue automation workflow with Claude integration

- Refactor Claude action to handle issue analysis, Feishu notification, and comment creation in single step
- Add tool permissions for Bash commands and custom notification script execution
- Update prompt with detailed task instructions including summary generation and automated actions
- Remove separate notification step by integrating all operations into Claude action workflow

* fix

* 删除AI总结评论的添加步骤和注意事项

* fix comments

* refactor(AppMenuService): streamline WindowService usage

Updated the AppMenuService to directly import and use the windowService for retrieving the main window and showing it, enhancing code clarity and maintainability.

* add i18n

* fix(AppMenuService): handle macOS application menu setup conditionally

Updated the AppMenuService to only instantiate when running on macOS, preventing potential null reference errors. Additionally, added optional chaining in the main index file for safer menu setup.

* fix(i18n): Auto update translations for PR #10902

---------

Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: Payne Fu <payne@Paynes-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
beyondkmp 2025-10-23 18:35:10 +08:00 committed by GitHub
parent 53881c5824
commit d187adb0d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 175 additions and 71 deletions

View File

@ -138,6 +138,7 @@ export enum IpcChannel {
Windows_Close = 'window:close',
Windows_IsMaximized = 'window:is-maximized',
Windows_MaximizedChanged = 'window:maximized-changed',
Windows_NavigateToAbout = 'window:navigate-to-about',
KnowledgeBase_Create = 'knowledge-base:create',
KnowledgeBase_Reset = 'knowledge-base:reset',

View File

@ -17,6 +17,7 @@ import process from 'node:process'
import { registerIpc } from './ipc'
import { agentService } from './services/agents'
import { apiServerService } from './services/ApiServerService'
import { appMenuService } from './services/AppMenuService'
import { configManager } from './services/ConfigManager'
import mcpService from './services/MCPService'
import { nodeTraceService } from './services/NodeTraceService'
@ -122,6 +123,9 @@ if (!app.requestSingleInstanceLock()) {
const mainWindow = windowService.createMainWindow()
new TrayService()
// Setup macOS application menu
appMenuService?.setupApplicationMenu()
nodeTraceService.init()
app.on('activate', function () {

View File

@ -0,0 +1,51 @@
import { isMac } from '@main/constant'
import { windowService } from '@main/services/WindowService'
import { locales } from '@main/utils/locales'
import { IpcChannel } from '@shared/IpcChannel'
import { app, Menu, MenuItemConstructorOptions } from 'electron'
import { configManager } from './ConfigManager'
export class AppMenuService {
public setupApplicationMenu(): void {
const locale = locales[configManager.getLanguage()]
const { common } = locale.translation
const template: MenuItemConstructorOptions[] = [
{
label: app.name,
submenu: [
{
label: common.about + ' ' + app.name,
click: () => {
// Emit event to navigate to About page
const mainWindow = windowService.getMainWindow()
if (mainWindow && !mainWindow.isDestroyed()) {
mainWindow.webContents.send(IpcChannel.Windows_NavigateToAbout)
windowService.showMainWindow()
}
}
},
{ type: 'separator' },
{ role: 'services' },
{ type: 'separator' },
{ role: 'hide' },
{ role: 'hideOthers' },
{ role: 'unhide' },
{ type: 'separator' },
{ role: 'quit' }
]
},
{
role: 'editMenu'
},
{
role: 'windowMenu'
}
]
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
}
}
export const appMenuService = isMac ? new AppMenuService() : null

View File

@ -1,4 +1,6 @@
import { useAppSelector } from '@renderer/store'
import { IpcChannel } from '@shared/IpcChannel'
import { useEffect } from 'react'
import { useHotkeys } from 'react-hotkeys-hook'
import { useLocation, useNavigate } from 'react-router-dom'
@ -25,6 +27,19 @@ const NavigationHandler: React.FC = () => {
}
)
// Listen for navigate to About page event from macOS menu
useEffect(() => {
const handleNavigateToAbout = () => {
navigate('/settings/about')
}
const removeListener = window.electron.ipcRenderer.on(IpcChannel.Windows_NavigateToAbout, handleNavigateToAbout)
return () => {
removeListener()
}
}, [navigate])
return null
}

View File

@ -952,6 +952,7 @@
}
},
"common": {
"about": "About",
"add": "Add",
"add_success": "Added successfully",
"advanced_settings": "Advanced Settings",
@ -4230,7 +4231,7 @@
"system": "System Proxy",
"title": "Proxy Mode"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "Supports wildcard matching (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Click the tray icon to start",

View File

@ -952,6 +952,7 @@
}
},
"common": {
"about": "关于",
"add": "添加",
"add_success": "添加成功",
"advanced_settings": "高级设置",

View File

@ -538,7 +538,7 @@
"context": "清除上下文 {{Command}}"
},
"new_topic": "新話題 {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
"paste_text_file_confirm": "貼到輸入框?",
"pause": "暫停",
"placeholder": "在此輸入您的訊息,按 {{key}} 傳送 - @ 選擇模型,/ 包含工具",
"placeholder_without_triggers": "在此輸入您的訊息,按 {{key}} 傳送",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "關於",
"add": "新增",
"add_success": "新增成功",
"advanced_settings": "進階設定",
@ -4230,7 +4231,7 @@
"system": "系統代理伺服器",
"title": "代理伺服器模式"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "支援模糊匹配(*.test.com,192.168.0.0/16"
},
"quickAssistant": {
"click_tray_to_show": "點選工具列圖示啟動",

View File

@ -22,7 +22,8 @@
},
"get": {
"error": {
"failed": "Agent abrufen fehlgeschlagen"
"failed": "Agent abrufen fehlgeschlagen",
"null_id": "智能体 ID 为空。"
}
},
"list": {
@ -30,6 +31,11 @@
"failed": "Agent-Liste abrufen fehlgeschlagen"
}
},
"server": {
"error": {
"not_running": "API server is enabled but not running properly."
}
},
"session": {
"accessible_paths": {
"add": "Verzeichnis hinzufügen",
@ -68,7 +74,8 @@
},
"get": {
"error": {
"failed": "Sitzung abrufen fehlgeschlagen"
"failed": "Sitzung abrufen fehlgeschlagen",
"null_id": "会话 ID 为空"
}
},
"label_one": "Sitzung",
@ -237,6 +244,7 @@
"messages": {
"apiKeyCopied": "API-Schlüssel in die Zwischenablage kopiert",
"apiKeyRegenerated": "API-Schlüssel wurde neu generiert",
"notEnabled": "API server is not enabled.",
"operationFailed": "API-Server-Operation fehlgeschlagen:",
"restartError": "API-Server-Neustart fehlgeschlagen:",
"restartFailed": "API-Server-Neustart fehlgeschlagen:",
@ -530,6 +538,7 @@
"context": "Kontext löschen {{Command}}"
},
"new_topic": "Neues Thema {{Command}}",
"paste_text_file_confirm": "粘贴到输入框?",
"pause": "Pause",
"placeholder": "Geben Sie hier eine Nachricht ein, drücken Sie {{key}} zum Senden - @ für Modellauswahl, / für Tools",
"placeholder_without_triggers": "Geben Sie hier eine Nachricht ein, drücken Sie {{key}} zum Senden",
@ -943,6 +952,7 @@
}
},
"common": {
"about": "About",
"add": "Hinzufügen",
"add_success": "Erfolgreich hinzugefügt",
"advanced_settings": "Erweiterte Einstellungen",
@ -1795,6 +1805,7 @@
"title": "Mini-Apps"
},
"minapps": {
"ant-ling": "Ant Ling",
"baichuan": "Baixiaoying",
"baidu-ai-search": "Baidu AI Suche",
"chatglm": "ChatGLM",
@ -1951,6 +1962,14 @@
"rename": "Umbenennen",
"rename_changed": "Aus Sicherheitsgründen wurde der Dateiname von {{original}} zu {{final}} geändert",
"save": "In Notizen speichern",
"search": {
"both": "名称+内容",
"content": "内容",
"found_results": "找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "个匹配",
"searching": "Searching...",
"show_less": "收起"
},
"settings": {
"data": {
"apply": "Anwenden",
@ -2035,6 +2054,7 @@
"provider": {
"cannot_remove_builtin": "Eingebauter Anbieter kann nicht entfernt werden",
"existing": "Anbieter existiert bereits",
"get_providers": "Failed to obtain available providers",
"not_found": "OCR-Anbieter nicht gefunden",
"update_failed": "Konfiguration aktualisieren fehlgeschlagen"
},
@ -2098,6 +2118,8 @@
"install_code_103": "OVMS Runtime herunterladen fehlgeschlagen",
"install_code_104": "OVMS Runtime entpacken fehlgeschlagen",
"install_code_105": "OVMS Runtime bereinigen fehlgeschlagen",
"install_code_106": "Failed to create run.bat",
"install_code_110": "Failed to clean up old OVMS runtime",
"run": "OVMS ausführen fehlgeschlagen:",
"stop": "OVMS stoppen fehlgeschlagen:"
},
@ -2656,11 +2678,11 @@
"go_to_settings": "Zu Einstellungen",
"open_accessibility_settings": "Bedienungshilfen-Einstellungen öffnen"
},
"description": [
"Der Textauswahl-Assistent benötigt <strong>Bedienungshilfen-Berechtigungen</strong>, um ordnungsgemäß zu funktionieren.",
"Klicken Sie auf <strong>Zu Einstellungen</strong> und anschließend im Berechtigungsdialog auf <strong>Systemeinstellungen öffnen</strong>. Suchen Sie danach in der App-Liste <strong>Cherry Studio</strong> und aktivieren Sie den Schalter.",
"Nach Abschluss der Einrichtung Textauswahl-Assistent erneut aktivieren."
],
"description": {
"0": "Der Textauswahl-Assistent benötigt <strong>Bedienungshilfen-Berechtigungen</strong>, um ordnungsgemäß zu funktionieren.",
"1": "Klicken Sie auf <strong>Zu Einstellungen</strong> und anschließend im Berechtigungsdialog auf <strong>Systemeinstellungen öffnen</strong>. Suchen Sie danach in der App-Liste <strong>Cherry Studio</strong> und aktivieren Sie den Schalter.",
"2": "Nach Abschluss der Einrichtung Textauswahl-Assistent erneut aktivieren."
},
"title": "Bedienungshilfen-Berechtigung"
},
"title": "Aktivieren"
@ -3568,6 +3590,7 @@
"builtinServers": "Integrierter Server",
"builtinServersDescriptions": {
"brave_search": "MCP-Server-Implementierung mit Brave-Search-API, die sowohl Web- als auch lokale Suchfunktionen bietet. BRAVE_API_KEY-Umgebungsvariable muss konfiguriert werden",
"didi_mcp": "An integrated Didi MCP server implementation that provides ride-hailing services including map search, price estimation, order management, and driver tracking. Only available in mainland China. Requires the DIDI_API_KEY environment variable to be configured.",
"dify_knowledge": "MCP-Server-Implementierung von Dify, die einen einfachen API-Zugriff auf Dify bietet. Dify Key muss konfiguriert werden",
"fetch": "MCP-Server zum Abrufen von Webseiteninhalten",
"filesystem": "MCP-Server für Dateisystemoperationen (Node.js), der den Zugriff auf bestimmte Verzeichnisse ermöglicht",
@ -4207,7 +4230,8 @@
"none": "Keinen Proxy verwenden",
"system": "System-Proxy",
"title": "Proxy-Modus"
}
},
"tip": "支持模糊匹配(*.test.com192.168.0.0/16"
},
"quickAssistant": {
"click_tray_to_show": "Klicken auf Tray-Symbol zum Starten",

View File

@ -538,7 +538,7 @@
"context": "Καθαρισμός ενδιάμεσων {{Command}}"
},
"new_topic": "Νέο θέμα {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
"paste_text_file_confirm": "Επικόλληση στο πλαίσιο εισαγωγής;",
"pause": "Παύση",
"placeholder": "Εισάγετε μήνυμα εδώ...",
"placeholder_without_triggers": "Γράψτε το μήνυμά σας εδώ, πατήστε {{key}} για αποστολή",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "σχετικά με",
"add": "Προσθέστε",
"add_success": "Η προσθήκη ήταν επιτυχής",
"advanced_settings": "Προχωρημένες ρυθμίσεις",
@ -1962,12 +1963,12 @@
"rename_changed": "Λόγω πολιτικής ασφάλειας, το όνομα του αρχείου έχει αλλάξει από {{original}} σε {{final}}",
"save": "αποθήκευση στις σημειώσεις",
"search": {
"both": "[to be translated]:名称+内容",
"content": "[to be translated]:内容",
"found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "[to be translated]:个匹配",
"searching": "[to be translated]:搜索中...",
"show_less": "[to be translated]:收起"
"both": "όνομα + περιεχόμενο",
"content": "περιεχόμενο",
"found_results": "Βρέθηκαν {{count}} αποτελέσματα (όνομα: {{nameCount}}, περιεχόμενο: {{contentCount}})",
"more_matches": "ένας αγώνας",
"searching": "Αναζήτηση...",
"show_less": "κλείσιμο"
},
"settings": {
"data": {
@ -2117,8 +2118,8 @@
"install_code_103": "Η λήψη του OVMS runtime απέτυχε",
"install_code_104": "Η αποσυμπίεση του OVMS runtime απέτυχε",
"install_code_105": "Ο καθαρισμός του OVMS runtime απέτυχε",
"install_code_106": "[to be translated]:创建 run.bat 失败",
"install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
"install_code_106": "Η δημιουργία του run.bat απέτυχε",
"install_code_110": "Η διαγραφή του παλιού χρόνου εκτέλεσης OVMS απέτυχε",
"run": "Η εκτέλεση του OVMS απέτυχε:",
"stop": "Η διακοπή του OVMS απέτυχε:"
},
@ -4230,7 +4231,7 @@
"system": "συστηματική προξενική",
"title": "κλίμακα προξενικής"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "υποστηρίζει ασαφή αντιστοίχιση (*.test.com,192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Επιλέξτε την εικόνα στο πίνακα για να ενεργοποιήσετε",

View File

@ -538,7 +538,7 @@
"context": "Limpiar contexto {{Command}}"
},
"new_topic": "Nuevo tema {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
"paste_text_file_confirm": "¿Pegar en el cuadro de entrada?",
"pause": "Pausar",
"placeholder": "Escribe aquí tu mensaje...",
"placeholder_without_triggers": "Escribe tu mensaje aquí, presiona {{key}} para enviar",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "Acerca de",
"add": "Agregar",
"add_success": "Añadido con éxito",
"advanced_settings": "Configuración avanzada",
@ -1962,12 +1963,12 @@
"rename_changed": "Debido a políticas de seguridad, el nombre del archivo ha cambiado de {{original}} a {{final}}",
"save": "Guardar en notas",
"search": {
"both": "[to be translated]:名称+内容",
"content": "[to be translated]:内容",
"found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "[to be translated]:个匹配",
"searching": "[to be translated]:搜索中...",
"show_less": "[to be translated]:收起"
"both": "Nombre + contenido",
"content": "contenido",
"found_results": "Encontrados {{count}} resultados (nombre: {{nameCount}}, contenido: {{contentCount}})",
"more_matches": "una coincidencia",
"searching": "Buscando...",
"show_less": "Recoger"
},
"settings": {
"data": {
@ -2117,8 +2118,8 @@
"install_code_103": "Error al descargar el tiempo de ejecución de OVMS",
"install_code_104": "Error al descomprimir el tiempo de ejecución de OVMS",
"install_code_105": "Error al limpiar el tiempo de ejecución de OVMS",
"install_code_106": "[to be translated]:创建 run.bat 失败",
"install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
"install_code_106": "Error al crear run.bat",
"install_code_110": "Error al limpiar el antiguo runtime de OVMS",
"run": "Error al ejecutar OVMS:",
"stop": "Error al detener OVMS:"
},
@ -4230,7 +4231,7 @@
"system": "Proxy del sistema",
"title": "Modo de proxy"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "Soporta coincidencia difusa (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Haz clic en el icono de la bandeja para iniciar",

View File

@ -538,7 +538,7 @@
"context": "Effacer le contexte {{Command}}"
},
"new_topic": "Nouveau sujet {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
"paste_text_file_confirm": "Coller dans la zone de saisie ?",
"pause": "Pause",
"placeholder": "Entrez votre message ici...",
"placeholder_without_triggers": "Tapez votre message ici, appuyez sur {{key}} pour envoyer",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "à propos",
"add": "Ajouter",
"add_success": "Ajout réussi",
"advanced_settings": "Paramètres avancés",
@ -1962,12 +1963,12 @@
"rename_changed": "En raison de la politique de sécurité, le nom du fichier a été changé de {{original}} à {{final}}",
"save": "sauvegarder dans les notes",
"search": {
"both": "[to be translated]:名称+内容",
"content": "[to be translated]:内容",
"found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "[to be translated]:个匹配",
"searching": "[to be translated]:搜索中...",
"show_less": "[to be translated]:收起"
"both": "Nom+contenu",
"content": "suivre linstruction du système",
"found_results": "{{count}} résultats trouvés (nom : {{nameCount}}, contenu : {{contentCount}})",
"more_matches": "une correspondance",
"searching": "Recherche en cours...",
"show_less": "Replier"
},
"settings": {
"data": {
@ -2117,8 +2118,8 @@
"install_code_103": "Échec du téléchargement du runtime OVMS",
"install_code_104": "Échec de la décompression du runtime OVMS",
"install_code_105": "Échec du nettoyage du runtime OVMS",
"install_code_106": "[to be translated]:创建 run.bat 失败",
"install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
"install_code_106": "Échec de la création de run.bat",
"install_code_110": "Échec du nettoyage de l'ancien runtime OVMS",
"run": "Échec de l'exécution d'OVMS :",
"stop": "Échec de l'arrêt d'OVMS :"
},
@ -4230,7 +4231,7 @@
"system": "Proxy système",
"title": "Mode de proxy"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "Prise en charge de la correspondance floue (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Cliquez sur l'icône dans la barre d'état système pour démarrer",

View File

@ -538,7 +538,7 @@
"context": "コンテキストをクリア {{Command}}"
},
"new_topic": "新しいトピック {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框",
"paste_text_file_confirm": "入力ボックスに貼り付けますか",
"pause": "一時停止",
"placeholder": "ここにメッセージを入力し、{{key}} を押して送信...",
"placeholder_without_triggers": "ここにメッセージを入力し、{{key}} を押して送信...",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "について",
"add": "追加",
"add_success": "追加成功",
"advanced_settings": "詳細設定",
@ -1962,12 +1963,12 @@
"rename_changed": "セキュリティポリシーにより、ファイル名は{{original}}から{{final}}に変更されました",
"save": "メモに保存する",
"search": {
"both": "[to be translated]:名称+内容",
"content": "[to be translated]:内容",
"found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "[to be translated]:个匹配",
"searching": "[to be translated]:搜索中...",
"show_less": "[to be translated]:收起"
"both": "名称+内容",
"content": "内容",
"found_results": "{{count}} 件の結果が見つかりました(名称: {{nameCount}}、内容: {{contentCount}}",
"more_matches": "個マッチ",
"searching": "索中...",
"show_less": "<translate_input>\n折りたたむ\n</translate_input>"
},
"settings": {
"data": {
@ -2117,8 +2118,8 @@
"install_code_103": "OVMSランタイムのダウンロードに失敗しました",
"install_code_104": "OVMSランタイムの解凍に失敗しました",
"install_code_105": "OVMSランタイムのクリーンアップに失敗しました",
"install_code_106": "[to be translated]:创建 run.bat 失败",
"install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
"install_code_106": "run.bat の作成に失敗しました",
"install_code_110": "古いOVMSランタイムのクリーンアップに失敗しました",
"run": "OVMSの実行に失敗しました:",
"stop": "OVMSの停止に失敗しました:"
},
@ -4230,7 +4231,7 @@
"system": "システムプロキシ",
"title": "プロキシモード"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "ワイルドカード一致をサポート (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "トレイアイコンをクリックして起動",

View File

@ -538,7 +538,7 @@
"context": "Limpar contexto {{Command}}"
},
"new_topic": "Novo tópico {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
"paste_text_file_confirm": "Colar na caixa de entrada?",
"pause": "Pausar",
"placeholder": "Digite sua mensagem aqui...",
"placeholder_without_triggers": "Escreve a tua mensagem aqui, pressiona {{key}} para enviar",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "Sobre",
"add": "Adicionar",
"add_success": "Adicionado com sucesso",
"advanced_settings": "Configurações Avançadas",
@ -1962,12 +1963,12 @@
"rename_changed": "Devido às políticas de segurança, o nome do arquivo foi alterado de {{original}} para {{final}}",
"save": "salvar em notas",
"search": {
"both": "[to be translated]:名称+内容",
"content": "[to be translated]:内容",
"found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "[to be translated]:个匹配",
"searching": "[to be translated]:搜索中...",
"show_less": "[to be translated]:收起"
"both": "nome+conteúdo",
"content": "<translate_input>\n[to be translated]:内容\n</translate_input>\nconteúdo",
"found_results": "找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "uma correspondência",
"searching": "Procurando...",
"show_less": "Recolher"
},
"settings": {
"data": {
@ -2117,8 +2118,8 @@
"install_code_103": "Falha ao baixar o tempo de execução do OVMS",
"install_code_104": "Falha ao descompactar o tempo de execução do OVMS",
"install_code_105": "Falha ao limpar o tempo de execução do OVMS",
"install_code_106": "[to be translated]:创建 run.bat 失败",
"install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
"install_code_106": "Falha ao criar run.bat",
"install_code_110": "Falha ao limpar o runtime antigo do OVMS",
"run": "Falha ao executar o OVMS:",
"stop": "Falha ao parar o OVMS:"
},
@ -4230,7 +4231,7 @@
"system": "Proxy do Sistema",
"title": "Modo de Proxy"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "Suporta correspondência difusa (*.test.com,192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Clique no ícone da bandeja para iniciar",

View File

@ -538,7 +538,7 @@
"context": "Очистить контекст {{Command}}"
},
"new_topic": "Новый топик {{Command}}",
"paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
"paste_text_file_confirm": "Вставить в поле ввода?",
"pause": "Остановить",
"placeholder": "Введите ваше сообщение здесь, нажмите {{key}} для отправки...",
"placeholder_without_triggers": "Напишите сообщение здесь, нажмите {{key}} для отправки",
@ -952,6 +952,7 @@
}
},
"common": {
"about": "о",
"add": "Добавить",
"add_success": "Успешно добавлено",
"advanced_settings": "Дополнительные настройки",
@ -1962,12 +1963,12 @@
"rename_changed": "В связи с политикой безопасности имя файла было изменено с {{Original}} на {{final}}",
"save": "Сохранить в заметки",
"search": {
"both": "[to be translated]:名称+内容",
"content": "[to be translated]:内容",
"found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
"more_matches": "[to be translated]:个匹配",
"searching": "[to be translated]:搜索中...",
"show_less": "[to be translated]:收起"
"both": "Название+содержание",
"content": "содержание",
"found_results": "Найдено результатов: {{count}} (название: {{nameCount}}, содержание: {{contentCount}})",
"more_matches": "совпадение",
"searching": "Поиск...",
"show_less": "Свернуть"
},
"settings": {
"data": {
@ -2117,8 +2118,8 @@
"install_code_103": "Ошибка загрузки среды выполнения OVMS",
"install_code_104": "Ошибка распаковки среды выполнения OVMS",
"install_code_105": "Ошибка очистки среды выполнения OVMS",
"install_code_106": "[to be translated]:创建 run.bat 失败",
"install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
"install_code_106": "Не удалось создать run.bat",
"install_code_110": "Ошибка очистки старой среды выполнения OVMS",
"run": "Ошибка запуска OVMS:",
"stop": "Ошибка остановки OVMS:"
},
@ -4230,7 +4231,7 @@
"system": "Системный прокси",
"title": "Режим прокси"
},
"tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
"tip": "Поддержка нечеткого соответствия (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Нажмите на иконку трея для запуска",