Drupalcamp Atlanta 2010 Internationalization Presentation
Upcoming SlideShare
Loading in...5

Drupalcamp Atlanta 2010 Internationalization Presentation



Drupal Internationalization / Multi-Language presentation for Drupalcamp Atlanta 2010. Presented by Steven Jackson and Trent Wyman.

Drupal Internationalization / Multi-Language presentation for Drupalcamp Atlanta 2010. Presented by Steven Jackson and Trent Wyman.



Total Views
Slideshare-icon Views on SlideShare
Embed Views



2 Embeds 44

http://www.mediacurrent.com 43
http://mongoose.mediacurrentstaging.info 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Drupalcamp Atlanta 2010 Internationalization Presentation Drupalcamp Atlanta 2010 Internationalization Presentation Presentation Transcript

    • Getting Started withDrupal TranslationsBy Steven Jacksonand Trent WymanMediacurrent Consultants
      Drupalcamp Atlanta 2010
      October 2, 2010
    • Overview
      This presentation will cover the basic steps for setting up a multi-lingual site in Drupal
      Discuss contrib modules needed
      Cover basic configurations for content type language support
      Lessons learned from past projects
      (Do’s & Don’ts)
    • Introduction / Background
      Trent Wyman
      - Drupal Developer &Theming Consultant
      Drupal Experience:
      - Began experimenting with Drupal in version 4.7
      - Employed as a full-time Drupal Developer & Theming Consultant since version 5
      - Mediacurrent (www.mediacurrent.com)
      About Mediacurrent:
      - Web development firm located in Alpharetta, GA
      - Focused solely on Drupal Development, customization, & consultation
    • Multi-Language Contrib Modules
      Download the following contrib modules:
      Internationalization Package (i18n)
      - http://drupal.org/project/i18n
      i18n Auto Translate
      - http://drupal.org/project/i18n_auto
      Language Switcher Dropdown (optional)
      - http://drupal.org/project/lang_dropdown
    • Enable Drupal Core Modules
      Go to the modules list page in Drupal admin and enable the following modules under the “Core – optional” section:
      Content Translations
    • www.yoursite.com/admin/build/modules
    • Install Contrib Modules
      Install the i18n, i18 Auto Translate, & Language Switcher Dropdown modules into your site’s modules folder.
    • Get Your Language Template(s)
      Choose & download the language(s) you want your site translated into. (http://drupal.org/project/Translations)
      Unpack the .tar file(s) and install into the i18n/translationscontrib module folder.
      (sitesallmodulescontribi18n ranslations)
    • Enable Contrib Modules
      www.yoursite.com/admin/build/modules (“Multilanguage”)
      Auto draft translation
      Block translation
      CCK translation (if using custom CCK fields and fieldgroups)
      Content type translation
      Language switcher dropdown (if you prefer a dropdown selector v/s Locale’s text links)
      Menu translation
      Poll aggregate (if translating polls)
      Profile translate (if translating user profiles)
      String translation
      Synchronize translations
      Taxonomy translation
      Views translation
    • www.yoursite.com/admin/build/modules
    • Configure Installed Language(s)
      Go to the Languages Settings page in Drupal admin and select the “Configure” tab.
      Then, under the “Language negotiation” subtab choose the “Path prefix only” option.
    • www.yoursite.com/admin/settings/language
    • Enable Installed Language(s)
      Now, select the “List” tab on the Languages Settings page and enable the languages you installed.
      Here, you can also set your site’s default language (if other than English).
    • www.yoursite.com/admin/settings/language
    • Enable Language Switcher
      Go to the Blocks admin page and enable the language switcher under the “Disabled” section by assigning the block to your preferred Region.
      Choose “Language switcher” if only using Locale (core).
      Choose “Language switcher dropdown” if using the dropdown module (contrib).
    • www.yoursite.com/admin/build/block
    • Translating Your Site’s Content
      Go to the “Content types” list page and select the content types that you want translated.
      Click the “edit” link corresponding to the content type.
    • www.yoursite.com/admin/content/types
    • Translating Your Site’s Content
      Next, on the content type’s “Edit” page refer to the “Workflow” section and choose “Enabled with translation”.
      Then click the “Save” button at the bottom of the “Edit” page.
      Example path:
    • www.yoursite.com/admin/content/node-type/blog
    • Create New Content
      Now you can create and translate new content for the content type you enabled for multi-language support.
      Go to the “Create Content” page, select the content type and then choose “English” (or your default language) from the “Language” dropdown selector.
      Example path:
    • www.yoursite.com/node/add/blog
    • Translate New Content
      After choosing the desired language from the “Language” selector, save the node.
      Once you have saved the node, click the “Translate” tab located below the content’s title.
      If this is new content, translations will already be available.
    • Example path:www.yoursite.com/node/767/translate
    • Translate Pre-existing Content
      Translations in Drupal are not retro-active.
      For content that existed before you enabled translations you will need to manually translate those nodes.
      Click the “Add translation” link next to the desired language. Manually insert your translations into the “Title”, “Body”, etc. fields and save the node.
    • Example path:www.yoursite.com/node/56/translate
    • Switching Between Translations
      Once you have your content translated, your users will be able to toggle between the languages by selecting the language links available in your “Language Selector” block (displayed within the Region you assigned on the Blocks admin page).
      Example of language selector in Header Region:
    • Translating Menus & Menu Items
      Due to limited time I will not go into menu translations for this presentation.
      For info on how to translate menus and menu items you can refer to the following online tutorials:
    • Introduction / Background
      Steven Jackson
      - Drupal Consultant
      Drupal Experience:
      - Mainly backend module development
      - Server deployment
    • How to make it work, 1
      Start with a plan
      Start with using i18n
      Don’t do it as an afterthought
      Know what languages you are using
      Try to keep as much in Drupal – hardcode as little as necessary
    • How to make it work, 2
      Put what you can in the node
      Translate interface is good but may be cumbersome to search
      Might have duplicate or similar text but in different locations
      If doing after the fact, make node_clone your friend
    • How to make it work, 3
      If a social site, setup content_profile
      Can then translate profile content in same manner
      Coordinate with someone who knows the languages
    • How to make it break
      == !previousSlides
      Don’t plan ahead, buy lots of Tylenol
      Don’t wrap module text in t()
      Write output in direct PHP instead of via Drupal
    • What can go wrong
      Server not rendering special characters
      Pathauto, url_alias may create new path when saving node after initial creation
      Have to go into db and clear aliases and auto urls for content
      Get a lot of some-path-name-0
    • How fix what you break, 1
      IF PHP
      You’ll want to parse the URL to get language or get $language->language
      if/switch language to output correct language text
      Make friends with regex, might have to output some special characters that some PHP functions aren’t generating (like date())
    • How fix what you break, 2
      Often ran into new url being generated when merely updating content
      Go into db, remove path_auto, url alias associations
      Reassociate nodes via the translate tab
    • Pros / Cons
      Well, you have a multilingual site
      Only had to setup one code base
      If not planning ahead can be a headache
      Might feel like you created multiple sites despite auto generation
    • Things to Remember
      Setup translation auto-generation
      If doing after the fact, setup translation associations
      Setup each view to be based on user’s current language in filters
    • Questions / Comments?