Divan: Urdu classical poetry fork of GanjoorService

- Rebrand گنجور -> دیوان across GanjooRazor; lang=ur; Urdu home page and footer
- Hijri century groups with Urdu names
- Noto Nastaliq Urdu (default) / Noto Naskh Arabic switch
- Remove footer links to Ganjoor-only services; link Wikisource, data and code
- Linux deployment: Dockerfile, docker-compose (SQL Server 2022, API, site, Caddy)
- DIVAN.md: changes and deploy guide

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Anas Rashid 2026-10-04 23:14:25 +02:00
parent 09449c347f
commit 1811572d9e
135 changed files with 684 additions and 501 deletions

6
.dockerignore Normal file
View File

@ -0,0 +1,6 @@
**/bin/
**/obj/
.git/
.vs/
.env
**/node_modules/

13
.env.example Normal file
View File

@ -0,0 +1,13 @@
# Copy to .env and fill in. DNS A records for both domains must point at this server.
SITE_DOMAIN=divan.example.com
API_DOMAIN=api.divan.example.com
# SQL Server: 8+ chars with upper, lower, digit and symbol
MSSQL_SA_PASSWORD=
# JWT signing key: generate with `openssl rand -base64 32`
JWT_SECRET=
# First login with this email (any valid password) becomes the admin
ADMIN_EMAIL=
# Public sign-up needs SMTP (SmptConfig__* env vars); keep off until configured
SIGNUP_ENABLED=False

1
.gitignore vendored
View File

@ -261,3 +261,4 @@ __pycache__/
*.pyc
/Museum/dist/js
/Museum/src/dist
.env

58
DIVAN.md Normal file
View File

@ -0,0 +1,58 @@
# دیوان · Divan site
This is a fork of [GanjoorService](https://github.com/ganjoor/GanjoorService) (GPL-3.0), the software behind ganjoor.net, adapted to serve **classical Urdu poetry and prose** from [divan-data](https://github.com/anas-rashid/divan-data).
## Changes from upstream
- **Branding:** "گنجور" becomes "دیوان" throughout the site. Upstream is credited in the footer.
- **Urdu basics:** pages are `lang="ur"`. The home page, footer and century groups (Hijri centuries, e.g. "تیرہویں صدی ہجری") are in Urdu. Deeper pages, such as admin and account pages, are still Persian.
- **Fonts:** Noto Nastaliq Urdu by default, with a **نستعلیق / نسخ** switch (Noto Naskh Arabic) at the bottom left. The choice is remembered per browser.
- **Footer:** links to Ganjoor-only services (Hafez divination, music index, etc.) are removed. Links to the Wikisource source, the data and the code are added.
- **Linux/Docker:** `Dockerfile` + `docker-compose.yml` (SQL Server 2022, API, site, Caddy for HTTPS). The code itself is unchanged apart from the text above.
## Deploy (Ubuntu/Debian x86-64, e.g. Vultr)
```sh
# 1. Docker
curl -fsSL https://get.docker.com | sh
# 2. Code + config
git clone https://github.com/anas-rashid/divan.git && cd divan
cp .env.example .env && nano .env # domains, passwords, admin email
# 3. DNS: point SITE_DOMAIN and API_DOMAIN (A records) at the server, then:
docker compose up -d --build # first build takes a few minutes
docker compose logs -f api # wait for "Application started"
```
SQL Server needs about 2 GB of RAM. Use a plan with at least 4 GB in total.
### Load the data
1. Open `https://SITE_DOMAIN/login` and sign in with `ADMIN_EMAIL` and any password that meets the password rules. That first login creates the admin account.
2. On the import page that opens (or **Admin → مالی و سایت → درون‌ریزی دادهٔ عمومی**), choose **Internet URL** and enter:
```
https://cdn.jsdelivr.net/gh/anas-rashid/divan-data@main/
```
3. The import runs in the background (about 11k poems). Century groups are rebuilt automatically when it finishes.
Re-running the import adds new poems and leaves existing ones untouched, so it can be repeated after divan-data's daily sync.
### Update
```sh
git pull && docker compose up -d --build
```
## Build locally (macOS/Linux)
```sh
dotnet build RMuseum/RMuseum.csproj -p:EnableWindowsTargeting=true
dotnet build GanjooRazor/GanjooRazor.csproj -p:EnableWindowsTargeting=true
```
Running it needs SQL Server, so use the Docker setup above. SQL Server's image is x86-64 only.
## License
GPL-3.0, same as upstream (see `LICENSE`). Data: see [divan-data](https://github.com/anas-rashid/divan-data).

18
Dockerfile Normal file
View File

@ -0,0 +1,18 @@
# Divan: builds RMuseum (API) or GanjooRazor (site) for Linux.
# The projects target net10.0-windows7.0 (their RSecurityBackend dependency only ships for it), but they
# only use the plain .NET + ASP.NET Core runtimes, so the framework-dependent output runs on Linux.
# docker build --build-arg PROJECT=RMuseum .
# docker build --build-arg PROJECT=GanjooRazor .
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG PROJECT
WORKDIR /src
COPY . .
RUN dotnet publish "$PROJECT/$PROJECT.csproj" -c Release -o /app -p:EnableWindowsTargeting=true
FROM mcr.microsoft.com/dotnet/aspnet:10.0
ARG PROJECT
ENV APP_DLL=$PROJECT.dll ASPNETCORE_HTTP_PORTS=8080
WORKDIR /app
COPY --from=build /app .
EXPOSE 8080
ENTRYPOINT ["sh", "-c", "exec dotnet \"$APP_DLL\""]

View File

@ -54,7 +54,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -89,7 +89,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
@ -113,7 +113,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -150,7 +150,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -69,7 +69,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
return false;
}
}
@ -107,7 +107,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
return Page();
}
}
@ -134,7 +134,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
return Page();
}
}
@ -159,7 +159,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}

View File

@ -1,4 +1,4 @@
using GanjooRazor.Pages;
using GanjooRazor.Pages;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
@ -527,7 +527,7 @@ namespace GanjooRazor.Areas.Admin.Pages
UrlSlug = tag,
ShortName = name,
FullName = name,
SourceType = "همراهان گنجور"
SourceType = "همراهان دیوان"
};
}

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Linq;
using System.Net.Http;
using System.Text;
@ -149,7 +149,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -1,4 +1,4 @@
using GanjooRazor.Utils;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
@ -45,7 +45,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -288,7 +288,7 @@
</div>
<div class="up-field">
<label for="GanjoorQuotedPoem_RelatedCoupletVerse1">مصرع اول مرتبط (خارج از گنجور)</label>
<label for="GanjoorQuotedPoem_RelatedCoupletVerse1">مصرع اول مرتبط (خارج از دیوان)</label>
<input asp-for="GanjoorQuotedPoem.RelatedCoupletVerse1" size="65" />
</div>
<div class="up-check-row">
@ -297,7 +297,7 @@
</div>
<div class="up-field">
<label for="GanjoorQuotedPoem_RelatedCoupletVerse2">مصرع دوم مرتبط (خارج از گنجور)</label>
<label for="GanjoorQuotedPoem_RelatedCoupletVerse2">مصرع دوم مرتبط (خارج از دیوان)</label>
<input asp-for="GanjoorQuotedPoem.RelatedCoupletVerse2" size="65" />
</div>
<div class="up-check-row">

View File

@ -315,7 +315,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -343,7 +343,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -422,7 +422,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult(JsonConvert.DeserializeObject<string>("لطفاً از گنجور خارج و مجددا به آن وارد شوید."));
return new BadRequestObjectResult(JsonConvert.DeserializeObject<string>("لطفاً از دیوان خارج و مجددا به آن وارد شوید."));
}

View File

@ -1,4 +1,4 @@
using System.Net.Http;
using System.Net.Http;
using System.Threading.Tasks;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
@ -39,7 +39,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
@ -105,7 +105,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();

View File

@ -38,7 +38,7 @@ else
<table>
<tr>
<td>
<p>کاربر گرامی، متأسفیم که به اطلاع برسانیم که به دلیل نقض قوانین استفاده از گنجور و به طور مشخص </p>
<p>کاربر گرامی، متأسفیم که به اطلاع برسانیم که به دلیل نقض قوانین استفاده از دیوان و به طور مشخص </p>
</td>
</tr>
<tr>
@ -48,7 +48,7 @@ else
</tr>
<tr>
<td>
<p>حساب کاربری شما به همراه حاشیه‌ها، خوانش‌ها و سایر اطلاعات خصوصیتان از گنجور حذف شده است. امیدواریم در آینده در صورت تمایل به استفاده از گنجور در چارچوب‌های قابل پذیرش برای ما با حساب کاربری جدیدی پذیرای شما باشیم. با این ایمیل امکان نام‌نویسی مجدد نخواهید داشت.</p>
<p>حساب کاربری شما به همراه حاشیه‌ها، خوانش‌ها و سایر اطلاعات خصوصیتان از دیوان حذف شده است. امیدواریم در آینده در صورت تمایل به استفاده از دیوان در چارچوب‌های قابل پذیرش برای ما با حساب کاربری جدیدی پذیرای شما باشیم. با این ایمیل امکان نام‌نویسی مجدد نخواهید داشت.</p>
</td>
</tr>
</table>

View File

@ -49,7 +49,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastResult = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastResult = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();

View File

@ -1,4 +1,4 @@
using GanjooRazor.Utils;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
@ -35,7 +35,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -69,7 +69,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -90,7 +90,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -117,7 +117,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Net.Http;
using System.Threading.Tasks;
using GanjooRazor.Utils;
@ -53,7 +53,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -73,7 +73,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.Admin.Pages.ModifyPageModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
@ -233,7 +233,7 @@
<a role="button" onclick="rebuildStats()" class="up-btn up-btn--ghost up-btn--sm" title="بازسازی صفحات آمار و اوزان عروضی">بازسازی صفحات آمار و اوزان عروضی</a>
<a role="button" onclick="rebuildRelatedPages()" class="up-btn up-btn--ghost up-btn--sm" title="بازسازی صفحات استقبالها">بازسازی صفحات استقبالها</a>
<a role="button" onclick="rebuildDigitalSourcesStats()" class="up-btn up-btn--ghost up-btn--sm" title="بازسازی آمار منابع دیجیتال">بازسازی آمار منابع دیجیتال</a>
<a role="button" onclick="regeneratePublicData()" class="up-btn up-btn--ghost up-btn--sm" title="بازسازی و ارسال دادهٔ عمومی گنجور">بازسازی دادهٔ عمومی</a>
<a role="button" onclick="regeneratePublicData()" class="up-btn up-btn--ghost up-btn--sm" title="بازسازی و ارسال دادهٔ عمومی دیوان">بازسازی دادهٔ عمومی</a>
<a role="button" onclick="regenerateTajikPublicData()" class="up-btn up-btn--ghost up-btn--sm" title="بازسازی و ارسال دادهٔ عمومی تاجیکی">بازسازی دادهٔ عمومی تاجیکی</a>
<a role="button" onclick="transilerate()" class="up-btn up-btn--ghost up-btn--sm" title="برگردان تاجیکی">برگردان تاجیکی</a>
</div>

View File

@ -214,7 +214,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -253,7 +253,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -279,7 +279,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();

View File

@ -1,4 +1,4 @@
using GanjooRazor.Utils;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
@ -39,7 +39,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -115,7 +115,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastResult = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastResult = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -57,7 +57,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -88,7 +88,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -1,9 +1,9 @@
@page
@page
@model GanjooRazor.Areas.Admin.Pages.PublicDataImportModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = "_AdminLayout";
ViewData["Title"] = "درون‌ریزی دادهٔ عمومی گنجور";
ViewData["Title"] = "درون‌ریزی دادهٔ عمومی دیوان";
}
<div class="up-page-header">
<h1>@ViewData["Title"]</h1>
@ -15,10 +15,10 @@
}
<div class="up-alert up-alert--info">
این ابزار محتوای گنجور (سخنوران، بخش‌ها، شعرها) را از روی
<a href="https://github.com/ganjoor/ganjoor-data" target="_blank">مخزن گیت دادهٔ عمومی گنجور</a>
این ابزار محتوای دیوان (سخنوران، بخش‌ها، شعرها) را از روی
<a href="https://github.com/ganjoor/ganjoor-data" target="_blank">مخزن گیت دادهٔ عمومی دیوان</a>
(یا یک پوشهٔ محلی که از آن <code>git clone</code> شده) در پایگاه‌دادهٔ همین نسخه وارد می‌کند —
راهی سریع‌تر و ساده‌تر برای راه‌اندازی یک فورک یا نسخهٔ محلی کارآمد از گنجور، به‌جای واردکردن
راهی سریع‌تر و ساده‌تر برای راه‌اندازی یک فورک یا نسخهٔ محلی کارآمد از دیوان، به‌جای واردکردن
فایل‌های اسکوئل‌لایت به‌صورت جداگانه برای هر سخنور.
<br />
هر بار اجرا با خیال راحت قابل تکرار است: فقط داده‌هایی که هنوز در پایگاه‌داده نیستند اضافه

View File

@ -98,7 +98,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -171,7 +171,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجدداً به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجدداً به آن وارد شوید.");
}
}
}

View File

@ -1324,7 +1324,7 @@ else
</div>
<div class="up-radio-option">
<input type="radio" id="verse-position@(verse.VORder)_review_result_NotSuggectedByUser" name="verse-position@(verse.VORder)_review_result" class="radio-bug" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotSuggestedByUser">
<label for="verse-position@(verse.VORder)_review_result_NotSuggectedByUser">اشکال نرم‌افزار گنجور</label>
<label for="verse-position@(verse.VORder)_review_result_NotSuggectedByUser">اشکال نرم‌افزار دیوان</label>
</div>
</td>
</tr>
@ -1467,7 +1467,7 @@ else
</div>
<div class="up-radio-option">
<input type="radio" id="verse-language@(verse.VORder)_review_result_NotSuggectedByUser" name="verse-language@(verse.VORder)_review_result" class="radio-bug" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotSuggestedByUser">
<label for="verse-language@(verse.VORder)_review_result_NotSuggectedByUser">اشکال نرم‌افزار گنجور</label>
<label for="verse-language@(verse.VORder)_review_result_NotSuggectedByUser">اشکال نرم‌افزار دیوان</label>
</div>
</td>
</tr>

View File

@ -324,7 +324,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -658,7 +658,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجدداً به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجدداً به آن وارد شوید.");
}
}
}

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Linq;
using System.Net.Http;
using System.Text;
@ -194,7 +194,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -421,7 +421,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -471,7 +471,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}

View File

@ -140,7 +140,7 @@ namespace GanjooRazor.Areas.Admin.Pages
public async Task<IActionResult> OnPostModerateAsync([FromBody] PersonEditSuggestionModerationRequest pms)
{
if (string.IsNullOrEmpty(Request.Cookies["Token"]))
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجدداً به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجدداً به آن وارد شوید.");
if (pms == null || string.IsNullOrEmpty(pms.Result))
{
@ -185,7 +185,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجدداً به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجدداً به آن وارد شوید.");
}
}
}

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Linq;
using System.Net.Http;
using System.Text;
@ -90,7 +90,7 @@ namespace GanjooRazor.Areas.Admin.Pages
public async Task<IActionResult> OnPostModerateAsync([FromBody] PersonRelationEditSuggestionModerationRequest pms)
{
if (string.IsNullOrEmpty(Request.Cookies["Token"]))
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجدداً به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجدداً به آن وارد شوید.");
if (pms == null || string.IsNullOrEmpty(pms.Result))
{
@ -135,7 +135,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجدداً به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجدداً به آن وارد شوید.");
}
}
}

View File

@ -1,4 +1,4 @@
@page
@page
@using DNTPersianUtils.Core
@model GanjooRazor.Areas.Admin.Pages.ReviewQuotedsModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@ -87,7 +87,7 @@ else
</div>
<div class="up-field">
<label>مصرع اول مرتبط (خارج از گنجور)</label>
<label>مصرع اول مرتبط (خارج از دیوان)</label>
<div class="up-field-static">@Model.GanjoorQuotedPoem.RelatedCoupletVerse1</div>
</div>
<div class="up-field">
@ -95,7 +95,7 @@ else
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.RelatedCoupletVerse1ShouldBeEmphasized ? "checked=\"checked\"" : "") />
</div>
<div class="up-field">
<label>مصرع دوم مرتبط (خارج از گنجور)</label>
<label>مصرع دوم مرتبط (خارج از دیوان)</label>
<div class="up-field-static">@Model.GanjoorQuotedPoem.RelatedCoupletVerse2</div>
</div>
<div class="up-field">

View File

@ -178,7 +178,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -208,7 +208,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
}

View File

@ -41,7 +41,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -56,7 +56,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var newRole = new { name = name, description = description };
var response = await secureClient.PostAsync($"{APIRoot.Url}/api/roles", new StringContent(JsonConvert.SerializeObject(newRole), Encoding.UTF8, "application/json"));
@ -75,7 +75,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var response = await secureClient.DeleteAsync($"{APIRoot.Url}/api/roles/{roleName}");
if (!response.IsSuccessStatusCode)
@ -93,7 +93,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var response = await secureClient.GetAsync($"{APIRoot.Url}/api/roles/permissions/{roleName}");
if (!response.IsSuccessStatusCode)
@ -112,7 +112,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
string body;
using (var reader = new StreamReader(Request.Body))

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
@ -82,7 +82,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
Error = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
Error = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -1,4 +1,4 @@
using GanjooRazor.Utils;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
@ -98,7 +98,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();

View File

@ -76,7 +76,7 @@ namespace GanjooRazor.Areas.Admin.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -142,7 +142,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var response = await secureClient.GetAsync($"{APIRoot.Url}/api/users/{id}/roles");
if (!response.IsSuccessStatusCode)
@ -161,7 +161,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var response = await secureClient.GetAsync($"{APIRoot.Url}/api/roles");
if (!response.IsSuccessStatusCode)
@ -180,7 +180,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var response = await secureClient.PostAsync($"{APIRoot.Url}/api/users/{id}/roles/{Uri.EscapeDataString(role)}", null);
if (!response.IsSuccessStatusCode)
@ -198,7 +198,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var response = await secureClient.DeleteAsync($"{APIRoot.Url}/api/users/{id}/roles/{Uri.EscapeDataString(role)}");
if (!response.IsSuccessStatusCode)
@ -216,7 +216,7 @@ namespace GanjooRazor.Areas.Admin.Pages
using (HttpClient secureClient = new HttpClient(new GanjoorReloginHandler(Request, Response)))
{
if (!await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
return BadRequest("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return BadRequest("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
var userInfoResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/users/{id}");
if (!userInfoResponse.IsSuccessStatusCode)

View File

@ -65,7 +65,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -63,7 +63,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}

View File

@ -143,7 +143,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -164,7 +164,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -184,7 +184,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -204,7 +204,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -224,7 +224,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -92,7 +92,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -113,7 +113,7 @@ namespace GanjooRazor.Areas.User.Pages
return new OkObjectResult(true);
}
}
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
@ -139,7 +139,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -149,7 +149,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.User.Pages.DeleteAccountModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
@ -15,10 +15,10 @@
<div class="up-card up-danger-zone">
<h2 class="up-card__title">این عملیات غیرقابل بازگشت است</h2>
<div class="up-alert up-alert--warning">
در صورتی که کاربری تصمیم بگیرد حساب کاربری خود را در گنجور حذف کند تمام حاشیه‌ها و خوانش‌های منتشر شده‌اش در گنجور نیز حذف خواهد شد. علاوه بر آن رکوردهای بخش‌هایی از مشارکت کاربر که در گنجور اثر غیرقابل حذف گذاشته است (مثل ویرایش متن اشعار یا پیشنهاد تصاویر مرتبط با اشعار) به حساب کاربری سیستمی گنجور منتقل می‌شود. عملیات حذف کاربر غیرقابل برگشت است و در صورتی که کاربر با ایمیلی که پیشتر در گنجور حساب کاربری داشته و آن را حذف کرده مجدداً نام‌نویسی کند هیچ‌کدام از اطلاعات پیشتر واردشده‌اش بازنخواهد گشت.
در صورتی که کاربری تصمیم بگیرد حساب کاربری خود را در دیوان حذف کند تمام حاشیه‌ها و خوانش‌های منتشر شده‌اش در دیوان نیز حذف خواهد شد. علاوه بر آن رکوردهای بخش‌هایی از مشارکت کاربر که در دیوان اثر غیرقابل حذف گذاشته است (مثل ویرایش متن اشعار یا پیشنهاد تصاویر مرتبط با اشعار) به حساب کاربری سیستمی دیوان منتقل می‌شود. عملیات حذف کاربر غیرقابل برگشت است و در صورتی که کاربر با ایمیلی که پیشتر در دیوان حساب کاربری داشته و آن را حذف کرده مجدداً نام‌نویسی کند هیچ‌کدام از اطلاعات پیشتر واردشده‌اش بازنخواهد گشت.
</div>
<div class="up-alert up-alert--danger">
<strong>تبصره:</strong> گنجور ممکن است فهرست کاربران بدرفتار (کاربرانی که به ارسال مداوم حاشیه‌های نامناسب یا خرابکاری در سایت می‌پردازند) را به همراه گزارشی از فعالیت‌های نامناسب آنها نگهداری کند تا برخی یا همهٔ فعالیت‌های آنها محدود شود. ایمیل کاربر در این فهرست با حذف حساب کاربری حذف نمی‌شود و در صورت ثبت‌نام مجدد این اطلاعات مجدداً مورد مراجعه قرار خواهد گرفت.
<strong>تبصره:</strong> دیوان ممکن است فهرست کاربران بدرفتار (کاربرانی که به ارسال مداوم حاشیه‌های نامناسب یا خرابکاری در سایت می‌پردازند) را به همراه گزارشی از فعالیت‌های نامناسب آنها نگهداری کند تا برخی یا همهٔ فعالیت‌های آنها محدود شود. ایمیل کاربر در این فهرست با حذف حساب کاربری حذف نمی‌شود و در صورت ثبت‌نام مجدد این اطلاعات مجدداً مورد مراجعه قرار خواهد گرفت.
</div>
<form method="post" asp-page-handler="SendEmail" class="up-form">
@ -44,7 +44,7 @@ else
{
<div class="up-card up-danger-zone">
<h2 class="up-card__title">تأیید نهایی</h2>
<p class="up-hint">لطفاً پست الکترونیکی خود را بررسی کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامه‌ای از گنجور دریافت کرده‌اید که حاوی یک رمز است. رمز دریافتی را در کادر زیر وارد کرده و روی دکمهٔ «حذف نهایی حساب کاربری» کلیک کنید.</p>
<p class="up-hint">لطفاً پست الکترونیکی خود را بررسی کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامه‌ای از دیوان دریافت کرده‌اید که حاوی یک رمز است. رمز دریافتی را در کادر زیر وارد کرده و روی دکمهٔ «حذف نهایی حساب کاربری» کلیک کنید.</p>
<p class="up-hint up-hint--danger">تذکر: ممکن است نامه به پوشهٔ اسپم منتقل شده باشد.</p>
<form method="post" asp-page-handler="FinalizeDelete" class="up-form">

View File

@ -76,7 +76,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -124,7 +124,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -1318,7 +1318,7 @@ else
<div class="up-alert up-alert--info">
<p><strong>نکات مهم در ویرایش متن</strong></p>
<ul>
<li><strong>ملاک، سندیت است</strong>: تصحیحات باید با منبع کاغذی گنجور برای آن شاعر مطابقت داشته باشد، نه با آنچه معروف‌تر، خوش‌آهنگ‌تر یا منطقی‌تر به نظر می‌رسد.</li>
<li><strong>ملاک، سندیت است</strong>: تصحیحات باید با منبع کاغذی دیوان برای آن شاعر مطابقت داشته باشد، نه با آنچه معروف‌تر، خوش‌آهنگ‌تر یا منطقی‌تر به نظر می‌رسد.</li>
<li><strong>یای کوتاه روی هٔ ناملفوظ</strong> (مثل «نامهٔ»): با میان‌بر Shift+N به‌صورت «هٔ» تایپ شود؛ نه «ه‌ی» و نه «ۀ». (استثنا: اگر یای روی «ه» واقعاً ساکن تلفظ می‌شود، به‌صورت یای کامل با سکون نوشته شود.)</li>
<li><strong>های مکسور</strong> (مثل «خانهٔ»): همین‌طور «خانهٔ» تایپ شود، نه «خانه‌ی».</li>
<li><strong>سرهم/جدا‌نویسی</strong>: اول به عرف رایج نگاه کنید؛ اگر معنای ترکیب با معنای دو کلمهٔ جدا فرق دارد، سرهم بنویسید. سرهم‌نویسی نادرست جستجوپذیری متن را خراب می‌کند.</li>
@ -1983,7 +1983,7 @@ else
</div>
<div class="up-alert up-alert--warning">
<p class="up-mt-0">توجه داشته باشید که کارکرد برچسب‌گذاری اشعار در گنجور یافتن اشعار هم‌وزن است. از این جهت از پیشنهاد صورت‌های سلیقه‌ای و متفاوت یک وزن خودداری کنید تا این قابلیت مختل نشود. <a href="https://ganjoor.net/faq?id=14" target="_blank">این نکته</a> را هم مد نظر داشته باشید.</p>
<p class="up-mt-0">توجه داشته باشید که کارکرد برچسب‌گذاری اشعار در دیوان یافتن اشعار هم‌وزن است. از این جهت از پیشنهاد صورت‌های سلیقه‌ای و متفاوت یک وزن خودداری کنید تا این قابلیت مختل نشود. <a href="https://ganjoor.net/faq?id=14" target="_blank">این نکته</a> را هم مد نظر داشته باشید.</p>
</div>
<div class="up-field">

View File

@ -423,7 +423,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -458,7 +458,7 @@ namespace GanjooRazor.Areas.User.Pages
return new OkObjectResult(true);
}
}
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
@ -652,7 +652,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -690,7 +690,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -713,7 +713,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -736,7 +736,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -759,7 +759,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -783,7 +783,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
@ -820,7 +820,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -842,7 +842,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -874,7 +874,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}

View File

@ -77,7 +77,7 @@ else
@if (Model.Corrections.Count == 0)
{
<partial name="_EmptyState" model="@("شما هنوز هیچ ویرایشی در گنجور انجام نداده‌اید. برای آشنایی با نحوهٔ ویرایش اشعار <a href=\"https://blog.ganjoor.net/1400/05/23/notes-for-suggesting-corrections/\" target=\"_blank\">اینجا</a> را ببینید.")" />
<partial name="_EmptyState" model="@("شما هنوز هیچ ویرایشی در دیوان انجام نداده‌اید. برای آشنایی با نحوهٔ ویرایش اشعار <a href=\"https://blog.ganjoor.net/1400/05/23/notes-for-suggesting-corrections/\" target=\"_blank\">اینجا</a> را ببینید.")" />
}
@foreach (var correction in Model.Corrections)

View File

@ -198,7 +198,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -350,7 +350,7 @@ namespace GanjooRazor.Areas.User.Pages
return new OkObjectResult(true);
}
}
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}

View File

@ -47,7 +47,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
}

View File

@ -47,7 +47,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
}

View File

@ -63,7 +63,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -85,7 +85,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -108,7 +108,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -128,7 +128,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -86,7 +86,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -113,7 +113,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.User.Pages.HistoryModel
@using DNTPersianUtils.Core
@{
@ -94,7 +94,7 @@ else
<p id="processing" class="up-text-center"></p>
<p class="up-hint up-text-center">تاریخچهٔ بازدیدهای شما فقط به خود شما نمایش داده می‌شود و از آن استفادهٔ دیگری نمی‌شود. هر زمان که بخواهید می‌توانید ذخیرهٔ تاریخچه را متوقف کنید و تاریخچهٔ بازدیدهایتان را پاک کنید.</p>
}
<p class="up-hint up-text-center">نکته: اگر روی دستگاه‌های متعدد به گنجور وارد شده‌اید، توقف ذخیرهٔ تاریخچه روی همهٔ آنها اعمال می‌شود اما فعال‌سازی ذخیرهٔ تاریخچه مستلزم آن است که روی هر دستگاه دیگری غیر از دستگاهی که فعال‌سازی روی آن انجام شده یک‌بار از این صفحه بازدید کنید یا از حساب کاربری خود در گنجور خارج و مجدداً به آن وارد شوید.</p>
<p class="up-hint up-text-center">نکته: اگر روی دستگاه‌های متعدد به دیوان وارد شده‌اید، توقف ذخیرهٔ تاریخچه روی همهٔ آنها اعمال می‌شود اما فعال‌سازی ذخیرهٔ تاریخچه مستلزم آن است که روی هر دستگاه دیگری غیر از دستگاهی که فعال‌سازی روی آن انجام شده یک‌بار از این صفحه بازدید کنید یا از حساب کاربری خود در دیوان خارج و مجدداً به آن وارد شوید.</p>
</div>
@if (Model.HistoryItems.Count == 0)

View File

@ -161,7 +161,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -182,7 +182,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -217,7 +217,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -253,7 +253,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -81,7 +81,7 @@ namespace GanjooRazor.Areas.Panel.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
}
@ -113,7 +113,7 @@ namespace GanjooRazor.Areas.Panel.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
await _PreparePage();
@ -159,7 +159,7 @@ namespace GanjooRazor.Areas.Panel.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
await _PreparePage();

View File

@ -46,7 +46,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -48,7 +48,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -76,7 +76,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -133,7 +133,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -153,7 +153,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -173,7 +173,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -169,7 +169,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -190,7 +190,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -210,7 +210,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.User.Pages.MySessionsModel
@using DNTPersianUtils.Core
@using System.Linq
@ -9,7 +9,7 @@
}
<div class="up-page-header">
<h1>@ViewData["Title"]</h1>
<div class="up-page-subtitle">دستگاه‌ها و مرورگرهایی که هم‌اکنون با حساب کاربری شما وارد گنجور شده‌اند. اگر دستگاهی را نمی‌شناسید یا دیگر از آن استفاده نمی‌کنید، آن را از این فهرست خارج کنید.</div>
<div class="up-page-subtitle">دستگاه‌ها و مرورگرهایی که هم‌اکنون با حساب کاربری شما وارد دیوان شده‌اند. اگر دستگاهی را نمی‌شناسید یا دیگر از آن استفاده نمی‌کنید، آن را از این فهرست خارج کنید.</div>
</div>
@if (Model.LastError == "" && Model.Sessions != null && Model.Sessions.Count(s => s.Id != Model.CurrentSessionId) > 0)
{

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.User.Pages.MySuggestedQuotesModel
@{
Layout = "_UserPanelLayout";
@ -75,7 +75,7 @@ else
<tr>
<td>
مصرع اول مرتبط (خارج از گنجور):
مصرع اول مرتبط (خارج از دیوان):
</td>
</tr>
<tr>
@ -95,7 +95,7 @@ else
</tr>
<tr>
<td>
مصرع دوم مرتبط (خارج از گنجور):
مصرع دوم مرتبط (خارج از دیوان):
</td>
</tr>
<tr>

View File

@ -119,7 +119,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}

View File

@ -129,7 +129,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.User.Pages.NotificationsModel
@using DNTPersianUtils.Core
@{
@ -88,7 +88,7 @@ else
@if (Model.Notifications.Count == 0)
{
<partial name="_EmptyState" model="@("در حال حاضر اعلانی وجود ندارد. در صورتی که کاربری با زدن دکمهٔ «پاسخگویی» برای حاشیهٔ شما پاسخی بنویسد یا شما با پیشنهاد آهنگ مرتبط با شعر یا روش دیگری در گنجور مشارکت کنید و مشارکت شما بررسی شود در قسمت «اعلان‌های من» با دریافت یک اعلان از این رویدادها مطلع می‌شوید.")" />
<partial name="_EmptyState" model="@("در حال حاضر اعلانی وجود ندارد. در صورتی که کاربری با زدن دکمهٔ «پاسخگویی» برای حاشیهٔ شما پاسخی بنویسد یا شما با پیشنهاد آهنگ مرتبط با شعر یا روش دیگری در دیوان مشارکت کنید و مشارکت شما بررسی شود در قسمت «اعلان‌های من» با دریافت یک اعلان از این رویدادها مطلع می‌شوید.")" />
}
else
{

View File

@ -131,7 +131,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -151,7 +151,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -172,7 +172,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -193,7 +193,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
@ -214,7 +214,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -158,7 +158,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}
@ -310,7 +310,7 @@ namespace GanjooRazor.Areas.User.Pages
return new OkObjectResult(true);
}
}
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}

View File

@ -140,7 +140,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}

View File

@ -109,7 +109,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
if (!EditMode)
@ -121,7 +121,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -129,7 +129,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -176,7 +176,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
}
@ -209,7 +209,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -166,7 +166,7 @@ else
</div>
<div class="up-alert up-alert--warning">
<p class="up-mt-0">توجه داشته باشید که کارکرد برچسب‌گذاری اشعار در گنجور یافتن اشعار هم‌وزن است. از این جهت از پیشنهاد صورت‌های سلیقه‌ای و متفاوت یک وزن خودداری کنید تا این قابلیت مختل نشود. <a href="https://ganjoor.net/faq?id=14" target="_blank">این نکته</a> را هم مد نظر داشته باشید.</p>
<p class="up-mt-0">توجه داشته باشید که کارکرد برچسب‌گذاری اشعار در دیوان یافتن اشعار هم‌وزن است. از این جهت از پیشنهاد صورت‌های سلیقه‌ای و متفاوت یک وزن خودداری کنید تا این قابلیت مختل نشود. <a href="https://ganjoor.net/faq?id=14" target="_blank">این نکته</a> را هم مد نظر داشته باشید.</p>
</div>
<div class="up-field">

View File

@ -191,7 +191,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
FatalError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
FatalError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
return Page();
@ -332,7 +332,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}
@ -353,7 +353,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
}

View File

@ -1,4 +1,4 @@
@page
@page
@model GanjooRazor.Areas.User.Pages.SectionEditsModel
@using RMuseum.Models.Ganjoor
@using RMuseum.Services.Implementation
@ -27,7 +27,7 @@ else
@if (Model.Corrections.Count == 0)
{
<partial name="_EmptyState" model="@("شما هنوز هیچ ویرایشی در گنجور انجام نداده‌اید. برای آشنایی با نحوهٔ ویرایش اشعار <a href=\"https://blog.ganjoor.net/1400/05/23/notes-for-suggesting-corrections/\" target=\"_blank\">اینجا</a> را ببینید.")" />
<partial name="_EmptyState" model="@("شما هنوز هیچ ویرایشی در دیوان انجام نداده‌اید. برای آشنایی با نحوهٔ ویرایش اشعار <a href=\"https://blog.ganjoor.net/1400/05/23/notes-for-suggesting-corrections/\" target=\"_blank\">اینجا</a> را ببینید.")" />
}
@foreach (var correction in Model.Corrections)

View File

@ -150,7 +150,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}

View File

@ -140,7 +140,7 @@
</script>
<div class="up-alert up-alert--info">
<p class="up-mt-0">از این طریق می‌توانید نقل قول یک شاعر از یک شاعر دیگر را در گنجور ثبت کنید. توجه داشته باشید که اقتفا (یکسانی قافیه) دلیل کافی بر نقل قول نیست. باید در شعرها حداقل یک مصرع بعینه (با تخفیف تفاوت جزئی واژگان) نقل قول شده باشد.</p>
<p class="up-mt-0">از این طریق می‌توانید نقل قول یک شاعر از یک شاعر دیگر را در دیوان ثبت کنید. توجه داشته باشید که اقتفا (یکسانی قافیه) دلیل کافی بر نقل قول نیست. باید در شعرها حداقل یک مصرع بعینه (با تخفیف تفاوت جزئی واژگان) نقل قول شده باشد.</p>
</div>
<div class="up-card">
<form method="post" class="up-form">
@ -176,7 +176,7 @@
</div>
<div class="up-alert up-alert--info">
<p class="up-mt-0">اگر شعر مرتبط در گنجور وجود دارد آن را با «گزینش شعر مرتبط» و پیدا کردن آن در صفحه‌ای که باز می‌شود مشخص کنید.</p>
<p class="up-mt-0">اگر شعر مرتبط در دیوان وجود دارد آن را با «گزینش شعر مرتبط» و پیدا کردن آن در صفحه‌ای که باز می‌شود مشخص کنید.</p>
</div>
<a onclick="finalizeSelectPage()" class="up-btn up-btn--ghost" role="button" id="finalize-select2" style="display:none">انتخاب کردم</a>
@ -205,11 +205,11 @@
</div>
<div class="up-alert up-alert--info">
<p class="up-mt-0">اگر شعر مرتبط در گنجور وجود ندارد مصرع اول و دوم مرتبط آن را در کادرهای بعد تایپ کنید.</p>
<p class="up-mt-0">اگر شعر مرتبط در دیوان وجود ندارد مصرع اول و دوم مرتبط آن را در کادرهای بعد تایپ کنید.</p>
</div>
<div class="up-field">
<label for="GanjoorQuotedPoem_RelatedCoupletVerse1">مصرع اول مرتبط (خارج از گنجور)</label>
<label for="GanjoorQuotedPoem_RelatedCoupletVerse1">مصرع اول مرتبط (خارج از دیوان)</label>
<p class="up-hint">اگر شعر را از طریق دکمهٔ «گزینش شعر مرتبط» انتخاب کرده‌اید کادر زیر را خالی بگذارید.</p>
<input asp-for="GanjoorQuotedPoem.RelatedCoupletVerse1" size="65" />
</div>
@ -219,7 +219,7 @@
</div>
<div class="up-field">
<label for="GanjoorQuotedPoem_RelatedCoupletVerse2">مصرع دوم مرتبط (خارج از گنجور)</label>
<label for="GanjoorQuotedPoem_RelatedCoupletVerse2">مصرع دوم مرتبط (خارج از دیوان)</label>
<p class="up-hint">اگر شعر را از طریق دکمهٔ «گزینش شعر مرتبط» انتخاب کرده‌اید کادر زیر را خالی بگذارید.</p>
<input asp-for="GanjoorQuotedPoem.RelatedCoupletVerse2" size="65" />
</div>

View File

@ -302,7 +302,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -330,7 +330,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
return new BadRequestObjectResult("لطفاً از دیوان خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);

View File

@ -115,7 +115,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -158,7 +158,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -115,7 +115,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
@ -158,7 +158,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -48,7 +48,7 @@ else
@upvote.AudioTitle به خوانش @upvote.AudioArtist (<a href="@Html.Raw(upvote.PoemFullUrl)" target="_blank">@upvote.PoemFullTitle</a>)
</p>
<a href="@Model.GetRecitationUrl(upvote)" target="_blank">
خوانش در گنجور
خوانش در دیوان
</a>
</blockquote>

View File

@ -146,7 +146,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
return Page();
}

View File

@ -7,7 +7,7 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@ -15,12 +15,13 @@
<title>پیشنهاد اضافه شدن مصرع‌های جا افتاده</title>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
<link href="~/css/user-panel.css" asp-append-version="true" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="fa" class="up-shell" style="max-width:640px;margin:0 auto;padding:var(--up-space-4);">
<div id="hdr" class="up-text-center" style="margin-bottom:var(--up-space-4);">
<a href="/" title="گنجور"><img src="/image/gdap.png" alt="گنجور" style="width:auto;margin:auto;" /></a>
<a href="/" title="دیوان"><img src="/image/gdap.png" alt="دیوان" style="width:auto;margin:auto;" /></a>
</div>
@if (!string.IsNullOrEmpty(Model.LastError))
{
@ -29,8 +30,8 @@
else if (!Model.LoggedIn)
{
<div class="up-alert up-alert--warning up-text-center">
<p>برای ثبت خطا در خوانش‌ها لازم است ابتدا با نام کاربری خود وارد گنجور شوید.</p>
<p><a href=@Html.Raw($"/login/?redirect=/User/SuggestNewVerses?id={Model.PageInformation.Id}") class="up-btn up-btn--primary">ورود به گنجور</a></p>
<p>برای ثبت خطا در خوانش‌ها لازم است ابتدا با نام کاربری خود وارد دیوان شوید.</p>
<p><a href=@Html.Raw($"/login/?redirect=/User/SuggestNewVerses?id={Model.PageInformation.Id}") class="up-btn up-btn--primary">ورود به دیوان</a></p>
</div>
}
else
@ -44,7 +45,7 @@
}
else
{
<div class="up-alert up-alert--warning">لطفاً تنها در صورتی که مصرع‌های پیشنهادی مربوط به نسخهٔ دیگری است که مرجع گنجور نیست آنها را در قالب حاشیه ثبت فرمایید.</div>
<div class="up-alert up-alert--warning">لطفاً تنها در صورتی که مصرع‌های پیشنهادی مربوط به نسخهٔ دیگری است که مرجع دیوان نیست آنها را در قالب حاشیه ثبت فرمایید.</div>
<div class="up-card">
<form method="post" class="up-form">

View File

@ -184,7 +184,7 @@ namespace GanjooRazor.Areas.User.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -6,7 +6,7 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<title>@ViewData["Title"]</title>
@ -14,10 +14,11 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
</head>
<body class="bk-background">
<div id="hdr">
<h1><a href="/" title="گنجور"><img src="/image/gdap.png" alt="گنجور" style="width:auto;margin:auto;" /></a></h1>
<h1><a href="/" title="دیوان"><img src="/image/gdap.png" alt="دیوان" style="width:auto;margin:auto;" /></a></h1>
</div>
<div id="login">
<div id="login-container">
@ -36,7 +37,7 @@
</tr>
<tr>
<td>
<a role="button" class="pagebutton" href="/">برگشت به گنجور</a>
<a role="button" class="pagebutton" href="/">برگشت به دیوان</a>
</td>
</tr>
</table>
@ -73,7 +74,7 @@
</tr>
<tr>
<td colspan="2">
<a role="button" class="pagebutton" href="/">برگشت به گنجور</a>
<a role="button" class="pagebutton" href="/">برگشت به دیوان</a>
</td>
</tr>

View File

@ -4,7 +4,7 @@
Layout = null;
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<title>@ViewData["Title"]</title>
@ -12,10 +12,11 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
</head>
<body class="bk-background">
<div id="hdr">
<h1><a href="/" title="گنجور"><img src="/image/gdap.png" alt="گنجور" style="width:auto;margin:auto;" /></a></h1>
<h1><a href="/" title="دیوان"><img src="/image/gdap.png" alt="دیوان" style="width:auto;margin:auto;" /></a></h1>
</div>
<div id="login">
<div id="main">
@ -114,7 +115,7 @@
<tr class="nobackground">
<td class="noborder" colspan="2">
<div class="notice width-100per">
<p>لطفاً پست الکترونیکی خود را بررسی کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامه‌ای از گنجور دریافت کرده‌اید که حاوی یک رمز است. </p>
<p>لطفاً پست الکترونیکی خود را بررسی کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامه‌ای از دیوان دریافت کرده‌اید که حاوی یک رمز است. </p>
<p>رمز دریافتی را در کادر بالا وارد کرده، روی «ادامه» بزنید.</p>
<p><span class="red-color">تذکر:</span> ممکن است نامه به پوشهٔ اسپم منتقل شده باشد.</p>
</div>

View File

@ -61,16 +61,16 @@ namespace GanjooRazor.Pages
ViewData["TrackingScript"] = Configuration["TrackingScript"] != null && string.IsNullOrEmpty(Request.Cookies["Token"]) ? Configuration["TrackingScript"].Replace("loggedon", "") : Configuration["TrackingScript"];
if (PhaseSendEmail)
{
ViewData["Title"] = "گنجور » فراموشی گذرواژه » ورود ایمیل";
ViewData["Title"] = "دیوان » فراموشی گذرواژه » ورود ایمیل";
}
else
if (PhaseSendEmail)
{
ViewData["Title"] = "گنجور » فراموشی گذرواژه » ورود رمز دریافتی در ایمیل";
ViewData["Title"] = "دیوان » فراموشی گذرواژه » ورود رمز دریافتی در ایمیل";
}
else
{
ViewData["Title"] = "گنجور » فراموشی گذرواژه » مرحلهٔ نهایی";
ViewData["Title"] = "دیوان » فراموشی گذرواژه » مرحلهٔ نهایی";
}
}
@ -90,7 +90,7 @@ namespace GanjooRazor.Pages
ForgotPasswordViewModel = new UnverifiedSignUpViewModel()
{
ClientAppName = "وبگاه گنجور",
ClientAppName = "وبگاه دیوان",
Language = "fa-IR",
CallbackUrl = $"{Configuration["SiteUrl"]}/resetpassword"
};
@ -215,7 +215,7 @@ namespace GanjooRazor.Pages
LoginViewModel loginViewModel = new LoginViewModel()
{
ClientAppName = "وبگاه گنجور",
ClientAppName = "وبگاه دیوان",
Language = "fa-IR",
Username = postViewModel.Email,
Password = postViewModel.Password

View File

@ -5,7 +5,7 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<title>@ViewData["Title"]</title>
@ -13,10 +13,11 @@
<meta name="robots" content="noindex, nofollow" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
</head>
<body class="bk-background">
<div id="hdr">
<h1><a href="/" title="گنجور"><img src="/image/gdap.png" alt="گنجور" style="width:auto;margin:auto;" /></a></h1>
<h1><a href="/" title="دیوان"><img src="/image/gdap.png" alt="دیوان" style="width:auto;margin:auto;" /></a></h1>
</div>
<div id="login">
<div id="main">
@ -46,7 +47,7 @@
<td class="noborder" colspan="2">
<div class="notice width-100per">
<p>
برای نام‌نویسی در گنجور نیاز به یک ایمیل دارید. فرایند نام‌نویسی با ارسال یک رمز به ایمیل (پست الکترونیکی) شما ادامه پیدا می‌کند و اگر ایمیلتان درست نباشد یا به آن دسترسی نداشته باشید نمی‌توانید در گنجور نام‌نویسی کنید.
برای نام‌نویسی در دیوان نیاز به یک ایمیل دارید. فرایند نام‌نویسی با ارسال یک رمز به ایمیل (پست الکترونیکی) شما ادامه پیدا می‌کند و اگر ایمیلتان درست نباشد یا به آن دسترسی نداشته باشید نمی‌توانید در دیوان نام‌نویسی کنید.
</p>
</div>
</td>
@ -94,10 +95,10 @@
<div class="background-red color-white"><p>@Model.LastError</p></div>
<div class="notice width-100per">
<p>لطفاً به نکات زیر توجه کنید:</p>
<p>۱. اگر پیشتر در <a href="https://museum.ganjoor.net">گنجینهٔ گنجور</a> یا <a href="https://gaudiopanel.ganjoor.net">پیشخان خوانشگران گنجور</a> نام‌نویسی کرده‌اید می‌توانید با همان اطلاعات کاربری در گنجور وارد شوید و نیاز به و امکان نام‌نویسی مجدد با همان ایمیل را ندارید. </p>
<p>۱. اگر پیشتر در <a href="https://museum.ganjoor.net">گنجینهٔ دیوان</a> یا <a href="https://gaudiopanel.ganjoor.net">پیشخان خوانشگران دیوان</a> نام‌نویسی کرده‌اید می‌توانید با همان اطلاعات کاربری در دیوان وارد شوید و نیاز به و امکان نام‌نویسی مجدد با همان ایمیل را ندارید. </p>
<p>۲. برای مطالعهٔ اشعار نیازی به نام‌نویسی ندارید. نام‌نویسی برای درج حاشیه و مشارکت در سایت مورد نیاز است.</p>
<p>۳. گنجور اطلاعاتی راجع به این که شما با نام کاربری خود چه صفحاتی را مطالعه می‌کنید جمع آوری نمی‌کند. برای اطمینان مفاد صفحهٔ <a href="/privacy">حریم خصوصی</a> را مطالعه بفرمایید.</p>
<p>۴. بعد از نام‌نویسی امکان حذف حساب کاربری خود را دارید. با این کار اطلاعات خاص شما مثل حاشیه‌ها و خوانش‌ها حذف می‌شود و مشارکت‌های شما مثل ویرایش‌ها و ... به نام کاربر سیستم گنجور ثبت می‌شود.</p>
<p>۳. دیوان اطلاعاتی راجع به این که شما با نام کاربری خود چه صفحاتی را مطالعه می‌کنید جمع آوری نمی‌کند. برای اطمینان مفاد صفحهٔ <a href="/privacy">حریم خصوصی</a> را مطالعه بفرمایید.</p>
<p>۴. بعد از نام‌نویسی امکان حذف حساب کاربری خود را دارید. با این کار اطلاعات خاص شما مثل حاشیه‌ها و خوانش‌ها حذف می‌شود و مشارکت‌های شما مثل ویرایش‌ها و ... به نام کاربر سیستم دیوان ثبت می‌شود.</p>
</div>
</td>
</tr>
@ -126,7 +127,7 @@
<tr class="nobackground">
<td class="noborder" colspan="2">
<div class="notice width-100per">
<p>لطفاً پست الکترونیکی خود را بررسی کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامه‌ای از گنجور دریافت کرده‌اید که حاوی یک رمز است. </p>
<p>لطفاً پست الکترونیکی خود را بررسی کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامه‌ای از دیوان دریافت کرده‌اید که حاوی یک رمز است. </p>
<p>رمز دریافتی را در کادر بالا وارد کرده، روی «ادامه» بزنید.</p>
<p><span class="red-color">تذکر:</span> ممکن است نامه به پوشهٔ اسپم منتقل شده باشد.</p>
</div>

View File

@ -59,16 +59,16 @@ namespace GanjooRazor.Pages
ViewData["TrackingScript"] = Configuration["TrackingScript"] != null && string.IsNullOrEmpty(Request.Cookies["Token"]) ? Configuration["TrackingScript"].Replace("loggedon", "") : Configuration["TrackingScript"];
if (SignupPhase1)
{
ViewData["Title"] = "گنجور » نام‌نویسی » ورود ایمیل";
ViewData["Title"] = "دیوان » نام‌نویسی » ورود ایمیل";
}
else
if (SignupVerifyEmailPhase)
{
ViewData["Title"] = "گنجور » نام‌نویسی » ورود رمز دریافتی در ایمیل";
ViewData["Title"] = "دیوان » نام‌نویسی » ورود رمز دریافتی در ایمیل";
}
else
{
ViewData["Title"] = "گنجور » نام‌نویسی » مرحلهٔ نهایی";
ViewData["Title"] = "دیوان » نام‌نویسی » مرحلهٔ نهایی";
}
}
public async Task<IActionResult> OnGetAsync()
@ -87,7 +87,7 @@ namespace GanjooRazor.Pages
SignUpViewModel = new UnverifiedSignUpViewModel()
{
ClientAppName = "وبگاه گنجور",
ClientAppName = "وبگاه دیوان",
Language = "fa-IR",
CallbackUrl = $"{Configuration["SiteUrl"]}/signup"
};
@ -227,7 +227,7 @@ namespace GanjooRazor.Pages
LoginViewModel loginViewModel = new LoginViewModel()
{
ClientAppName = "وبگاه گنجور",
ClientAppName = "وبگاه دیوان",
Language = "fa-IR",
Username = postViewModel.Email,
Password = postViewModel.Password

View File

@ -4,7 +4,7 @@
Layout = null;
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@ -12,6 +12,7 @@
<title>درخواست حذف حاشیه</title>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
<style>
label {
width: 100px;
@ -50,10 +51,10 @@
<div class="width-100per">
<div class="width-100per text-align-center">
<p class="alert-text">
برای ثبت درخواست حذف حاشیه لازم است ابتدا با نام کاربری خود وارد گنجور شوید.
برای ثبت درخواست حذف حاشیه لازم است ابتدا با نام کاربری خود وارد دیوان شوید.
</p>
<p class="text-align-center">
<a href=@Html.Raw($"/login/?redirect=/ReportComment/?CommentId={Model.Report.CommentId}")>ورود به گنجور</a>
<a href=@Html.Raw($"/login/?redirect=/ReportComment/?CommentId={Model.Report.CommentId}")>ورود به دیوان</a>
</p>
</div>
</div>

View File

@ -1,4 +1,4 @@
using GanjooRazor.Utils;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
@ -78,7 +78,7 @@ namespace GanjooRazor.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}

View File

@ -2,7 +2,7 @@
@model GanjooRazor.Pages.ContribsModel
@{
Layout = "_Layout";
ViewData["Title"] = "گنجور » مشارکت‌های کاربران";
ViewData["Title"] = "دیوان » مشارکت‌های کاربران";
}
@section Head {
<script src="/js/chart.js"></script>
@ -27,7 +27,7 @@ else
<a href="/contribs">مشارکت‌های کاربران</a>
</h2>
<p>
این آمارها نشانگر آن بخش از مشارکت‌های کاربران در گنجور است که از طریق نام‌نویسی و به شکل مستقیم انجام شده و پوشش‌دهندهٔ همهٔ این مشارکت‌ها نیست. برای مشاهدهٔ گونه‌های دیگر مشارکت کاربران -بعضاً در حجم‌های بزرگتر- صفحات <a href="/sources">منابع</a>، <a href="/donate">حمایت‌های مالی</a> و همینطور <a href="https://blog.ganjoor.net">تازه‌های گنجور</a> و <a href="https://github.com/ganjoor/">گیتهاب گنجور</a> را ببینید.
این آمارها نشانگر آن بخش از مشارکت‌های کاربران در دیوان است که از طریق نام‌نویسی و به شکل مستقیم انجام شده و پوشش‌دهندهٔ همهٔ این مشارکت‌ها نیست. برای مشاهدهٔ گونه‌های دیگر مشارکت کاربران -بعضاً در حجم‌های بزرگتر- صفحات <a href="/sources">منابع</a>، <a href="/donate">حمایت‌های مالی</a> و همینطور <a href="https://blog.ganjoor.net">تازه‌های دیوان</a> و <a href="https://github.com/ganjoor/">گیتهاب دیوان</a> را ببینید.
</p>
<p>
در آمارهای زیر تعداد روز مشارکت نشانگر یک بازهٔ زمانی نیست بلکه نشانگر تعداد روزهایی است که در آن مشارکت صورت گرفته که ممکن است کوچکتر از فاصلهٔ شروع مشارکت تا روز جاری باشد. آمارها به شکل روزانه به‌روز می‌شوند و از این جهت ممکن است یک روز عقب‌تر از آمار واقعی باشند.

View File

@ -6,7 +6,7 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@ -14,8 +14,9 @@
@ViewData["Title"]
</title>
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<link rel="search" type="application/opensearchdescription+xml" title="دیوان" href="https://ganjoor.net/search.xml" />
<style>
code, pre {
@ -60,18 +61,18 @@
<body>
<div id="hdr">
<h1><a href="/" title="گنجور"><img src="/image/gdap.png" alt="گنجور" style="width:auto;margin:auto;" /></a></h1>
<h1><a href="/" title="دیوان"><img src="/image/gdap.png" alt="دیوان" style="width:auto;margin:auto;" /></a></h1>
</div>
<h1 class="text-danger">خطای پیش‌بینی نشده</h1>
<h2 class="text-danger">متأسفانه نمایش صفحهٔ مد نظر شما با خطا مواجه شد.</h2>
<p>اگر این خطا با تازه‌سازی صفحه رفع نشد ممکن است سرور گنجور دچار کمبود منابع شده باشد یا اشکالی پیش آمده باشد که رسیدگی به آن تا ساعاتی دیگر میسر نباشد. در این صورت می‌توانید از وبگاههای جایگزین یا موارد پیشنهادی زیر استفاده کنید:</p>
<div class="century"><a href="http://old.ganjoor.net"><strong>وبگاه قدیمی گنجور</strong></a></div>
<div class="century"><a href="https://dg.ganjoor.net">دریافت گنجور رومیزی</a></div>
<p>اگر این خطا با تازه‌سازی صفحه رفع نشد ممکن است سرور دیوان دچار کمبود منابع شده باشد یا اشکالی پیش آمده باشد که رسیدگی به آن تا ساعاتی دیگر میسر نباشد. در این صورت می‌توانید از وبگاههای جایگزین یا موارد پیشنهادی زیر استفاده کنید:</p>
<div class="century"><a href="http://old.ganjoor.net"><strong>وبگاه قدیمی دیوان</strong></a></div>
<div class="century"><a href="https://dg.ganjoor.net">دریافت دیوان رومیزی</a></div>
<div class="century"><a href="http://pozh.org/saaghar/">دریافت ساغر</a></div>
<div class="century"><a href="https://blog.ganjoor.net/category/android/">نرم‌افزارهای اندرویدی سازگار با گنجور</a></div>
<div class="century"><a href="https://blog.ganjoor.net/category/ios/">نرم‌افزارهای سازگار با گنجور برای آیفون و آی‌پد</a></div>
<div class="century"><a href="https://github.com/ganjoor/">نرم‌افزارهای بازمتن گنجور</a></div>
<div class="century"><a href="https://blog.ganjoor.net/category/android/">نرم‌افزارهای اندرویدی سازگار با دیوان</a></div>
<div class="century"><a href="https://blog.ganjoor.net/category/ios/">نرم‌افزارهای سازگار با دیوان برای آیفون و آی‌پد</a></div>
<div class="century"><a href="https://github.com/ganjoor/">نرم‌افزارهای بازمتن دیوان</a></div>
@if (Model.ShowRequestId)
{

View File

@ -33,7 +33,7 @@ namespace GanjooRazor.Pages
return maintenanceResult;
}
ViewData["Title"] = $"گنجور » پرسش‌های متداول";
ViewData["Title"] = $"دیوان » پرسش‌های متداول";
InitializeCommonPageState();
var (poetsOk, poets, poetsError) = await _poetCache.GetPoetsAsync(EditorCacheBypass);

View File

@ -92,10 +92,10 @@
{
<div class="notice">
<p>
از آنجا که شما با شبکهٔ داخلی اطلاعات ایران وصل شده‌اید در حال مشاهدهٔ یک نسخهٔ آفلاین از گنجور هستید.
از آنجا که شما با شبکهٔ داخلی اطلاعات ایران وصل شده‌اید در حال مشاهدهٔ یک نسخهٔ آفلاین از دیوان هستید.
</p>
<p>
این یک نسخهٔ آفلاین با اطلاعات قدیمی از سایت گنجور است که برای ایرانیان داخل کشور که اینترنتشان قطع است در دسترس قرار گرفته است.
این یک نسخهٔ آفلاین با اطلاعات قدیمی از سایت دیوان است که برای ایرانیان داخل کشور که اینترنتشان قطع است در دسترس قرار گرفته است.
</p>
<p>
بعضی امکاناتِ نیازمند اینترنت حذف شده و برخی قابلیتها نیز ممکن است به درستی کار نکند.
@ -104,7 +104,7 @@
امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید.
</p>
<p>
نسخهٔ به‌روز گنجور روی اینترنت تا پایان قطعی اینترنت در ایران برای آی.پی‌های خارج از ایران در دسترس است.
نسخهٔ به‌روز دیوان روی اینترنت تا پایان قطعی اینترنت در ایران برای آی.پی‌های خارج از ایران در دسترس است.
</p>
</div>
}
@ -112,7 +112,7 @@ else if (Model.ReadOnlyMode)
{
<div class="notice">
<p>
گنجور در حال حاضر در وضعیت فقط‌خواندنی است.
دیوان در حال حاضر در وضعیت فقط‌خواندنی است.
</p>
<p>
امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید.

View File

@ -1,4 +1,4 @@
using DNTPersianUtils.Core;
using DNTPersianUtils.Core;
using GanjooRazor.Utils;
using KontorService.Models.Reporting.ViewModels;
using Microsoft.AspNetCore.Http;
@ -855,13 +855,13 @@ namespace GanjooRazor.Pages
private void BuildPoetPageTitleAndBreadCrumbs(GoogleBreadCrumbList breadCrumbList)
{
ViewData["Title"] = $"گنجور » {GanjoorPage.PoetOrCat.Poet.Nickname}";
ViewData["Title"] = $"دیوان » {GanjoorPage.PoetOrCat.Poet.Nickname}";
breadCrumbList.AddItem(GanjoorPage.PoetOrCat.Poet.Nickname, GanjoorPage.PoetOrCat.Cat.FullUrl, $"{APIRoot.InternetUrl + GanjoorPage.PoetOrCat.Poet.ImageUrl}");
}
private void BuildCatPageTitleAndBreadCrumbs(GoogleBreadCrumbList breadCrumbList)
{
string title = $"گنجور » ";
string title = $"دیوان » ";
bool poetCat = true;
foreach (var gran in GanjoorPage.PoetOrCat.Cat.Ancestors)
{
@ -876,7 +876,7 @@ namespace GanjooRazor.Pages
private void BuildPoemPageTitleAndBreadCrumbs(GoogleBreadCrumbList breadCrumbList)
{
ViewData["Title"] = $"گنجور » {GanjoorPage.Poem.FullTitle}";
ViewData["Title"] = $"دیوان » {GanjoorPage.Poem.FullTitle}";
bool poetCat = true;
foreach (var gran in GanjoorPage.Poem.Category.Cat.Ancestors)
{
@ -905,7 +905,7 @@ namespace GanjooRazor.Pages
if (GanjoorPage.PoetOrCat != null)
{
bool poetCat = true;
string fullTitle = "گنجور » ";
string fullTitle = "دیوان » ";
if (GanjoorPage.PoetOrCat.Cat.Ancestors.Count == 0)
{
fullTitle += $"{GanjoorPage.PoetOrCat.Poet.Nickname} » ";
@ -924,7 +924,7 @@ namespace GanjooRazor.Pages
}
else
{
ViewData["Title"] = $"گنجور » {GanjoorPage.FullTitle}";
ViewData["Title"] = $"دیوان » {GanjoorPage.FullTitle}";
}
breadCrumbList.AddItem(GanjoorPage.Title, GanjoorPage.FullUrl, "https://i.ganjoor.net/cat.png");
}

View File

@ -28,7 +28,7 @@ namespace GanjooRazor.Pages
/// Message shown whenever an action requiring a session couldn't prepare an authenticated
/// client (expired/missing cookies).
/// </summary>
protected const string NotLoggedInMessage = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
protected const string NotLoggedInMessage = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
/// <summary>
/// HttpClient instance for unauthenticated/public calls (injected, shared/pooled by the DI

View File

@ -135,7 +135,7 @@ namespace GanjooRazor.Pages
Contributions = JsonConvert.DeserializeObject<UserContributionsViewModel>(await responseContributions.Content.ReadAsStringAsync());
ViewData["Title"] = $"گنجور » حاشیه‌گذاری‌های {Profile.NickName}";
ViewData["Title"] = $"دیوان » حاشیه‌گذاری‌های {Profile.NickName}";
Title = $"حاشیه‌گذاری‌های {Profile.NickName}";
HomeLink = $"/hashieha?userid={filterUserId}";
@ -217,7 +217,7 @@ namespace GanjooRazor.Pages
htmlText += $"</div>{Environment.NewLine}";
}
ViewData["Title"] = $"گنجور » {Title}";
ViewData["Title"] = $"دیوان » {Title}";
PagingToolsHtml = htmlText;
return Page();

View File

@ -5,7 +5,7 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<title>پیشنهاد شعر مرتبط با تصویر</title>
@ -13,6 +13,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
<link href="/css/spotify.css" rel="stylesheet" type="text/css" />
<script src="/lib/jquery/dist/jquery.min.js"></script>

View File

@ -1,4 +1,4 @@
using GanjooRazor.Models.MuseumLink;
using GanjooRazor.Models.MuseumLink;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
@ -41,7 +41,7 @@ namespace GanjooRazor.Pages
LoggedIn = !string.IsNullOrEmpty(Request.Cookies["Token"]);
if(!LoggedIn)
{
LastError = $"برای پیشنهاد تصاویر مرتبط با اشعار لازم است ابتدا با نام کاربری خود وارد گنجور شوید. </p><p><a href=\"/login/?redirect={RelatedImageSuggestionModel.GanjoorUrl}\")>ورود به گنجور</a>";
LastError = $"برای پیشنهاد تصاویر مرتبط با اشعار لازم است ابتدا با نام کاربری خود وارد دیوان شوید. </p><p><a href=\"/login/?redirect={RelatedImageSuggestionModel.GanjoorUrl}\")>ورود به دیوان</a>";
}
else
if (Request.Query["final"] == "1")
@ -74,7 +74,7 @@ namespace GanjooRazor.Pages
}
else
{
LastError = "لطفاً از گنجور خارج و مجددا به آن وارد شوید.";
LastError = "لطفاً از دیوان خارج و مجددا به آن وارد شوید.";
}
}
}

View File

@ -6,17 +6,17 @@
}
@section Head {
<meta name="description" content="جستجو در شعر فارسی">
<meta name="description" content="اردو کی کلاسیکی شاعری اور نثر">
}
@if (Model.OfflineMode)
{
<div class="notice">
<p>
از آنجا که شما با شبکهٔ داخلی اطلاعات ایران وصل شده‌اید در حال مشاهدهٔ یک نسخهٔ آفلاین از گنجور هستید.
از آنجا که شما با شبکهٔ داخلی اطلاعات ایران وصل شده‌اید در حال مشاهدهٔ یک نسخهٔ آفلاین از دیوان هستید.
</p>
<p>
این یک نسخهٔ آفلاین با اطلاعات قدیمی از سایت گنجور است که برای ایرانیان داخل کشور که اینترنتشان قطع است در دسترس قرار گرفته است.
این یک نسخهٔ آفلاین با اطلاعات قدیمی از سایت دیوان است که برای ایرانیان داخل کشور که اینترنتشان قطع است در دسترس قرار گرفته است.
</p>
<p>
بعضی امکاناتِ نیازمند اینترنت حذف شده و برخی قابلیتها نیز ممکن است به درستی کار نکند.
@ -25,7 +25,7 @@
امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید.
</p>
<p>
نسخهٔ به‌روز گنجور روی اینترنت تا پایان قطعی اینترنت در ایران برای آی.پی‌های خارج از ایران در دسترس است.
نسخهٔ به‌روز دیوان روی اینترنت تا پایان قطعی اینترنت در ایران برای آی.پی‌های خارج از ایران در دسترس است.
</p>
</div>
}
@ -33,10 +33,10 @@ else if (Model.ReadOnlyMode)
{
<div class="notice">
<p>
گنجور در حال حاضر در وضعیت فقط‌خواندنی است.
دیوان اس وقت صرف پڑھنے کے لیے دستیاب ہے۔
</p>
<p>
امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید.
رکنیت اور حاشیہ لکھنے کی سہولت فی الحال بند ہے؛ یہاں درج کی گئی کوئی بھی چیز محفوظ نہیں رہے گی۔
</p>
</div>
}
@ -50,7 +50,7 @@ else if (Model.ReadOnlyMode)
else
{
<div id="hdr">
<h1><a href="/" title="گنجور"><img src="/image/gdap.png" alt="گنجور" class="home-logo"></a></h1>
<h1><a href="/" title="دیوان" class="divan-wordmark">دیوان</a></h1>
</div>
<div id="fa">
@ -58,12 +58,12 @@ else
<div class="actionbox">
<form action="/search" method="get" id="searchhorm">
<span class="home-search-input-wrap">
<input type="text" name="s" id="s" placeholder="جستجو" class="inputText" size="35" value="" oninput="onHomeSearchInput(this.value)">
<span id="home-search-clear" class="home-search-clear" style="display:none" title="پاک‌کردن" onclick="clearHomeSearch()">×</span>
<input type="text" name="s" id="s" placeholder="تلاش" class="inputText" size="35" value="" oninput="onHomeSearchInput(this.value)">
<span id="home-search-clear" class="home-search-clear" style="display:none" title="صاف کریں" onclick="clearHomeSearch()">×</span>
</span>
<input type="hidden" name="es" id="es" value="1">
<select name="author" id="author">
<option value="0" selected>در آثار همهٔ سخنوران</option>
<option value="0" selected>تمام شعرا کے کلام میں</option>
@{
foreach (RMuseum.Models.Ganjoor.ViewModels.GanjoorPoetViewModel poet in Model.Poets)
{
@ -71,12 +71,12 @@ else
}
}
</select>
<input type="submit" value="بیاب">
<input type="submit" value="تلاش کریں">
</form>
</div>
<div class="spacer" id="home-found-poets" style="display:none"></div>
<p class="up-hint" id="home-search-hint" style="display:none"><small>برای جستجو در متون «بیاب» را بزنید، فهرست زیر تنها حاصل جستجو در فهرست سخنوران و کتابهاست.</small></p>
<p class="up-hint" id="home-search-hint" style="display:none"><small>متن میں تلاش کے لیے «تلاش کریں» دبائیں؛ نیچے کی فہرست صرف شعرا اور کتابوں کے ناموں میں تلاش کا نتیجہ ہے۔</small></p>
<partial name="_InlineLoginPartial" model="Model" />
@ -85,7 +85,7 @@ else
<div id="home-popular-poets-row">
<div class="century">
سخنوران پرمخاطب
مقبول شعرا
</div>
@{
@ -115,7 +115,7 @@ else
@{
<div class="century" id="cl">
دسته‌بندی بر اساس قرن
صدیوں کے لحاظ سے
</div>
<div id="real-centuries">
@ -163,7 +163,7 @@ else
@if (poetGroup.Id == 0)
{
<div class="century" id="cl">
دسته‌بندی بر اساس قرن
صدیوں کے لحاظ سے
</div>
<div class="circled-number-container">
@foreach (var g in Model.PoetGroups)
@ -187,24 +187,24 @@ else
<div class="century" id="gmap">
<a href="/map">
نقشهٔ خاستگاه سخنوران
شعرا کی جائے پیدائش کا نقشہ
</a>
</div>
<div class="spacer">
<div class="poet">
<a href="/map"><img src="/image/map.gif" alt="نقشهٔ گنجور"></a>
<a href="/map"><img src="/image/map.gif" alt="دیوان کا نقشہ"></a>
</div>
</div>
<div class="century" id="books-shelf-caption">
قفسهٔ کتابها
کتابوں کی الماری
</div>
<div id="books-shelf-outer">
<button type="button" class="books-shelf-handle books-shelf-handle-right" aria-label="نمایش کتابهای بیشتر در سمت راست" onclick="scrollBooksShelf(220)">‹</button>
<button type="button" class="books-shelf-handle books-shelf-handle-right" aria-label="دائیں جانب مزید کتابیں" onclick="scrollBooksShelf(220)">‹</button>
<div id="books-shelf-wrap">
<div id="books-shelf" aria-label="قفسهٔ کتابها"></div>
<div id="books-shelf" aria-label="کتابوں کی الماری"></div>
</div>
<button type="button" class="books-shelf-handle books-shelf-handle-left" aria-label="نمایش کتابهای بیشتر در سمت چپ" onclick="scrollBooksShelf(-220)">›</button>
<button type="button" class="books-shelf-handle books-shelf-handle-left" aria-label="بائیں جانب مزید کتابیں" onclick="scrollBooksShelf(-220)">›</button>
</div>
</div>

View File

@ -93,7 +93,7 @@ namespace GanjooRazor.Pages
}
catch
{
LastError = "خطا در دسترسی به وب سرویس گنجور";
LastError = "خطا در دسترسی به وب سرویس دیوان";
return false;
}
}
@ -171,7 +171,7 @@ namespace GanjooRazor.Pages
return LoggedIn ? Redirect(targetUrl) : Redirect($"/login?redirect={targetUrl}");
}
ViewData["Title"] = "گنجور";
ViewData["Title"] = "دیوان";
return Page();
}

View File

@ -6,13 +6,14 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<title>نقشهٔ گنجور</title>
<title>نقشهٔ دیوان</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="سخنوران و نویسندگان گنجور روی نقشهٔ جغرافیایی" />
<meta name="description" content="سخنوران و نویسندگان دیوان روی نقشهٔ جغرافیایی" />
<meta charset="utf-8" />
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
<link rel="stylesheet" href="/css/leaflet.css?version=2" />
<style>
.leaflet-container {
@ -153,7 +154,7 @@
<div class="century" id="rangeText"></div>
<div>
<p>
نقشهٔ خاستگاه سخن‌سرایان <a href="/" style="text-decoration:none">گنجور</a>
نقشهٔ خاستگاه سخن‌سرایان <a href="/" style="text-decoration:none">دیوان</a>
</p>
</div>
</div>

View File

@ -5,7 +5,7 @@
Layout = null;
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
@ -14,8 +14,9 @@
@Html.Raw(ViewData["Title"])
</title>
<link href="~/css/p8.css" asp-append-version="true" rel="stylesheet" type="text/css" />
<partial name="_DivanHead" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<link rel="search" type="application/opensearchdescription+xml" title="دیوان" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/bk.js" asp-append-version="true"></script>
<script>
@ -107,18 +108,18 @@
<h1>
@if (Model.Poet == null)
{
<a href="/photos" title="چهره‌های گنجور"><img src="/image/gdap.png" alt="@ViewData["Title"]" class="home-logo" /></a>
<a href="/photos" title="چهره‌های دیوان"><img src="/image/gdap.png" alt="@ViewData["Title"]" class="home-logo" /></a>
}
else
{
<a href="/photos" title="چهره‌های گنجور"><img src="@Model.Poet.ImageUrl" alt="@ViewData["Title"]" class="home-logo" /></a>
<a href="/photos" title="چهره‌های دیوان"><img src="@Model.Poet.ImageUrl" alt="@ViewData["Title"]" class="home-logo" /></a>
}
</h1>
<h2>
@if (Model.Poet == null)
{
<text>
چهره‌های گنجور
چهره‌های دیوان
</text>
}
else
@ -135,18 +136,18 @@
<a href="/photos">سخنوران دیگر</a>
</h3>
}
<h3><a href="/">برگشت به گنجور</a></h3>
<h3><a href="/">برگشت به دیوان</a></h3>
<p>
از طریق این صفحه می‌توانید تصویر مد نظر یا طراحی شدهٔ خود را برای سخنوران محبوبتان پیشنهاد دهید.
</p>
<div class="notice">
<p><small>هدف اولیهٔ استفاده از تصاویر سخنوران در گنجور آسان کردن فرایند جستجو و مرور اشعار است. از عموم ادبای ایران زمین (تقریباً همهٔ غیر معاصرین) تصویر مستندی به جا نمانده و تصویری که ما از سعدی، حافظ، مولانا و فردوسی و دیگر بزرگانمان در ذهن داریم حاصل کار هنرمندان معاصر است. به همین جهت و به این جهت که خصوصاً برای سخنورانی که شهرت زیادی ندارند تصاویری که به نیت و به نام آنها ارائه شده باشد یافت نمی‌شد در گنجور بعضاً از تصاویری که به نام دیگران ارائه شده استفاده کرده‌ایم.</small></p>
<p><small>هدف اولیهٔ استفاده از تصاویر سخنوران در دیوان آسان کردن فرایند جستجو و مرور اشعار است. از عموم ادبای ایران زمین (تقریباً همهٔ غیر معاصرین) تصویر مستندی به جا نمانده و تصویری که ما از سعدی، حافظ، مولانا و فردوسی و دیگر بزرگانمان در ذهن داریم حاصل کار هنرمندان معاصر است. به همین جهت و به این جهت که خصوصاً برای سخنورانی که شهرت زیادی ندارند تصاویری که به نیت و به نام آنها ارائه شده باشد یافت نمی‌شد در دیوان بعضاً از تصاویری که به نام دیگران ارائه شده استفاده کرده‌ایم.</small></p>
<p>
<small>
اگر تمایل دارید این فرایند را بهبود دهید یا اگر هنرمند هستید و علاقه دارید اثر خودتان را برای خصوصاً سخنوران کمتر شناخته شده در گنجور و در قالب چهرهٔ سخنوران یا ادیبان ببینید از این صفحه استفاده کنید.
اگر تمایل دارید این فرایند را بهبود دهید یا اگر هنرمند هستید و علاقه دارید اثر خودتان را برای خصوصاً سخنوران کمتر شناخته شده در دیوان و در قالب چهرهٔ سخنوران یا ادیبان ببینید از این صفحه استفاده کنید.
</small>
</p>
<p><small>سخنور مد نظرتان را انتخاب کنید و تصویر مد نظرتان را بارگذاری کنید. توجه فرمایید که از لحاظ هنری امکان استفاده از تصاویری که با تصاویر موجود همخوان نباشند (مثلاً حالت طراحی سیاه قلم داشته باشند یا خیلی مینیاتوری باشند) وجود ندارد. تلاش کنید تصویری که ارائه می‌کنید شاخص باشد و بتوان با یک نگاه تفاوت آن را با بقیهٔ تصاویر تشخیص داد. توجه فرمایید که در نهایت تصاویر باید در قالب قاب بیضوی ایستادهٔ گنجور بریده شوند منتهی شما تصویر کامل را ارسال بفرمایید.</small></p>
<p><small>سخنور مد نظرتان را انتخاب کنید و تصویر مد نظرتان را بارگذاری کنید. توجه فرمایید که از لحاظ هنری امکان استفاده از تصاویری که با تصاویر موجود همخوان نباشند (مثلاً حالت طراحی سیاه قلم داشته باشند یا خیلی مینیاتوری باشند) وجود ندارد. تلاش کنید تصویری که ارائه می‌کنید شاخص باشد و بتوان با یک نگاه تفاوت آن را با بقیهٔ تصاویر تشخیص داد. توجه فرمایید که در نهایت تصاویر باید در قالب قاب بیضوی ایستادهٔ دیوان بریده شوند منتهی شما تصویر کامل را ارسال بفرمایید.</small></p>
<p><small>به گونه‌ای دیگر نیز می‌توانید به این پروژه کمک کنید و آن این که برای کمک به تناسب تصاویر با زندگی واقعی سخنوران اگر نکات خاصی که روی تصویر آنها تأثیرگذار است می‌دانید با ارائهٔ لینک یا مستندات (مثلاً ذکر شعری که در آن به این نکات اشاره شده) آنها را عنوان کنید. مثلاً ذکر این که سخنوری در جوانی از دنیا رفته می‌تواند نکتهٔ مهمی باشد تا سن تصویر متناسب با زندگی واقعی سخنور باشد و ... . </small></p>
</div>
@ -263,7 +264,7 @@
{
<div class="notice" id="commentform">
<p>
برای پیشنهاد نکات دیگری راجع به @Model.Poet.Nickname که ممکن است روی تصویر خیالی یا حقیقی او تأثیرگذار باشد در گنجور <a href="/signup" target="_blank">نام‌نویسی</a> کنید و با نام کاربری خود از طریق آیکون 👤 گوشهٔ پایین سمت چپ صفحات به آن وارد شوید.
برای پیشنهاد نکات دیگری راجع به @Model.Poet.Nickname که ممکن است روی تصویر خیالی یا حقیقی او تأثیرگذار باشد در دیوان <a href="/signup" target="_blank">نام‌نویسی</a> کنید و با نام کاربری خود از طریق آیکون 👤 گوشهٔ پایین سمت چپ صفحات به آن وارد شوید.
</p>
</div>
}
@ -451,7 +452,7 @@
{
<div class="notice">
<p>
برای پیشنهاد تصویر دیگری برای @Model.Poet.Nickname در گنجور <a href="/signup" target="_blank">نام‌نویسی</a> کنید و با نام کاربری خود از طریق آیکون 👤 گوشهٔ پایین سمت چپ صفحات به آن وارد شوید.
برای پیشنهاد تصویر دیگری برای @Model.Poet.Nickname در دیوان <a href="/signup" target="_blank">نام‌نویسی</a> کنید و با نام کاربری خود از طریق آیکون 👤 گوشهٔ پایین سمت چپ صفحات به آن وارد شوید.
</p>
</div>
}

View File

@ -5,7 +5,7 @@
}
<!DOCTYPE html>
<html lang="fa-IR" dir="rtl">
<html lang="ur" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="robots" content="noindex, nofollow" />

Some files were not shown because too many files have changed in this diff Show More