آموزش ترجمه و چند زبانه کردن سایت ساخته‌‌شده توسط دروپال 7

آموزش ساختن سایت چند زبانه توسط دروپال 7

مقدمه

در این مطلب قصد داریم مرحله به مرحله پیش بریم تا یک سایت ساخته شده توسط دروپال 7 را چند زبانه کنیم.

در این مطلب فرض ما بر این است که سایت ساخته شده بطور پیش‌فرض به انگلیسی است. ما زبان فارسی را به آن اضافه می‌کنیم و سایت را طوری تنظیم می‌کنیم که مطالب سایت، برچسب‌ها، نظرات و بسیاری دیگر از بخش‌های سایت چند زبانه (Multilingual) شوند.

برای نصب دروپال 7 می‌توانید از مطالب زیر کمک بگیرید:

 

نکته‌ی مهم: در این مطلب آموزشی فرض می‌کنیم آدرس سایت شما example.com است. وقتی می‌گوییم به مسیر یا زیرشاخه‌ی /fa از سایت خود بروید، منظور همان example.com/fa است، و:

  • اگر توسط مطلب «آموزش نصب دروپال 7 بر روی هاست رایگان» سایت دروپال 7 خود را ساخته‌اید، example.com برای شما معادل همان آدرس drupal7test.cloudsite.ir است که ساختید.
  • اگر توسط مطب «آموزش نصب دروپال 7 بر روی هاست لوکال توسط XAMPP» سایت دروپال 7 خود را ساختید، example.com برای شما معادل localhost/drupal7 است، و برای مثال example.com/fa برای شما معادل localhost/drupal7/fa است.

 

1. اضافه کردن زبان فارسی و تنظیمات زبان‌ها

1.1. فعال کردن 2 ماژول در هسته‌‌ی دروپال

قبل از هر چیز، به بخش «ماژول‌ها» / «افزونه‌ها» (Modules) از سایت دروپالی خود رفته، ماژول Locale و سپس ماژول Content translation را فعال کنید.

1.2. اضافه کردن زبان فارسی

پس از فعال‌سازی دو ماژول مذکور، به صفحه‌ی «زبان‌ها» (Languagues) از سایت بروید: برای رفتن به صفحه‌ی زبان‌ها دو راه دارید:

  1. در صفحه‌ی Modules بر روی لینک Configure در ردیف ماژول Locale کلیک کنید
  2. از منوی بالای سایت به صفحه‌ی «پیکربندی» (Configuration) بروید. سپس آنجا بر روی لینک «زبان‌ها» (Languagues) کلیک کنید تا به صفحه‌ی زبان‌ها بروید

در حال حاضر فقط زبان English در جدول داخل صفحه‌ی «زبان‌ها» قرار دارد، که کُد آن en است و جهت آن چپ به راست (Left to right) است.

بر روی لینک «+ افزودن زبان» (Add language) کلیک کنید.

از باکسی که پایین فیلد «نام زبان» (Language name) قرار دارد، زبان «Persian (فارسی)» را انتخاب کنید و بر روی Add language کلیک کنید. زبان فارسی اضافه شده و بطور خودکار به صفحه‌ی زبان‌ها هدایت می‌شوید.

حالا در جدولی که در صفحه‌ی زبان‌ها وجود دارد دو زبان English و Persian وجود دارد. کد زبان فارسی fa است و همانطور که واضح است جهت آن راست به چپ (Right to left) است.

برای اطمینان از ذخیره شدن تغییرات، بر روی دکمه‌ی «ذخیره کردن تنظیمات» (Save configuration) کلیک کنید.

1.3. اضافه کردن مسیر زبان فارسی

در این مرحله زبان فارسی به سایت اضافه شده، اما شما تغییری در سایت مشاهده نمی‌کنید. برای مثال، اگر به زیر شاخه‌ی /fa از سایت بروید اتفاق خاصی نمی‌افتد (منظور این است که اگر آدرس ریشه‌ی سایت شما example.com است، به example.com/fa بروید)

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

در صفحه‌ی زبان‌ها بر روی تب «تشخیص و انتخاب» (Detection and Selection) کلیک کنید. گزینه‌ی URL را فعال کنید و تغییرات را ذخیره کنید.

با انجام اینکار، حالا اگر به مسیر /fa از سایت بروید، مشاهده می‌کنید ظاهر سایت راست به چپ است. توجه کنید که در این مرحله کلمات به فارسی ترجمه نشده‌اند، به همین دلیل برای مثال اگر به example.com/fa بروید کلمات هنوز به انگلیسی هستند، ولی جهت ظاهر سایت عوض شده است.

1.4. انتخاب زبان پیش‌فرض

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

افزودن زبان فارسی و انتخاب به عنوان زبان پیش‌فرض

به تب «لیست» (List) از صفحه‌ی زبان‌ها برگردید. در ستون «پیش‌فرض» (DEFAULT)، زبان فارسی را انتخاب کنید، و تنظیمات را ذخیره کنید.

بعد از ذخیره کردن تغییرات مشاهده می‌کنید جهت صفحه راست به چپ می‌شود. دلیلش این است که حالا زبان پیش‌فرض سایت فارسی است و اگر شما صفحه اصلی سایت خود (example.com) را باز کنید، زبان فارسی شناخته می‌شود و زبان انگلیسی دیگر از زیرشاخه‌ی /en قابل دسترسی است (example.com/en).

حالا که در مسیر admin/config/regional/language هستید، اگر مایلید باقی مراحل را در صفحات انگلیسی ادامه بدید، به مسیر en/admin/config/regional/language بروید.

با تنظیمات بالا، صفحات فارسی سایت شما از آدرس example.com و example.com/fa، و صفحات انگلیسی سایت شما از آدرس example.com/en در دسترس هستند.

1.5. تنظیمات هر زبان

برای ویرایش تنظیمات هر زبان، زمانی که در صفحه‌ی زبان‌ها هستید، بر روی لینک «ویرایش» (edit) که در ردیف هر زبان قرار دارد کلیک کنید.

در این مرحله نیازی به تغییر اطلاعات زبانها نیست، اما برای اطلاعات بیشتر: می‌توانید بعدا نام هر زبان، مسیر آن (Path prefix language code)، جهت آن و ... را در آن بخش تغییر دهید.

 

2. اضافه کردن ترجمه‌های زبان فارسی

2.1. دانلود فایل ترجمه‌ از سایت دروپال

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

  1. به سایت ترجمه‌های دروپال بروید. در لیست طولانی از زبان‌ها که وجود دارد، بر روی Persian, Farsi کلیک کنید.  بر روی لینک Download که روبروی Drupal core نسخه 7 است کلیک کنید.
  2. به صفحه‌ی دانلود ترجمه‌های هسته‌ی دروپال بروید. از لیست طولانی زبان‌ها که وجود دارد، Persian, Farsi را پیدا کنید. بر روی لینک نسخه‌ی صحیح کلیک کنید (برای مثال، در زمان نوشتن این مطلب: 7.23 (627.01 KB))

2.2. وارد کردن فایل ترجمه به سایت

حالا باید فایل با پسوند po ترجمه فارسی را به سایت اضافه کنیم. برای اینکار باید به تب «ورود اطلاعات» (Import) از صفحه‌ی «رابط ترجمه» (Translate Interface) بروید. به یکی از دو روش زیر عمل کنید:

  1. به صفحه‌ی «پیکربندی» (Configuration) بروید. از آنجا به صفحه‌ی «رابط ترجمه» (Translate Interface) بروید، و بر روی تب «ورود اطلاعات» (Import) کلیک کنید.
  2. مستقیما به مسیر en/admin/config/regional/translate/import بروید ;)

در فیلد «فایل زبان» (Language file) فایل po را که پیشتر دانلود کردید انتخاب کنید.

در باقی تنظیمات تغییری ایجاد نکنید. فقط مطمئن شوید که در فیلد «ورود به» (Import into) زبان «فارسی» (Persian) انتخاب شده باشد.

بر روی دکمه‌ی «ورود اطلاعات» (Import) کلیک کنید، تا وارد کردن ترجمه‌های زبان فارسی برای هسته‌ی دروپال شروع شود.

بعد از اینکه import فایل ترجمه تمام شد، به صفحه اصلی سایت (example.com) یا زیرشاخه‌ی /fa بروید. بسیاری از کلمات حالا فارسی هستند :)

صفحه اصلی بعد از اضافه کردن فایل ترجمه فارسی به دروپال 7

 

3. چند زبانه کردن محتوای سایت

اگر مایلید محتوای سایت چند زبانه شود، باید نوع محتوا (Content type) موردنظر را چند زبانه کنید (برای مثال: اخبار، صفحه ساده، ...). برای اینکار، مراحل زیر را طی کنید:

به بخش «ساختار» (Structure) از سایت بروید، از آنجا به بخش «انواع محتوا» (Content types) بروید. نوع محتوایی که مایلید چند زبانه شود را انتخاب کنید و بر روی لینک «ویرایش» (Edit) روبروی آن کلیک کنید.

در صفحه تنظیمات نوع محتوا که هستید، تب «گزینه‌های انتشار» (Publishing options) را باز کنید. از قسمت «پشتیبانی از چند زبانی» (Multilingual support) گزینه‌ی «فعال، به‌همراه ترجمه» (Enabled, with translation) را انتخاب کنید و تغییرات را ذخیره کنید، تا همانطور که پایین این گزینه توضیح داده شده:

«... یک فیلد انتخاب زبان به فرم ویرایش افزوده می‌شود، که امکان انتخاب یکی از زبان‌های فعال را به شما می‌دهد ... همچنین ... امکان ترجمه محتوا به هر یک از زبان‌های نصب‌شده را می‌دهد ... تغییر این گزینه تاثیری در محتوای فعلی ندارد.»

بعد از انجام دادن مراحل بالا، حالا زمان اضافه کردن یک محتوای جدید به سایت، مشاهده می‌کنید که فیلد «زبان» (Language) در کنار فیلدهای دیگری مانند «عنوان» (Title)، «برچسب‌ها» (Tags)، و غیره اضافه شده است:

فیلد «زبان» به نوع محتوای مورد نظر در دروپال 7 اضافه شده است

و تب «ترجمه» (Translate) به تب‌های بالای محتوا اضافه خواهد شد:

تب «ترجمه» به تب‌های بالای محتوا در دروپال 7 اضافه شده است

اگر مایلید، همین الآن به بخش «محتوا» (Content) از سایت رفته، بر روی لینک «+ افزودن محتوا» (Add content) کلیک کنید، در صفحه بعد نوع محتوایی که چند زبانه کردید را انتخاب کنید و یک محتوا از آن بسازید و بعد ترجمه کنید.

 

4. نصب ماژول Internationalization، تنظیمات آن، و فراتر از آن!

نکته: کلمه‌ی i18n مخفف کلمه‌ی Internationalization است، به دلیل اینکه بین حروف i و n تعداد 18 حرف وجود دارد :)

4.1. نصب ماژول Variable

برای نصب ماژول i18n، اول باید ماژول Variable را نصب و فعال کنیم.

نسخه‌ی مناسب ماژول Variable را از صفحه‌ی پروژه‌ی Variable دانلود، و بعد نصب و فعال کنید. (توجه: در این مرحله، فقط فعال کردن ماژول Variable کافی است و نیازی به فعال کردن Variable realm، Variable admin، و موارد دیگر نیست)

4.2. نصب ماژول i18n

ماژول i18n را از صفحه‌ی پروژه‌ی Internationalization دانلود، و بعد نصب کنید. سپس موارد زیر را فعال و تنظیم کنید:

4.2.1. Internationalization

بعد از فعال کردن Internationalization، بر روی لینک «پیکربندی» (Configure) روبروی آن کلیک کنید تا وارد صفحه‌ی تنظیمات آن شوید. نیازی به تغییر چیزی در تنظیمات آن نیست.

4.2.2. String translation

بعد از فعال کردن String translation، بر روی لینک «پیکربندی» (Configure) آن کلیک کنید تا وارد صفحه‌ی تنظیمات آن شوید. شاید بخواهید در آن صفحه تمامی گزینه‌‎های زیرمجموعه‌ی «Translatable text formats» را تیک بزنید.

4.2.3. Field translation

4.2.4. Block languages

4.2.5. Translation sets

4.2.6. Multilingual content

بعد از فعال کردن Multilingual content،بر روی لینک «پیکربندی» (Configure) آن کلیک کنید تا وارد صفحه‌ی تنظیمات آن شوید.

4.3. رفرش کردن Stringها

نکته: Stringها در واقع همان رشته‌ها یا سلسله کلمات هستند که در سایت ترجمه می‌شوند.

به صفحه‌ی «پیکربندی» (Configuration) بروید، از آنجا به صفحه‌ی «رابط ترجمه» (Translate interface) رفته، تب Strings را باز کنید.

گزینه‌های اول و دوم قسمت «انتخاب گروه‌های متن» (Select text groups) را فعال کنید و دکمه‌ی Refresh strings را بزنید.

4.4. ترجمه کردن یک String

برای ترجمه‌ی یک «رشته» (String)، یا ویرایش ترجمه‌ی یک String، به صفحه‌ی «پیکربندی» (Configuration) بروید، از آنجا به صفحه‌ی «رابط ترجمه» (Translate interface) رفته، تب «ترجمه» (Translate) را باز کنید. رشته‌ی مورد نظر یا بخشی از آن را در باکس «رشته شامل» (String contains) وارد کنید و Enter را بزنید. رشته‌ی مورد نظر را که پیدا کردید، بر روی لینک «ویرایش» (Edit) روبروی آن کلیک کنید و تغییرات لازم را اعمال کنید.

 

5. چند زبانه کردن اسم سایت، شعار سایت، و ...

برای اینکه اسم سایت، شعار سایت (Site Slogan)، صفحه 403، صفحه 404، پیغام صفحه‌ی نگهداری، و بسیاری موارد دیگر از اطلاعات سایت، پیغام‌ها و ... چند زبانه شوند، این 3 مورد را فعال کنید:

  • Variable realm (زیر مجموعه‌ی ماژول Variable)
  • Variable store (زیر مجموعه‌ی ماژول Variable)
  • Variable translation (زیر مجموعه‌ی ماژول i18n)

سپس به بخش «پیکربندی» (Confiure) از ماژول Variable translation رفته، تمام مواردی که مایلید چند زبانه شوند را فعال کنید.

 

6. چند زبانه کردن آیتم‌های منوهای سایت

برای اینکه امکان چند زبانه و ترجمه کردن لینک‌های منوها فراهم شود، قبل از هر چیز Menu translation که زیر مجموعه‌ی i18n است را فعال کنید.

بعد از آن باید هر منو را طوری تنظیم کنید که چند زبانه شود. به صفحه‌ی «ساختار» (Structure)، از آنجا به صفحه‌ی «منوها» (Menus) بروید، منوی مورد نظر که مایلید چند زبانه شود را انتخاب کنید و بر روی لینک «ویرایش منو» (edit menu) روبروی آن کلیک کنید.

نکته: برای ترجمه کردن عنوان و شرح خود منو، در آن صفحه به تب «ترجمه» (Translate) بروید.

چند زبانه شدن آیتم‌های منو چند حالت دارد که پایین قسمت Translation mode مشاهده می‌کنید:

  • No multilingual options for menu items : آیتم‌های منو زبان خاصی نداشته باشند
  • Translate and Localize : هر آیتم منو که زبان آن مشخص شود، امکان ترجمه شده داشته باشد (این گزینه توصیه می‌شود)
  • Fixed Language : هر آیتم منو یک زبان مشخص داشته باشد، و فقط در صفحات به آن زبان نمایش داده شود

پیشنهاد می‌شود گزینه‌ی دوم را انتخاب کنید. با انتخاب این گزینه، زمانی که در حال اضافه کردن یک لینک (آیتم) جدید به منو هستید، می‌توانید برای مثال زبان آن را English انتخاب کنید، و بعد از ذخیره‌ی لینک منو، آن را ترجمه کنید.

 

7. چند مورد دیگر

  • برای چند زبانه کردن و ترجمه کردن دسته‌بندی‌های فرم تماس و پاسخ‌های تماس Contact translation را فعال و تنظیم کنید.
  • برای چند زبانه و ترجمه کردن فروم‌ها (انجمن‌ها) Multilingual forum را فعال و تنظیم کنید.
  • برای چند زبانه و ترجمه کردن رده‌بندی‌ها (تگ‌ها، دسته‌بندی، طبقه‌بندی) Taxonomy translation را فعال و تنظیم کنید.
  • برای چند زبانه و ترجمه کردن ماژول ویوز (Views)، ماژول Internationalization Views را دانلود، نصب و فعال کنید.
  • فایل‌های ترجمه‌های فارسی پروژه‌های دیگر را در صورت نیاز دانلود و به روشی که در بخش 2.2 آموزش داده شد وارد سایت کنید.

 

8. حذف مسیر /fa یا /en برای زبان پیش‌فرض

برای تمیز و زیباتر بودن سایت و البته رعایت نکات سئوی دروپال، بهتر است زیرشاخه (مسیر) زبان پیش‌فرض را غیر فعال کنید (تا برای مثال، یک صفحه از دو آدرس example.com/about و example.com/fa/about در دسترس نباشد)

برای مثال، اگر قرار است زبان فارسی زبان پیش‌فرض سایت شما باشد، برای برداشتن مسیر /fa برای زبان فارسی: به صفحه‌ی «زبان‌ها» (Languages) بروید، بر روی لینک «ویرایش» (Edit) روبروی Persian کلیک کنید، متن باکس «Path prefix language code» را که «fa» است پاک کنید، و تغییرات را ذخیره کنید.

 

9. نکته‌ی آخر

برای اینکه سایت چند زبانه‌ی حرفه‌ای‌تری داشته باشید، لطفا از قالب‌های رایگان و حرفه‌ای دروپال کار استفاده کنید :)

 

نظرات

عالیه، ممنون

ممنون دستتون درد نکنه

بسیار عالی. خیلی خوب هست که یک قسمت هم در مورد ماژول Localization Update به این آموزش اضافه بشه که به صورت اتوماتیک ترجمه ها را دانلود و در سایت وارد میکنه

اقا ممنون انصافا کامل خیلی خوب بود

باتشکر از مطلب خوبتون. یه سوال اگه خواسته باشیم برای هر زبان یک قالب اختصاصی داشته باشیم (یعنی مثلا اگر زبان فارسی بود قالب مخصوص زبان فارسی بیاد و اگر هم انگلیسی بود قالب مخصوص خودش رو برای کاربر نمایش بده) راهی هست؟!

بله، میتونید از ماژول‌های زیر استفاده کنید. ماژول اول (ThemeKey) احتمالا کافی هست و چیزی هست که لازم دارید:
https://drupal.org/project/themekey
https://drupal.org/project/page_theme

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

1. The phpinfo() function has been disabled for security reasons. To see your server's phpinfo() information, change your PHP settings or contact your server administrator. For more information, Enabling and disabling phpinfo() handbook page

2.روند بارگذاری فعال نشده است
سرور شما قابلیت نمایش نوار پیمایش بارگذاری فایل را ندارد. این فابلیت نیاز به وب سرور Apache server اجرا شده توسط PHP با افزونه mod_php را دارد.

سلام،
به نظر میرسه 2 مورد هست که لازم هست در سرور هاست شما فعال بشه: phpinfo() و mod_php.
همین پیغام‎هایی که گفتید رو برای پشتیبانی هاست‎تون بفرستید، به احتمال زیاد میتونن مشکل رو برطرف کنن. هاست رو از چه شرکتی گرفتید؟ ممنون میشم نتیجه رو بهم خبر بدید.

سلام دوباره
مشکل رو فرستادم. هاست را از میهن وب هاست گرفتم! اگه ممکنه یک راهنمایی در مورد این دو اخطار دیگه هم بکنید.
Warning: fileowner() has been disabled for security reasons in update_manager_local_transfers_allowed() (line 932 of /home3/persiaca/public_html/modules/update/update.manager.inc).
Warning: fileowner() has been disabled for security reasons in update_manager_local_transfers_allowed() (line 932 of /home3/persiaca/public_html/modules/update/update.manager.inc
ممنون

به نظر میرسه به دلائل مختلفی ممکنه این اتفاق بیفته: https://drupal.org/node/1284886
مثلا مشکل یکی از افراد با تغییر Temporary directory در مسیر admin/config/media/file-system به «/tmp» حل شده.

سلام
در پاسخ به مشکل بنده کارشناس هاست این گونه فرمودند:
«در هاستينگ هايي که مسائل امنيتي رعايت ميشود ممکن است برخي اسکريپتها سازگار نباشند .
دروپال به فانکشن هايي که از لحاظ امنيتي مشکل دارد نياز دارد
و برخي از اين فانشکن ها در هاست جهت افزايش امنيت مسدود است و ممکن است باعث درست عمل نکردنش شود»
یعنی من نمی تونم در این هاست از دروپال استفاده کنم؟!

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

برای چندزبانه کردن پروفایل‌های کاربران چه باید کرد؟

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

افزودن نظر جدید