#203 basic translation display is ready

This commit is contained in:
Hamid Reza Mohammadi 2021-09-17 09:45:18 +04:30
parent 70ee48e4e8
commit 487aa7e7ec
2 changed files with 68 additions and 11 deletions

View File

@ -13,6 +13,7 @@
<title>
گنجور &raquo; برگردان‌ها و نویس‌های شعر
</title>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<link href="~/css/p7.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
@ -26,6 +27,15 @@
}
else
{
@if (Model.Poem.Previous != null)
{
<p><a href="/Trans?p=@Model.Poem.Previous.Id&lang=@Model.LanguageId">شعر قبل</a></p>
}
@if (Model.Poem.Next != null)
{
<p><a href="/Trans?p=@Model.Poem.Next.Id&lang=@Model.LanguageId">شعر بعد</a></p>
}
if (Model.Languages.Length == 0)
{
<p>
@ -42,7 +52,7 @@
<select name="languages" id="languages">
@foreach (var language in Model.Languages)
{
if (Model.Translation.Language.Id == language.Id)
if (Model.LanguageId == language.Id)
{
<option value="@language.Id" selected>@language.NativeName</option>
}
@ -56,10 +66,48 @@
$('#languages').change(
function () {
var langId = $('#languages option:selected').val();
location.href = '/User/Trans?p=@Model.PoemId&lang=' + String(langId);
location.href = '/Trans?p=@Model.PoemId&lang=' + String(langId);
}
);
</script>
if (Model.Translation == null)
{
<p>
هنوز برای این شعر هیچ برگردان یا نویسشی با این زبان ارائه یا منتشر نشده است.
</p>
}
else
{
<p><a role="button" target="_blank" href="@Model.Poem.FullUrl" class="actionlink">@Model.Poem.FullTitle</a></p>
@if (!string.IsNullOrEmpty(Model.Translation.Title))
{
<div class="commentquote">@Model.Translation.Title</div>
}
@foreach (var verse in Model.Translation.TranslatedVerses)
{
if (!string.IsNullOrEmpty(verse.TText))
{
<p>@verse.Verse.Text</p>
<div class="commentquote">@verse.TText</div>
}
}
@if (Model.Poem.Previous != null)
{
<p><a href="/Trans?p=@Model.Poem.Previous.Id&lang=@Model.LanguageId">شعر قبل</a></p>
}
@if (Model.Poem.Next != null)
{
<p><a href="/Trans?p=@Model.Poem.Next.Id&lang=@Model.LanguageId">شعر بعد</a></p>
}
}
}
}

View File

@ -54,6 +54,8 @@ namespace GanjooRazor.Pages
/// </summary>
public bool LoggedIn { get; set; }
public int LanguageId { get; set; }
public async Task<IActionResult> OnGetAsync()
{
ErrorMessage = "";
@ -84,33 +86,40 @@ namespace GanjooRazor.Pages
Translations = JsonConvert.DeserializeObject<GanjoorPoemTranslationViewModel[]>(await response.Content.ReadAsStringAsync());
int langId = string.IsNullOrEmpty(Request.Query["lang"]) ? -1 : int.Parse(Request.Query["lang"]);
LanguageId = string.IsNullOrEmpty(Request.Query["lang"]) ? -1 : int.Parse(Request.Query["lang"]);
List<GanjoorLanguage> poemLanguages = new List<GanjoorLanguage>();
foreach (var lang in allLanguages)
{
if(Translations.Where(t => t.Language.Id == lang.Id).FirstOrDefault() != null)
if (Translations.Where(t => t.Language.Id == lang.Id).FirstOrDefault() != null)
{
poemLanguages.Add(lang);
}
}
if (LanguageId != -1)
if (!poemLanguages.Where(l => l.Id == LanguageId).Any())
{
poemLanguages.Add(allLanguages.Where(l => l.Id == LanguageId).Single());
}
Languages = poemLanguages.ToArray();
if (langId != -1)
Translations = Translations.Where(t => t.Language.Id == langId).ToArray();
if (LanguageId != -1)
Translations = Translations.Where(t => t.Language.Id == LanguageId).ToArray();
Translation = Translations.Length > 0 ? Translations[0] : null;
if (Translation != null)
LanguageId = Translation.Language.Id;
var responsePoem = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/poem/{PoemId}?verseDetails=true&catInfo=true&rhymes=false&recitations=false&images=false&songs=false&comments=false&navigation=false");
if(!responsePoem.IsSuccessStatusCode)
var responsePoem = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/poem/{PoemId}?verseDetails=true&catInfo=true&rhymes=false&recitations=false&images=false&songs=false&comments=false&navigation=true");
if (!responsePoem.IsSuccessStatusCode)
{
ErrorMessage = JsonConvert.DeserializeObject<string>(await responsePoem.Content.ReadAsStringAsync());
return Page();
}
responsePoem.EnsureSuccessStatusCode();
Poem = JsonConvert.DeserializeObject<GanjoorPoemCompleteViewModel>(await responsePoem.Content.ReadAsStringAsync());