sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1568544 - in /sis/branches/JDK7/core: sis-metadata/src/main/java/org/apache/sis/io/wkt/ sis-metadata/src/test/java/org/apache/sis/io/wkt/ sis-referencing/src/main/java/org/apache/sis/referencing/cs/ sis-referencing/src/test/java/org/apache...
Date Fri, 14 Feb 2014 23:57:00 GMT
Author: desruisseaux
Date: Fri Feb 14 23:56:59 2014
New Revision: 1568544

URL: http://svn.apache.org/r1568544
Log:
Added formatting of UNIT[...] element inside AXIS[...].
This requires knowledge about whether the enclosing CRS has specified a CS-wide unit.

Modified:
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java
[UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Convention.java
[UTF-8] Fri Feb 14 23:56:59 2014
@@ -55,6 +55,13 @@ import org.apache.sis.metadata.iso.citat
 public enum Convention {
     /**
      * The ISO 19162 format, also known as “WKT 2”.
+     * This convention follows the ISO recommendations except the following ones:
+     *
+     * <ul>
+     *   <li>{@code AXIS} element omits the {@code ORDER} sub-element.</li>
+     * </ul>
+     *
+     * Since the {@code ORDER} element is optional, the WKT is still valid.
      *
      * <p>Unless otherwise specified by {@link WKTFormat#setNameAuthority(Citation)},
projections
      * and parameters formatted with this convention will use the {@linkplain Citations#EPSG
EPSG}
@@ -70,7 +77,6 @@ public enum Convention {
      * to the {@link #WKT2} convention except for the following aspects:
      *
      * <ul>
-     *   <li>{@code AXIS} element omits the {@code ORDER} sub-element.</li>
      *   <li>{@code VERTICALEXTENT} element omits the {@code UNIT} sub-element
      *       if the unit is {@link javax.measure.unit.SI#METRE}.</li>
      *   <li>{@code ANGLEUNIT}, {@code LENGTHUNIT}, {@code SCALEUNIT}, {@code PARAMETRICUNIT}
@@ -79,8 +85,7 @@ public enum Convention {
      *       (omit parameters and operation methods {@code ID}).</li>
      * </ul>
      *
-     * Those modifications are allowed by the ISO 19162 standard and do not cause any information
lost.
-     * The omitted elements are not needed by Apache SIS WKT parser and often distractive
for the human reader.
+     * Those modifications are allowed by the ISO 19162 standard, so the WKT is still valid.
      *
      * <p>This is the default convention used by {@link FormattableObject#toString()}.</p>
      */
@@ -179,9 +184,15 @@ public enum Convention {
     }
 
     /**
-     * {@code true} for a simplified WKT. The simplifications are documented in the {@link
#WKT2_SIMPLIFIED} javadoc.
+     * Returns {@code true} if this convention is one of the simplified variants of WKT.
+     * The simplifications are documented in the {@link #WKT2_SIMPLIFIED} javadoc.
+     *
+     * <p>This methods consider version 1 of WKT as a “simplified” convention,
+     * since this version was indeed simpler than version 2.</p>
+     *
+     * @return {@code true} it this convention uses a simplified variant of WKT.
      */
-    final boolean isSimple() {
+    public boolean isSimplified() {
         return this != WKT2;
     }
 

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
[UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
[UTF-8] Fri Feb 14 23:56:59 2014
@@ -167,7 +167,7 @@ public class Formatter implements Locali
     private final List<FormattableObject> enclosingElements = new ArrayList<>();
 
     /**
-     * The units for writing lengths, angles or other type of measurements.
+     * The contextual units for writing lengths, angles or other type of measurements.
      * A unit not present in this map means that the "natural" unit of the WKT element shall
be used.
      * This value is set for example by {@code "GEOGCS"}, which force its enclosing {@code
"PRIMEM"}
      * to take the same units than itself.
@@ -178,6 +178,15 @@ public class Formatter implements Locali
     private final Map<Class<? extends Quantity>, Unit<?>> units = new IdentityHashMap<>(4);
 
     /**
+     * A bits mask of elements which defined a contextual units.
+     * The rightmost bit is for the current element. The bit before the rightmost
+     * is for the parent of current element, etc.
+     *
+     * @see #hasContextualUnit(int)
+     */
+    private long hasContextualUnit;
+
+    /**
      * The object to use for formatting numbers.
      */
     private final NumberFormat numberFormat;
@@ -539,6 +548,10 @@ public class Formatter implements Locali
             }
         }
         enclosingElements.add(object);
+        if (hasContextualUnit < 0) { // Test if leftmost bit is set to 1.
+            throw new IllegalStateException(Errors.getResources(locale).getString(Errors.Keys.TreeDepthExceedsMaximum));
+        }
+        hasContextualUnit <<= 1;
         /*
          * Add a new line if it was requested, open the bracket and increase indentation
in case the
          * element to format contains other FormattableObject elements.
@@ -588,6 +601,7 @@ public class Formatter implements Locali
         buffer.appendCodePoint(symbols.getClosingBracket(0));
         indent(-1);
         enclosingElements.remove(stackDepth);
+        hasContextualUnit >>>= 1;
     }
 
     /**
@@ -711,7 +725,7 @@ public class Formatter implements Locali
                 numberFormat.setRoundingMode(RoundingMode.CEILING);
                 appendPreset(range.getMaxDouble());
                 final Unit<?> unit = range.unit();
-                if (!convention.isSimple() || !SI.METRE.equals(unit)) {
+                if (!convention.isSimplified() || !SI.METRE.equals(unit)) {
                     append(unit); // Unit are optional if they are metres.
                 }
                 resetColor();
@@ -1047,7 +1061,7 @@ public class Formatter implements Locali
     public void append(final Unit<?> unit) {
         if (unit != null) {
             String keyword = "Unit";
-            if (!convention.isSimple()) {
+            if (!convention.isSimplified()) {
                 if (Units.isLinear(unit)) {
                     keyword = "LengthUnit";
                 } else if (Units.isAngular(unit)) {
@@ -1173,23 +1187,20 @@ public class Formatter implements Locali
     }
 
     /**
-     * Sets the unit to use for the next measurements of the given quantity. If non-null,
the given unit will apply
-     * to all WKT elements that do not define their own {@code UNIT[…]}, until this {@code
setUnit(…)} method is
-     * invoked again for the same quantity.
+     * Returns {@code true} if the element at the given depth specified a contextual unit.
+     * This method returns {@code true} if the formattable object given by {@code getEnclosingElement(depth)}
+     * has invoked {@link #setContextualUnit(Class, Unit) setContextualUnit(…)} with a
non-null unit at least once.
      *
-     * {@section Special case}
-     * If the WKT conventions are {@code WKT1_COMMON_UNITS}, then this method ignores the
given unit.
-     * See {@link Convention#WKT1_COMMON_UNITS} javadoc for more information.
+     * {@note The main purpose of this method is to allow <code>AXIS[…]</code>
elements to determine if they should
+     *        inherit the unit specified by the enclosing CRS, or if they should specify
their unit explicitly.}
      *
-     * @param  <Q> The compile-time type of the {@code quantity} argument.
-     * @param  quantity The quantity, typically as <code>{@linkplain Angle}.class</code>
or
-     *         <code>{@linkplain Length}.class</code>.
-     * @param unit The new unit, or {@code null} for letting element uses their own default.
+     * @param  depth 1 for the immediate parent, 2 for the parent of the parent, <i>etc.</i>
+     * @return Whether the parent element at the given depth has invoked {@code setContextualUnit(…)}
+     *         with a non-null unit at least once.
      */
-    public <Q extends Quantity> void setContextualUnit(final Class<Q> quantity,
final Unit<Q> unit) {
-        if (!convention.usesCommonUnits()) {
-            units.put(quantity, unit);
-        }
+    public boolean hasContextualUnit(final int depth) {
+        ArgumentChecks.ensurePositive("depth", depth);
+        return (depth < Long.SIZE) && (hasContextualUnit & (1L << depth))
!= 0;
     }
 
     /**
@@ -1214,6 +1225,32 @@ public class Formatter implements Locali
     }
 
     /**
+     * Sets the unit to use for the next measurements of the given quantity. If non-null,
the given unit will apply
+     * to all WKT elements that do not define their own {@code UNIT[…]}, until this {@code
setUnit(…)} method is
+     * invoked again for the same quantity.
+     *
+     * {@section Special case}
+     * If the WKT conventions are {@code WKT1_COMMON_UNITS}, then this method ignores the
given unit.
+     * See {@link Convention#WKT1_COMMON_UNITS} javadoc for more information.
+     *
+     * @param  <Q> The compile-time type of the {@code quantity} argument.
+     * @param  quantity The quantity, typically as <code>{@linkplain Angle}.class</code>
or
+     *         <code>{@linkplain Length}.class</code>.
+     * @param unit The new contextual unit, or {@code null} for letting elements use their
own default.
+     */
+    public <Q extends Quantity> void setContextualUnit(final Class<Q> quantity,
final Unit<Q> unit) {
+        ArgumentChecks.ensureNonNull("quantity", quantity);
+        if (!convention.usesCommonUnits()) {
+            if (unit != null) {
+                units.put(quantity, unit);
+                hasContextualUnit |= 1;
+            } else {
+                units.remove(quantity);
+            }
+        }
+    }
+
+    /**
      * Returns the unit to use instead than the given one, or the given unit if there is
no replacement for it.
      * This method searches for a unit specified by {@link #setContextualUnit(Class, Unit)}
which
      * {@linkplain Unit#isCompatible(Unit) is compatible} with the given unit.
@@ -1371,13 +1408,14 @@ public class Formatter implements Locali
         }
         enclosingElements.clear();
         units.clear();
-        elementStart   = 0;
-        colorApplied   = 0;
-        margin         = 0;
-        requestNewLine = false;
-        isComplement   = false;
-        highlightError = false;
-        invalidElement = null;
-        errorCause     = null;
+        hasContextualUnit = 0;
+        elementStart      = 0;
+        colorApplied      = 0;
+        margin            = 0;
+        requestNewLine    = false;
+        isComplement      = false;
+        highlightError    = false;
+        invalidElement    = null;
+        errorCause        = null;
     }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
[UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ConventionTest.java
[UTF-8] Fri Feb 14 23:56:59 2014
@@ -57,14 +57,14 @@ public final strictfp class ConventionTe
     }
 
     /**
-     * Tests {@link Convention#isSimple()}.
+     * Tests {@link Convention#isSimplified()}.
      */
     @Test
     public void testIsSimple() {
-        assertFalse(Convention.WKT2.isSimple());
-        assertTrue (Convention.WKT2_SIMPLIFIED.isSimple());
-        assertTrue (Convention.WKT1.isSimple());
-        assertTrue (Convention.WKT1_COMMON_UNITS.isSimple());
-        assertTrue (Convention.INTERNAL.isSimple());
+        assertFalse(Convention.WKT2.isSimplified());
+        assertTrue (Convention.WKT2_SIMPLIFIED.isSimplified());
+        assertTrue (Convention.WKT1.isSimplified());
+        assertTrue (Convention.WKT1_COMMON_UNITS.isSimplified());
+        assertTrue (Convention.INTERNAL.isSimplified());
     }
 }

Modified: sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
[UTF-8] (original)
+++ sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
[UTF-8] Fri Feb 14 23:56:59 2014
@@ -794,6 +794,14 @@ public class DefaultCoordinateSystemAxis
         }
         formatter.append(dir);
         formatter.append(meridian);
+        /*
+         * Formats the axis unit only if the enclosing CRS element does not provide one.
+         * If the enclosing CRS provided a contextual unit, then it is assumed to apply
+         * to all axes (we do not verify).
+         */
+        if (!isWKT1 && !formatter.hasContextualUnit(1)) {
+            formatter.append(unit);
+        }
         return "Axis";
     }
 }

Modified: sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
[UTF-8] (original)
+++ sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxisTest.java
[UTF-8] Fri Feb 14 23:56:59 2014
@@ -86,25 +86,25 @@ public final strictfp class DefaultCoord
      */
     @Test
     public void testWKT() {
-        assertWktEquals("Axis[“x”, east]",                       X);
-        assertWktEquals("Axis[“y”, north]",                      Y);
-        assertWktEquals("Axis[“z”, up]",                         Z);
-        assertWktEquals("Axis[“Longitude (λ)”, east]",           LONGITUDE_gon);
-        assertWktEquals("Axis[“Latitude (φ)”, north]",           LATITUDE_gon);
-        assertWktEquals("Axis[“Altitude (h)”, up]",              ALTITUDE);
-        assertWktEquals("Axis[“Time (t)”, future]",              TIME);
-        assertWktEquals("Axis[“Longitude (λ)”, east]",           GEODETIC_LONGITUDE);
-        assertWktEquals("Axis[“Spherical longitude (Ω)”, east]", SPHERICAL_LONGITUDE);
-        assertWktEquals("Axis[“Latitude (φ)”, north]",           GEODETIC_LATITUDE);
-        assertWktEquals("Axis[“Spherical latitude (Θ)”, north]", SPHERICAL_LATITUDE);
+        assertWktEquals("Axis[“x”, east, LengthUnit[“metre”, 1]]",  X);
+        assertWktEquals("Axis[“y”, north, LengthUnit[“metre”, 1]]", Y);
+        assertWktEquals("Axis[“z”, up, LengthUnit[“metre”, 1]]",    Z);
+        assertWktEquals("Axis[“Longitude (λ)”, east, AngleUnit[“grade”, 0.015707963267948967]]",
           LONGITUDE_gon);
+        assertWktEquals("Axis[“Latitude (φ)”, north, AngleUnit[“grade”, 0.015707963267948967]]",
           LATITUDE_gon);
+        assertWktEquals("Axis[“Altitude (h)”, up, LengthUnit[“metre”, 1]]",     
                           ALTITUDE);
+        assertWktEquals("Axis[“Time (t)”, future, TimeUnit[“day”, 86400]]",     
                           TIME);
+        assertWktEquals("Axis[“Longitude (λ)”, east, AngleUnit[“degree”, 0.017453292519943295]]",
          GEODETIC_LONGITUDE);
+        assertWktEquals("Axis[“Spherical longitude (Ω)”, east, AngleUnit[“degree”,
0.017453292519943295]]", SPHERICAL_LONGITUDE);
+        assertWktEquals("Axis[“Latitude (φ)”, north, AngleUnit[“degree”, 0.017453292519943295]]",
          GEODETIC_LATITUDE);
+        assertWktEquals("Axis[“Spherical latitude (Θ)”, north, AngleUnit[“degree”,
0.017453292519943295]]", SPHERICAL_LATITUDE);
 
-        assertWktEquals(Convention.WKT1,     "AXIS[“x”, EAST]",                     
 X);
-        assertWktEquals(Convention.WKT1,     "AXIS[“y”, NORTH]",                    
 Y);
-        assertWktEquals(Convention.WKT1,     "AXIS[“z”, UP]",                       
 Z);
-        assertWktEquals(Convention.INTERNAL, "Axis[“Geodetic longitude (λ)”, east]",
 GEODETIC_LONGITUDE);
-        assertWktEquals(Convention.INTERNAL, "Axis[“Spherical longitude (Ω)”, east]",
SPHERICAL_LONGITUDE);
-        assertWktEquals(Convention.INTERNAL, "Axis[“Geodetic latitude (φ)”, north]",
 GEODETIC_LATITUDE);
-        assertWktEquals(Convention.INTERNAL, "Axis[“Spherical latitude (Θ)”, north]",
SPHERICAL_LATITUDE);
+        assertWktEquals(Convention.WKT1,     "AXIS[“x”, EAST]",  X);
+        assertWktEquals(Convention.WKT1,     "AXIS[“y”, NORTH]", Y);
+        assertWktEquals(Convention.WKT1,     "AXIS[“z”, UP]",    Z);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Geodetic longitude (λ)”, east, Unit[“degree”,
0.017453292519943295]]",  GEODETIC_LONGITUDE);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Spherical longitude (Ω)”, east,
Unit[“degree”, 0.017453292519943295]]", SPHERICAL_LONGITUDE);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Geodetic latitude (φ)”, north, Unit[“degree”,
0.017453292519943295]]",  GEODETIC_LATITUDE);
+        assertWktEquals(Convention.INTERNAL, "Axis[“Spherical latitude (Θ)”, north,
Unit[“degree”, 0.017453292519943295]]", SPHERICAL_LATITUDE);
     }
 
     /**
@@ -113,7 +113,7 @@ public final strictfp class DefaultCoord
     @Test
     @DependsOnMethod("testWKT")
     public void testMeridianWKT() {
-        assertWktEquals("Axis[“South along 90°W (x)”, south, Meridian[-90.0, AngleUnit[“degree”,
0.017453292519943295]]]",
+        assertWktEquals("Axis[“South along 90°W (x)”, south, Meridian[-90.0, AngleUnit[“degree”,
0.017453292519943295]], LengthUnit[“metre”, 1]]",
                 new DefaultCoordinateSystemAxis(singletonMap(DefaultCoordinateSystemAxis.NAME_KEY,
"South along 90°W"),
                         "x", DirectionAlongMeridian.parse("South along 90°W").getDirection(),
SI.METRE));
     }

Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
[UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
[UTF-8] Fri Feb 14 23:56:59 2014
@@ -643,6 +643,11 @@ public final class Errors extends Indexe
         public static final short TooManyArguments_2 = 105;
 
         /**
+         * Tree depth exceeds the maximum.
+         */
+        public static final short TreeDepthExceedsMaximum = 145;
+
+        /**
          * Ordering between “{0}” and “{1}” elements is undefined.
          */
         public static final short UndefinedOrderingForElements_2 = 106;

Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
[ISO-8859-1] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
[ISO-8859-1] Fri Feb 14 23:56:59 2014
@@ -140,6 +140,7 @@ StalledThread_1                   = Thre
 StreamIsForwardOnly_1             = Can not move backward in the \u201c{0}\u201d stream.
 TooFewArguments_2                 = Expected at least {0} argument{0,choice,1#|2#s}, but
got {1}.
 TooManyArguments_2                = Expected at most {0} argument{0,choice,1#|2#s}, but got
{1}.
+TreeDepthExceedsMaximum           = Tree depth exceeds the maximum.
 UndefinedOrderingForElements_2    = Ordering between \u201c{0}\u201d and \u201c{1}\u201d
elements is undefined.
 UnexpectedArrayLength_2           = Expected an array of length {0}, but got {1}.
 UnexpectedChange_1                = Unexpected change in \u2018{0}\u2019.

Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties?rev=1568544&r1=1568543&r2=1568544&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
[ISO-8859-1] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
[ISO-8859-1] Fri Feb 14 23:56:59 2014
@@ -129,6 +129,7 @@ StalledThread_1                   = La t
 StreamIsForwardOnly_1             = Ne peut pas reculer dans le flux de donn\u00e9es \u00ab\u202f{0}\u202f\u00bb.
 TooFewArguments_2                 = Au moins {0} argument{0,choice,1# \u00e9tait attendu|2#s
\u00e9taient attendus}, mais seulement {1} {1,choice,1#a \u00e9t\u00e9 sp\u00e9cifi\u00e9|2#ont
\u00e9t\u00e9 sp\u00e9cifi\u00e9s}.
 TooManyArguments_2                = Au plus {0} argument{0,choice,1# \u00e9tait attendu|2#s
\u00e9taient attendus}, mais {1} {1,choice,1#a \u00e9t\u00e9 sp\u00e9cifi\u00e9|2#ont \u00e9t\u00e9
sp\u00e9cifi\u00e9s}.
+TreeDepthExceedsMaximum           = La profondeur de l\u2019arbre exc\u00e8de le maximum.
 UndefinedOrderingForElements_2    = L\u2019ordre entre les \u00e9l\u00e9ments \u00ab\u202f{0}\u202f\u00bb
et \u00ab\u202f{1}\u202f\u00bb n\u2019est pas d\u00e9fini.
 UnexpectedArrayLength_2           = Un tableau de longueur {0} \u00e9tait attendu, mais le
tableau re\u00e7u est de longueur {1}.
 UnexpectedChange_1                = Changement inattendu dans \u2018{0}\u2019.



Mime
View raw message