feat: improve mobile UX (#1591)
Added a mobile MCP overlay so MCP tools can be opened and managed from the mobile UI without relying on desktop-only dropdown behavior. Improved mobile session panel touch handling so tapping the status/session area opens the right panel reliably on phones and tablets. Cleaned up mobile usage provider metadata by removing duplicate rows, hiding unset providers, and showing provider logos consistently. Added eager loading for provider logos used in mobile usage views to avoid delayed or missing icons when the panel opens. Refined the mobile update and about flows in OpenChamber settings so release/update information is easier to read on small screens. Adjusted related layout, header, VS Code layout, command palette, and settings text/localization details needed for the mobile polish.
This commit is contained in:
committed by
GitHub
parent
0153f8787d
commit
eff6f46ad9
@@ -47,6 +47,7 @@ export const settingsDict = {
|
||||
'settings.page.notifications.title': 'Notifications',
|
||||
'settings.page.voice.title': 'Voice',
|
||||
'settings.page.tunnel.title': 'Remote Tunnel',
|
||||
'settings.page.about.title': 'About',
|
||||
'settings.page.snippets.title': 'Snippets',
|
||||
'settings.snippets.sidebar.title': 'Snippets',
|
||||
'settings.snippets.sidebar.total': 'Total: {count}',
|
||||
@@ -1639,8 +1640,6 @@ export const settingsDict = {
|
||||
'settings.openchamber.visual.field.showToolFileIcons': 'Show Tool File Icons',
|
||||
'settings.openchamber.visual.field.showTurnChangedFilesAria': 'Show changed files for completed turns',
|
||||
'settings.openchamber.visual.field.showTurnChangedFiles': 'Show Changed Files for Completed Turns',
|
||||
'settings.openchamber.visual.field.showMobileStatusBarAria': 'Show mobile status bar',
|
||||
'settings.openchamber.visual.field.showMobileStatusBar': 'Show Mobile Status Bar',
|
||||
'settings.openchamber.visual.field.showDotfilesAria': 'Show dotfiles',
|
||||
'settings.openchamber.visual.field.showDotfiles': 'Show Dotfiles',
|
||||
'settings.openchamber.visual.field.queueMessagesByDefaultAria': 'Queue messages by default',
|
||||
|
||||
@@ -32,9 +32,15 @@ export const dict = {
|
||||
'mobile.nav.settings': 'Settings',
|
||||
'mobile.surface.closeAria': 'Close',
|
||||
'mobile.header.openMenuAria': 'Open menu',
|
||||
'mobile.header.openMetadataAria': 'Open session metadata',
|
||||
'mobile.header.metadata.context': 'Context',
|
||||
'mobile.header.metadata.branch': 'Branch',
|
||||
'mobile.header.metadata.usage': 'Usage',
|
||||
'mobile.menu.titleAria': 'Workspace tools',
|
||||
'mobile.menu.files': 'Files',
|
||||
'mobile.menu.changes': 'Changes',
|
||||
'mobile.menu.mcp': 'MCP',
|
||||
'mobile.menu.update': 'Update',
|
||||
'mobile.menu.settings': 'Settings',
|
||||
'mobile.sessions.newChatCta': 'New chat in {project}',
|
||||
'mobile.sessions.dateGroup.today': 'Today',
|
||||
@@ -2177,7 +2183,7 @@ export const dict = {
|
||||
'mcpDropdown.status.unknownError': 'Unknown error',
|
||||
'mcpDropdown.status.needsAuth': 'Needs authentication',
|
||||
'mcpDropdown.status.needsRegistration': 'Needs registration: {error}',
|
||||
'mcpDropdown.empty.configureInConfig': 'Configure MCP servers in OpenCode config.',
|
||||
'mcpDropdown.empty.configureInConfig': 'Configure MCP servers in Settings.',
|
||||
'sessionAuth.error.rateLimitTitle': 'Too many attempts',
|
||||
'sessionAuth.error.networkTitle': 'Unable to reach server',
|
||||
'sessionAuth.error.rateLimitDescriptionSingle': 'Please wait {minutes} minute before trying again.',
|
||||
|
||||
@@ -47,6 +47,7 @@ export const settingsDict = {
|
||||
"settings.page.notifications.title": "Notificaciones",
|
||||
"settings.page.voice.title": "Voz",
|
||||
"settings.page.tunnel.title": "Túnel remoto",
|
||||
"settings.page.about.title": "Acerca de",
|
||||
"settings.page.snippets.title": "Snippets",
|
||||
"settings.snippets.sidebar.title": "Snippets",
|
||||
"settings.snippets.sidebar.total": "Total: {count}",
|
||||
@@ -1606,8 +1607,6 @@ export const settingsDict = {
|
||||
"settings.openchamber.visual.field.showToolFileIcons": "Mostrar iconos de archivos de herramientas",
|
||||
"settings.openchamber.visual.field.showTurnChangedFilesAria": "Mostrar archivos cambiados en turnos completados",
|
||||
"settings.openchamber.visual.field.showTurnChangedFiles": "Mostrar archivos cambiados en turnos completados",
|
||||
"settings.openchamber.visual.field.showMobileStatusBarAria": "Mostrar barra de estado móvil",
|
||||
"settings.openchamber.visual.field.showMobileStatusBar": "Mostrar barra de estado móvil",
|
||||
"settings.openchamber.visual.field.showDotfilesAria": "Mostrar archivos ocultos",
|
||||
"settings.openchamber.visual.field.showDotfiles": "Mostrar archivos ocultos",
|
||||
"settings.openchamber.visual.field.queueMessagesByDefaultAria": "Poner mensaje en cola por defecto",
|
||||
|
||||
@@ -33,9 +33,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mobile.nav.settings": "Ajustes",
|
||||
"mobile.surface.closeAria": "Cerrar",
|
||||
"mobile.header.openMenuAria": "Abrir menú",
|
||||
"mobile.header.openMetadataAria": "Abrir metadatos de la sesión",
|
||||
"mobile.header.metadata.context": "Contexto",
|
||||
"mobile.header.metadata.branch": "Rama",
|
||||
"mobile.header.metadata.usage": "Uso",
|
||||
"mobile.menu.titleAria": "Herramientas del espacio de trabajo",
|
||||
"mobile.menu.files": "Archivos",
|
||||
"mobile.menu.changes": "Cambios",
|
||||
"mobile.menu.mcp": "MCP",
|
||||
"mobile.menu.update": "Actualizar",
|
||||
"mobile.menu.settings": "Ajustes",
|
||||
"mobile.sessions.newChatCta": "Nuevo chat en {project}",
|
||||
"mobile.sessions.dateGroup.today": "Hoy",
|
||||
@@ -2143,7 +2149,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mcpDropdown.status.unknownError": "Error desconocido",
|
||||
"mcpDropdown.status.needsAuth": "Necesita autenticación",
|
||||
"mcpDropdown.status.needsRegistration": "Necesita registro: {error}",
|
||||
"mcpDropdown.empty.configureInConfig": "Configura los servidores MCP en la configuración de OpenCode.",
|
||||
"mcpDropdown.empty.configureInConfig": "Configura los servidores MCP en Ajustes.",
|
||||
"sessionAuth.error.rateLimitTitle": "Demasiados intentos",
|
||||
"sessionAuth.error.networkTitle": "No se puede alcanzar el servidor",
|
||||
"sessionAuth.error.rateLimitDescriptionSingle": "Por favor, espera {minutes} minuto antes de intentarlo de nuevo.",
|
||||
|
||||
@@ -47,6 +47,7 @@ export const settingsDict = {
|
||||
'settings.page.notifications.title': '알림',
|
||||
'settings.page.voice.title': '음성',
|
||||
'settings.page.tunnel.title': '원격 터널',
|
||||
'settings.page.about.title': '정보',
|
||||
'settings.page.snippets.title': '스니펫',
|
||||
'settings.snippets.sidebar.title': '스니펫',
|
||||
'settings.snippets.sidebar.total': '총 {count}개',
|
||||
@@ -1606,8 +1607,6 @@ export const settingsDict = {
|
||||
'settings.openchamber.visual.field.showToolFileIcons': '도구 파일 아이콘 표시',
|
||||
'settings.openchamber.visual.field.showTurnChangedFilesAria': '완료된 턴의 변경 파일 표시',
|
||||
'settings.openchamber.visual.field.showTurnChangedFiles': '완료된 턴의 변경 파일 표시',
|
||||
'settings.openchamber.visual.field.showMobileStatusBarAria': '모바일 상태 바 표시',
|
||||
'settings.openchamber.visual.field.showMobileStatusBar': '모바일 상태 바 표시',
|
||||
'settings.openchamber.visual.field.showDotfilesAria': 'Dotfiles 표시',
|
||||
'settings.openchamber.visual.field.showDotfiles': 'Dotfiles 표시',
|
||||
'settings.openchamber.visual.field.queueMessagesByDefaultAria': '기본으로 메시지 대기열 사용',
|
||||
|
||||
@@ -33,9 +33,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.nav.settings': '설정',
|
||||
'mobile.surface.closeAria': '닫기',
|
||||
'mobile.header.openMenuAria': '메뉴 열기',
|
||||
'mobile.header.openMetadataAria': '세션 메타데이터 열기',
|
||||
'mobile.header.metadata.context': '컨텍스트',
|
||||
'mobile.header.metadata.branch': '브랜치',
|
||||
'mobile.header.metadata.usage': '사용량',
|
||||
'mobile.menu.titleAria': '작업 공간 도구',
|
||||
'mobile.menu.files': '파일',
|
||||
'mobile.menu.changes': '변경사항',
|
||||
'mobile.menu.mcp': 'MCP',
|
||||
'mobile.menu.update': '업데이트',
|
||||
'mobile.menu.settings': '설정',
|
||||
'mobile.sessions.newChatCta': '{project}에서 새 채팅',
|
||||
'mobile.sessions.dateGroup.today': '오늘',
|
||||
@@ -2177,7 +2183,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mcpDropdown.status.unknownError': '알 수 없음 오류',
|
||||
'mcpDropdown.status.needsAuth': '인증 필요',
|
||||
'mcpDropdown.status.needsRegistration': '등록 필요: {error}',
|
||||
'mcpDropdown.empty.configureInConfig': 'OpenCode 설정에서 MCP 서버를 구성하세요.',
|
||||
'mcpDropdown.empty.configureInConfig': '설정에서 MCP 서버를 구성하세요.',
|
||||
'sessionAuth.error.rateLimitTitle': '시도가 너무 많습니다',
|
||||
'sessionAuth.error.networkTitle': '서버에 연결할 수 없습니다',
|
||||
'sessionAuth.error.rateLimitDescriptionSingle': '{minutes}분 후 다시 시도하세요.',
|
||||
|
||||
@@ -933,8 +933,6 @@ export const settingsDict = {
|
||||
'settings.openchamber.visual.field.showDotfilesAria': 'Pokaż pliki ukryte',
|
||||
'settings.openchamber.visual.field.showExpandedBashToolsAria': 'Pokaż rozwinięte narzędzia bash',
|
||||
'settings.openchamber.visual.field.showExpandedEditToolsAria': 'Pokaż rozwinięte narzędzia edycji',
|
||||
'settings.openchamber.visual.field.showMobileStatusBar': 'Pokaż mobilny pasek statusu',
|
||||
'settings.openchamber.visual.field.showMobileStatusBarAria': 'Pokaż mobilny pasek statusu',
|
||||
'settings.openchamber.visual.field.showReasoningTraces': 'Pokaż ślady rozumowania',
|
||||
'settings.openchamber.visual.field.showReasoningTracesAria': 'Pokaż ślady rozumowania',
|
||||
'settings.openchamber.visual.field.collapsibleThinkingBlocks': 'Włącz zwijalne bloki rozumowania',
|
||||
@@ -1069,6 +1067,7 @@ export const settingsDict = {
|
||||
'settings.page.skills.title': 'Umiejętności',
|
||||
'settings.page.skillsCatalog.title': 'Katalog umiejętności',
|
||||
'settings.page.tunnel.title': 'Zdalny Tunel',
|
||||
'settings.page.about.title': 'O aplikacji',
|
||||
'settings.page.snippets.title': 'Fragmenty',
|
||||
'settings.snippets.sidebar.title': 'Fragmenty',
|
||||
'settings.snippets.sidebar.total': 'Suma: {count}',
|
||||
|
||||
@@ -34,9 +34,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.nav.settings': 'Ustawienia',
|
||||
'mobile.surface.closeAria': 'Zamknij',
|
||||
'mobile.header.openMenuAria': 'Otwórz menu',
|
||||
'mobile.header.openMetadataAria': 'Otwórz metadane sesji',
|
||||
'mobile.header.metadata.context': 'Kontekst',
|
||||
'mobile.header.metadata.branch': 'Gałąź',
|
||||
'mobile.header.metadata.usage': 'Użycie',
|
||||
'mobile.menu.titleAria': 'Narzędzia obszaru roboczego',
|
||||
'mobile.menu.files': 'Pliki',
|
||||
'mobile.menu.changes': 'Zmiany',
|
||||
'mobile.menu.mcp': 'MCP',
|
||||
'mobile.menu.update': 'Aktualizuj',
|
||||
'mobile.menu.settings': 'Ustawienia',
|
||||
'mobile.sessions.newChatCta': 'Nowy czat w {project}',
|
||||
'mobile.sessions.dateGroup.today': 'Dzisiaj',
|
||||
@@ -2037,7 +2043,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'markdownRenderer.table.toast.downloadedAsFormat': 'Tabela została pobrana jako {format}',
|
||||
'mcpDropdown.actions.openAria': 'Serwery MCP',
|
||||
'mcpDropdown.actions.refreshAria': 'Odśwież',
|
||||
'mcpDropdown.empty.configureInConfig': 'Skonfiguruj serwery MCP w konfiguracji OpenCode.',
|
||||
'mcpDropdown.empty.configureInConfig': 'Skonfiguruj serwery MCP w Ustawieniach.',
|
||||
'mcpDropdown.status.connected': 'Połączono',
|
||||
'mcpDropdown.status.failed': 'Błąd: {error}',
|
||||
'mcpDropdown.status.needsAuth': 'Wymaga uwierzytelnienia',
|
||||
|
||||
@@ -47,6 +47,7 @@ export const settingsDict = {
|
||||
"settings.page.notifications.title": "Notificações",
|
||||
"settings.page.voice.title": "Voz",
|
||||
"settings.page.tunnel.title": "Túnel remoto",
|
||||
"settings.page.about.title": "Sobre",
|
||||
"settings.page.snippets.title": "Snippets",
|
||||
"settings.snippets.sidebar.title": "Snippets",
|
||||
"settings.snippets.sidebar.total": "Total: {count}",
|
||||
@@ -1606,8 +1607,6 @@ export const settingsDict = {
|
||||
"settings.openchamber.visual.field.showToolFileIcons": "Mostrar ícones de arquivos de ferramentas",
|
||||
"settings.openchamber.visual.field.showTurnChangedFilesAria": "Mostrar arquivos alterados em turnos concluídos",
|
||||
"settings.openchamber.visual.field.showTurnChangedFiles": "Mostrar arquivos alterados em turnos concluídos",
|
||||
"settings.openchamber.visual.field.showMobileStatusBarAria": "Mostrar barra de status móvel",
|
||||
"settings.openchamber.visual.field.showMobileStatusBar": "Mostrar barra de status móvel",
|
||||
"settings.openchamber.visual.field.showDotfilesAria": "Mostrar arquivos ocultos",
|
||||
"settings.openchamber.visual.field.showDotfiles": "Mostrar arquivos ocultos",
|
||||
"settings.openchamber.visual.field.queueMessagesByDefaultAria": "Colocar mensagens na fila por padrão",
|
||||
|
||||
@@ -33,9 +33,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mobile.nav.settings": "Configurações",
|
||||
"mobile.surface.closeAria": "Fechar",
|
||||
"mobile.header.openMenuAria": "Abrir menu",
|
||||
"mobile.header.openMetadataAria": "Abrir metadados da sessão",
|
||||
"mobile.header.metadata.context": "Contexto",
|
||||
"mobile.header.metadata.branch": "Branch",
|
||||
"mobile.header.metadata.usage": "Uso",
|
||||
"mobile.menu.titleAria": "Ferramentas do espaço de trabalho",
|
||||
"mobile.menu.files": "Arquivos",
|
||||
"mobile.menu.changes": "Alterações",
|
||||
"mobile.menu.mcp": "MCP",
|
||||
"mobile.menu.update": "Atualizar",
|
||||
"mobile.menu.settings": "Configurações",
|
||||
"mobile.sessions.newChatCta": "Novo chat em {project}",
|
||||
"mobile.sessions.dateGroup.today": "Hoje",
|
||||
@@ -2143,7 +2149,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mcpDropdown.status.unknownError": "Erro desconhecido",
|
||||
"mcpDropdown.status.needsAuth": "Precisa de autenticação",
|
||||
"mcpDropdown.status.needsRegistration": "Precisa de registro: {error}",
|
||||
"mcpDropdown.empty.configureInConfig": "Configure os servidores MCP na configurações do OpenCode.",
|
||||
"mcpDropdown.empty.configureInConfig": "Configure os servidores MCP nas Configurações.",
|
||||
"sessionAuth.error.rateLimitTitle": "Muitas tentativas",
|
||||
"sessionAuth.error.networkTitle": "Não é possível acessar o servidor",
|
||||
"sessionAuth.error.rateLimitDescriptionSingle": "Aguarde {minutes} minuto antes de tentar novamente.",
|
||||
|
||||
@@ -47,6 +47,7 @@ export const settingsDict = {
|
||||
"settings.page.notifications.title": "Сповіщення",
|
||||
"settings.page.voice.title": "Голос",
|
||||
"settings.page.tunnel.title": "Віддалений тунель",
|
||||
"settings.page.about.title": "Про застосунок",
|
||||
"settings.page.snippets.title": "Сніпети",
|
||||
"settings.snippets.sidebar.title": "Сніпети",
|
||||
"settings.snippets.sidebar.total": "Всього: {count}",
|
||||
@@ -1606,8 +1607,6 @@ export const settingsDict = {
|
||||
"settings.openchamber.visual.field.showToolFileIcons": "Показати значки файлів інструментів",
|
||||
"settings.openchamber.visual.field.showTurnChangedFilesAria": "Показати змінені файли для завершених ходів",
|
||||
"settings.openchamber.visual.field.showTurnChangedFiles": "Показати змінені файли для завершених ходів",
|
||||
"settings.openchamber.visual.field.showMobileStatusBarAria": "Показати рядок стану мобільного пристрою",
|
||||
"settings.openchamber.visual.field.showMobileStatusBar": "Показати мобільний рядок стану",
|
||||
"settings.openchamber.visual.field.showDotfilesAria": "Показати dotfiles",
|
||||
"settings.openchamber.visual.field.showDotfiles": "Показати dotfiles",
|
||||
"settings.openchamber.visual.field.queueMessagesByDefaultAria": "Ставити повідомлення в чергу за замовчуванням",
|
||||
|
||||
@@ -33,9 +33,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mobile.nav.settings": "Налаштування",
|
||||
"mobile.surface.closeAria": "Закрити",
|
||||
"mobile.header.openMenuAria": "Відкрити меню",
|
||||
"mobile.header.openMetadataAria": "Відкрити метадані сесії",
|
||||
"mobile.header.metadata.context": "Контекст",
|
||||
"mobile.header.metadata.branch": "Гілка",
|
||||
"mobile.header.metadata.usage": "Використання",
|
||||
"mobile.menu.titleAria": "Інструменти робочого простору",
|
||||
"mobile.menu.files": "Файли",
|
||||
"mobile.menu.changes": "Зміни",
|
||||
"mobile.menu.mcp": "MCP",
|
||||
"mobile.menu.update": "Оновити",
|
||||
"mobile.menu.settings": "Налаштування",
|
||||
"mobile.sessions.newChatCta": "Новий чат у {project}",
|
||||
"mobile.sessions.dateGroup.today": "Сьогодні",
|
||||
@@ -2143,7 +2149,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"mcpDropdown.status.unknownError": "Невідома помилка",
|
||||
"mcpDropdown.status.needsAuth": "Потребує аутентифікації",
|
||||
"mcpDropdown.status.needsRegistration": "Потребує реєстрації: {error}",
|
||||
"mcpDropdown.empty.configureInConfig": "Налаштувати сервери MCP у конфігурації OpenCode.",
|
||||
"mcpDropdown.empty.configureInConfig": "Налаштуйте сервери MCP у Налаштуваннях.",
|
||||
"sessionAuth.error.rateLimitTitle": "Забагато спроб",
|
||||
"sessionAuth.error.networkTitle": "Неможливо отримати доступ до сервера",
|
||||
"sessionAuth.error.rateLimitDescriptionSingle": "Зачекайте {minutes} хвилину перед повторною спробою.",
|
||||
|
||||
@@ -47,6 +47,7 @@ export const settingsDict = {
|
||||
'settings.page.notifications.title': '通知',
|
||||
'settings.page.voice.title': '语音',
|
||||
'settings.page.tunnel.title': '远程隧道',
|
||||
'settings.page.about.title': '关于',
|
||||
'settings.page.snippets.title': '代码片段',
|
||||
'settings.snippets.sidebar.title': '代码片段',
|
||||
'settings.snippets.sidebar.total': '共 {count} 个',
|
||||
@@ -1606,8 +1607,6 @@ export const settingsDict = {
|
||||
'settings.openchamber.visual.field.showToolFileIcons': '显示工具文件图标',
|
||||
'settings.openchamber.visual.field.showTurnChangedFilesAria': '显示已完成回合的更改文件',
|
||||
'settings.openchamber.visual.field.showTurnChangedFiles': '显示已完成回合的更改文件',
|
||||
'settings.openchamber.visual.field.showMobileStatusBarAria': '显示移动端状态栏',
|
||||
'settings.openchamber.visual.field.showMobileStatusBar': '显示移动端状态栏',
|
||||
'settings.openchamber.visual.field.showDotfilesAria': '显示点文件',
|
||||
'settings.openchamber.visual.field.showDotfiles': '显示点文件',
|
||||
'settings.openchamber.visual.field.queueMessagesByDefaultAria': '默认排队消息',
|
||||
|
||||
@@ -33,9 +33,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.nav.settings': '设置',
|
||||
'mobile.surface.closeAria': '关闭',
|
||||
'mobile.header.openMenuAria': '打开菜单',
|
||||
'mobile.header.openMetadataAria': '打开会话元数据',
|
||||
'mobile.header.metadata.context': '上下文',
|
||||
'mobile.header.metadata.branch': '分支',
|
||||
'mobile.header.metadata.usage': '用量',
|
||||
'mobile.menu.titleAria': '工作区工具',
|
||||
'mobile.menu.files': '文件',
|
||||
'mobile.menu.changes': '更改',
|
||||
'mobile.menu.mcp': 'MCP',
|
||||
'mobile.menu.update': '更新',
|
||||
'mobile.menu.settings': '设置',
|
||||
'mobile.sessions.newChatCta': '在 {project} 中新建会话',
|
||||
'mobile.sessions.dateGroup.today': '今天',
|
||||
@@ -2143,7 +2149,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mcpDropdown.status.unknownError': '未知错误',
|
||||
'mcpDropdown.status.needsAuth': '需要认证',
|
||||
'mcpDropdown.status.needsRegistration': '需要注册:{error}',
|
||||
'mcpDropdown.empty.configureInConfig': '请在 OpenCode 配置中设置 MCP 服务器。',
|
||||
'mcpDropdown.empty.configureInConfig': '请在设置中配置 MCP 服务器。',
|
||||
'sessionAuth.error.rateLimitTitle': '尝试次数过多',
|
||||
'sessionAuth.error.networkTitle': '无法连接服务器',
|
||||
'sessionAuth.error.rateLimitDescriptionSingle': '请等待 {minutes} 分钟后再试。',
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
'settings.page.notifications.title': '通知',
|
||||
'settings.page.voice.title': '語音',
|
||||
'settings.page.tunnel.title': 'Remote Tunnel',
|
||||
'settings.page.about.title': '關於',
|
||||
'settings.page.snippets.title': '程式片段',
|
||||
'settings.snippets.sidebar.title': '程式片段',
|
||||
'settings.snippets.sidebar.total': '共 {count} 個',
|
||||
@@ -1527,8 +1528,6 @@
|
||||
'settings.openchamber.visual.field.showToolFileIcons': '顯示工具檔案圖示',
|
||||
'settings.openchamber.visual.field.showTurnChangedFilesAria': '顯示已完成回合的變更檔案',
|
||||
'settings.openchamber.visual.field.showTurnChangedFiles': '顯示已完成回合的變更檔案',
|
||||
'settings.openchamber.visual.field.showMobileStatusBarAria': '顯示行動裝置狀態列',
|
||||
'settings.openchamber.visual.field.showMobileStatusBar': '顯示行動裝置狀態列',
|
||||
'settings.openchamber.visual.field.showDotfilesAria': '顯示點檔案',
|
||||
'settings.openchamber.visual.field.showDotfiles': '顯示點檔案',
|
||||
'settings.openchamber.visual.field.queueMessagesByDefaultAria': '預設排隊訊息',
|
||||
|
||||
@@ -33,9 +33,15 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mobile.nav.settings': '設定',
|
||||
'mobile.surface.closeAria': '關閉',
|
||||
'mobile.header.openMenuAria': '開啟選單',
|
||||
'mobile.header.openMetadataAria': '開啟工作階段中繼資料',
|
||||
'mobile.header.metadata.context': '上下文',
|
||||
'mobile.header.metadata.branch': '分支',
|
||||
'mobile.header.metadata.usage': '用量',
|
||||
'mobile.menu.titleAria': '工作區工具',
|
||||
'mobile.menu.files': '檔案',
|
||||
'mobile.menu.changes': '變更',
|
||||
'mobile.menu.mcp': 'MCP',
|
||||
'mobile.menu.update': '更新',
|
||||
'mobile.menu.settings': '設定',
|
||||
'mobile.sessions.newChatCta': '在 {project} 中新增聊天',
|
||||
'mobile.sessions.dateGroup.today': '今天',
|
||||
@@ -2147,7 +2153,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'mcpDropdown.status.unknownError': '未知錯誤',
|
||||
'mcpDropdown.status.needsAuth': '需要認證',
|
||||
'mcpDropdown.status.needsRegistration': '需要註冊:{error}',
|
||||
'mcpDropdown.empty.configureInConfig': '請在 OpenCode 設定中設定 MCP 伺服器。',
|
||||
'mcpDropdown.empty.configureInConfig': '請在設定中設定 MCP 伺服器。',
|
||||
'sessionAuth.error.rateLimitTitle': '嘗試次數過多',
|
||||
'sessionAuth.error.networkTitle': '無法連線伺服器',
|
||||
'sessionAuth.error.rateLimitDescriptionSingle': '請等待 {minutes} 分鐘後再試。',
|
||||
|
||||
@@ -78,6 +78,7 @@ export const formatWindowLabel = (label: string): string => {
|
||||
if (label === 'daily') return 'Daily';
|
||||
if (label === 'monthly') return 'Monthly Limit';
|
||||
if (label === 'credits') return 'Credits';
|
||||
if (label === 'credits_balance') return 'Credits Balance';
|
||||
if (label === 'session') return 'Session';
|
||||
if (label === 'premium') return 'Premium Interactions';
|
||||
if (label === 'chat') return 'Chat Requests';
|
||||
|
||||
@@ -22,7 +22,8 @@ export type SettingsPageSlug =
|
||||
| 'snippets'
|
||||
| 'notifications'
|
||||
| 'voice'
|
||||
| 'tunnel';
|
||||
| 'tunnel'
|
||||
| 'about';
|
||||
|
||||
export type SettingsPageGroup =
|
||||
| 'appearance'
|
||||
@@ -204,6 +205,7 @@ export const SETTINGS_PAGE_METADATA: readonly SettingsPageMeta[] = [
|
||||
{ slug: 'notifications', title: 'Notifications', group: 'general', kind: 'single', keywords: ['alerts', 'native', 'summary', 'summarization'], },
|
||||
{ slug: 'voice', title: 'Voice', group: 'advanced', kind: 'single', keywords: ['tts', 'speech', 'voice'], isAvailable: (ctx) => !ctx.isVSCode },
|
||||
{ slug: 'tunnel', title: 'Remote Tunnel', group: 'advanced', kind: 'single', keywords: ['tunnel', 'cloudflare', 'qr', 'remote', 'mobile', 'share'], isAvailable: (ctx) => !ctx.isVSCode },
|
||||
{ slug: 'about', title: 'About', group: 'advanced', kind: 'single', keywords: ['about', 'version', 'updates', 'release', 'changelog'], },
|
||||
] as const;
|
||||
|
||||
export const LEGACY_SIDEBAR_SECTION_TO_SETTINGS_SLUG: Record<SidebarSection, SettingsPageSlug> = {
|
||||
|
||||
Reference in New Issue
Block a user