Multilingual solutions florian loretan

Post on 11-Apr-2017

810 views 0 download

Transcript of Multilingual solutions florian loretan

Multilingual solutions

Florian LoretanCo-FounderWunderkraut

florian.loretan@wunderkraut.com

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

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

Florian LorétanCo-FounderWunderkraut

florian.loretan@wunderkraut.com

Wednesday, June 13, 2012

Sponsors

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

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

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

Организатор