Skip to content

Commit 484b8a3

Browse files
Merge pull request Aider-AI#4146 from ktakayama/issues/4049-commit-language
2 parents 0bb0f16 + 6eaf75f commit 484b8a3

File tree

8 files changed

+34
-2
lines changed

8 files changed

+34
-2
lines changed

aider/args.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,12 @@ def get_parser(default_config_files, git_root):
731731
default=None,
732732
help="Specify the language to use in the chat (default: None, uses system settings)",
733733
)
734+
group.add_argument(
735+
"--commit-language",
736+
metavar="COMMIT_LANGUAGE",
737+
default=None,
738+
help="Specify the language to use in the commit message (default: None, user language)",
739+
)
734740
group.add_argument(
735741
"--yes-always",
736742
action="store_true",

aider/coders/base_coder.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ class Coder:
118118
detect_urls = True
119119
ignore_mentions = None
120120
chat_language = None
121+
commit_language = None
121122
file_watcher = None
122123

123124
@classmethod
@@ -328,6 +329,7 @@ def __init__(
328329
num_cache_warming_pings=0,
329330
suggest_shell_commands=True,
330331
chat_language=None,
332+
commit_language=None,
331333
detect_urls=True,
332334
ignore_mentions=None,
333335
total_tokens_sent=0,
@@ -341,6 +343,7 @@ def __init__(
341343

342344
self.event = self.analytics.event
343345
self.chat_language = chat_language
346+
self.commit_language = commit_language
344347
self.commit_before_message = []
345348
self.aider_commit_hashes = set()
346349
self.rejected_urls = set()

aider/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,7 @@ def get_io(pretty):
993993
num_cache_warming_pings=args.cache_keepalive_pings,
994994
suggest_shell_commands=args.suggest_shell_commands,
995995
chat_language=args.chat_language,
996+
commit_language=args.commit_language,
996997
detect_urls=args.detect_urls,
997998
auto_copy_context=args.copy_paste,
998999
auto_accept_architect=args.auto_accept_architect,

aider/repo.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,9 @@ def commit(self, fnames=None, context=None, message=None, aider_edits=False, cod
210210
else:
211211
user_language = None
212212
if coder:
213-
user_language = coder.get_user_language()
213+
user_language = coder.commit_language
214+
if not user_language:
215+
user_language = coder.get_user_language()
214216
commit_message = self.get_commit_message(diffs, context, user_language)
215217

216218
# Retrieve attribute settings, prioritizing coder.args if available

aider/website/assets/sample.aider.conf.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,9 @@
386386
## Specify the language to use in the chat (default: None, uses system settings)
387387
#chat-language: xxx
388388

389+
## Specify the language to use in the commit message (default: None, user language)
390+
#commit-language: xxx
391+
389392
## Always say yes to every confirmation
390393
#yes-always: false
391394

aider/website/docs/config/aider_conf.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,9 @@ cog.outl("```")
440440
## Specify the language to use in the chat (default: None, uses system settings)
441441
#chat-language: xxx
442442
443+
## Specify the language to use in the commit message (default: None, user language)
444+
#commit-language: xxx
445+
443446
## Always say yes to every confirmation
444447
#yes-always: false
445448

aider/website/docs/config/options.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ usage: aider [-h] [--model] [--openai-api-key] [--anthropic-api-key]
7474
[--apply-clipboard-edits] [--exit] [--show-repo-map]
7575
[--show-prompts] [--voice-format] [--voice-language]
7676
[--voice-input-device] [--disable-playwright] [--file]
77-
[--read] [--vim] [--chat-language] [--yes-always] [-v]
77+
[--read] [--vim] [--chat-language] [--commit-language] [--yes-always] [-v]
7878
[--load] [--encoding] [--line-endings] [-c]
7979
[--env-file]
8080
[--suggest-shell-commands | --no-suggest-shell-commands]
@@ -683,6 +683,10 @@ Environment variable: `AIDER_VIM`
683683
Specify the language to use in the chat (default: None, uses system settings)
684684
Environment variable: `AIDER_CHAT_LANGUAGE`
685685

686+
### `--commit-language COMMIT_LANGUAGE`
687+
Specify the language to use in the commit message (default: None, user language)
688+
Environment variable: `AIDER_COMMIT_LANGUAGE`
689+
686690
### `--yes-always`
687691
Always say yes to every confirmation
688692
Environment variable: `AIDER_YES_ALWAYS`

tests/basic/test_main.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,16 @@ def test_chat_language_spanish(self):
10351035
system_info = coder.get_platform_info()
10361036
self.assertIn("Spanish", system_info)
10371037

1038+
def test_commit_language_japanese(self):
1039+
with GitTemporaryDirectory():
1040+
coder = main(
1041+
["--commit-language", "japanese", "--exit", "--yes"],
1042+
input=DummyInput(),
1043+
output=DummyOutput(),
1044+
return_coder=True,
1045+
)
1046+
self.assertIn("japanese", coder.commit_language)
1047+
10381048
@patch("git.Repo.init")
10391049
def test_main_exit_with_git_command_not_found(self, mock_git_init):
10401050
mock_git_init.side_effect = git.exc.GitCommandNotFound("git", "Command 'git' not found")

0 commit comments

Comments
 (0)