User
Deploy localized dashboard fixes
3dd5c9a
Raw History Blame Contribute Delete
2.17 kB
@using TaskTrackingSystem.Shared.Localization
@if (ShouldWarn)
{
<div class="mt-1 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800">
<div>@Message</div>
<div class="mt-2 flex gap-2">
<button type="button" @onclick="MoveToOtherLanguageClicked" class="rounded-md bg-amber-600 px-2.5 py-1 font-semibold text-white hover:bg-amber-700">@MoveLabel</button>
<button type="button" @onclick="KeepHereClicked" class="rounded-md border border-amber-300 px-2.5 py-1 font-semibold text-amber-800 hover:bg-amber-100">@AppLocalization.Text("common.keepHere", "Keep here")</button>
</div>
</div>
}
@code {
[Parameter] public string? Text { get; set; }
[Parameter] public bool ExpectedBurmese { get; set; }
[Parameter] public EventCallback MoveToOtherLanguage { get; set; }
[Parameter] public EventCallback KeepHere { get; set; }
[Inject] private LanguageDetectionService Detector { get; set; } = null!;
private bool dismissed;
private LanguageDetectionResult Detection => Detector.Detect(Text);
private bool ShouldWarn => !dismissed && (ExpectedBurmese
? Detection.Language == DetectedContentLanguage.English
: Detection.Language == DetectedContentLanguage.Burmese);
private string Message => ExpectedBurmese
? AppLocalization.Text("translation.englishDetected", "This text appears to be English. Move it to the English field?")
: "α€€α€…α€¬α€žα€¬α€Έα€žα€Šα€Ί α€™α€Όα€”α€Ία€™α€¬α€˜α€¬α€žα€¬α€–α€Όα€…α€Ία€•α€―α€Άα€›α€žα€Šα€Ία‹ α€™α€Όα€”α€Ία€™α€¬α€‘α€€α€½α€€α€Ία€žα€­α€―α€· α€›α€½α€Ύα€±α€·α€™α€œα€¬α€Έ?";
private string MoveLabel => ExpectedBurmese ? AppLocalization.Text("common.moveToEnglish", "Move to English") : "α€™α€Όα€”α€Ία€™α€¬α€‘α€€α€½α€€α€Ία€žα€­α€―α€· α€›α€½α€Ύα€±α€·α€›α€”α€Ί";
protected override void OnParametersSet() => dismissed = false;
private async Task KeepHereClicked()
{
dismissed = true;
await KeepHere.InvokeAsync();
}
private async Task MoveToOtherLanguageClicked()
{
dismissed = true;
await MoveToOtherLanguage.InvokeAsync();
}
}