Home

Stefano Mallozzi Professional web developmentStefano Mallozzi Professional web development

Condividi contenuti
  • About me
  • Bookmark
  • Tips and tricks
  • Tutorials
  • Contact me
  • Feed aggregator
Home

Languages

  • Italiano
  • English

Contact me

Tag cloud

connection drupal i18n ics images internet lan network node images photo php seo
More tags

Photo galleries

  • Pictures of Gaeta

How to add multilingual support to a Drupal 6 site

Wed, 31/12/2008 - 00:07 — stefano
  1. Install languages
    • Go to Site configuration ⇒ Languages and install the languages you need for your site.
    • Open the Configure tab and select Path prefix only.
  2. Enable modules
    • In the Modules page enable the following core modules: Locale, Content Translation.
    • Install the Internationalization module (i18n) and enable all the multilanguage modules except Poll aggregate and Profile translation.
    • In the Permissions page assign the right permissions added by the previous modules.
  3. Configure multilanguage
    • Go to Site configuration ⇒ Multilingual system and select Current language and language neutral.
    • Edit the Drupal settings.php file, and enter the $conf['i18n_variables'] array with all the variables you want to translate, for example:

      $conf['i18n_variables'] = array(
      // Site configuration
      'site_slogan',
      'site_mission',
      'anonymous',
      // User configuration
      'user_registration_help',
      'usermail_welcome_subject',
      'user_mail_welcome_body',
      'user_mail_approval_subject',
      'user_mail_approval_body',
      'user_mail_pass_subject',
      'user_mail_pass_body',
      // Primary and secondary links
      'menu__primary_links_source',
      'menu__secondary_links_source',
      // Theme settings. This is an 'all or nothing' for each theme
      // This is for 'garland' theme, for other theme it would be 'theme_[themename]_settings'
      'theme_garland_settings',
      );

      Those variables will be translatable by changing the current language in your site.
  4. Built-in interface translation
    • Open the Blocks administration page and enable the Language switcher block. You'll see links to the active languages, and you'll be able to change the current language on your site.
  5. Blocks translation
    Create one block for each language, enter the translated content and select the appropriate languange in the Language field.
  6. Content translation
    • Open the Content types page, edit the content types you want to translate, and in the Workflow settings choose Enabled, translation included. You'll be able to write content in the default language, then you open the Translate page and write content in the other languages.
  7. Menu translation
    • Open the Menus page, add or edit a menu item, and select thet appropriate language in the Language field.
    • If you want to show in your page only the menus in the current language, for example the Primary links in italian when you select Italian, you need to edit the template.php file and add this snippet to the function phptemplate_preprocess_page():

      global $language;
      if (!empty($vars['primary_links'])) {
      foreach ((array)$vars['primary_links'] as $id => $link) {
      if ($link['langcode'] && strcmp($link['langcode'], $language->language) != 0) unset($vars['primary_links'][$id]);
      }
      }
  8. Taxonomy translation
    • Add or edit a vocabulary, in the Multilingual options select Set language to vocabulary...." and set the appropriate language. The terms added to each vocabulary will be shown only for the current language.
  9. Refresh translated strings
    • To get the new menu items and terms translated, go to Site building -> Translate interface, open the Refresh tab, check all the text groups and click Refresh strings.
Tags:
  • Tutorials
  • drupal
  • i18n
  • languages
  • multilanguage
  • translation
»
  • Italiano
Syndicate content

© Stefano Mallozzi
P.IVA 02155580596
Valid XHTML 1.0 Strict Valid CSS Valid RSS
Powered by Drupal Powered by Apache Powered by MySQL Powered by PHP