code_review: PR #1756

- Keep translation keys in order
- Add missing translations for zh_CN and en_US
- Rename `WorkingCopy.ClearCommitMessageHistory` to `WorkingCopy.ClearCommitMessageHistoryAsync`
- It's not necessary to use `Dispatcher.UI.Invoke` in event callback

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo
2025-08-22 15:57:28 +08:00
parent c40296946d
commit 63096ebd55
5 changed files with 24 additions and 24 deletions

View File

@@ -839,6 +839,8 @@
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">Ignore this file only</x:String>
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">Amend</x:String>
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">You can stage this file now.</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories" xml:space="preserve">Clear History</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories.Confirm" xml:space="preserve">Are you sure you want to clear all commit message history? This action cannot be undone.</x:String>
<x:String x:Key="Text.WorkingCopy.Commit" xml:space="preserve">COMMIT</x:String>
<x:String x:Key="Text.WorkingCopy.CommitAndPush" xml:space="preserve">COMMIT &amp; PUSH</x:String>
<x:String x:Key="Text.WorkingCopy.CommitMessageHelper" xml:space="preserve">Template/History</x:String>
@@ -856,8 +858,6 @@
<x:String x:Key="Text.WorkingCopy.IncludeUntracked" xml:space="preserve">INCLUDE UNTRACKED FILES</x:String>
<x:String x:Key="Text.WorkingCopy.NoCommitHistories" xml:space="preserve">NO RECENT INPUT MESSAGES</x:String>
<x:String x:Key="Text.WorkingCopy.NoCommitTemplates" xml:space="preserve">NO COMMIT TEMPLATES</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories" xml:space="preserve">Clear History</x:String>
<x:String x:Key="Text.WorkingCopy.ConfirmClearHistories" xml:space="preserve">Are you sure you want to clear all commit message history? This action cannot be undone.</x:String>
<x:String x:Key="Text.WorkingCopy.ResetAuthor" xml:space="preserve">Reset Author</x:String>
<x:String x:Key="Text.WorkingCopy.SignOff" xml:space="preserve">SignOff</x:String>
<x:String x:Key="Text.WorkingCopy.Staged" xml:space="preserve">STAGED</x:String>

View File

@@ -843,6 +843,8 @@
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">忽略本文件</x:String>
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">修补</x:String>
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">现在您已可将其加入暂存区中</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories" xml:space="preserve">清空历史提交信息</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories.Confirm" xml:space="preserve">您确定要清空所有的历史提交信息记录吗(执行操作后无法撤回)?</x:String>
<x:String x:Key="Text.WorkingCopy.Commit" xml:space="preserve">提交</x:String>
<x:String x:Key="Text.WorkingCopy.CommitAndPush" xml:space="preserve">提交并推送</x:String>
<x:String x:Key="Text.WorkingCopy.CommitMessageHelper" xml:space="preserve">历史输入/模板</x:String>

View File

@@ -843,6 +843,8 @@
<x:String x:Key="Text.WorkingCopy.AddToGitIgnore.SingleFile" xml:space="preserve">忽略本檔案</x:String>
<x:String x:Key="Text.WorkingCopy.Amend" xml:space="preserve">修補</x:String>
<x:String x:Key="Text.WorkingCopy.CanStageTip" xml:space="preserve">現在您已可將其加入暫存區中</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories" xml:space="preserve">清除提交訊息歷史</x:String>
<x:String x:Key="Text.WorkingCopy.ClearCommitHistories.Confirm" xml:space="preserve">您確定要清除所有提交訊息記錄嗎 (動作無法撤銷) ?</x:String>
<x:String x:Key="Text.WorkingCopy.Commit" xml:space="preserve">提 交</x:String>
<x:String x:Key="Text.WorkingCopy.CommitAndPush" xml:space="preserve">提交並推送</x:String>
<x:String x:Key="Text.WorkingCopy.CommitMessageHelper" xml:space="preserve">歷史輸入/範本</x:String>

View File

@@ -606,13 +606,11 @@ namespace SourceGit.ViewModels
CommitMessage = tmpl.Apply(_repo.CurrentBranch, _staged);
}
public async Task ClearCommitMessageHistory()
public async Task ClearCommitMessageHistoryAsync()
{
if (await App.AskConfirmAsync(App.Text("WorkingCopy.ConfirmClearHistories")))
Dispatcher.UIThread.Invoke(() =>
{
_repo.Settings.CommitMessages.Clear();
});
var sure = await App.AskConfirmAsync(App.Text("WorkingCopy.ClearCommitHistories.Confirm"));
if (sure)
_repo.Settings.CommitMessages.Clear();
}
public async Task CommitAsync(bool autoStage, bool autoPush, Models.CommitCheckPassed checkPassed = Models.CommitCheckPassed.None)

View File

@@ -199,10 +199,10 @@ namespace SourceGit.Views
var item = new MenuItem();
item.Header = App.Text("WorkingCopy.UseCommitTemplate", template.Name);
item.Icon = App.CreateMenuIcon("Icons.Code");
item.Click += (_, e) =>
item.Click += (_, ev) =>
{
vm.ApplyCommitMessageTemplate(template);
e.Handled = true;
ev.Handled = true;
};
menu.Items.Add(item);
}
@@ -224,11 +224,11 @@ namespace SourceGit.Views
var gitTemplateItem = new MenuItem();
gitTemplateItem.Header = App.Text("WorkingCopy.UseCommitTemplate", friendlyName);
gitTemplateItem.Icon = App.CreateMenuIcon("Icons.Code");
gitTemplateItem.Click += (_, e) =>
gitTemplateItem.Click += (_, ev) =>
{
if (File.Exists(gitTemplate))
vm.CommitMessage = File.ReadAllText(gitTemplate);
e.Handled = true;
ev.Handled = true;
};
menu.Items.Add(gitTemplateItem);
}
@@ -261,10 +261,10 @@ namespace SourceGit.Views
var item = new MenuItem();
item.Header = header;
item.Icon = App.CreateMenuIcon("Icons.Histories");
item.Click += (_, e) =>
item.Click += (_, ev) =>
{
vm.CommitMessage = dup;
e.Handled = true;
ev.Handled = true;
};
menu.Items.Add(item);
@@ -272,15 +272,13 @@ namespace SourceGit.Views
menu.Items.Add(new MenuItem() { Header = "-" });
var clearHistoryItem = new MenuItem()
var clearHistoryItem = new MenuItem();
clearHistoryItem.Header = App.Text("WorkingCopy.ClearCommitHistories");
clearHistoryItem.Icon = App.CreateMenuIcon("Icons.Clear");
clearHistoryItem.Click += async (_, ev) =>
{
Header = App.Text("WorkingCopy.ClearCommitHistories"),
Icon = App.CreateMenuIcon("Icons.Clear")
};
clearHistoryItem.Click += async (_, e) =>
{
await vm.ClearCommitMessageHistory();
e.Handled = true;
await vm.ClearCommitMessageHistoryAsync();
ev.Handled = true;
};
menu.Items.Add(clearHistoryItem);
@@ -324,10 +322,10 @@ namespace SourceGit.Views
var dup = service;
var item = new MenuItem();
item.Header = service.Name;
item.Click += async (_, e) =>
item.Click += async (_, ev) =>
{
await App.ShowDialog(new ViewModels.AIAssistant(repo, dup, vm.Staged, t => vm.CommitMessage = t));
e.Handled = true;
ev.Handled = true;
};
menu.Items.Add(item);