Skip to content

DashWoo 1.5.0

Choose a tag to compare

@obsifox obsifox released this 21 Sep 13:05
· 3 commits to main since this release

DashWoo 1.5.0 — کل پروژه انگلیسی شد، فارسی به‌صورت ترجمه می‌آید

این نسخه همان چیزی است که خواستید: تمام پروژه (افزونه، پوستهٔ مدیریت، ابزارک‌ها،
تست‌ها، ابزارها و مستندات) به‌زبان انگلیسی نوشته شده و زبان فارسی به‌صورت بستهٔ
ترجمهٔ کامل
همراه آن می‌آید. یعنی سایت انگلیسی، DashWoo را انگلیسی می‌بیند و سایت فارسی،
همان رابط را کامل فارسی می‌بیند — بدون اینکه هیچ جمله‌ای در کد به فارسی نوشته شده باشد.

قلم مقدار
رشته‌های قابل‌ترجمه ۱۰۳۵ رشته در languages/dashwoo.pot
بستهٔ فارسی languages/dashwoo-fa_IR.po + .mo — ۱۰۳۵/۱۰۳۵ ترجمه‌شده، صفر جاافتاده
بستهٔ جاوااسکریپت languages/dashwoo-fa_IR-<md5>.json (برای wp.i18n در اسکریپت مدیریت)
زبان پیش‌فرض «پیروی از زبان سایت» (site) — به‌علاوهٔ گزینه‌های «انگلیسی» و «فارسی»
تست‌ها ۴۷۴ آزمون / ۷۲۸۵ assertion — همه سبز

۱) تمام رشته‌ها انگلیسی شدند

  • ۴۵ فایل، ۹۸۶ مورد و ۸۲۷ رشتهٔ یکتا که قبلاً در کد به فارسی نوشته شده بودند، به انگلیسی
    برگردانده و داخل __( '…', 'dashwoo' ) قرار گرفتند.
  • ۲۰۸ رشتهٔ دیگری که از قبل انگلیسی بودند ولی قابل ترجمه نبودند (پیام‌های گزارش سازگاری،
    خطاهای REST، برچسب قابلیت‌های میزبان، برچسب گزینه‌ها و…) هم پیدا و بسته‌بندی شدند؛
    ابزار tools/i18n/wrap-literals.py این کار را انجام می‌دهد.
  • راهنماها و مستندات (README.md، readme.txt، docs/ARCHITECTURE.md، docs/TESTING.md،
    docs/TEST-MATRIX.md، docs/RELEASE.md) کامل انگلیسی‌اند. تنها سندهای فارسی باقی‌مانده،
    همین گزارش‌های فارسی تحویلی هستند.
  • صفر خط فارسی در درخت سورس باقی مانده است (تنها استثنا: پوشهٔ languages/ که ترجمهٔ
    فارسی در آن زندگی می‌کند).

۲) لایهٔ زبان (تازه)

کلاس DashWoo\I18n\Language تنها جایی است که زبان را تعیین می‌کند:

  • تنظیمات → سیستم → عمومی → «زبان پلتفرم» با سه گزینه:
    • پیروی از زبان سایت (پیش‌فرض) — سایت فارسی، DashWoo فارسی؛
    • انگلیسی — DashWoo انگلیسی می‌ماند حتی روی سایت فارسی؛
    • فارسی — DashWoo فارسی می‌شود حتی روی سایت انگلیسی.
  • فیلترها فقط روی دامنهٔ متنی dashwoo اثر دارند؛ ووکامرس و پوستهٔ سایت دست‌نخورده می‌مانند.
  • بستهٔ ترجمه در init بارگذاری می‌شود (روش استاندارد وردپرس + بارگذاری مستقیم وقتی زبان
    انتخابی با زبان سایت فرق دارد)، و بستهٔ .json هم با
    wp_set_script_translations() به اسکریپت مدیریت داده می‌شود تا wp.i18n هم فارسی شود.
  • RTL از زبان پیروی می‌کند: با فارسی، کامپایلر توکن‌ها --dw-direction: rtl را می‌نویسد و
    دیزاین‌سیستم با خصوصیت‌های منطقی (margin-inline-start و…) چیده می‌شود.

۳) ابزار و دروازهٔ ساخت

  • tools/i18n/extract.py — پیدا کردن رشته‌ها، tools/i18n/apply.py — مهاجرت رشته‌ها،
    tools/i18n/wrap-literals.py — بسته‌بندی رشته‌های انگلیسیِ قابل‌ترجمه‌نشده،
    tools/i18n/build-catalogue.py — ساخت POT، هم‌گام‌سازی PO، کامپایل MO و نوشتن JSON.
  • build-catalogue.py --strict بخشی از دروازهٔ ریلیز است: اگر یک رشته ترجمه نداشته باشد،
    ساخت متوقف می‌شود.
  • تست‌های تازه: tests/unit/I18nCatalogueTest.php (نبودِ ترجمه، رشتهٔ بی‌صاحب، گم‌شدن
    %s/%d، تطابق MO با PO، جای درست JSON، انگلیسی‌بودن درخت سورس) و
    tests/integration/LanguageIntegrationTest.php (زبان سایت، زبان انتخابی، خواندن واقعی
    بسته از فایل، رندر فارسی/انگلیسی حساب کاربری و گزارش سازگاری، RTL و --dw-direction).

۴) ارتقا امن است

سایت فارسی‌ای که روی ۱.۴.۰ است، بعد از ارتقا همان فارسی را می‌بیند: مقدار «زبان پلتفرم»
در تنظیمات حفظ می‌شود و اگر زبان سایت فارسی باشد، گزینهٔ پیش‌فرض «پیروی از زبان سایت» هم
فارسی می‌دهد. هیچ داده‌ای پاک نمی‌شود و هیچ چیزی از تنظیمات از دست نمی‌رود.

۵) اعداد این نسخه

قلم مقدار
بستهٔ نصب‌شدنی dashwoo-1.5.0.zip — ۵۴۷٬۸۸۳ بایت
مانیفست ۱۰۷ فایل هش‌شده
تست‌ها ۴۷۴ آزمون / ۷۲۸۵ assertion (سبز)
آزمون مرورگر (node + jsdom) ۳۵ بررسی (PASS)
لینت ۲۳۲ بررسی خودکار / ۰ اشکال
تأیید بسته bin/verify-build.php — ۲۳ بررسی / ۰ خطا

نصب: پیشخوان وردپرس → افزونه‌ها → افزودن → بارگذاری افزونه → dashwoo-1.5.0.zip.
نیازمندی‌ها: PHP 8.0+، وردپرس 6.4+ (ووکامرس و المنتور اختیاری).