Update project documentation to reflect the transition from Phase 3 to a new critical refinement phase (Phase 3.5) and outline long-term strategic goals. Key documentation updates: - Added Phase 3.5 (Essential Refinements) to the roadmap and checklist, focusing on multi-package support, parcel invoice forms, and internationalization (i18n). - Defined Phase 5 (Commercialization) including tiered subscription models (Starter, Business, Enterprise) and premium features. - Created `IFNEX_Commercial_Model.md` to detail monetization strategies. - Created `IFNEX_I18N_Strategy.md` to outline the multi-language implementation approach using Polylang. - Updated `README.md` with the revised project lifecycle and new documentation references.
6.8 KiB
6.8 KiB
استراتژی چندزبانه IFNEX (i18n)
سند مطالعاتی — برای فاز ۳.۵ و فاز ۵
آخرین بروزرسانی: 2026-08-29
🎯 هدف
پشتیبانی کامل از چند زبان در فرانتاند وردپرس و بکاند لاراول، با:
- زبان فارسی (پیشفرض، RTL)
- زبان انگلیسی (LTR)
- آماده برای افزودن زبانهای دیگر در آینده (عربی، چینی، و...)
🏗️ معماری فعلی
وردپرس
- پلاگین: Polylang (نصبشده)
- قالب IFNEX: فقط فارسی
- پلاگین IFNEX Bridge: فقط فارسی (hard-coded)
- زبانهای فعال: فارسی (پیشفرض) + انگلیسی
لاراول
- APP_LOCALE: fa
- APP_FALLBACK_LOCALE: fa
- فایلهای زبان: موجود در
lang/fa/وlang/en/ - تاریخ: morilog/jalali (فارسی) + Carbon (انگلیسی)
📋 برنامه پیادهسازی فاز ۳.۵
۱. وردپرس — استخراج رشتهها
۱.۱ فایلهای PHP پلاگین
تمام رشتههای hard-coded فارسی باید با توابع ترجمه جایگزین شوند:
// ❌ قبل:
return '<p class="ifnex-error">برای مشاهده پروفایل، باید وارد شوید.</p>';
// ✅ بعد:
return '<p class="ifnex-error">' . __('برای مشاهده پروفایل، باید وارد شوید.', 'ifnex-bridge') . '</p>';
فایلهای موردنیاز برای اصلاح:
ifnex-bridge.phpincludes/api-client.phpincludes/user-bridge.phpincludes/shortcodes.php(بزرگترین فایل)includes/tracking-form.php
۱.۲ فایلهای JS
استفاده از wp_localize_script برای ارسال ترجمهها:
// در PHP:
wp_localize_script('ifnex-order-form-js', 'ifnex_i18n', [
'loading' => __('در حال بارگذاری...', 'ifnex-bridge'),
'error_required' => __('لطفاً همه فیلدها را تکمیل کنید.', 'ifnex-bridge'),
'select_country' => __('انتخاب کشور...', 'ifnex-bridge'),
// ...
]);
// در JS:
$('#ifnex-from-country').empty().append(
'<option value="">' + ifnex_i18n.select_country + '</option>'
);
۲. ساخت فایلهای ترجمه
۲.۱ ساختار پوشه
ifnex-bridge/
└── languages/
├── ifnex-bridge-fa_IR.po
├── ifnex-bridge-fa_IR.mo
├── ifnex-bridge-en_US.po
└── ifnex-bridge-en_US.mo
۲.۲ ابزارها
- Poedit — برای ویرایش فایلهای
.po - WP-CLI — برای استخراج خودکار:
wp i18n make-pot ifnex-bridge/ languages/ifnex-bridge.pot
۳. اصلاح CSS برای RTL/LTR
/* پیشفرض RTL (فارسی) */
.ifnex-form-grid {
direction: rtl;
}
/* LTR برای انگلیسی */
html[lang="en"] .ifnex-form-grid {
direction: ltr;
}
۴. اصلاح قالب IFNEX
- استخراج رشتههای قالب
- افزودن فایلهای ترجمه قالب
- اصلاح CSS برای پشتیبانی RTL/LTR
۵. لاراول
۵.۱ فایلهای زبان
lang/
├── fa/
│ ├── messages.php
│ ├── validation.php
│ └── ...
└── en/
├── messages.php
├── validation.php
└── ...
۵.۲ API پاسخها
// در Controller:
return response()->json([
'message' => __('messages.order_created'),
], 201);
۵.۳ هدر Accept-Language
- اضافهکردن middleware برای تشخیص زبان از هدر
Accept-Language - تنظیم
App::setLocale()بر اساس هدر
// middleware:
public function handle($request, Closure $next)
{
$locale = $request->header('Accept-Language', 'fa');
App::setLocale(substr($locale, 0, 2));
return $next($request);
}
۶. وردپرس Polylang Integration
۶.۱ ثبت strings در Polylang
// در functions.php قالب:
pll_register_string('ifnex-bridge', 'برای مشاهده پروفایل، باید وارد شوید.');
۶.۲ استفاده در شورتکدها
$login_prompt = pll__('برای مشاهده پروفایل، باید وارد شوید.');
۶.۳ ترجمه صفحات
- ساخت نسخه انگلیسی برای صفحات:
/en/my-account/,/en/wallet/, و... - اتصال صفحات فارسی و انگلیسی در Polylang
🎯 معیارهای پذیرش (Acceptance Criteria)
فاز ۳.۵:
- تمام رشتههای پلاگین IFNEX Bridge قابل ترجمه هستند
- فایلهای
.po/.moبرای fa_IR و en_US موجود است - سایت در زبان انگلیسی بهدرستی نمایش داده میشود
- فرم سفارش در زبان انگلیسی کار میکند
- پیامهای خطا در زبان انگلیسی نمایش داده میشوند
- CSS در هر دو حالت RTL و LTR درست است
- API لاراول بر اساس هدر
Accept-Languageپاسخ میدهد
فاز ۵ (آینده):
- افزودن زبان عربی
- افزودن زبان چینی
- ترجمه خودکار با API (Google Translate)
- انتخاب زبان در فرم سفارش
📊 برآورد زمان
| بخش | زمان تخمینی |
|---|---|
| استخراج رشتهها (PHP) | ۱ روز |
| استخراج رشتهها (JS) | نصف روز |
| ساخت فایلهای ترجمه | ۱ روز |
| اصلاح CSS RTL/LTR | نصف روز |
| تست و رفع اشکال | ۱ روز |
| مجموع | ۴ روز |
⚠️ نکات مهم
- هماهنگی با کارفرما: قبل از شروع، باید تأیید بشه که ترجمه انگلیسی رو کارفرما تأمین میکنه یا خودمون انجام میدیم.
- تاریخ: برای زبان انگلیسی، تاریخ میلادی نمایش داده بشه (نه شمسی).
- اعداد: برای زبان انگلیسی، اعداد لاتین نمایش داده بشه.
- جهت: RTL برای فارسی/عربی، LTR برای انگلیسی/چینی.
- فونت: برای زبان انگلیسی از فونت مناسب (مثل Inter یا Roboto) استفاده بشه.
📚 منابع
2026 VernaSoft Group. Internal use only.