feat(skills): curated GitHub catalog redesign (#3016)
* feat(skills): remove ClawHub catalog integration Drop the ClawHub registry as a skills catalog source across web server, shared UI, VS Code, docs, and locales. The catalog now serves git-based sources only: the curated Anthropic repo and user-defined repositories. Also removes the now-unused adm-zip dependency. * feat(skills): redesign catalog around curated GitHub repositories Replace the single-source dropdown with a card grid of curated GitHub repositories (Anthropic, OpenAI, Cursor pstack/skills, Matt Pocock) plus user-defined sources. Source cards show skill counts, GitHub stars, and last-updated time; a global search covers all loaded sources. Server: curated sources gain GitHub repo metadata (stars, pushed_at) fetched best-effort with a 3-hour in-memory and on-disk cache; scans run through a concurrency-limited, deduplicated cache with 3-hour TTL persisted across restarts. Refresh still bypasses the cache. Shared UI: source cards, global search with clear button, per-skill GitHub links, install/installed states. VS Code curated list updated to match. All new copy translated across 12 locales. * fix(skills): address catalog review findings - GitHub metadata fetch timeout drops to 1.5s (under the catalog client's 3s deadline) and failed lookups cache briefly (5 min) so repeated catalog loads do not re-hit a failing API. - Disk cache files are written with owner-only permissions (0o600); rename preserves the mode. - loadSource deduplicates concurrent in-flight requests per source and the shared isLoadingSource flag now clears only when the last active source load finishes.
This commit is contained in:
committed by
GitHub
parent
90d8868bfc
commit
1ed3f1f575
@@ -845,16 +845,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': 'Manuell',
|
||||
'settings.skills.catalog.page.mode.external': 'Extern',
|
||||
'settings.skills.catalog.page.title': 'Fähigkeitskatalog',
|
||||
'settings.skills.catalog.page.subtitle': 'Installiere fertige Skills aus kuratierten Repositories oder füge eine eigene Quelle hinzu.',
|
||||
'settings.skills.catalog.page.section.sources': 'Quellen',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Skills in allen Quellen suchen…',
|
||||
'settings.skills.catalog.page.search.clear': 'Suche löschen',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'Skills: {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'Sterne: {count}',
|
||||
'settings.skills.catalog.page.source.updated': 'Aktualisiert {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Eigene Quelle hinzufügen',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'Beliebiges Git-Repository mit Skills',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Repository auf GitHub öffnen',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'Skill auf GitHub ansehen',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Suchergebnisse',
|
||||
'settings.skills.catalog.page.section.sourceRepository': 'Quell-Repository',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': 'Quelle auswählen',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': 'Aktualisieren',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': 'Katalog entfernen',
|
||||
'settings.skills.catalog.page.actions.addCatalog': 'Katalog hinzufügen',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': 'Katalog entfernen',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': 'Weitere Fähigkeiten laden',
|
||||
'settings.skills.catalog.page.loading.catalog': 'Wird geladen...',
|
||||
'settings.skills.catalog.page.loading.skills': 'Fähigkeiten werden geladen...',
|
||||
'settings.skills.catalog.page.loading.more': 'Wird geladen...',
|
||||
'settings.skills.catalog.page.foundCount': '{count} Fähigkeit(en) gefunden',
|
||||
'settings.skills.catalog.page.error.catalogTitle': 'Katalogfehler',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': 'Keine Fähigkeiten gefunden',
|
||||
@@ -862,7 +872,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': 'installiert ({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': 'nicht installierbar',
|
||||
'settings.skills.catalog.page.badge.unknown': 'unbekannt',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': 'von',
|
||||
'settings.skills.catalog.page.removeDialog.title': 'Katalog entfernen',
|
||||
'settings.skills.catalog.page.removeDialog.description': 'Sind Sie sicher, dass Sie diesen Katalog entfernen möchten?',
|
||||
'settings.openchamber.passkeys.title': 'Passkeys',
|
||||
|
||||
@@ -897,16 +897,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': 'Manual',
|
||||
'settings.skills.catalog.page.mode.external': 'External',
|
||||
'settings.skills.catalog.page.title': 'Skills Catalog',
|
||||
'settings.skills.catalog.page.subtitle': 'Install ready-made skills from curated repositories, or add your own source.',
|
||||
'settings.skills.catalog.page.section.sources': 'Sources',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Search skills across all sources…',
|
||||
'settings.skills.catalog.page.search.clear': 'Clear search',
|
||||
'settings.skills.catalog.page.source.skillsCount': '{count} skills',
|
||||
'settings.skills.catalog.page.source.stars': '{count} stars',
|
||||
'settings.skills.catalog.page.source.updated': 'Updated {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Add your own source',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'Any Git repository with skills',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Open repository on GitHub',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'View skill on GitHub',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Search results',
|
||||
'settings.skills.catalog.page.section.sourceRepository': 'Source Repository',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': 'Select source',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': 'Refresh',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': 'Remove Catalog',
|
||||
'settings.skills.catalog.page.actions.addCatalog': 'Add Catalog',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': 'Remove Catalog',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': 'Load More Skills',
|
||||
'settings.skills.catalog.page.loading.catalog': 'Loading...',
|
||||
'settings.skills.catalog.page.loading.skills': 'Loading skills...',
|
||||
'settings.skills.catalog.page.loading.more': 'Loading...',
|
||||
'settings.skills.catalog.page.foundCount': '{count} skill(s) found',
|
||||
'settings.skills.catalog.page.error.catalogTitle': 'Catalog error',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': 'No skills found',
|
||||
@@ -914,7 +924,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': 'installed ({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': 'not installable',
|
||||
'settings.skills.catalog.page.badge.unknown': 'unknown',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': 'by',
|
||||
'settings.skills.catalog.page.removeDialog.title': 'Remove Catalog',
|
||||
'settings.skills.catalog.page.removeDialog.description': 'Are you sure you want to remove this catalog?',
|
||||
'settings.openchamber.passkeys.title': 'Passkeys',
|
||||
|
||||
@@ -865,16 +865,26 @@ export const settingsDict = {
|
||||
"settings.skills.catalog.page.mode.manual": "Manual",
|
||||
"settings.skills.catalog.page.mode.external": "Externo",
|
||||
"settings.skills.catalog.page.title": "Catálogo de habilidades",
|
||||
'settings.skills.catalog.page.subtitle': 'Instala skills listos desde repositorios curados o añade tu propia fuente.',
|
||||
'settings.skills.catalog.page.section.sources': 'Fuentes',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Buscar skills en todas las fuentes…',
|
||||
'settings.skills.catalog.page.search.clear': 'Borrar búsqueda',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'Skills: {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'Estrellas: {count}',
|
||||
'settings.skills.catalog.page.source.updated': 'Actualizado {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Añadir tu propia fuente',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'Cualquier repositorio Git con skills',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Abrir repositorio en GitHub',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'Ver skill en GitHub',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Resultados de búsqueda',
|
||||
"settings.skills.catalog.page.section.sourceRepository": "Repositorio de origen",
|
||||
"settings.skills.catalog.page.field.selectSourcePlaceholder": "Seleccionar origen",
|
||||
"settings.skills.catalog.page.actions.refreshTitle": "Actualizar",
|
||||
"settings.skills.catalog.page.actions.removeCatalogTitle": "Eliminar catálogo",
|
||||
"settings.skills.catalog.page.actions.addCatalog": "Añadir catálogo",
|
||||
"settings.skills.catalog.page.actions.removeCatalog": "Eliminar catálogo",
|
||||
"settings.skills.catalog.page.actions.loadMoreSkills": "Cargar más habilidades",
|
||||
"settings.skills.catalog.page.loading.catalog": "Cargando...",
|
||||
"settings.skills.catalog.page.loading.skills": "Cargando habilidades...",
|
||||
"settings.skills.catalog.page.loading.more": "Cargando...",
|
||||
"settings.skills.catalog.page.foundCount": "{count} habilidad(es) encontrada(s)",
|
||||
"settings.skills.catalog.page.error.catalogTitle": "Error del catálogo",
|
||||
"settings.skills.catalog.page.empty.noSkillsTitle": "No se encontraron habilidades",
|
||||
@@ -882,7 +892,6 @@ export const settingsDict = {
|
||||
"settings.skills.catalog.page.badge.installed": "instalado ({scope})",
|
||||
"settings.skills.catalog.page.badge.notInstallable": "no instalable",
|
||||
"settings.skills.catalog.page.badge.unknown": "desconocido",
|
||||
"settings.skills.catalog.page.byOwnerPrefix": "por",
|
||||
"settings.skills.catalog.page.removeDialog.title": "Eliminar catálogo",
|
||||
"settings.skills.catalog.page.removeDialog.description": "¿Estás seguro de que quieres eliminar este catálogo?",
|
||||
"settings.openchamber.passkeys.title": "Claves de paso",
|
||||
|
||||
@@ -783,16 +783,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': 'Manuel',
|
||||
'settings.skills.catalog.page.mode.external': 'Externe',
|
||||
'settings.skills.catalog.page.title': 'Catalogue de skills',
|
||||
'settings.skills.catalog.page.subtitle': "Installez des skills prêts à l'emploi depuis des dépôts curatés ou ajoutez votre propre source.",
|
||||
'settings.skills.catalog.page.section.sources': 'Sources',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Rechercher des skills dans toutes les sources…',
|
||||
'settings.skills.catalog.page.search.clear': 'Effacer la recherche',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'Skills : {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'Étoiles : {count}',
|
||||
'settings.skills.catalog.page.source.updated': 'Mis à jour {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Ajouter votre propre source',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': "N'importe quel dépôt Git avec des skills",
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Ouvrir le dépôt sur GitHub',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'Voir le skill sur GitHub',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Résultats de recherche',
|
||||
'settings.skills.catalog.page.section.sourceRepository': 'Dépôt source',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': 'Sélectionnez la source',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': 'Rafraîchir',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': 'Supprimer le catalogue',
|
||||
'settings.skills.catalog.page.actions.addCatalog': 'Ajouter un catalogue',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': 'Supprimer le catalogue',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': 'Charger plus de skills',
|
||||
'settings.skills.catalog.page.loading.catalog': 'Chargement...',
|
||||
'settings.skills.catalog.page.loading.skills': 'Chargement des skills...',
|
||||
'settings.skills.catalog.page.loading.more': 'Chargement...',
|
||||
'settings.skills.catalog.page.foundCount': '{count} skill(s) trouvé(s)',
|
||||
'settings.skills.catalog.page.error.catalogTitle': 'Erreur de catalogue',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': 'Aucun skill trouvé',
|
||||
@@ -800,7 +810,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': 'installé ({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': 'non installable',
|
||||
'settings.skills.catalog.page.badge.unknown': 'inconnu',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': 'par',
|
||||
'settings.skills.catalog.page.removeDialog.title': 'Supprimer le catalogue',
|
||||
'settings.skills.catalog.page.removeDialog.description': 'Êtes-vous sûr de vouloir supprimer ce catalogue ?',
|
||||
'settings.openchamber.passkeys.title': 'Mots-clés',
|
||||
|
||||
@@ -898,16 +898,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': '手動',
|
||||
'settings.skills.catalog.page.mode.external': '外部',
|
||||
'settings.skills.catalog.page.title': 'スキルカタログ',
|
||||
'settings.skills.catalog.page.subtitle': 'キュレーションされたリポジトリからすぐ使えるスキルをインストール、または独自のソースを追加。',
|
||||
'settings.skills.catalog.page.section.sources': 'ソース',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'すべてのソースのスキルを検索…',
|
||||
'settings.skills.catalog.page.search.clear': '検索をクリア',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'スキル数: {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'スター: {count}',
|
||||
'settings.skills.catalog.page.source.updated': '更新: {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': '独自のソースを追加',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'スキルを含む任意の Git リポジトリ',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'GitHub でリポジトリを開く',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'GitHub でスキルを表示',
|
||||
'settings.skills.catalog.page.list.searchTitle': '検索結果',
|
||||
'settings.skills.catalog.page.section.sourceRepository': 'ソースリポジトリ',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': 'ソースを選択',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': '更新',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': 'カタログを削除',
|
||||
'settings.skills.catalog.page.actions.addCatalog': 'カタログを追加',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': 'カタログを削除',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': 'さらに Skill を読み込む',
|
||||
'settings.skills.catalog.page.loading.catalog': '読み込み中...',
|
||||
'settings.skills.catalog.page.loading.skills': 'Skill を読み込み中...',
|
||||
'settings.skills.catalog.page.loading.more': '読み込み中...',
|
||||
'settings.skills.catalog.page.foundCount': '{count} 個の Skill が見つかりました',
|
||||
'settings.skills.catalog.page.error.catalogTitle': 'カタログエラー',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': 'Skill が見つかりません',
|
||||
@@ -915,7 +925,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': 'インストール済み ({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': 'インストール不可',
|
||||
'settings.skills.catalog.page.badge.unknown': '不明',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': '提供',
|
||||
'settings.skills.catalog.page.removeDialog.title': 'カタログを削除',
|
||||
'settings.skills.catalog.page.removeDialog.description': 'このカタログを削除してもよろしいですか?',
|
||||
'settings.openchamber.passkeys.title': 'パスキー',
|
||||
|
||||
@@ -865,16 +865,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': '수동',
|
||||
'settings.skills.catalog.page.mode.external': 'External',
|
||||
'settings.skills.catalog.page.title': '스킬 카탈로그',
|
||||
'settings.skills.catalog.page.subtitle': '선별된 저장소에서 바로 사용 가능한 스킬을 설치하거나 직접 소스를 추가하세요.',
|
||||
'settings.skills.catalog.page.section.sources': '소스',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': '모든 소스에서 스킬 검색…',
|
||||
'settings.skills.catalog.page.search.clear': '검색 지우기',
|
||||
'settings.skills.catalog.page.source.skillsCount': '스킬: {count}개',
|
||||
'settings.skills.catalog.page.source.stars': '스타: {count}',
|
||||
'settings.skills.catalog.page.source.updated': '업데이트: {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': '직접 소스 추가',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': '스킬이 있는 아무 Git 저장소',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'GitHub에서 저장소 열기',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'GitHub에서 스킬 보기',
|
||||
'settings.skills.catalog.page.list.searchTitle': '검색 결과',
|
||||
'settings.skills.catalog.page.section.sourceRepository': '카탈로그 저장소',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': '저장소 선택',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': '새로고침',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': 'Catalog 제거',
|
||||
'settings.skills.catalog.page.actions.addCatalog': 'Catalog 추가',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': 'Catalog 제거',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': '스킬 더 불러오기',
|
||||
'settings.skills.catalog.page.loading.catalog': '로딩 중...',
|
||||
'settings.skills.catalog.page.loading.skills': '스킬 불러오는 중...',
|
||||
'settings.skills.catalog.page.loading.more': '로딩 중...',
|
||||
'settings.skills.catalog.page.foundCount': '스킬 {count}개 발견',
|
||||
'settings.skills.catalog.page.error.catalogTitle': 'Catalog 오류',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': '스킬을 찾을 수 없습니다',
|
||||
@@ -882,7 +892,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': '설치됨({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': '설치할 수 없음',
|
||||
'settings.skills.catalog.page.badge.unknown': '알 수 없음',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': '작성자',
|
||||
'settings.skills.catalog.page.removeDialog.title': 'Catalog 제거',
|
||||
'settings.skills.catalog.page.removeDialog.description': '이 카탈로그를 제거하시겠습니까?',
|
||||
'settings.openchamber.passkeys.title': 'Passkeys',
|
||||
|
||||
@@ -1825,21 +1825,18 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.installSkill.toast.installFailed': 'Nie udało się zainstalować umiejętności',
|
||||
'settings.skills.catalog.installSkill.toast.installed': 'Umiejętność została zainstalowana',
|
||||
'settings.skills.catalog.page.actions.addCatalog': 'Dodaj katalog',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': 'Załaduj więcej umiejętności',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': 'Odśwież',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': 'Usuń katalog',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': 'Usuń katalog',
|
||||
'settings.skills.catalog.page.badge.installed': 'zainstalowano ({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': 'nie można zainstalować',
|
||||
'settings.skills.catalog.page.badge.unknown': 'nieznane',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': 'autor:',
|
||||
'settings.skills.catalog.page.empty.noSkillsDescription': 'Spróbuj innego wyszukiwania lub odśwież katalog',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': 'Nie znaleziono umiejętności',
|
||||
'settings.skills.catalog.page.error.catalogTitle': 'Błąd katalogu',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': 'Wybierz źródło',
|
||||
'settings.skills.catalog.page.foundCount': 'Znaleziono {count} umiejętności',
|
||||
'settings.skills.catalog.page.loading.catalog': 'Ładowanie...',
|
||||
'settings.skills.catalog.page.loading.more': 'Ładowanie...',
|
||||
'settings.skills.catalog.page.loading.skills': 'Ładowanie umiejętności...',
|
||||
'settings.skills.catalog.page.mode.external': 'Zewnętrzny',
|
||||
'settings.skills.catalog.page.mode.manual': 'Ręczny',
|
||||
@@ -1847,6 +1844,18 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.removeDialog.title': 'Usuń katalog',
|
||||
'settings.skills.catalog.page.section.sourceRepository': 'Repozytorium źródłowe',
|
||||
'settings.skills.catalog.page.title': 'Katalog umiejętności',
|
||||
'settings.skills.catalog.page.subtitle': 'Instaluj gotowe umiejętności z kuratorowanych repozytoriów lub dodaj własne źródło.',
|
||||
'settings.skills.catalog.page.section.sources': 'Źródła',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Szukaj umiejętności we wszystkich źródłach…',
|
||||
'settings.skills.catalog.page.search.clear': 'Wyczyść wyszukiwanie',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'Umiejętności: {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'Gwiazdki: {count}',
|
||||
'settings.skills.catalog.page.source.updated': 'Zaktualizowano {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Dodaj własne źródło',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'Dowolne repozytorium Git z umiejętnościami',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Otwórz repozytorium na GitHubie',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'Zobacz umiejętność na GitHubie',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Wyniki wyszukiwania',
|
||||
'settings.skills.catalog.shared.actions.install': 'Zainstaluj',
|
||||
'settings.skills.catalog.shared.actions.installing': 'Instalowanie...',
|
||||
'settings.skills.catalog.shared.actions.scan': 'Skanuj',
|
||||
|
||||
@@ -865,16 +865,26 @@ export const settingsDict = {
|
||||
"settings.skills.catalog.page.mode.manual": "Manual",
|
||||
"settings.skills.catalog.page.mode.external": "Externo",
|
||||
"settings.skills.catalog.page.title": "Catálogo de habilidades",
|
||||
'settings.skills.catalog.page.subtitle': 'Instale skills prontas de repositórios curados ou adicione sua própria fonte.',
|
||||
'settings.skills.catalog.page.section.sources': 'Fontes',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Pesquisar skills em todas as fontes…',
|
||||
'settings.skills.catalog.page.search.clear': 'Limpar pesquisa',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'Skills: {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'Estrelas: {count}',
|
||||
'settings.skills.catalog.page.source.updated': 'Atualizado {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Adicionar sua própria fonte',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'Qualquer repositório Git com skills',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Abrir repositório no GitHub',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'Ver skill no GitHub',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Resultados da pesquisa',
|
||||
"settings.skills.catalog.page.section.sourceRepository": "Repositório de origem",
|
||||
"settings.skills.catalog.page.field.selectSourcePlaceholder": "Selecionar origem",
|
||||
"settings.skills.catalog.page.actions.refreshTitle": "Atualizar",
|
||||
"settings.skills.catalog.page.actions.removeCatalogTitle": "Excluir catálogo",
|
||||
"settings.skills.catalog.page.actions.addCatalog": "Adicionar catálogo",
|
||||
"settings.skills.catalog.page.actions.removeCatalog": "Excluir catálogo",
|
||||
"settings.skills.catalog.page.actions.loadMoreSkills": "Carregar mais habilidades",
|
||||
"settings.skills.catalog.page.loading.catalog": "Carregando...",
|
||||
"settings.skills.catalog.page.loading.skills": "Carregando habilidades...",
|
||||
"settings.skills.catalog.page.loading.more": "Carregando...",
|
||||
"settings.skills.catalog.page.foundCount": "{count} habilidade(es) encontrada(s)",
|
||||
"settings.skills.catalog.page.error.catalogTitle": "Erro do catálogo",
|
||||
"settings.skills.catalog.page.empty.noSkillsTitle": "Nenhuma habilidade encontrada",
|
||||
@@ -882,7 +892,6 @@ export const settingsDict = {
|
||||
"settings.skills.catalog.page.badge.installed": "instalado ({scope})",
|
||||
"settings.skills.catalog.page.badge.notInstallable": "não instalável",
|
||||
"settings.skills.catalog.page.badge.unknown": "desconhecido",
|
||||
"settings.skills.catalog.page.byOwnerPrefix": "por",
|
||||
"settings.skills.catalog.page.removeDialog.title": "Excluir catálogo",
|
||||
"settings.skills.catalog.page.removeDialog.description": "Tem certeza de que deseja excluir este catálogo?",
|
||||
"settings.openchamber.passkeys.title": "Chaves de acesso",
|
||||
|
||||
@@ -865,16 +865,26 @@ export const settingsDict = {
|
||||
"settings.skills.catalog.page.mode.manual": "Вручну",
|
||||
"settings.skills.catalog.page.mode.external": "зовнішній",
|
||||
"settings.skills.catalog.page.title": "Каталог навичок",
|
||||
'settings.skills.catalog.page.subtitle': 'Встановлюйте готові скіли з курованих репозиторіїв або додайте власне джерело.',
|
||||
'settings.skills.catalog.page.section.sources': 'Джерела',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': 'Пошук скілів у всіх джерелах…',
|
||||
'settings.skills.catalog.page.search.clear': 'Очистити пошук',
|
||||
'settings.skills.catalog.page.source.skillsCount': 'Скілів: {count}',
|
||||
'settings.skills.catalog.page.source.stars': 'Зірок: {count}',
|
||||
'settings.skills.catalog.page.source.updated': 'Оновлено {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': 'Додати власне джерело',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': 'Будь-який git-репозиторій зі скілами',
|
||||
'settings.skills.catalog.page.source.viewRepo': 'Відкрити репозиторій на GitHub',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': 'Переглянути скіл на GitHub',
|
||||
'settings.skills.catalog.page.list.searchTitle': 'Результати пошуку',
|
||||
"settings.skills.catalog.page.section.sourceRepository": "Репозиторій вихідного коду",
|
||||
"settings.skills.catalog.page.field.selectSourcePlaceholder": "Виберіть джерело",
|
||||
"settings.skills.catalog.page.actions.refreshTitle": "Оновити",
|
||||
"settings.skills.catalog.page.actions.removeCatalogTitle": "Видалити каталог",
|
||||
"settings.skills.catalog.page.actions.addCatalog": "Додати каталог",
|
||||
"settings.skills.catalog.page.actions.removeCatalog": "Видалити каталог",
|
||||
"settings.skills.catalog.page.actions.loadMoreSkills": "Завантажити додаткові навички",
|
||||
"settings.skills.catalog.page.loading.catalog": "Завантаження...",
|
||||
"settings.skills.catalog.page.loading.skills": "Завантаження навичок...",
|
||||
"settings.skills.catalog.page.loading.more": "Завантаження...",
|
||||
"settings.skills.catalog.page.foundCount": "Знайдено навички {count}",
|
||||
"settings.skills.catalog.page.error.catalogTitle": "Помилка каталогу",
|
||||
"settings.skills.catalog.page.empty.noSkillsTitle": "Навички не знайдено",
|
||||
@@ -882,7 +892,6 @@ export const settingsDict = {
|
||||
"settings.skills.catalog.page.badge.installed": "встановлено ({scope})",
|
||||
"settings.skills.catalog.page.badge.notInstallable": "не встановлюється",
|
||||
"settings.skills.catalog.page.badge.unknown": "невідомий",
|
||||
"settings.skills.catalog.page.byOwnerPrefix": "за",
|
||||
"settings.skills.catalog.page.removeDialog.title": "Видалити каталог",
|
||||
"settings.skills.catalog.page.removeDialog.description": "Ви впевнені, що хочете видалити цей каталог?",
|
||||
"settings.openchamber.passkeys.title": "Ключі доступу",
|
||||
|
||||
@@ -865,16 +865,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': '手动',
|
||||
'settings.skills.catalog.page.mode.external': '外部',
|
||||
'settings.skills.catalog.page.title': '技能目录',
|
||||
'settings.skills.catalog.page.subtitle': '从精选仓库安装现成技能,或添加你自己的来源。',
|
||||
'settings.skills.catalog.page.section.sources': '来源',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': '在所有来源中搜索技能…',
|
||||
'settings.skills.catalog.page.search.clear': '清除搜索',
|
||||
'settings.skills.catalog.page.source.skillsCount': '技能数:{count}',
|
||||
'settings.skills.catalog.page.source.stars': '星标:{count}',
|
||||
'settings.skills.catalog.page.source.updated': '更新于 {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': '添加自己的来源',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': '任何包含技能的 Git 仓库',
|
||||
'settings.skills.catalog.page.source.viewRepo': '在 GitHub 上打开仓库',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': '在 GitHub 上查看技能',
|
||||
'settings.skills.catalog.page.list.searchTitle': '搜索结果',
|
||||
'settings.skills.catalog.page.section.sourceRepository': '来源仓库',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': '选择来源',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': '刷新',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': '移除目录',
|
||||
'settings.skills.catalog.page.actions.addCatalog': '添加目录',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': '移除目录',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': '加载更多技能',
|
||||
'settings.skills.catalog.page.loading.catalog': '加载中...',
|
||||
'settings.skills.catalog.page.loading.skills': '正在加载技能...',
|
||||
'settings.skills.catalog.page.loading.more': '加载中...',
|
||||
'settings.skills.catalog.page.foundCount': '找到 {count} 个技能',
|
||||
'settings.skills.catalog.page.error.catalogTitle': '目录错误',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': '未找到技能',
|
||||
@@ -882,7 +892,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': '已安装({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': '不可安装',
|
||||
'settings.skills.catalog.page.badge.unknown': '未知',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': '作者',
|
||||
'settings.skills.catalog.page.removeDialog.title': '移除目录',
|
||||
'settings.skills.catalog.page.removeDialog.description': '确定要移除此目录吗?',
|
||||
'settings.openchamber.passkeys.title': 'Passkeys',
|
||||
|
||||
@@ -862,16 +862,26 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.mode.manual': '手動',
|
||||
'settings.skills.catalog.page.mode.external': '外部',
|
||||
'settings.skills.catalog.page.title': 'Skills 目錄',
|
||||
'settings.skills.catalog.page.subtitle': '從精選儲存庫安裝現成技能,或新增你自己的來源。',
|
||||
'settings.skills.catalog.page.section.sources': '來源',
|
||||
'settings.skills.catalog.page.searchAllPlaceholder': '在所有來源中搜尋技能…',
|
||||
'settings.skills.catalog.page.search.clear': '清除搜尋',
|
||||
'settings.skills.catalog.page.source.skillsCount': '技能數:{count}',
|
||||
'settings.skills.catalog.page.source.stars': '星標:{count}',
|
||||
'settings.skills.catalog.page.source.updated': '更新於 {time}',
|
||||
'settings.skills.catalog.page.source.addOwnTitle': '新增自己的來源',
|
||||
'settings.skills.catalog.page.source.addOwnDescription': '任何包含技能的 Git 儲存庫',
|
||||
'settings.skills.catalog.page.source.viewRepo': '在 GitHub 上開啟儲存庫',
|
||||
'settings.skills.catalog.page.skill.viewOnGithub': '在 GitHub 上檢視技能',
|
||||
'settings.skills.catalog.page.list.searchTitle': '搜尋結果',
|
||||
'settings.skills.catalog.page.section.sourceRepository': '來源儲存庫',
|
||||
'settings.skills.catalog.page.field.selectSourcePlaceholder': '選擇來源',
|
||||
'settings.skills.catalog.page.actions.refreshTitle': '重新整理',
|
||||
'settings.skills.catalog.page.actions.removeCatalogTitle': '移除目錄',
|
||||
'settings.skills.catalog.page.actions.addCatalog': '新增目錄',
|
||||
'settings.skills.catalog.page.actions.removeCatalog': '移除目錄',
|
||||
'settings.skills.catalog.page.actions.loadMoreSkills': '載入更多 Skills',
|
||||
'settings.skills.catalog.page.loading.catalog': '載入中...',
|
||||
'settings.skills.catalog.page.loading.skills': '正在載入 skills...',
|
||||
'settings.skills.catalog.page.loading.more': '載入中...',
|
||||
'settings.skills.catalog.page.foundCount': '找到 {count} 個 skill(s)',
|
||||
'settings.skills.catalog.page.error.catalogTitle': '目錄錯誤',
|
||||
'settings.skills.catalog.page.empty.noSkillsTitle': '找不到 skills',
|
||||
@@ -879,7 +889,6 @@ export const settingsDict = {
|
||||
'settings.skills.catalog.page.badge.installed': '已安裝({scope})',
|
||||
'settings.skills.catalog.page.badge.notInstallable': '不可安裝',
|
||||
'settings.skills.catalog.page.badge.unknown': '未知',
|
||||
'settings.skills.catalog.page.byOwnerPrefix': '作者',
|
||||
'settings.skills.catalog.page.removeDialog.title': '移除目錄',
|
||||
'settings.skills.catalog.page.removeDialog.description': '確定要移除此目錄嗎?',
|
||||
'settings.openchamber.passkeys.title': 'Passkeys',
|
||||
|
||||
Reference in New Issue
Block a user