Author: echatellier Date: 2012-08-09 12:36:21 +0200 (Thu, 09 Aug 2012) New Revision: 1033 Url: http://forge.codelutin.com/repositories/revision/coser/1033 Log: refs #1335 : Ajouter la gestion d'une troisi?\195?\168me langue : espagnol Added: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_es.properties trunk/coser-web/src/main/webapp/images/es.png trunk/coser-web/src/main/webapp/images/zones/es.png Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 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/webindicators.csv trunk/coser-business/src/test/resources/webzones.csv trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 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/pop/GraphAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp trunk/coser-web/src/main/webapp/styles/coser.css trunk/pom.xml Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/PublicationService.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -46,6 +46,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TreeMap; @@ -786,7 +787,7 @@ public File getRsufiResultComChart(Project project, File resultDirectory, RSufiResult rsufiResult, File codeTypeEspecesFile, String indicator, String list, String zoneDisplayName, String indicatorName, String unit, - String locale) throws CoserBusinessException { + Locale locale) throws CoserBusinessException { File result = null; @@ -861,9 +862,10 @@ // cas special, c'est la seule valeur du fichier // code type espece qui a besoin d'une traduction if (tuple[4].equalsIgnoreCase("T")) { - // FIXME fix locale - if (locale.equalsIgnoreCase("fr")) { + if ("fr".equals(locale.getLanguage())) { chartTitle += " - " + "Tous Liste " + localList.charAt(1); + } else if ("es".equals(locale.getLanguage())) { + chartTitle += " - " + "Todo Lista " + localList.charAt(1); } else { chartTitle += " - " + "All List " + localList.charAt(1); } @@ -871,8 +873,10 @@ else { // ajout de la traduction du nom de liste plus le numéro // FIXME fix locale - if (locale.equalsIgnoreCase("fr")) { + if ("fr".equals(locale.getLanguage())) { chartTitle += " - " + tuple[0] + " Liste " + localList.charAt(1); + } else if ("es".equals(locale.getLanguage())) { + chartTitle += " - " + tuple[0] + " Lista " + localList.charAt(1); } else { chartTitle += " - " + tuple[0] + " List " + localList.charAt(1); } @@ -900,8 +904,10 @@ // FIXME echatellier 20110414 hack just for year, need a real locale object here // to call _(locale, i18nkey) String yearAxis = "Year"; - if ("fr".equals(locale)) { + if ("fr".equals(locale.getLanguage())) { yearAxis = "Ann\u00E9e"; + } else if ("es".equals(locale.getLanguage())) { + yearAxis = "A\u00F1o"; } CategoryAxis categoryAxis = new CategoryAxis(yearAxis); categoryAxis.setCategoryMargin(0); @@ -963,7 +969,7 @@ */ public File getRsufiResultPopChart(Project project, File resultDirectory, RSufiResult rsufiResult, String species, String indicator, - String zoneDisplayName, String indicatorName, String unit, String locale) throws CoserBusinessException { + String zoneDisplayName, String indicatorName, String unit, Locale locale) throws CoserBusinessException { File result = null; @@ -1035,8 +1041,10 @@ // FIXME echatellier 20110414 hack just for year, need a real locale object here // to call _(locale, i18nkey) String yearAxis = "Year"; - if ("fr".equals(locale)) { + if ("fr".equals(locale.getLanguage())) { yearAxis = "Ann\u00E9e"; + } else if ("es".equals(locale.getLanguage())) { + yearAxis = "Ann\u00E9e"; } CategoryAxis categoryAxis = new CategoryAxis(yearAxis); categoryAxis.setCategoryMargin(0); 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-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -167,7 +167,7 @@ * @return indicators map * @throws CoserBusinessException */ - public MultiKeyMap getIndicatorsMap() throws CoserBusinessException { + protected MultiKeyMap getIndicatorsMap() throws CoserBusinessException { if (indicatorsMap == null) { indicatorsMap = new MultiKeyMap(); @@ -175,11 +175,12 @@ DataStorage indicatorsStorage = commonService.loadCSVFile(indicatorsFile); Iterator<String[]> iteratorInd = indicatorsStorage.iterator(true); while (iteratorInd.hasNext()) { - // "id";"label_fr";"label_en";"unit" + // "id";"label_fr";"label_en";"label_es";"unit" String[] indicator = iteratorInd.next(); indicatorsMap.put(indicator[0], "fr", indicator[1]); indicatorsMap.put(indicator[0], "en", indicator[2]); - indicatorsMap.put(indicator[0], "unit", indicator[3]); + indicatorsMap.put(indicator[0], "es", indicator[3]); + indicatorsMap.put(indicator[0], "unit", indicator[4]); } } @@ -187,6 +188,22 @@ } /** + * Get indicator translation by checking correct locale. + * + * @param indicator indicator code + * @param locale locale + * @return indicator translation + */ + protected String getIndicatorValue(String indicator, String localeCode) throws CoserBusinessException { + String localLocaleCode = localeCode; + if (!"fr".equals(localLocaleCode) && !"es".equals(localLocaleCode) + && !"unit".equals(localLocaleCode)) { + localLocaleCode = "en"; // en by default + } + return (String)getIndicatorsMap().get(indicator, localLocaleCode); + } + + /** * Charge les zones disponibles depuis le fichier des zones. * (zoneid, zonename) * @@ -224,7 +241,7 @@ public String getZoneFullName(String zoneId) throws CoserBusinessException { DataStorage localZoneMap = getZonesMap(); String resultName = null; - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es";"map" int zoneIndex = localZoneMap.indexOf(zoneId); if (zoneIndex != -1) { resultName = localZoneMap.get(zoneIndex)[2]; @@ -1044,7 +1061,7 @@ */ public Map<String, String> getFacades() throws CoserBusinessException { Map<String, String> facades = new LinkedHashMap<String, String>(); - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es";"map" DataStorage zonesMap = getZonesMap(); Iterator<String[]> itZone = zonesMap.iterator(true); while (itZone.hasNext()) { @@ -1072,7 +1089,7 @@ Collection<String> subZones = new ArrayList<String>(); Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es";"map" String[] tuple = itZone.next(); if (tuple[1].equals(facade)) { subZones.add(tuple[0]); @@ -1148,7 +1165,7 @@ // get subzone for main zone Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es";"map" String[] tuple = itZone.next(); String facadeid = tuple[1]; String zoneid = tuple[0]; @@ -1164,34 +1181,6 @@ } /** - * Pour une zone principale, recupere la liste des campagnes qui sont - * disponible dans cette zone principale. - * - * @param facade facade (le nom de la facade principale) - * @return couple campagneid/campagnename - * @throws CoserBusinessException - * @deprecated unused since 1.0.3 - */ - @Deprecated - public Map<String, String> getSurveyForFacade(String facade) throws CoserBusinessException { - Map<String, String> surveyForFacade = new HashMap<String, String>(); - - // get subzone for main zone - Iterator<String[]> itZone = getZonesMap().iterator(true); - while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" - String[] tuple = itZone.next(); - if (tuple[1].equals(facade)) { - if (!surveyForFacade.containsKey(tuple[5])) { - surveyForFacade.put(tuple[5], tuple[5]); - } - } - } - - return surveyForFacade; - } - - /** * Recupere la liste des cartes pour chaque id de zone sous forme de Map. * * @return zone images map @@ -1202,9 +1191,9 @@ Iterator<String[]> itZone = getZonesMap().iterator(true); while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es";"map" String[] tuple = itZone.next(); - result.put(tuple[0], tuple[8]); + result.put(tuple[0], tuple[9]); } return result; @@ -1213,20 +1202,21 @@ /** * Recupere la liste des meta info pour chaque id de zone sous forme de Map. * - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return zone meta info map * @throws CoserBusinessException */ - public Map<String, String> getZoneMetaInfo(String locale) throws CoserBusinessException { + public Map<String, String> getZoneMetaInfo(Locale 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";"comment_en";"map" + // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es";"map" String[] tuple = itZone.next(); - // FIXME echatellier 20120208 replace with real locale object - if ("fr".equalsIgnoreCase(locale)) { + if (locale != null && "fr".equals(locale.getLanguage())) { result.put(tuple[0], tuple[6]); + } else if (locale != null && "es".equals(locale.getLanguage())) { + result.put(tuple[0], tuple[8]); } else { result.put(tuple[0], tuple[7]); } @@ -1298,83 +1288,7 @@ return result; } - - /** - * Recuperer la liste des populations pour une campagnes donnée. - * - * Les resultats retourné ne peuvent être que de type "carte". - * - * @param survey survey id - * @return map species nom info>nom officiel - * @throws CoserBusinessException - * @deprecated unused since 1.0.3 - */ - @Deprecated - public Map<String, String> getSpeciesForSurvey(String survey) throws CoserBusinessException { - Map<String, String> result = new TreeMap<String, String>(); - - // parcours des resultats disponibles - File projectsDirectory = config.getWebMapsProjectsDirectory(); - File[] projectFiles = projectsDirectory.listFiles(); - if (projectFiles != null) { - for (File projectFile : projectFiles) { - if (projectFile.isDirectory()) { - File selectionsDirectory = new File(projectFile, CoserConstants.STORAGE_SELECTION_DIRECTORY); - File[] selectionFiles = selectionsDirectory.listFiles(); - - // selection iteration - if (selectionFiles != null) { - for (File selectionFile : selectionFiles) { - if (selectionFile.isDirectory()) { - File resultsDirectory = new File(selectionFile, CoserConstants.STORAGE_RESULTS_DIRECTORY); - File[] resultFiles = resultsDirectory.listFiles(); - - // result iteration - if (resultFiles != null) { - for (File resultFile : resultFiles) { - if (resultFile.isDirectory()) { - RSufiResult rsufiResult = projectService.getRSufiResult(resultFile); - - // extraction des especes pour le résultat demandé - if (rsufiResult.getZone() != null && rsufiResult.isMapsResult()) { - - // test parmis toutes les zones disponible - // si le resultat appartient a une zone - // qui porte sur la campagne demandée - boolean zoneRSufiResult = false; - Iterator<String[]> itZone = getZonesMap().iterator(true); - while (itZone.hasNext()) { - // "id";"facadeid";"facade";"zone";"periode";"serie";"comment";"map" - String[] tuple = itZone.next(); - - if (tuple[5].equals(survey) && rsufiResult.getZone().equals(tuple[0])) { - zoneRSufiResult = true; - } - } - - if (zoneRSufiResult) { - // load project (without data to get reftax data) - Project project = projectService.openProject(projectFile.getName(), projectsDirectory); - - Map<String, String> resultSpecies = getRsufiResultSpecies(project, resultFile, rsufiResult); - result.putAll(resultSpecies); - break; - } - } - } - } - } - } - } - } - } - } - } - - return result; - } - /** * Recupere la liste de toutes les especes nom sci et nom off à partir * d'un resultat. @@ -1429,11 +1343,11 @@ * * @param zone zone id * @param species especes (if {@code null} look for com indicators - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return la liste des indicateurs * @throws CoserBusinessException */ - public Map<String, String> getIndicators(String zone, String species, String locale) throws CoserBusinessException { + public Map<String, String> getIndicators(String zone, String species, Locale locale) throws CoserBusinessException { Map<String, String> indicators = new TreeMap<String, String>(); // parcours des resultats disponibles @@ -1492,14 +1406,12 @@ * @param resultDirectory rsufi result directory * @param rsufiResult result * @param species to get indicator - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return indicator for species * @throws CoserBusinessException */ - protected Map<String, String> getRsufiResultPopIndicators(File resultDirectory, RSufiResult rsufiResult, String species, String locale) throws CoserBusinessException { + protected Map<String, String> getRsufiResultPopIndicators(File resultDirectory, RSufiResult rsufiResult, String species, Locale locale) throws CoserBusinessException { - MultiKeyMap defaultIndicators = getIndicatorsMap(); - Map<String, String> result = new HashMap<String, String>(); // le fichier estcomind @@ -1516,9 +1428,9 @@ if (specyCode.equals(species)) { String indicatorCode = tuple[1]; - String translations = (String)defaultIndicators.get(indicatorCode, locale.toLowerCase()); + String translations = getIndicatorValue(indicatorCode, locale.getLanguage()); if (translations == null) { - translations = "##" + indicatorCode + "##"; + translations = "##" + indicatorCode + "##" + locale.getLanguage(); } result.put(indicatorCode, translations); } @@ -1533,14 +1445,12 @@ * * @param resultDirectory rsufi result directory * @param rsufiResult result - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return indicator for species * @throws CoserBusinessException */ - protected Map<String, String> getRsufiResultComIndicators(File resultDirectory, RSufiResult rsufiResult, String locale) throws CoserBusinessException { + protected Map<String, String> getRsufiResultComIndicators(File resultDirectory, RSufiResult rsufiResult, Locale locale) throws CoserBusinessException { - MultiKeyMap defaultIndicators = getIndicatorsMap(); - Map<String, String> result = new HashMap<String, String>(); // le fichier estcomind @@ -1554,9 +1464,9 @@ String[] tuple = estPopIndIterator.next(); String indicatorCode = tuple[1]; - String translations = (String)defaultIndicators.get(indicatorCode, locale.toLowerCase()); + String translations = getIndicatorValue(indicatorCode, locale.getLanguage()); if (translations == null) { - translations = "##" + indicatorCode + "##"; + translations = "##" + indicatorCode + "##" + locale.getLanguage(); } result.put(indicatorCode, translations); } @@ -1569,11 +1479,11 @@ * * @param zone zone id * @param indicator indicator - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return la liste des indicateurs * @throws CoserBusinessException */ - public Map<String, String> getIndicatorLists(String zone, String indicator, String locale) throws CoserBusinessException { + public Map<String, String> getIndicatorLists(String zone, String indicator, Locale locale) throws CoserBusinessException { // linked hash map (doit respecter l'ordre d'insertion) Map<String, String> indicators = new LinkedHashMap<String, String>(); @@ -1631,12 +1541,12 @@ * @param resultDirectory rsufi result directory * @param rsufiResult result * @param indicator indicator - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return indicator for species * @throws CoserBusinessException */ protected Map<String, String> getRsufiResultComIndicatorLists(File resultDirectory, - RSufiResult rsufiResult, File codeTypeEspecesFile, String indicator, String locale) throws CoserBusinessException { + RSufiResult rsufiResult, File codeTypeEspecesFile, String indicator, Locale locale) throws CoserBusinessException { // linked hash map (doit respecter l'ordre d'insertion) Map<String, String> result = new LinkedHashMap<String, String>(); @@ -1670,18 +1580,20 @@ // cas special, c'est la seule valeur du fichier // code type espece qui a besoin d'une traduction if (tupleType[4].equalsIgnoreCase("T")) { - // FIXME fix locale - if ("fr".equalsIgnoreCase(locale)) { + if (locale != null && "fr".equals(locale.getLanguage())) { translation = "Tous Liste " + list.charAt(1); + } else if (locale != null && "en".equals(locale.getLanguage())) { + translation = "Todo Lista " + list.charAt(1); } else { translation = "All List " + list.charAt(1); } } else { // ajout de la traduction du nom de liste plus le numéro - // FIXME fix locale - if ("fr".equalsIgnoreCase(locale)) { + if (locale != null && "fr".equals(locale.getLanguage())) { translation = tupleType[0] + " Liste " + list.charAt(1); + } else if (locale != null && "en".equals(locale.getLanguage())) { + translation = tupleType[0] + " Lista " + list.charAt(1); } else { translation = tupleType[0] + " List " + list.charAt(1); } @@ -1704,11 +1616,11 @@ * @param species especes (if {@code null} look for com indicators * @param indicator indicator * @param list indicator's list (if {@code null} look for pop indicators or no list selected - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return la liste des indicateurs * @throws CoserBusinessException */ - public File getChart(String zone, String species, String indicator, String list, String locale) throws CoserBusinessException { + public File getChart(String zone, String species, String indicator, String list, Locale locale) throws CoserBusinessException { File result = null; // parcours des resultats disponibles @@ -1738,8 +1650,8 @@ // load project (without data to get reftax data) Project project = projectService.openProject(projectFile.getName(), projectsDirectory); - String indicatorName = (String)getIndicatorsMap().get(indicator, locale); - String unit = (String)getIndicatorsMap().get(indicator, "unit"); + String indicatorName = getIndicatorValue(indicator, locale.getLanguage()); + String unit = getIndicatorValue(indicator, "unit"); String zoneDisplayName = getZoneFullName(zone); @@ -1782,11 +1694,11 @@ * @param species especes (if {@code null} look for com indicators * @param indicator indicator * @param list indicator's list (if {@code null} look for pop indicators or no list selected - * @param locale locale ({@code fr} ou {@code en}) + * @param locale locale * @return la liste des indicateurs * @throws CoserBusinessException */ - public File getChartData(String zone, String species, String indicator, String list, String locale) throws CoserBusinessException { + public File getChartData(String zone, String species, String indicator, String list, Locale locale) throws CoserBusinessException { File result = null; // parcours des resultats disponibles @@ -1840,13 +1752,13 @@ * @param species species (can be null for community) * @param indicator indicator * @param list indicator's list (if {@code null} look for pop indicators or no list selected - * @param locale locale (fr/en) + * @param locale locale * @return generated file (auto delete when jvm shutdown) * @throws CoserBusinessException */ protected File getChartDataFile(File projectsDirectory, File projectDirectory, File selectionDirectory, File resultDirectory, RSufiResult rSufiResult, String species, String indicator, String list, - String locale) throws CoserBusinessException { + Locale locale) throws CoserBusinessException { File result = null; @@ -1960,60 +1872,6 @@ } /** - * Generate map file into pdf file. - * - * @param survey survey - * @param species species - * @return pdf file - * @throws CoserBusinessException - * @deprecated not used anymore (at least 1.1.0) - */ - @Deprecated - public File getMapFileAsPDF(String survey, String species) throws CoserBusinessException { - - File result = null; - - OutputStream os = null; - try { - // render freemarker template - File mapFile = getMapFile(survey, species); - - Template mapTemplate = freemarkerConfiguration.getTemplate("map.ftl"); - Map<String, Object> root = new HashMap<String, Object>(); - root.put("mapFile", mapFile.getAbsolutePath()); - - Writer out = new StringWriter(); - mapTemplate.process(root, out); - out.flush(); - - // get content as w3c document - Document document = CoserUtils.parseDocument(out.toString()); - - // render template output as pdf - result = File.createTempFile("coserpdf", ".pdf"); - result.deleteOnExit(); - os = new FileOutputStream(result); - - ITextRenderer renderer = new ITextRenderer(); - renderer.setDocument(document, null); - renderer.layout(); - renderer.createPDF(os); - - os.close(); - - } catch (IOException ex) { - throw new CoserBusinessException("Can't generate pdf with map", ex); - } catch (TemplateException ex) { - throw new CoserBusinessException("Can't generate pdf with map", ex); - } catch (DocumentException ex) { - throw new CoserBusinessException("Can't generate pdf with map", ex); - } finally { - IOUtils.closeQuietly(os); - } - return result; - } - - /** * Genere un fichier zip des sources d'un projet. * * Contient: @@ -2023,11 +1881,11 @@ * </ul> * * @param zone zone (zoneid-surveyname) - * @param locale locale (fr/en) + * @param locale locale * @return zip source file (auto delete when jvm shutdown) * @throws CoserBusinessException */ - public File getSourceZip(String zone, String locale) throws CoserBusinessException { + public File getSourceZip(String zone, Locale locale) throws CoserBusinessException { File result = null; @@ -2095,7 +1953,7 @@ * @throws CoserBusinessException */ protected File generateSourceZip(Project project, Selection selection, File resultDirectory, - RSufiResult rSufiResult, String locale) throws CoserBusinessException { + RSufiResult rSufiResult, Locale locale) throws CoserBusinessException { if (!rSufiResult.isDataAllowed()) { throw new CoserBusinessException("Can't download source for non allowed result"); @@ -2113,9 +1971,10 @@ // add decharge file File dechargePDF = generateDechargePDF(resultDirectory, rSufiResult, locale); String filename = null; - // FIXME chatellier 20120228 a remplacer par une vraie locale - if ("fr".equalsIgnoreCase(locale)) { + if (locale != null && "fr".equals(locale.getLanguage())) { filename = "DechargeDonnees.pdf"; + } else if (locale != null && "es".equals(locale.getLanguage())) { + filename = "DatosDeExencionDeResponsabilidad.pdf"; } else { filename = "DataDisclaimer.pdf"; } @@ -2150,7 +2009,7 @@ * @return le fichier généré * @throws CoserBusinessException */ - protected File generateDechargePDF(File resultDirectory, RSufiResult rSufiResult, String locale) throws CoserBusinessException { + protected File generateDechargePDF(File resultDirectory, RSufiResult rSufiResult, Locale locale) throws CoserBusinessException { File result = null; @@ -2162,14 +2021,7 @@ String surveyName = projectService.getProjectSurveyName(resultDirectory, rSufiResult); // render freemarker template - // FIXME chatellier 20120228 a remplacer par un vrai - // freemarkerConfiguration.getTemplate("decharge.ftl", locale); - Template mapTemplate = null; - if ("fr".equalsIgnoreCase(locale)) { - mapTemplate = freemarkerConfiguration.getTemplate("decharge_fr.ftl"); - } else { - mapTemplate = freemarkerConfiguration.getTemplate("decharge_en.ftl"); - } + Template mapTemplate = freemarkerConfiguration.getTemplate("decharge.ftl", locale); Map<String, Object> root = new HashMap<String, Object>(); root.put("updateDate", updateDate); @@ -2215,12 +2067,12 @@ * @param resultDirectory result directory * @param rsufiResult rsufi result * @param indicator indicator - * @param locale locale (en, fr) + * @param locale locale * @return generated pdf file * @throws CoserBusinessException */ protected File generateMetaFilePDF(Project project, Selection selection, File resultDirectory, - RSufiResult rsufiResult, String indicator, String locale) throws CoserBusinessException { + RSufiResult rsufiResult, String indicator, Locale locale) throws CoserBusinessException { File result = null; @@ -2287,7 +2139,7 @@ } // get indicator full name - String indicatorName = (String)getIndicatorsMap().get(indicatorCode, locale); + String indicatorName = getIndicatorValue(indicatorCode, locale.getLanguage()); // peut arriver pour les indicateurs inconnu par coser if (indicatorName != null) { indicatorList.add(indicatorName); @@ -2345,14 +2197,7 @@ OutputStream os = null; try { // render freemarker template - // FIXME chatellier 20110506 a remplacer par un vrai - // freemarkerConfiguration.getTemplate("metainfo.ftl", locale); - Template mapTemplate = null; - if ("fr".equalsIgnoreCase(locale)) { - mapTemplate = freemarkerConfiguration.getTemplate("metainfo_fr.ftl"); - } else { - mapTemplate = freemarkerConfiguration.getTemplate("metainfo_en.ftl"); - } + Template mapTemplate = freemarkerConfiguration.getTemplate("metainfo.ftl", locale); Map<String, Object> root = new HashMap<String, Object>(); root.put("indicatorsMap", indicatorMap); 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-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/WebServiceTest.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -28,6 +28,7 @@ import java.io.File; import java.io.IOException; import java.net.URL; +import java.util.Locale; import java.util.Map; import org.apache.commons.collections.map.MultiKeyMap; @@ -89,7 +90,7 @@ @Test public void testGetIndicators() throws CoserBusinessException { MultiKeyMap indicators = webService.getIndicatorsMap(); - Assert.assertEquals(93, indicators.size()); + Assert.assertEquals(124, indicators.size()); } /** @@ -121,10 +122,10 @@ */ @Test public void testGetZoneMetaInfo() throws CoserBusinessException { - Map<String, String> zonesMetaInfos = webService.getZoneMetaInfo("fr"); + Map<String, String> zonesMetaInfos = webService.getZoneMetaInfo(Locale.FRENCH); Assert.assertEquals("Ensemble de la couverture Evhoe", zonesMetaInfos.get("gdgmc")); - zonesMetaInfos = webService.getZoneMetaInfo("en"); + zonesMetaInfos = webService.getZoneMetaInfo(Locale.ENGLISH); Assert.assertEquals("Area covered by Evhoe survey", zonesMetaInfos.get("gdgmc")); zonesMetaInfos = webService.getZoneMetaInfo(null); @@ -165,7 +166,7 @@ public void testSourceZipError() throws CoserBusinessException, IOException { registerUploadedResult("/web/upload2.zip"); - webService.getSourceZip("ecorse", "en"); + webService.getSourceZip("ecorse", Locale.ENGLISH); } /** @@ -180,14 +181,14 @@ public void testSourceZip() throws CoserBusinessException, IOException { registerUploadedResult("/web/upload2.zip"); - File zip = webService.getSourceZip("testzone1", "en"); + File zip = webService.getSourceZip("testzone1", Locale.ENGLISH); File tempDir = FileUtil.createTempDirectory("coser", ".tmp"); ZipUtil.uncompress(zip, tempDir); Assert.assertTrue(new File(tempDir, "RSUFI_DATA_projet1" + File.separator + "testcatch.csv").isFile()); Assert.assertTrue(new File(tempDir, "RSUFI_DATA_projet1" + File.separator + "DataDisclaimer.pdf").isFile()); FileUtils.deleteDirectory(tempDir); - zip = webService.getSourceZip("testzone1", "fr"); + zip = webService.getSourceZip("testzone1", Locale.FRENCH); tempDir = FileUtil.createTempDirectory("coser", ".tmp"); ZipUtil.uncompress(zip, tempDir); Assert.assertTrue(new File(tempDir, "RSUFI_DATA_projet1" + File.separator + "DechargeDonnees.pdf").isFile()); @@ -209,18 +210,6 @@ } /** - * Test la generation pdf avec l'inclusion d'image. - * - * @throws CoserBusinessException - */ - @Test - public void testGetMapFileAsPDF() throws CoserBusinessException { - registerUploadedResult("/web/upload2.zip"); - File file = webService.getMapFileAsPDF("ecorse", "SPECIES1"); - Assert.assertTrue(file.isFile()); - } - - /** * Test que la generation d'un graph fonctionne. * * @throws CoserBusinessException @@ -228,7 +217,7 @@ @Test public void testGetChartCom() throws CoserBusinessException { registerUploadedResult("/web/upload2.zip"); - File file = webService.getChart("ecorse", null, "Lbcomm", null, "fr"); + File file = webService.getChart("ecorse", null, "Lbcomm", null, Locale.FRENCH); Assert.assertTrue(file.isFile()); } @@ -240,7 +229,7 @@ @Test public void testGetChartPop() throws CoserBusinessException { registerUploadedResult("/web/upload2.zip"); - File file = webService.getChartData("ecorse", "COSER_SPECIES2", "lnN", null, "fr"); + File file = webService.getChartData("ecorse", "COSER_SPECIES2", "lnN", null, Locale.FRENCH); Assert.assertTrue(file.isFile()); } @@ -253,7 +242,7 @@ @Test public void testGetChartDataCom() throws CoserBusinessException { registerUploadedResult("/web/upload2.zip"); - File file = webService.getChartData("ecorse", null, "lnN", null, "fr"); + File file = webService.getChartData("ecorse", null, "lnN", null, Locale.FRENCH); Assert.assertTrue(file.isFile()); } @@ -266,7 +255,7 @@ @Test public void testGetChartDataPop() throws CoserBusinessException { registerUploadedResult("/web/upload2.zip"); - File file = webService.getChartData("ecorse", "COSER_SPECIES2", "lnN", null, "fr"); + File file = webService.getChartData("ecorse", "COSER_SPECIES2", "lnN", null, Locale.FRENCH); Assert.assertTrue(file.isFile()); } @@ -278,7 +267,7 @@ @Test public void testGetIndicatorLists() throws CoserBusinessException { registerUploadedResult("/web/upload2.zip"); - Map<String, String> lists = webService.getIndicatorLists("ecorse", "Delta", "fr"); + Map<String, String> lists = webService.getIndicatorLists("ecorse", "Delta", Locale.FRENCH); Assert.assertEquals(2, lists.size()); Assert.assertEquals("Type2 Liste 1", lists.get("m1")); Assert.assertEquals("Type2 Liste 2", lists.get("m2")); Modified: trunk/coser-business/src/test/resources/webindicators.csv =================================================================== --- trunk/coser-business/src/test/resources/webindicators.csv 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-business/src/test/resources/webindicators.csv 2012-08-09 10:36:21 UTC (rev 1033) @@ -1,33 +1,33 @@ -"id";"label_fr";"label_en";"unit" -"Abundance";"Abondance totale dans la zone (valeur relative)";"Total abundance in the area (relative value)";"" -"Biomass";"Biomasse totale dans la zone (valeur relative)";"Total biomass in the area (relative value)";"" -"Dbar";"Densité relative dans la zone";"Relative density in the area";"" -"l0.05";"Longueur au 5ème percentile de la distribution de longueur";"Length at the fifth percentile of the length distribution";"cm" -"l0.25";"Longueur au 25ème percentile de la distribution de longueur";"Length at the twenty-fifth percentile of the length distribution";"cm" -"l0.75";"Longueur au 75ème percentile de la distribution de longueur";"Length at the seventy-fifth percentile of the length distribution";"cm" -"l0.95";"Longueur au 95ème percentile de la distribution de longueur";"Length at the ninety- fifth percentile of the length distribution";"cm" -"L50";"Taille à 50 % de maturité";"Size at 50 % maturity";"cm" -"Lbar";"Longueur moyenne dans la population";"Mean length in the population";"cm" -"lnN";"Logarithme naturel de l'abondance";"Natural Logarithm of abundance";"" -"lvar";"Variance de la longueur dans l'échantillon";"Sample variance of length measurements";"" -"PropMat";"Proportion de matures";"Proportion of mature individuals";"" -"sexRatio";"Sexe ratio (males/femelles)";"Sex ratio (males/females)";"" -"Wbar";"Poids individuel moyen dans la population";"Average individual weight in the population";"kg" -"biomBig";"Biomasse des grandes espèces (valeur relative)";"Biomass of the large species (relative value)";"" -"biomSmall";"Biomasse des petites espèces (valeur relative)";"Biomass of the small species (relative value)";"" -"Btot";"Biomasse totale dans la zone (valeur relative)";"Total biomass in the area (relative value)";"" -"Delta";"Indice de diversité Delta";"Diversity index Delta";"" -"Gtot";"Moyenne géométrique du nombre par espèce";"Geometric mean of species abundances";"" -"Lbcomm";"Taille moyenne dans communauté";"Average length in community";"cm" -"meanQuant0.95";"Moyenne des l0;95 des espèces";"Average across species of l0;95";"cm" -"meanWbar";"Moyenne des Wbar par espèce";"Average of species Wbar";"kg" -"Ntot";"Abondance totale dans la zone (valeur relative)";"Total abundance in the area (relative value)";"" -"propL15";"Proportion des grands individus en nombre (taille seuil 15 cm)";"Proportion of large individuals in numbers (threshold size 15 cm)";"" -"propL20";"Proportion des grands individus en nombre (taille seuil 20 cm)";"Proportion of large individuals in numbers (threshold size 20 cm)";"" -"propL25";"Proportion des grands individus en nombre (taille seuil 25 cm)";"Proportion of large individuals in numbers (threshold size 25 cm)";"" -"propL30";"Proportion des grands individus en nombre (taille seuil 30 cm)";"Proportion of large individuals in numbers (threshold size 30 cm)";"" -"propLW";"Proportion des grands individus en poids (/ taille seuil spécifique à la zone)";"Proportion of large individuals in weight (/ threshold length area specific)";"" -"Shannonmod";"Indice de Shannon normalisé / première année";"Shannon index normalized wrt the first year";"" -"Wbcomm";"Poids moyen d'un individu)";"Average weight of an individual";"kg" -"Wtot";"Biomasse totale dans la zone (valeur relative)";"Total biomass in the area (relative value)";"" +"id";"label_fr";"label_en";"label_es";"unit" +"Abundance";"Abondance totale dans la zone (valeur relative)";"Total abundance in the area (relative value)";;"" +"Biomass";"Biomasse totale dans la zone (valeur relative)";"Total biomass in the area (relative value)";;"" +"Dbar";"Densité relative dans la zone";"Relative density in the area";;"" +"l0.05";"Longueur au 5ème percentile de la distribution de longueur";"Length at the fifth percentile of the length distribution";;"cm" +"l0.25";"Longueur au 25ème percentile de la distribution de longueur";"Length at the twenty-fifth percentile of the length distribution";;"cm" +"l0.75";"Longueur au 75ème percentile de la distribution de longueur";"Length at the seventy-fifth percentile of the length distribution";;"cm" +"l0.95";"Longueur au 95ème percentile de la distribution de longueur";"Length at the ninety- fifth percentile of the length distribution";;"cm" +"L50";"Taille à 50 % de maturité";"Size at 50 % maturity";;"cm" +"Lbar";"Longueur moyenne dans la population";"Mean length in the population";;"cm" +"lnN";"Logarithme naturel de l'abondance";"Natural Logarithm of abundance";;"" +"lvar";"Variance de la longueur dans l'échantillon";"Sample variance of length measurements";;"" +"PropMat";"Proportion de matures";"Proportion of mature individuals";;"" +"sexRatio";"Sexe ratio (males/femelles)";"Sex ratio (males/females)";;"" +"Wbar";"Poids individuel moyen dans la population";"Average individual weight in the population";;"kg" +"biomBig";"Biomasse des grandes espèces (valeur relative)";"Biomass of the large species (relative value)";;"" +"biomSmall";"Biomasse des petites espèces (valeur relative)";"Biomass of the small species (relative value)";;"" +"Btot";"Biomasse totale dans la zone (valeur relative)";"Total biomass in the area (relative value)";;"" +"Delta";"Indice de diversité Delta";"Diversity index Delta";;"" +"Gtot";"Moyenne géométrique du nombre par espèce";"Geometric mean of species abundances";;"" +"Lbcomm";"Taille moyenne dans communauté";"Average length in community";;"cm" +"meanQuant0.95";"Moyenne des l0;95 des espèces";"Average across species of l0;95";;"cm" +"meanWbar";"Moyenne des Wbar par espèce";"Average of species Wbar";;"kg" +"Ntot";"Abondance totale dans la zone (valeur relative)";"Total abundance in the area (relative value)";;"" +"propL15";"Proportion des grands individus en nombre (taille seuil 15 cm)";"Proportion of large individuals in numbers (threshold size 15 cm)";;"" +"propL20";"Proportion des grands individus en nombre (taille seuil 20 cm)";"Proportion of large individuals in numbers (threshold size 20 cm)";;"" +"propL25";"Proportion des grands individus en nombre (taille seuil 25 cm)";"Proportion of large individuals in numbers (threshold size 25 cm)";;"" +"propL30";"Proportion des grands individus en nombre (taille seuil 30 cm)";"Proportion of large individuals in numbers (threshold size 30 cm)";;"" +"propLW";"Proportion des grands individus en poids (/ taille seuil spécifique à la zone)";"Proportion of large individuals in weight (/ threshold length area specific)";;"" +"Shannonmod";"Indice de Shannon normalisé / première année";"Shannon index normalized wrt the first year";;"" +"Wbcomm";"Poids moyen d'un individu)";"Average weight of an individual";;"kg" +"Wtot";"Biomasse totale dans la zone (valeur relative)";"Total biomass in the area (relative value)";;"" Modified: trunk/coser-business/src/test/resources/webzones.csv =================================================================== --- trunk/coser-business/src/test/resources/webzones.csv 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-business/src/test/resources/webzones.csv 2012-08-09 10:36:21 UTC (rev 1033) @@ -1,24 +1,24 @@ -"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"; +"id";"facadeid";"facade";"zone";"periode";"serie";"comment";"comment_en";"comment_es","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-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -26,7 +26,6 @@ import static org.nuiton.i18n.I18n._; import java.awt.Component; -import java.util.ArrayList; import java.util.Collections; import java.util.List; Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -120,12 +120,11 @@ public String getIndicatorDisplayName() { Locale locale = getLocale(); - String localeCode = locale.getLanguage(); WebService webService = ServiceFactory.getWebService(); String displayName = null; try { - displayName = webService.getIndicators(zone, null, localeCode).get(indicator); + displayName = webService.getIndicators(zone, null, locale).get(indicator); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get species display name", ex); } @@ -136,11 +135,10 @@ public String execute() { Locale locale = getLocale(); - String localeCode = locale.getLanguage(); WebService webService = ServiceFactory.getWebService(); try { - lists = webService.getIndicatorLists(zone, indicator, localeCode); + lists = webService.getIndicatorLists(zone, indicator, locale); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get indicator's list names", ex); } Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDataAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -93,11 +93,10 @@ WebService webService = ServiceFactory.getWebService(); Locale locale = getLocale(); - String localeCode = locale.getLanguage(); InputStream input = null; try { - File mapImage = webService.getChart(zone, null, indicator, list, localeCode); + File mapImage = webService.getChart(zone, null, indicator, list, locale); input = new FileInputStream(mapImage); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get map file", ex); Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/com/GraphDownloadAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -99,11 +99,10 @@ WebService webService = ServiceFactory.getWebService(); Locale locale = getLocale(); - String localeCode = locale.getLanguage(); InputStream input = null; try { - File mapImage = webService.getChartData(zone, null, indicator, list, localeCode); + File mapImage = webService.getChartData(zone, null, indicator, list, locale); input = new FileInputStream(mapImage); } catch (Exception ex) { if (log.isErrorEnabled()) { Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonIndicator.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -135,10 +135,9 @@ WebService webService = ServiceFactory.getWebService(); Locale locale = getLocale(); - String localeCode = locale.getLanguage(); try { - indicators = webService.getIndicators(zone, species, localeCode); + indicators = webService.getIndicators(zone, species, locale); zonePicture = webService.getZonePictures().get(zone); } catch (CoserBusinessException ex) { 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-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -90,13 +90,12 @@ 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(localeCode); + zonesMetaInfo = webService.getZoneMetaInfo(locale); } 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-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/ZoneAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -50,13 +50,12 @@ 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(localeCode); + zonesMetaInfo = webService.getZoneMetaInfo(locale); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get zone map", ex); } Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -122,12 +122,11 @@ public String getIndicatorDisplayName() { Locale locale = getLocale(); - String localeCode = locale.getLanguage(); WebService webService = ServiceFactory.getWebService(); String displayName = null; try { - displayName = webService.getIndicators(zone, species, localeCode).get(indicator); + displayName = webService.getIndicators(zone, species, locale).get(indicator); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get species display name", ex); } Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDataAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -94,11 +94,10 @@ WebService webService = ServiceFactory.getWebService(); Locale locale = getLocale(); - String localeCode = locale.getLanguage(); InputStream input = null; try { - File mapImage = webService.getChart(zone, species, indicator, null, localeCode); + File mapImage = webService.getChart(zone, species, indicator, null, locale); input = new FileInputStream(mapImage); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get map file", ex); Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/pop/GraphDownloadAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -98,11 +98,10 @@ WebService webService = ServiceFactory.getWebService(); Locale locale = getLocale(); - String localeCode = locale.getLanguage(); InputStream input = null; try { - File mapImage = webService.getChartData(zone, species, indicator, null, localeCode); + File mapImage = webService.getChartData(zone, species, indicator, null, locale); input = new FileInputStream(mapImage); } catch (Exception ex) { if (log.isErrorEnabled()) { Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/SourceDataAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -80,12 +80,11 @@ WebService webService = ServiceFactory.getWebService(); Locale locale = getLocale(); - String localeCode = locale.getLanguage(); InputStream input = null; try { - File sourceZip = webService.getSourceZip(zone, localeCode); + File sourceZip = webService.getSourceZip(zone, locale); input = new FileInputStream(sourceZip); } catch (Exception ex) { if (log.isErrorEnabled()) { 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-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2012-08-09 10:36:21 UTC (rev 1033) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -50,13 +50,12 @@ 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(localeCode); + zonesMetaInfo = webService.getZoneMetaInfo(locale); } catch (CoserBusinessException ex) { throw new CoserWebException("Can't get zone map", ex); } Added: trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_es.properties =================================================================== --- trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_es.properties (rev 0) +++ trunk/coser-web/src/main/resources/fr/ifremer/coser/web/package_es.properties 2012-08-09 10:36:21 UTC (rev 1033) @@ -0,0 +1,190 @@ +### +# #%L +# Coser :: Web +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2010 - 2012 Ifremer, Codelutin, Chatellier Eric +# %% +# This program 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. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +message.admin.title=Coser admin +message.admin.indexaction=Actions d''administration +message.admin.listprojects.deleteselected=Supprimer les projets s�lectionn�s +message.admin.listprojects.title=Gestion des projets +message.admin.listprojects.indicatorsprojects=Projects d'indicateur par zones +message.admin.listprojects.indicatorsprojects.comment=La suppression d''un projets d''indicateur supprimera �galement la possibilit� de t�l�charger les donn�es sources du projet concern�. +message.admin.listprojects.mapsprojects=Projects de cartes par zones +message.admin.login=Identifiant +message.admin.loginrequiered=Autentification requise +message.admin.password=Mot de passe +message.com.downloadascsv=T�l�charger en CSV +message.com.downloadaszip=T�l�charger en ZIP +message.com.moredetailspdf=Plus d''informations sur les indices calcul�s des communaut�s +message.com.paragraph1=Des indices de communaut� sont calcul�s pour un ensemble de taxon dans chaque s�rie. La liste des taxons inclus pour le calcul de chaque indice varie selon les donn�es disponibles pour la r�alisation des calculs. +message.com.paragraph2=La liste des esp�ces incluses dans le calcul de chaque indice de communaut� est pr�sent�e dans le dossier t�l�chargable sous chaque graphe (fichier \"Information.pdf\"). +message.com.selectindicatorlist=S�lectionner une liste de donn�es +message.com.title=Indices de communaut�s +message.common.anchortop=Haut +message.common.facade=Facade +message.common.jsreadmore=Voir la suite +message.common.noresults=Aucun r�sultat disponible. +message.common.selectfacade=S�lectionnez une fa�ade +message.common.selectindicator=S�lectionnez un indicateur +message.common.selectpop=S�lectionnez une population +message.common.selectspecies=S�lectionnez une esp�ce +message.common.selectsurvey=S�lectionnez une campagne +message.common.selectzone=S�lectionnez une zone +message.common.validform=Valider +message.common.zone=Zone +message.documents.genparagraph1=Grands invert�br�s et poissons observ�s par les campagnes scientifiques. Atlas de distribution. Bilan 2008. 2009. {0} +message.documents.genparagraph2=Grands invert�br�s et poissons observ�s par les campagnes scientifiques. Bilan 2007. 2009. {0} +message.documents.genparagraph3=L''�tat des communaut�s exploit�es au large des c�tes de France. Application d''indicateurs � l''�valuation de l''impact de la p�che. Bilan 2004 Edition 2009. {0} +message.documents.genparagraph4=Poissons et invert�br�s au large des c�tes de France. Indicateurs issus des p�ches scientifiques. Bilan 2004. 2007. {0} +message.documents.gentitle1=Rapports g�n�raux +message.documents.activityparagraph1=Battaglia A., V. M. Trenkel & M. J. Rochet, 2006. Estimating end effects in trawl catches. ICES J. Mar. Sci. 63: 956-959. +message.documents.activityparagraph2=Lorance P., J. A. Bertrand, A. Brind''Amour, M. J. Rochet & V. Trenkel, 2009. Assessment of impacts from human activities on ecosystem components in the Bay of Biscay in the early 1990s. Aquatic living resources 22: 409-431. +message.documents.activityparagraph3=Rochet M. J., M. Prigent, J. A. Bertrand, A. Carpentier, F. Coppin, J. P. Delpech, G. Fontenelle, E. Foucher, K. Mah�, E. Rostiaux & V. M. Trenkel, 2008. Ecosystem trends: evidence for agreement between fishers'' perceptions and scientific information. ICES J. Mar. Sci. 65: 1057-1068. +message.documents.activityparagraph4=Rochet M. J. & J. Rice, 2005. Do explicit criteria help in selecting indicators for ecosystem-based fisheries management? ICES J. Mar. Sci. 62: 528-539. +message.documents.activityparagraph5=Rochet M. J. & V. Trenkel, 2003. Which community indicators can measure the impact of fishing? A review and proposals. Can. J. Fish. Aquat. Sci. 60: 86-99. +message.documents.activityparagraph6=Rochet M. J., V. M. Trenkel, R. Bellail, F. Coppin, O. Le Pape, J.-C. Mah�, A. Morin, J.-C. Poulard, I. Schlaich, A. Souplet, Y. V�rin & J. A. Bertrand, 2005. Combining indicator trends to assess ongoing changes in exploited fish communities: diagnostic of communities off the coasts of France. ICES Journal of Marine Science 62: 1647-1664. +message.documents.activityparagraph7=Rochet M. J., V. M. Trenkel, A. Carpentier, F. Coppin, L. Gil de Sola Simarro, J. P. L�aut�, J. C. Mah�, P. Maiorano, A. Mannini, M. Murenu, G. Piet, C. Politou, B. Reale, M. T. Spedicato, G. Tserpes & J. A. Bertrand, 2010. Do changes in environmental pressures impact marine communities? An empirical assessment. J. Applied Ecology 47 (4): 741-750. Publisher''s official version : {0}, Open Access version : {1} +message.documents.activityparagraph8=Trenkel V. & M. J. Rochet, 2003. Performance of indicators derived from abundance estimates for detecting the impact of fishing on a fish community. Can. J. Fish. Aquat. Sci. 60: 67-85. +message.documents.activitytitle2=Publications des membres du GT relatives � l''activit� du groupe +message.documents.indicatorparagraph1=Dreves L., C. Abernot-Le Gac, E. Antajan, P. Clabaut, P. Claquin, M.L. Cochard, P. Monbet, J. Morin, A. T�tard, C. Warenbourg & H. Thillaye du Boullay, 2010. Synth�se hydrobiologique du site �lectronucl�aire de Penly. Ifremer. DOP/LER/2010.05. 280 p. +message.documents.indicatortitle3=Travaux ayant utilis� les r�sultats du groupe de travail sur les indicateurs de populations et de peuplements +message.documents.title=Documents +message.index.datatypecom=Des indices de communaut� par zone. +message.index.datatypemap=Des cartes de distribution par esp�ce et par zone +message.index.datatypepop=Des indices biologiques par esp�ce et par zone +message.index.datatypesource=Des donn�es par op�ration d''�chantillonnage (en g�n�ral par trait de chalut) +message.index.datatypetitle=Quatre types de donn�es sont pr�sent�es +message.index.documentsmessage=Documents +message.index.documentstitle=Documents +message.index.paragraph1=Ce site a �t� con�u pour fournir en libre acc�s des donn�es brutes et des donn�es �labor�es relatives aux campagnes scientifiques d''observation halieutique conduites par l''Ifremer le long des c�tes fran�aises. +message.index.paragraph2=Toutes les donn�es mises � disposition ont fait l''objet de qualification selon des protocoles sp�cifiques. La qualit� des interpr�tations �tant directement li�e � la nature des donn�es source, les utilisateurs de donn�es sont invit�s � consid�rer avec attention les descriptions des protocoles mis en \u0153uvre ainsi que les niveaux de qualit� contr�l�s. +message.index.paragraph3=Chaque s�rie de campagnes est conduite selon une strat�gie d''�chantillonnage sp�cifique. Sauf cas particuliers, les analyses et interpr�tations doivent �tre conduites par s�rie, en prenant en compte les strat�gies d''�chantillonnage propres � chacune de ces s�ries. Sur le site, les donn�es sont pr�sent�es par s�rie. +message.index.paragraph4=Dans les tables de donn�es, toutes les esp�ces sont identifi�es selon le r�f�rentiel taxinomique du Syst�me d''informations halieutiques de l''Ifremer ({0}). +message.index.partnertitle=Membres du groupe +message.index.partnerparagraph1=Les r�sultats pr�sent�s sur ce site sont le produit de l''activit� d''un groupe de travail de l''Ifremer qui se r�unit chaque ann�e depuis 2001 pour d�velopper des indicateurs de populations et de peuplements � partir des donn�es des s�ries de campagnes halieutiques standardis�es conduites depuis la fin des ann�es 1970 par l''Ifremer le long des c�tes de France m�tropolitaine. Les principaux membres du groupe sont (par ordre alphab�tique de site et de patronyme)\u00A0: Florence Sanchez (Anglet), Franck Coppin, Sandrine Vaz et Yves V�rin (Boulogne-sur-mer), Andr� Battaglia et Jean-Pierre L�aut� (L''Houmeau), Jean-Claude Mah� et Mich�le Salaun (Lorient), Jacques Bertrand, Anik Brind''Amour, Yves D�saunay, Pascal Laffargue, Olivier Le Pape, J�r�my Lobry, Pascal Lorance, Jean-Charles Poulard, Marie-Jo\u00EBlle Rochet et Verena Trenkel (Nantes), Marie-Laure Cochard, Jocelyne Morin et Ivan Schlaich (Port-en-Bessin), Ang�lique Jadaud et Arnaud Souplet (S�te). La d�marche qualit� est g�r�e par Vincent Badts. Le support informatique de gestion des donn�es est assur� par Olivier Berthel�. +message.index.qualitymessage=Avertissement qualit� +message.index.qualitytitle=Avertissement qualit� +message.index.quotemessage=Ifremer {0,date,yyyy}. Indices de populations et de communautés issus des campagnes de surveillance halieutique de l''Ifremer. {1} ({0,date,dd MMMM}) +message.index.quotetitle=Pour citer ce site +message.index.surveyparagraph=Des manuels des protocoles d�crivent les modalit�s techniques de r�alisation de chaque s�rie de campagnes. +message.index.surveytitle=Description des campagnes +message.index.thankstitle=Remerciements +message.index.thanksparagraph1=Bien que toutes les s�ries de campagnes dont des r�sultats sont pr�sent�s sur ce site aient �t� conduites par l''Ifremer, elles ont fait l''objet de financements vari�s. Certaines, apr�s une phase �ventuelle de financement unique par l''Ifremer font l''objet de cofinancements, comme les s�ries IBTS, Evhoe et Medits retenues au titre du r�glement europ�en sur la collecte des donn�es halieutiques (DCF). D''autres sont prises en charge en totalit� par l''Ifremer, comme les s�ries NourVil et CGFS (cette derni�re �tant en cours d''�valuation pour une reconnaissance au titre du r�glement europ�en sur la collecte des donn�es halieutiques - DCF). Pour la s�rie NourSein, les campagnes ont �t� co-financ�es par le conseil r�gional de Haute Normandie, le GPMH, le programme Liteau, le programme Seine Aval et le GIP-Seine Aval, selon les ann�es. Enfin, les s�ries Crustaflam et NourSomme sont financ�es en totalit� par EDF au titre de la surveillance de centrales nucl�aires littorales, dans le cadre de contrats entre Ifremer et EDF. Le pr�sent site a �t� cr�� gr\u00E2ce � un soutien du MEEDDM (contrat Ifremer-MEEDDM 2010). Pour l''�tablissement des indices en mer du Nord, les donn�es sources utilis�es sont celles mises � disposition par les diff�rents pays partenaires de la s�rie IBTS dans la base Datras du CIEM (http://datras.ices.dk). +message.index.title=Bienvenida +message.layout.oceanicdata1=le Syst�me d''informations scientifiques pour la mer de l''Ifremer (SISMER) +message.layout.oceanicdata2=le Syst�me d''information halieutique de l''Ifremer (SIH) +message.layout.oceanicdatatitle=Gestion des donn�es des campagnes oc�anographiques � l''Ifremer +message.layout.title=�ndices de las poblaciones y comunidades de las campa�as de seguimiento, que participan de la pesquer�a pulgadas Ifremer +message.map.citation=Trenkel V.M., O. Berthel�, P. Lorance, J.A. Bertrand, A. Brind''Amour, M.L. Cochard, F. Coppin, J.P. Leaut�, J.C. Mah�, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. V�rin, 2009. Grands invert�br�s et poissons observ�s par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH : 09-003. {0}. 100 p. +message.map.citationtitle=Citation +message.map.downloadaspdf=T�l�charger en PDF +message.map.linkarchimer=Acc�s � l''atlas : {0} +message.map.paragraph1=L''objectif de cet atlas est de donner un aper�u de la distribution spatiale des esp�ces de poissons et de certains invert�br�s marins � partir des observations des campagnes de p�che scientifiques. +message.map.paragraph2=Pour chaque zone un quadrillage syst�matique a �t� d�fini, puis la densit� moyenne par km\u00B2 dans chaque cellule a �t� calcul�e en utilisant les observations de toute la p�riode. Pour la repr�sentation cartographique, les cellules avec des densit�s moyenne correspondant aux quartiles de densit� ont re�u la m�me couleur\u00A0: bleu\u00A0: esp�ce jamais observ�e, jaune clair\u00A0: densit� moyenne entre [0 et 25\u00A0%[; jaune fonc�\u00A0: [25-50\u00A0%[, orange\u00A0: [50-75\u00A0%[ et rouge\u00A0: [75-100\u00A0%]. Donc, les zones o\u00F9 se trouvent les densit�s les plus �lev�es en moyenne sont repr�sent�es en rouge. +message.map.title=Cartes de distribution +message.map.warning=Avertissement +message.map.warningcontent=Les cartes pr�sent�es ne doivent pas �tre interpr�t�es comme des cartes de distribution des esp�ces mais comme celle des zones o\u00F9 elles sont captur�es lors des campagnes scientifiques. Les campagnes �tant r�alis�es avec des chaluts diff�rents et � diff�rentes saisons, les esp�ces peuvent avoir des capturabilit�s tr�s diff�rentes entre les s�ries de campagnes, donc d''une zone � l''autre. +message.pop.downloadascsv=T�l�charger en CSV +message.pop.moredetailspdf=Plus d''informations sur les indices calcul�s des populations +message.pop.paragraph1=Les indices pr�sent�s ont �t� s�lectionn�s en r�f�rence � leur aptitude � renseigner sur l''impact de la p�che, en vue de leur int�gration dans des tableaux de bord d''indicateurs d''�volution d''�cosyst�mes exploit�s par la p�che. +message.pop.paragraph2=Les donn�es disponibles sur le site sont les valeurs de chaque indice. Les informations ont �t� valid�es par un groupe de travail dans une approche int�grative d''indicateurs de populations et de communaut�s. Les r�sultats sont donn�s par zone g�ographique et par esp�ce pour l''ensemble de la s�rie de donn�es disponible. L''utilisateur peut s�lectionner la zone g�ographique, la saison (dans le cas de s�ries saisonni�res), l''esp�ce et l''indice. Pour les s�lections pour lesquelles une information est disponible, le syst�me produit un graphe pr�sentant la distribution temporelle de l''indice, avec une repr�sentation de l''�cart-type. Il fournit la possibilit� d''extraire la table des donn�es correspondantes, incluant la valeur de l''indice par ann�e, ainsi que son �cart-type et son coefficient de variation. +message.pop.title=Indices biologiques +message.quality.acceptance=Je reconnais avoir pris connaissance des documents et des restrictions associ�es et je m''engage � citer la source des donn�es. +message.quality.notaccepted=Vous devez valider les conditions Avertissement Qualit� ! +message.quality.paragraph1=Bien que les donn�es aient �t� pr�cautionneusement contr�l�es par l''Ifremer, des d�fauts inh�rents � l''agr�gation des informations peuvent persister. Par exemple\u00A0: +message.quality.paragraph2=En d�pit du fait que toutes les donn�es de toutes les s�ries de campagnes soient pr�sent�es selon le m�me format, sauf cas particuliers, des diff�rences dans les strat�gies d''observation emp�chent la combinaison de donn�es de diff�rentes campagnes dans une m�me analyse. Par exemple, la capturabilit� d''une m�me esp�ce varie selon le type d''engin d''�chantillonnage utilis�. Il en r�sulte que chaque engin capture un sous-ensemble particulier des bioc�noses �chantillonn�es. +message.quality.paragraph3=Une propri�t� commune aux s�ries d''observations � la mer est l''�volution dans le temps de la comp�tence des �quipes embarqu�es pour la d�termination des esp�ces. Il peut en r�sulter des apparitions, des disparitions ou des assignations sous un m�me nom de taxons proches dans les jeux de donn�es, non repr�sentatifs de l''�volution des populations concern�es dans l''�cosyst�me. +message.quality.paragraph4=Pour les campagnes d''une m�me s�rie, des changements dans les proc�dures d''�chantillonnage, dans les caract�ristiques des engins, dans la p�riode de r�alisation de la campagne et la zone couverte peuvent influencer les captures. Pour pr�venir les risques de biais dans les analyses en raison de ces facteurs, les jeux de donn�es doivent �tre pr�alablement filtr�s ad�quatement. +message.quality.paragraph5=Il est vivement recommand� aux utilisateurs de donn�es de les traiter avec pr�caution. Si des utilisateurs s''interrogent sur la validit� de donn�es, ils sont invit�s � contacter l''administrateur de la base de donn�es ({0}). +message.quality.title=Avertissement Qualit� +message.source.download=T�l�charger +message.source.paragraph1=Les donn�es de base sont pr�sent�es selon quatre tables fournissant des informations de base �lev�es � l''op�ration d''�chantillonnage (en g�n�ral un trait de chalut) et organis�es selon des unit�s g�ographiques d�finies en relation avec le plan d''�chantillonnage. Une table suppl�mentaire pr�sente le r�f�rentiel taxinomique associ� aux donn�es. Il s''agit des donn�es utilis�es pour r�aliser les calculs des indicateurs pr�sent�s. Ces donn�es ont fait l''objet de filtrages et de regroupements �ventuels par rapport aux donn�es de base de chaque s�rie, afin d''assurer la coh�rence des jeux de donn�es en vue du calcul des indicateurs. Ainsi, pour certaines s�ries, des groupes entiers (e.g. les amphihalins) ont pu �tre retir�s. Pour certaines s�ries, certaines ann�es ou certaines strates ont �t� retir�es afin de pr�server l''homog�n�it� de la s�rie. Dans des cas d''�volution du niveau de d�termination au cours de la s�rie, plusieurs taxons ont �t� regroup�s � un niveau sup�rieur. +message.source.paragraph2=Les donn�es IBTS (donn�es fran�aises et donn�es des autres pays) issues de la base Datras du CIEM (http://datras.ices.dk) ont fait l''objet des m�mes contr�les de qualit� que les autres s�ries de donn�es utilis�es, ainsi que de filtrages et de regroupements taxinomiques pour en pr�server la coh�rence vis-�-vis du pr�sent objectif de production d''indicateurs de tendances. +message.source.paragraph3=Le site ne contient des donn�es de base que pour une partie des s�ries de campagnes pour lesquelles des indices de populations et de communaut�s sont pr�sent�s, selon les modalit�s d''acc�s � ces donn�es. Pour un acc�s aux s�ries de donn�es source, il convient de contacter l''administrateur du Syst�me d''informations halieutiques de l''Ifremer ({0}) pour les donn�es fran�aises, et le site Datras du CIEM (http://datras.ices.dk) pour les donn�es IBTS des autres pays. +message.source.paragraph4=Les donn�es de campagnes halieutiques sont constitu�es � partir de stations d''�chantillonnage r�parties dans l''espace selon le principe de tirage stratifi�. La densit� de l''�chantillonnage conditionne la partition g�ographique selon laquelle les indices de population et de communaut� peuvent �tre �tablis. +message.source.paragraph5=Les plans de zonage propos�s incluent le plan de r�f�rence correspondant au plan d''�chantillonnage, ainsi que des adaptations pour tenir compte des limites des sous-r�gions d�finies par la strat�gie marine europ�enne. Ils ont �t� valid�s par un groupe de travail de l''Ifremer, apr�s exploration de la sensibilit� de divers indices aux ajustements propos�s. +message.source.title=Donn�es de base +message.survey.atlantique.celtique.desc=Campagne Evhoe (Evaluation des ressources halieutiques de l''ouest europ�en) d''un mois au quatri�me trimestre, tous les ans depuis 1997. En moyenne 75 traits d''une demi-heure, au chalut de fond � grande ouverture verticale, sont r�alis�s. Chaque trait couvre une surface d''environ 0,067 km\u00B2. Cette campagne est repr�sentative des 150 000 km\u00B2 de la mer Celtique. +message.survey.atlantique.celtique.evhoe1=Manuel des protocoles EVHOE - Version 1.0 (2005) +message.survey.atlantique.celtique.plus=Pour en savoir plus sur les campagnes Evhoe +message.survey.atlantique.celtique=Mer Celtique +message.survey.atlantique.gascogne.desc=Campagne Evhoe (Evaluation des ressources halieutiques de l''ouest europ�en) d''un mois au quatri�me trimestre, tous les ans depuis 1992 (sauf en 1993 et 1996). En moyenne, 70 traits de chalut d''une demi-heure au chalut de fond � grande ouverture verticale, sont r�alis�s. Chaque trait couvre une surface de 0,067 km\u00B2. Cette campagne est repr�sentative des 72 500 km\u00B2 du golfe de Gascogne. La campagne Evhoe couvre donc le golfe de Gascogne et la mer Celtique avec le m�me protocole. De plus elle est coordonn�e internationalement, dans le cadre des campagnes IBTS, avec une campagne espagnole en mer Cantabrique, une campagne irlandaise et une campagne anglaise en mer Celtique. +message.survey.atlantique.gascogne.evhoe1=Manuel des protocoles EVHOE - Version 1.0 (2005) +message.survey.atlantique.gascogne.plus=Pour en savoir plus sur les campagnes Evhoe +message.survey.atlantique.gascogne=Golfe de Gascogne +message.survey.atlantique.vilaine.desc=Campagne sur la nourricerie de la baie de Vilaine (NourVil), d''une semaine � l''automne, tous les ans de 1980 � 2010, sauf en 1991, 1994, 1995, 1998, 1999, 2006 et 2007, au chalut � perche de 3 m�tres de large. En moyenne, 30 chalutages de 15 minutes sont r�alis�s. Chaque trait couvre une surface d''environ 0,0041 km\u00B2. Cette campagne est repr�sentative des 330 km\u00B2 de la baie. +message.survey.atlantique.vilaine.nourvil1=Manuel des protocoles Nourriceries Gascogne - V 1.0 (2002) +message.survey.atlantique.vilaine.plus=Pour en savoir plus sur les campagnes Nourvil +message.survey.atlantique.vilaine=Baie de Vilaine +message.survey.atlantique=Fa�ade Atlantique +message.survey.dataengincasier=Un �chantillonnage au casier pour les campagnes d''�valuation des grands crustac�s, en particulier le homard, aux abords du cap de Flamanville. +message.survey.dataenginfond=Un chalut de fond � grande ouverture verticale pour l''observation des ressources d�mersales, sur les plateaux continentaux et le haut des pentes continentales (accores) en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne, golfe du Lion et Est de la Corse, +message.survey.dataenginperche=Un chalut � perche pour les zones tr�s c�ti�res et les estuaires lors des campagnes visant les juv�niles de poissons plats : baies de Somme et de Vilaine, +message.survey.dataengintitle=Diff�rents engins d''�chantillonnage sont utilis�s : +message.survey.detailstitle=Caract�ristiques des campagnes de surveillance halieutique de l''Ifremer +message.survey.maintitle=Les campagnes de surveillance halieutique de l''Ifremer +message.survey.mancheoccidentale.flamanville.crustaflam1=Manuel des protocoles CRUSTAFLAM - Version 1.0 (2003) +message.survey.mancheoccidentale.flamanville.desc=Deux campagnes de 15 jours aux casiers � crustac�s aux abords du cap de Flamanville (CrustaFlam), en juin et septembre, depuis 1986 : 1200 casiers relev�s par campagne sur une zone de 26 km\u00B2. +message.survey.mancheoccidentale.flamanville.plus=Pour en savoir plus sur les campagnes CrustFlam +message.survey.mancheoccidentale.flamanville=Abords du cap de Flamanville +message.survey.mancheoccidentale=Fa�ade Manche occidentale +message.survey.mancheorientale.baiedeseine=Baie de Seine +message.survey.mancheorientale.baiedeseine.desc=Campagnes annuelles de prospection sur les nourriceries de l''estuaire de Seine et de la baie de Seine orientale (NourSeine) effectu�es essentiellement � l''automne, de 1995 � 2002. L''objectif premier �tait d''identifier les nourriceries c�ti�res de ce site et d''en �valuer la richesse halieutique et macro-�pibenthique. Environ 45 traits effectu�s � chaque campagne, � l''aide d''un chalut � perche standard. +message.survey.mancheorientale.baiedeseine.plus=Pour en savoir plus sur les campagnes NourSeine +message.survey.mancheorientale.baiedeseine.nourseine1=http://archimer.ifremer.fr/doc/00036/14714/ +message.survey.mancheorientale.baiedesomme.desc=Campagne de p�che sur la nourricerie de la baie de Somme (NourSomme) d''une semaine en septembre-octobre, tous les ans depuis 1995, aux chaluts � perche de 2 m�tres de large dans la partie la plus estuarienne de la baie et 3 m�tres dans la partie externe, plus marine. En moyenne 50 chalutages sont r�alis�s chaque ann�e. Ils durent en moyenne 7 minutes sur une surface de 0,001 km\u00B2 chacun dans la partie interne de la baie et 15 minutes sur une surface d''environ 0,004 km\u00B2 dans la partie externe. Cette campagne est repr�sentative des 720 km\u00B2 de la baie. +message.survey.mancheorientale.baiedesomme.noursomme1=Manuel des protocoles Nourriceries Somme - V 1.0 (2002) +message.survey.mancheorientale.baiedesomme.plus=Pour en savoir plus sur les campagnes NourSomme +message.survey.mancheorientale.baiedesomme=Baie de Somme +message.survey.mancheorientale.mancheorientale.cgfs1=Manuel des protocoles CGFS - Version 1.0 (2002) +message.survey.mancheorientale.mancheorientale.desc=Campagne fran�aise CGFS (Channel Ground Fish Survey) d''un mois en octobre, coordonn�e au plan international avec les campagnes IBTS. La campagne a lieu tous les ans depuis 1988. En moyenne 90 traits d''une demi-heure, au chalut de fond � grande ouverture verticale, sont r�alis�s. Chaque trait couvre une surface d''environ 0,03 km\u00B2. Cette campagne est repr�sentative des 70 748 km\u00B2 de la Manche orientale. +message.survey.mancheorientale.mancheorientale.plus=Pour en savoir plus sur les campagnes CGFS +message.survey.mancheorientale.mancheorientale=Manche orientale +message.survey.mancheorientale=Fa�ade Manche orientale +message.survey.mediterranee.estcorse.desc=Contribution fran�aise � la campagne internationale Medits (International bottom Trawl Surveys in the Mediterranean), d''une semaine au printemps, tous les ans depuis 1994, sauf en 2002, au chalut de fond � grande ouverture verticale � ailes courtes. En moyenne 20 chalutages sont r�alis�s, d''une demi-heure couvrant une surface d''environ 0,05 km\u00B2 chacun pour les profondeurs inf�rieures � 200 m�tres et d''une heure (surface d''environ 0,1\u00A0km\u00B2) pour les profondeurs sup�rieures � 200 m�tres. La campagne est repr�sentative des 4 562 km\u00B2 du plateau insulaire de l''est de la Corse. +message.survey.mediterranee.estcorse.medits1=Manuel des protocoles Medits, Version 1 (1994) +message.survey.mediterranee.estcorse.medits2=Manuel des protocoles Medits, Version 2 (1995) +message.survey.mediterranee.estcorse.medits3=Manuel des protocoles Medits, Version 3 (1999) +message.survey.mediterranee.estcorse.medits4=Manuel des protocoles Medits, Version 4 (2001) +message.survey.mediterranee.estcorse.medits5=Manuel des protocoles Medits, Version 5 (2007) +message.survey.mediterranee.estcorse.plus=Pour en savoir plus sur les campagnes Medits +message.survey.mediterranee.estcorse=Est de la Corse +message.survey.mediterranee.golfelion.desc=Contribution fran�aise aux campagnes internationales Medits (International bottom Trawl Surveys in the Mediterranean), d''un mois au deuxi�me trimestre tous les ans depuis 1994 au chalut de fond � grande ouverture verticale � ailes courtes. En moyenne 69 chalutages sont r�alis�s, d''une demi-heure couvrant une surface d''environ 0,05 km\u00B2 chacun pour les profondeurs inf�rieures � 200 m�tres et d''une heure (surface d''environ 0,1\u00A0km\u00B2) pour les profondeurs sup�rieures � 200 m�tres. Medits est repr�sentative des 13 860 km\u00B2 du golfe de Lion. +message.survey.mediterranee.golfelion.medits1=Manuel des protocoles Medits, Version 1 (1994) +message.survey.mediterranee.golfelion.medits2=Manuel des protocoles Medits, Version 2 (1995) +message.survey.mediterranee.golfelion.medits3=Manuel des protocoles Medits, Version 3 (1999) +message.survey.mediterranee.golfelion.medits4=Manuel des protocoles Medits, Version 4 (2001) +message.survey.mediterranee.golfelion.medits5=Manuel des protocoles Medits, Version 5 (2007) +message.survey.mediterranee.golfelion.plus=Pour en savoir plus sur les campagnes Medits +message.survey.mediterranee.golfelion=Golfe du Lion +message.survey.mediterranee=Fa�ade M�diterran�e +message.survey.merdunord.sudmerdunord.desc=Contribution fran�aise d''un mois � la campagne internationale IBTS (International Bottom Trawl Survey) au premier trimestre, tous les ans depuis 1980, au chalut de fond � grande ouverture verticale. En moyenne, le navire fran�ais fait 58 chalutages par an. Le sud de la mer du Nord est couvert par 4 navires (fran�ais, belge, danois et allemand) qui r�alisent en tout environ 200 traits par an. Chaque trait dure une demi-heure et couvre une surface d''environ 0,067 km\u00B2. Cette campagne est repr�sentative des 678\u00A0000\u00A0km\u00B2 de la zone. +message.survey.merdunord.sudmerdunord.ibts6=Manuel des protocoles IBTS - R�vision VI (1999) +message.survey.merdunord.sudmerdunord.ibts7=Manuel des protocoles IBTS - R�vision VII (2004) +message.survey.merdunord.sudmerdunord.plus=Pour en savoir plus sur les campagnes IBTS +message.survey.merdunord.sudmerdunord=Sud mer du Nord +message.survey.merdunord=Fa�ade Mer du Nord +message.survey.paragraph1=Les campagnes de p�che scientifique standardis�es ont pour objectif d''observer les ressources halieutiques, en suivant toujours les m�mes m�thodes d''�chantillonnage. Elles sont toujours r�alis�es dans la m�me zone, � la m�me saison, avec des engins de p�che standardis�s, afin que les donn�es soient comparables d''ann�e en ann�e. Elles servent � d�crire les esp�ces, qu''elles soient commerciales ou non, d''une zone et � observer les changements s''il y en a. Les poissons, les mollusques et les crustac�s sont d�nombr�s, mesur�s et pes�s. Certains d''entre eux font l''objet de pr�l�vements biologiques. Chaque campagne fournit ainsi une repr�sentation quantitative de l''ensemble des esp�ces de la zone � une p�riode donn�e. Selon les s�ries, d''autres informations sont relev�es (temp�rature, salinit�, macrofaune, observation des mammif�res marins, oiseaux, macro d�chets etc., mais ne sont pas pr�sent�es dans ce site) +message.survey.paragraph2=Depuis une vingtaine d''ann�es, l''Ifremer organise des campagnes de p�che scientifique en mer du Nord, en Manche, en Atlantique et en M�diterran�e concernant les ressources d�mersales et benthiques. L''objectif prioritaire est de produire des indices d''abondance des principales esp�ces commerciales. Elles recueillent �galement des donn�es sur les esp�ces captur�es non commerciales. Elles contribuent ainsi aux connaissances n�cessaires au d�veloppement de l''approche �cosyst�mique des p�ches, notamment dans le cadre de la politique commune des p�ches et plus largement de la strat�gie marine de l''Union europ�enne. +message.survey.paragraph3=Les campagnes sont r�alis�es selon des plans d''�chantillonnage standardis�s. L''engin de p�che et son gr�ement, la position des stations, le tri des captures, les pr�l�vements biologiques suivent des protocoles fix�s. +message.survey.paragraph4=Pour les campagnes coordonn�es entre navires de recherche des pays riverains en mer du Nord, Manche orientale, mer Celtique, golfe de Gascogne et M�diterran�e, les protocoles sont communs � l''ensemble des pays partenaires. Les traits de chalut des diff�rents navires de recherche sont comparables. +message.survey.paragraph5=Chaque zone �tudi�e est d�coup�e en strates en fonction de la profondeur, de la latitude ou d''autres crit�res. L''�chantillonnage pr�voit un nombre de traits de chalut ou de mouillages de casiers par strate. +message.survey.paragraph6=Dans une campagne de chalutage scientifique, les positions des traits de chalut sont choisies selon un plan d''�chantillonnage statistique. L''objectif n''est pas d''obtenir les meilleures captures possibles comme le recherchent les p�cheurs, mais de r�colter des donn�es comparables d''une ann�e sur l''autre afin de relever des �volutions. Modified: trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp =================================================================== --- trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2012-08-09 10:36:21 UTC (rev 1033) @@ -75,6 +75,9 @@ <a href="<s:url namespace="/" action="locale"> <s:param name="request_locale">fr</s:param> </s:url>" class="francais">Francais</a> + <a href="<s:url namespace="/" action="locale"> + <s:param name="request_locale">es</s:param> + </s:url>" class="espagnol">Espagnol</a> </div> <decorator:body/> Modified: trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp =================================================================== --- trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/webapp/WEB-INF/decorators/sublayout.jsp 2012-08-09 10:36:21 UTC (rev 1033) @@ -71,6 +71,9 @@ <a href="<s:url namespace="/" action="locale"> <s:param name="request_locale">fr</s:param> </s:url>" class="francais">Francais</a> + <a href="<s:url namespace="/" action="locale"> + <s:param name="request_locale">es</s:param> + </s:url>" class="espagnol">Espagnol</a> </div> <div class="page"> Added: trunk/coser-web/src/main/webapp/images/es.png =================================================================== (Binary files differ) Property changes on: trunk/coser-web/src/main/webapp/images/es.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + image/png Added: trunk/coser-web/src/main/webapp/images/zones/es.png =================================================================== (Binary files differ) Property changes on: trunk/coser-web/src/main/webapp/images/zones/es.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + image/png Modified: trunk/coser-web/src/main/webapp/styles/coser.css =================================================================== --- trunk/coser-web/src/main/webapp/styles/coser.css 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/coser-web/src/main/webapp/styles/coser.css 2012-08-09 10:36:21 UTC (rev 1033) @@ -482,7 +482,7 @@ text-indent: -999999px; background: url(../images/gb.png) no-repeat; position: absolute; - right: 0; + right: 20px; top: 10px; width: 16px; height: 11px; @@ -498,7 +498,7 @@ text-indent: -999999px; background: url(../images/fr.png) no-repeat; position: absolute; - right: 20px; + right: 40px; top: 10px; width: 16px; height: 11px; @@ -509,6 +509,22 @@ border: 2px solid #ffe600; } +#middle .top_content .espagnol { + display: block; + text-indent: -999999px; + background: url(../images/es.png) no-repeat; + position: absolute; + right: 0px; + top: 10px; + width: 16px; + height: 11px; + border: 2px solid transparent; +} + +#middle .top_content .espagnol:hover { + border: 2px solid #ffe600; +} + #middle .page .degrade ul li { /*list-style: none;*/ /*padding-left: 20px;*/ @@ -597,15 +613,21 @@ #conteneur_int .top_content .anglais { position: absolute; top: 22px; - right: 20px; + right: 40px; } #conteneur_int .top_content .francais { position: absolute; top: 22px; - right: 40px; + right: 60px; } +#conteneur_int .top_content .espagnol { + position: absolute; + top: 22px; + right: 20px; +} + #conteneur_int #middle .col_droite { margin: 0; } Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-08-09 08:39:35 UTC (rev 1032) +++ trunk/pom.xml 2012-08-09 10:36:21 UTC (rev 1033) @@ -377,12 +377,12 @@ <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> - <version>8.0.4.v20111024</version> + <version>8.1.5.v20120716</version> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-jspc-maven-plugin</artifactId> - <version>8.0.4.v20111024</version> + <version>8.1.5.v20120716</version> </plugin> <plugin> <artifactId>maven-site-plugin</artifactId>