آموزش ساخت و ویرایش فایل زبان در وردپرس

4/5 - (8 امتیاز)

در این نوشته از وبلاگ ماندگار وب به آموزش چگونگی ساخت و ویرایش فایل زبان در قالب‌های وردپرس خواهیم پرداخت. اگر شما هم پوسته‌ای را از مخزن وردپرس دریافت کرده باشید متوجه این موضوع خواهید شد که بیشتر قالب‌های به اشتراک گذاشته شده در مخزن وردپرس طبق مستندات وردپرس بصورت استاندارد همراه با فایل زبان و شیوه نامه‌ی RTL ترجمه گردیده و در اختیار کاربران قرار می‌گیرد.

فایل زبان وردپرس

همان‌طور که می‌دانید یکی از ویژگی‌های منحصر به فرد پوسته‌ها و افزونه‌هایی که همراه با فایل زبان آماده می‌گردند این است که کاربران به راحتی و بدون ویرایش مستقیم و مکرر فایل‌ها به سهولت می‌توانند واژه‌هایی که در پوسته‌ها و افزونه‌ها به کار رفته‌اند را به راحت‌ترین شکل ممکن به واژه‌ی مورد پسند خود تغییر دهند که با وجود فایل زبان حتی در بروزرسانی‌های بعدی پوسته یا افزونه، تغییرات آنها از بین نخواهد رفت. از این رو بنا به درخواست تعدادی از کاربران که با نحوه‌ی ویرایش و ایجاد فایل زبان در وردپرس آشنایی نداشته‌اند آموزشِ کاملی را آماده ساخته‌ایم که به کمک این آموزش قادر خواهند بود برای پوسته‌های خود فایل زبان ایجاد کنند و یا فایل زبان پوسته‌ها را ویرایش نمایند.

آموزش ساخت فایل زبان وردپرس:

برای ساخت فایل زبان در وردپرس پیش از هر اقدامی نیاز است این قابلیت را با استفاده از توابع مخصوص در قالب وردپرس خود ایجاد کرده و تمامی رشته‌های متنی و دستوری را برای ترجمه پوسته فراخوانی کنید.

در توابعی که برای ساخت فایل زبان در وردپرس به کار می‌رود دو آرگومان وجود دارد که آرگومان اول برای واژه یا همان متن مورد نظر به کار می‌رود و آرگومان دوم به عنوان شاخص یا همان نامی که برای پروژه خود انتخاب نموده‌اید به کار می‌رود که این نام به دلخواه و توسط شما انتخاب می‌شود و در این آموزش mandegarweb را به عنوان شاخص قرار داده‌ایم.

برای شروع فهرست کاملی از توابع وردپرس را برای شما آماده نموده‌ایم که صرفا جهت آشنایی شما با این توابع است:

_e
__
__ngettext
_n
__ngettext_noop
_n_noop
_x
_nx
_nx_noop
_ex
esc_attr__
esc_attr_e
esc_attr_x
esc_html__
esc_html_e
esc_html_x
_c
_nc

توابعی که در خط اول (e_) و دوم (__) لیست آماده‌اند جزء توابع اصلی وردپرس برای ایجاد فایل زبان هستند که تابع e_ مقدار داده شده را چاپ می‌کند برای نمونه این تابع تنها در زمانی به کار می‌رود که در پوسته وردپرس رشته دستوری وجود نداشته و تنها رشته‌ی متنی برای ترجمه وجود دارد که برای افزودن قابلیت ترجمه شدن رشته‌های متنی می‌بایست همانند نمونه زیر از تابع e_ استفاده کنید:

پیش از ترجمه شدن:

<div>Wordpress Hosting</div>

پس از ترجمه شدن:

<div><?php _e('Wordpress Hosting','mandegarweb'); ?></div>

حالت بعدی ترجمه‌ها، رشته‌های دستوری یا همان عملیاتی هستند که برای افزودن قابلیت ترجمه شدن رشته‌های دستوری می‌بایست همانند نمونه‌های زیر از تابع __ استفاده کنید:

پیش از ترجمه شدن:

<?php comments_popup_link('No comment', 'One comment', '% comment'); ?>

پس از ترجمه شدن:

<?php comments_popup_link(__('No comment', 'mandegarweb'), __('One comment', 'mandegarweb'), __('% Comment', 'mandegarweb') ); ?>

پیش از ترجمه شدن:

<?php comments_number('No comment', 'One comment', '% Comment'); ?>

پس از ترجمه شدن:

<?php comments_number(__('No comment', 'mandegarweb'), __('One comment', 'mandegarweb'), __('% Comment', 'mandegarweb') ); ?>

پیش از ترجمه شدن:

<?php comment_form_title('Leave a Reply', 'Leave a Reply to %s'); ?>

پس از ترجمه شدن:

<?php comment_form_title(__('Leave a Reply', 'mandegarweb'), __('Leave a Reply to %s', 'mandegarweb') ); ?>

پیش از ترجمه شدن:

<?php edit_post_link('Edit'); ?>

پس از ترجمه شدن :

<?php edit_post_link(__('Edit','mandegarweb')); ?>

پس از اضافه کردن قابلیت ترجمه شدن به تمامی رشته‌های قالب وردپرس نوبت به استفاده از نرم افزار متن باز poedit می‌رسد، ابتدا نرم افزار را مناسب با سیستم خود از این آدرس دریافت و بر روی سیستم خود نصب نمایید. بعد از نصب نرم افزار پوادیت به منوی File رفته گزینه‌ی New catalogue را انتخاب نموده و همانند تصویر زیر نام و سایر مشخصات پروژه‌ی خود را وارد نمایید، لازم به ذکر است نام پروژه یا همان شاخص به دلخواه شما می‌تواند تعیین شود که در این آموزش وردپرس ما آنرا mandegarweb تعریف نموده‌ایم.

آموزش نرم افزار پوادیت poedit

در برگ بعدی پنجره‌ی catalog properties یعنی تب suorces paths نیاز است همانند تصویر زیر آدرس پوسته‌ای که آن‌را برای ترجمه کردن آماده ساخته‌اید در فیلدهای مربوط وارد نمایید:

آموزش فایل زبان وردپرس

و در تب آخر sources keywords نیز همانند تصویر زیر توابعی که برای اضافه‌کردن قابلیت ترجمه شدن به پوسته‌ی خود اضافه نموده‌اید را توسط آیکون New item که در تصویر با حاشیه‌ی آبی رنگ مشخص شده است در فیلدهای مربوط وارد نموده و در آخر بر روی دکمه‌ی Ok کلیک نمایید:

ویرایش فایل زبان وردپرس

پس از کلیک کردن بر روی دکمه‌ی Ok پنجره‌ی تازه‌ای با عنوان Save as برای شما باز خواهد شد که شما باید فایل را با نام fa_IR ذخیره نمایید، خواهشمندیم در هنگام ذخیره کردن فایل حتما به کوچکی و بزرگی حروف و آندرلاین بودن خط توجه فرمایید چرا که در صورت عدم صحیح بودن نام فایل، فراخوان شدن و بارگذاری فایل زبان در وردپرس با مشکل مواجه خواهد شد.

پس از طی کردن تمامی مراحل بالا اینک لازم است برای استفاده از فایل زبان در وردپرس و فراخوان کردن آن تابع زیر را در فایل header.php پوسته‌ی خود بین برچسب head قرار دهید:

<?php load_theme_textdomain('mandegarweb'); ?>

تابعی که در بالا آمده است فایل زبان در ریشه پوسته قرار دارد چنانچه شما تمایل دارید فایل زبان پوسته را در پوشه‌ای مجزاء قرار دهید می‌توانید از تابع زیر استفاده کنید:

<?php load_theme_textdomain('mandegarweb',get_template_directory().'/language'); ?>

نکته :چنانچه در فایل فانکشن پوسته شما نیز از توابع ترجمه استفاده شده است قرارگیری تابع بالا برای فراخوان کردن ترجمه‌ها الزامی است.

آموزش ویرایش فایل زبان وردپرس:

چنانچه پوسته‌ای را دریافت نموده‌اید اما واژه‌هایی که در ترجمه‌ی پوسته به کار رفته‌اند مورد پسند شما نیست و تمایل دارید از واژه‌های مورد نظر خود استفاده کنید ابتدا می‌بایست نرم افزار poedit را مناسب با سیستم خود از انتهای همین نوشته دریافت نمایید و بعد از نصب نرم افزار پوادیت به پرونده‌ی پوسته رفته و فایل زبان آنرا توسط نرم افزار اجرا کنید، بعد از بازشدن فایل زبان می‌توانید واژه‌های مورد نظر خود را جایگزین واژه‌های فارسی موجود در فایل زبان نموده و پس از اتمام ترجمه، فایل را ذخیره و آنرا مجدد بر روی هاست وردپرس خود بارگذاری و جای‌گزین کنید.

امیدوارم آموزش ساخت و ویرایش فایل زبان در وردپرس مورد پسند شما دوستان عزیز قرار گرفته باشد.

4/5 - (8 امتیاز)

کانال تلگرام ماندگار وب

  1. سعید

    سلام کار شما واقعا عالی
    ببخشید میدونم جاش اینجا نیست ولی خب مجبورم بپرسم
    من از افزونه ی filemanager برای گذاشتن فایل هام برای دانلود استفاده می کنم تا زمانی که فایل کم حجم می ذارم مشکلی نیست ولی زمانی که فایل مثلا 7 مگابایتی mp3 میذارم دانلودش برای بازدید کنندگانم سخت تقریبا غیر ممکن و (چون کم سرعت و قابلیت ریزوم هم نداره)
    چه پیشنهادی می تونید به من کنید هاست من امریکاست کلی هم روی سرعتش مانور داده بودن
    میدونم جای خواستم اینجانبود ولی به بزرگی خودتون ببخشید و پیشاپیش متشکرم از پاسخ شما

    1. امیر خلجی مهر

      سلام سعید جان اشکالی نداره عزیزم نیازی به معذرت خواهی نیست

      اول از همه سعی کنید این افزونه رو غیرفعال کنید و دنبال افزونه ی دیگه ای باشید چون تا اونجایی که خاطرم هست این افزونه باگ امنیتی داره که موجب آسیب پذیری سایتتون میشه
      منظورتون رو کامل متوجه نشدم اما اگه محدودیت حجم آپلود دارید و نمیتونید بیشتر از این مقدار بارگذاری کنید(پیش فرض وردپرس) با جستجو میتونید آموزشهایی رو برای افزایش این مقدار پیدا کنید
      و اگه منظور شما پایین بودن سرعت دریافت فایل هست باید بگم بحث جدایی داره که مربوط به سرور و هاست شما میشه که در کل بی ربط با وردپرس هست بهترین راه اینه با پشتیبانی هاستینگ در میون بگذارید و یا با پرسش بین دوستان به دنبال سرویس مناسب تری برای اشتراک گذاری فایل هاتون باشید.
      موفق باشید {گل}

  2. امیر رستمی

    با سلام خدمت آقای خلجی مهر .
    میخواستم بدونم نام آرایه ها رو هم میشه به همین ترتیب فارسی کرد ؟‌
    چون پنل تنظیمات یه پوسته ای رو میخوام فارسی کنم ،‌ عناوین تب هاش رو وقتی تغییر میدم به فارسی ،‌ محتوای همه تب ها یکی میشه !‌ با همین فایل زبان درست میشه یا باید کار دیگه ای بکنم !؟‌

    1. امیر خلجی مهر

      درود

      بله از این قابلیت در تمام فایل ها از جمله فایل تنظیمات میتوان بهره برد منتهی در شرایطی همانند پوسته شما که ممکن است از نام آرایه ها برای تغییر محتوی توسط فایل های js استفاده شده باشد
      کدهای فایل تنظیمات یا قسمت مربوط را در انجمن پیوست کنید تا دوستان بررسی و راهنمایی کنند
      موفق باشید

  3. امیر رستمی

    ای بابا !‌ برای ساخت فایل زبان وردپرس که باید نسخه ی Pro رو تهیه بکنی !‌ نسخه کرک شدش هم که گیر نمیاد . . . .

    1. امیر خلجی مهر

      قربونتون برم کجا رو گرفتین؟
      این نرم افزار بصورت رایگان در همه جا و برای تمامی سیستم عامل ها در دسترس هست
      انتهای همین نوشته پیوندهای دریافت نرم افزار رو گذاشتم

      شاد باشید

  4. ژیهات

    فقط ببخشید میشه بگین رشته های
    _n_noop
    رو چطوری میتونم ترجمه کنم !؟ گیر کردم توی سایت های خارجی هم که واضح توضیح نمیدن

    1. امیر خلجی مهر

      اگه برای طرح خودتون هست نیازی به استفاده از این رشته نیست و پیشنهاد میکنم از رشته های اصلی استفاده کنید
      اگه ترجمه هست تا اونجایی که خاطرم هست این رشته ها بدون شاخص هستند و بصورت خودکار در فایل ترجمه قرار میگیرند

      به هر حال اگر موفق نشدید در انجمن مطرح کنید تا دوستان راهنمایی بفرمایند.
      موفق باشید

  5. محسن

    باسلام من برای اضافه کردن توابع ترجمه به فایل تنظیمات پوسته به مشکل برخوردم عبارتی مانند زیر وجود داره که با اضافه کردن تابع ترجمه به اونها هیچ اتفاقی نمی فته و به فایل زبان اضافه نمشن :

    “std” => ” Responsive Options”
    که از این خط Responsive Options باید ترجمه شود

    میشه راهنمایی بفرمایید

  6. محسن

    سلام دوست عزیز یه سسوال در مورد فارسی سازی پوسته داشتم :
    در حال فارسی کردن یک پوسته هستم که فایل زبان رو هم بصورت کامل داره و مشکلی که هست اینه که بعضی از عبارت هایی که در فایل زبان و بوسیله برنامه poedit ترجمه میکنم ، در قالب نمایش داده نمیشه
    البته خیلی از عبارات هم نمایش داده میشه
    درفایلهای php هم توابع ترجمه کاملا پیاده سازی شده ، در صورت امکان به بنده یه کمکی کنید ، ممنون

    1. امیر خلجی مهر

      درود بر شما
      تنها دلایلی که برای وجود چنین مشکلی میبینم این هست که یا از کلمات همراه با آوردن شاخص رشته گرفته نشده، مثله نمونه ی زیر که این رشته در فایل زبان شناخته میشه اما در صورت ترجمه شدن هم به دلیل نبود شاخص کلمه ی ترجمه شده جایگزین نمیشه
      [php]
      {__ “mandegarweb blog”}
      [/php]

      دلیل بعدی هم این میتونه باشه که حتماً باید در فایلی که ترجمه در اونها صورت نمیگیره تابع فراخوان کردن رو بیارید
      [php]

      [/php]

      موفق باشید

  7. اسد اسماعیلی

    سلام من با ترجمه یه قالب مشکل دارم اگه راهنمایی کنی ممنون میشم
    مشکل : تو قالب 5 تا رشته متنی Read More وجود داره در داخل چند فایل مختلف مثه loop و single و… من شاخص و برای این5 تا متن قرار میدم ولی ترجمه نمیشه …ولی اگه واسه یکیش شاخص قرار بدم ترجمه میشه ؟؟؟

    1. امیر خلجی مهر

      درود

      همچین چیزی که ممکن نیست دوست خوبم، حالا چه یکبار چه صد بار تفاوتی نداره، تنها نکته اینه که شاخص و خود کلمه یکسان باشه

    1. امیر خلجی مهر

      درود
      اسد جان این مشکل احتمالاً به خاطر ترجمه هست، یعنی رشته ای که تو فایل زبان هست به این شکل اومده :
      [php]
      %s mandegarweb
      [/php]
      اما شما اونرو به این شکل ترجمه کردید
      [php]
      ماندگار وب
      [/php]
      وقت بخیر

  8. اسماعیل

    با سلام
    من تمام مراحل بالا را انجام دادم اما وقتی پوسته را نصب می کنم فرا خوانی نمی کند و همچنان عبارات به صورت لاتین است.

      1. اسماعیل

        با سلام

        بنده تمامی مراحل را به طور کامل انجام دادم . فایل زبان تمامی عبارات را شناخت و آنها را داخل نرم افزار برای تر جمه آورد. برخی را ترجمه کردم و جواب داد اما برخی دیگر با وجود اینکه ترجمه کردم اما وقتی صفحه را چندین بار رفرش کردم باز همان ترجمه ها بود! (تصویر آن پیوست شد.)
        s5.picofile.com/file/8158172784/%DB%8C.JPG

        از طریق یافتن مرجع عمل کردم و عبارات را داخل قالب با عبارات فارسی جایگزین کردم و عمل کرد.
        به نظر شما مشکل فایل زبان چیست؟

        فایل پیوست شد.
        s5.picofile.com/file/8158174018/settings.php.html

        1. امیر خلجی مهر

          درود
          فایل زبان مشکلی نداره این موضوع به خاطر این هست که باید تابع فراخوانی فایل زبان را در فایلهای تنظیمات نیز قرار دهید
          لطفاً در انجمن مطرح کنید تا دوستان راهنمایی بفرمایند.

          1. اسماعیل

            با سلام
            همین که گفتید فایل زبان مشکلی نداره خودش کلیه.
            با تشکر

          2. امیر خلجی مهر

            خواهش میکنم
            فایل زبان هیچ وقت براش مشکلی پیش نمیاد مگر اینکه رشته هایی که همراه با دستورهای (کاراکتر) خاص هستند به اشتباه ترجمه بشند که این مورد هم اگه از نگارش تازه ی نرم افزار پوادیت استفاده کنید مشکل بوجود اومده رو براتون مشخص میکنه
            شاد باشین

  9. پیمان

    سلام
    از نرم افزار poedit استفاده می کنم اما این نرم افزار اجازه ی ویرایش معنی و یا افزودن کلمه جدید و ترجمش را نمیده گویا ، اینطور نیست؟

    1. امیر خلجی مهر

      درود
      خیر اینطور نیست دوست خوبم
      برای هر رشته دو کادر وجود دارد که واژه ی مورد نظر برای ترجمه در کادر بالا و ترجمه در کادر پایین قرار داده میشود
      موفق باشید

  10. محمد

    سلام
    من فایل زبان و ترجمه کردم و اسمش و fa_IR گذاشتم و خود به خود پوسته فارسی شد.
    مشکل اینجاست که تنظیمات پوسته فارسی نمیشه
    توی فانکشن هم تابع فراخوانی بود.اونم ارجاع دادم به فایلی که ترجمه کردن که نه تنها کار نکرد بلکه پوسته انگلیسی شد :/
    مشکل کجاست به نظرتون؟

    1. امیر خلجی مهر

      درود
      درسته وقتی به نام fa_IR ذخیره بشه بصورت خودکار ترجمه ها اعمال میشند
      برای تنظیمات باید فایل زبان رو در فایل تنظیمات پوسته فراخوان کنید :
      [php]
      load_theme_textdomain(‘mandegarweb’,get_template_directory().’/language’);
      [/php]
      تو انجمن مطرح کنید تا دوستان مشکل بوجود اومده رو بررسی کنند.

  11. محمد

    ممنون
    تابع فراخوان و از فانکشن حذف کردم و به هدر اضافه کردم درست شد
    ولی مشکل پنل تنظیمات به قوت خودش باقیه

    1. امیر خلجی مهر

      معمولاً همینطور هست باید دستور فراخوان کردن رو تو فایل تنظیمات هم بگذارید، تو فایل های مرتبط تست کنید تا نتیجه بگیرید

  12. اسماعیل

    با سلام
    من قبلا یک قالب ترجمه کرده بودم و حالا ورژن جدید اون رو دارم و قصد هم ندارم از نو ترجمش کنم. فایلهای زبان ورژن قبلی رو داخل اون قالب جدید قرار دادم و بروز رسانی رو هم زدم اما خطا می داد. خطا رو که نگاه می کنم مسیری رو که قبلا در قالب قبلی برای فایل زبان انتخاب کرده بودم رو نشون میده.
    حالا برای اینکه مسیر فایل زبان رو به ورژن جدید قالب بشناسونم باید چکار کنم؟

    با تشکر

  13. محسن

    سلام دوست عزیز
    در حال فارسی کردن یک پوسته ام ، منتها بعضی از عبارات که از تابع _x درشون استفاده شده
    ترجمه شون در قالب نمایش داده نمیشه
    چه باید بکنم؟ راهنمایی میفرمایید؟

    1. امیر خلجی مهر

      درود
      اگه شاخص مشخص شده برای گرفتن رشته مثلاً mandegarweb نیومده باشه درسته نمایش داده نمیشه

  14. امیر خلجی مهر

    درود بر شما
    درسته این مشکل وجود داره و من اطلاعی ندارم که چطور حل میشه، اما من خودم پوسته هایی رو که بصورت دو زبانه آماده میکنم این قسمت رو به شکل زیر وارد میکنم
    [php]
    comments_number(__(‘No comments’, ‘mandegarweb’), __(‘One comment’, ‘mandegarweb’), __(‘% Comments’, ‘mandegarweb’) );
    [/php]

  15. محسن

    سلام دوست عزیز
    من ی پوسته دارم که فایل زبان داره ، و عمل ترجمه هم بدون هیچ مشکلی تو فایل انجام و ذخیره میشه
    ولی در هناگام نمایش اصلا تاثیر نمیکنه و ترجمه ها نمایش داده نمیشه
    ضمن اینکه حتی به صورت دستی هم ترجمه کردم درفایل سورس ، و عبارت فارسی رو جایگزین کردم ولی باز هم تاثیر نداشت
    میشه ذراهنمایی کنید ؟

    1. امیر خلجی مهر

      درود
      خب باید مشکل در پوسته بررسی بشه چون بدون بررسی نمیشه احتمالی داد
      لطفاً در انجمن مطرح کنید تا دوستان پوسته را بررسی و شما رو راهنمایی کنند.

  16. مهدی

    سلام
    وقت بخیر
    در ابتدا از سایت فوق العاده شما تشکر میکنم ، واقعاً در برخی موارد به داد آدم میرسه 🙁
    عذر میخوام شما امکان دریافت سفارش فارسی سازی را نیز دارید ؟

    با تشکر

  17. سپهر

    سلام امیر آقا

    داداش یه سوال داشتم.
    شما توی آموزش بالا برای معرفی فایل ترجمه به قالب از یه تکه کد PHP استفاده کردی.

    حالا من میخوام این معرفی رو برای افزونه داشته باشم و اون هم داخل کد PHP افزونه
    افزونه ای که من دارم روش کار میکنم یه کد سراسری


    من هم میخوام اون معرفی داخل همین تگ کلی PHP باشه.
    ظاهرا اگه همون تکه کد شما رو داخل کد بالا میذارم، صفحه رو لود نمیکنه.
    ممنون میشم راهنماییم کنی عزیز

    1. امیر خلجی مهر

      درود
      مستندات :
      codex.wordpress.org/Function_Reference/load_plugin_textdomain
      و آموزش زیر رو بررسی کنید :
      ulrich.pogson.ch/load-theme-plugin-translations

      1. سپهر

        ممنونم که پاسخ دادی عزیز

        یه سوال و درخواست دیگه هم داشتم.
        شما توی ایجاد فایل جدید ترجمه در برنامه پوادیت گفتی که اسم پروژه همون شاخص باید باشه
        حالا توی تکه کدی که باید ترجمه رو به پلاگین اضافه کنی یه بخشی داره برا اسم پلاگین
        اونجا باید چی بزنم؟

        اصن اگه محبت کنی و آدرس زیر رو برام با نمونه عملی توضیح بدی ممنون میشم
        gist.github.com/grappler/7060277#file-plugin-name-php

        1. امیر خلجی مهر

          نه تفاوتی نداره وقتی قراره یک پروژه تازه ایجاد میکنید نام پروژه رو تو پوادیت چی بذارید، فقط بهتره که با شاخص همنام باشه. (هیچ تفاوتی نداره)
          تو لینکی که آوردین نام پلاگین همون شاخص هست
          [php]
          $domain = ‘plugin-name’;
          [/php]
          پرسشی بود در انجمن مطرح کنید دوست من

          1. سپهر

            خیلی ممنونم

            در انجمن پیگیر هستم
            ولی …

            بازم از لطفی که کردین خیلی سپاسگذارم

          2. امیر خلجی مهر

            انجمن کاربران فعالی داره، حتما به نتیجه میرسید سپهر جان

  18. محمد

    ن می خوام نام فایل زبان یک افزونه رو تغییر بدم. ولی کار نمیکنه بعدش.
    مثلا فایل زبان یک افزونه به صورت ای نباید باشه تا اجرا بشه:
    textdomain-fa_IR.mo
    ولی من می خوام فقط fa_IR.mo باشه. چطوری این کار رو بکنم؟از چه کدی استفاده کنم. هر چی سرچ زدم چیزی پیدا نکردم

    1. امیر خلجی مهر

      شما دارین حالت پیش فرض رو از بین میبرین، اگه شدنی هم باشه همراه با دردسر هست یعنی باید دستوری نوشته بشه که برای افزونه مسیر و نام فایل زبان رو مشخص کنه
      موفق باشید

  19. شهاب

    سلام . آقا امیر لطف کن و به این سوال جواب بده:
    من یه قالب دارم که شاخص این قالب the7mk2 هست (فکر کنم فهمیدی چه قالبیه 🙂 )
    خب ، حالا من باید در کد فراخوانی که شما میگید ، به جای mandegarweb ، این شاخص رو قرار بدم یا نام خود قالب رو ؟؟
    سوال بعد :
    تنظیمات این قالبی که میگم فارسی نمیشه ، این قالب یه فایل به نام options.php داره ، من باید این کدرو در این فایل قرار بدم؟ راستش قرار دادم اما نشد ، راست ترش رو بخواید ، من این کد رو به صورت های مختلف یعنی با نام خودقالب ، با شاخص ، با چیزای الکی ، در هدر و فانکشن هم فراخوانی کردم. بازم نشد که نشد که نشد…
    حالا با این همه حرفای الکی که زدم ، میخوام شما بگی که دقیقا کد رو به چه صورت و کجا قرار بدم.
    مرسی خیلی

    1. امیر خلجی مهر

      درود شهاب جان
      بله باید نام شاخصی که تو رشته‌ها استفاده شده رو قرار بدید
      بله تو برخی از پوسته‌ها که فایلهای جداگانه‌ای دارند برای پیکربندی باید دستور نام برده در اون فایل هم قرار بگیره، میتونید رو تک‌تک فایلها اینکار رو انجام بدید که اگر تو لوکال امتحان کنید زودتر و راحت‌تر به نتیجه میرسید
      نکته : حتما نباید نام شاخص یکی باشه میتونه شاخص فایلهای پوسته با فایلهای مربوط به تنظیمات پوسته تفاوت داشته باشه
      the7mk2
      the7mk2-admin

      اگه به نتیجه نرسیدید در انجمن مطرح کنید تا دوستان بررسی کنند.

  20. امیرسجاد

    سلام
    ممنون برای آموزش
    مشکلم اینه که همه جای قالب ترجمه میشه به جز موارد مربوط به functions.php . برای نمونه من پست تایپ ساختم به نام events، رشته هاش هم در برنامه poedit میاد و ترجمش میکنم ولی نمایش نمیده. این قضیه پیرامون همه موارد مربوط به فانکشن ها هست.
    چی کار می تونم بکنم؟

  21. شهریار

    سلام بنده یه مشکلی دارم با این ترجمه
    الان من اومدم یه قالب رو دانلود کردم و فایل زبانش رو که حدود هزار و خورده ای خط بود ترجمه کردم حالا که سروش کردم پنل تنظیمات قالب از کار افتاده
    یعنی فقط همون گزینه اول که تنظیمات عمومی هست کار میکنه و روی بقیه قسمت ها وقتی کلیک میکنم اصلا هیچ چیزی نمایش داده نمیشه

    الان من این مشکل رو چطوری باید رفع کنم
    البته بگم وقتی فایل زبان رو حذف میکنم مشکل برطرف میشه

    با تشکر

    1. امیر خلجی مهر

      درود

      من خودمم مشکل همانندی داشتم، تنظیمات پوسته بصورت برگ‌بندی بود که با ترجمه‌ی رشته‌ها، از کار میوفتاد، من تو هر ترجمه از یه واژه‌ی لاتین هم استفاده کردم و مشکلم حل شد
      برای نمونه ترجمه General شد G – همگانی

  22. الهام

    سلام من تمامی کارهایی که در بالا توضیح داده شده را انجام دادم ولی سایتم تغییری نکرد و کلمات انگلیسی آن فارسی نشده است. در ضمن قالب من خودش فایل زبان داشت ولی اصلا از فایل زبان نمیخواند. لطفا راهنماییم کنید خیلی تو این سایت ها چرخیدم ولی مشکلم حل نشد.

    1. امیر خلجی مهر

      درود
      توجه داشته باشید که نام فایل حتما باید fa_IR باشه، مورد بعدی این میتونه باشه که دستور فراخوانی در فانکشن پوسته قرار داده نشده باشه
      میتونید تو انجمن مطرح کنید و اگه پوسته اختصاصی نیست، پیوست کنید تا دوستان مشکل رو اعلام کنند
      http://forum.wp-parsi.com/

  23. amir

    من تمام کارها را به درستی انجام دادم اما وقتی قالب را نصب می کنم سایت به هم می ریزد و صفحه اصلی سایت درست نمایش داده نمی شود.مشکل از کجاست؟
    همچنین چگونه می توان فایل pot را برای قالب ایجاد کرد؟

    1. امیر خلجی مهر

      امیر جان فایل زبان وردپرس هیچ ارتباطی با بهم خوردن پوسته و یا سایت شما نداره، این فایل تنها یا به درستی کار میکنه یا نمیکنه، یعنی یا ترجمه‌ها چاپ میشن یا نمیشن
      https://codex.wordpress.org/User:Skippy/Creating_POT_Files

  24. امیر

    من الان متن ها را در کد مورد نظر فارسی نوشته .به طور مثال در کد زیر به جای wordpress hosting متن فارسی نوشته ام.

    قالب به هم نمی خورد اما ترجمه نمایش داده نمی شود.
    تمام کارهای گفته شده را هم انجام دادم.

    1. امیر خلجی مهر

      بهتره در انجمن مطرح بشه تا دوستان با دیدن فایل‌های پوسته مشکل رو برطرف کنند.
      http://forum.wp-parsi.com/

  25. مجید

    با سلام
    برای اضافه کردن فایل ترجمه به افزونه چه کدی استفاده میشه و توی کدام برگه از افزونه باید اضافه بشه؟
    مثل :

    که در header اضافه میشه
    برای افزونه چجوریه؟
    تشکر

    1. امیر خلجی مهر

      با درود
      به این شکل:
      function mandegarweb_localization_init()
      {
      $path = dirname(plugin_basename( __FILE__ )) . '/lang/';
      $loaded = load_plugin_textdomain( 'my-plugin', false, $path);
      }
      add_action( 'init', 'mandegarweb_localization_init' );

      فرقی نمیکنه در کدوم فایل باشه، تنها اون فایل باید اینکلود شده باشه.

  26. محمدطاها

    با سلام
    من یک افزونه رو با برنامه poedite ترجمه کردم و در داخل پوشه زبان افزونه براگذاری کردم ولی متاسفانه زبان افزونه داخل سایتم تغییر نمیکنه میشه بگید دلیلش چی متونه باشه1؟

    1. امیر خلجی مهر

      با درود
      می‌تونه نام‌گذاری نادرست فایل باشه، فایل باید با نام شاخصی که برای افزونه در نظر گرفته شده نام گذاری بشه و حتما دستور پیوسته با بارگذاری فایل زبان در افزونه بکار گرفته شده باشه.

  27. کریمی

    سلام. از آموزش خوبتون متشکرم.
    دارم یه پلاگین فارسی میکنم. فولدر lanquege رو داره . اما بعضی از کلمات رو داخل poedit نمیاره. گشتم و کدشو پیدا کردم. تمامی آرایه ها رو نمیاره. آرایه ها رو چه کار باید کرد که داخل poedit بیاره؟ از روشهایی که گفتین استفاده کردم . داخل poedit هم اورد. فارسی هم کردم. اما در نمایش درون سایت هنوز انگلیسی نمایش میده. به طور مثال کلمات password و Confirm your Password .
    لطفا راهنمایی کنید…

    $user_fields[‘user_pass’] = array(
    ‘_builtin’ => 1,
    ‘type’ => ‘password’,
    ‘label’ => ‘Password’,
    ‘help’ => ‘Your password must be 8 characters long at least.’
    );
    $user_fields[‘user_pass_confirm’] = array(
    ‘_builtin’ => 1,
    ‘type’ => ‘password’,
    ‘label’ => ‘Confirm your Password’
    );

    1. امیر خلجی مهر

      درود بر شما
      کد باید به این شکل تغییر پیدا کنه:
      $user_fields['user_pass'] = array(
      '_builtin' => 1,
      'type' => 'password',
      'label' => __('Password', 'mandegarweb'),
      'help' => __('Your password must be 8 characters long at least.', 'mandegarweb'),
      );
      $user_fields['user_pass_confirm'] = array(
      '_builtin' => 1,
      'type' => 'password',
      'label' => __('Confirm your Password', 'mandegarweb'),
      );

      ماندگار وب نام شاخص است.

  28. اخبار حوادث

    اخبار جهانی ، بهترین و جامعترین سیستم جمع آوری خبر فارسی و قویترین موتور جستجوی خبر
    و جستجوگر هوشمند خبر
    اخبار جهان ، با ما از همه چیز باخبر شوید ، اخبار
    جهانی

  29. اخبار حوادث

    اخبار جهانی ، بهترین و جامعترین سیستم جمع آوری خبر فارسی و قویترین موتور جستجوی
    خبر و جستجوگر هوشمند خبر
    اخبار جهان ، با ما از همه چیز باخبر
    شوید ، اخبار جهانی

  30. بهرام

    سلام
    ممنون بابت آموزش خوبتون

    چطوری میشه رشته جدید به فایل po اضافه کرد منظورم اینکه با آپدیت قالب به نسخه جدید یکسری بخش های جدید اضافه میشه که در فایل زبان ترجمه شده قبلی نیست این چند مورد جدید را چطوری میشه از فایل زبان انگلیسی به زبان فارسی ترجمه شده قبلی اضافه کرد ؟

    با سپاس

    1. امیر خلجی مهر

      درود و سپاس
      مسیر پوسته را به نرم‌افزار پوادیت دهید و از دکمه‌ی update استفاده کنید تا مقادیر تازه به فایل زبان افزوده شوند.

  31. fateme

    سلام ممنون از آموزش خوبتون
    قالب من یه قالب فارسی هست و سایتم به سه زبان فارسی، عربی ،‌انگلیسی هست برا چند زبانه کردن اون از افزونه WPML استفاده کردم ولی این افزونه فقط فهرست ها رو و متن ها رو ترجمه میکنه . میخوام ببینم ازین طریق میتونم یه بخشایی که ترجمه نشده رو ترجمه کنم؟؟

    1. امیر خلجی مهر

      با درود و سپاس
      خیر

      برای چند زبانه کردن نیز پیشنهاد میشه از وردپرس شبکه استفاده کنید.

  32. شایان

    سلام و عرض ادب

    توی فایل ترجمه po فارسی یه سورس تکست هست که کلا میخوام یا پاکش کنم یا تغییرش بدم. باید چیکار کنم ؟؟؟؟؟

    با poedit کار میکنم

  33. عبدالصمد

    درود
    وقت بخیر

    میخواستم افزونه Woo Checkout Field Editor Pro وردپرس پارسی کنم
    با افزونه لوکو همه رو ترجمه نمیکنه ، فایلش رو بررسی کردم و دیدم بیشتر کلمات شاخص ‘thwcfd’ واسش تعریف نشده /

    این تصویر ببینید : (شاخص تعریف شده)
    http://s9.picofile.com/file/8345320484/code1.JPG
    افزونه لوکو خیلی راحت این مورد شناسی کرد

    اما این تصویر ببینید : (شاخص تعریف نشده)
    http://s8.picofile.com/file/8345320500/code2.JPG
    این مورد چطوری بهش شاخص اضافه کنم که برنامه لوکو بشناسه ؟

  34. عبدالصمد

    درود
    امکانش هست برای نمونه یک خط کد زیر رو واسم بنویسید؟
    چون من انجام دادم ؛ دوباره مترجم اوکو تست گرفتم شناسایی نکرد 🙁

    این خط کد : میخوام Name رو ترجمه کنم

    Name

  35. kobra bashiri

    سلام و درود دوست عزیز
    ممنون بابت این مقاله ی ارزشمند، با عرض معذرت من یک افزونه رو کامل ترجمه کردم با poedit
    تنها یک بخش فارسی نمیشه، کدها رو ببینید :

    {
    $date_string = “”;
    if ($array_data[‘nta_sunday’] == ‘checked’) {
    $date_string .= ‘Sunday’;
    }

    if ($array_data[‘nta_monday’] == ‘checked’) {
    $date_string .= ‘, Monday’;
    }

    if ($array_data[‘nta_tuesday’] == ‘checked’) {
    $date_string .= ‘, Tuesday’;
    }

    if ($array_data[‘nta_wednesday’] == ‘checked’) {
    $date_string .= ‘, Wednesday’;
    }

    if ($array_data[‘nta_thursday’] == ‘checked’) {
    $date_string .= ‘, Thursday’;
    }

    if ($array_data[‘nta_friday’] == ‘checked’) {
    $date_string .= ‘, Friday’;
    }

    if ($array_data[‘nta_saturday’] == ‘checked’) {
    $date_string .= ‘, Saturday’;
    }

    $date_string = trim($date_string, ‘,’);
    return $date_string;
    }

    من می خوام کلمات :
    Sunday
    , Monday
    , Tuesday
    , Tuesday
    , Wednesday
    , Thursday
    , Friday
    رو به همین ترتیبی که هست ترجمه کنم توو poedit ممنون میشم راهنمایی بفرمایید که از چه استایلی باید استفاده کنم
    با تشکر از زحمات شما

  36. محمد

    سلام .
    من چندروزیه که یک پلاگین نوشتم و الان هم فایل های زبان اش رو درست کردم .
    ولی هر کدی برای فراخوانی ترجمه تو فایل اصلی افزونه قرار میدم ، افزونه در پیشخوان وردپرس ترجمه نمیسه.
    کدی که استفاده کردم :

    ایا مشکل از کد هست؟

    1. امیر خلجی مهر

      درود.
      شوربختانه کد شما نمایش داده نمی‌شه.
      در انجمن بیان کنید:
      http://forum.wp-parsi.com/
      همچنین می‌توانید افزونه زیر را دریافت و بررسی کنید:
      https://wordpress.org/plugins/replace-default-words/

  37. ashkan

    سلام یک قالب با افزونه ترجمه شده ولی اعداد آن به اعداد لاتین تغییر نمیکند یعنی وقتی به زبان انگلیسی کلیک میشود اعداد همونطور فارسی میماند .
    خواستم بدونم باید داخل هاست کد وارد کرد؟

    1. امیر خلجی مهر

      درود.
      ممکن است به‌خاطر فونتی باشد که بکار گرفته‌اید، یعنی اعداد را پارسی نمایش می‌دهد.

  38. رضا حسینی

    سلام
    خسته نباشید
    یک افزونه را ترجمه کردم ولی چند کلمه هست مثل روز های هفته که فارسی نمی شوند در صورتی که در بعضی از قسمت های پلاگین به فارسی تغییر کرده ولی در بعضی از جاهای دیگه خیر.
    از poedit استفاده می کنم.
    ممنون میشم راهنمایی کنین

    1. امیر خلجی مهر

      درود آقای حسینی.
      باید رشته‌ها در سورس مورد بررسی قرار بگیرند، شاید اصلا این واژه‌ها بصورت تکست معمولی در سورس آمده باشند که در این‌صورت پوادیت آن‌ها را شناسایی نمی‌کند.

  39. رضا حسینی

    بله بصورت تکست هست وباید تک به تک ترجمه کرد. ولی اگر بخوایم مثل بقیه باشه و به poedi اضافه بشه باید چکار کرد؟

  40. اسحاق

    با سلام
    من به مشکل ترجمه قالب برخورده ام.
    تو قسمت تنظیمات تم مثلا>>بخش site Loader ,وقتی میخواهم به فارسی ترجمه کنم از تابع __ استفاده می کنم و به فارسی ترجمه می شود.اما وقتی روی site loader که کلیک میکنم تنظیمات آن ظاهر نمی شود.زمانی که ترجمه فارسی آن را برمیدارم و روی آن کلیک میکنم،بخش تنظیماتش ظاهر می شود.آیا تابع ترجمه من اشتباه است ؟ چه تابع ای برای این کار استفاده می شود؟
    من فکر میکنم چون یه حالت پیوند یا لینکی که به هم دارند باید تابع دیگه ای استفاده بشه ! لطفا راهنمایی کنید.

    1. امیر خلجی مهر

      با درود.
      خیر مشکلی در ترجمه نیست، مشکل از ساپورت نکردن کاراکترهای فارسی در برخی از کدهای js است.
      برای اطمینان ترجمه را یک واژه لاتین قرار دهید، برای نمونه mandegarweb حال اگر محتویات نمایش داده شد، مشکل از فایل زبان نیست.

  41. اسحاق

    سلام
    من واژه لاتین را تغییر دادم و محتویاتش با توجه به توضیحی که دادین نمایش داده شد.
    من واژه را به زبان چینی تغییر دادم و محتویاتش مانند زبان فارسی نمایش داده نشد.فکر میکنم کلا، زبان انگلیسی ساپورت میشه
    چه طوری میتونم کارکتر های فارسی در در کد های js شناسایی کنم تا مشکل ترجمه قالب به زبان فارسی را نداشته باشه .
    از لطف و توجه شما سپاسگزارم

    1. امیر خلجی مهر

      درود.
      باید در انجمن‌های پشتیبانی بیان کنید این مشکل را تا دوستان بررسی کنند:
      https://wp-parsi.com/support/

  42. ستاري

    با سلام
    من به مشكلي برخوردم من يك قالب فارسي خريدم ولي داخلش برخي موارد ترجمه فارسي نشده و جالب اينجاست كه داخل فايل زبان قالب در روت اصلي هم اون جملات نيست.
    مثلا زماني كه كاربر جديد در سايت ثبت نام مي كنه پيام ميده created an account for you ، حالا چطور مي تونم به فارسي برگردونمش ؟
    پيشاپيش ممنونم از راهنمايي شما

  43. محمد

    با سلام و احترام
    جالبه، بازم مثل همیشه از سرچ یک موضوع فنی و تخصصی وردپرس، جواب دقیق و کاربردی و بهینه ختم میشه به پست های آقای خلجی مهر.
    زنده باشی آدم کاربلد.

    1. امیر خلجی مهر

      با درود.

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

دیدگاه خود را بنویسید

ماندگار وب - 1400