Skip to content

Commit d33b3c8

Browse files
nullvariantclaude
andauthored
feat(i18n): complete translation coverage for command.showDocumentation (#148)
* feat(i18n): add missing command.showDocumentation translations (15 languages) Added translations for the Show Documentation command to all package.nls files that were missing this key. This completes i18n coverage for all 37 translation keys across 17 supported languages. Changes: - Added command.showDocumentation to: zh-CN, zh-TW, ko, de, fr, es, it, pt-BR, ru, pl, hu, cs, bg, uk, tr - Added i18n.test.ts with 352 lines of test coverage - Version bump to 0.11.2 - Updated CHANGELOG with release notes Test: npm test passes with all i18n keys validated 🖥️ IDE: [Cursor](https://cursor.sh) 🔌 Extension: [Claude Code](https://claude.ai/download) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Model-Raw: claude-opus-4-5-20251101 * refactor(test): reduce duplication in i18n.test.ts Extract common test logic into generic functions: - testKeyCoverage() with TranslationConfig parameter - detectObsoleteKeys() with TranslationConfig parameter Reduces code from 352 to 219 lines (-38%) while maintaining identical test coverage and functionality. SonarCloud was flagging 15.6% duplication on new code. 🖥️ IDE: [Cursor](https://cursor.sh) 🔌 Extension: [Claude Code](https://claude.ai/download) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Model-Raw: claude-opus-4-5-20251101 --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 8c4bcaf commit d33b3c8

21 files changed

Lines changed: 308 additions & 19 deletions

extensions/git-id-switcher/CHANGELOG.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.11.2] - 2026-01-14
11+
12+
### Added
13+
14+
- **i18n: Complete Translation Coverage**
15+
- Added missing `command.showDocumentation` translations to 15 languages (zh-CN, zh-TW, ko, de, fr, es, it, pt-BR, ru, pl, hu, cs, bg, uk, tr)
16+
- All package.nls translation keys now have 100% coverage across 17 languages
17+
- Test coverage added to verify i18n key consistency
18+
1019
## [0.11.1] - 2026-01-12
1120

1221
### Fixed
@@ -1132,7 +1141,17 @@ This release includes comprehensive security hardening across multiple areas.
11321141
- `gitIdentitySwitcher.autoSwitchSshKey`: Auto SSH key switching
11331142
- `gitIdentitySwitcher.showNotifications`: Show switch notifications
11341143

1135-
[Unreleased]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.41...HEAD
1144+
[Unreleased]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.11.2...HEAD
1145+
[0.11.2]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.11.1...git-id-switcher-v0.11.2
1146+
[0.11.1]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.11.0...git-id-switcher-v0.11.1
1147+
[0.11.0]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.48...git-id-switcher-v0.11.0
1148+
[0.10.48]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.47...git-id-switcher-v0.10.48
1149+
[0.10.47]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.46...git-id-switcher-v0.10.47
1150+
[0.10.46]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.45...git-id-switcher-v0.10.46
1151+
[0.10.45]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.44...git-id-switcher-v0.10.45
1152+
[0.10.44]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.43...git-id-switcher-v0.10.44
1153+
[0.10.43]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.42...git-id-switcher-v0.10.43
1154+
[0.10.42]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.41...git-id-switcher-v0.10.42
11361155
[0.10.41]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.40...git-id-switcher-v0.10.41
11371156
[0.10.40]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.39...git-id-switcher-v0.10.40
11381157
[0.10.39]: https://github.com/nullvariant/nullvariant-vscode-extensions/compare/git-id-switcher-v0.10.38...git-id-switcher-v0.10.39

extensions/git-id-switcher/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "git-id-switcher",
33
"displayName": "%extension.displayName%",
44
"description": "%extension.description%",
5-
"version": "0.11.1",
5+
"version": "0.11.2",
66
"publisher": "nullvariant",
77
"icon": "images/icon.png",
88
"engines": {

extensions/git-id-switcher/package.nls.bg.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Превключване между Git самоличности (профили) с едно кликване. SSH ключове и GPG подписване свързани, приложими към подмодули.",
44
"command.selectIdentity": "Git ID: Избор на самоличност",
55
"command.showCurrentIdentity": "Git ID: Показване на текущата самоличност",
6+
"command.showDocumentation": "Показване на документация",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Идентичност",
89
"config.category.submodule": "Git ID Switcher: Подмодул",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Максимален размер на файла преди ротация (байтове, по подразбиране: 10MB)",
3334
"config.logging.maxFiles": "Максимален брой ротирани файлове (по подразбиране: 5)",
3435
"config.commandTimeouts": "Персонализирани стойности за изчакване на команди (в милисекунди)",
35-
"config.commandTimeouts.markdown": "Заменяне на времената за изчакване по подразбиране. Пример:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nСтойности по подразбиране: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, други=30000ms"
36+
"config.commandTimeouts.markdown": "Заменяне на времената за изчакване по подразбиране. Пример:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nСтойности по подразбиране: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, други=30000ms",
37+
"config.disableWorkspaceTrust": "Деактивиране на проверките за доверие към работното пространство (не се препоръчва)",
38+
"config.disableWorkspaceTrust.markdown": "**Предупреждение за сигурност:** Деактивира ограниченията за доверие към работното пространство за това разширение.\n\nКогато е включено, опасни операции (промени в конфигурацията на Git, операции с SSH ключове) ще бъдат разрешени в недоверени работни пространства.\n\nИзползвайте само при крайна необходимост и ограничете използването до минимум."
3639
}

extensions/git-id-switcher/package.nls.cs.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Přepínání mezi Git identitami (profily) jedním kliknutím. SSH klíče a GPG podepisování propojené, aplikovatelné na submoduly.",
44
"command.selectIdentity": "Git ID: Vybrat identitu",
55
"command.showCurrentIdentity": "Git ID: Zobrazit aktuální identitu",
6+
"command.showDocumentation": "Zobrazit dokumentaci",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Identita",
89
"config.category.submodule": "Git ID Switcher: Submodul",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Maximální velikost souboru před rotací (bajty, výchozí: 10MB)",
3334
"config.logging.maxFiles": "Maximální počet rotovaných souborů (výchozí: 5)",
3435
"config.commandTimeouts": "Vlastní hodnoty časového limitu pro příkazy (v milisekundách)",
35-
"config.commandTimeouts.markdown": "Přepsat výchozí časové limity příkazů. Příklad:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nVýchozí hodnoty: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, ostatní=30000ms"
36+
"config.commandTimeouts.markdown": "Přepsat výchozí časové limity příkazů. Příklad:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nVýchozí hodnoty: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, ostatní=30000ms",
37+
"config.disableWorkspaceTrust": "Zakázat kontroly důvěryhodnosti pracovního prostoru (nedoporučeno)",
38+
"config.disableWorkspaceTrust.markdown": "**Bezpečnostní varování:** Zakáže omezení důvěryhodnosti pracovního prostoru pro toto rozšíření.\n\nPokud je povoleno, nebezpečné operace (změny konfigurace Git, operace s SSH klíči) budou povoleny v nedůvěryhodných pracovních prostorech.\n\nPoužívejte pouze v případě absolutní nutnosti a omezte použití na minimum."
3639
}

extensions/git-id-switcher/package.nls.de.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Mehrere Git-Identitäten (Profile) mit einem Klick wechseln. SSH-Schlüssel und GPG-Signierung sind verknüpft, auch auf Submodule anwendbar.",
44
"command.selectIdentity": "Git ID: Identität auswählen",
55
"command.showCurrentIdentity": "Git ID: Aktuelle Identität anzeigen",
6+
"command.showDocumentation": "Dokumentation anzeigen",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Identität",
89
"config.category.submodule": "Git ID Switcher: Submodul",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Maximale Dateigröße vor Rotation (Bytes, Standard: 10MB)",
3334
"config.logging.maxFiles": "Maximale Anzahl der zu behaltenden rotierten Dateien (Standard: 5)",
3435
"config.commandTimeouts": "Benutzerdefinierte Timeout-Werte für Befehle (in Millisekunden)",
35-
"config.commandTimeouts.markdown": "Standard-Befehls-Timeouts überschreiben. Beispiel:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nStandardwerte: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, andere=30000ms"
36+
"config.commandTimeouts.markdown": "Standard-Befehls-Timeouts überschreiben. Beispiel:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nStandardwerte: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, andere=30000ms",
37+
"config.disableWorkspaceTrust": "Arbeitsbereichsvertrauen-Prüfungen deaktivieren (nicht empfohlen)",
38+
"config.disableWorkspaceTrust.markdown": "**Sicherheitswarnung:** Deaktiviert die Arbeitsbereichsvertrauen-Einschränkungen für diese Erweiterung.\n\nWenn aktiviert, werden gefährliche Operationen (Git-Konfigurationsänderungen, SSH-Schlüssel-Operationen) in nicht vertrauenswürdigen Arbeitsbereichen erlaubt.\n\nNur verwenden, wenn unbedingt erforderlich, und die Nutzung auf ein Minimum beschränken."
3639
}

extensions/git-id-switcher/package.nls.es.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Cambie entre identidades Git (perfiles) con un clic. Claves SSH y firma GPG vinculadas, aplicable a submódulos.",
44
"command.selectIdentity": "Git ID: Seleccionar identidad",
55
"command.showCurrentIdentity": "Git ID: Mostrar identidad actual",
6+
"command.showDocumentation": "Mostrar documentación",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Identidad",
89
"config.category.submodule": "Git ID Switcher: Submódulo",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Tamaño máximo del archivo antes de rotación (bytes, predeterminado: 10MB)",
3334
"config.logging.maxFiles": "Número máximo de archivos rotados a conservar (predeterminado: 5)",
3435
"config.commandTimeouts": "Valores de tiempo de espera personalizados para comandos (en milisegundos)",
35-
"config.commandTimeouts.markdown": "Anular los tiempos de espera predeterminados de comandos. Ejemplo:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nValores predeterminados: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, otros=30000ms"
36+
"config.commandTimeouts.markdown": "Anular los tiempos de espera predeterminados de comandos. Ejemplo:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nValores predeterminados: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, otros=30000ms",
37+
"config.disableWorkspaceTrust": "Desactivar las comprobaciones de confianza del espacio de trabajo (no recomendado)",
38+
"config.disableWorkspaceTrust.markdown": "**Advertencia de seguridad:** Desactiva las restricciones de confianza del espacio de trabajo para esta extensión.\n\nCuando está activado, se permitirán operaciones peligrosas (cambios de configuración de Git, operaciones de claves SSH) en espacios de trabajo no confiables.\n\nUsar solo cuando sea absolutamente necesario y limitar el uso al mínimo."
3639
}

extensions/git-id-switcher/package.nls.fr.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Changez d'identités Git (profils) en un clic. Clés SSH et signature GPG liées, applicable aux sous-modules.",
44
"command.selectIdentity": "Git ID : Sélectionner l'identité",
55
"command.showCurrentIdentity": "Git ID : Afficher l'identité actuelle",
6+
"command.showDocumentation": "Afficher la documentation",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Identité",
89
"config.category.submodule": "Git ID Switcher: Sous-module",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Taille maximale du fichier avant rotation (octets, défaut: 10MB)",
3334
"config.logging.maxFiles": "Nombre maximum de fichiers rotatifs à conserver (défaut: 5)",
3435
"config.commandTimeouts": "Valeurs de délai d'expiration personnalisées pour les commandes (en millisecondes)",
35-
"config.commandTimeouts.markdown": "Remplacer les délais d'expiration par défaut des commandes. Exemple :\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nValeurs par défaut : git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, autres=30000ms"
36+
"config.commandTimeouts.markdown": "Remplacer les délais d'expiration par défaut des commandes. Exemple :\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nValeurs par défaut : git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, autres=30000ms",
37+
"config.disableWorkspaceTrust": "Désactiver les vérifications de confiance de l'espace de travail (non recommandé)",
38+
"config.disableWorkspaceTrust.markdown": "**Avertissement de sécurité :** Désactive les restrictions de confiance de l'espace de travail pour cette extension.\n\nLorsque activé, les opérations dangereuses (modifications de configuration Git, opérations de clés SSH) seront autorisées dans les espaces de travail non approuvés.\n\nUtiliser uniquement en cas de nécessité absolue et limiter l'utilisation au strict minimum."
3639
}

extensions/git-id-switcher/package.nls.hu.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Váltás Git identitások (profilok) között egy kattintással. SSH kulcsok és GPG aláírás összekapcsolva, almodulokra alkalmazható.",
44
"command.selectIdentity": "Git ID: Identitás kiválasztása",
55
"command.showCurrentIdentity": "Git ID: Jelenlegi identitás megjelenítése",
6+
"command.showDocumentation": "Dokumentáció megjelenítése",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Azonosító",
89
"config.category.submodule": "Git ID Switcher: Almodul",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Maximális fájlméret rotáció előtt (bájt, alapértelmezett: 10MB)",
3334
"config.logging.maxFiles": "Megtartandó rotált fájlok száma (alapértelmezett: 5)",
3435
"config.commandTimeouts": "Egyéni időtúllépési értékek parancsokhoz (milliszekundumban)",
35-
"config.commandTimeouts.markdown": "Alapértelmezett parancs időtúllépések felülírása. Példa:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nAlapértelmezett értékek: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, egyéb=30000ms"
36+
"config.commandTimeouts.markdown": "Alapértelmezett parancs időtúllépések felülírása. Példa:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nAlapértelmezett értékek: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, egyéb=30000ms",
37+
"config.disableWorkspaceTrust": "Munkaterület megbízhatósági ellenőrzések letiltása (nem ajánlott)",
38+
"config.disableWorkspaceTrust.markdown": "**Biztonsági figyelmeztetés:** Letiltja a munkaterület megbízhatósági korlátozásait ehhez a bővítményhez.\n\nHa engedélyezve van, a veszélyes műveletek (Git konfiguráció változtatások, SSH kulcs műveletek) engedélyezve lesznek nem megbízható munkaterületeken.\n\nCsak feltétlenül szükséges esetben használja, és korlátozza a használatot a minimumra."
3639
}

extensions/git-id-switcher/package.nls.it.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"extension.description": "Cambia tra identità Git (profili) con un clic. Chiavi SSH e firma GPG collegate, applicabile ai sottomoduli.",
44
"command.selectIdentity": "Git ID: Seleziona identità",
55
"command.showCurrentIdentity": "Git ID: Mostra identità corrente",
6+
"command.showDocumentation": "Mostra documentazione",
67
"config.title": "Git ID Switcher",
78
"config.category.identity": "Git ID Switcher: Identità",
89
"config.category.submodule": "Git ID Switcher: Sottomodulo",
@@ -32,5 +33,7 @@
3233
"config.logging.maxFileSize": "Dimensione massima del file prima della rotazione (byte, predefinito: 10MB)",
3334
"config.logging.maxFiles": "Numero massimo di file ruotati da conservare (predefinito: 5)",
3435
"config.commandTimeouts": "Valori di timeout personalizzati per i comandi (in millisecondi)",
35-
"config.commandTimeouts.markdown": "Sovrascrivi i timeout predefiniti dei comandi. Esempio:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nValori predefiniti: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, altri=30000ms"
36+
"config.commandTimeouts.markdown": "Sovrascrivi i timeout predefiniti dei comandi. Esempio:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nValori predefiniti: git=10000ms, ssh-add=5000ms, ssh-keygen=5000ms, altri=30000ms",
37+
"config.disableWorkspaceTrust": "Disattiva i controlli di attendibilità dell'area di lavoro (non consigliato)",
38+
"config.disableWorkspaceTrust.markdown": "**Avviso di sicurezza:** Disattiva le restrizioni di attendibilità dell'area di lavoro per questa estensione.\n\nQuando attivato, le operazioni pericolose (modifiche della configurazione Git, operazioni chiavi SSH) saranno consentite nelle aree di lavoro non attendibili.\n\nUsare solo quando assolutamente necessario e limitare l'uso al minimo."
3639
}

extensions/git-id-switcher/package.nls.ja.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,7 @@
3333
"config.logging.maxFileSize": "ローテーション前の最大ファイルサイズ(バイト単位、デフォルト:10MB)",
3434
"config.logging.maxFiles": "保持するローテーションファイルの最大数(デフォルト:5)",
3535
"config.commandTimeouts": "コマンドのカスタムタイムアウト値(ミリ秒単位)",
36-
"config.commandTimeouts.markdown": "デフォルトのコマンドタイムアウトを上書きします。例:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nデフォルト値:git=10000ms、ssh-add=5000ms、ssh-keygen=5000ms、その他=30000ms"
36+
"config.commandTimeouts.markdown": "デフォルトのコマンドタイムアウトを上書きします。例:\n```json\n{\n \"git\": 15000,\n \"ssh-add\": 10000\n}\n```\nデフォルト値:git=10000ms、ssh-add=5000ms、ssh-keygen=5000ms、その他=30000ms",
37+
"config.disableWorkspaceTrust": "ワークスペースの信頼チェックを無効にする(非推奨)",
38+
"config.disableWorkspaceTrust.markdown": "**セキュリティ警告:** この拡張機能のワークスペースの信頼制限を無効にします。\n\n有効にすると、信頼されていないワークスペースでも危険な操作(Git設定の変更、SSH鍵操作)が許可されます。\n\nやむを得ない場合のみ使用し、必要最小限にとどめてください。"
3739
}

0 commit comments

Comments
 (0)