فرانت‌اند: نسخه انگلیسی با مسیر /en/ — مسیریابی دوزبانه، دیکشنری رابط، بومی‌سازی داده، تغییر زبان در هدر، ویرایش انگلیسی در پنل و پشتیبانی LTR

This commit is contained in:
MMD
2026-09-12 23:37:55 +03:30
parent 6bb6226e06
commit 6b49d035c2
43 changed files with 1194 additions and 262 deletions
+16 -1
View File
@@ -1,9 +1,12 @@
// انواع مشترک داده‌ها — همه محتوای متنی سایت از بک‌اند (GET /api/site) بارگذاری می‌شود.
// فیلدهای *_en معادل انگلیسی‌اند (اختیاری — خالی یعنی بدون ترجمه و برگشت به فارسی).
export type Service = {
id: number;
title: string;
title_en?: string;
desc: string;
desc_en?: string;
icon: 'draft' | 'tower' | 'mall' | 'villa' | 'renew' | 'manage' | 'invest' | 'landscape';
};
@@ -13,17 +16,26 @@ export type Project = {
id: number;
slug: string;
title: string;
title_en?: string;
location: string;
location_en?: string;
year: string;
year_en?: string;
status: ProjectStatus;
image: string;
gallery: string[];
area: string;
area_en?: string;
floors: string;
floors_en?: string;
units: string;
units_en?: string;
client: string;
client_en?: string;
summary: string;
summary_en?: string;
body: string[];
body_en?: string[] | null;
};
/** سند TipTap (ProseMirror) — بدنه ساختاریافته مقاله */
@@ -33,9 +45,12 @@ export type ArticleStatus = 'draft' | 'published';
export type Article = {
id: number;
slug: string; title: string; date: string; category: string; image: string; read: string; excerpt: string;
slug: string; title: string; title_en?: string; date: string; date_en?: string; category: string; category_en?: string;
image: string; read: string; read_en?: string; excerpt: string; excerpt_en?: string;
/** سند TipTap — ردیف‌های قدیمی ممکن است هنوز لیست پاراگراف باشند */
body: ArticleBodyDoc | string[];
/** بدنه انگلیسی — سند TipTap؛ null یعنی بدون ترجمه */
body_en?: ArticleBodyDoc | null;
/** پیش‌نویس فقط برای ادمین (از انتهای مدیریتی) می‌آید؛ بازدیدکننده نمی‌بیند */
status: ArticleStatus;
/** کلمه کلیدی هدف چک‌لیست سئو — راهنمای نوشتن، در سایت نمایش داده نمی‌شود */