دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۶
  • مرداد

جلسه ۳۲ : چند زبانه کردن قالب وردپرس

  • دسته‌بندی‌ها :
جلسه ۳۲ : چند زبانه کردن قالب وردپرس

        با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
        با جلسه ای دیگر از سری جلسات دوره جامع آموزش ساخت قالب وردپرس در خدمت شما هستیم.
        در این جلسه قصد داریم به آموزش دو زبانه یا چند زبانه کردن قالب وردپرس (Internationalization) بپردازیم.

        مقدمه

        ممکن است شما بخواهید قالبی طراحی کنید که مخاطبان یا بازدید کنندگان آن از ملیت ها و قومیت های مختلفی تشکیل شده باشند.
        بنابراین پشتیبانی از زبان های مورد نظر در قالب در این موارد ضروری به نظر می‌رسد.

        چند زبانه کردن قالب وردپرس

        برای اینکه متون (text) به کار رفته در قالب بتوانند به زبان های مختلف ترجمه شوند، باید از آن ها به صورت آرگومان یا پارامتر از طریق توابع localization استفاده کرد.
        اگر این متون یا رشته ها (string) به صورت hardcode استفاده شوند، چندزبانه کردن قالب ممکن نیست.

        به رشته هایی hardcode گفته می‌شوند که از آن ها به شکل مستقیم یا بین ” ” استفاده شود.

        برای مثال کد زیر که حاوی رشته hardcode است، نمی‌تواند ترجمه شود.

        مثال : 

        اما با ارسال همین رشته به عنوان آرگومان یک تابع localization، می‌توان آن را ترجمه کرد.

        مثال : 

        در زبان php از کتابخانه های gettext برای ترجمه و چند زبانه کردن استفاده می‌شود.
        اما در وردپرس باید از توابع localization به جای توابع بومی php استفاده کنیم.

        دامنه متن

        دامنه متن (Text Domain) دومین پارامتری است که به توابع localization ارسال می‌شوند.
        دامنه متن یک شناسه منحصر به فرد است که وردپرس از طریق آن بین تمام ترجمه های بارگذاری شده، تمایز قائل می‌شود.
        دامنه متن تنها نیاز است تا برای قالب ها و پلاگین ها تعریف شود.

        دامنه های متن تنها مجاز به استفاده از – و حروف کوچک انگلیسی هستند.
        به عنوان مثال اگر نام قالب My Theme که در فایل style.css قرار دارد یا در یک پوشه به نام my-theme فراخوانی شده است، دامنه متن باید به شکل my-theme باشد.

        دامنه متن می‌تواند در سه جای مختلف مورد استفاده قرار گیرد:

        1. در هدر فایل style.css
        2. به عنوان یک آرگومان در توابع localization
        3. به عنوان یک آرگومان هنگام بارگذاری ترجمه ها با استفاده از ()load_theme_textdomain

        استفاده در هدر style.css

        در این کاربرد، دامنه متن در هدر فایل style.css استفاده می‌شود.
        این کار باعث می‌شود تا داده های متا (metadata) مانند توضیحات قالب و … حتی در زمانی که قالب فعال نیست، ترجمه شوند.

        مثال : 

        اگر ترجمه ها در دایرکتوری دیگری غیر از دایرکتوری languages قرار داشته باشند، باید از گزینه ای به نام Domain Path استفاده کنیم.
        در این حالت وردپرس از Domain Path برای پیدا کردن فایل های ترجمه استفاده می‌کند.

        مثال : 

        استفاده در توابع localization

        برای اینکه ترجمه ها به درستی کار کنند، باید دامنه متن را به عنوان آرگومان به توابع localization اضافه کنیم.

        مثال ۱ :

        مثال : 

        تابع فوق باید تبدیل شود به تابع پایین:

        مثال : 

        مثال ۲ :

        مثال : 

        تابع فوق باید تبدیل به تابع پایین شود:

        مثال : 

        توجه داشته باشید که دامنه متن را حتما باید به صورت hardcode و نه متغیر استفاده کرد.

        استفاده در بارگذاری ترجمه ها

        در وردپرس، فایل های ترجمه با پسوند های po. و mo. استفاده می‌شوند.
        این فایل ها با استفاده از توابع ()load_theme_textdoamin و یا ()load_child_theme_textdomain بارگذاری می‌شوند.

        اگر فایل MO خود را در پوشه language قالب وردپرس قرار می‌دهید، نام دامنه متن را به همراه یک – بعد از آن، قبل از نام اصلی فایل بیاورید.

        مثال:

        مثال : 

         

        جلسه آموزش چند زبانه کردن قالب وردپرس نیز به پایان رسید.

        در جلسه بعد به آموزش بومی سازی در وردپرس (Localization) خواهیم پرداخت.

        QR:  جلسه ۳۲ : چند زبانه کردن قالب وردپرس
        به اشتراک بگذارید