Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2614 → Rev 2615

/trunk/src/org/tela_botanica/client/CarnetEnLigneMediateur.java
1,5 → 1,6
package org.tela_botanica.client;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.Utilisateur;
80,7 → 81,7
/**
* Texte d'invite connexion
*/
private final String texteDeconnexion="Utilisez ce carnet en ligne pour saisir vos observations, <u>identifiez-vous</u> pour les transmettre à Tela Botanica";
private final String texteDeconnexion= Msg.get("cel-utilisation")+", <u>"+Msg.get("identifiez-vous")+"</u> "+Msg.get("pour-transmettre-tela");
 
/**
* Boolean indiquant un essai de connexion
370,7 → 371,7
} else {
if(tentativeConnection && utilisateur.isIdentifie() && observationMediateur.listeAvoirObservations() && !utilisateur.isAdmin()) {
if(Window.confirm("Voulez vous importer vos observations déjà saisies dans votre compte une fois connecté ?")) {
if(Window.confirm(Msg.get("question-import-anonyme-connecte")+" ?")) {
observationMediateur.setImporterObservationsAnonymes(true);
}
}
398,7 → 399,7
}
if(observationMediateur.listeAvoirObservations() && !utilisateur.isAdmin()) {
if(Window.confirm("Voulez vous importer vos observations déjà saisies dans votre compte une fois connecté ?")) {
if(Window.confirm(Msg.get("question-import-anonyme-connecte")+" ?")) {
observationMediateur.setImporterObservationsAnonymes(true);
}
}
425,8 → 426,8
}
public void afficherLienAdmin() {
 
String labelAdmin = "<div id=\"lienAdmin\">Vous consultez les données de "+Utilisateur.getInstance().getLoginUtilisateurConsulte()+" <a id=\"LienChangerUtilisateur\" href=\"#\">Changer d'utilisateur</a></div>" ;
String[] paramsU = {Utilisateur.getInstance().getLoginUtilisateurConsulte()};
String labelAdmin = "<div id=\"lienAdmin\"> "+Msg.get("admin-consulter-donnees", paramsU)+" <a id=\"LienChangerUtilisateur\" href=\"#\">"+Msg.get("changer-utilisateur")+"</a></div>" ;
panneauAdmin.setHtml(labelAdmin);
ExtElement lienChangerUt = Ext.get("LienChangerUtilisateur");
/trunk/src/org/tela_botanica/client/i18n/Messages.java
File deleted
/trunk/src/org/tela_botanica/client/i18n/Msg.java
New file
0,0 → 1,101
package org.tela_botanica.client.i18n;
 
import org.tela_botanica.client.cel2;
import org.tela_botanica.client.modeles.objets.Configuration;
import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.user.client.Window.Location;
 
/**
* Gère l'internationalisation
*/
public class Msg {
 
/** contient un dictionnaire de messages par langue */
//protected Map<String, Dictionary> langues;
/** langue en cours */
protected static String langue;
/** langue par défaut */
protected static String langueDefaut;
/** langues disponibles */
protected static String languesDisponibles;
 
// A appeller par la classe mère du cel pour l'initialiser
public static void init() {
// lire la config pour obtenir les langues
languesDisponibles = Configuration.getLanguesDisponibles();
// lire la config et charger la langue par défaut
langueDefaut = Configuration.getLangueDefaut();
// Si la langue est précisée dans l'url on la prend, sinon on prend celle par défaut
// @TODO: avertissement si la langue indiquée dans l'url n'est pas la bonne
String langueActive = getLangueActiveParUrlOuDefaut();
cel2.LogVersFirebug(langueActive);
setLangue(langueActive);
}
 
public static void setLangue(String langue) {
// @TODO vérifier que la langue est une clé de la Map
Msg.langue = langue;
}
 
/**
* Retourne un message dans la langue en cours
* @param cle
* @return
*/
public static String get(String cle) {
return get(cle, langue);
}
/**
* Retourne un message paramétré dans la langue en cours
* @param cle
* @param[] params
* @return
*/
public static String get(String cle, String[] params) {
return get(cle, langue, params);
}
 
/**
* Retourne un message dans la langue demandée; s'il n'est pas trouvé, le cherche
* dans la langue par défaut; en cas d'échec, retourne un terme générique d'avertissement
* @param cle
* @param langue
* @return
*/
public static String get(String cle, String langue) {
String nomDictionnaire = "messages_" + langue;
String message;
try {
message = Dictionary.getDictionary(nomDictionnaire).get(cle);
} catch (Exception e) {
try {
message = Dictionary.getDictionary("messages_" + langueDefaut).get(cle);
} catch (Exception me) {
message = "hoho c'est la merde";
}
}
return message;
}
/**
* Retourne un message paramétré dans la langue demandée
* @param cle
* @param langue
* @param[] params
* @return
*/
public static String get(String cle, String langue, String[] params) {
String message = get(cle, langue);
for (int i = 0; i < params.length; i++) {
message = message.replace("{"+i+"}", params[i]);
}
return message;
}
protected static String getLangueActiveParUrlOuDefaut() {
//TODO: déplacer ceci si on est une chouette !
return Location.getParameter("lang") == null ? langueDefaut : Location.getParameter("lang");
}
}
/trunk/src/org/tela_botanica/client/i18n/I18n.java
12,8 → 12,8
return (VocabulaireMetadonnees) GWT.create(VocabulaireMetadonnees.class);
}
 
public static Messages getMessages() {
return (Messages) GWT.create(Messages.class);
public static Msg getMessages() {
return (Msg) GWT.create(Msg.class);
}
 
}
/trunk/src/org/tela_botanica/client/vues/ListeUtilisateurAdminVue.java
1,6 → 1,7
package org.tela_botanica.client.vues;
 
import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.Utilisateur;
 
55,11 → 56,11
private Timer timerCompletion = null;
public ListeUtilisateurAdminVue(CarnetEnLigneMediateur cMed) {
super("Choisir un utilisateur") ;
super(Msg.get("choisir-utilisateur")) ;
this.cMediateur = cMed;
listeUtil=new ComboBox("Utilisateurs","courriel",280);
listeUtil=new ComboBox(Msg.get("utilisateurs"),"courriel",280);
this.setLayout(new RowLayout());
78,8 → 79,8
listeUtil.setLoadingText("Recherche...");
listeUtil.setValue(utilisateur);
OK= new com.gwtext.client.widgets.Button("OK");
annuler = new com.gwtext.client.widgets.Button("Annuler");
OK= new com.gwtext.client.widgets.Button(Msg.get("ok"));
annuler = new com.gwtext.client.widgets.Button(Msg.get("annuler"));
Panel boutonPanel = new Panel();
boutonPanel.setLayout(new HorizontalLayout(0));
/trunk/src/org/tela_botanica/client/vues/EtatConnexionVue.java
16,7 → 16,7
package org.tela_botanica.client.vues;
 
import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.i18n.Messages;
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.modeles.objets.Configuration;
 
import com.google.gwt.http.client.URL;
49,8 → 49,6
*/
private String labelEtatConnexion = null;
private Messages msg = Messages.getInstance();
 
/**
* Ouh c'est pas beau, ça ! Mais avec Google Web Toolshit, ça
57,7 → 55,7
* marche toujours mieux que quand on fait des trucs beaux :-)
*/
private String liens = "<div id=\"liensExt\">"
+ "<a id=\"lienRemarques\" title=\"Adressez-nous vos remarques ou signalez-nous un problème\""
+ "<a id=\"lienRemarques\" title=\""+Msg.get("adresser-remarque-probleme")+"\""
+ " href=\"" + Configuration.getRemarquesBaseUrl() + "?service=" + Configuration.getServiceContact()
+ "&pageSource=" + URL.encodeQueryString(Window.Location.getHref()) + "\""
+ " onClick=\"javascript:window.open(this.getAttribute('href'), 'Tela Botanica - Remarques', config='height=700, width=640, scrollbars=yes, resizable=yes'); return false;\""
137,7 → 135,7
 
if(connecte) {
String[] params = {identifiant};
labelEtatConnexion = "<div id=\"etatConnexion\">"+msg.get("connecte-en-tant-que", params)+" <a id=\"lienDeconnexion\" href=\"#\">("+msg.get("deconnexion")+")</a>" ;
labelEtatConnexion = "<div id=\"etatConnexion\">"+Msg.get("connecte-en-tant-que", params)+" <a id=\"lienDeconnexion\" href=\"#\">("+Msg.get("deconnexion")+")</a>" ;
labelEtatConnexion += "</div>" ;
180,7 → 178,7
}
else
{
labelEtatConnexion = "<div id=\"etatConnexion\"> "+msg.get("cel-utilisation")+", <a id=\"lienConnexion\" href=\"#\">"+msg.get("identifiez-vous")+"</a> "+msg.get("pour-transmettre-tela")+"</div>";
labelEtatConnexion = "<div id=\"etatConnexion\"> "+Msg.get("cel-utilisation")+", <a id=\"lienConnexion\" href=\"#\">"+Msg.get("identifiez-vous")+"</a> "+Msg.get("pour-transmettre-tela")+"</div>";
labelEtatConnexion += liens ;
setHtml(labelEtatConnexion);
ExtElement lienCo = Ext.get("etatConnexion");
/trunk/src/org/tela_botanica/client/vues/image/MenuImageVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
 
import com.gwtext.client.core.EventObject;
74,20 → 75,19
iMediateur = im;
mn = new Menu();
uploadMultiple = new Item("Plusieurs dossiers ou fichiers à la fois");
uploadSimple = new Item("Un fichier à la la fois");
uploadMultiple = new Item(Msg.get("plusieurs-fichiers-images-fois"));
uploadSimple = new Item(Msg.get("un-fichier-image-fois"));
mn.addItem(uploadMultiple);
mn.addItem(uploadSimple);
 
// on construit le menu
uploaderImage = new MenuItem("Ajouter des images", mn);
supprimerImage = new Item("Supprimer les images selectionnées");
gestionMotsCles = new Item("Gérer les mots clés");
ajouterImageSelection = new Item(
"Ajouter les images sélectionnées au tampon");
viderSelection = new Item("Vider le tampon");
afficherSelection = new Item("Afficher le tampon");
uploaderImage = new MenuItem(Msg.get("ajouter-images"), mn);
supprimerImage = new Item(Msg.get("indication-supprimer-images"));
gestionMotsCles = new Item(Msg.get("gerer-mots-cles"));
ajouterImageSelection = new Item(Msg.get("ajouter-images-tampon"));
viderSelection = new Item(Msg.get("vider-tampon"));
afficherSelection = new Item(Msg.get("afficher-tampon"));
addItem(uploaderImage);
addItem(supprimerImage);
addItem(gestionMotsCles);
/trunk/src/org/tela_botanica/client/vues/image/ZoomImageVue.java
1,6 → 1,7
package org.tela_botanica.client.vues.image;
 
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
 
89,7 → 90,7
*/
private boolean conteneurInitialise = false;
private ToolTip tp = new ToolTip("<div class=\"x-tooltip-help\"> Double cliquez pour revenir à la vue précédente, utilisez la roulette ou les boutons fléchés pour faire défiler les images </div>") ;
private ToolTip tp = new ToolTip("<div class=\"x-tooltip-help\"> "+Msg.get("indication-zoom-retour-vue-precedente")+" </div>") ;
/**.
* boolean de gestion du double clic
145,17 → 146,13
prev.setWidth("60px");
suiv.setWidth("60px");
 
modeZoom = new ToolbarButton("Mode Zoom");
modeZoom = new ToolbarButton(Msg.get("mode-zoom"));
Toolbar tb = new Toolbar();
tb.addButton(modeZoom);
tb.addItem(valeurZoom);
//setTopToolbar(tb);
infosTaxon = new Panel();
infosTaxon.setHeader(false);
//infosTaxon.setBorder(false);
infosTaxon.setHeight("30px");
this.add(prev, new BorderLayoutData(RegionPosition.WEST));
240,7 → 237,7
public void masquerChargement() {
ExtElement imgEl = Ext.get(imageConteneur.getElement());
if(imgEl != null) {
imgEl.mask("Chargement");
imgEl.mask(Msg.get("chargement"));
}
}
/trunk/src/org/tela_botanica/client/vues/image/filtres/ArbreDateImageFiltreVue.java
3,6 → 3,7
import java.util.Comparator;
import java.util.Iterator;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Filtrable;
import org.tela_botanica.client.interfaces.Rafraichissable;
82,7 → 83,7
public ArbreDateImageFiltreVue(ImageMediateur imgMed) {
 
// on crée le panel
super("Dates");
super(Msg.get("dates"));
this.imageMediateur = imgMed;
 
110,7 → 111,7
arbreDonneesDates.setId("x-view-tree-filter-date-image");
 
// on crée une racine pour l'arbre
TreeNode root = new TreeNode("Dates");
TreeNode root = new TreeNode(Msg.get("dates"));
root.addListener(new TreeNodeListenerAdapter() {
127,7 → 128,7
}) ;
root.setId("racine_date");
String[] usObject = { "Dates", "Dates", prefixeId+"racine_date" };
String[] usObject = { Msg.get("dates"), Msg.get("dates"), prefixeId+"racine_date" };
root.setUserObject(usObject);
 
arbreDonneesDates.setRootNode(root);
257,8 → 258,8
// on crée un arbre vide
TreeNode root = new TreeNode();
root.setId("racine_date");
root.setText("Dates");
String[] usObjRoot = { "Dates", "Dates", prefixeId+"racine_date"};
root.setText(Msg.get("dates"));
String[] usObjRoot = { Msg.get("dates"), Msg.get("dates"), prefixeId+"racine_date"};
root.setUserObject(usObjRoot);
Tree nouvelArbre = new Tree();
nouvelArbre.setRootNode(root);
400,8 → 401,7
*/
@Override
public String renvoyerNomFiltre() {
 
return "Dates";
return Msg.get("dates");
}
 
/**
493,9 → 493,9
arbreDonneesDates.collapseAll();
arbreDonneesDates.clear();
TreeNode root = new TreeNode("Dates");
TreeNode root = new TreeNode(Msg.get("dates"));
root.setId("racine_date");
String[] usObject = { "Dates", "Dates", prefixeId+"racine_date" };
String[] usObject = { Msg.get("dates"), Msg.get("dates"), prefixeId+"racine_date" };
root.setUserObject(usObject);
 
arbreDonneesDates.setRootNode(root);
/trunk/src/org/tela_botanica/client/vues/image/filtres/RechercheFiltreTaxonVue.java
1,7 → 1,9
package org.tela_botanica.client.vues.image.filtres;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Filtrable;
 
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
15,7 → 17,7
private TextField champRecherche = null;
private static String titrePanneau = "Recherche libre";
private static String titrePanneau = Msg.get("recherche-libre");
private String valeurRecherchee= "";
/trunk/src/org/tela_botanica/client/vues/image/filtres/PanneauFiltresImagesVues.java
1,5 → 1,6
package org.tela_botanica.client.vues.image.filtres;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
import com.gwtext.client.core.Ext;
47,7 → 48,7
* Bouton de validation
*/
private Button valider = null;
 
/**
* Construcuteur sans argument (privé car on ne doit pas l'utiliser)
*/
63,8 → 64,9
* le médiateur à associer
*/
public PanneauFiltresImagesVues(ImageMediateur im) {
super("Filtres");
// on utilise pas l'instance de msg car java nous l'interdit dans la premiere ligne
// du constructeur
super(Msg.get("filtres"));
iMediateur = im;
this.setCollapsible(true);
71,7 → 73,7
setLayout(new RowLayout());
 
rechercheLibreFiltreVue = new BarreRechercheFiltreVue(im);
rechercheLibreFiltreVue.setTitle("Recherche libre");
rechercheLibreFiltreVue.setTitle(Msg.get("recherche-libre"));
rechercheLibreFiltreVue.setCollapsible(true);
add(rechercheLibreFiltreVue, new RowLayoutData());
88,7 → 90,7
add(arbreDateImageFiltreVue, new RowLayoutData());
 
motsClesFiltres = new ArbreMotsClesFiltreVue(im);
motsClesFiltres.setTitle("Mots clés");
motsClesFiltres.setTitle(Msg.get("mots-cles"));
motsClesFiltres.setAutoScroll(true);
add(motsClesFiltres, new RowLayoutData());
 
/trunk/src/org/tela_botanica/client/vues/image/filtres/BarreRechercheFiltreVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image.filtres;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Filtrable;
import org.tela_botanica.client.interfaces.Rafraichissable;
68,7 → 69,7
 
champRecherche = new TextField();
boutonRechercher = new Button("OK");
boutonRechercher = new Button(Msg.get("ok"));
 
add(champRecherche);
add(boutonRechercher);
/trunk/src/org/tela_botanica/client/vues/image/filtres/SelectionFiltreVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image.filtres;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Filtrable;
 
25,8 → 26,7
 
super();
iMediateur = im ;
Label labelRecherche = new Label(
"Afficher uniquement les images dans le tampon :");
Label labelRecherche = new Label(Msg.get("afficher-images-tampon")+" :");
add(labelRecherche);
setBorder(false);
setPaddings(5);
67,7 → 67,7
@Override
public String renvoyerNomFiltre() {
 
return "Filtre par tampon";
return "filtre_tampon";
}
 
@Override
/trunk/src/org/tela_botanica/client/vues/image/MiniListeObservationVue.java
2,6 → 2,7
 
import java.util.Iterator;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
165,17 → 166,18
}
}),
new ColumnConfig("Taxon", "plante", 145, true, colRend),
new ColumnConfig("Date", "date", 68, true, dateRend),
new ColumnConfig("Lieu", "lieu", 145, true, colRend),
new ColumnConfig("Numero", "ordre_obs", 50, true, colRend), } ;
new ColumnConfig(Msg.get("taxon"), "plante", 145, true, colRend),
new ColumnConfig(Msg.get("date"), "date", 68, true, dateRend),
new ColumnConfig(Msg.get("lieu"), "lieu", 145, true, colRend),
new ColumnConfig(Msg.get("numero"), "ordre_obs", 50, true, colRend), } ;
ColumnModel columnModel = new ColumnModel(columns);
colModel = columnModel ;
 
setTitle("Observations");
setTitle(Msg.get("observations"));
// on associe le modèle de colonnes
setColumnModel(columnModel);
setAutoScroll(true) ;
188,8 → 190,7
setStore(store) ;
setBottomToolbar(pgBar) ;
Object[][] mode = {{"toutes les observations",false} , {"observation liée", true} };
Object[][] mode = {{Msg.get("toutes-observations"),false} , {Msg.get("observations-liees"), true} };
storeMode = new SimpleStore(new String[] { "nom_mode", "mode" },
mode);
storeMode.load();
197,7 → 198,7
selecteurMode.setDisplayField("nom_mode") ;
selecteurMode.setLabel("mode ") ;
selecteurMode.setForceSelection(true) ;
selecteurMode.setValue("toutes les observations") ;
selecteurMode.setValue(Msg.get("toutes-observations")) ;
selecteurMode.setEditable(false) ;
selecteurMode.setCls("x-selec-consult") ;
265,7 → 266,7
private void configDragAndDrop()
{
// on choisit le texte qui sera affiché lors d'un drag 'n drop
setDragDropText("Faites glisser l'observation sur une image ou une selection d'images pour les lier") ;
setDragDropText(Msg.get("glissez-deposer-obs-images")) ;
//On active le drag 'n drop
this.setEnableDragDrop(true);
455,7 → 456,7
ExtElement masked = Ext.get(getId()) ;
 
if (masked!=null) {
masked.mask("Chargement") ;
masked.mask(Msg.get("chargement")) ;
}
}
525,7 → 526,8
public void montrerContextMenuLiaison(EventObject e) {
final Menu liObs = new Menu();
final Item lierObservation = new Item("Lier aux images selectionnées");
final Item lierObservation = new Item(Msg.get("lier-images-selectionnes"));
liObs.addItem(lierObservation);
liObs.addListener(new MenuListenerAdapter() {
/trunk/src/org/tela_botanica/client/vues/image/PanneauMetadonneesVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.vues.image.ImageMotsClesVue;
138,13 → 139,13
imediateur = im;
 
// on crée et dispose les panneaux et les champs
panneauExifGrid = new Panel("Exif");
panneauIptcGrid = new Panel("Iptc");
panneauInfoGrid = new Panel("Infos");
panneauExifGrid = new Panel(Msg.get("infos-generales"));
panneauIptcGrid = new Panel(Msg.get("infos-generales"));
panneauInfoGrid = new Panel(Msg.get("infos-generales"));
panneauMotsCles = new ImageMotsClesVue(im);
panneauMotsCles.setHeight("50%");
 
Panel sousPanneauInfosGenerales = new Panel("Infos Générales");
Panel sousPanneauInfosGenerales = new Panel(Msg.get("infos-generales"));
sousPanneauInfosGenerales.setLayout(new VerticalLayout());
sousPanneauInfosGenerales.setBorder(false);
sousPanneauInfosGenerales.setHeight(200);
153,12 → 154,12
sousPanneauInfosGenerales.setPaddings(5);
sousPanneauInfosGenerales.setCollapsible(true);
 
Label labelComm = new Label("Commentaires :");
Label labelComm = new Label(Msg.get("commentaires")+" :");
labelComm.setHeight("20px");
commentaireGeneral = new TextArea();
commentaireGeneral.setWidth("90%");
Label labelDate = new Label("Date :");
Label labelNote = new Label("Note :");
Label labelDate = new Label(Msg.get("date")+" :");
Label labelNote = new Label(Msg.get("note")+" :");
 
panneauMotsCles.setBorder(false);
 
168,10 → 169,10
dateImage.setAutoWidth(true);
dateImage.setFormat("d/m/Y");
 
validerInfo = new Button("OK");
validerInfo = new Button(Msg.get("ok"));
 
noteVue = new BarreNotationVue(im, 5);
panneauMiniListeObservation = new Panel("Observations") ;
panneauMiniListeObservation = new Panel(Msg.get("observations")) ;
if(!Ext.isIE()) {
panneauMiniListeObservation.setLayout(new RowLayout());
179,7 → 180,7
miniListeObservation = new MiniListeObservationVue(im);
rechercheFiltreTaxonVue = new RechercheFiltreTaxonVue(im);
rechercheFiltreTaxonVue.setTitle("Recherche dans les observations");
rechercheFiltreTaxonVue.setTitle(Msg.get("recherche-dans-observations"));
if(Ext.isIE()) {
panneauMiniListeObservation.add(rechercheFiltreTaxonVue);
rechercheFiltreTaxonVue.setHeight(90);
226,7 → 227,7
ExifGrid = new PropertyGridPanel();
ExifGrid.setId("meta_exif");
ExifGrid.setView(gViewExif);
ExifGrid.setNameText("Métadonnées Exif");
ExifGrid.setNameText(Msg.get("exif-metadonnees"));
ExifGrid.setAutoWidth(true);
ExifGrid.setHeight(500);
ExifGrid.setSorted(false);
239,7 → 240,7
IptcGrid.setId("meta_iptc");
IptcGrid.setView(gViewIptc);
 
IptcGrid.setNameText("Métadonnées IPTC");
IptcGrid.setNameText(Msg.get("iptc-metadonnees"));
IptcGrid.setAutoWidth(true);
IptcGrid.setHeight(500);
IptcGrid.setSorted(false);
/trunk/src/org/tela_botanica/client/vues/image/BarreOutilsVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.util.Util;
import org.tela_botanica.client.vues.MenuAideVue;
96,7 → 97,7
texteFiltres = new ToolbarTextItem("");
final ToolbarMenuButton menuImage = new ToolbarMenuButton("Ajouter des images", imageMenuEtendu.getMenuImage());
final ToolbarMenuButton menuImage = new ToolbarMenuButton(Msg.get("ajouter-images"), imageMenuEtendu.getMenuImage());
menuImage.addListener(new SplitButtonListenerAdapter() {
 
@Override
111,7 → 112,7
});
ToolbarButton menuSuppression = imageMenuEtendu.getBoutonSuppression();
final ToolbarMenuButton menuTampon = new ToolbarMenuButton("Tampon", imageMenuEtendu.getMenuTampon());
final ToolbarMenuButton menuTampon = new ToolbarMenuButton(Msg.get("tampon"), imageMenuEtendu.getMenuTampon());
menuTampon.addListener(new SplitButtonListenerAdapter() {
 
@Override
124,8 → 125,8
menuTampon.showMenu();
}
});
ToolbarButton menuGestionMotsCles = new ToolbarButton("Gérer les mots clés");
 
ToolbarButton menuGestionMotsCles = new ToolbarButton(Msg.get("gerer-mots-cles"));
menuGestionMotsCles.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(Button button, EventObject e) {
201,7 → 202,7
private String transformerNomFiltre(String nomFiltre) {
if(nomFiltre.equals("id_mots_cles")) {
nomFiltre = "mots clés";
nomFiltre = Msg.get("mots-cles");
}
return nomFiltre;
/trunk/src/org/tela_botanica/client/vues/image/FenetreGestionMotsCles.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.util.MotsClesUtilitaire;
 
137,7 → 138,7
// on crée une racine pour l'arbre
TreeNode root = new TreeNode("Tags");
root.setId("racine");
String[] usObject = { "Mots clés", "racine" };
String[] usObject = {Msg.get("mots-cles-maj"), "racine" };
root.setExpandable(true);
arbreMotsCles.setRootNode(root);
arbreMotsCles.setRootVisible(true);
169,8 → 170,8
tfEdit = new TextField();
tfEdit.setAutoWidth(true);
te = new TreeEditor(arbreMotsCles, tfEdit);
valider = new Button("Appliquer");
annuler = new Button("Annuler");
valider = new Button(Msg.get("appliquer"));
annuler = new Button(Msg.get("annuler"));
arbreMotsCles.add(te);
panelIntermediaire = new Panel();
195,12 → 196,12
arbreMotsCles.setAutoScroll(true);
Toolbar barreBouton = new Toolbar();
ajouterTag = new ToolbarButton("Nouveau Tag");
ajouterTag = new ToolbarButton(Msg.get("nouveau-tag"));
ajouterTag.setIcon("mot_cle_ajouter.png");
renommerTag = new ToolbarButton("Renommer");
renommerTag = new ToolbarButton(Msg.get("renommer"));
renommerTag.setIcon("mot_cle_editer.png");
renommerTag.disable();
supprimerTag = new ToolbarButton("Supprimer");
supprimerTag = new ToolbarButton(Msg.get("supprimer"));
supprimerTag.setIcon("mot_cle_supprimer.png");
supprimerTag.disable();
barreBouton.addButton(ajouterTag);
/trunk/src/org/tela_botanica/client/vues/image/GalerieImageVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
89,7 → 90,7
* le médiateur avec lequel la vue va communiquer
*/
public GalerieImageVue(ImageMediateur im) {
super("Galerie");
super(Msg.get("galerie"));
iMediateur = im;
// on ajoute des listeners au composant tout entier
111,7 → 112,7
 
// et on ajoute la tool bar
pt = new BarrePaginationVue(this);
pt.setLabelElement("Images");
pt.setLabelElement(Msg.get("Images"));
pt.setTaillePageParDefaut(50);
this.setBottomToolbar(pt);
 
339,10 → 340,9
 
this.add(dView);
dView.hide();
videPanel = new HTML("<div class=\"avertissement\" >Aucune image à afficher. <br/> <a id=\"lienUploadMultiple\" href=\"#\" > Cliquez ici pour ajouter un dossier entier ou plusieurs fichiers </a> (nécessite Java) <br/> " +
" <a id=\"lienUploadSimple\" href=\"#\" > Cliquez ici pour ajouter un fichier à la fois </a> <br/> " +
" Pour ajouter des images plus tard, allez dans le menu Fichier -> Ajouter des images </div>");
videPanel = new HTML("<div class=\"avertissement\" >"+Msg.get("avertissement-aucune-image")+". <br/> <a id=\"lienUploadMultiple\" href=\"#\" > "+Msg.get("cliquez-plusieurs-fichiers-images-fois")+" </a> ("+Msg.get("necessite-java")+") <br/> " +
" <a id=\"lienUploadSimple\" href=\"#\" > "+Msg.get("cliquez-un-fichier-image-fois")+" </a> <br/> " +
" "+Msg.get("indication-ajouter-images-plus-tard")+" </div>");
this.add(videPanel);
// ajouts de la gestion des evenements pour la dataview
/trunk/src/org/tela_botanica/client/vues/image/ImageMotsClesVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import com.google.gwt.user.client.ui.HTML;
46,7 → 47,7
*/
public ImageMotsClesVue(ImageMediateur im) {
// on crée le panel
super("Mots clés");
super(Msg.get("mots-cles"));
this.setHeight("100%");
this.add(motsClesAffiches);
motsClesAffiches.setHeight("100%");
/trunk/src/org/tela_botanica/client/vues/image/MenuIdVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
 
import com.gwtext.client.core.EventObject;
40,7 → 41,7
iMediateur = im;
 
// on construit le menu
changerId = new Item("Changer d'utilisateur");
changerId = new Item(Msg.get("changer-utilisateur"));
addItem(changerId);
 
// on ajoute les listeners
/trunk/src/org/tela_botanica/client/vues/image/OptionsImages.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
 
import com.gwtext.client.core.EventObject;
77,20 → 78,19
iMediateur = im;
mnFichiers = new Menu();
uploadMultiple = new Item("Plusieurs dossiers ou fichiers à la fois");
uploadSimple = new Item("Un fichier à la la fois");
uploadMultiple = new Item(Msg.get("plusieurs-fichiers-images-fois"));
uploadSimple = new Item(Msg.get("un-fichier-image-fois"));
mnFichiers.addItem(uploadMultiple);
mnFichiers.addItem(uploadSimple);
 
// on construit le menu
uploaderImage = new MenuItem("Ajouter des images", mnFichiers);
supprimerImage = new ToolbarButton("Supprimer");
uploaderImage = new MenuItem(Msg.get("ajouter-images"), mnFichiers);
supprimerImage = new ToolbarButton(Msg.get("supprimer"));
ajouterImageSelection = new Item(
"Ajouter les images sélectionnées au tampon");
viderSelection = new Item("vider le contenu du tampon");
afficherSelection = new Item("Supprimer le contenu du tampon");
ajouterImageSelection = new Item(Msg.get("ajouter-images-tampon"));
viderSelection = new Item(Msg.get("vider-tampon"));
afficherSelection = new Item(Msg.get("afficher-tampon"));
mnTampon = new Menu();
148,7 → 148,7
 
});
mnTampon.setTitle("Permet de sélectionner et d'afficher des images présentes sur plusieurs pages");
mnTampon.setTitle(Msg.get("indication-utilisation-tampon"));
// si c'est la suppression
160,8 → 160,9
getIMediateur().supprimerImages();
}
});
supprimerImage.setTitle("Supprimer les images sélectionnées");
supprimerImage.setTitle(Msg.get("indication-supprimer-images"));
mnFichiers.addListener(new MenuListenerAdapter() {
@Override
182,8 → 183,7
});
mnFichiers.setTitle("Ajouter des images en les selectionnant une par une ou bien un dossier à la fois");
mnFichiers.setTitle(Msg.get("indication-plusieurs-fichiers-images-fois"));
}
/trunk/src/org/tela_botanica/client/vues/image/ListeImageVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
140,12 → 141,12
 
// on place la barre de pagination
bt = new BarrePaginationVue(this);
bt.setLabelElement("Images");
bt.setLabelElement(Msg.get("images"));
bt.setTaillePageParDefaut(50);
setBottomToolbar(bt);
 
// on construit le modèle de colonnes
numImage = new ColumnConfig("Numéro", "num_image", 30, true,
numImage = new ColumnConfig(Msg.get("numero"), "num_image", 30, true,
new Renderer() {
 
@Override
189,7 → 190,7
});
 
datImage = new ColumnConfig("Date", "dat_image", 80, true,
datImage = new ColumnConfig(Msg.get("date"), "dat_image", 80, true,
new Renderer() {
 
@Override
208,7 → 209,8
}
 
});
lieImage = new ColumnConfig("Lieu", "lie_image", 120, true,
lieImage = new ColumnConfig(Msg.get("lieu"), "lie_image", 120, true,
new Renderer() {
 
@Override
227,7 → 229,8
}
 
});
appImage = new ColumnConfig("Appareil", "app_image", 120, true,
appImage = new ColumnConfig(Msg.get("appareil"), "app_image", 120, true,
new Renderer() {
 
@Override
249,7 → 252,7
 
// la colonne url possède une méthode de rendu spéciale
urlImage = new ColumnConfig("Image", "url_image_S", 30, true,
urlImage = new ColumnConfig(Msg.get("image"), "url_image_S", 30, true,
new Renderer() {
 
@Override
275,7 → 278,7
 
});
 
noteImage = new ColumnConfig("Note", "note_image", 80, true,
noteImage = new ColumnConfig(Msg.get("note"), "note_image", 80, true,
new Renderer() {
@Override
public String render(Object value,
301,7 → 304,7
 
});
nomImage = new ColumnConfig("Nom original", "nom_original", 120, true,
nomImage = new ColumnConfig(Msg.get("nom-original"), "nom_original", 120, true,
new Renderer() {
@Override
public String render(Object value,
320,7 → 323,7
 
});
obsAssociees = new ColumnConfig("Nom associé", "obs_associees", 80, true,
obsAssociees = new ColumnConfig(Msg.get("nom-associe"), "obs_associees", 80, true,
new Renderer() {
@Override
public String render(Object value,
407,7 → 410,7
 
if (!isEstInstancie()) {
setEstInstancie(true);
setDragDropText("Glissez les images sur la liste d'observation pour les lier") ;
setDragDropText(Msg.get("glissez-deposer-images-obs")) ;
getIMediateur().synchroniserSelection("galerie");
}
}
/trunk/src/org/tela_botanica/client/vues/image/MenuLiaisonVue.java
1,5 → 1,6
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.image.ImageMediateur;
 
import com.gwtext.client.widgets.menu.BaseItem;
60,9 → 61,9
 
iMediateur = im;
 
lierSelection = new Item("Lier les images selectionnées à la sélection d'observation");
lierSelectionTampon = new Item("Lier le tampon à la sélection d'observation");
afficherSelection = new Item("Afficher le tampon");
lierSelection = new Item(Msg.get("lier-images-selection-obs"));
lierSelectionTampon = new Item(Msg.get("lier-tampon-selection-obs"));
afficherSelection = new Item(Msg.get("afficher-tampon"));
addItem(lierSelection);
addItem(lierSelectionTampon);
77,9 → 78,9
iMediateur = im;
lierSelection = new Item("Lier les images selectionnées à la sélection d'observation");
lierSelectionTampon = new Item("Lier le tampon à la sélection d'observation");
afficherSelection = new Item("Afficher le tampon");
lierSelection = new Item(Msg.get("lier-images-selection-obs"));
lierSelectionTampon = new Item(Msg.get("lier-tampon-selection-obs"));
afficherSelection = new Item(Msg.get("afficher-tampon"));
addItem(lierSelection);
addItem(lierSelectionTampon);
87,9 → 88,8
iMediateur = im;
if(liaison) {
supprimerLiaison = new Item("Supprimer la liaison") ;
if(liaison) {
supprimerLiaison = new Item(Msg.get("supprimer-liaison")) ;
addItem(supprimerLiaison);
}
/trunk/src/org/tela_botanica/client/cel2.java
1,6 → 1,6
package org.tela_botanica.client;
 
import org.tela_botanica.client.i18n.Messages;
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.modeles.objets.Configuration;
 
import com.google.gwt.ajaxloader.client.AjaxLoader;
37,7 → 37,7
*/
// TODO: config devrait être un singleton
Configuration config = new Configuration();
Messages msg = Messages.getInstance();
Msg.init();
// Chargement de l'api google maps v3 avant l'initialisation pour
// éviter des "complications"
/trunk/war/i18n/messages_en.js
4,5 → 4,85
"identifiez-vous" : "log-in",
"pour-transmettre-tela" : "to transmit them to the Tela Botanica network",
"connecte-en-tant-que" : "Logged in as {0}",
"deconnexion" : "logout"
"deconnexion" : "logout",
"filtres" : "Filters",
"dates" : "Dates",
"inconnue" : "Unknown",
"recherche-libre" : "Free search",
"rechercher" : "Search",
"afficher-images-tampon" : "Show images in the buffer only",
"ajouter-images" : "Add images",
"tampon" : "Buffer",
"gerer-mots-cles" : "Manage keywords",
"mots-cles" : "keywords",
"mots-cles-arbre" : "Keywords",
"appliquer" : "Apply",
"annuler" : "Cancel",
"nouveau-tag" : "New Tag",
"renommer" : "Rename",
"supprimer" : "Delete",
"plusieurs-fichiers-images-fois" : "Multiple files at once",
"un-fichier-image-fois" : "One file at a time",
"ajouter-images-tampon" : "Add selected images to the buffer",
"vider-tampon" : "Delete buffer content",
"afficher-tampon" : "Show buffer content",
"indication-utilisation-tampon" : "With the buffer, you can pick and show images from differents pages",
"indication-supprimer-images" : "Delete selected images",
"indication-plusieurs-fichiers-images-fois" : "Add images by selecting them one by one or by uploading a whole folder at once",
"galerie" : "Gallery",
"images" : "Images",
"avertissement-aucune-image" : "No image to display",
"cliquez-plusieurs-fichiers-images-fois" : "Click here to upload a whole folder or multiple files at once",
"necessite-java" : "requires Java",
"cliquez-un-fichier-image-fois" : "Click here to add files one at a time",
"indication-ajouter-images-plus-tard" : "To add images later, go to the File menu -> Add images",
"numero" : "Number",
"date" : "Date",
"lieu" : "Location",
"appareil" : "Device",
"image" : "Image",
"note" : "Note",
"nom-original" : "Original name",
"nom-associe" : "Associated name",
"glissez-deposer-images-obs" : "Drag and drop images on the observations list to link them",
"changer-utilisateur" : "Change user",
"lier-images-selection-obs" : "Link selected images to selected observations",
"lier-tampon-selection-obs" : "Link buffer to selected observations",
"supprimer-liaison" : "Delete link",
"taxon" : "Taxon",
"observations" : "Observations",
"toutes-observations" : "All observations",
"observations-liees" : "Linked observations",
"glissez-deposer-obs-images" : "Drag and drop the observation on an image or an image selection to link them",
"chargement" : "Loading",
"lier-images-selectionnes" : "Link to selected images",
"infos-generales" : "General infos",
"infos-exif" : "Exif",
"infos-iptc" : "Iptc",
"infos" : "Infos",
"commentaires" : "Comments",
"ok" : "ok",
"recherche-dans-observations" : "Search in observations",
"exif-metadonnees" : "Exif metadata",
"iptc-metadonnees" : "IPTC metadata",
"indication-zoom-retour-vue-precedente" : "Double click to go back to the previous view, use the mouse wheel or the arrows to navigate between images",
"mode-zoom" : "Zoom mode",
"choisir-utilisateur" : "Choose user",
"utilisateurs" : "Users",
"adresser-remarque-probleme" : "Send us your remarks or report a problem",
"admin-consulter-donnees" : "You are current viewing the observations of {0}",
"question-import-anonyme-connecte" : "Do you want to import your anonymous observations into your connected account"
}
/trunk/war/i18n/messages_fr.js
5,5 → 5,85
"identifiez-vous" : "identifiez-vous",
"pour-transmettre-tela" : "pour les transmettre à Tela Botanica",
"connecte-en-tant-que" : "Connecté en tant que {0}",
"deconnexion" : "deconnexion"
"deconnexion" : "deconnexion",
"filtres" : "Filtres",
"dates" : "Dates",
"inconnue" : "Inconnue",
"recherche-libre" : "Recherche libre",
"rechercher" : "Rechercher",
"afficher-images-tampon" : "Afficher uniquement les images dans le tampon",
"ajouter-images" : "Ajouter des images",
"tampon" : "Tampon",
"gerer-mots-cles" : "Gérer les mots clés",
"mots-cles" : "mots clés",
"mots-cles-arbre" : "Mots clés",
"appliquer" : "Appliquer",
"annuler" : "Annuler",
"nouveau-tag" : "Nouveau Tag",
"renommer" : "Renommer",
"supprimer" : "Supprimer",
"plusieurs-fichiers-images-fois" : "Plusieurs dossiers ou fichiers à la fois",
"un-fichier-image-fois" : "Un fichier à la fois",
"ajouter-images-tampon" : "Ajouter les images sélectionnées au tampon",
"vider-tampon" : "Supprimer le contenu du tampon",
"afficher-tampon" : "Afficher le contenu du tampon",
"indication-utilisation-tampon" : "Permet de sélectionner et d'afficher des images présentes sur plusieurs pages",
"indication-supprimer-images" : "Supprimer les images sélectionnées",
"indication-plusieurs-fichiers-images-fois" : "Ajouter des images en les selectionnant une par une ou bien un dossier à la fois",
"galerie" : "Galerie",
"images" : "Images",
"avertissement-aucune-image" : "Aucune image à afficher",
"cliquez-plusieurs-fichiers-images-fois" : "Cliquez ici pour ajouter un dossier entier ou plusieurs fichiers",
"necessite-java" : "nécessite Java",
"cliquez-un-fichier-image-fois" : "Cliquez ici pour ajouter un fichier à la fois",
"indication-ajouter-images-plus-tard" : "Pour ajouter des images plus tard, allez dans le menu Fichier -> Ajouter des images",
 
"numero" : "Numéro",
"date" : "Date",
"lieu" : "Lieu",
"appareil" : "Appareil",
"image" : "Image",
"note" : "Note",
"nom-original" : "Nom original",
"nom-associe" : "Nom associé",
"glissez-deposer-images-obs" : "Glissez les images sur la liste d'observation pour les lier",
"changer-utilisateur" : "Changer d'utilisateur",
"lier-images-selection-obs" : "Lier les images selectionnées à la sélection d'observation",
"lier-tampon-selection-obs" : "Lier le tampon à la sélection d'observation",
"supprimer-liaison" : "Supprimer la liaison",
"taxon" : "Taxon",
"observations" : "Observations",
"toutes-observations" : "Toutes les observations",
"observations-liees" : "Observations liées",
"glissez-deposer-obs-images" : "Glissez l'observation sur une image ou une selection d'images pour les lier",
"chargement" : "Chargement",
"lier-images-selectionnes" : "Lier aux images selectionnées",
"infos-generales" : "Infos générales",
"infos-exif" : "Exif",
"infos-iptc" : "Iptc",
"infos" : "Infos",
"commentaires" : "Commentaires",
"ok" : "ok",
"recherche-dans-observations" : "Rechercher dans les observations",
"exif-metadonnees" : "Metadonnées EXIF",
"iptc-metadonnees" : "metadonnées IPTC",
"indication-zoom-retour-vue-precedente" : "Double cliquez pour revenir à la vue précédente, utilisez la roulette ou les boutons fléchés pour faire défiler les images",
"mode-zoom" : "Mode zoom",
"choisir-utilisateur" : "Choisir un utilisateur",
"utilisateurs" : "Utilisateurs",
"adresser-remarque-probleme" : "Adressez-nous vos remarques ou signalez-nous un problème",
"admin-consulter-donnees" : "Vous consultez les données de {0}",
"question-import-anonyme-connecte" : "Voulez vous importer vos observations déjà saisies dans votre compte une fois connecté"
}