@using TaskTrackingSystem.Shared.Localization @if (CanGenerate) { } @if (!string.IsNullOrWhiteSpace(errorMessage)) {

@errorMessage

} @code { [Parameter] public string? SourceText { get; set; } [Parameter] public string SourceLanguage { get; set; } = "my"; [Parameter] public string TargetLanguage { get; set; } = "en"; [Parameter] public bool IsName { get; set; } [Parameter] public bool TargetHasText { get; set; } [Parameter] public EventCallback Generated { get; set; } [Inject] private IContentTranslationService TranslationService { get; set; } = null!; private bool isBusy; private string? errorMessage; private bool CanGenerate => !TargetHasText && !string.IsNullOrWhiteSpace(SourceText); private string ButtonLabel => IsName ? (TargetLanguage == "en" ? AppLocalization.Text("translation.generateEnglishSpelling", "Generate English spelling") : AppLocalization.Text("translation.generateBurmeseName", "မြန်မာအမည် ရေးသားပေးရန်")) : (TargetLanguage == "en" ? AppLocalization.Text("translation.generateEnglish", "Generate English") : AppLocalization.Text("translation.generateBurmese", "မြန်မာဘာသာ ပြန်ဆိုရန်")); private async Task GenerateAsync() { if (!CanGenerate) return; isBusy = true; errorMessage = null; var result = IsName ? await TranslationService.TransliterateNameAsync(SourceText!.Trim(), SourceLanguage, TargetLanguage) : await TranslationService.TranslateAsync(SourceText!.Trim(), SourceLanguage, TargetLanguage); isBusy = false; if (!result.Success || string.IsNullOrWhiteSpace(result.TranslatedText)) { errorMessage = result.ErrorMessage ?? AppLocalization.Text("common.translationNotConfigured", "Translation is not configured."); return; } await Generated.InvokeAsync(result); } }