שינוי פרמטרים בדרופל בהתאם לשפה

כך משנים במערכת דרופל 6 את שם האתר, התיאור שלו ופרמטרים נוספים בהתאם לשפה.

הקמת אתר רב לשוני באמצעות דרופל היא מאד קלה ונעימה, באמצעות המודול המובנה Locale ובאמצעות מודול i18n אפשר ליצור תכנים בשפות שונות באותו אתר בקלות ובמהירות ובעצם ליצור אתר רב לשוני בעל מספר שפות.

אתר השוואת מחירי השיחות שבניתי הוא דוגמא טובה לאתר רב לשוני. יש לו גרסאות בשלוש שפות – אנגלית, עברית ורוסית ואין לי שום בעיה להוסיף עוד ועוד שפות לאתר. בעוד שהפעלת Locale ו-i18n היא פשוטה מאד, חלק מהמתכנתים מסתבכים עם הגדרת שם אתר, הודעת פוטר, סלוגן, Mission ועוד פרמטרים שונים באופן נפרד לכל שפה בממשק עצמו.

כיצד משנים את שם האתר לפי השפה?

ראשית, נתקין את המודולים Locale ו-i18n. אני מאד אוהב להתקין גם את המודול Language Icons שיוצר לנו Language switcher עם דגלים. באמצעות Site configuration -> Languages -> Add language נוסיף את השפה שאנו רוצים ובתפריט ה-Blocks נדאג ש-Language switcher שהוא Block שנוצר לאחר שהתקנו את ה-i18n מופיע במקום כלשהו. הוא צריך להראות כך:

תפריט ה-Language Switcher
תפריט ה-Language Switcher

אחרי כן ניגש לקובץ ה-settings.php ונוסיף את הטקסט הבא על מנת לקבוע שהפרמטרים הבאים הם משתנים בהתאם לשפה:


$conf['i18n_variables'] = array(
  'site_name',
  'site_slogan',
  'site_mission',
  'site_footer',
);

נשמור את הקובץ, ננקה את ה-cache של דרופל (דרך Performance) ואז ניגש אל Site Information. אנו נראה שליד כל הפרמטרים שהכנסנו כתוב This is a multilingual variable. הנה, כך זה נראה:
שדה רב לשוני

כל מה שצריך לעשות זה לעדכן את השדה והשדה יתעדכן בהתאם לשפה שנמצאת ב-Language switcher. אם אני צריך לשנות את שם האתר ברוסית, כל מה שעלי לעשות זה להעביר את השפה לרוסית, להכניס את שם האתר ולשמור – זה הכל!

הנה רשימה של משתנים שניתן לייצר להם גרסאות לשוניות:


/**
* Multilingual settings
*
* This is a collection of variables that can be set up for each language when i18n enabled.
* These are the basic ones for Drupal core, but you can add your own here.
* Find them by looking through source of page for name=
*/
$conf['i18n_variables'] = array(
'theme_default',
'file_directory_path',
'menu_primary_links_source',
'menu_default_node_menu',
'nice_menus_custom_css',
'site_mail',
'site_name',
'site_slogan',
'site_mission',
'site_footer',
'anonymous',
'site_frontpage',

/* User configuration */
'user_registration_help',
'user_mail_register_admin_created_subject',
'user_mail_register_admin_created_body',
'user_mail_register_no_approval_required_subject',
'user_mail_register_no_approval_required_body',
'user_mail_register_pending_approval_subject',
'user_mail_register_pending_approval_body',
'user_mail_password_reset_subject',
'user_mail_password_reset_body',
'user_mail_status_activated_subject',
'user_mail_status_activated_body',
'user_mail_status_blocked_subject',
'user_mail_status_blocked_body',
'user_mail_status_deleted_subject',
'user_mail_status_deleted_body',

/* Node help */
'blog_help',
'story_help',
'contact_form_information',

/* Location */
'location_default_country',
'location_settings_user',

/* Invite */
'invite_subject',
'invite_default_mail_template',

/* User_relationships */
'user_relationship_mailer_request_subject',
'user_relationship_mailer_request_message',
'user_relationship_mailer_cancel_subject',
'user_relationship_mailer_cancel_message',
'user_relationship_mailer_approve_subject',
'user_relationship_mailer_approve_message',
'user_relationship_mailer_disapprove_subject',
'user_relationship_mailer_disapprove_message',
'user_relationship_mailer_remove_subject',
'user_relationship_mailer_remove_message',
'user_relationship_mailer_pre_approved_subject',
'user_relationship_mailer_pre_approved_message',
'user_relationships_ui_msg_submitted',
'user_relationships_ui_msg_accepted',
'user_relationships_ui_msg_disapproved',
'user_relationships_ui_msg_cancel',
'user_relationships_ui_msg_default',
'user_relationships_ui_msg_removed',
'user_relationships_ui_msg_pending',
'user_relationships_ui_msg_pre_approved',
'user_relationships_ui_msg_too_many_relationships',
'user_relationships_ui_msg_existing_request',
'user_relationships_ui_msg_existing_relationship',
'user_relationships_ui_msg_not_accepting_requests',
'user_relationships_ui_msg_self_request',
'user_relationships_ui_msg_non_existant_user',
'user_relationships_ui_msg_non_existant_type',
'user_relationships_ui_msg_unknown_error',
'user_relationships_ui_msg_relationship_type_not_set',
'user_relationships_ui_msg_relationship_type_not_allowed',
);

פוסטים נוספים שכדאי לקרוא

בינה מלאכותית

להריץ ממשק של open-webui על הרספברי פיי

להפעיל ממשק של צ׳אט ג׳יפיטי שאפשר לגשת אליו מכל מחשב ברשת הביתית על רספברי פיי עם מודל בשם tinydolphin שרץ על רספברי פיי.

תמונה של הבית הלבן עם מחשוב ענן וטקסט: FEDRAMP
פתרונות ומאמרים על פיתוח אינטרנט

FedRAMP & FIPS מבוא למתחילים

פרק מיוחד, לצד הקלטה של פרק של עושים תוכנה על אחת התקינות החשובות ביותר עבור חברות שסביר להניח שלא הכרתם

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

הסבר על טכניקה פשוטה וידועה מאד שאנו מפעילים על מידע לפני שאנחנו מציגים אותו ב-HTML באפליקציה או באתר.

רספברי פיי

התקנת OpenCanary על רספברי פיי

מה זה OpenCanary ואיך אפשר להתקין אותה על רספברי פיי ולשדרג את אבטחת הרשת הביתית או המשרדית.

גלילה לראש העמוד