sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject [sis] 02/03: Consolidation of localized resources by moving some words to the `Vocabulary` class.
Date Mon, 04 May 2020 16:05:15 GMT
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 378613689b5dc6cd753a2a890feb0fa5b5ad1ecc
Author: Martin Desruisseaux <martin.desruisseaux@geomatys.com>
AuthorDate: Mon May 4 17:03:31 2020 +0200

    Consolidation of localized resources by moving some words to the `Vocabulary` class.
---
 .../main/java/org/apache/sis/gui/DataViewer.java   |   6 +-
 .../apache/sis/gui/coverage/CoverageControls.java  |   8 +-
 .../apache/sis/gui/coverage/CoverageExplorer.java  |   3 +-
 .../apache/sis/gui/dataset/ResourceExplorer.java   |  12 +-
 .../sis/gui/metadata/IdentificationInfo.java       |  32 +-
 .../apache/sis/gui/metadata/MetadataSummary.java   |  13 +-
 .../org/apache/sis/gui/metadata/MetadataTree.java  |   2 +-
 .../sis/gui/metadata/RepresentationInfo.java       |  10 +-
 .../java/org/apache/sis/gui/metadata/Section.java  |   6 +-
 .../org/apache/sis/gui/referencing/CRSChooser.java |  10 +-
 .../gui/referencing/RecentReferenceSystems.java    |   4 +-
 .../org/apache/sis/internal/gui/Resources.java     | 195 ++------
 .../apache/sis/internal/gui/Resources.properties   |  25 -
 .../sis/internal/gui/Resources_fr.properties       |  25 -
 .../org/apache/sis/util/resources/Vocabulary.java  | 520 +++++++++++++--------
 .../sis/util/resources/Vocabulary.properties       |  42 +-
 .../sis/util/resources/Vocabulary_fr.properties    |  42 +-
 17 files changed, 463 insertions(+), 492 deletions(-)

diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
index bb2e579..4bbaa7b 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
@@ -45,6 +45,7 @@ import org.apache.sis.internal.storage.StoreMetadata;
 import org.apache.sis.storage.DataStoreProvider;
 import org.apache.sis.storage.DataStores;
 import org.apache.sis.util.ArraysExt;
+import org.apache.sis.util.resources.Vocabulary;
 
 
 /**
@@ -116,13 +117,14 @@ public class DataViewer extends Application {
     public void start(final Stage window) {
         this.window = window;
         content = new ResourceExplorer();
-        final Resources localized = Resources.getInstance();
+        final Resources  localized  = Resources.getInstance();
+        final Vocabulary vocabulary = Vocabulary.getResources(localized.getLocale());
         /*
          * Configure the menu bar. For all menu items except simple ones, the action is
          * to invoke a method of the same name in this application class (e.g. open(…)).
          */
         final MenuBar menus = new MenuBar();
-        final Menu file = new Menu(localized.getString(Resources.Keys.File));
+        final Menu file = new Menu(vocabulary.getString(Vocabulary.Keys.File));
         {   // For keeping variables locale.
             final MenuItem open;
             file.getItems().addAll(
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
index 5bef42d..0cba213 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
@@ -33,7 +33,6 @@ import org.opengis.referencing.ReferenceSystem;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.gui.referencing.RecentReferenceSystems;
 import org.apache.sis.gui.map.StatusBar;
-import org.apache.sis.internal.gui.Resources;
 import org.apache.sis.util.resources.Vocabulary;
 
 
@@ -69,12 +68,11 @@ final class CoverageControls extends Controls {
     /**
      * Creates a new set of coverage controls.
      *
-     * @param  localized   localized GUI resources, provided in argument because often known by the caller.
      * @param  vocabulary  localized set of words, provided in argument because often known by the caller.
      * @param  coverage    property containing the coverage to show.
      */
-    CoverageControls(final Resources localized, final Vocabulary vocabulary,
-            final ObjectProperty<GridCoverage> coverage, final RecentReferenceSystems referenceSystems)
+    CoverageControls(final Vocabulary vocabulary, final ObjectProperty<GridCoverage> coverage,
+                     final RecentReferenceSystems referenceSystems)
     {
         final Color background = Color.BLACK;
         view = new CoverageCanvas();
@@ -93,7 +91,7 @@ final class CoverageControls extends Controls {
             final ChoiceBox<ReferenceSystem> systems = referenceSystems.createChoiceBox(this::onReferenceSystemSelected);
             systems.setMaxWidth(Double.POSITIVE_INFINITY);
             referenceSystem = systems.valueProperty();
-            final Label systemLabel = new Label(localized.getLabel(Resources.Keys.ReferenceSystem));
+            final Label systemLabel = new Label(vocabulary.getLabel(Vocabulary.Keys.ReferenceSystem));
             systemLabel.setPadding(CAPTION_MARGIN);
             systemLabel.setLabelFor(systems);
             final GridPane gp = createControlGrid(
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
index aa1b600..8001d44 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
@@ -154,14 +154,13 @@ public class CoverageExplorer extends Widget {
          */
         final View[]     viewTypes  = View.values();
         final Locale     locale     = null;
-        final Resources  localized  = Resources.forLocale(locale);
         final Vocabulary vocabulary = Vocabulary.getResources(locale);
         views = new Controls[viewTypes.length];
         for (final View type : viewTypes) {
             final Controls c;
             switch (type) {
                 case TABLE: c = new GridControls(referenceSystems, vocabulary); break;
-                case IMAGE: c = new CoverageControls(localized, vocabulary, coverageProperty, referenceSystems); break;
+                case IMAGE: c = new CoverageControls(vocabulary, coverageProperty, referenceSystems); break;
                 default: throw new AssertionError(type);
             }
             SplitPane.setResizableWithParent(c.controls(), Boolean.FALSE);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
index 55050f2..178e949 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
@@ -146,14 +146,14 @@ public class ResourceExplorer extends WindowManager {
         /*
          * Build the tabs.
          */
-        final Resources localized = localized();
-        viewTab = new Tab(localized.getString(Resources.Keys.Visual));
+        final Vocabulary vocabulary = Vocabulary.getResources(localized().getLocale());
+        viewTab = new Tab(vocabulary.getString(Vocabulary.Keys.Visual));
         // TODO: add contextual menu for window showing directly the visual.
 
-        tableTab = new Tab(localized.getString(Resources.Keys.Data));
+        tableTab = new Tab(vocabulary.getString(Vocabulary.Keys.Data));
         tableTab.setContextMenu(new ContextMenu(SelectedData.setTabularView(createNewWindowMenu())));
 
-        final String nativeTabText = Vocabulary.getResources(localized.getLocale()).getString(Vocabulary.Keys.Format);
+        final String nativeTabText = vocabulary.getString(Vocabulary.Keys.Format);
         final MetadataTree nativeMetadata = new MetadataTree(metadata);
         final Tab nativeTab = new Tab(nativeTabText, nativeMetadata);
         nativeTab.setDisable(true);
@@ -164,8 +164,8 @@ public class ResourceExplorer extends WindowManager {
         });
 
         final TabPane tabs = new TabPane(
-            new Tab(localized.getString(Resources.Keys.Summary),  metadata.getView()), viewTab, tableTab,
-            new Tab(localized.getString(Resources.Keys.Metadata), new StandardMetadataTree(metadata)),
+            new Tab(vocabulary.getString(Vocabulary.Keys.Summary),  metadata.getView()), viewTab, tableTab,
+            new Tab(vocabulary.getString(Vocabulary.Keys.Metadata), new StandardMetadataTree(metadata)),
             nativeTab);
 
         tabs.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
index bebc66f..2fbaad2 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
@@ -39,7 +39,6 @@ import org.opengis.metadata.identification.Identification;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.referencing.IdentifiedObjects;
-import org.apache.sis.internal.gui.Resources;
 import org.apache.sis.internal.referencing.Formulas;
 import org.apache.sis.measure.Latitude;
 import org.apache.sis.measure.Longitude;
@@ -174,7 +173,7 @@ final class IdentificationInfo extends Section<Identification> {
             }
         }
         if (text == null) {
-            text = vocabulary(Vocabulary.Keys.Untitled);
+            text = owner.vocabulary.getString(Vocabulary.Keys.Untitled);
         } else if (CharSequences.isUnicodeIdentifier(text)) {
             text = CharSequences.camelCaseToSentence(text).toString();
         }
@@ -189,7 +188,7 @@ final class IdentificationInfo extends Section<Identification> {
                 buffer.add(IdentifiedObjects.toString(id));
             }
             if (buffer.length() != 0) {
-                addLine(Resources.Keys.Identifiers, buffer.toString());
+                addLine(Vocabulary.Keys.Identifiers, buffer.toString());
             }
         }
         /*
@@ -197,16 +196,16 @@ final class IdentificationInfo extends Section<Identification> {
          * We use those fallback because they can provide some hints about the product.
          * The topic category (climatology, health, etc.) follows.
          */
-        short label = Resources.Keys.Abstract;
+        short label = Vocabulary.Keys.Abstract;
         text = owner.string(info.getAbstract());
         if (text == null) {
-            label = Resources.Keys.Purpose;
+            label = Vocabulary.Keys.Purpose;
             text = owner.string(info.getPurpose());
             if (text == null) {
                 for (final InternationalString c : nonNull(info.getCredits())) {
                     text = owner.string(c);
                     if (text != null) {
-                        label = Resources.Keys.Credit;
+                        label = Vocabulary.Keys.Credit;
                         break;
                     }
                 }
@@ -216,7 +215,7 @@ final class IdentificationInfo extends Section<Identification> {
         /*
          * Topic category.
          */
-        addLine(Resources.Keys.TopicCategory, owner.string(nonNull(info.getTopicCategories())));
+        addLine(Vocabulary.Keys.TopicCategory, owner.string(nonNull(info.getTopicCategories())));
         /*
          * Select a single, arbitrary date. We take the release or publication date if available.
          * If no publication date is found, fallback on the creation date. If no creation date is
@@ -224,19 +223,19 @@ final class IdentificationInfo extends Section<Identification> {
          */
         if (citation != null) {
             Date date = null;
-            label = Resources.Keys.Date;
+            label = Vocabulary.Keys.Date;
             for (final CitationDate c : nonNull(citation.getDates())) {
                 final Date cd = c.getDate();
                 if (cd != null) {
                     final DateType type = c.getDateType();
                     if (DateType.PUBLICATION.equals(type) || DateType.RELEASED.equals(type)) {
-                        label = Resources.Keys.PublicationDate;
+                        label = Vocabulary.Keys.PublicationDate;
                         date  = cd;
                         break;                      // Take the first publication or release date.
                     }
                     final boolean isCreation = DateType.CREATION.equals(type);
                     if (date == null || isCreation) {
-                        label = isCreation ? Resources.Keys.CreationDate : Resources.Keys.Date;
+                        label = isCreation ? Vocabulary.Keys.CreationDate : Vocabulary.Keys.Date;
                         date  = cd;     // Fallback date: creation date, or the first date otherwise.
                     }
                 }
@@ -250,7 +249,7 @@ final class IdentificationInfo extends Section<Identification> {
          * of the next section, "Spatial representation". For that reason we put it close to
          * that next section, i.e. last in this section but just before the map.
          */
-        addLine(Resources.Keys.TypeOfResource, owner.string(nonNull(info.getSpatialRepresentationTypes())));
+        addLine(Vocabulary.Keys.TypeOfResource, owner.string(nonNull(info.getSpatialRepresentationTypes())));
         /*
          * Write the first description about the spatio-temporal extent, then draw all geographic bounding boxes
          * on a world map. If the bounding box encompasses the whole world, replace it by a "World" description.
@@ -281,21 +280,14 @@ final class IdentificationInfo extends Section<Identification> {
         if (isWorld) {
             clearWorldMap();
             if (text == null) {
-                text = vocabulary(Vocabulary.Keys.World);
+                text = owner.vocabulary.getString(Vocabulary.Keys.World);
             }
         }
-        addLine(Resources.Keys.Extent, text);
+        addLine(Vocabulary.Keys.Extent, text);
         setRowIndex(extentOnMap, nextRowIndex());
     }
 
     /**
-     * Returns a localized word from the {@link Vocabulary} resources.
-     */
-    private String vocabulary(final short key) {
-        return Vocabulary.getResources(owner.localized.getLocale()).getString(key);
-    }
-
-    /**
      * Draws the given geographic bounding box on the map. This method can be invoked many times
      * if there is many bounding boxes on the same map.
      *
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
index 742b809..b447205 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
@@ -16,6 +16,7 @@
  */
 package org.apache.sis.gui.metadata;
 
+import java.util.Locale;
 import java.text.DateFormat;
 import java.text.NumberFormat;
 import java.util.Collection;
@@ -40,13 +41,13 @@ import org.opengis.util.ControlledVocabulary;
 import org.opengis.util.InternationalString;
 import org.apache.sis.internal.gui.BackgroundThreads;
 import org.apache.sis.internal.gui.ExceptionReporter;
-import org.apache.sis.internal.gui.Resources;
 import org.apache.sis.internal.gui.Styles;
 import org.apache.sis.internal.util.Strings;
 import org.apache.sis.storage.DataStore;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.Resource;
 import org.apache.sis.util.ArgumentChecks;
+import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.util.collection.TreeTable;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.gui.Widget;
@@ -73,7 +74,7 @@ public class MetadataSummary extends Widget {
     /**
      * The resources for localized strings. Stored because needed often.
      */
-    final Resources localized;
+    final Vocabulary vocabulary;
 
     /**
      * The format to use for writing numbers, created when first needed.
@@ -141,10 +142,10 @@ public class MetadataSummary extends Widget {
      * Creates an initially empty metadata overview.
      */
     public MetadataSummary() {
-        localized   = Resources.forLocale(null);
+        vocabulary  = Vocabulary.getResources((Locale) null);
         information = new TitledPane[] {
-            new TitledPane(localized.getString(Resources.Keys.ResourceIdentification), new IdentificationInfo(this)),
-            new TitledPane(localized.getString(Resources.Keys.SpatialRepresentation),  new RepresentationInfo(this))
+            new TitledPane(vocabulary.getString(Vocabulary.Keys.ResourceIdentification), new IdentificationInfo(this)),
+            new TitledPane(vocabulary.getString(Vocabulary.Keys.SpatialRepresentation),  new RepresentationInfo(this))
         };
         content = new ScrollPane(new VBox());
         content.setFitToWidth(true);
@@ -349,6 +350,6 @@ public class MetadataSummary extends Widget {
      * Returns the given international string as a non-empty localized string, or {@code null} if none.
      */
     final String string(final InternationalString i18n) {
-        return (i18n != null) ? Strings.trimOrNull(i18n.toString(localized.getLocale())) : null;
+        return (i18n != null) ? Strings.trimOrNull(i18n.toString(vocabulary.getLocale())) : null;
     }
 }
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
index b41a9d0..fe34dab 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
@@ -147,7 +147,7 @@ public class MetadataTree extends TreeTableView<TreeTable.Node> {
     MetadataTree(final MetadataSummary controller, final boolean standard) {
         final Locale locale;
         if (controller != null) {
-            locale = controller.localized.getLocale();
+            locale = controller.vocabulary.getLocale();
         } else {
             locale = Locale.getDefault(Locale.Category.DISPLAY);
         }
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
index bdf9450..dae8729 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
@@ -23,7 +23,7 @@ import org.opengis.metadata.spatial.SpatialRepresentation;
 import org.opengis.metadata.spatial.GridSpatialRepresentation;
 import org.opengis.referencing.ReferenceSystem;
 import org.apache.sis.referencing.IdentifiedObjects;
-import org.apache.sis.internal.gui.Resources;
+import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.util.iso.Types;
 
 import static org.apache.sis.internal.util.CollectionsExt.nonNull;
@@ -82,7 +82,7 @@ final class RepresentationInfo extends Section<SpatialRepresentation> {
         if (info instanceof GridSpatialRepresentation) {
             build((GridSpatialRepresentation) info);
         }
-        addLine(Resources.Keys.ReferenceSystem, IdentifiedObjects.getDisplayName(referenceSystem, owner.localized.getLocale()));
+        addLine(Vocabulary.Keys.ReferenceSystem, IdentifiedObjects.getDisplayName(referenceSystem, owner.vocabulary.getLocale()));
     }
 
     /**
@@ -112,12 +112,12 @@ final class RepresentationInfo extends Section<SpatialRepresentation> {
         }
         if (dimensionCount != 0) {
             buffer.setLength(buffer.length() - 3);
-            addLine(Resources.Keys.Dimensions, buffer.toString());
+            addLine(Vocabulary.Keys.Dimensions, buffer.toString());
         }
         final Integer nd = info.getNumberOfDimensions();
         if (nd != null && nd != dimensionCount) {
-            addLine(Resources.Keys.NumberOfDimensions, owner.getNumberFormat().format(dimensionCount));
+            addLine(Vocabulary.Keys.NumberOfDimensions, owner.getNumberFormat().format(dimensionCount));
         }
-        addLine(Resources.Keys.CellGeometry, owner.string(Types.getCodeTitle(info.getCellGeometry())));
+        addLine(Vocabulary.Keys.CellGeometry, owner.string(Types.getCodeTitle(info.getCellGeometry())));
     }
 }
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/Section.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/Section.java
index 4df2f3b..3b3f775 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/Section.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/Section.java
@@ -35,8 +35,8 @@ import javafx.scene.layout.GridPane;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.TilePane;
 import org.opengis.metadata.Metadata;
-import org.apache.sis.internal.gui.Resources;
 import org.apache.sis.util.ArraysExt;
+import org.apache.sis.util.resources.Vocabulary;
 
 
 /**
@@ -237,14 +237,14 @@ abstract class Section<T> extends GridPane implements EventHandler<ActionEvent>
      * Adds a (label, value) pair to this section.
      * This method does nothing if the given {@code value} is null.
      *
-     * @param  label  a {@link Resources.Keys} for the label of the line to add.
+     * @param  label  a {@link Vocabulary.Keys} for the label of the line to add.
      * @param  value  the value associated to the label, or {@code null} if none.
      */
     final void addLine(final short label, final String value) {
         if (value == null) {
             return;
         }
-        final String labelText = owner.localized.getLabel(label);
+        final String labelText = owner.vocabulary.getLabel(label);
         final Label labelCtrl, valueCtrl;
         final ObservableList<Node> children = getChildren();
         if (linesEndIndex < children.size()) {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CRSChooser.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CRSChooser.java
index b7f3fc1..1a26e67 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CRSChooser.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CRSChooser.java
@@ -190,7 +190,7 @@ public class CRSChooser extends Dialog<CoordinateReferenceSystem> {
                 CodeFilter.apply(table, searchField.getText());
             });
             HBox.setHgrow(searchField, Priority.ALWAYS);
-            final Label label = new Label(i18n.getString(Resources.Keys.Filter));
+            final Label label = new Label(vocabulary.getString(Vocabulary.Keys.Filter));
             label.setLabelFor(searchField);
             /*
              * Button for showing the CRS description in Well Known Text (WKT) format.
@@ -264,20 +264,20 @@ public class CRSChooser extends Dialog<CoordinateReferenceSystem> {
                 wktPane = new WKTPane(locale);
             }
             wktPane.setContent(getAuthorityCodes(), table.getSelectionModel().getSelectedItem().code);
-            labelText = Resources.Keys.Format;
+            labelText = Vocabulary.Keys.Format;
             control   = wktPane.convention;
             main      = wktPane.text;
             info      = null;
         } else {
-            labelText = Resources.Keys.Filter;
+            labelText = Vocabulary.Keys.Filter;
             control   = searchField;
             main      = table;
             info      = summary;
         }
         final ObservableList<Node> children = tools.getChildren();
         final Label label = (Label) children.get(0);
-        final Resources i18n = Resources.forLocale(locale);
-        label.setText(i18n.getLabel(labelText));
+        final Vocabulary vocabulary = Vocabulary.getResources(locale);
+        label.setText(vocabulary.getLabel(labelText));
         label.setLabelFor(control);
         children.set(1, control);
         content.setCenter(main);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
index 91f90b6..6e9b4c5 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
@@ -46,12 +46,12 @@ import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.ComparisonMode;
 import org.apache.sis.util.Utilities;
 import org.apache.sis.util.logging.Logging;
+import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.internal.gui.BackgroundThreads;
 import org.apache.sis.internal.gui.ExceptionReporter;
 import org.apache.sis.internal.gui.GUIUtilities;
 import org.apache.sis.internal.gui.NonNullObjectProperty;
 import org.apache.sis.internal.gui.RecentChoices;
-import org.apache.sis.internal.gui.Resources;
 import org.apache.sis.internal.system.Modules;
 import org.apache.sis.internal.util.Strings;
 
@@ -810,7 +810,7 @@ next:       for (int i=0; i<count; i++) {
      */
     public Menu createMenuItems(final ChangeListener<ReferenceSystem> action) {
         ArgumentChecks.ensureNonNull("action", action);
-        final Menu menu = new Menu(Resources.forLocale(locale).getString(Resources.Keys.ReferenceSystem));
+        final Menu menu = new Menu(Vocabulary.getResources(locale).getString(Vocabulary.Keys.ReferenceSystem));
         final MenuSync property = new MenuSync(this, updateItems(), menu, new Listener(action));
         menu.getProperties().put(SELECTED_ITEM_KEY, property);
         controlValues.add(property);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
index 75c8a6c..c165174 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
@@ -56,304 +56,179 @@ public final class Resources extends IndexedResourceBundle {
         }
 
         /**
-         * Abstract
-         */
-        public static final short Abstract = 14;
-
-        /**
          * All files
          */
-        public static final short AllFiles = 3;
-
-        /**
-         * Coordinate Reference Systems
-         */
-        public static final short CRSs = 1;
+        public static final short AllFiles = 1;
 
         /**
          * Can not close “{0}”. Data may be lost.
          */
-        public static final short CanNotClose_1 = 12;
+        public static final short CanNotClose_1 = 2;
 
         /**
          * Can not create reference system “{0}”.
          */
-        public static final short CanNotCreateCRS_1 = 35;
+        public static final short CanNotCreateCRS_1 = 3;
 
         /**
          * Can not create XML document.
          */
-        public static final short CanNotCreateXML = 47;
+        public static final short CanNotCreateXML = 4;
 
         /**
          * Can not fetch tile ({0}, {1}).
          */
-        public static final short CanNotFetchTile_2 = 45;
+        public static final short CanNotFetchTile_2 = 5;
 
         /**
          * Can not open “{0}”.
          */
-        public static final short CanNotReadFile_1 = 5;
+        public static final short CanNotReadFile_1 = 6;
 
         /**
          * A resource contained in the file can not be read. The cause is given below.
          */
-        public static final short CanNotReadResource = 55;
+        public static final short CanNotReadResource = 7;
 
         /**
          * An error occurred while rendering the data.
          */
-        public static final short CanNotRender = 60;
+        public static final short CanNotRender = 8;
 
         /**
          * Can not use the “{0}” reference system.
          */
-        public static final short CanNotUseRefSys_1 = 58;
-
-        /**
-         * Cell geometry
-         */
-        public static final short CellGeometry = 15;
+        public static final short CanNotUseRefSys_1 = 9;
 
         /**
          * Close
          */
-        public static final short Close = 8;
+        public static final short Close = 10;
 
         /**
          * Copy
          */
-        public static final short Copy = 31;
+        public static final short Copy = 11;
 
         /**
          * Copy as
          */
-        public static final short CopyAs = 46;
-
-        /**
-         * Creation date
-         */
-        public static final short CreationDate = 16;
-
-        /**
-         * Credit
-         */
-        public static final short Credit = 17;
-
-        /**
-         * Data
-         */
-        public static final short Data = 32;
-
-        /**
-         * Date
-         */
-        public static final short Date = 18;
-
-        /**
-         * Dimensions
-         */
-        public static final short Dimensions = 19;
-
-        /**
-         * Display
-         */
-        public static final short Display = 41;
+        public static final short CopyAs = 12;
 
         /**
          * Does not cover the area of interest.
          */
-        public static final short DoesNotCoverAOI = 57;
+        public static final short DoesNotCoverAOI = 13;
 
         /**
          * Error closing file
          */
-        public static final short ErrorClosingFile = 13;
+        public static final short ErrorClosingFile = 14;
 
         /**
          * Error creating reference system
          */
-        public static final short ErrorCreatingCRS = 36;
+        public static final short ErrorCreatingCRS = 15;
 
         /**
          * Error during data access
          */
-        public static final short ErrorDataAccess = 40;
+        public static final short ErrorDataAccess = 16;
 
         /**
          * Details about error
          */
-        public static final short ErrorDetails = 56;
+        public static final short ErrorDetails = 17;
 
         /**
          * Error exporting data
          */
-        public static final short ErrorExportingData = 48;
+        public static final short ErrorExportingData = 18;
 
         /**
          * Error opening file
          */
-        public static final short ErrorOpeningFile = 6;
+        public static final short ErrorOpeningFile = 19;
 
         /**
          * Exit
          */
-        public static final short Exit = 9;
-
-        /**
-         * Extent
-         */
-        public static final short Extent = 20;
-
-        /**
-         * File
-         */
-        public static final short File = 10;
-
-        /**
-         * Filter
-         */
-        public static final short Filter = 34;
-
-        /**
-         * Format
-         */
-        public static final short Format = 38;
+        public static final short Exit = 20;
 
         /**
          * From metadata
          */
-        public static final short FromMetadata = 53;
+        public static final short FromMetadata = 21;
 
         /**
          * Full screen
          */
-        public static final short FullScreen = 42;
+        public static final short FullScreen = 22;
 
         /**
          * Geospatial data files
          */
-        public static final short GeospatialFiles = 4;
-
-        /**
-         * Identifiers
-         */
-        public static final short Identifiers = 54;
+        public static final short GeospatialFiles = 23;
 
         /**
          * Loading…
          */
-        public static final short Loading = 7;
+        public static final short Loading = 24;
 
         /**
          * Main window
          */
-        public static final short MainWindow = 44;
-
-        /**
-         * Metadata
-         */
-        public static final short Metadata = 30;
+        public static final short MainWindow = 25;
 
         /**
          * New window
          */
-        public static final short NewWindow = 39;
+        public static final short NewWindow = 26;
 
         /**
          * No feature type information.
          */
-        public static final short NoFeatureTypeInfo = 33;
-
-        /**
-         * Number of dimensions
-         */
-        public static final short NumberOfDimensions = 27;
+        public static final short NoFeatureTypeInfo = 27;
 
         /**
          * Open…
          */
-        public static final short Open = 11;
+        public static final short Open = 28;
 
         /**
          * Open data file
          */
-        public static final short OpenDataFile = 2;
-
-        /**
-         * Publication date
-         */
-        public static final short PublicationDate = 21;
-
-        /**
-         * Purpose
-         */
-        public static final short Purpose = 28;
-
-        /**
-         * Reference system
-         */
-        public static final short ReferenceSystem = 22;
-
-        /**
-         * Resource identification
-         */
-        public static final short ResourceIdentification = 23;
+        public static final short OpenDataFile = 29;
 
         /**
          * Select a coordinate reference system
          */
-        public static final short SelectCRS = 37;
+        public static final short SelectCRS = 30;
 
         /**
          * Send to
          */
-        public static final short SendTo = 49;
-
-        /**
-         * Spatial representation
-         */
-        public static final short SpatialRepresentation = 24;
+        public static final short SendTo = 31;
 
         /**
          * Standard error stream
          */
-        public static final short StandardErrorStream = 50;
-
-        /**
-         * Summary
-         */
-        public static final short Summary = 29;
+        public static final short StandardErrorStream = 32;
 
         /**
          * Tabular data
          */
-        public static final short TabularData = 51;
-
-        /**
-         * Topic category
-         */
-        public static final short TopicCategory = 25;
-
-        /**
-         * Type of resource
-         */
-        public static final short TypeOfResource = 26;
-
-        /**
-         * Visual
-         */
-        public static final short Visual = 59;
+        public static final short TabularData = 33;
 
         /**
          * Visualize
          */
-        public static final short Visualize = 52;
+        public static final short Visualize = 34;
 
         /**
          * Windows
          */
-        public static final short Windows = 43;
+        public static final short Windows = 35;
     }
 
     /**
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties
index 968f3e3..cbbe4c2 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties
@@ -20,7 +20,6 @@
 # For resources shared by all modules in the Apache SIS project, see "org.apache.sis.util.resources" package.
 #
 
-Abstract               = Abstract
 AllFiles               = All files
 CanNotFetchTile_2      = Can not fetch tile ({0}, {1}).
 CanNotReadFile_1       = Can not open \u201c{0}\u201d.
@@ -30,17 +29,9 @@ CanNotCreateXML        = Can not create XML document.
 CanNotReadResource     = A resource contained in the file can not be read. The cause is given below.
 CanNotRender           = An error occurred while rendering the data.
 CanNotUseRefSys_1      = Can not use the \u201c{0}\u201d reference system.
-CellGeometry           = Cell geometry
 Close                  = Close
 Copy                   = Copy
 CopyAs                 = Copy as
-CreationDate           = Creation date
-Credit                 = Credit
-CRSs                   = Coordinate Reference Systems
-Data                   = Data
-Date                   = Date
-Dimensions             = Dimensions
-Display                = Display
 DoesNotCoverAOI        = Does not cover the area of interest.
 ErrorDetails           = Details about error
 ErrorExportingData     = Error exporting data
@@ -49,34 +40,18 @@ ErrorClosingFile       = Error closing file
 ErrorCreatingCRS       = Error creating reference system
 ErrorDataAccess        = Error during data access
 Exit                   = Exit
-Extent                 = Extent
-File                   = File
-Filter                 = Filter
-Format                 = Format
 FromMetadata           = From metadata
 FullScreen             = Full screen
 GeospatialFiles        = Geospatial data files
-Identifiers            = Identifiers
 Loading                = Loading\u2026
 MainWindow             = Main window
-Metadata               = Metadata
 NewWindow              = New window
 NoFeatureTypeInfo      = No feature type information.
-NumberOfDimensions     = Number of dimensions
 Open                   = Open\u2026
 OpenDataFile           = Open data file
-PublicationDate        = Publication date
-Purpose                = Purpose
-ReferenceSystem        = Reference system
-ResourceIdentification = Resource identification
-SpatialRepresentation  = Spatial representation
 SelectCRS              = Select a coordinate reference system
 SendTo                 = Send to
 StandardErrorStream    = Standard error stream
-Summary                = Summary
 TabularData            = Tabular data
-TopicCategory          = Topic category
-TypeOfResource         = Type of resource
-Visual                 = Visual
 Visualize              = Visualize
 Windows                = Windows
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources_fr.properties b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources_fr.properties
index 7e1dbbf..174cd52 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources_fr.properties
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources_fr.properties
@@ -25,7 +25,6 @@
 #   U+00A0 NO-BREAK SPACE         before  :
 #
 
-Abstract               = R\u00e9sum\u00e9
 AllFiles               = Tous les fichiers
 CanNotFetchTile_2      = Ne peut pas obtenir la tuile ({0}, {1}).
 CanNotReadFile_1       = Ne peut pas ouvrir \u00ab\u202f{0}\u202f\u00bb.
@@ -35,17 +34,9 @@ CanNotCreateXML        = Ne peut pas cr\u00e9er le document XML.
 CanNotReadResource     = Une ressource contenue dans le fichier ne peut pas \u00eatre lue. La cause est donn\u00e9e ci-dessous.
 CanNotRender           = Une erreur est survenue lors de l\u2019affichage des donn\u00e9es.
 CanNotUseRefSys_1      = Ne peut pas utiliser le syst\u00e8me de r\u00e9f\u00e9rence \u00ab\u202f{0}\u202f\u00bb.
-CellGeometry           = G\u00e9om\u00e9trie des cellules
 Close                  = Fermer
 Copy                   = Copier
 CopyAs                 = Copier comme
-CreationDate           = Date de cr\u00e9ation
-Credit                 = Cr\u00e9dit
-CRSs                   = Syst\u00e8mes de r\u00e9f\u00e9rence des coordonn\u00e9es
-Data                   = Donn\u00e9es
-Date                   = Date
-Dimensions             = Dimensions
-Display                = Affichage
 DoesNotCoverAOI        = Ne couvre pas la r\u00e9gion d\u2019int\u00e9r\u00eat.
 ErrorDetails           = D\u00e9tails \u00e0 propos de l\u2019erreur
 ErrorExportingData     = Erreur \u00e0 l\u2019exportation de donn\u00e9es
@@ -54,34 +45,18 @@ ErrorClosingFile       = Erreur \u00e0 la fermeture du fichier
 ErrorCreatingCRS       = Erreur \u00e0 la cr\u00e9ation du syst\u00e8me de r\u00e9f\u00e9rence
 ErrorDataAccess        = Erreur lors de l\u2019acc\u00e8s \u00e0 la donn\u00e9e
 Exit                   = Quitter
-Extent                 = \u00c9tendue
-File                   = Fichier
-Filter                 = Filtre
-Format                 = Format
 FromMetadata           = Des m\u00e9ta-donn\u00e9es
 FullScreen             = Plein \u00e9cran
 GeospatialFiles        = Fichiers de donn\u00e9es g\u00e9ospatiales
-Identifiers            = Identifiants
 Loading                = Chargement\u2026
 MainWindow             = Fen\u00eatre principale
-Metadata               = Metadonn\u00e9es
 NewWindow              = Nouvelle fen\u00eatre
 NoFeatureTypeInfo      = Pas d\u2019information sur le type d\u2019entit\u00e9.
-NumberOfDimensions     = Nombre de dimensions
 Open                   = Ouvrir\u2026
 OpenDataFile           = Ouvrir un fichier de donn\u00e9es
-PublicationDate        = Date de publication
-Purpose                = Objectif
-ReferenceSystem        = Syst\u00e8me de r\u00e9f\u00e9rence
-ResourceIdentification = Identification de la ressource
-SpatialRepresentation  = Repr\u00e9sentation spatiale
 SelectCRS              = Choisir un syst\u00e8me de r\u00e9f\u00e9rence des coordonn\u00e9es
 SendTo                 = Envoyer vers
 StandardErrorStream    = Flux d\u2019erreur standard
-Summary                = R\u00e9sum\u00e9
 TabularData            = Tableau de valeurs
-TopicCategory          = Cat\u00e9gorie th\u00e9matique
-TypeOfResource         = Type de ressource
-Visual                 = Visuel
 Visualize              = Visualiser
 Windows                = Fen\u00eatres
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
index 982319a..cea1a4d 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
@@ -55,1029 +55,1139 @@ public final class Vocabulary extends IndexedResourceBundle {
         }
 
         /**
+         * Abstract
+         */
+        public static final short Abstract = 1;
+
+        /**
          * Accuracy
          */
-        public static final short Accuracy = 1;
+        public static final short Accuracy = 2;
 
         /**
          * Administrator
          */
-        public static final short Administrator = 2;
+        public static final short Administrator = 3;
 
         /**
          * Aliases
          */
-        public static final short Aliases = 3;
+        public static final short Aliases = 4;
 
         /**
          * Alternative identifiers
          */
-        public static final short AlternativeIdentifiers = 4;
+        public static final short AlternativeIdentifiers = 5;
 
         /**
          * Angle
          */
-        public static final short Angle = 5;
+        public static final short Angle = 6;
 
         /**
          * Degrees
          */
-        public static final short AngularDegrees = 6;
+        public static final short AngularDegrees = 7;
 
         /**
          * Minutes
          */
-        public static final short AngularMinutes = 7;
+        public static final short AngularMinutes = 8;
 
         /**
          * Seconds
          */
-        public static final short AngularSeconds = 8;
+        public static final short AngularSeconds = 9;
 
         /**
          * Attributes
          */
-        public static final short Attributes = 9;
+        public static final short Attributes = 10;
 
         /**
          * Automatic
          */
-        public static final short Automatic = 201;
+        public static final short Automatic = 11;
 
         /**
          * Axis changes
          */
-        public static final short AxisChanges = 10;
+        public static final short AxisChanges = 12;
 
         /**
          * Azimuth
          */
-        public static final short Azimuth = 11;
+        public static final short Azimuth = 13;
 
         /**
          * Background
          */
-        public static final short Background = 198;
+        public static final short Background = 14;
 
         /**
          * Band {0}
          */
-        public static final short Band_1 = 12;
+        public static final short Band_1 = 15;
 
         /**
          * Barometric altitude
          */
-        public static final short BarometricAltitude = 13;
+        public static final short BarometricAltitude = 16;
 
         /**
          * Black
          */
-        public static final short Black = 175;
+        public static final short Black = 17;
 
         /**
          * Blue
          */
-        public static final short Blue = 176;
+        public static final short Blue = 18;
+
+        /**
+         * Coordinate Reference Systems
+         */
+        public static final short CRSs = 19;
 
         /**
          * Cardinality
          */
-        public static final short Cardinality = 14;
+        public static final short Cardinality = 20;
 
         /**
          * Caused by {0}
          */
-        public static final short CausedBy_1 = 15;
+        public static final short CausedBy_1 = 21;
 
         /**
          * {0} cells
          */
-        public static final short CellCount_1 = 16;
+        public static final short CellCount_1 = 22;
+
+        /**
+         * Cell geometry
+         */
+        public static final short CellGeometry = 23;
 
         /**
          * Cells
          */
-        public static final short Cells = 193;
+        public static final short Cells = 24;
 
         /**
          * Character encoding
          */
-        public static final short CharacterEncoding = 17;
+        public static final short CharacterEncoding = 25;
 
         /**
          * Characteristics
          */
-        public static final short Characteristics = 18;
+        public static final short Characteristics = 26;
 
         /**
          * Classpath
          */
-        public static final short Classpath = 19;
+        public static final short Classpath = 27;
 
         /**
          * Code
          */
-        public static final short Code = 20;
+        public static final short Code = 28;
 
         /**
          * {0} code
          */
-        public static final short Code_1 = 21;
+        public static final short Code_1 = 29;
 
         /**
          * Color index
          */
-        public static final short ColorIndex = 184;
+        public static final short ColorIndex = 30;
 
         /**
          * Commands
          */
-        public static final short Commands = 22;
+        public static final short Commands = 31;
 
         /**
          * Constant pressure surface
          */
-        public static final short ConstantPressureSurface = 23;
+        public static final short ConstantPressureSurface = 32;
 
         /**
          * Container
          */
-        public static final short Container = 24;
+        public static final short Container = 33;
 
         /**
          * Conversion
          */
-        public static final short Conversion = 25;
+        public static final short Conversion = 34;
 
         /**
          * Coordinate
          */
-        public static final short Coordinate = 26;
+        public static final short Coordinate = 35;
 
         /**
          * Coordinate reference system
          */
-        public static final short CoordinateRefSys = 27;
+        public static final short CoordinateRefSys = 36;
 
         /**
          * Correlation
          */
-        public static final short Correlation = 28;
+        public static final short Correlation = 37;
 
         /**
          * Coverage
          */
-        public static final short Coverage = 190;
+        public static final short Coverage = 38;
 
         /**
          * Coverage domain
          */
-        public static final short CoverageDomain = 29;
+        public static final short CoverageDomain = 39;
 
         /**
          * Create
          */
-        public static final short Create = 30;
+        public static final short Create = 40;
+
+        /**
+         * Creation date
+         */
+        public static final short CreationDate = 41;
+
+        /**
+         * Credit
+         */
+        public static final short Credit = 42;
 
         /**
          * Current date and time
          */
-        public static final short CurrentDateTime = 31;
+        public static final short CurrentDateTime = 43;
 
         /**
          * Current directory
          */
-        public static final short CurrentDirectory = 32;
+        public static final short CurrentDirectory = 44;
 
         /**
          * Cyan
          */
-        public static final short Cyan = 177;
+        public static final short Cyan = 45;
 
         /**
          * Cycle omitted
          */
-        public static final short CycleOmitted = 33;
+        public static final short CycleOmitted = 46;
+
+        /**
+         * Data
+         */
+        public static final short Data = 47;
 
         /**
          * Database
          */
-        public static final short DataBase = 34;
+        public static final short DataBase = 48;
 
         /**
          * Data directory
          */
-        public static final short DataDirectory = 35;
+        public static final short DataDirectory = 49;
 
         /**
          * Data formats
          */
-        public static final short DataFormats = 36;
+        public static final short DataFormats = 50;
 
         /**
          * Data type
          */
-        public static final short DataType = 185;
+        public static final short DataType = 51;
+
+        /**
+         * Date
+         */
+        public static final short Date = 52;
 
         /**
          * Datum
          */
-        public static final short Datum = 37;
+        public static final short Datum = 53;
 
         /**
          * Datum shift
          */
-        public static final short DatumShift = 38;
+        public static final short DatumShift = 54;
 
         /**
          * Daylight time
          */
-        public static final short DaylightTime = 39;
+        public static final short DaylightTime = 55;
 
         /**
          * Default value
          */
-        public static final short DefaultValue = 40;
+        public static final short DefaultValue = 56;
 
         /**
          * Deprecated
          */
-        public static final short Deprecated = 41;
+        public static final short Deprecated = 57;
 
         /**
          * Derived from {0}
          */
-        public static final short DerivedFrom_1 = 42;
+        public static final short DerivedFrom_1 = 58;
 
         /**
          * Description
          */
-        public static final short Description = 43;
+        public static final short Description = 59;
 
         /**
          * Designation
          */
-        public static final short Designation = 44;
+        public static final short Designation = 60;
 
         /**
          * Destination
          */
-        public static final short Destination = 45;
+        public static final short Destination = 61;
 
         /**
          * Details
          */
-        public static final short Details = 46;
+        public static final short Details = 62;
 
         /**
          * Digital elevation model
          */
-        public static final short DigitalElevationModel = 47;
+        public static final short DigitalElevationModel = 63;
 
         /**
          * Dimension {0}
          */
-        public static final short Dimension_1 = 48;
+        public static final short Dimension_1 = 64;
 
         /**
          * Dimensions
          */
-        public static final short Dimensions = 49;
+        public static final short Dimensions = 65;
 
         /**
          * Directory
          */
-        public static final short Directory = 50;
+        public static final short Directory = 66;
 
         /**
          * Display
          */
-        public static final short Display = 194;
+        public static final short Display = 67;
 
         /**
          * ″
          */
-        public static final short DittoMark = 51;
+        public static final short DittoMark = 68;
 
         /**
          * Domain
          */
-        public static final short Domain = 52;
+        public static final short Domain = 69;
 
         /**
          * Dublin Julian
          */
-        public static final short DublinJulian = 53;
+        public static final short DublinJulian = 70;
 
         /**
          * East bound
          */
-        public static final short EastBound = 54;
+        public static final short EastBound = 71;
 
         /**
          * Ellipsoid
          */
-        public static final short Ellipsoid = 55;
+        public static final short Ellipsoid = 72;
 
         /**
          * Ellipsoid change
          */
-        public static final short EllipsoidChange = 56;
+        public static final short EllipsoidChange = 73;
 
         /**
          * Ellipsoidal height
          */
-        public static final short EllipsoidalHeight = 57;
+        public static final short EllipsoidalHeight = 74;
 
         /**
          * End date
          */
-        public static final short EndDate = 58;
+        public static final short EndDate = 75;
 
         /**
          * End point
          */
-        public static final short EndPoint = 59;
+        public static final short EndPoint = 76;
 
         /**
          * Engineering
          */
-        public static final short Engineering = 205;
+        public static final short Engineering = 77;
 
         /**
          * {0} entr{0,choice,0#y|2#ies}
          */
-        public static final short EntryCount_1 = 60;
+        public static final short EntryCount_1 = 78;
 
         /**
          * Envelope
          */
-        public static final short Envelope = 61;
+        public static final short Envelope = 79;
 
         /**
          * Errors
          */
-        public static final short Errors = 62;
+        public static final short Errors = 80;
+
+        /**
+         * Extent
+         */
+        public static final short Extent = 81;
+
+        /**
+         * File
+         */
+        public static final short File = 82;
 
         /**
          * Fill value
          */
-        public static final short FillValue = 63;
+        public static final short FillValue = 83;
+
+        /**
+         * Filter
+         */
+        public static final short Filter = 84;
 
         /**
          * Format
          */
-        public static final short Format = 196;
+        public static final short Format = 85;
 
         /**
          * Geocentric
          */
-        public static final short Geocentric = 64;
+        public static final short Geocentric = 86;
 
         /**
          * Geocentric conversion
          */
-        public static final short GeocentricConversion = 65;
+        public static final short GeocentricConversion = 87;
 
         /**
          * Geocentric radius
          */
-        public static final short GeocentricRadius = 66;
+        public static final short GeocentricRadius = 88;
 
         /**
          * Geodesic distance
          */
-        public static final short GeodesicDistance = 67;
+        public static final short GeodesicDistance = 89;
 
         /**
          * Geodetic
          */
-        public static final short Geodetic = 202;
+        public static final short Geodetic = 90;
 
         /**
          * Geodetic dataset
          */
-        public static final short GeodeticDataset = 68;
+        public static final short GeodeticDataset = 91;
 
         /**
          * Geographic
          */
-        public static final short Geographic = 203;
+        public static final short Geographic = 92;
 
         /**
          * Geographic extent
          */
-        public static final short GeographicExtent = 69;
+        public static final short GeographicExtent = 93;
 
         /**
          * Geographic identifier
          */
-        public static final short GeographicIdentifier = 70;
+        public static final short GeographicIdentifier = 94;
 
         /**
          * Gray
          */
-        public static final short Gray = 178;
+        public static final short Gray = 95;
 
         /**
          * Green
          */
-        public static final short Green = 179;
+        public static final short Green = 96;
 
         /**
          * Grid extent
          */
-        public static final short GridExtent = 71;
+        public static final short GridExtent = 97;
 
         /**
          * Height
          */
-        public static final short Height = 72;
+        public static final short Height = 98;
 
         /**
          * Identifier
          */
-        public static final short Identifier = 73;
+        public static final short Identifier = 99;
+
+        /**
+         * Identifiers
+         */
+        public static final short Identifiers = 100;
 
         /**
          * Identity
          */
-        public static final short Identity = 74;
+        public static final short Identity = 101;
 
         /**
          * Image
          */
-        public static final short Image = 199;
+        public static final short Image = 102;
 
         /**
          * Image layout
          */
-        public static final short ImageLayout = 186;
+        public static final short ImageLayout = 103;
 
         /**
          * Implementation
          */
-        public static final short Implementation = 75;
+        public static final short Implementation = 104;
 
         /**
          *  in 
          */
-        public static final short InBetweenWords = 76;
+        public static final short InBetweenWords = 105;
 
         /**
          * Index
          */
-        public static final short Index = 77;
+        public static final short Index = 106;
 
         /**
          * Invalid
          */
-        public static final short Invalid = 78;
+        public static final short Invalid = 107;
 
         /**
          * Inverse operation
          */
-        public static final short InverseOperation = 79;
+        public static final short InverseOperation = 108;
 
         /**
          * Java extensions
          */
-        public static final short JavaExtensions = 80;
+        public static final short JavaExtensions = 109;
 
         /**
          * Java home directory
          */
-        public static final short JavaHome = 81;
+        public static final short JavaHome = 110;
 
         /**
          * Julian
          */
-        public static final short Julian = 82;
+        public static final short Julian = 111;
 
         /**
          * Latitude
          */
-        public static final short Latitude = 83;
+        public static final short Latitude = 112;
 
         /**
          * Legend
          */
-        public static final short Legend = 84;
+        public static final short Legend = 113;
 
         /**
          * Level
          */
-        public static final short Level = 85;
+        public static final short Level = 114;
 
         /**
          * Libraries
          */
-        public static final short Libraries = 86;
+        public static final short Libraries = 115;
 
         /**
          * Linear transformation
          */
-        public static final short LinearTransformation = 87;
+        public static final short LinearTransformation = 116;
 
         /**
          * Local configuration
          */
-        public static final short LocalConfiguration = 88;
+        public static final short LocalConfiguration = 117;
 
         /**
          * Locale
          */
-        public static final short Locale = 89;
+        public static final short Locale = 118;
 
         /**
          * Localization
          */
-        public static final short Localization = 90;
+        public static final short Localization = 119;
 
         /**
          * Location type
          */
-        public static final short LocationType = 91;
+        public static final short LocationType = 120;
 
         /**
          * Logging
          */
-        public static final short Logging = 92;
+        public static final short Logging = 121;
 
         /**
          * Longitude
          */
-        public static final short Longitude = 93;
+        public static final short Longitude = 122;
 
         /**
          * Lower bound
          */
-        public static final short LowerBound = 94;
+        public static final short LowerBound = 123;
 
         /**
          * Magenta
          */
-        public static final short Magenta = 180;
+        public static final short Magenta = 124;
 
         /**
          * Mandatory
          */
-        public static final short Mandatory = 95;
+        public static final short Mandatory = 125;
 
         /**
          * Mapping
          */
-        public static final short Mapping = 96;
+        public static final short Mapping = 126;
 
         /**
          * Maximum
          */
-        public static final short Maximum = 191;
+        public static final short Maximum = 127;
 
         /**
          * Maximum value
          */
-        public static final short MaximumValue = 97;
+        public static final short MaximumValue = 128;
 
         /**
          * Mean value
          */
-        public static final short MeanValue = 98;
+        public static final short MeanValue = 129;
 
         /**
          * Measures
          */
-        public static final short Measures = 99;
+        public static final short Measures = 130;
+
+        /**
+         * Metadata
+         */
+        public static final short Metadata = 131;
 
         /**
          * Methods
          */
-        public static final short Methods = 100;
+        public static final short Methods = 132;
 
         /**
          * Minimum
          */
-        public static final short Minimum = 192;
+        public static final short Minimum = 133;
 
         /**
          * Minimum value
          */
-        public static final short MinimumValue = 101;
+        public static final short MinimumValue = 134;
 
         /**
          * Missing value
          */
-        public static final short MissingValue = 102;
+        public static final short MissingValue = 135;
 
         /**
          * Modified Julian
          */
-        public static final short ModifiedJulian = 103;
+        public static final short ModifiedJulian = 136;
 
         /**
          * … {0} more…
          */
-        public static final short More_1 = 197;
+        public static final short More_1 = 137;
 
         /**
          * Multiplicity
          */
-        public static final short Multiplicity = 104;
+        public static final short Multiplicity = 138;
 
         /**
          * Name
          */
-        public static final short Name = 105;
+        public static final short Name = 139;
 
         /**
          * No data
          */
-        public static final short Nodata = 106;
+        public static final short Nodata = 140;
 
         /**
          * None
          */
-        public static final short None = 107;
+        public static final short None = 141;
 
         /**
          * North bound
          */
-        public static final short NorthBound = 108;
+        public static final short NorthBound = 142;
 
         /**
          * Note
          */
-        public static final short Note = 109;
+        public static final short Note = 143;
+
+        /**
+         * Number of dimensions
+         */
+        public static final short NumberOfDimensions = 144;
 
         /**
          * Number of ‘NaN’
          */
-        public static final short NumberOfNaN = 110;
+        public static final short NumberOfNaN = 145;
 
         /**
          * Number of values
          */
-        public static final short NumberOfValues = 111;
+        public static final short NumberOfValues = 146;
 
         /**
          * Obligation
          */
-        public static final short Obligation = 112;
+        public static final short Obligation = 147;
 
         /**
          * {0} ({1} of {2})
          */
-        public static final short Of_3 = 113;
+        public static final short Of_3 = 148;
 
         /**
          * Offset
          */
-        public static final short Offset = 114;
+        public static final short Offset = 149;
 
         /**
          * Operating system
          */
-        public static final short OperatingSystem = 115;
+        public static final short OperatingSystem = 150;
 
         /**
          * Operations
          */
-        public static final short Operations = 116;
+        public static final short Operations = 151;
 
         /**
          * Optional
          */
-        public static final short Optional = 117;
+        public static final short Optional = 152;
 
         /**
          * Options
          */
-        public static final short Options = 118;
+        public static final short Options = 153;
 
         /**
          * Origin
          */
-        public static final short Origin = 188;
+        public static final short Origin = 154;
 
         /**
          * Origin in a cell center
          */
-        public static final short OriginInCellCenter = 119;
+        public static final short OriginInCellCenter = 155;
 
         /**
          * Other surface
          */
-        public static final short OtherSurface = 120;
+        public static final short OtherSurface = 156;
 
         /**
          * Others
          */
-        public static final short Others = 121;
+        public static final short Others = 157;
 
         /**
          * {0} ({1})
          */
-        public static final short Parenthesis_2 = 122;
+        public static final short Parenthesis_2 = 158;
 
         /**
          * Paths
          */
-        public static final short Paths = 123;
+        public static final short Paths = 159;
 
         /**
          * Plug-ins
          */
-        public static final short Plugins = 124;
+        public static final short Plugins = 160;
 
         /**
          * Preprocessing
          */
-        public static final short Preprocessing = 125;
+        public static final short Preprocessing = 161;
 
         /**
          * Projected
          */
-        public static final short Projected = 204;
+        public static final short Projected = 162;
+
+        /**
+         * Publication date
+         */
+        public static final short PublicationDate = 163;
+
+        /**
+         * Purpose
+         */
+        public static final short Purpose = 164;
 
         /**
          * “{0}”
          */
-        public static final short Quoted_1 = 126;
+        public static final short Quoted_1 = 165;
 
         /**
          * Read
          */
-        public static final short Read = 127;
+        public static final short Read = 166;
 
         /**
          * Red
          */
-        public static final short Red = 181;
+        public static final short Red = 167;
+
+        /**
+         * Reference system
+         */
+        public static final short ReferenceSystem = 168;
 
         /**
          * Remarks
          */
-        public static final short Remarks = 128;
+        public static final short Remarks = 169;
 
         /**
          * Remote configuration
          */
-        public static final short RemoteConfiguration = 129;
+        public static final short RemoteConfiguration = 170;
 
         /**
          * Representative value
          */
-        public static final short RepresentativeValue = 130;
+        public static final short RepresentativeValue = 171;
 
         /**
          * Resolution
          */
-        public static final short Resolution = 131;
+        public static final short Resolution = 172;
+
+        /**
+         * Resource identification
+         */
+        public static final short ResourceIdentification = 173;
 
         /**
          * Result
          */
-        public static final short Result = 132;
+        public static final short Result = 174;
 
         /**
          * Retry
          */
-        public static final short Retry = 189;
+        public static final short Retry = 175;
 
         /**
          * Root
          */
-        public static final short Root = 133;
+        public static final short Root = 176;
 
         /**
          * Root Mean Square
          */
-        public static final short RootMeanSquare = 134;
+        public static final short RootMeanSquare = 177;
 
         /**
          * Sample dimensions
          */
-        public static final short SampleDimensions = 135;
+        public static final short SampleDimensions = 178;
 
         /**
          * Scale
          */
-        public static final short Scale = 136;
+        public static final short Scale = 179;
 
         /**
          * Simplified
          */
-        public static final short Simplified = 174;
+        public static final short Simplified = 180;
 
         /**
          * {0}/{1}
          */
-        public static final short SlashSeparatedList_2 = 137;
+        public static final short SlashSeparatedList_2 = 181;
 
         /**
          * Source
          */
-        public static final short Source = 138;
+        public static final short Source = 182;
 
         /**
          * South bound
          */
-        public static final short SouthBound = 139;
+        public static final short SouthBound = 183;
+
+        /**
+         * Spatial representation
+         */
+        public static final short SpatialRepresentation = 184;
 
         /**
          * Standard deviation
          */
-        public static final short StandardDeviation = 140;
+        public static final short StandardDeviation = 185;
 
         /**
          * Start date
          */
-        public static final short StartDate = 141;
+        public static final short StartDate = 186;
 
         /**
          * Start point
          */
-        public static final short StartPoint = 142;
+        public static final short StartPoint = 187;
 
         /**
          * Subset of {0}
          */
-        public static final short SubsetOf_1 = 143;
+        public static final short SubsetOf_1 = 188;
+
+        /**
+         * Summary
+         */
+        public static final short Summary = 189;
 
         /**
          * Superseded by {0}.
          */
-        public static final short SupersededBy_1 = 144;
+        public static final short SupersededBy_1 = 190;
 
         /**
          * Temporal
          */
-        public static final short Temporal = 145;
+        public static final short Temporal = 191;
 
         /**
          * Temporal extent
          */
-        public static final short TemporalExtent = 146;
+        public static final short TemporalExtent = 192;
 
         /**
          * Temporary files
          */
-        public static final short TemporaryFiles = 147;
+        public static final short TemporaryFiles = 193;
 
         /**
          * Tile size
          */
-        public static final short TileSize = 187;
+        public static final short TileSize = 194;
 
         /**
          * Time
          */
-        public static final short Time = 148;
+        public static final short Time = 195;
 
         /**
          * {0} time
          */
-        public static final short Time_1 = 149;
+        public static final short Time_1 = 196;
 
         /**
          * Timezone
          */
-        public static final short Timezone = 150;
+        public static final short Timezone = 197;
+
+        /**
+         * Topic category
+         */
+        public static final short TopicCategory = 198;
 
         /**
          * Transformation
          */
-        public static final short Transformation = 151;
+        public static final short Transformation = 199;
 
         /**
          * Transformation accuracy
          */
-        public static final short TransformationAccuracy = 152;
+        public static final short TransformationAccuracy = 200;
 
         /**
          * Transparency
          */
-        public static final short Transparency = 183;
+        public static final short Transparency = 201;
 
         /**
          * Truncated Julian
          */
-        public static final short TruncatedJulian = 153;
+        public static final short TruncatedJulian = 202;
 
         /**
          * Type
          */
-        public static final short Type = 154;
+        public static final short Type = 203;
+
+        /**
+         * Type of resource
+         */
+        public static final short TypeOfResource = 204;
 
         /**
          * Unavailable content.
          */
-        public static final short UnavailableContent = 155;
+        public static final short UnavailableContent = 205;
 
         /**
          * Units
          */
-        public static final short Units = 156;
+        public static final short Units = 206;
 
         /**
          * Unknown
          */
-        public static final short Unknown = 157;
+        public static final short Unknown = 207;
 
         /**
          * Unnamed
          */
-        public static final short Unnamed = 158;
+        public static final short Unnamed = 208;
 
         /**
          * Unspecified
          */
-        public static final short Unspecified = 159;
+        public static final short Unspecified = 209;
 
         /**
          * Untitled
          */
-        public static final short Untitled = 160;
+        public static final short Untitled = 210;
 
         /**
          * Upper bound
          */
-        public static final short UpperBound = 161;
+        public static final short UpperBound = 211;
 
         /**
          * User home directory
          */
-        public static final short UserHome = 162;
+        public static final short UserHome = 212;
 
         /**
          * Value
          */
-        public static final short Value = 163;
+        public static final short Value = 213;
 
         /**
          * Value domain
          */
-        public static final short ValueDomain = 164;
+        public static final short ValueDomain = 214;
 
         /**
          * Value range
          */
-        public static final short ValueRange = 200;
+        public static final short ValueRange = 215;
 
         /**
          * Values
          */
-        public static final short Values = 165;
+        public static final short Values = 216;
 
         /**
          * Variables
          */
-        public static final short Variables = 166;
+        public static final short Variables = 217;
 
         /**
          * {0} version {1}
          */
-        public static final short Version_2 = 167;
+        public static final short Version_2 = 218;
 
         /**
          * Versions
          */
-        public static final short Versions = 168;
+        public static final short Versions = 219;
 
         /**
          * Vertical
          */
-        public static final short Vertical = 169;
+        public static final short Vertical = 220;
+
+        /**
+         * Visual
+         */
+        public static final short Visual = 221;
 
         /**
          * Warnings
          */
-        public static final short Warnings = 170;
+        public static final short Warnings = 222;
 
         /**
          * West bound
          */
-        public static final short WestBound = 171;
+        public static final short WestBound = 223;
 
         /**
          * Width
          */
-        public static final short Width = 195;
+        public static final short Width = 224;
 
         /**
          * World
          */
-        public static final short World = 172;
+        public static final short World = 225;
 
         /**
          * Write
          */
-        public static final short Write = 173;
+        public static final short Write = 226;
 
         /**
          * Yellow
          */
-        public static final short Yellow = 182;
+        public static final short Yellow = 227;
     }
 
     /**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
index f68e1bd..2814b2c 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
@@ -14,6 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+Abstract                = Abstract
 Accuracy                = Accuracy
 Administrator           = Administrator
 Aliases                 = Aliases
@@ -22,8 +23,8 @@ Angle                   = Angle
 AngularDegrees          = Degrees
 AngularMinutes          = Minutes
 AngularSeconds          = Seconds
-Automatic               = Automatic
 Attributes              = Attributes
+Automatic               = Automatic
 AxisChanges             = Axis changes
 Azimuth                 = Azimuth
 Background              = Background
@@ -35,6 +36,7 @@ Cardinality             = Cardinality
 CausedBy_1              = Caused by {0}
 Cells                   = Cells
 CellCount_1             = {0} cells
+CellGeometry            = Cell geometry
 CharacterEncoding       = Character encoding
 Characteristics         = Characteristics
 Classpath               = Classpath
@@ -51,14 +53,19 @@ Correlation             = Correlation
 Coverage                = Coverage
 CoverageDomain          = Coverage domain
 Create                  = Create
+CreationDate            = Creation date
+Credit                  = Credit
+CRSs                    = Coordinate Reference Systems
 CurrentDateTime         = Current date and time
 CurrentDirectory        = Current directory
-CycleOmitted            = Cycle omitted
 Cyan                    = Cyan
+CycleOmitted            = Cycle omitted
+Data                    = Data
 DataBase                = Database
 DataDirectory           = Data directory
 DataFormats             = Data formats
 DataType                = Data type
+Date                    = Date
 Datum                   = Datum
 DatumShift              = Datum shift
 DaylightTime            = Daylight time
@@ -87,11 +94,14 @@ Engineering             = Engineering
 EntryCount_1            = {0} entr{0,choice,0#y|2#ies}
 Envelope                = Envelope
 Errors                  = Errors
+Extent                  = Extent
+File                    = File
 FillValue               = Fill value
+Filter                  = Filter
 Format                  = Format
 Geocentric              = Geocentric
-GeocentricRadius        = Geocentric radius
 GeocentricConversion    = Geocentric conversion
+GeocentricRadius        = Geocentric radius
 GeodesicDistance        = Geodesic distance
 Geodetic                = Geodetic
 GeodeticDataset         = Geodetic dataset
@@ -103,11 +113,12 @@ Green                   = Green
 GridExtent              = Grid extent
 Height                  = Height
 Identifier              = Identifier
+Identifiers             = Identifiers
+Identity                = Identity
 Image                   = Image
 ImageLayout             = Image layout
 Implementation          = Implementation
 InBetweenWords          = \u2002in\u2002
-Identity                = Identity
 Index                   = Index
 Invalid                 = Invalid
 InverseOperation        = Inverse operation
@@ -132,11 +143,12 @@ Mapping                 = Mapping
 Maximum                 = Maximum
 MaximumValue            = Maximum value
 MeanValue               = Mean value
+Measures                = Measures
+Metadata                = Metadata
+Methods                 = Methods
 Minimum                 = Minimum
 MinimumValue            = Minimum value
 MissingValue            = Missing value
-Measures                = Measures
-Methods                 = Methods
 ModifiedJulian          = Modified Julian
 More_1                  = \u2026 {0} more\u2026
 Multiplicity            = Multiplicity
@@ -145,11 +157,12 @@ Nodata                  = No data
 None                    = None
 Note                    = Note
 NorthBound              = North bound
+NumberOfDimensions      = Number of dimensions
 NumberOfValues          = Number of values
 NumberOfNaN             = Number of \u2018NaN\u2019
 Obligation              = Obligation
-Of_3                    = {0} ({1} of {2})
 Offset                  = Offset
+Of_3                    = {0} ({1} of {2})
 OperatingSystem         = Operating system
 Operations              = Operations
 Optional                = Optional
@@ -163,13 +176,17 @@ Paths                   = Paths
 Plugins                 = Plug-ins
 Preprocessing           = Preprocessing
 Projected               = Projected
+PublicationDate         = Publication date
+Purpose                 = Purpose
 Quoted_1                = \u201c{0}\u201d
 Read                    = Read
 Red                     = Red
+ReferenceSystem         = Reference system
 Remarks                 = Remarks
 RemoteConfiguration     = Remote configuration
 RepresentativeValue     = Representative value
 Resolution              = Resolution
+ResourceIdentification  = Resource identification
 Result                  = Result
 Retry                   = Retry
 Root                    = Root
@@ -180,31 +197,35 @@ Simplified              = Simplified
 SlashSeparatedList_2    = {0}/{1}
 Source                  = Source
 SouthBound              = South bound
+SpatialRepresentation   = Spatial representation
 StandardDeviation       = Standard deviation
 StartDate               = Start date
 StartPoint              = Start point
 SubsetOf_1              = Subset of {0}
+Summary                 = Summary
 SupersededBy_1          = Superseded by {0}.
-TemporaryFiles          = Temporary files
 Temporal                = Temporal
 TemporalExtent          = Temporal extent
+TemporaryFiles          = Temporary files
 TileSize                = Tile size
 Time                    = Time
 Time_1                  = {0} time
 Timezone                = Timezone
+TopicCategory           = Topic category
 Transformation          = Transformation
 TransformationAccuracy  = Transformation accuracy
 Transparency            = Transparency
 TruncatedJulian         = Truncated Julian
 Type                    = Type
+TypeOfResource          = Type of resource
+Units                   = Units
 Unknown                 = Unknown
 Unnamed                 = Unnamed
 Unspecified             = Unspecified
 Untitled                = Untitled
 UnavailableContent      = Unavailable content.
-Units                   = Units
-UserHome                = User home directory
 UpperBound              = Upper bound
+UserHome                = User home directory
 Value                   = Value
 Values                  = Values
 ValueDomain             = Value domain
@@ -213,6 +234,7 @@ Variables               = Variables
 Version_2               = {0} version {1}
 Versions                = Versions
 Vertical                = Vertical
+Visual                  = Visual
 Warnings                = Warnings
 WestBound               = West bound
 Width                   = Width
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
index d70b496..afee42f 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
@@ -21,6 +21,7 @@
 #   U+202F NARROW NO-BREAK SPACE  before  ; ! and ?
 #   U+00A0 NO-BREAK SPACE         before  :
 #
+Abstract                = R\u00e9sum\u00e9
 Accuracy                = Pr\u00e9cision
 Administrator           = Administrateur
 Aliases                 = Alias
@@ -29,8 +30,8 @@ Angle                   = Angle
 AngularDegrees          = Degr\u00e9s
 AngularMinutes          = Minutes
 AngularSeconds          = Secondes
-Automatic               = Automatique
 Attributes              = Attributs
+Automatic               = Automatique
 AxisChanges             = Changements d\u2019axes
 Azimuth                 = Azimut
 Background              = Arri\u00e8re plan
@@ -42,6 +43,7 @@ Cardinality             = Cardinalit\u00e9
 CausedBy_1              = Caus\u00e9e par {0}
 Cells                   = Cellules
 CellCount_1             = {0} cellules
+CellGeometry            = G\u00e9om\u00e9trie des cellules
 CharacterEncoding       = Encodage des caract\u00e8res
 Characteristics         = Caract\u00e9ristiques
 Classpath               = Chemin de classes
@@ -58,14 +60,19 @@ Correlation             = Corr\u00e9lation
 Coverage                = Couverture de donn\u00e9es
 CoverageDomain          = Domaine de la couverture de donn\u00e9es
 Create                  = Cr\u00e9ation
+CreationDate            = Date de cr\u00e9ation
+Credit                  = Cr\u00e9dit
+CRSs                    = Syst\u00e8mes de r\u00e9f\u00e9rence des coordonn\u00e9es
 CurrentDateTime         = Date et heure courantes
 CurrentDirectory        = R\u00e9pertoire courant
 Cyan                    = Cyan
 CycleOmitted            = Cycle omit
+Data                    = Donn\u00e9es
 DataBase                = Base de donn\u00e9es
 DataDirectory           = R\u00e9pertoire des donn\u00e9es
 DataFormats             = Formats de donn\u00e9es
 DataType                = Type de donn\u00e9es
+Date                    = Date
 Datum                   = R\u00e9f\u00e9rentiel
 DatumShift              = Changement de r\u00e9f\u00e9rentiel
 DaylightTime            = Heure normale
@@ -88,17 +95,20 @@ EastBound               = Limite est
 Ellipsoid               = Ellipso\u00efde
 EllipsoidChange         = Changement d\u2019ellipso\u00efde
 EllipsoidalHeight       = Hauteur ellipso\u00efdale
-EntryCount_1            = {0} entr\u00e9e{0,choice,0#|2#s}
 EndDate                 = Date de fin
 EndPoint                = Point d\u2019arriv\u00e9
 Engineering             = Ing\u00e9nierie
+EntryCount_1            = {0} entr\u00e9e{0,choice,0#|2#s}
 Envelope                = Enveloppe
 Errors                  = Erreurs
+Extent                  = \u00c9tendue
+File                    = Fichier
 FillValue               = Valeur de remplissage
+Filter                  = Filtre
 Format                  = Format
 Geocentric              = G\u00e9ocentrique
-GeocentricRadius        = Rayon g\u00e9ocentrique
 GeocentricConversion    = Conversion g\u00e9ocentrique
+GeocentricRadius        = Rayon g\u00e9ocentrique
 GeodesicDistance        = Distance g\u00e9od\u00e9sique
 Geodetic                = G\u00e9od\u00e9sique
 GeodeticDataset         = Base de donn\u00e9es g\u00e9od\u00e9sique
@@ -110,11 +120,12 @@ Green                   = Vert
 GridExtent              = \u00c9tendue de la grille
 Height                  = Hauteur
 Identifier              = Identifiant
+Identifiers             = Identifiants
+Identity                = Identit\u00e9
 Image                   = Image
 ImageLayout             = Agencement de l\u2019image
 Implementation          = Impl\u00e9mentation
 InBetweenWords          = \u2002dans\u2002
-Identity                = Identit\u00e9
 Index                   = Index
 Invalid                 = Invalide
 InverseOperation        = Op\u00e9ration inverse
@@ -139,11 +150,12 @@ Mapping                 = Cartographie
 Maximum                 = Maximum
 MaximumValue            = Valeur maximale
 MeanValue               = Valeur moyenne
+Measures                = Mesures
+Metadata                = Metadonn\u00e9es
+Methods                 = M\u00e9thodes
 Minimum                 = Minimum
 MinimumValue            = Valeur minimale
 MissingValue            = Valeur manquante
-Measures                = Mesures
-Methods                 = M\u00e9thodes
 ModifiedJulian          = Julien modifi\u00e9
 More_1                  = \u2026 {0} de plus\u2026
 Multiplicity            = Multiplicit\u00e9
@@ -152,11 +164,12 @@ Nodata                  = Absence de donn\u00e9es
 None                    = Aucun
 Note                    = Note
 NorthBound              = Limite nord
+NumberOfDimensions      = Nombre de dimensions
 NumberOfValues          = Nombre de valeurs
 NumberOfNaN             = Nombre de \u2018NaN\u2019
 Obligation              = Obligation
-Of_3                    = {0} ({1} de {2})
 Offset                  = D\u00e9calage
+Of_3                    = {0} ({1} de {2})
 OperatingSystem         = Syst\u00e8me d\u2019exploitation
 Operations              = Op\u00e9rations
 Optional                = Optionnel
@@ -170,13 +183,17 @@ Paths                   = Chemins
 Plugins                 = Modules d\u2019extension
 Preprocessing           = Pr\u00e9traitement
 Projected               = Projet\u00e9
+PublicationDate         = Date de publication
+Purpose                 = Objectif
 Quoted_1                = \u00ab\u202f{0}\u202f\u00bb
 Read                    = Lecture
 Red                     = Rouge
+ReferenceSystem         = Syst\u00e8me de r\u00e9f\u00e9rence
 Remarks                 = Remarques
 RemoteConfiguration     = Configuration distante
 RepresentativeValue     = Valeur repr\u00e9sentative
 Resolution              = R\u00e9solution
+ResourceIdentification  = Identification de la ressource
 Result                  = R\u00e9sultat
 Retry                   = R\u00e9essayer
 Root                    = Racine
@@ -187,31 +204,35 @@ Simplified              = Simplifi\u00e9
 SlashSeparatedList_2    = {0}/{1}
 Source                  = Source
 SouthBound              = Limite sud
+SpatialRepresentation   = Repr\u00e9sentation spatiale
 StandardDeviation       = \u00c9cart type
 StartDate               = Date de d\u00e9part
 StartPoint              = Point de d\u00e9part
 SubsetOf_1              = Sous-ensemble de {0}
+Summary                 = R\u00e9sum\u00e9
 SupersededBy_1          = Remplac\u00e9 par {0}.
-TemporaryFiles          = Fichiers temporaires
 Temporal                = Temporel
 TemporalExtent          = Plage temporelle
+TemporaryFiles          = Fichiers temporaires
 TileSize                = Taille des tuiles
 Time                    = Temps
 Time_1                  = Heure {0}
 Timezone                = Fuseau horaire
+TopicCategory           = Cat\u00e9gorie th\u00e9matique
 Transformation          = Transformation
 TransformationAccuracy  = Pr\u00e9cision de la transformation
 Transparency            = Transparence
 TruncatedJulian         = Julien tronqu\u00e9
 Type                    = Type
+TypeOfResource          = Type de ressource
+Units                   = Unit\u00e9s
 Unknown                 = Inconnu
 Unnamed                 = Sans nom
 Unspecified             = Non-sp\u00e9cifi\u00e9
 Untitled                = Sans titre
 UnavailableContent      = Contenu non-disponible.
-Units                   = Unit\u00e9s
-UserHome                = R\u00e9pertoire de l\u2019utilisateur
 UpperBound              = Limite haute
+UserHome                = R\u00e9pertoire de l\u2019utilisateur
 Value                   = Valeur
 Values                  = Valeurs
 ValueDomain             = Domaine des valeurs
@@ -220,6 +241,7 @@ Variables               = Variables
 Version_2               = {0} version {1}
 Versions                = Versions
 Vertical                = Vertical
+Visual                  = Visuel
 Warnings                = Avertissements
 WestBound               = Limite ouest
 Width                   = Largeur


Mime
View raw message