multilingual solutions florian loretan
TRANSCRIPT
Multilingual solutions
Florian LoretanCo-FounderWunderkraut
Wednesday, June 13, 2012
Sponsors
Генеральный спонсор
Серебряный спонсор Серебряный спонсор
Бронзовый спонсор Бронзовый спонсор
Организатор
Suzanne Kennedy
Co-founder
Evolving Web in Montreal
evolvingweb.ca
@suzanne_kennedy
Wednesday, June 13, 2012
Florian Loretan
Co-founder
Wunderkraut in Munich
wunderkraut.com
@floretan
Before you start• What kind of site are you building?• Planning your multilingual site
Building a Multilingual Site• Getting Set Up• Translating the UI• Translating Content• Translating Everything Else
What’s Next?• Challenges in Drupal 7 Multilingual• Learn More & Contribute
Wednesday, June 13, 2012
What Kind of MultilingualSite are You Building?
Wednesday, June 13, 2012
Foreign Language Site
Wednesday, June 13, 2012
Multilingual Site
Wednesday, June 13, 2012
Multilingual Site + Translation
Wednesday, June 13, 2012
Questions to AskBefore You Start
Wednesday, June 13, 2012
1. What Language SupportAre You Providing?
Wednesday, June 13, 2012
Souce: http://www.flickr.com/photos/caribb/89857146/Wednesday, June 13, 2012
Source: http://www.lilith-ezine.com
Fully Symmetric ExperienceEnglish
Wednesday, June 13, 2012
Polish
Asymmetric ExperienceFrench
Wednesday, June 13, 2012
English
Mixed Language ExperienceFrench
Wednesday, June 13, 2012
English
2. Do You Want to ShowUntranslated Content?
Wednesday, June 13, 2012
Showing Untranslated Content
Wednesday, June 13, 2012
Hiding Untranslated ContentFrench
Wednesday, June 13, 2012
English
3. Are language and regionrelated?
Wednesday, June 13, 2012
Language = Region
Wednesday, June 13, 2012
4. Who’s Doing theTranslation?
Wednesday, June 13, 2012
Translation Workflow
Wednesday, June 13, 2012
Translating the Admin UI
Wednesday, June 13, 2012
5. Default Language of theSite?
Wednesday, June 13, 2012
Default Language
Site User
Wednesday, June 13, 2012
Content Language Fallback
Default Language
Site Builder
Wednesday, June 13, 2012
Language used User-entered Strings
6. How Will Language Affectthe Design?
Wednesday, June 13, 2012
Space Requirements
English
French
Wednesday, June 13, 2012
Right-to-Left Languages
Wednesday, June 13, 2012
7. What Type of Text areYou Translating?
Wednesday, June 13, 2012
Different Types of Text
Wednesday, June 13, 2012
UI: Variables
Wednesday, June 13, 2012
UI: Text in Code
Wednesday, June 13, 2012
UI: User-Entered Strings
Wednesday, June 13, 2012
Content: Nodes
Wednesday, June 13, 2012
Content: Other Entities
Wednesday, June 13, 2012
Text Groups
Wednesday, June 13, 2012
Text Groups
Wednesday, June 13, 2012
Translation Checklist:UI Text
Variables
Text in CodeUser-Entered Strings
ContentNodes
Entities (comments, users, terms...)
Text Groups (blocks, paths, menu items...)
Wednesday, June 13, 2012
Building YourMultilingual Website
Wednesday, June 13, 2012
STEP 1:Setting up Languages
Wednesday, June 13, 2012
Installing a LanguageConfiguration > Regional & language > Languages
Wednesday, June 13, 2012
Configuring a Language
Wednesday, June 13, 2012
Choosing a DefaultConfiguration > Regional & language > Languages
Wednesday, June 13, 2012
Detection and SelectionConfiguration > Regional & language > Languages > Detection and Selection
Wednesday, June 13, 2012
Detection and Selectionexample.com/fr/user
Wednesday, June 13, 2012
Detection and Selectionexample.com/user
Wednesday, June 13, 2012
STEP 2:Translating UI Text
Wednesday, June 13, 2012
Translating Variables
Wednesday, June 13, 2012
Translating VariablesConfiguration > Regional & language > Multilingual Settings > Variables
Wednesday, June 13, 2012
Translating Variables
Wednesday, June 13, 2012
Translating Variables
Wednesday, June 13, 2012
Translating Text from Code
Wednesday, June 13, 2012
Translating Text from CodeConfiguration > Regional & language > Translation Interface > Translate
Wednesday, June 13, 2012
Translating Text from Code
Wednesday, June 13, 2012
User-Entered Strings
Wednesday, June 13, 2012
User-Entered Strings
Wednesday, June 13, 2012
User-Entered StringsConfiguration > Regional & language > Translation Interface > Translate
Wednesday, June 13, 2012
User-Entered Strings
Wednesday, June 13, 2012
STEP 3:Translating Content
Wednesday, June 13, 2012
Translating Content
Wednesday, June 13, 2012
Settings per Content Type
Wednesday, June 13, 2012
Node Translation
• Content Translation module (core)
• New node for each translation
• Nodes are mapped together
Wednesday, June 13, 2012
Translating a Node
Wednesday, June 13, 2012
Field-Level Translation
• Entity Translation module (contrib)
• Translation of fields instead of nodes
• Fields are translatable in core
Wednesday, June 13, 2012
$node->field_body['en'][0]['value']
Wednesday, June 13, 2012
Semantic structure
Wednesday, June 13, 2012
Setting up Field Translation
Wednesday, June 13, 2012
works fornodesusers
taxonomy termscomments
...Wednesday, June 13, 2012
• •
• •••
TranslatabilityCan be translated Can’t be translated
•All fields •Author
Additionalper-translationmetadata
Wednesday, June 13, 2012
•
Promoted
Creation date
Modification date
Title...
Title Module$node->title$term->name$term->description
$node->field_title$term->field_name$term->field_description
Wednesday, June 13, 2012
Use field_title inviews, not title
Wednesday, June 13, 2012
Language fallback
Wednesday, June 13, 2012
Combination with i18n
•Enable •Disable
••
i18n_menu
i18n_fields••
i18n_select
i18n_taxonomy
Wednesday, June 13, 2012
:-)
Wednesday, June 13, 2012
:-(
integration with other modulesneeds work
Wednesday, June 13, 2012
:-(
revisioning
Wednesday, June 13, 2012
:-(
menu items needs to betranslated separately
Wednesday, June 13, 2012
:-)
for many use cases,it’s still a lot better than the standard
content translation
Wednesday, June 13, 2012
Adding a Translation
Wednesday, June 13, 2012
Comments per Language
Wednesday, June 13, 2012
STEP 4:Translating Everything Else
Wednesday, June 13, 2012
Other Elements to Translate
• Blocks
• Field settings
• Menu items
• Taxonomy terms
• Paths
Wednesday, June 13, 2012
Translating Field Settings
Wednesday, June 13, 2012
Translating Field Settings
• Field Translation module (i18n)
• Translate field settings
• Only core field settings
Wednesday, June 13, 2012
Translating Field Settings
Wednesday, June 13, 2012
Translating Field Settings
Wednesday, June 13, 2012
Translating Menus
Wednesday, June 13, 2012
Translating Menu Items
• Menu Translation module (i18n)
• Menu per language OR
• Menu items per language
Wednesday, June 13, 2012
Translating Menu Items
Wednesday, June 13, 2012
Translating Menu ItemsMenu Link to a Node
Wednesday, June 13, 2012
Translating Menu ItemsMenu Link to a Single-Language Page
i.e. Events View
Wednesday, June 13, 2012
Translating Menu Items
Menu Link to a Generic Pagei.e. Home Page
Wednesday, June 13, 2012
Translating Menu Items
Wednesday, June 13, 2012
Translating Menu Items
Wednesday, June 13, 2012
STEP 5:Extending Multilingual
Functionality
Wednesday, June 13, 2012
Localization Updatelocalize.drupal.org
Wednesday, June 13, 2012
Localization Client
Wednesday, June 13, 2012
Drupal 8
• Clean Up• Entity translation
• Symphony localization component
Wednesday, June 13, 2012
Sponsors
Генеральный спонсор
Серебряный спонсор Серебряный спонсор
Бронзовый спонсор Бронзовый спонсор
Организатор