SlideShare a Scribd company logo
Don’t Get Lost in Translation:
   Building Multilingual Websites in Drupal 7




Suzanne Kennedy @suzanne_kennedy evolvingweb.ca
Use Cases for
Multilingual Websites
Questions to Ask

• Is content symmetric across languages?
• How is untranslated content treated?
• Is language associated with location/region?
• How will the content/UI be translated?
• What is the default language of the site?
Symmetric Content
 
Asymmetric Content
Half-Symmetric Content
Untranslated Content
Does Language = Region
Translation Workflow
Types of Multilingual Sites
           Foreign language site:

           •   Locale

           Multilingual site

           •   Internationalization (i18n) 

           Multilingual site with translation:

           •   Content Translation (Nodes)

           •   Entity Translation (Fields)
Our Use Case

• Multilingual site with translation
• Three langauges: French, English, German
• Language = region
• Some content is symmetric, some isn’t
Types of Text to Translate
What Gets Translated?
Variables
Built-in Text Strings
User-Entered Text Settings
Content: Nodes
Content: Entities
Text Groups
Site-Wide Multilingual
      Settings
Installing a Language
Configuration > Regional & language > Languages
Configuring a Language
Language Detection & Selection
Types of UI Text

• Variables
• Built-in UI Text (from modules and themes)
• Text Settings added by the User
Variables
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
Selecting Variables
Translating Variables
Non-Text Variables
Built-in Text Strings
Translating Built-in Strings
Translating Built-in Strings
Translating Built-in Strings
User-entered Strings
User-entered Strings
Translating Content
Translating Content
Translating Content
Node Translation


• New node for each translation
• Nodes are mapped together
• Uses the Content Translation module
  (core)
Translating a Node
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10
Field-Level Translation

• Translation of fields instead of nodes
• Entity Translation module (contrib)
  provides UI
• Fields are translatable in core
Example: Products
Example: Issues
Setting up Field Translation
Setting up Field Translation
Adding a Translation
Adding a Translation
Field Translation UI
Translating the Title
Translating the Title
Enabling Language Switcher
Comment Filtering
Comment Filtering
Translate Other Entities
Configure Entity Translation
Translate Users
Synchronize Translations
Views Translation Filters
Unfiltered View
Adding a Filter
Filtered Views
Translating Other Elements
Other Elements to Translate

• Blocks
• Field elements (i.e. help text, default values,
  options)
• Menu items
• Taxonomy terms
• Paths
Blocks
Block Translation

• Translate custom blocks
• Uses the Block Translation module in the
  i18n suite
• Allows you to target blocks for certain
  languages
Block Translation
Block Translation UI
Blocks Per Language
Field Translation
  (translating field settings)
Field Translation

• Translating field settings (label, help text,
  default text)
• Uses the Field Translation module in the i18n
  suite
• Only translates core field settings (not date
  fields, file fields, etc.)
Field Translation
Field Translation
Menu Items
Menu Translation


• Allows you to translate menu items OR
  target a menu at a single language
• Uses Menu Translation module in the i18n
  suite
Menu Translation
Menu Options:
• Fixed Language
• Translate and Localize
Menu items
• Linked to nodes
• Translate custom menu items
Menu Translation
Menu Translation
Other Multilingual Modules
Localization Update
Localization Client
Translation Overview
Challenges

• Choosing contributed modules
• Translating custom elements (Webforms)
• Multilingual audiences
• Improve Translation UI
• Out-sourced translation workflows
• Keeping track of UI strings to translate
What’s Next?
D8 Multilingual Initiative
Learn More
Resources / More Info
Documentation on drupal.org
http://drupal.org/documentation/multilingual

My Blog Post about D7 Multilingual
http://evolvingweb.ca/story/drupal-7-multilingual-whats-new-i18n
http://evolvingweb.ca/story/content-translation-drupal-7

Gabor Hojtsy's Posts about Multilingual D7
http://hojtsy.hu/blog/2011-jan-19/drupal-7039s-new-multilingual-systems-part-1-
basics

Presentation at DrupalCon London
http://london2011.drupal.org/conference/sessions/multilingual-drupal-solutions-use-
cases-and-modules

Drupal 8 Multilingual Initiative (with Video)
http://drupal.org/node/1260534

More Related Content

PDF
Multilingual Content: Presentation from DrupalCamp Montreal 2012
PPTX
Spectrum 2014 welch_allyn
PDF
Spectrum 2014 welch_allyn
ODP
Building the XML Editor you've always wanted
PDF
Extending Machine Translation in AEM
PPTX
4. sql
PPTX
Using PowerShell as DSL in .Net applications
PPTX
Multilingual Content: Presentation from DrupalCamp Montreal 2012
Spectrum 2014 welch_allyn
Spectrum 2014 welch_allyn
Building the XML Editor you've always wanted
Extending Machine Translation in AEM
4. sql
Using PowerShell as DSL in .Net applications

What's hot (11)

PPTX
Language fallback+translation in Sitecore
PDF
Lets Localize Your Plugins
PPT
Modified.net overview
PDF
Welcome to New Swift: Library Evolution & LSP Support
PPTX
2018 12-kube con-ballerinacon
PPT
Session01 basics programming
KEY
Stop Building It From Scratch: Creating Reusable eLearning Components
PDF
Building Multilingual Sites with Drupal 7
PDF
Laura Dent: Single-Source and Localization
PDF
Compiler design tutorial
PPTX
Go fundamentals
Language fallback+translation in Sitecore
Lets Localize Your Plugins
Modified.net overview
Welcome to New Swift: Library Evolution & LSP Support
2018 12-kube con-ballerinacon
Session01 basics programming
Stop Building It From Scratch: Creating Reusable eLearning Components
Building Multilingual Sites with Drupal 7
Laura Dent: Single-Source and Localization
Compiler design tutorial
Go fundamentals
Ad

Viewers also liked (20)

PDF
Managing Translation Workflows in Drupal 7
PDF
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
PDF
Creating a Responsive Drupal Theme: Presentation from DrupalCamp Montreal 2012
PDF
Instant Dynamic Forms with #states
PDF
Site Building Checklist DrupalCamp Ottawa
KEY
Views Configuration at Drupal Camp Toronto 2012
PDF
PDF
Advanced Views Configuration: Presentation from DrupalCamp Montreal 2012
PDF
DrupalCamp 2011 -- Poutine Maker
PDF
Introduction to the Drupal - Web Experience Toolkit
PDF
Upgrading to Drupal 8: Benefits and Gotchas
PDF
Using Core Themes in Drupal 8
ODP
Drupal Multi-site for Fun and Profit
PDF
Lean translation management for better results
PDF
Sonova.com building multilingual and multidomain drupal website
PPT
Drupal7 multilingual
PDF
Translation Management
PDF
Translate in Drupal 8: A New Era in Translation Has Begun
PDF
Responsive Design in Drupal with Zen and Zen Grids
PDF
What is Drupal? An Introduction to Drupal 8
Managing Translation Workflows in Drupal 7
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Creating a Responsive Drupal Theme: Presentation from DrupalCamp Montreal 2012
Instant Dynamic Forms with #states
Site Building Checklist DrupalCamp Ottawa
Views Configuration at Drupal Camp Toronto 2012
Advanced Views Configuration: Presentation from DrupalCamp Montreal 2012
DrupalCamp 2011 -- Poutine Maker
Introduction to the Drupal - Web Experience Toolkit
Upgrading to Drupal 8: Benefits and Gotchas
Using Core Themes in Drupal 8
Drupal Multi-site for Fun and Profit
Lean translation management for better results
Sonova.com building multilingual and multidomain drupal website
Drupal7 multilingual
Translation Management
Translate in Drupal 8: A New Era in Translation Has Begun
Responsive Design in Drupal with Zen and Zen Grids
What is Drupal? An Introduction to Drupal 8
Ad

Similar to Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10 (20)

PDF
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
PDF
Multilingual Content in Drupal 7 & 8 at DrupalCon Munich
PDF
Multilingual WordPress With Polylang
PPTX
Building Multilingual Sites in Drupal 7 by Yoni Steingiesser
PDF
Process, Tool, Localization, Successful
PDF
Multilingual WordPress
PDF
The multilingual Drupal 8 experience (European Drupal Days 2015)
PDF
The Wonderful World of Drupal 8 Multilingual
PDF
Plone multi language
PPTX
Internationalization in Angular Presentation
PPTX
WordPress Multilingual: WordCamp Antwerp 2016
PDF
How to Create Multilingual Websites
PPTX
Translation and Transcreation Workshop
PDF
Multilingual WordPress (WordCamp Toronto 2014)
PPTX
Swapcode AI: AI that helps write, convert, and debug code 10x faster
PPTX
IceFire Presentation for Aos Canada tour
PPTX
Python-unit -I.pptx
PPTX
Internationalizing your website? There's an app for that!
PPTX
NTLM - Open Source Language AI Tools
PPTX
Multilingual intranets ClearBox Valo Feb 2018
Don't Get Lost in Translation: Multilingual Site Building with Drupal 7 at Dr...
Multilingual Content in Drupal 7 & 8 at DrupalCon Munich
Multilingual WordPress With Polylang
Building Multilingual Sites in Drupal 7 by Yoni Steingiesser
Process, Tool, Localization, Successful
Multilingual WordPress
The multilingual Drupal 8 experience (European Drupal Days 2015)
The Wonderful World of Drupal 8 Multilingual
Plone multi language
Internationalization in Angular Presentation
WordPress Multilingual: WordCamp Antwerp 2016
How to Create Multilingual Websites
Translation and Transcreation Workshop
Multilingual WordPress (WordCamp Toronto 2014)
Swapcode AI: AI that helps write, convert, and debug code 10x faster
IceFire Presentation for Aos Canada tour
Python-unit -I.pptx
Internationalizing your website? There's an app for that!
NTLM - Open Source Language AI Tools
Multilingual intranets ClearBox Valo Feb 2018

More from Suzanne Dergacheva (20)

PDF
It's All About the Experience: What I’ve learnt from talking to thousands of ...
PDF
Building a Great User Experience for Content Editors in Drupal 8
PDF
Dipping Your Toe into Drupal 8 Module Development
PDF
Device-Agnostic Content Strategy for Drupal
PDF
Creating a Reusable Drupal Website for Higher Education - Webinar
PDF
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
PDF
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
PDF
What is Drupal? And Why is it Useful? Webinar
PDF
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
PDF
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
PDF
Migrate for Site Builders from MidCamp 2016
PDF
Creating a Drupal Install Profile for a Large Organization
PDF
Intro to Drupal Migrate for Site Builders
PDF
Drupal migrate-june2015
PDF
10 New Things You Can Do with Drupal 8 Out-of-the-Box
PDF
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
PDF
Creating a User-Friendly Search UI with Drupal - Presentation at DrupalCamp T...
PDF
Getting Started with Drupal 8 Theming - DrupalCamp Toronto 2014
PDF
DrupalCamp NYC Panels Presentation - April 2014
PDF
Using Panels Wisely - DrupalCamp Ottawa 2014
It's All About the Experience: What I’ve learnt from talking to thousands of ...
Building a Great User Experience for Content Editors in Drupal 8
Dipping Your Toe into Drupal 8 Module Development
Device-Agnostic Content Strategy for Drupal
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
What is Drupal? And Why is it Useful? Webinar
Creating Layouts and Landing Pages for Drupal 8 - DrupalCon Dublin
Minimalist Theming: How to Build a Lean, Mean Drupal 8 Theme
Migrate for Site Builders from MidCamp 2016
Creating a Drupal Install Profile for a Large Organization
Intro to Drupal Migrate for Site Builders
Drupal migrate-june2015
10 New Things You Can Do with Drupal 8 Out-of-the-Box
Creating Dynamic Landing Pages for Drupal with Panels - Webinar
Creating a User-Friendly Search UI with Drupal - Presentation at DrupalCamp T...
Getting Started with Drupal 8 Theming - DrupalCamp Toronto 2014
DrupalCamp NYC Panels Presentation - April 2014
Using Panels Wisely - DrupalCamp Ottawa 2014

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Modernizing your data center with Dell and AMD
PDF
Electronic commerce courselecture one. Pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectral efficient network and resource selection model in 5G networks
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Modernizing your data center with Dell and AMD
Electronic commerce courselecture one. Pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
The AUB Centre for AI in Media Proposal.docx
Big Data Technologies - Introduction.pptx
Network Security Unit 5.pdf for BCA BBA.
Reach Out and Touch Someone: Haptics and Empathic Computing
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)
“AI and Expert System Decision Support & Business Intelligence Systems”

Multilingual Site Building with Drupal 7 at Drupal Camp NYC 10

Editor's Notes

  • #2: \n
  • #3: Intro: Multilingual websites are complicated, and a great deal of the complication comes from the fact that there are lots of different models for building a multilingual website.\n\nThink about how many multilingual websites you've experienced. Maybe the website is completely multilingual, but comments are in English only. Maybe you switch the language of the site and half the content disappears. Maybe all the translations are out-of-date all the time. Maybe the blog only gets updated in one language.\n\nMaybe the structure of menus and blocks are identical in all languages, or maybe they're different.\n\nMaybe you're dealing with a very international website, where language is tied  to a country and things like time zones and local legal constraints.\n\nMaybe the content in each language is completely different, with no language switcher.\n
  • #4: \n
  • #5: Everything is identical in all languages.\n\nThe menu are perfectly symmetrical. \n\nEach taxonomy term has a translation\n\nContent isn't published until it's been translated into the other six languages.\n\nEven all the paths have to be translated.\n
  • #6: Is the content symmetric across languages? \n\nWill content get updated in all languages at the same time?\n\nAre the menu structures the same, or different?\n
  • #7: Community website. \n\nTranslation are contributed one by one.\n
  • #8: If there is no translation, do you show untranslated content?\n\nIn some cases yes: for example multilingual audiences (Node One). Comments that have value even if they're in a different language.\n
  • #9: In some cases, language = location. You want to show particular content/settings based on language.\n\nIn these cases, switching the language of the site might also trigger location-based changes. For example, the default timezone might be different. Legal messages, etc. might also change.\n\nFor Travelocity website, the default language was associated with a domain. But for other websites, you would want to only offer that language.\n
  • #10: What language do the translators speak?\n\nAre translators entering content through the UI, or \nare translations done separated and put into Drupal via a script or separate administrator?\n
  • #11: Today, we're going to talk about multilingual sites with translation. But \n\nLayers of multilingual websites:\n\nLocale:\nInstall languages\nTranslate user interface strings\nFlag nodes with a language\nLanguage switcher\nLots more (date handling, RTL, user's preferred language, field titles)\nLanguage negotiation\n\nContent Translation:\nAssociates a set of node translations\nProvides a 'translate' tab for nodes\nFlags translations that are out-of-date\n\ni18n:\nVariables (site title, slogan)\nBlocks, Menus, Taxonomy Terms\nContent\nField Data (help text, default text)\nPaths\nExtra Features for Node Translation\nContent Selection\n\n\nAnd later on in this presentation, I'll also talk about the Entity Translation module.\n
  • #12: \n
  • #13: \n
  • #14: User Interface Strings\n(Text strings in code) \nGreen link: see top Brasil hotels\n\nUser-entered settings\nSite Slogan: (Variable)\n\nContent:\nThe article text, image, title\n\nSettings entered by Users\n(i.e. settings like the block titles)\n\nContent\nNodes, Entities\n\nTextgroups\nMenu Items\n
  • #15: \n
  • #16: \n
  • #17: \n
  • #18: \n
  • #19: \n
  • #20: \n
  • #21: \n
  • #22: Installing + Configuring Language \n\nLanguage configuration page, under 'Regional and language'.\n\nChoosing a default language is really important. Changing this can cause problems.\n\nWhat language fallback will be used (what language will untranslated content appear in?) \n
  • #23: Installing + Configuring Language \n\nLanguage configuration page, under 'Regional and language'.\n\nChoosing a default language is really important. Changing this can cause problems.\n\nWhat language fallback will be used (what language will untranslated content appear in?) \n
  • #24: Language negotiation is provided by the locale module to detect which language the site should display.\n\nSo for a community site like the one we're talking about, you might choose:\n\nURL\nUser\nBrowser\n\nURL first, means the user can always override the language by using, say, the language switcher.\n\nSecond, User. So when the user logs in, the user's language will be selected.\n\nThird, browser. So if the user arrives at the homepage for the first time, doesn't have an account or a selected language, the browser lang will be chosen.\n
  • #25: \n
  • #26: \n
  • #27: Frontpage might need to be a multilingual variable, if it points to a node in a particular language.\n
  • #28: Multilingual variables are provided by the i18n module. \n\nVariables are Drupal settings in the systems table.\n\nAll multilingual sites will have some multilingual variables, but only a selection of them.\n\nYou can see that this config page provides very granular control for which are enabled.\n\nAfter you've selected which variables need to be multilingual, you need to go and add the variables for each language through the UI.\n
  • #29: All multilingual sites will have some multilingual variables, but only a selection of them.\n\nYou can see that this config page provides very granular control for which are enabled.\n\nAfter you've selected which variables need to be multilingual, you need to go and add the variables for each language through the UI.\n
  • #30: Example: The name of the site should always be translated (I think). So a simple website like Evolving Web's brochure site would have just a couple multilingual variables (title, slogan, frontpage is a common one).\n\nFor our use case: Our German contributors and members are generally located in Europe,  so we can set the default time zone for these users to be CET (Central European Time).\n\nWe should turn on translation for the 'Time zone for new users' variable.\n\nUseful for some sites, not others.\n
  • #31: \n
  • #32: The translate interface UI allows you to translate text groups, built-in text strings.\n
  • #33: The translate interface UI allows you to translate text groups, built-in text strings.\n
  • #34: The translate interface UI allows you to translate text groups, built-in text strings.\n
  • #35: \n
  • #36: \n
  • #37: \n
  • #38: In Drupal 7, there are two methods of content translation. Translation at the node level is provided by the Content Translation module and translation at the field level is provided by the Entity Translation module. \n
  • #39: You can translate different types of content differently, because the method of translation is selected on a per content type basis.\n
  • #40: \n
  • #41: Targets different audiences\n\nDifferent set of comments\n\nDifferent menu structure (maybe in one language there is a flat menu structure, and in other languages there is a hierarchy)\n
  • #42: In Drupal 7, there are two methods of content translation. Translation at the node level is provided by the Content Translation module and translation at the field level is provided by the Entity Translation module. You can translate different types of content differently, because the method of translation is selected on a per content type basis.\n
  • #43: In Drupal 7, there are two methods of content translation. Translation at the node level is provided by the Content Translation module and translation at the field level is provided by the Entity Translation module. You can translate different types of content differently, because the method of translation is selected on a per content type basis.\n
  • #44: Non-symmetric meus\n
  • #45: For some types of content, this node-per-language model is really hard to work with.\n\nSome types of content have language-independent features that we don't want to duplicate by creating multiple nodes.\n
  • #46: If the content itself should be language independent, and only particular fields should be translated (i.e. description, etc.). \n\nThis is particularly useful when you really only want 1 node (i.e. an event that has to be scheuled and has sign-upd data around it, a node that receives votes, a node that gets put in a particular order). Also useful for content where we have thousands and thousands of nodes\n\nRather than syncing all of this data and storing for each node, just store it once and translate fields as necessary.\n\nNote: Need to deal with title translation separately, since the title is not a field.\n\nNote: Things like 'taxonomy terms' as fields, if you mark them as 'allow users to translate this field', doesn't replace i18n taxonomy translation. Just allows the user to select different terms per language, not to localize terms.\n\nProducts\nIssues\nGroups\n
  • #47: If the content itself should be language independent, and only particular fields should be translated (i.e. description, etc.). \n\nThis is particularly useful when you really only want 1 node (i.e. an event that has to be scheuled and has sign-upd data around it, a node that receives votes, a node that gets put in a particular order). Also useful for content where we have thousands and thousands of nodes\n\nRather than syncing all of this data and storing for each node, just store it once and translate fields as necessary.\n\nNote: Need to deal with title translation separately, since the title is not a field.\n\nNote: Things like 'taxonomy terms' as fields, if you mark them as 'allow users to translate this field', doesn't replace i18n taxonomy translation. Just allows the user to select different terms per language, not to localize terms.\n\nProducts\nIssues\nGroups\n
  • #48: Language Independent:\nDate\nSign-ups (Flags)\nEvent Type (Taxonomy)\n\nTranslated:\nTitle\nBody\n
  • #49: Language Independent:\nDate\nSign-ups (Flags)\nEvent Type (Taxonomy)\n\nTranslated:\nTitle\nBody\n
  • #50: If the content itself should be language neutral, and only particular fields should be translated (i.e. description, etc.). \n\nThis is particularly useful when you really only want 1 node (i.e. an event that has to be scheuled and has sign-upd data around it, a node that receives votes, a node that gets put in a particular order). Also useful for content where we have thousands and thousands of nodes\n\nRather than syncing all of this data and storing for each node, just store it once and translate fields as necessary.\n\nNote: Need to deal with title translation separately, since the title is not a field.\n\nNote: Things like 'taxonomy terms' as fields, if you mark them as 'allow users to translate this field', doesn't replace i18n taxonomy translation. Just allows the user to select different terms per language, not to localize terms.\n
  • #51: If the content itself should be language neutral, and only particular fields should be translated (i.e. description, etc.). \n\nThis is particularly useful when you really only want 1 node (i.e. an event that has to be scheuled and has sign-upd data around it, a node that receives votes, a node that gets put in a particular order). Also useful for content where we have thousands and thousands of nodes\n\nRather than syncing all of this data and storing for each node, just store it once and translate fields as necessary.\n\nNote: Need to deal with title translation separately, since the title is not a field.\n\nNote: Things like 'taxonomy terms' as fields, if you mark them as 'allow users to translate this field', doesn't replace i18n taxonomy translation. Just allows the user to select different terms per language, not to localize terms.\n
  • #52: If the content itself should be language neutral, and only particular fields should be translated (i.e. description, etc.). \n\nThis is particularly useful when you really only want 1 node (i.e. an event that has to be scheuled and has sign-upd data around it, a node that receives votes, a node that gets put in a particular order). Also useful for content where we have thousands and thousands of nodes\n\nRather than syncing all of this data and storing for each node, just store it once and translate fields as necessary.\n\nNote: Need to deal with title translation separately, since the title is not a field.\n\nNote: Things like 'taxonomy terms' as fields, if you mark them as 'allow users to translate this field', doesn't replace i18n taxonomy translation. Just allows the user to select different terms per language, not to localize terms.\n
  • #53: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #54: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #55: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #56: Unchecking this setting allows you to display comments in all languages for nodes with entity translation.\n
  • #57: Unchecking this setting allows you to display comments in all languages for nodes with entity translation.\n
  • #58: You can configure which of these entities has entity translation enabled.\n
  • #59: You can configure which of these entities has entity translation enabled.\n
  • #60: For example, if you make users translatable entities, you can translate them via a translate tab.\n
  • #61: Synchronize Translations is a submodule of the Internationalization module (i18n). This module allows you to synchronize certain fields across languages when translating nodes with the Content Translation module. While it provides some of the same results, it works very differently from the entity translation module. A node is still created in each language, but when a synchronized field is updated in one language, all the node translations are updated to use the same field.\n\nWhen using Drupal 6, this provided a good way to deal with situations when node elements needed to be the same across languages (i.e. author, taxonomy terms, etc). However, it doesn't resolve problems like synchronizing the status of a node (when using the Flag module) or synchronizing a list of signups for an event content type.\nFor Drupal 7, Synchronize translations is useful for situations when you want to maintain two separate nodes (for example, because you want the nodes to appear in different places in the menu), but you still want to synchronize certain fields.\n
  • #62: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #63: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #64: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #65: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #66: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #67: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n\nUses textgroups\n
  • #68: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #69: \n
  • #70: Still doeesn't work with the contxt module, since that alters how blocks are rendered.\n\nImproved UI in Drupal 7!\n\nSee Save + Translate, takes you directly to a page where you can add translations of the block.\n\nBlock translation UI in the block management interface, rather than interface translation UI.\n\nMultilingual settings on a per block basis, so you can be granular about how blocks are configured.\n
  • #71: Still doeesn't work with the contxt module, since that alters how blocks are rendered.\n\nImproved UI in Drupal 7!\n\nSee Save + Translate, takes you directly to a page where you can add translations of the block.\n\nBlock translation UI in the block management interface, rather than interface translation UI.\n\nMultilingual settings on a per block basis, so you can be granular about how blocks are configured.\n
  • #72: If a block needs to appear for some languages of the site and not others, you can make the block  'Make this block translatable', and then flag it to appear only in the relevant languages.\n\nFor example, the first block on this page 'Aidez-nous a traduire le site web' is targeted at French and German users, so I've only selected those languages for that block.\n\nThe second block only targets French users, so I didn't make it translatable, and set it to only display in French. \n\nThe final block appears in all languages and is translatable.\n
  • #73: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #74: \n
  • #75: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n\nUses textgroups\n
  • #76: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n\nUses textgroups\n
  • #77: Only fields can be translated using Entity Translation. Unfortunately, not everything on a node is a field.\n\nFor example, the title is node field.\n\nLuckily, for field, there's a contributed module called 'Title' that allows you to convert the title to a field.\n\nFor other elements, like menu items, author. These are still not fields. This is why you would want to use content translation for nodes for which these need to be different per language.\n
  • #78: \n
  • #79: \n
  • #80: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n\nUses textgroups\n
  • #81: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n\nUses textgroups\n
  • #82: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n
  • #83: \n
  • #84: \n
  • #85: \n
  • #86: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n
  • #87: New UI for translation of certain text groups (for blocks, menus, taxonomy)\n
  • #88: The Drupal 8 Multilingual Initiative, let by Gábor Hojtsy, aims to move the features provided by the Entity Translation module into core. Work is underway to improve other aspects of Drupal's language capabilities for Drupal 8.\nMeanwhile with Drupal 7, we have more options for translating content than ever before. The Entity Translation module provides an elegant solution for translation on the field level, while Content Translation still gives us the option of translating nodes. While all these options might be confusing, they allow us to build more sophisticated multilingual sites in Drupal than ever before.\n
  • #89: If you're interested in learning more about multilingual site building, I encourage you to vote for this session that Florian Loretan and I have put together for DrupalCon Denver.\nEven if you're not attending the camp, it'd be great to have a session on this at the North American conference so we can get more organizations using Drupal's multilingual features and seeing Drupal as a great framework for creating multilingual site infrastructure.\n
  • #90: \n