Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/multi language commitizen #1326

Closed
Closed
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ repos:
args: [ "--write-changes" ]
additional_dependencies:
- tomli
exclude: "commitizen/cz/conventional_commits/\\.cache_multilanguage\\.txt"

- repo: https://github.com/commitizen-tools/commitizen
rev: v4.1.0 # automatically updated by Commitizen
Expand Down
6 changes: 6 additions & 0 deletions commitizen/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,12 @@ def __call__(
"required": False,
"help": "comma separated error codes that won't rise error, e.g: cz -nr 1,2,3 bump. See codes at https://commitizen-tools.github.io/commitizen/exit_codes/",
},
{
"name": ["-language"],
"type": str,
"default": "en",
"help": "language of the commit message (default: en). Available languages: enGLISH, frENCH. others are welcome",
},
],
"subcommands": {
"title": "commands",
Expand Down
3 changes: 3 additions & 0 deletions commitizen/commands/commit.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ def read_backup_message(self) -> str | None:
def prompt_commit_questions(self) -> str:
# Prompt user for the commit message
cz = self.cz
if "language" in self.arguments:
cz.language = self.arguments["language"]
questions = cz.questions()

for question in filter(lambda q: q["type"] == "list", questions):
question["use_shortcuts"] = self.config.settings["use_shortcuts"]
try:
Expand Down
2 changes: 2 additions & 0 deletions commitizen/cz/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ class BaseCommitizen(metaclass=ABCMeta):
template_loader: BaseLoader = PackageLoader("commitizen", "templates")
template_extras: dict[str, Any] = {}

language: str = "en"

def __init__(self, config: BaseConfig) -> None:
self.config = config
if not self.config.settings.get("style"):
Expand Down
151 changes: 151 additions & 0 deletions commitizen/cz/conventional_commits/.cache_multilanguage.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
prefix_en=Select the type of change you are committing
fix_en=A bug fix. Correlates with PATCH in SemVer
feat_en=A new feature. Correlates with MINOR in SemVer
docs_en=Documentation only changes
style_en=Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
refactor_en=A code change that neither fixes a bug nor adds a feature
perf_en=A code change that improves performance
test_en=Adding missing or correcting existing tests
build_en=Changes that affect the build system or external dependencies (example scopes: pip, docker, npm)
ci_en=Changes to CI configuration files and scripts (example scopes: GitLabCI)
scope_en=What is the scope of this change? (class or file name): (press [enter] to skip)
subject_en=Write a short and imperative summary of the code changes: (lower case and no period)
prefix_fr=Sélectionnez le type de changement que vous engagez
fix_fr=Une correction de bogue. Corrèle avec LE CORRECTIF dans SemVer
feat_fr=Une nouvelle fonctionnalité. Corréle avec MINEUR dans SemVer
docs_fr=Modifications de la documentation uniquement
style_fr=Modifications qui n'affectent pas la signification du code (escape blanc, mise en forme, points-virgules manquants, etc.)
refactor_fr=Un changement de code qui ne corrige pas un bogue ni n'ajoute une fonctionnalité
perf_fr=Un changement de code qui améliore les performances
test_fr=Ajout de tests manquants ou correction de tests existants
build_fr=Modifications affectant le système de génération ou les dépendances externes (par example, étendues : pip, docker, npm)
ci_fr=Modifications apportées aux fichiers et scripts de configuration CI (example de portée : GitLabCI)
scope_fr=Quelle est la portée de ce changement ? (nom de classe ou de fichier) : (appuyez sur [ENTER] pour ignorer)
subject_fr=Rédigez un résumé court et impératif des changements de code : (minuscules et sans point)
body_fr=Fournir des information contextuelles supplémentaires sur les changements de code : (appuyez sur [ENTER] pour ignorer)
is_breaking_change_fr=S'agit-il d'un CHANGEMENT RADICAL ? Corrèle avec la MAJEURE en SemVer
footer_fr=Pied de page. Information sur les modifications de rupture et les problèmes de référence que cette validation ferme : (appuyez sur [ENTER] pour ignorer)
prefix_es=Selecciona el tipo de cambio que estás realizando
fix_es=Una corrección de errores. Se correlaciona con EL PARCHE en SemVer
feat_es=Una nueva función. Se correlaciona con MENOR en SemVer
docs_es=Solo cambios en la documentación
style_es=Cambios que no afectan el significado del código (espacios en blanco, formato, puntos y comas faltantes, etc.)
refactor_es=Un cambio de código que no corrige un error ni añade una característica
perf_es=Un cambio de código que mejora el rendimiento
test_es=Añadiendo pruebas faltantes o corrección de pruebas existentes
build_es=Cambios que afectan al sistema de compilación o dependencias externas (por ejemplo, ámbitos: pip, docker, npm)
ci_es=Cambios en los archivos de configuración y scripts de CI (ámbitos de ejemplo: GitLabCI)
scope_es=¿Cuál es el alcance de este cambio? (nombre de clase o archivo): (pulse [enter] para omitir)
subject_es=Escriba un resumen breve e imperativo de los cambios en el código: (minúsculas y sin punto)
body_es=Proporcione información contextual adicional sobre los cambios en el código: (pulse [enter] para omitir)
is_breaking_change_es=¿Es este un CAMBIO RADICAL? Se correlaciona con la ESPECIALIZACIÓN en SemVer
footer_es=Pie de página. Información sobre los cambios de última hora y los problemas de referencia que este compromiso cierra: (presione [enter] para omitir)
prefix_de=Wählen Sie die Art der Änderung aus, die Sie vornehmen
fix_de=Ein Bugfix. Korreliert mit PATCH in SemVer
feat_de=Ein neues Feature. Korreliert mit MINOR in SemVer
docs_de=Dokumentation nur Änderungen
style_de=Änderungen, die die Bedeutung des Codes nicht beeinflussen (Leerzeichen, Formatierung, fehlende Semikolons usw.)
refactor_de=Eine Codeänderung, die weder einen Fehler behebt noch eine Function hinzufügt
perf_de=Eine Codeänderung, die die Leistung verbessert
test_de=Hinzufügen fehlender oder Korrigieren vorhandener Tests
build_de=Änderungen, die sich auf das Buildsystem oder externe Abhängigkeiten auswirken (Beispielumfänge: Pip, Docker, npm)
ci_de=Änderungen an CI-Konfigurationsdateien und Skripten (Beispielumfänge: GitLabCI)
scope_de=Was ist der Umfang dieser Änderung? (Klassen- oder Dateiname): (Drücken Sie [ENTER], um zu überspringen)
subject_de=Schreiben Sie eine kurze und zwingende Zusammenfassung der Codeänderungen: (Kleinbuchstaben und kein Punkt)
body_de=Geben Sie zusätzliche kontextbezogene Informationen zu den Codeänderungen an: (drücken Sie [ENTER], um zu überspringen)
is_breaking_change_de=Ist das eine BAHNBRECHENDE VERÄNDERUNG? Korreliert mit HAUPTFACH in SemVer
footer_de=Fußzeile. Informationen über Breaking Changes und Referenzprobleme, die mit diesem Commit geschlossen werden: (drücken Sie [ENTER], um zu überspringen)
prefix_zh=选择您要提交的变更类型
fix_zh=错误修复。与SemVer中的补丁相关
feat_zh=新功能。与SemVer中的次要功能相关
docs_zh=仅文档更改
style_zh=不影响代码含义的更改(空格、格式、缺少分号等)
refactor_zh=既不修复错误也不添加功能的代码更改
perf_zh=改进性能的代码更改
test_zh=添加缺失的测试或更正现有测试
build_zh=影响构建系统或外部依赖项的更改(示例作用域: pip、docker、npm )
ci_zh=对CI配置文件和脚本的更改(示例范围: GitLabCI )
scope_zh=此更改的范围是什么? (类或文件名) : (按[ENTER]跳过)
subject_zh=撰写简短而必要的代码更改摘要: (小写且无句点)
body_zh=提供有关代码更改的其他上下文信息: (按[ENTER]跳过)
is_breaking_change_zh=这是一个突破性的变化吗?与SemVer中的专业相关
footer_zh=页脚。有关此提交关闭的重大更改和引用问题的信息: (按[ENTER]跳过)
prefix_it=Seleziona il tipo di modifica che stai apportando
fix_it=Una correzione di bug. Correla con la PATCH in SemVer
feat_it=Una nuova funzionalità. Correla con MINORE in SemVer
docs_it=Modifiche solo della documentazione
style_it=Modifiche che non influiscono sul significato del codice (spazi bianchi, formattazione, punti e virgola mancanti, ecc.)
refactor_it=Una modifica del codice che non corregge un bug né aggiunge una funzionalità
perf_it=Una modifica del codice che migliora le prestazioni
test_it=Aggiunta di test mancanti o correzione di test esistenti
build_it=Modifiche che interessano il sistema di compilazione o dipendenze esterne (ambiti di esempio: pip, docker, npm)
ci_it=Modifiche ai file e agli script di configurazione CI (ambiti di esempio: GitLabCI)
scope_it=Qual è l'ambito di questa modifica? (classe o gnome file): (premere [enter] per saltare)
subject_it=Scrivi un breve e imperativo riepilogo delle modifiche al codice: (minuscolo e senza punto)
body_it=Fornisci ulteriori informazioni contestuali sulle modifiche al codice: (premi [Invio] per saltare)
is_breaking_change_it=È un CAMBIAMENTO RADICALE? Correla con MAGGIORE in SemVer
footer_it=Piè di pagina. Informazioni sulle Breaking Change e sui problemi di riferimento che questo commit chiude: (premi [invio] per saltare)
prefix_pt=Seleccione o tipo de alteração que está a cometer
fix_pt=Uma correção de bugs. Correlaciona com o PATCH no SemVer
feat_pt=Um novo recurso. Correlaciona com MENOR no SemVer
docs_pt=Apenas alterações na documentação
style_pt=Alterações que não afetam o significado do código (espaço em branco, formatação, ponto e vírgula ausente, etc.)
refactor_pt=Uma alteração de código que não corrige um bug nem adiciona um recurso
perf_pt=Uma mudança de código que melhora o desempenho
test_pt=Adição de testes ausentes ou correção de testes existentes
build_pt=Mudanças que afetam o sistema de compilação ou dependências externas (escopos de exemplo: pip, docker, npm)
ci_pt=Alterações em arquivos e scripts de configuração de CI (escopos de exemplo: GitLabCI)
scope_pt=Qual é o escopo desta alteração? (gnome da classe ou do arquivo): (pressione [ENTER] para pular)
subject_pt=Escreva um resumo curto e imperativo das alterações de código: (minúsculas e sem ponto final)
body_pt=Forneça informações contextuais adicionais sobre as alterações de código: (pressione [ENTER] para pular)
is_breaking_change_pt=Esta é uma MUDANÇA RADICAL? Correlaciona com ESPECIALIZAÇÃO em SemVer
footer_pt=Rodapé. Informações sobre Breaking Changes e problemas de referência que este commit fecha: (pressione [ENTER] para pular)
prefix_ru=Выберите тип изменения, которое вы вносите
fix_ru=Исправление ошибки. Корреляция с ПАТЧЕМ в SemVer
feat_ru=Новая функция. Соотносится с МИНОРОМ в SemVer
docs_ru=Изменения только в документации
style_ru=Изменения, которые не влияют на значение кода (пробелы, форматирование, отсутствующие точки с запятой и т. д.)
refactor_ru=Изменение кода, которое не исправляет ошибку и не добавляет функцию
perf_ru=Изменение кода, повышающее производительность
test_ru=Добавление отсутствующих или исправление существующих тестов
build_ru=Изменения, которые влияют на систему сборки или внешние зависимости (примеры областей: pip, docker, npm)
ci_ru=Изменения в файлах конфигурации и сценариях CI (примеры областей: GitLabCI)
scope_ru=Какова область применения этого изменения? (имя класса или файла): (нажмите [Enter], чтобы пропустить)
subject_ru=Напишите краткое и обязательное резюме изменений кода: (строчные буквы и без точки)
body_ru=Предоставьте дополнительную контекстную информацию об изменениях кода: (нажмите [Enter], чтобы пропустить)
is_breaking_change_ru=Это кардинальное ИЗМЕНЕНИЕ? Коррелирует с МАЙОРОМ в SemVer
footer_ru=Нижний колонтитул. Информация о нарушении изменений и проблемах со ссылками, которые закрывает эта фиксация: (нажмите [Enter], чтобы пропустить)
prefix_ja=コミットする変更の種類を選択してください
fix_ja=バグ修正。SemVerのパッチと関連しています
feat_ja=新機能。SemVerのマイナーと関連します
docs_ja=文書のみの変更
style_ja=コードの意味に影響を与えない変更(空白、書式設定、セミコロンの欠落など)
refactor_ja=バグを修正したり、機能を追加したりしないコードの変更
perf_ja=パフォーマンスを向上させるコードの変更
test_ja=不足しているテストの追加または既存のテストの修正
build_ja=ビルドシステムまたは外部依存関係に影響する変更(スコープの例: pip、docker、npm)
ci_ja=CI構成ファイルとスクリプトの変更(スコープの例: GitLabCI)
scope_ja=この変更の範囲は何ですか? (クラス名またはファイル名) : ( [ENTER]を押してスキップ)
subject_ja=コード変更の簡潔かつ必須の要約を記入してください: (小文字、ピリオドなし)
body_ja=コードの変更に関する追加のコンテキスト情報を提供します: ( [ENTER]を押してスキップ)
is_breaking_change_ja=これは画期的な変更ですか? SemVerのメジャーと相関する
footer_ja=フッター。このコミットが閉じる重大な変更と参照の問題に関する情報: ( [ENTER]を押してスキップ)
prefix_ko=커밋할 변경 유형 선택
fix_ko=버그 수정. SemVer의 패치와 상관 관계
feat_ko=새로운 기능입니다. SemVer에서 미성년자와 상관 관계가 있습니다.
docs_ko=증빙 자료만 변경됨
style_ko=코드의 의미에 영향을 미치지 않는 변경 사항 (공백, 서식, 누락된 세미콜론 등)
refactor_ko=버그를 수정하거나 기능을 추가하지 않은 코드 변경
perf_ko=성능을 향상시키는 코드 변경
test_ko=누락되거나 수정된 기존 테스트 추가
build_ko=빌드 시스템 또는 외부 종속성에 영향을 미치는 변경 사항 (예: 범위: pip, docker, npm)
ci_ko=CI 구성 파일 및 스크립트 변경 (예: 범위: GitLabCI)
scope_ko=변경 범위는 어떻게 됩니까? (클래스 또는 파일 이름): (건너뛰려면 [ENTER] 키를 누르세요)
subject_ko=코드 변경 사항에 대한 짧고 필수적인 요약을 작성하십시오: (소문자 및 마침표 없음)
body_ko=코드 변경에 대한 추가 문맥 정보 제공: (건너뛰려면 [ENTER] 키를 누르세요)
is_breaking_change_ko=획기적인 변화인가요? SemVer의 전공과 상관 관계 있음
footer_ko=Footer. Breaking Changes 및 이 커밋이 종료되는 참조 문제에 대한 정보: (건너뛰려면 [ENTER] 키를 누르세요)
body_en=Provide additional contextual information about the code changes: (press [enter] to skip)
is_breaking_change_en=Is this a BREAKING CHANGE? Correlates with MAJOR in SemVer
footer_en=Footer. Information about Breaking Changes and reference issues that this commit closes: (press [enter] to skip)
hello_fr=bonjour
Loading
Loading