Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

Preview:

Citation preview

Drupal 7+ i18n module

http://reyero.net

Brussels Dev Days - February, 2011

Jose A. Reyero

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Drupal 5

Language Management

Language Negotiation

Localization

Configurable Strings

Content Taxonomy

Variables

Path aliases

Menu items Blocks

Translations E-mails

Profiles

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Drupal 6

Language Management

Language Negotiation

Localization

Configurable Strings

Content Taxonomy

Variables

Path aliases

Menu items Blocks

Translations E-mails

Profiles

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Drupal 7

Language Management

Language Negotiation

Localization

Configurable Strings

Content Taxonomy

Variables

Path aliases

Menu items Blocks

Translations E-mails

Profiles

Fields

Entities

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Drupal 7

Language Management

Language Negotiation

Localization

Configurable Strings

Variables

Path aliases

Menu items Blocks

Translations E-mails

Fields Entities

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

i18n for Drupal 7

● Use new core features – Entities, Fields– New DB API (Query alter)– Page rendering

● Work with other modules: Translation● Simplify. Reuse.

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

i18n for Drupal 7

This is an API module,

not a Multilingual Solution.

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

API module / Solution

● Building blocks ● Modular features● No assumptions!

● Site specific.● Worflow● Who translates

what, how?

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Rosetta Stone, 193 B.C

3 languages, 100% translated

Adrian Rossouw: “Drupal Teddy Bear”, http://developmentseed.org

Modules and APIs

Adrian Rossouw: “Drupal Teddy Bear”, http://developmentseed.org

to build Solutions.

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Solutions

● Translation Management● Custom, built with i18n + …● Multilingual install profile?

http://drupal.org/project/drupali18n

The translation puzzle

Or how to build a multilingual solution

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Toolset

Variable translationString translation

Translation setContent Selection

Field translation

WorkflowUI

i18n

translation

other

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Multilingualmenus?

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Menu items

● Added language field● Visibility depends on language● User defined items are translated

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Multilingual Blocks

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Blocks

● Set language to blocks● Per language visibility● Translatable blocks

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Multilingual Taxonomy?

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Taxonomy

● Per vocabulary options:– Multilingual– Translatable

● Terms can be:– Localizable (strings)– Multilingual (translation set)

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

User defined Strings

Multilingual Scrabble http://flickr.com/photos/urbanmkr/354776635/

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Translate interface

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

String translation

● Using same UI as Locale● Textgroups (import, export)● Localization server ?

i18n_string($name, $string, $options)– $name = 'menu:item:1:title'

– $name = 'taxonomy:term:1:name'

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

String translation (Security)

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Synchronization

● Configurable per content type● Using Fields

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Language selection

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Variable translation

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Variable modulehttp://drupal.org/project/variable

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

User profiles

Hey, profiles are Fields now!

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Views?

http://drupal.org/project/i18n_views

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

#1

i18n is an API module,

not a Multilingual Solution.

http://drupal.org/project/i18n

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Module developers:

Please declare your variables!

http://drupal.org/project/variable

#2

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Thank you

Thank you Danku Merci дякую Arigato

Takk Gratia tibi ago Graciñas Jag tackar

Hvala आभारी हुँ Dankon Tänan teid

Eskerrik asko Juspajaraña благодаря

Gracias ขอบคุณ Danke Obrigado Gràcies

Jose A Reyero - Drupal Dev Days – Brussels – February 2011 http://reyero.net

Jose A. Reyero

http://reyero.net

@josereyero

Recommended