feat(i18n): localize ViewModel-built strings via ambient Loc accessor

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-06-03 12:43:30 +02:00
parent 086c6f6c45
commit 350a89f364
23 changed files with 250 additions and 84 deletions

View File

@@ -1,4 +1,5 @@
using System.Collections.ObjectModel;
using ClaudeDo.Ui.Localization;
using ClaudeDo.Ui.Services;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
@@ -36,7 +37,7 @@ public sealed partial class MergeModalViewModel : ViewModelBase
{
TaskId = taskId;
TaskTitle = taskTitle;
CommitMessage = $"Merge task: {taskTitle}";
CommitMessage = Loc.T("vm.merge.commitMessage", taskTitle);
IsBusy = true;
try
@@ -45,7 +46,7 @@ public sealed partial class MergeModalViewModel : ViewModelBase
Branches.Clear();
if (targets is null)
{
ErrorMessage = "Worker offline — cannot list branches.";
ErrorMessage = Loc.T("vm.merge.workerOfflineBranches");
return;
}
foreach (var b in targets.LocalBranches) Branches.Add(b);
@@ -55,7 +56,7 @@ public sealed partial class MergeModalViewModel : ViewModelBase
}
catch (Exception ex)
{
ErrorMessage = $"Failed to load branches: {ex.Message}";
ErrorMessage = Loc.T("vm.merge.loadBranchesFailed", ex.Message);
}
finally { IsBusy = false; }
}
@@ -81,7 +82,7 @@ public sealed partial class MergeModalViewModel : ViewModelBase
case "merged":
SuccessMessage = result.ErrorMessage is not null
? $"Merged with warning: {result.ErrorMessage}"
: "Merged.";
: Loc.T("vm.merge.merged");
// Auto-close after a short delay.
_ = Task.Run(async () =>
{
@@ -92,19 +93,19 @@ public sealed partial class MergeModalViewModel : ViewModelBase
case "conflict":
HasConflict = true;
ConflictFiles = result.ConflictFiles;
ErrorMessage = "Merge conflict — target branch restored. Resolve manually or via Continue, then retry.";
ErrorMessage = Loc.T("vm.merge.conflict");
break;
case "blocked":
ErrorMessage = $"Blocked: {result.ErrorMessage}";
ErrorMessage = Loc.T("vm.merge.blocked", result.ErrorMessage ?? "");
break;
default:
ErrorMessage = $"Unknown status: {result.Status}";
ErrorMessage = Loc.T("vm.merge.unknownStatus", result.Status);
break;
}
}
catch (Exception ex)
{
ErrorMessage = $"Merge failed: {ex.Message}";
ErrorMessage = Loc.T("vm.merge.mergeFailed", ex.Message);
}
finally
{