Spaces:
Runtime error
Runtime error
File size: 3,562 Bytes
3dd5c9a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | @using TaskTrackingSystem.Shared.Localization
<div class="space-y-4">
<div class="flex items-center gap-2 border-b border-slate-200">
<button type="button" @onclick="() => SelectTab(true)" class="relative px-3 py-2 text-sm font-semibold transition-colors @(showBurmese ? "text-violet-700" : "text-slate-500 hover:text-slate-700")">
@AppLocalization.Text("common.languageBurmese", "Burmese")
<span class="ml-1 rounded-full px-1.5 py-0.5 text-[10px] font-medium @GetBadgeClass(BurmeseStatus)">@GetStatusLabel(BurmeseStatus)</span>
@if (showBurmese) { <span class="absolute inset-x-0 -bottom-px h-0.5 bg-violet-600"></span> }
</button>
<button type="button" @onclick="() => SelectTab(false)" class="relative px-3 py-2 text-sm font-semibold transition-colors @(!showBurmese ? "text-violet-700" : "text-slate-500 hover:text-slate-700")">
@AppLocalization.Text("common.languageEnglish", "English")
<span class="ml-1 rounded-full px-1.5 py-0.5 text-[10px] font-medium @GetBadgeClass(EnglishStatus)">@GetStatusLabel(EnglishStatus)</span>
@if (!showBurmese) { <span class="absolute inset-x-0 -bottom-px h-0.5 bg-violet-600"></span> }
</button>
</div>
@if (BurmeseAiGenerated || EnglishAiGenerated || BurmeseNeedsReview || EnglishNeedsReview)
{
<p class="text-xs text-amber-700">
@AppLocalization.Text("common.translationReview", "AI-generated content is ready for review. Check it before saving.")
</p>
}
@if (showBurmese)
{
@BurmeseContent
}
else
{
@EnglishContent
}
</div>
@code {
[Parameter] public RenderFragment? BurmeseContent { get; set; }
[Parameter] public RenderFragment? EnglishContent { get; set; }
[Parameter] public bool BurmeseComplete { get; set; }
[Parameter] public bool EnglishComplete { get; set; }
[Parameter] public bool BurmeseAiGenerated { get; set; }
[Parameter] public bool EnglishAiGenerated { get; set; }
[Parameter] public bool BurmeseNeedsReview { get; set; }
[Parameter] public bool EnglishNeedsReview { get; set; }
[Inject] private UiLanguageService UiLanguageService { get; set; } = null!;
private bool showBurmese = true;
private string BurmeseStatus => GetStatus(BurmeseComplete, BurmeseAiGenerated, BurmeseNeedsReview);
private string EnglishStatus => GetStatus(EnglishComplete, EnglishAiGenerated, EnglishNeedsReview);
protected override void OnInitialized()
{
showBurmese = UiLanguageService.CurrentLanguage == AppLanguage.Burmese;
}
private void SelectTab(bool burmese) => showBurmese = burmese;
private static string GetStatus(bool complete, bool generated, bool needsReview) =>
generated ? "generated" : needsReview ? "review" : complete ? "complete" : "missing";
private static string GetStatusLabel(string status) => status switch
{
"complete" => AppLocalization.Text("common.complete", "Complete"),
"generated" => AppLocalization.Text("common.aiGenerated", "AI generated"),
"review" => AppLocalization.Text("common.needsReview", "Needs review"),
_ => AppLocalization.Text("common.missing", "Missing")
};
private static string GetBadgeClass(string status) => status switch
{
"complete" => "bg-emerald-50 text-emerald-700",
"generated" => "bg-violet-50 text-violet-700",
"review" => "bg-amber-50 text-amber-700",
_ => "bg-slate-100 text-slate-500"
};
}
|