multilingual solutions florian loretan

100
Multilingual solutions Florian Loretan Co-Founder Wunderkraut [email protected] dnesday, June 13, 2012

Upload: drupalconf

Post on 11-Apr-2017

811 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Multilingual solutions florian loretan

Multilingual solutions

Florian LoretanCo-FounderWunderkraut

[email protected]

Wednesday, June 13, 2012

Page 2: Multilingual solutions florian loretan

Sponsors

Генеральный спонсор

Серебряный спонсор Серебряный спонсор

Бронзовый спонсор Бронзовый спонсор

Организатор

Page 3: Multilingual solutions florian loretan

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

Page 4: Multilingual solutions florian loretan

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

Page 5: Multilingual solutions florian loretan

What Kind of MultilingualSite are You Building?

Wednesday, June 13, 2012

Page 6: Multilingual solutions florian loretan

Foreign Language Site

Wednesday, June 13, 2012

Page 7: Multilingual solutions florian loretan

Multilingual Site

Wednesday, June 13, 2012

Page 8: Multilingual solutions florian loretan

Multilingual Site + Translation

Wednesday, June 13, 2012

Page 9: Multilingual solutions florian loretan

Questions to AskBefore You Start

Wednesday, June 13, 2012

Page 10: Multilingual solutions florian loretan

1. What Language SupportAre You Providing?

Wednesday, June 13, 2012

Page 11: Multilingual solutions florian loretan

Souce: http://www.flickr.com/photos/caribb/89857146/Wednesday, June 13, 2012

Source: http://www.lilith-ezine.com

Page 12: Multilingual solutions florian loretan

Fully Symmetric ExperienceEnglish

Wednesday, June 13, 2012

Polish

Page 13: Multilingual solutions florian loretan

Asymmetric ExperienceFrench

Wednesday, June 13, 2012

English

Page 14: Multilingual solutions florian loretan

Mixed Language ExperienceFrench

Wednesday, June 13, 2012

English

Page 15: Multilingual solutions florian loretan

2. Do You Want to ShowUntranslated Content?

Wednesday, June 13, 2012

Page 16: Multilingual solutions florian loretan

Showing Untranslated Content

Wednesday, June 13, 2012

Page 17: Multilingual solutions florian loretan

Hiding Untranslated ContentFrench

Wednesday, June 13, 2012

English

Page 18: Multilingual solutions florian loretan

3. Are language and regionrelated?

Wednesday, June 13, 2012

Page 19: Multilingual solutions florian loretan

Language = Region

Wednesday, June 13, 2012

Page 20: Multilingual solutions florian loretan

4. Who’s Doing theTranslation?

Wednesday, June 13, 2012

Page 21: Multilingual solutions florian loretan

Translation Workflow

Wednesday, June 13, 2012

Page 22: Multilingual solutions florian loretan

Translating the Admin UI

Wednesday, June 13, 2012

Page 23: Multilingual solutions florian loretan

5. Default Language of theSite?

Wednesday, June 13, 2012

Page 24: Multilingual solutions florian loretan

Default Language

Site User

Wednesday, June 13, 2012

Content Language Fallback

Page 25: Multilingual solutions florian loretan

Default Language

Site Builder

Wednesday, June 13, 2012

Language used User-entered Strings

Page 26: Multilingual solutions florian loretan

6. How Will Language Affectthe Design?

Wednesday, June 13, 2012

Page 27: Multilingual solutions florian loretan

Space Requirements

English

French

Wednesday, June 13, 2012

Page 28: Multilingual solutions florian loretan

Right-to-Left Languages

Wednesday, June 13, 2012

Page 29: Multilingual solutions florian loretan

7. What Type of Text areYou Translating?

Wednesday, June 13, 2012

Page 30: Multilingual solutions florian loretan

Different Types of Text

Wednesday, June 13, 2012

Page 31: Multilingual solutions florian loretan

UI: Variables

Wednesday, June 13, 2012

Page 32: Multilingual solutions florian loretan

UI: Text in Code

Wednesday, June 13, 2012

Page 33: Multilingual solutions florian loretan

UI: User-Entered Strings

Wednesday, June 13, 2012

Page 34: Multilingual solutions florian loretan

Content: Nodes

Wednesday, June 13, 2012

Page 35: Multilingual solutions florian loretan

Content: Other Entities

Wednesday, June 13, 2012

Page 36: Multilingual solutions florian loretan

Text Groups

Wednesday, June 13, 2012

Page 37: Multilingual solutions florian loretan

Text Groups

Wednesday, June 13, 2012

Page 38: Multilingual solutions florian loretan

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

Page 39: Multilingual solutions florian loretan

Building YourMultilingual Website

Wednesday, June 13, 2012

Page 40: Multilingual solutions florian loretan

STEP 1:Setting up Languages

Wednesday, June 13, 2012

Page 41: Multilingual solutions florian loretan

Installing a LanguageConfiguration > Regional & language > Languages

Wednesday, June 13, 2012

Page 42: Multilingual solutions florian loretan

Configuring a Language

Wednesday, June 13, 2012

Page 43: Multilingual solutions florian loretan

Choosing a DefaultConfiguration > Regional & language > Languages

Wednesday, June 13, 2012

Page 44: Multilingual solutions florian loretan

Detection and SelectionConfiguration > Regional & language > Languages > Detection and Selection

Wednesday, June 13, 2012

Page 45: Multilingual solutions florian loretan

Detection and Selectionexample.com/fr/user

Wednesday, June 13, 2012

Page 46: Multilingual solutions florian loretan

Detection and Selectionexample.com/user

Wednesday, June 13, 2012

Page 47: Multilingual solutions florian loretan

STEP 2:Translating UI Text

Wednesday, June 13, 2012

Page 48: Multilingual solutions florian loretan

Translating Variables

Wednesday, June 13, 2012

Page 49: Multilingual solutions florian loretan

Translating VariablesConfiguration > Regional & language > Multilingual Settings > Variables

Wednesday, June 13, 2012

Page 50: Multilingual solutions florian loretan

Translating Variables

Wednesday, June 13, 2012

Page 51: Multilingual solutions florian loretan

Translating Variables

Wednesday, June 13, 2012

Page 52: Multilingual solutions florian loretan

Translating Text from Code

Wednesday, June 13, 2012

Page 53: Multilingual solutions florian loretan

Translating Text from CodeConfiguration > Regional & language > Translation Interface > Translate

Wednesday, June 13, 2012

Page 54: Multilingual solutions florian loretan

Translating Text from Code

Wednesday, June 13, 2012

Page 55: Multilingual solutions florian loretan

User-Entered Strings

Wednesday, June 13, 2012

Page 56: Multilingual solutions florian loretan

User-Entered Strings

Wednesday, June 13, 2012

Page 57: Multilingual solutions florian loretan

User-Entered StringsConfiguration > Regional & language > Translation Interface > Translate

Wednesday, June 13, 2012

Page 58: Multilingual solutions florian loretan

User-Entered Strings

Wednesday, June 13, 2012

Page 59: Multilingual solutions florian loretan

STEP 3:Translating Content

Wednesday, June 13, 2012

Page 60: Multilingual solutions florian loretan

Translating Content

Wednesday, June 13, 2012

Page 61: Multilingual solutions florian loretan

Settings per Content Type

Wednesday, June 13, 2012

Page 62: Multilingual solutions florian loretan

Node Translation

• Content Translation module (core)

• New node for each translation

• Nodes are mapped together

Wednesday, June 13, 2012

Page 63: Multilingual solutions florian loretan

Translating a Node

Wednesday, June 13, 2012

Page 64: Multilingual solutions florian loretan

Field-Level Translation

• Entity Translation module (contrib)

• Translation of fields instead of nodes

• Fields are translatable in core

Wednesday, June 13, 2012

Page 65: Multilingual solutions florian loretan

$node->field_body['en'][0]['value']

Wednesday, June 13, 2012

Page 66: Multilingual solutions florian loretan

Semantic structure

Wednesday, June 13, 2012

Page 67: Multilingual solutions florian loretan

Setting up Field Translation

Wednesday, June 13, 2012

Page 68: Multilingual solutions florian loretan

works fornodesusers

taxonomy termscomments

...Wednesday, June 13, 2012

Page 69: Multilingual solutions florian loretan

• •

• •••

TranslatabilityCan be translated Can’t be translated

•All fields •Author

Additionalper-translationmetadata

Wednesday, June 13, 2012

Promoted

Creation date

Modification date

Title...

Page 70: Multilingual solutions florian loretan

Title Module$node->title$term->name$term->description

$node->field_title$term->field_name$term->field_description

Wednesday, June 13, 2012

Page 71: Multilingual solutions florian loretan

Use field_title inviews, not title

Wednesday, June 13, 2012

Page 72: Multilingual solutions florian loretan

Language fallback

Wednesday, June 13, 2012

Page 73: Multilingual solutions florian loretan

Combination with i18n

•Enable •Disable

••

i18n_menu

i18n_fields••

i18n_select

i18n_taxonomy

Wednesday, June 13, 2012

Page 74: Multilingual solutions florian loretan

:-)

Wednesday, June 13, 2012

Page 75: Multilingual solutions florian loretan

:-(

integration with other modulesneeds work

Wednesday, June 13, 2012

Page 76: Multilingual solutions florian loretan

:-(

revisioning

Wednesday, June 13, 2012

Page 77: Multilingual solutions florian loretan

:-(

menu items needs to betranslated separately

Wednesday, June 13, 2012

Page 78: Multilingual solutions florian loretan

:-)

for many use cases,it’s still a lot better than the standard

content translation

Wednesday, June 13, 2012

Page 79: Multilingual solutions florian loretan

Adding a Translation

Wednesday, June 13, 2012

Page 80: Multilingual solutions florian loretan

Comments per Language

Wednesday, June 13, 2012

Page 81: Multilingual solutions florian loretan

STEP 4:Translating Everything Else

Wednesday, June 13, 2012

Page 82: Multilingual solutions florian loretan

Other Elements to Translate

• Blocks

• Field settings

• Menu items

• Taxonomy terms

• Paths

Wednesday, June 13, 2012

Page 83: Multilingual solutions florian loretan

Translating Field Settings

Wednesday, June 13, 2012

Page 84: Multilingual solutions florian loretan

Translating Field Settings

• Field Translation module (i18n)

• Translate field settings

• Only core field settings

Wednesday, June 13, 2012

Page 85: Multilingual solutions florian loretan

Translating Field Settings

Wednesday, June 13, 2012

Page 86: Multilingual solutions florian loretan

Translating Field Settings

Wednesday, June 13, 2012

Page 87: Multilingual solutions florian loretan

Translating Menus

Wednesday, June 13, 2012

Page 88: Multilingual solutions florian loretan

Translating Menu Items

• Menu Translation module (i18n)

• Menu per language OR

• Menu items per language

Wednesday, June 13, 2012

Page 89: Multilingual solutions florian loretan

Translating Menu Items

Wednesday, June 13, 2012

Page 90: Multilingual solutions florian loretan

Translating Menu ItemsMenu Link to a Node

Wednesday, June 13, 2012

Page 91: Multilingual solutions florian loretan

Translating Menu ItemsMenu Link to a Single-Language Page

i.e. Events View

Wednesday, June 13, 2012

Page 92: Multilingual solutions florian loretan

Translating Menu Items

Menu Link to a Generic Pagei.e. Home Page

Wednesday, June 13, 2012

Page 93: Multilingual solutions florian loretan

Translating Menu Items

Wednesday, June 13, 2012

Page 94: Multilingual solutions florian loretan

Translating Menu Items

Wednesday, June 13, 2012

Page 95: Multilingual solutions florian loretan

STEP 5:Extending Multilingual

Functionality

Wednesday, June 13, 2012

Page 96: Multilingual solutions florian loretan

Localization Updatelocalize.drupal.org

Wednesday, June 13, 2012

Page 97: Multilingual solutions florian loretan

Localization Client

Wednesday, June 13, 2012

Page 98: Multilingual solutions florian loretan

Drupal 8

• Clean Up• Entity translation

• Symphony localization component

Wednesday, June 13, 2012

Page 99: Multilingual solutions florian loretan

Спасибо за внимание

Florian LorétanCo-FounderWunderkraut

[email protected]

Wednesday, June 13, 2012

Page 100: Multilingual solutions florian loretan

Sponsors

Генеральный спонсор

Серебряный спонсор Серебряный спонсор

Бронзовый спонсор Бронзовый спонсор

Организатор