Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
8bc23333
by Tony CHEMIT at 2017-07-12T14:04:51+02:00
6 changed files:
- application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java
- application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/TranslateAction.java
- application-swing/src/main/resources/i18n/application-swing_en_GB.properties
- application-swing/src/main/resources/i18n/application-swing_es_ES.properties
- application-swing/src/main/resources/i18n/application-swing_fr_FR.properties
- pom.xml
Changes:
| ... | ... | @@ -380,7 +380,7 @@ public abstract class ObserveRunner extends ApplicationRunner { |
| 380 | 380 |
return config;
|
| 381 | 381 |
}
|
| 382 | 382 |
|
| 383 |
- private void initUserDirectories(ObserveSwingApplicationConfig config) throws IOException {
|
|
| 383 |
+ private void initUserDirectories(ObserveSwingApplicationConfig config) throws IOException {
|
|
| 384 | 384 |
|
| 385 | 385 |
// 1 - user data directory
|
| 386 | 386 |
|
| ... | ... | @@ -491,6 +491,9 @@ public abstract class ObserveRunner extends ApplicationRunner { |
| 491 | 491 |
|
| 492 | 492 |
@Override
|
| 493 | 493 |
protected void createUserI18nLayout(File directory) throws Exception {
|
| 494 |
+ if (config.getI18nDefinitionFile().exists()) {
|
|
| 495 |
+ return;
|
|
| 496 |
+ }
|
|
| 494 | 497 |
super.createUserI18nLayout(directory);
|
| 495 | 498 |
|
| 496 | 499 |
// add also a archive with all i18n stuff (says i18n bundle + templates)
|
| ... | ... | @@ -26,8 +26,12 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; |
| 26 | 26 |
import fr.ird.observe.application.swing.ObserveSwingTechnicalException;
|
| 27 | 27 |
import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig;
|
| 28 | 28 |
import fr.ird.observe.application.swing.ui.ObserveMainUI;
|
| 29 |
+import fr.ird.observe.application.swing.ui.ObserveUICallback;
|
|
| 30 |
+import fr.ird.observe.application.swing.ui.UIHelper;
|
|
| 29 | 31 |
import fr.ird.observe.application.swing.ui.actions.AbstractUIAction;
|
| 30 | 32 |
import java.awt.event.ActionEvent;
|
| 33 |
+import java.awt.event.WindowAdapter;
|
|
| 34 |
+import java.awt.event.WindowEvent;
|
|
| 31 | 35 |
import java.io.File;
|
| 32 | 36 |
import java.io.IOException;
|
| 33 | 37 |
import java.net.URL;
|
| ... | ... | @@ -66,12 +70,29 @@ public class TranslateAction extends AbstractUIAction { |
| 66 | 70 |
ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig();
|
| 67 | 71 |
File i18nDefinitionFile = config.getI18nDefinitionFile();
|
| 68 | 72 |
|
| 69 |
-// URL bundles = Project.class.getClassLoader().getResource("META-INF/observe-i18n-definition.properties");
|
|
| 70 | 73 |
try {
|
| 71 | 74 |
URL bundles = i18nDefinitionFile.toURI().toURL();
|
| 72 | 75 |
Objects.requireNonNull(bundles);
|
| 73 |
- ProjectUI projectUI = new ProjectUI(getMainUI(), new Project(bundles));
|
|
| 76 |
+ Project model = new Project(bundles);
|
|
| 77 |
+ ProjectUI projectUI = new ProjectUI(getMainUI(), model);
|
|
| 74 | 78 |
projectUI.toggleFilter();
|
| 79 |
+ |
|
| 80 |
+ projectUI.addWindowListener(new WindowAdapter() {
|
|
| 81 |
+ @Override
|
|
| 82 |
+ public void windowClosed(WindowEvent e) {
|
|
| 83 |
+ if (model.getLastExport() != null) {
|
|
| 84 |
+ File i18nDefinitionFileParentFile = i18nDefinitionFile.getParentFile();
|
|
| 85 |
+ log.info(String.format("Found existing i18n export, will merge it to user i18n data (%s).", i18nDefinitionFileParentFile));
|
|
| 86 |
+ try {
|
|
| 87 |
+ model.mergeExport(i18nDefinitionFileParentFile);
|
|
| 88 |
+ } catch (IOException e1) {
|
|
| 89 |
+ throw new ObserveSwingTechnicalException("Can't merge i18n export", e1);
|
|
| 90 |
+ }
|
|
| 91 |
+ UIHelper.displayInfo(t("observe.title.reload.i18n"), t("observe.message.reload.i18n"));
|
|
| 92 |
+ ObserveUICallback.application.run();
|
|
| 93 |
+ }
|
|
| 94 |
+ }
|
|
| 95 |
+ });
|
|
| 75 | 96 |
} catch (IOException e) {
|
| 76 | 97 |
throw new ObserveSwingTechnicalException("can't open i18n editor", e);
|
| 77 | 98 |
}
|
| ... | ... | @@ -417,6 +417,7 @@ observe.common.length.computed.tip=Length was computed |
| 417 | 417 |
observe.common.length.inf=Length (cm inf.)
|
| 418 | 418 |
observe.common.length.observed.tip=Length was observed
|
| 419 | 419 |
observe.common.length2=Length (cm)
|
| 420 |
+observe.common.lengthMeasureType=Length measure type
|
|
| 420 | 421 |
observe.common.libelles=Labels
|
| 421 | 422 |
observe.common.lowerValueUpperValue=Bounds min-max
|
| 422 | 423 |
observe.common.mammalsObservation=Mammals observations
|
| ... | ... | @@ -1487,6 +1488,7 @@ observe.message.quit.valid.edit=Data are modified and valid\! |
| 1487 | 1488 |
observe.message.referentiel.editable=Referential is editable.
|
| 1488 | 1489 |
observe.message.referentiel.home=< Referential >
|
| 1489 | 1490 |
observe.message.referentiel.no.editable=You are not allowed to edit referential.
|
| 1491 |
+observe.message.reload.i18n=You have modified i18n, application must be restart.
|
|
| 1490 | 1492 |
observe.message.select.report=Select a report
|
| 1491 | 1493 |
observe.message.server.info=Local database %1$s is ready in server mode.
|
| 1492 | 1494 |
observe.message.show.usage.for.delete=Referential %1$s "%2$s" can be deleted if you choose a replacement.
|
| ... | ... | @@ -1703,6 +1705,7 @@ observe.title.load.remote.db=Load remote database |
| 1703 | 1705 |
observe.title.need.confirm=Need a confirmation...
|
| 1704 | 1706 |
observe.title.need.confirm.to.desactivate.referentiel=Need a confirmation to disable a referentiel data...
|
| 1705 | 1707 |
observe.title.no.local.db.found=No local database found.
|
| 1708 |
+observe.title.reload.i18n=Application need to restart...
|
|
| 1706 | 1709 |
observe.title.save.localDB=Save local storage to a file
|
| 1707 | 1710 |
observe.title.save.remoteDB=Save remote database to a file
|
| 1708 | 1711 |
observe.title.show.usage=Show usages
|
| ... | ... | @@ -417,6 +417,7 @@ observe.common.length.computed.tip=Longitud calculada |
| 417 | 417 |
observe.common.length.inf=Longitud (cm inf.)
|
| 418 | 418 |
observe.common.length.observed.tip=Longitud observada
|
| 419 | 419 |
observe.common.length2=Longitud eslora total (cm) \#TODO
|
| 420 |
+observe.common.lengthMeasureType=Type de mensuration \#TODO
|
|
| 420 | 421 |
observe.common.libelles=Textos
|
| 421 | 422 |
observe.common.lowerValueUpperValue=Bornes min-max
|
| 422 | 423 |
observe.common.mammalsObservation=Mamiferos
|
| ... | ... | @@ -498,8 +499,6 @@ observe.config.category.technical=Técnico |
| 498 | 499 |
observe.config.category.technical.description=Información técnica
|
| 499 | 500 |
observe.config.category.ui=GUI
|
| 500 | 501 |
observe.config.category.ui.description=Configuración GUI
|
| 501 |
-observe.content.action.activity=Crear una nueva actividad
|
|
| 502 |
-observe.content.action.activity.tip=Crear una nueva actividad para la ruta actual
|
|
| 503 | 502 |
observe.content.action.closeAndCreate=Cerrar y crear
|
| 504 | 503 |
observe.content.action.closeAndCreate.activity=Actividad siguiente
|
| 505 | 504 |
observe.content.action.closeAndCreate.activity.tip=Cierre de la actividad actual y creación de una nueva
|
| ... | ... | @@ -1489,6 +1488,7 @@ observe.message.quit.valid.edit=¡Los datos han sido modificados y son válidos\ |
| 1489 | 1488 |
observe.message.referentiel.editable=El referencial es editable.
|
| 1490 | 1489 |
observe.message.referentiel.home=< Referencial >
|
| 1491 | 1490 |
observe.message.referentiel.no.editable=No tiene permisos para editar el referencial.
|
| 1491 |
+observe.message.reload.i18n=Vous avez modifié des traductions, le redémarrage de l'application est nécessaire pour les prendre en compte. \#TODO
|
|
| 1492 | 1492 |
observe.message.select.report=Seleccione informe
|
| 1493 | 1493 |
observe.message.server.info=Información modo servidor
|
| 1494 | 1494 |
observe.message.show.usage.for.delete=El referencial %1$s "%2$s" no se puede eliminar sin hacer una sustitución antes.
|
| ... | ... | @@ -1705,6 +1705,7 @@ observe.title.load.remote.db=Cargando una base remota |
| 1705 | 1705 |
observe.title.need.confirm=Una confirmación se necesita...
|
| 1706 | 1706 |
observe.title.need.confirm.to.desactivate.referentiel=Una confirmación se necesita para désactivar un referencial...
|
| 1707 | 1707 |
observe.title.no.local.db.found=Ninguna base local fue encontrada
|
| 1708 |
+observe.title.reload.i18n=Rechargement de l'application nécessaire... \#TODO
|
|
| 1708 | 1709 |
observe.title.save.localDB=Guardar la base local en un archivo
|
| 1709 | 1710 |
observe.title.save.remoteDB=Guardar la base remota en un archivo
|
| 1710 | 1711 |
observe.title.show.usage=Listas de las utilizaciones de un referencial...
|
| ... | ... | @@ -17,7 +17,6 @@ observe.action.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le cont |
| 17 | 17 |
observe.action.back.to.list=Retour à la liste
|
| 18 | 18 |
observe.action.back.to.list.tip=Retour à la liste des données
|
| 19 | 19 |
observe.action.cancel=Annuler
|
| 20 |
-observe.action.cancel.create.tip=Annuler la création de l'objet
|
|
| 21 | 20 |
observe.action.change.storage=Changer la source de données
|
| 22 | 21 |
observe.action.change.storage.tip=Pour changer la source de données de l'application
|
| 23 | 22 |
observe.action.choose.db.dump=Choisir la sauvegarde
|
| ... | ... | @@ -68,9 +67,6 @@ observe.action.copyFloatingObjectPartToLeft.tip=Recopier les valeurs du départ |
| 68 | 67 |
observe.action.copyFloatingObjectPartToRight=Recopier les valeurs de l'arrivée vers de départ
|
| 69 | 68 |
observe.action.copyFloatingObjectPartToRight.tip=Recopier les valeurs de l'arrivée vers de départ
|
| 70 | 69 |
observe.action.create=Créer
|
| 71 |
-observe.action.db.locale.es.tip=Changer la langue du référentiel en espagnol
|
|
| 72 |
-observe.action.db.locale.fr.tip=Changer la langue du référentiel en français
|
|
| 73 |
-observe.action.db.locale.uk.tip=Changer la langue du référentiel en anglais
|
|
| 74 | 70 |
observe.action.delete=Supprimer
|
| 75 | 71 |
observe.action.delete.activity.tip=Supprimer l'activité
|
| 76 | 72 |
observe.action.delete.entry.tip=Supprimer l'entrée en cours d'édition
|
| ... | ... | @@ -117,7 +113,6 @@ observe.action.new.entry.tip=Créer une nouvelle entrée |
| 117 | 113 |
observe.action.open.screen=Ouverture de l'écran <%1$s>
|
| 118 | 114 |
observe.action.quit=Quitter
|
| 119 | 115 |
observe.action.quit.tip=Quitter le gestionnaire
|
| 120 |
-observe.action.quitHelp.tip=Quitter l'écran d'aide
|
|
| 121 | 116 |
observe.action.reload.application=Redémarrer l'application
|
| 122 | 117 |
observe.action.reload.storage=Recharger la source de données
|
| 123 | 118 |
observe.action.reload.storage.tip=Ferme et rouvre la source de données
|
| ... | ... | @@ -433,7 +428,6 @@ observe.common.meanLengthComputed.observed.tip=La taille moyenne a été observà |
| 433 | 428 |
observe.common.meanValues=Valeurs moyennes
|
| 434 | 429 |
observe.common.meanWeightComputed.computed.tip=Le poids moyen a été calculé (%s)
|
| 435 | 430 |
observe.common.meanWeightComputed.observed.tip=Le poids moyen a été observé
|
| 436 |
-observe.common.measureType=Type de mensuration
|
|
| 437 | 431 |
observe.common.minLength=Taille minimum (en cm)
|
| 438 | 432 |
observe.common.minLengthMax=Taille min-max (en cm)
|
| 439 | 433 |
observe.common.minWeight=Poids minimum (en Kg)
|
| ... | ... | @@ -1494,6 +1488,7 @@ observe.message.quit.valid.edit=Les données ont été modifiées et sont valide |
| 1494 | 1488 |
observe.message.referentiel.editable=Le référentiel est éditable.
|
| 1495 | 1489 |
observe.message.referentiel.home=< Référentiel >
|
| 1496 | 1490 |
observe.message.referentiel.no.editable=Vous n'êtes pas autorisé à éditer le référentiel.
|
| 1491 |
+observe.message.reload.i18n=Vous avez modifié des traductions, le redémarrage de l'application est nécessaire pour les prendre en compte.
|
|
| 1497 | 1492 |
observe.message.select.report=Choisissez une requête
|
| 1498 | 1493 |
observe.message.server.info=La base locale %1$s est démarrée en mode serveur.
|
| 1499 | 1494 |
observe.message.show.usage.for.delete=Le référentiel %1$s "%2$s" ne peut pas être supprimé sans effectuer au préalable un remplacement.
|
| ... | ... | @@ -1710,6 +1705,7 @@ observe.title.load.remote.db=Chargement d'une base distante |
| 1710 | 1705 |
observe.title.need.confirm=Une confirmation de votre part est requise...
|
| 1711 | 1706 |
observe.title.need.confirm.to.desactivate.referentiel=Une confirmation de votre part est requise pour désactiver un référentiel...
|
| 1712 | 1707 |
observe.title.no.local.db.found=Aucune base locale trouvée
|
| 1708 |
+observe.title.reload.i18n=Rechargement de l'application nécessaire...
|
|
| 1713 | 1709 |
observe.title.save.localDB=Sauver la base locale vers une fichier
|
| 1714 | 1710 |
observe.title.save.remoteDB=Sauver la base distante vers un fichier
|
| 1715 | 1711 |
observe.title.show.usage=Listes des utilisations d'un référentiel...
|
| ... | ... | @@ -174,7 +174,7 @@ |
| 174 | 174 |
<processorPluginVersion>1.3</processorPluginVersion>
|
| 175 | 175 |
|
| 176 | 176 |
<jaxxVersion>3.0-alpha-8-SNAPSHOT</jaxxVersion>
|
| 177 |
- <nuitonI18nVersion>4.0-alpha-2</nuitonI18nVersion>
|
|
| 177 |
+ <nuitonI18nVersion>4.0-alpha-3-SNAPSHOT</nuitonI18nVersion>
|
|
| 178 | 178 |
<nuitonConfigVersion>3.2</nuitonConfigVersion>
|
| 179 | 179 |
<topiaVersion>3.2.1</topiaVersion>
|
| 180 | 180 |
<nuitonValidatorVersion>3.1</nuitonValidatorVersion>
|