Le site LocalizeTeaPot utilise le Framework GNK Website et les fonctionnalités sont développées par Open Team Map.
Copyright (c) 2012 OpenTeamMap
This file is part of LocalizeTeaPot.
LocalizeTeaPot is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
LocalizeTeaPot is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with LocalizeTeaPot. If not, see http://www.gnu.org/licenses/.
Le Framework GNK Website est inclus dans LocalizeTeaPot et permet d'utiliser facilement des bibliothèques. Il utilise d'ailleurs nativement Gettext et Doctrine2.
Gettext est une bibliothèque libre permettant de traduire du texte dans différente langues.
- Tous les textes doivent s'écrire de la forme T_('Mon texte') pour pouvoir être traduits.
- Pour les termes ou expressions contenant un pluriel dépendant d'une variable, on utilise T_ngettext :
- Cas particulier: inclusion d'une variable. Pour inclure une variable dans T_ngettext, on utilise sprintf puisque la variable ne peut être passée en paramètre de traduction.
sprintf(T_ngettext('%d élément', '%d éléments', $numberElements), $numberElements);
- Les traductions des textes (utilisant la fonction T_ et T_ngettext) se font dans des fichiers po puis sont compilés en mo
- Après avoir codé en prenant en compte gettext, il s'agit maintenant de générer des fichiers pour la traduction
- Pour ce site, les fichiers en question sont dans le dossier locale//LC_MESSAGES/
- Leurs noms sont messages.mo et messages.po
- Les po sont des fichiers textes contenant les traductions et les mo sont les fichiers compilés des po
- Veuillez installer Poedit (http://www.poedit.net/)
- Veuillez préciser dans les configurations de Poedit de compiler (Poedit->Edition->Préférences->Éditeur [x] Compiler automatiquement les fichiers .mo lors de l'enregistrement)
- Si le po de votre langue existe, vous pouvez le modifier en ajoutant des modifications avec Poedit
- Ouvrir le fichier po avec Poedit
- Mettre à jour la base de langues
- Traduire
- Enregistrer
- Si le po de votre langue n'existe pas, veuillez créer, dans le dossier locale, un dossier comprenant l'identifiant de votre Locale (vous pouvez connaître le dossier à créer en utilisant la méthode Config::showLocale())
- Créer ensuite un dossier LC_MESSAGES
- Ouvrir Poedit->Fichier->Nouveau catalogue depuis un fichier POT…
- Sélectionner le fichier locale/default/pot/messages.pot
- Indiquer éventuellement l'équipe de traduction
- Ajouter la forme plurielle correspondante à votre langue (http://translate.sourceforge.net/wiki/l10n/pluralforms) sans oublier le ; à la fin (il n'y est pas dans la page)
- Enregistrer le fichier avec le nom messages.po dans locale//LC_MESSAGES/
- Traduire
- Enregistrer
- Voila, vous pouvez maintenant voir vos textes traduits, pour tester une autre langue, vous pouvez utiliser ?lang= pour tester
Ce Framework, utilise Doctrine2 : http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/index.html
Zebra Form permet de créer des formulaires facilement, cependant sa version comportait quelques erreurs, elle a donc besoin d'un module et d'une retouche pour fonctionner, c'est pourquoi le module Form est disponnible pour palier au problème.
Plus d'informations sur Zerba Form : http://stefangabos.ro/php-libraries/zebra-form
OpenLayers permet de créer des cartes sous formes de calques. Son API permet d'interagir avec OpenStreetMap et ainsi afficher une carte Javascript OpenStreetMap.
Voici un exemple d'utilisation du module OSM affichant une carte avec OpenLayers
use \gnk\config\Module;
use \gnk\modules\osm\Osm;
use \gnk\modules\osm\Marker;
# Chargement du module osm
Module::load('osm');
# Déclaration de la carte
$osm = new Osm('carte');
# Création du calque de marqueurs
$marker = new Marker('Mon calque de marqueurs');
# Ajout d'un marqueur (Le html en 3ème argument est facultatif)
# Ici :
# - Longitude = 4.2
# - Latitude = 42.42
$marker->add(4.2 ,42.24, '<h1>Ma Popup</h1>');
# Ajout du calque de marqueurs à la carte
$osm->addMarker($marker);
# Affichage de la zone de carte
$osm->showDiv();
# Affichage du script de la carte (Pour l'afficher dans la zone de carte)
$osm->showJS();