42
Gestion Gestion multilingue et multilingue et multi-pays multi-pays dans dans Par Par @mtopolov @mtopolov , , CTO de CTO de @adyax @adyax

Gestion multi-pays & multilingue avec Drupal

  • Upload
    adyax

  • View
    1.948

  • Download
    3

Embed Size (px)

DESCRIPTION

La création d'un site multilingue ne se limite pas avec Drupal à l'installation du module i18n. Il faut prendre en compte de nombreux paramètres comme : la détection de la langue, la lisibilité des polices de caractères, la détection de la langue, gestion des langues exotiques, redirection, workflow de traduction etc... De la même manière, la gestion de de systèmes multi-pays

Citation preview

Gestion multilingue Gestion multilingue et multi-payset multi-pays

dansdans

Par Par @mtopolov@mtopolov, , CTO de CTO de @adyax@adyax

100100 Experts Drupal, Experts Drupal, Numéro 1Numéro 1 sur Drupal en France sur Drupal en France

Vous avez dit multilingue ?Vous avez dit multilingue ?

contenucontenu

contenant contenant (interface)(interface)

Contenu symétrique ou Contenu symétrique ou asymétrique ou les deux ?asymétrique ou les deux ?

Qui traduit et comment ?Qui traduit et comment ?BO Drupal ?BO Drupal ?

.PO ?.PO ?Excel ?Excel ?

Comment on switch de Comment on switch de langue ?langue ?

3 solutions : 3 solutions :

domaines (monsite.es)domaines (monsite.es)domaines (monsite.es)domaines (monsite.es)

Sous-domaines (es.monsite.com)Sous-domaines (es.monsite.com)Sous-domaines (es.monsite.com)Sous-domaines (es.monsite.com)

URL (monsite.com/es/...)URL (monsite.com/es/...)URL (monsite.com/es/...)URL (monsite.com/es/...)

Géolocalisation par IP ?Géolocalisation par IP ?Langue du browser ?Langue du browser ?Préférences user ?Préférences user ?

Problème des langues Problème des langues sémitiquessémitiques

Ok, et Drupal dans tout ça ?Ok, et Drupal dans tout ça ?

i18ni18n

i18n (i18n (http://drupal.org/project/i18nhttp://drupal.org/project/i18n))

Offre une suite de module pour gérer la Offre une suite de module pour gérer la traduction dans Drupal (Taxonomies, traduction dans Drupal (Taxonomies, variables, blocs, icones des langues, variables, blocs, icones des langues, dashboards, ...)dashboards, ...)

Vous y passerez forcement...Vous y passerez forcement...

Entity TranslationEntity Translation

http://drupal.org/project/entity_translationhttp://drupal.org/project/entity_translation

Simplifie la vie des symétriquesSimplifie la vie des symétriques

On garde un seul noeud, theming, views, On garde un seul noeud, theming, views, panels, dashboards, tout devient plus simplepanels, dashboards, tout devient plus simple

i18ni18nEntity Entity TranslatiTranslationon

Ma page Ma page (nid=1, lang = (nid=1, lang =

fr)fr)

Ma page Ma page (nid=1, lang = (nid=1, lang =

fr)fr)

My pageMy page(nid=2, lang = (nid=2, lang =

en)en)

My pageMy page(nid=2, lang = (nid=2, lang =

en)en)

Min sidaMin sida(nid=3, lang = (nid=3, lang =

sw)sw)

Min sidaMin sida(nid=3, lang = (nid=3, lang =

sw)sw)

(nid=1)(nid=1)(fr) Ma Page(fr) Ma Page(en) My Page(en) My Page(sw) Min sida(sw) Min sida

(nid=1)(nid=1)(fr) Ma Page(fr) Ma Page(en) My Page(en) My Page(sw) Min sida(sw) Min sida

Attention !Attention !

Avec entity translation, le workflow de Avec entity translation, le workflow de publication n’est pas simplepublication n’est pas simple

Si vous validez une révision, c’est l’ensemble Si vous validez une révision, c’est l’ensemble des traductions que vous validez...des traductions que vous validez...

Pour vous aiderPour vous aider

PotXPotX ( (http://drupal.org/project/potxhttp://drupal.org/project/potx) : permet ) : permet l’extraction de templates de traduction par l’extraction de templates de traduction par module / thème.module / thème.

l10n Updatel10n Update ( (http://drupal.org/project/l10n_updatehttp://drupal.org/project/l10n_update) : ) : permet de mettre à jour les traductions permet de mettre à jour les traductions disponibles pour votre BOdisponibles pour votre BO

TmgmtTmgmt ( (http://drupal.org/project/tmgmthttp://drupal.org/project/tmgmt) : ) : traduction automatique via services externestraduction automatique via services externes

Switch ?Switch ?

Domains Access (Domains Access (http://drupal.org/project/domainhttp://drupal.org/project/domain))

Ou une installation multi-sites...Ou une installation multi-sites...

RésuméRésumé

Décider comment switcher la langue : Décider comment switcher la langue : Domains ou multi-sitesDomains ou multi-sites

Décider de la symétrie de mon contenuDécider de la symétrie de mon contenu

Utiliser soit i18n soit Entity TranslationUtiliser soit i18n soit Entity Translation

TOUJOURSTOUJOURS entourer de t() et de l() vos entourer de t() et de l() vos chaines et liens dans chaines et liens dans TOUTTOUT votre code votre code

Rappel : rajouter le multilinguisime «plus Rappel : rajouter le multilinguisime «plus tard» est «plus compliqué»tard» est «plus compliqué»

Hey, what did you expect ?Hey, what did you expect ?

Et le multi-pays alors ?Et le multi-pays alors ?

Chaine de validation du Chaine de validation du contenus.contenus.

Quantité de Quantité de contenu contenu

publié peut publié peut varier d’un varier d’un

pays à pays à l’autrel’autre

PerformancePerformance

PersonnalisationPersonnalisation

Cas concretCas concret

Un célèbre Un célèbre parfumeur...parfumeur...

12 langues12 langues

Certains pays sont e-commerce, d’autres nonCertains pays sont e-commerce, d’autres non

Certains pays se partagent les mêmes Certains pays se partagent les mêmes langueslangues

Mais peuvent personnaliser le contenuMais peuvent personnaliser le contenu

Tout doit être validé par la FranceTout doit être validé par la France

Nos choixNos choix

1 instance Drupal, multi-domaines avec 1 instance Drupal, multi-domaines avec DomainsDomains

Format : domaine.com/pays/langue/....Format : domaine.com/pays/langue/....

Sauf pour la chine où on hacké domaine.cnSauf pour la chine où on hacké domaine.cn

On pique l’idée du content display de On pique l’idée du content display de CommerceCommerce

Import en masse par fichiers XLSImport en masse par fichiers XLS

Import / Export .PO pour l’interfaceImport / Export .PO pour l’interface

Gestion des paysGestion des pays

Création du paysCréation du pays

Personnalisation du contenuPersonnalisation du contenu

Workflow au niveau centralWorkflow au niveau central

Workflow au niveau paysWorkflow au niveau pays

PerformancePerformance

Akamai ou autres CDN. Cher, efficace : Akamai ou autres CDN. Cher, efficace : http://drupal.org/project/cdnhttp://drupal.org/project/cdn

YottaaYottaa : bonne solution, peu chère, intégrée : bonne solution, peu chère, intégrée avec Acquia Managed Cloudavec Acquia Managed Cloud

Ferme varnish locale : le plus efficace, Ferme varnish locale : le plus efficace, probablement moins cher, mais difficile de probablement moins cher, mais difficile de maintenirmaintenir

Modules utilesModules utiles

http://drupal.org/prohttp://drupal.org/project/i18nject/i18n

http://drupal.org/prohttp://drupal.org/project/potxject/potx

http://drupal.org/prohttp://drupal.org/project/l10n_updateject/l10n_update

http://drupal.org/prohttp://drupal.org/project/tmgmtject/tmgmt

http://drupal.org/prohttp://drupal.org/project/domainject/domain

http://drupal.org/http://drupal.org/project/project/entity_translationentity_translation

druman.adyax.comdruman.adyax.com

Ces slides seront sur Ces slides seront sur SlideShare (Maxime SlideShare (Maxime

Topolov)Topolov)Suivez nous sur :Suivez nous sur :

@adyax@adyax@mtopolov@mtopolov