I18n du routing pour les modules d’admin Symfony
L'internationalisation d'une application (i18n) consiste à servir les pages dans la langue de l'utilisateur. Par défaut, les modules d'admin de Symfony gèrent l'i18n. Ainsi, il est simple de traduire ces modules. Dans cet article je vais vous expliquer :
- comment gérer plusieurs langues pour l'interface de vos modules d'administration en indiquant la langue dans l'URL
- et comment basculer en un clic d'une langue à une autre.
Cet article est écrit pour Symfony 1.4 avec l'admin-generator Doctrine. Nous utiliseront également le plugin sfLanguageSwitchPlugin.
Plugin sfDoctrineAdminGeneratorWithShowPlugin pour Symfony 1.4
Une question récurrente sur les forums traitant du framework Symfony :
A quoi sert le paramètre with_show dans le fichier generator.yml ?
Aussi surprenante soit-elle, la réponse usuelle à cette question est :
Par défaut, à rien...
Alors comment afficher les détails d'un objet dans une page d'administration sans que celles-ci soient modifiables ? il est bien nécessaire d'activer l'action show. Les plugins sfDoctrineAdminGeneratorWithShowPlugin et sfPropelAdminGeneratorWithShowPlugin ont été créés pour compenser ce manque. Malheureusement ils ne fonctionnent que pour Symfony 1.2 et 1.3.
Développer un plugin pour MySQL Workbench
MySQL Workbench est un logiciel de modélisation de bases de données pour MySQL. Successeur du feu DB Designer, il offre une ergonomie d'utilisation, une stabilité et un éventail de fonctionnalité très étendu :
- Modélisation des tables et des relations spécifiquement pour MySQL,
- Génération des scripts SQL et de la base de données MySQL,
- Création des diagrammes à partir d'une base MySQL existante ou d'un script SQL.
Mais pour un projet contenant de nombreuses tables, il est parfois nécessaire d'effectuer des traitements automatiques sur celles-ci. MySQL Workbench est un logiciel "programmable", c'est-à-dire qu'il est possible de développer des script/plugins pour automatiser certaines tâches telles que :
- génération de code (comme le schema.yml de Doctrine),
- création de documentation,
- modifications du schéma ...
Le langage de programmation est LUA, celui-ci a une syntaxe proche de python, quelques exemples de code sont disponibles sur le wiki de MySQL.
