38
Drupal 7+ i18n module http://reyero.net Brussels Dev Days - February, 2011 Jose A. Reyero

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

Embed Size (px)

Citation preview

Page 1: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

Drupal 7+ i18n module

http://reyero.net

Brussels Dev Days - February, 2011

Jose A. Reyero

Page 2: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero
Page 3: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose 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

Page 4: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 5: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 6: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

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

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.

Page 8: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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.

Page 9: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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?

Page 10: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Rosetta Stone, 193 B.C

3 languages, 100% translated

Page 11: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Modules and APIs

Page 12: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

to build Solutions.

Page 13: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 14: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

The translation puzzle

Or how to build a multilingual solution

Page 15: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 16: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Multilingualmenus?

Page 17: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 18: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Multilingual Blocks

Page 19: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Blocks

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

Page 20: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Multilingual Taxonomy?

Page 21: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 22: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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)

Page 23: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

User defined Strings

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

Page 24: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Translate interface

Page 25: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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'

Page 26: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

String translation (Security)

Page 27: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Synchronization

● Configurable per content type● Using Fields

Page 28: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 29: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Language selection

Page 30: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Variable translation

Page 31: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

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

Page 32: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

User profiles

Hey, profiles are Fields now!

Page 33: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Views?

http://drupal.org/project/i18n_views

Page 34: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero
Page 35: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 36: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Module developers:

Please declare your variables!

http://drupal.org/project/variable

#2

Page 37: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Page 38: Brussels Drupal Dev Days - Internationalization for Drupal 7 - Jose Reyero

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

Jose A. Reyero

http://reyero.net

@josereyero