Symfony i18n. terminologie internationalization = i18n –Un même contenu traduit en plusieurs langue, éventuellement converti en différents formats localization.

Slides:



Advertisements
Présentations similaires
Ministère de l’Economie, des Finances et de l’Emploi Parcours 3  - « Interface Offre de formation » Story-board Version 0.1 Micropole – Univers.
Advertisements

Copyright France Télécom, tous droits réservés Paris Web Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement.
Principe d identification des internautes Au service du dataWebhouse Philippe Holland :
Approfondissement du langage
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
Personal Home Page / Hypertext Processor (PHP)
Symfony configuration.
Symfony Liens & routing.
Virtools Olivier Lamotte.
Formulaire HTML Introduction. Définition de formulaire.
Quest-ce quun lien ?. Exemple à partir du site du ministère de léducation nationale A la page daccueil, vous y trouvez du texte et … des liens vers dautres.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Cours n°3 Les formulaires
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Le langage ASP Les variables d'environnement HTTP avec Request.
CLUB DES UTILISATEURS SAS DE QUÉBEC
Administration de SharePoint
Serveurs Partagés Oracle
88 Utilisation des arrays, des chaînes et des classes conteneurs.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Templavoila_framework Une révolution Cyril Wolfangel.
28 novembre 2012 Grégory Petit
Type de contenu. © Partouche David / 2007 version 0.1 Colonne de site Une colonne de site permet de définir un champs qui sera exploitable au sein de.
Configuration de Windows Server 2008 Active Directory
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Développement dapplications web Authentification, session.
1. SITE WEB DU SERVICE INFORMATIQUE DU RECTORAT
MySQL Création des sites dynamiques
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
IFT 6800 Atelier en Technologies d’information
JSP (Java Server Pages)
AJAX.
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
Structure et Services « STS » Menu Structures : Divisions
Typo3 sur Bonjourquebec.com Publier un site dynamique en version statique ou presque…
GISIN Tutorials 16 Nov 2010NAISN-GISIN Training Concepts du Modèle de Données GISIN Activer l´Échange de Données des Espèces Envahissantes Catherine Jarnevich,
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
La notion de type revisitée en POO
PHP 5° PARTIE : LES COOKIES
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Annexe 2 entêtes HTTP et cookies. Accéder aux objets requêtes et réponses Ces objets sont disponibles dans les classes clé depuis la méthode awake les.
PostGIS – Modèle géométrique, Spécifications OGC et ISO
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
4-5/2/2009Quattor : Gestion des Utilisateurs - G. Philippon/M. Jouvin4-5/2/2009Quattor : Gestion des Utilisateurs - G. Philippon/M. Jouvin Quattor : Gestion.
PHP 7° PARTIE : PROGRAMMATION OBJET
Traitement de texte +.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Structure de stockage et relations
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
G.KEMBELLEC - UP81 Master 2 THYP Cas pratique d’utilisation De simpleXML Un lecteur de RSS Novembre 2009.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Modélisation N-morphes en classification des textes de Wikipedia
Architecture logicielle
Protocole HTTP, cookies, sessions, authentification
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Module 2 3. Stocker ses fichiers dans son porte-documents KOSMOS.
LDAP (Lightweight Directory Access Protocol)
INF2005– Programmation web– A. Obaid Les métadonnées.
Développement d’applications Web
الهيئة العامة لحماية المستهلك أساليب الترويج وتأثيراتها على المستهلك خليفة التونكتي - مستشار المنافسة - 1.
Transcription de la présentation:

symfony i18n

terminologie internationalization = i18n –Un même contenu traduit en plusieurs langue, éventuellement converti en différents formats localization = l10n –Contient un contenu différent selon le pays à partir duquel le site est consulté

Culture utilisateur La culture est une combinaison du pays et de la langue de lutilisateur –Persistante en session Culture par défaut myapp/config/i18n.yml all: default_culture: fr_FR Pour que les changements prennent effet –Réinitialiser la session (supprimer les cookies, « effacer mes traces ») La langue est codée sur 2 caractères minuscules (ISO standard) Le pays est codé sur 2 caractères majuscules (ISO standard)

Changer de culture // Culture setter $this->getUser()->setCulture('en_US'); // Culture getter $culture = $this->getUser()->getCulture(); en_US La culture étant stockée dans la session les Moteur de recherche ne peuvent indexer quune langue

Culture dans url routing.yml page: url: /:sf_culture/:page requirements: { sf_culture: (?:fr|en|de) } params:... article: url: /:sf_culture/:year/:month/:day/:slug requirements: { sf_culture: (?:fr|en|de) } params:... La culture sera accolé dans chaque url générée par link_to Si le paramètre sf_culture change dans lurl symfony changera automatiquement la culture de lutilisateur

Déterminer la culture $languages = $this->getRequest()->getLanguages(); Permet de déterminer automatiquement la culture le Accept-Language HTTP nest pas très fiable –Rarement modifié par les utilisateurs –La plupart du temps le langage est celui de linterface –Les browsers ne sont pas disponibles dans toutes les langues –Lutilisateur doit pouvoir choisir une autre langue

Affichage des données fonction de la culture setCulture('en_US') ?> '12,000.10' setCulture('fr_FR') ?> '12 000,10' Pas de passage explicite de la culture

Affichage des données fonction de la culture II '9/14/06' 'September 14, :11:07 PM CEST'

Affichage des données fonction de la culture III 'United States' 'English'

Affichage des données fonction de la culture IV Afghanistan... United Kingdom United States United States Minor Outlying Islands Uruguay... Les helpers date acceptent un paramètre spécifique pour forcer la culture déconseillé

Récupérer des données localisées $date= $this->getRequestParameter('birth_date'); $user_culture = $this->getUser()->getCulture(); // Getting a timestamp $timestamp = sfI18N::getTimestampForCulture($date, $user_culture); // Getting a structured date list($d, $m, $y) = sfI18N::getDateForCulture($date, $user_culture);

Schéma localisé my_product: _attributes: { phpName: Product, isI18N: true, i18nTable: my_product_i18n } id: { type: integer, required: true, primaryKey: true, autoincrement: true } price: { type: float } my_product_i18n: _attributes: { phpName: ProductI18n } id: type: integer required: true primaryKey: true foreignTable: my_product foreignReference: id culture: { isCulture: true, type: varchar, size: 7, required: true, primaryKey: true } name: { type: varchar, size: 50 }

Schéma localisé – version courte my_product: _attributes: { phpName: Product } id: price: float my_product_i18n: _attributes: { phpName: ProductI18n } name: varchar(50)

Utilisation dun objet localisé $product = ProductPeer::retrieveByPk(1); $product->setCulture('fr'); $product->setName('Nom du produit'); $product->save(); $product->setCulture('en'); $product->setName('Product name'); $product->save(); echo $product->getName(); 'Product name' $product->setCulture('fr'); echo $product->getName(); 'Nom du produit'

Automatiser la localisation dun objet Ajouter cette méthode au modèle public function hydrate(ResultSet $rs, $startcol = 1) { $user = sfContext::getInstance()->getUser(); $culture = $user->getCulture(); $this->setCulture($culture); return parent::hydrate($rs, $startcol); }