Author: echatellier Date: 2012-02-08 11:25:52 +0100 (Wed, 08 Feb 2012) New Revision: 972 Url: http://forge.codelutin.com/repositories/revision/coser/972 Log: #810 : Traduction des commentaires de zone suivante la locale du site Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java trunk/coser-business/src/test/resources/webzones.csv trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2012-02-08 10:25:31 UTC (rev 971) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2012-02-08 10:25:52 UTC (rev 972) @@ -1044,7 +1044,7 @@ */ public Map<String, String> getFacades() throws CoserBusinessException { Map<String, String> facades = new LinkedHashMap<String, String>(); - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" DataStorage zonesMap = getZonesMap(); Iterator<String[]> itZone = zonesMap.iterator(true); while (itZone.hasNext()) { @@ -1072,7 +1072,7 @@ Collection<String> subZones = new ArrayList<String>(); Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" String[] tuple = itZone.next(); if (tuple[1].equals(facade)) { subZones.add(tuple[0]); @@ -1115,7 +1115,7 @@ if (subZones.contains(resultZoneId)) { String zoneid = resultZoneId; // get zone name - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" int zoneIndex = getZonesMap().indexOf(zoneid); String[] zoneData = getZonesMap().get(zoneIndex); String zoneName = zoneData[3] + " - " + zoneData[4] + " - " + zoneData[5]; @@ -1146,10 +1146,9 @@ Map<String, List<String>> zonesByFacade = new HashMap<String, List<String>>(); // get subzone for main zone - List<String> subZones = new ArrayList<String>(); Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" String[] tuple = itZone.next(); String facadeid = tuple[1]; String zoneid = tuple[0]; @@ -1180,7 +1179,7 @@ // get subzone for main zone Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" String[] tuple = itZone.next(); if (tuple[1].equals(facade)) { if (!surveyForFacade.containsKey(tuple[5])) { @@ -1203,9 +1202,9 @@ Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" String[] tuple = itZone.next(); - result.put(tuple[0], tuple[7]); + result.put(tuple[0], tuple[8]); } return result; @@ -1214,17 +1213,23 @@ /** * Recupere la liste des meta info pour chaque id de zone sous forme de Map. * + * @param locale locale ({@code fr} ou {@code en}) * @return zone meta info map * @throws CoserBusinessException */ - public Map<String, String> getZoneMetaInfo() throws CoserBusinessException { + public Map<String, String> getZoneMetaInfo(String locale) throws CoserBusinessException { Map<String, String> result = new HashMap<String, String>(); Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" String[] tuple = itZone.next(); - result.put(tuple[0], tuple[6]); + // FIXME echatellier 20120208 replace with real locale object + if ("fr".equalsIgnoreCase(locale)) { + result.put(tuple[0], tuple[6]); + } else { + result.put(tuple[0], tuple[7]); + } } return result; @@ -1666,7 +1671,7 @@ // code type espece qui a besoin d'une traduction if (tupleType[4].equalsIgnoreCase("T")) { // FIXME fix locale - if (locale.equalsIgnoreCase("fr")) { + if ("fr".equalsIgnoreCase(locale)) { translation = "Tous Liste " + list.charAt(1); } else { translation = "All List " + list.charAt(1); @@ -1675,7 +1680,7 @@ else { // ajout de la traduction du nom de liste plus le numéro // FIXME fix locale - if (locale.equalsIgnoreCase("fr")) { + if ("fr".equalsIgnoreCase(locale)) { translation = tupleType[0] + " Liste " + list.charAt(1); } else { translation = tupleType[0] + " List " + list.charAt(1); Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java =================================================================== --- trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2012-02-08 10:25:31 UTC (rev 971) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2012-02-08 10:25:52 UTC (rev 972) @@ -100,10 +100,38 @@ @Test public void testGetZones() throws CoserBusinessException { DataStorage zones = webService.getZonesMap(); - Assert.assertEquals(23, zones.size()); + Assert.assertEquals(24, zones.size()); } /** + * Test de lecture du fichier de zones de resources de test. + * + * @throws CoserBusinessException + */ + @Test + public void testGetZonePictures() throws CoserBusinessException { + Map<String, String> zonesAndPictures = webService.getZonePictures(); + Assert.assertEquals("C_GdG-MC.png", zonesAndPictures.get("gdgmc")); + } + + /** + * Test de lecture du fichier de zones de resources de test. + * + * @throws CoserBusinessException + */ + @Test + public void testGetZoneMetaInfo() throws CoserBusinessException { + Map<String, String> zonesMetaInfos = webService.getZoneMetaInfo("fr"); + Assert.assertEquals("Ensemble de la couverture Evhoe", zonesMetaInfos.get("gdgmc")); + + zonesMetaInfos = webService.getZoneMetaInfo("en"); + Assert.assertEquals("Area covered by Evhoe survey", zonesMetaInfos.get("gdgmc")); + + zonesMetaInfos = webService.getZoneMetaInfo(null); + Assert.assertEquals("Area covered by Evhoe survey", zonesMetaInfos.get("gdgmc")); + } + + /** * Test que les upload successible merge bien les resultats en fonction * des idenfiants des zones auquels ils sont affectés et que les resulats * en conflit sont bien supprimé (avec si besoins leurs selections et projets). @@ -246,5 +274,10 @@ Assert.assertEquals(2, lists.size()); Assert.assertEquals("Type2 Liste 1", lists.get("m1")); Assert.assertEquals("Type2 Liste 2", lists.get("m2")); + + lists = webService.getIndicatorLists("ecorse", "Delta", null); + Assert.assertEquals(2, lists.size()); + Assert.assertEquals("Type2 List 1", lists.get("m1")); + Assert.assertEquals("Type2 List 2", lists.get("m2")); } } Modified: trunk/coser-business/src/test/resources/webzones.csv =================================================================== --- trunk/coser-business/src/test/resources/webzones.csv 2012-02-08 10:25:31 UTC (rev 971) +++ trunk/coser-business/src/test/resources/webzones.csv 2012-02-08 10:25:52 UTC (rev 972) @@ -1,23 +1,24 @@ -"id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" -"northibts";"merdunord";"Mer du Nord";"Toutes zones IBTS au sud de 57° 30' N";"1983 >";"IBTS";"Application prioritaire : cartes de distribution des espèces";"C_Ciem-4b-4c-E7d.png" -"northibts2";"merdunord";"Mer du Nord";"Toutes zones IBTS au sud de 57° 30' N";"2007 >";"IBTS";"Application prioritaire : cartes de distribution des espèces";"C_Ciem-4b-4c.png" -"ciem4b4c";"merdunord";"Mer du Nord";"CIEM 4b - 4c";"1983 >";"IBTS";"D'après données internationales extraites de la base Datras du CIEM";"C_Ciem-4b-4c.png" -"ciem4c";"merdunord";"Mer du Nord";"CIEM 4c";"1983 >";"IBTS";"D'après données internationales extraites de la base Datras du CIEM";"C_Ciem-4c.png" -"ciem4ce7d";"merdunord";"Mer du Nord";"CIEM 4c - Est 7d";"2007 >";"IBTS";"D'après données internationales extraites de la base Datras du CIEM";"C_Ciem-4c-E7d.png" -"ciem4c4e7d";"merdunord";"Mer du Nord";"CIEM 4c4 - Est 7d";"2007 >";"IBTS";"- Détroit du Pas-de-Calais\n- D'après données internationales extraites de la base Datras du CIEM";"C_Ciem-4c4-E7d.png" -"cieme7d";"mancheorientale";"Manche orientale";"Est de 1° 15' O";"1988 >";"CGFS";;"C_Ciem-E7d.png" -"ciem7d";"mancheorientale";"Manche orientale";"Ensemble Manche orientale";"1990 >";"CGFS";"Correspond à l'ensemble de la zone VIId du CIEM";"C_Ciem-7d.png" -"noursom";"mancheorientale";"Manche orientale";"Baie de Somme";"1994 >";"Noursom";;"C_Noursom.png" -"nurvil";"atlantique";"Atlantique";"Baie de Vilaine";"1997 >";"Nurvil";"";"C_Nurvil.png" -"noursein";"mancheorientale";"Manche orientale";"Baie de Seine";"1995 - 2010";"Noursein";"Série arrêtée en 2010";"C_Noursein.png" -"crustaflam";"mancheoccidentale";"Manche occidentale";"Abords du cap de Flamanville";"Juin 1985 >";"Crustaflam";"Série du mois de juin";"C_Crustaflam.png" -"crustaflam2";"mancheoccidentale";"Manche occidentale";"Abords du cap de Flamanville";"Sept. – 1985 >";"Crustaflam";"Série du mois de septembre";"C_Crustaflam.png" -"gdgmc";"atlantique";"Atlantique";"Golfe de Gascogne + mer Celtique";"1997 >";"Evhoe";"Ensemble de la couverture Evhoe";"C_GdG-MC.png" -"mcech";"atlantique";"Atlantique";"Mer Celtique (strates d'échantillonnage)";"1997 >";"Evhoe";;"C_MC-Ech.png" -"mcciem7";"atlantique";"Atlantique";"Mer Celtique (zone VII du CIEM)";"1997 >";"Evhoe";"La limite sud de la zone VII du CIEM (48 °N) constitue aussi une limite de régions de la DCSMM";"C_MC-Ciem-7.png" -"gdgech";"atlantique";"Atlantique";"Golfe de Gascogne (strates d'échantillonnage)";"1987 >";"Evhoe";;"C_GdG-Ech.png" -"gdgech2";"atlantique";"Atlantique";"Golfe de Gascogne (strates d'échantillonnage)";"1992 >";"Evhoe";"Plus d'espèces mesurées à partir de 1992";"C_GdG-Ech.png" -"gdgciem7";"atlantique";"Atlantique";"Golfe de Gascogne (zone VIII du CIEM)";"1987 >";"Evhoe";"La limite nord de la zone VIII du CIEM (48 °N) constitue aussi une limite de régions de la DCSMM";"C_GdG-Ciem-7.png" -"gdgciem72";"atlantique";"Atlantique";"Golfe de Gascogne (zone VIII du CIEM)";"1992 >";"Evhoe";"- La limite nord de la zone VIII du CIEM (48 °N) constitue aussi une limite de régions de la DCSMM\n- Plus d'espèces mesurées à partir de 1992";"C_GdG-Ciem-7.png" -"gdl";"mediteranee";"Méditerranée";"Golfe du Lion";"1994 >";"Medits";;"C_GdL.png" -"ecorse";"mediteranee";"Méditerranée";"Est-Corse";"1994 >";"Medits";"1997 exclue (couverture incomplète)";"C_E-Corse.png" +"id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" +"northibts";"merdunord";"Mer du Nord";"Toutes zones IBTS au sud de 57° 30' N";"1983 >";"IBTS";"Application prioritaire : cartes de distribution des espèces";"Selected area: species distribution maps";"C_Ciem-4b-4c-E7d.png" +"northibts2";"merdunord";"Mer du Nord";"Toutes zones IBTS au sud de 57° 30' N";"2007 >";"IBTS";"Application prioritaire : cartes de distribution des espèces";"Selected area: species distribution maps";"C_Ciem-4b-4c.png" +"ciem4b4c";"merdunord";"Mer du Nord";"CIEM 4b - 4c";"1983 >";"IBTS";"D'après données internationales extraites de la base Datras du CIEM";"Based on international data from ICES Datras data base";"C_Ciem-4b-4c.png" +"ciem4c";"merdunord";"Mer du Nord";"CIEM 4c";"1983 >";"IBTS";"D'après données internationales extraites de la base Datras du CIEM";"Based on international data from ICES Datras data base";"C_Ciem-4c.png" +"ciem4ce7d";"merdunord";"Mer du Nord";"CIEM 4c - Est 7d";"2007 >";"IBTS";"D'après données internationales extraites de la base Datras du CIEM";"Based on international data from ICES Datras data base";"C_Ciem-4c-E7d.png" +"ciem4c4e7d";"merdunord";"Mer du Nord";"CIEM 4c4 - Est 7d";"2007 >";"IBTS";"- Détroit du Pas-de-Calais\n- D'après données internationales extraites de la base Datras du CIEM";"Based on international data from ICES Datras data base";"C_Ciem-4c4-E7d.png" +"cieme7d";"mancheorientale";"Manche orientale";"Est de 1° 15' O";"1988 >";"CGFS";;;"C_Ciem-E7d.png" +"ciem7d";"mancheorientale";"Manche orientale";"Ensemble Manche orientale";"1990 >";"CGFS";"Correspond à l'ensemble de la zone VIId du CIEM";"Corresponds to ICES Division VIId";"C_Ciem-7d.png" +"noursom";"mancheorientale";"Manche orientale";"Baie de Somme";"1994 >";"Noursom";;;"C_Noursom.png" +"nurvil";"atlantique";"Atlantique";"Baie de Vilaine";"1997 >";"Nurvil";;;"C_Nurvil.png" +"noursein";"mancheorientale";"Manche orientale";"Baie de Seine";"1995 - 2010";"Noursein";"Série arrêtée en 2010";"Survey discontinued in 2010";"C_Noursein.png" +"crustaflam";"mancheoccidentale";"Manche occidentale";"Abords du cap de Flamanville";"Juin 1985 >";"Crustaflam";"Série du mois de juin";"June survey";"C_Crustaflam.png" +"crustaflam2";"mancheoccidentale";"Manche occidentale";"Abords du cap de Flamanville";"Sept. – 1985 >";"Crustaflam";"Série du mois de septembre";"September survey";"C_Crustaflam.png" +"gdgmc";"atlantique";"Atlantique";"Golfe de Gascogne + mer Celtique";"1997 >";"Evhoe";"Ensemble de la couverture Evhoe";"Area covered by Evhoe survey";"C_GdG-MC.png" +"mcech";"atlantique";"Atlantique";"Mer Celtique (strates d'échantillonnage)";"1997 >";"Evhoe";;;"C_MC-Ech.png" +"mcciem7";"atlantique";"Atlantique";"Mer Celtique (zone VII du CIEM)";"1997 >";"Evhoe";"La limite sud de la zone VII du CIEM (48 °N) constitue aussi une limite de régions de la DCSMM";"The southern limit of ICES division VII (48 °N) corresponds to a regional limit of the MSFD. ";"C_MC-Ciem-7.png" +"gdgech";"atlantique";"Atlantique";"Golfe de Gascogne (strates d'échantillonnage)";"1987 >";"Evhoe";;;"C_GdG-Ech.png" +"gdgech2";"atlantique";"Atlantique";"Golfe de Gascogne (strates d'échantillonnage)";"1992 >";"Evhoe";"Plus d'espèces mesurées à partir de 1992";"Size measurements for more species from 1992";"C_GdG-Ech.png" +"gdgciem7";"atlantique";"Atlantique";"Golfe de Gascogne (zone VIII du CIEM)";"1987 >";"Evhoe";"La limite nord de la zone VIII du CIEM (48 °N) constitue aussi une limite de régions de la DCSMM";"The northern limit of ICES division VIII (48 °N) corresponds to a regional limit of the MSFD.";"C_GdG-Ciem-7.png" +"gdgciem72";"atlantique";"Atlantique";"Golfe de Gascogne (zone VIII du CIEM)";"1992 >";"Evhoe";"- La limite nord de la zone VIII du CIEM (48 °N) constitue aussi une limite de régions de la DCSMM\n- Plus d'espèces mesurées à partir de 1992";"The northern limit of ICES division VIII (48 °N) corresponds to a regional limit of the MSFD.\n- Size measurements for more species from 1992";"C_GdG-Ciem-7.png" +"gdl";"mediteranee";"Méditerranée";"Golfe du Lion";"1994 >";"Medits";;;"C_GdL.png" +"ecorse";"mediteranee";"Méditerranée";"Est-Corse";"1994 >";"Medits";"1997 exclue (couverture incomplète)";"1997 excluded (only partial coverage)";"C_E-Corse.png" +"solper";"atlantique";"Atlantique";"Pertuis";"2005 >";"Solper";"Limitation aux Pertuis Charentais";"Limited to Pertuis Charentais"; Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2012-02-08 10:25:31 UTC (rev 971) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2012-02-08 10:25:52 UTC (rev 972) @@ -22,6 +22,7 @@ package fr.ifremer.coser.web.actions.common; +import java.util.Locale; import java.util.Map; import fr.ifremer.coser.CoserBusinessException; @@ -88,11 +89,14 @@ WebService webService = ServiceFactory.getWebService(); + Locale locale = getLocale(); + String localeCode = locale.getLanguage(); + try { // renvoi la liste des id subzone-survey et leurs label associé zones = webService.getZoneForFacade(facade, false, false); zonesPictures = webService.getZonePictures(); - zonesMetaInfo = webService.getZoneMetaInfo(); + zonesMetaInfo = webService.getZoneMetaInfo(localeCode); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get zone map", ex); } Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java 2012-02-08 10:25:31 UTC (rev 971) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java 2012-02-08 10:25:52 UTC (rev 972) @@ -22,6 +22,8 @@ package fr.ifremer.coser.web.actions.map; +import java.util.Locale; + import fr.ifremer.coser.CoserBusinessException; import fr.ifremer.coser.services.WebService; import fr.ifremer.coser.web.CoserWebException; @@ -47,11 +49,14 @@ WebService webService = ServiceFactory.getWebService(); + Locale locale = getLocale(); + String localeCode = locale.getLanguage(); + try { // renvoi la liste des id subzone-survey et leurs label associé zones = webService.getZoneForFacade(facade, false, true); zonesPictures = webService.getZonePictures(); - zonesMetaInfo = webService.getZoneMetaInfo(); + zonesMetaInfo = webService.getZoneMetaInfo(localeCode); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get zone map", ex); } Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2012-02-08 10:25:31 UTC (rev 971) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2012-02-08 10:25:52 UTC (rev 972) @@ -22,6 +22,8 @@ package fr.ifremer.coser.web.actions.source; +import java.util.Locale; + import fr.ifremer.coser.CoserBusinessException; import fr.ifremer.coser.services.WebService; import fr.ifremer.coser.web.CoserWebException; @@ -47,11 +49,14 @@ WebService webService = ServiceFactory.getWebService(); + Locale locale = getLocale(); + String localeCode = locale.getLanguage(); + try { // renvoi la liste des id subzone-survey et leurs label associé zones = webService.getZoneForFacade(facade, true, false); zonesPictures = webService.getZonePictures(); - zonesMetaInfo = webService.getZoneMetaInfo(); + zonesMetaInfo = webService.getZoneMetaInfo(localeCode); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get zone map", ex); }