#203 basic translation display is ready
This commit is contained in:
parent
70ee48e4e8
commit
487aa7e7ec
@ -13,6 +13,7 @@
|
||||
<title>
|
||||
گنجور » برگردانها و نویسهای شعر
|
||||
</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>
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user