I18n-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- 786 discussions
r1901 - in trunk: nuiton-i18n/src/main/java/org/nuiton/i18n/init src/site/apt
by fdesbois@users.nuiton.org 04 May '11
by fdesbois@users.nuiton.org 04 May '11
04 May '11
Author: fdesbois
Date: 2011-05-04 14:30:27 +0200 (Wed, 04 May 2011)
New Revision: 1901
Url: http://nuiton.org/repositories/revision/i18n/1901
Log:
Update documentation (only french for the moment)
Modified:
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java
trunk/src/site/apt/index.apt
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java 2011-05-04 12:09:57 UTC (rev 1900)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java 2011-05-04 12:30:27 UTC (rev 1901)
@@ -53,6 +53,11 @@
this(null);
}
+ /**
+ * Constructor with {@code encoding} used to load Properties file.
+ *
+ * @param encoding Charset to use for Properties loading
+ */
protected I18nInitializer(Charset encoding) {
Charset defaultEncoding = Charset.forName(I18nUtil.DEFAULT_ENCODING);
this.encoding = encoding == null ? defaultEncoding : encoding;
Modified: trunk/src/site/apt/index.apt
===================================================================
--- trunk/src/site/apt/index.apt 2011-05-04 12:09:57 UTC (rev 1900)
+++ trunk/src/site/apt/index.apt 2011-05-04 12:30:27 UTC (rev 1901)
@@ -51,6 +51,35 @@
- {{{./ant-i18n-task/index.html}I18n Ant task}} (ce module a été désactivé depuis la version 2.0)
+Quoi de neuf dans la version 2.4
+
+ La version 2.4 interprète désormais d'autres encoding que celui par défaut des
+ Properties (iso-8859-1).
+
+* Nouveautés dans le plugin maven
+
+ Nouveaux paramètres srcEncoding et outEncoding.
+
+ Le srcEncoding correspond aux fichiers de Properties utilisateurs manipulés
+ et modifiés dans les ressources (src/main/resources), sa valeur par défaut
+ devient celle du projet qui est généralement de l'utf-8. Dans ce cas, les
+ projets qui migreront verront leurs fichiers sources i18n passés
+ automatiquement en utf-8 (sans caractères unicode échappés).
+
+ Le outEncoding correspond aux fichiers de Properties générés par le plugin,
+ ces fichiers seront aussi utilisés potentiellement au runtime par l'api. Sa
+ valeur par défaut reste celle des Properties (iso-8859-1) pour garder le
+ comportement par défaut de l'api. Si vous changez ce paramètre, il sera
+ indispensable de changer l'initialisation d'I18n (voir après).
+
+* Nouveautés dans l'api
+
+ Il est désormais possible de fournir un Charset encoding à l'initialisation
+ via le {{{/i18n/nuiton-i18n/apidocs/org/nuiton/i18n/init/I18nInitializer.html}I18nInitializer}}.
+ De cette manière, les fichiers de Properties I18n seront chargés en utilisant
+ cette encoding. Par défaut le chargement reste cohérent avec le plugin et
+ les précédentes versions en gardant l'iso-8859-1 comme encoding.
+
Quoi de neuf dans la version 2.3
La version 2.3 améliore de façon considérable les temps de détection des clefs
1
0
r1900 - in trunk: maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle nuiton-i18n/src/main/java/org/nuiton/i18n nuiton-i18n/src/main/java/org/nuiton/i18n/bundle nuiton-i18n/src/main/java/org/nuiton/i18n/init nuiton-i18n/src/test/java/org/nuiton/i18n nuiton-i18n/src/test/resources/META-INF
by fdesbois@users.nuiton.org 04 May '11
by fdesbois@users.nuiton.org 04 May '11
04 May '11
Author: fdesbois
Date: 2011-05-04 14:09:57 +0200 (Wed, 04 May 2011)
New Revision: 1900
Url: http://nuiton.org/repositories/revision/i18n/1900
Log:
#1498 : Add Charset encoding in I18nInitializer used for I18nLanguage to load properties.
Added:
trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_ja_JP.properties
Modified:
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nStore.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/DefaultI18nInitializer.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java
trunk/nuiton-i18n/src/test/java/org/nuiton/i18n/I18nTest.java
trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest-definition.properties
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -34,6 +34,7 @@
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
@@ -130,6 +131,7 @@
}
List<String> bundlesUrls = new ArrayList<String>();
+ Charset loadEncoding = Charset.forName(srcEncoding);
for (URL url : urls) {
long t000 = System.nanoTime();
I18nBundleEntry bundleEntry =
@@ -138,7 +140,7 @@
// If bundle are from other libs, maybe encoding could be uncompatible :/
// Generally those files are ISO Latin1 or UTF-8, reading in
// UTF8 ISO Latin1 files will be Ok.
- bundleEntry.load(propertiesOut, srcEncoding);
+ bundleEntry.load(propertiesOut, loadEncoding);
String strPath = bundleEntry.getPath().toString();
int index = strPath.indexOf("i18n/");
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -33,6 +33,7 @@
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Locale;
@@ -94,11 +95,12 @@
continue;
}
+ Charset loadEncoding = Charset.forName(outEncoding);
for (URL url : urls) {
long t000 = System.nanoTime();
I18nBundleEntry bundleEntry =
new I18nBundleEntry(url, locale, null);
- bundleEntry.load(propertiesOut);
+ bundleEntry.load(propertiesOut, loadEncoding);
String strPath = bundleEntry.getPath().toString();
int index = strPath.indexOf("i18n/");
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -29,7 +29,12 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.i18n.bundle.I18nBundleEntry;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.Locale;
import java.util.MissingResourceException;
@@ -71,9 +76,25 @@
* fichiers de traduction.
*
* @param bundleEntries the used bundles entries to load
+ * @deprecated since 2.4 use {@link #load(I18nBundleEntry[], Charset)} instead,
+ * charset must be provided to avoid encoding problems
*/
+ @Deprecated
public void load(I18nBundleEntry[] bundleEntries) {
+ Charset encoding = Charset.forName(I18nUtil.ISO_8859_1_ENCONDING);
+ load(bundleEntries, encoding);
+ }
+ /**
+ * charge les traductions de la languea partir d'une liste donnee de
+ * fichiers de traduction.
+ *
+ * @param bundleEntries the used bundles entries to load
+ * @param encoding Charset to use for Properties loading
+ * @since 2.4
+ */
+ public void load(I18nBundleEntry[] bundleEntries, Charset encoding) {
+
// use a recursive properties
// inspired from nuiton-utils:org.nuiton.util.RecursiveProperties
// thanks to Arnaud Thimel
@@ -119,7 +140,7 @@
try {
for (I18nBundleEntry e : bundleEntries) {
- e.load(resource);
+ e.load(resource, encoding);
}
} catch (IOException e) {
throw new RuntimeException(e);
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nStore.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nStore.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nStore.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -306,7 +306,7 @@
I18nLanguage result;
result = new I18nLanguage(locale);
I18nBundleEntry[] entries = getBundleEntries(locale);
- result.load(entries);
+ result.load(entries, resolver.getEncoding());
if (log.isInfoEnabled()) {
log.info(result + ", nbEntries: " + entries.length +
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -27,7 +27,10 @@
import org.nuiton.i18n.I18nUtil;
-import java.io.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Locale;
@@ -122,11 +125,12 @@
*
* @param resource the save of resources already loaded
* @throws IOException if any pb while reading resource file
- * @deprecated since 2.4 use {@link #load(Properties, String)} instead, charset must be provided to avoid encoding problems
+ * @deprecated since 2.4 use {@link #load(Properties, Charset)} instead,
+ * charset must be provided to avoid encoding problems
*/
@Deprecated
public void load(Properties resource) throws IOException {
- String encoding = I18nUtil.ISO_8859_1_ENCONDING;
+ Charset encoding = Charset.forName(I18nUtil.ISO_8859_1_ENCONDING);
load(resource, encoding);
}
@@ -136,11 +140,11 @@
* properties. It could be different from resulting properties store.
*
* @param resource the save of resources already loaded
- * @param encoding Encoding used to store the properties
+ * @param encoding Charset used to store the properties
* @throws IOException if any pb while reading resource file
* @since 2.4
*/
- public void load(Properties resource, String encoding) throws IOException {
+ public void load(Properties resource, Charset encoding) throws IOException {
InputStream inputStream = null;
StringBuilder sb = new StringBuilder();
try {
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -33,6 +33,7 @@
import java.net.URL;
import java.net.URLClassLoader;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
@@ -70,6 +71,11 @@
}
public ClassPathI18nInitializer(ClassLoader loader, URL[] extraURLs) {
+ this(loader, extraURLs, null);
+ }
+
+ public ClassPathI18nInitializer(ClassLoader loader, URL[] extraURLs, Charset encoding) {
+ super(encoding);
this.loader = loader == null ? getClass().getClassLoader() : loader;
this.extraURLs = extraURLs;
}
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/DefaultI18nInitializer.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/DefaultI18nInitializer.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/DefaultI18nInitializer.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -32,7 +32,12 @@
import java.io.InputStream;
import java.net.URL;
-import java.util.*;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.Properties;
/**
* Default implementation of a {@link I18nInitializer} using the default i18n
@@ -84,6 +89,14 @@
public DefaultI18nInitializer(String bundleName,
ClassLoader loader,
String i18nPath) throws NullPointerException {
+ this(bundleName, loader, i18nPath, null);
+ }
+
+ public DefaultI18nInitializer(String bundleName,
+ ClassLoader loader,
+ String i18nPath,
+ Charset encoding) throws NullPointerException {
+ super(encoding);
if (bundleName == null) {
throw new NullPointerException(
"parameter 'bundleName' can not be null");
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -27,11 +27,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.i18n.I18nUtil;
import org.nuiton.i18n.bundle.I18nBundle;
import org.nuiton.i18n.bundle.I18nBundleEntry;
import org.nuiton.i18n.bundle.I18nBundleUtil;
import java.net.URL;
+import java.nio.charset.Charset;
import java.util.List;
/**
@@ -45,6 +47,17 @@
/** Logger */
private static final Log log = LogFactory.getLog(I18nInitializer.class);
+ protected Charset encoding;
+
+ protected I18nInitializer() {
+ this(null);
+ }
+
+ protected I18nInitializer(Charset encoding) {
+ Charset defaultEncoding = Charset.forName(I18nUtil.DEFAULT_ENCODING);
+ this.encoding = encoding == null ? defaultEncoding : encoding;
+ }
+
/**
* Resolv the bundles.
*
@@ -71,4 +84,12 @@
return result;
}
+ public Charset getEncoding() {
+ return encoding;
+ }
+
+ public void setEncoding(Charset encoding) {
+ this.encoding = encoding;
+ }
+
}
Modified: trunk/nuiton-i18n/src/test/java/org/nuiton/i18n/I18nTest.java
===================================================================
--- trunk/nuiton-i18n/src/test/java/org/nuiton/i18n/I18nTest.java 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/test/java/org/nuiton/i18n/I18nTest.java 2011-05-04 12:09:57 UTC (rev 1900)
@@ -29,7 +29,9 @@
import org.junit.BeforeClass;
import org.junit.Test;
import org.nuiton.i18n.init.DefaultI18nInitializer;
+import org.nuiton.i18n.init.I18nInitializer;
+import java.nio.charset.Charset;
import java.util.Locale;
/**
@@ -104,6 +106,20 @@
}
@Test
+ public void testEncodingUTF8() {
+
+ Charset utf8 = Charset.forName("utf-8");
+
+ I18nInitializer initializerUtf8 = new DefaultI18nInitializer(
+ I18nStoreTest.class.getSimpleName(), null, null, utf8);
+
+ I18n.init(initializerUtf8, Locale.JAPAN);
+
+ Assert.assertNotNull(I18n.store.resolver.getEncoding());
+ Assert.assertEquals("最初の", I18n._("key.one"));
+ }
+
+ @Test
public void testSimple() {
String expected;
Modified: trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest-definition.properties
===================================================================
--- trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest-definition.properties 2011-05-03 23:00:42 UTC (rev 1899)
+++ trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest-definition.properties 2011-05-04 12:09:57 UTC (rev 1900)
@@ -25,4 +25,5 @@
#Sun Mar 07 00:23:58 CET 2010
bundles.en_GB=bundleTest/I18nStoreTest_en_GB.properties
bundles.fr_FR=bundleTest/I18nStoreTest_fr_FR.properties
-locales=fr_FR,en_GB
+bundles.ja_JP=bundleTest/I18nStoreTest_ja_JP.properties
+locales=fr_FR,en_GB,ja_JP
Added: trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_ja_JP.properties
===================================================================
--- trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_ja_JP.properties (rev 0)
+++ trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_ja_JP.properties 2011-05-04 12:09:57 UTC (rev 1900)
@@ -0,0 +1,27 @@
+###
+# #%L
+# I18n :: Api
+#
+# $Id: I18nStoreTest_fr_FR.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/nuiton-i18n/src/test/resources/META-IN… $
+# %%
+# Copyright (C) 2004 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+key.one=最初の
+key.two=2番目
+key.with.param=とキー %s
1
0
r1899 - in trunk: ant-i18n-task maven-i18n-plugin nuiton-i18n
by fdesbois@users.nuiton.org 03 May '11
by fdesbois@users.nuiton.org 03 May '11
03 May '11
Author: fdesbois
Date: 2011-05-04 01:00:42 +0200 (Wed, 04 May 2011)
New Revision: 1899
Url: http://nuiton.org/repositories/revision/i18n/1899
Log:
missing modules change version to 2.4-SNAPSHOT
Modified:
trunk/ant-i18n-task/pom.xml
trunk/maven-i18n-plugin/pom.xml
trunk/nuiton-i18n/pom.xml
Modified: trunk/ant-i18n-task/pom.xml
===================================================================
--- trunk/ant-i18n-task/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
+++ trunk/ant-i18n-task/pom.xml 2011-05-03 23:00:42 UTC (rev 1899)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>i18n</artifactId>
- <version>2.3.3-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.i18n</groupId>
Modified: trunk/maven-i18n-plugin/pom.xml
===================================================================
--- trunk/maven-i18n-plugin/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
+++ trunk/maven-i18n-plugin/pom.xml 2011-05-03 23:00:42 UTC (rev 1899)
@@ -33,7 +33,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>i18n</artifactId>
- <version>2.3.3-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.i18n</groupId>
Modified: trunk/nuiton-i18n/pom.xml
===================================================================
--- trunk/nuiton-i18n/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
+++ trunk/nuiton-i18n/pom.xml 2011-05-03 23:00:42 UTC (rev 1899)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>i18n</artifactId>
- <version>2.3.3-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.i18n</groupId>
1
0
Author: fdesbois
Date: 2011-05-04 00:36:42 +0200 (Wed, 04 May 2011)
New Revision: 1898
Url: http://nuiton.org/repositories/revision/i18n/1898
Log:
#1494 : Introduce srcEncoding and outEncoding in maven plugin. Change implementation of load method in I18nBundleEntry using encoding. Now user file keep srcEncoding. outEncoding is default iso-8859-1 and is used for all other files in internal and for bundle purpose.
Added:
trunk/maven-i18n-plugin/src/it/ano-encoding/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy
Modified:
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java
trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java
trunk/pom.xml
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,2 @@
+To test parserJava on a new project (says a project with no i18n translations)
+At the end we should have in target/generated-sources/i18n getters detected.
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+see the changelog of org.nuiton:i18n project.
\ No newline at end of file
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,45 @@
+###
+# #%L
+# I18n :: Maven Plugin
+#
+# $Id: invoker.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+# %%
+# Copyright (C) 2007 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# A comma or space separated list of goals/phases to execute, may
+# specify an empty list to execute the default goal of the IT project
+invoker.goals=clean compile -Dlog4j.configuration=file:src/test/resources/log4j.properties
+
+# Optionally, a list of goals to run during further invocations of Maven
+#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
+
+# A comma or space separated list of profiles to activate
+#invoker.profiles=run-all run-once
+
+# The value for the environment variable MAVEN_OPTS
+#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m
+
+# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
+invoker.failureBehavior=fail-at-end
+
+# The expected result of the build, possible values are "success" (default) and "failure"
+#invoker.buildResult=success
+
+# A boolean value controlling the -N flag, defaults to "false"
+#invoker.nonRecursive=false
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ #%L
+ I18n :: Maven Plugin
+
+ $Id: pom.xml 1882 2011-02-14 15:54:14Z tchemit $
+ $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+ %%
+ Copyright (C) 2007 - 2010 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>i18n</artifactId>
+ <version>@pom.version@</version>
+ </parent>
+
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>ano-encoding-iso-8859-1</artifactId>
+
+ <name>I18n Test :: ano-encoding-iso-8859-1</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>nuiton-i18n</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <properties>
+ <i18n.bundles>fr_FR,en_GB</i18n.bundles>
+ <i18n.verbose>true</i18n.verbose>
+ <i18n.keepGetters>true</i18n.keepGetters>
+ </properties>
+ <build>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>@pom.version@</version>
+ <configuration>
+ <verbose>true</verbose>
+ <srcEncoding>iso-8859-1</srcEncoding>
+ <bundleOutputName>ResultBundle</bundleOutputName>
+ <bundleOutputPackage>org.nuiton</bundleOutputPackage>
+ </configuration>
+ <executions>
+ <execution>
+ <id>first</id>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ <goal>bundle</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
+
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,15 @@
+package org.nuiton.i18n;
+
+/**
+ * Created: 30/04/11
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ * $Id$
+ */
+public interface MessageConstants {
+
+ String MESSAGE_1 = I18n._("message1");
+
+ String MESSAGE_2 = I18n._("message2");
+
+}
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+message1=Hello !
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+message1=Salut \u00E0 tous
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,34 @@
+###
+# #%L
+# I18n :: Maven Plugin
+#
+# $Id: log4j.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/ano-672/src/t… $
+# %%
+# Copyright (C) 2007 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# Global logging configuration
+log4j.rootLogger=ERROR, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
+
+# package level
+log4j.logger.org.nuiton.util=WARN
+log4j.logger.org.nuiton.i18n=DEBUG
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,58 @@
+/*
+ * #%L
+ * I18n :: Maven Plugin
+ *
+ * $Id: verify.groovy 1882 2011-02-14 15:54:14Z tchemit $
+ * $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+ * %%
+ * Copyright (C) 2007 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+def fileExists(path) {
+
+ file = new File(basedir, path);
+ return file.exists();
+
+}
+
+def checkContent(path, values) {
+
+ file = new File(basedir, path);
+
+ content = file.text;
+
+ for (value in values) {
+ println("VALUE : " + value);
+ if (!content.contains(value)) {
+ println("Could not find " + value + " in file " + file);
+ return false;
+ }
+ }
+ return true;
+}
+
+assert fileExists('target/classes/org/nuiton/ResultBundle_fr_FR.properties');
+
+assert checkContent('target/generated-sources/i18n/ano-encoding-iso-8859-1_fr_FR.properties',
+ ['Salut \\u00E0 tous']);
+
+assert checkContent('src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties',
+ ['Salut \\u00E0 tous'])
+
+assert fileExists('target/classes/org/nuiton/ResultBundle_en_GB.properties');
+
+return true;
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,2 @@
+To test parserJava on a new project (says a project with no i18n translations)
+At the end we should have in target/generated-sources/i18n getters detected.
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+see the changelog of org.nuiton:i18n project.
\ No newline at end of file
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,45 @@
+###
+# #%L
+# I18n :: Maven Plugin
+#
+# $Id: invoker.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+# %%
+# Copyright (C) 2007 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# A comma or space separated list of goals/phases to execute, may
+# specify an empty list to execute the default goal of the IT project
+invoker.goals=clean compile -Dlog4j.configuration=file:src/test/resources/log4j.properties
+
+# Optionally, a list of goals to run during further invocations of Maven
+#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
+
+# A comma or space separated list of profiles to activate
+#invoker.profiles=run-all run-once
+
+# The value for the environment variable MAVEN_OPTS
+#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m
+
+# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
+invoker.failureBehavior=fail-at-end
+
+# The expected result of the build, possible values are "success" (default) and "failure"
+#invoker.buildResult=success
+
+# A boolean value controlling the -N flag, defaults to "false"
+#invoker.nonRecursive=false
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ #%L
+ I18n :: Maven Plugin
+
+ $Id: pom.xml 1882 2011-02-14 15:54:14Z tchemit $
+ $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+ %%
+ Copyright (C) 2007 - 2010 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>i18n</artifactId>
+ <version>@pom.version@</version>
+ </parent>
+
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>ano-encoding-migrate</artifactId>
+
+ <name>I18n Test :: ano-encoding-migrate</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>nuiton-i18n</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <properties>
+ <i18n.bundles>fr_FR,en_GB</i18n.bundles>
+ <i18n.verbose>true</i18n.verbose>
+ <i18n.keepGetters>true</i18n.keepGetters>
+ </properties>
+ <build>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>@pom.version@</version>
+ <configuration>
+ <verbose>true</verbose>
+ <bundleOutputName>ResultBundle</bundleOutputName>
+ <bundleOutputPackage>org.nuiton</bundleOutputPackage>
+ </configuration>
+ <executions>
+ <execution>
+ <id>first</id>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ <goal>bundle</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
+
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,15 @@
+package org.nuiton.i18n;
+
+/**
+ * Created: 30/04/11
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ * $Id$
+ */
+public interface MessageConstants {
+
+ String MESSAGE_1 = I18n._("message1");
+
+ String MESSAGE_2 = I18n._("message2");
+
+}
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+message1=Hello !
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+message1=Salut \u00E0 tous
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,34 @@
+###
+# #%L
+# I18n :: Maven Plugin
+#
+# $Id: log4j.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/ano-672/src/t… $
+# %%
+# Copyright (C) 2007 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# Global logging configuration
+log4j.rootLogger=ERROR, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
+
+# package level
+log4j.logger.org.nuiton.util=WARN
+log4j.logger.org.nuiton.i18n=DEBUG
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,56 @@
+/*
+ * #%L
+ * I18n :: Maven Plugin
+ *
+ * $Id: verify.groovy 1882 2011-02-14 15:54:14Z tchemit $
+ * $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+ * %%
+ * Copyright (C) 2007 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+def fileExists(path) {
+
+ file = new File(basedir, path);
+ return file.exists();
+}
+
+def checkContent(path, values) {
+
+ file = new File(basedir, path);
+
+ content = file.text;
+
+ for (key in values) {
+ if (!content.contains(key)) {
+ println("Could not find " + key + " in file " + file);
+ return false;
+ }
+ }
+ return true;
+}
+
+assert fileExists('target/classes/org/nuiton/ResultBundle_fr_FR.properties');
+
+assert checkContent('target/generated-sources/i18n/ano-encoding-migrate_fr_FR.properties',
+ ['Salut à tous']);
+
+assert checkContent('src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties',
+ ['Salut à tous']);
+
+assert fileExists('target/classes/org/nuiton/ResultBundle_en_GB.properties');
+
+return true;
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,2 @@
+To test parserJava on a new project (says a project with no i18n translations)
+At the end we should have in target/generated-sources/i18n getters detected.
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+see the changelog of org.nuiton:i18n project.
\ No newline at end of file
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,45 @@
+###
+# #%L
+# I18n :: Maven Plugin
+#
+# $Id: invoker.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+# %%
+# Copyright (C) 2007 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# A comma or space separated list of goals/phases to execute, may
+# specify an empty list to execute the default goal of the IT project
+invoker.goals=clean test -Dlog4j.configuration=file:src/test/resources/log4j.properties
+
+# Optionally, a list of goals to run during further invocations of Maven
+#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
+
+# A comma or space separated list of profiles to activate
+#invoker.profiles=run-all run-once
+
+# The value for the environment variable MAVEN_OPTS
+#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m
+
+# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
+invoker.failureBehavior=fail-at-end
+
+# The expected result of the build, possible values are "success" (default) and "failure"
+#invoker.buildResult=success
+
+# A boolean value controlling the -N flag, defaults to "false"
+#invoker.nonRecursive=false
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ #%L
+ I18n :: Maven Plugin
+
+ $Id: pom.xml 1882 2011-02-14 15:54:14Z tchemit $
+ $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+ %%
+ Copyright (C) 2007 - 2010 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>i18n</artifactId>
+ <version>@pom.version@</version>
+ </parent>
+
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>ano-encoding-utf-8</artifactId>
+
+ <name>I18n Test :: ano-encoding-utf-8</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>nuiton-i18n</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <properties>
+ <i18n.bundles>ja_JP,en_GB,fr_FR</i18n.bundles>
+ <i18n.verbose>true</i18n.verbose>
+ <i18n.keepGetters>true</i18n.keepGetters>
+ </properties>
+ <build>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>@pom.version@</version>
+ <configuration>
+ <verbose>true</verbose>
+ <srcEncoding>utf-8</srcEncoding>
+ <bundleOutputName>ResultBundle</bundleOutputName>
+ <bundleOutputPackage>org.nuiton</bundleOutputPackage>
+ </configuration>
+ <executions>
+ <execution>
+ <id>first</id>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ <goal>bundle</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
+
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,13 @@
+package org.nuiton.i18n;
+
+/**
+ * Created: 30/04/11
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ * $Id$
+ */
+public interface MessageConstants {
+
+ String HELLO = I18n.n_("hello");
+
+}
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+hello=Hello !
\ No newline at end of file
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+hello=Salut à tous
\ No newline at end of file
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1 @@
+hello=こんにちは世界
\ No newline at end of file
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,44 @@
+package org.nuiton.i18n;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.i18n.init.DefaultI18nInitializer;
+
+import java.util.Locale;
+
+/**
+ * Created: 30/04/11
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ * $Id$
+ */
+public class ReadTest {
+
+ @Test
+ public void testJapanese() {
+
+ // Initialize with bundleOuptutName and bundleOuptutFolder as path
+ DefaultI18nInitializer initializer =
+ new DefaultI18nInitializer("ResultBundle", null, "org/nuiton/");
+ I18n.init(initializer, new Locale("ja", "JP"));
+
+ String message = I18n._(MessageConstants.HELLO);
+
+ Assert.assertEquals("こんにちは世界", message);
+ }
+
+ @Test
+ public void testFrench() {
+
+ // Initialize with bundleOuptutName and bundleOuptutFolder as path
+ DefaultI18nInitializer initializer =
+ new DefaultI18nInitializer("ResultBundle", null, "org/nuiton/");
+ I18n.init(initializer, new Locale("fr", "FR"));
+
+ String message = I18n._(MessageConstants.HELLO);
+
+ Assert.assertEquals("Salut à tous", message);
+ }
+
+}
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,34 @@
+###
+# #%L
+# I18n :: Maven Plugin
+#
+# $Id: log4j.properties 1882 2011-02-14 15:54:14Z tchemit $
+# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/ano-672/src/t… $
+# %%
+# Copyright (C) 2007 - 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# Global logging configuration
+log4j.rootLogger=ERROR, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
+
+# package level
+log4j.logger.org.nuiton.util=WARN
+log4j.logger.org.nuiton.i18n=DEBUG
Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy (rev 0)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy 2011-05-03 22:36:42 UTC (rev 1898)
@@ -0,0 +1,54 @@
+/*
+ * #%L
+ * I18n :: Maven Plugin
+ *
+ * $Id: verify.groovy 1882 2011-02-14 15:54:14Z tchemit $
+ * $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPr… $
+ * %%
+ * Copyright (C) 2007 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+def fileExists(path) {
+
+ file = new File(basedir, path);
+ return file.exists();
+
+}
+
+def checkContent(path, values) {
+
+ file = new File(basedir, path);
+
+ content = file.text;
+
+ for (key in values) {
+ if (!content.contains(key)) {
+ println("Could not find " + key + " in file " + file);
+ return false;
+ }
+ }
+ return true;
+}
+
+assert fileExists('target/classes/org/nuiton/ResultBundle_ja_JP.properties');
+
+assert checkContent('src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties',
+ ['こんにちは世界']);
+
+assert fileExists('target/classes/org/nuiton/ResultBundle_en_GB.properties');
+
+return true;
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -47,7 +47,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @author jruchaud <ruchaud(a)codelutin.com>
*/
-public abstract class AbstractI18nMojo extends AbstractPlugin implements PluginWithEncoding {
+public abstract class AbstractI18nMojo extends AbstractPlugin {
/** Le nombre de getters détectés pendant le cycle de vie du build. */
private static int NB_GETTER_FILES;
@@ -99,17 +99,37 @@
protected File out;
/**
- * Encoding used to load and store files.
+ * Deprecated param.
+ *
+ * @parameter expression="${i18n.encoding}" default-value="${project.build.sourceEncoding}"
+ * @required
+ * @deprecated since 2.4, not used anymore, use srcEncoding or outEncoding instead
+ */
+ protected String encoding;
+
+ /**
+ * Encoding used to load files. All external bundle files or from user
+ * sources will be load using this encoding. The merge in sources (from
+ * generate goal) will not change this encoding.
* <p/>
* <b>Note:</b> If nothing is filled here, we will use the system
* property {@code file.encoding}.
*
- * @parameter expression="${i18n.encoding}" default-value="${project.build.sourceEncoding}"
+ * @parameter expression="${i18n.srcEncoding}" default-value="${project.build.sourceEncoding}"
* @required
*/
- protected String encoding;
+ protected String srcEncoding;
/**
+ * Encoding used to load and store files. Default is iso-8859-1 for
+ * properties file.
+ *
+ * @parameter expression="${i18n.outEncoding}" default-value="iso-8859-1"
+ * @required
+ */
+ protected String outEncoding;
+
+ /**
* To update generated files to user i18n files.
* <p/>
* <b>Note :</b> By default, this is active, in order to have a project uptodate
@@ -300,16 +320,6 @@
}
@Override
- public String getEncoding() {
- return encoding;
- }
-
- @Override
- public void setEncoding(String encoding) {
- this.encoding = encoding;
- }
-
- @Override
public MavenProject getProject() {
return project;
}
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -28,7 +28,6 @@
import org.nuiton.io.SortedProperties;
import java.io.File;
-import java.io.FileOutputStream;
import java.util.Arrays;
import java.util.Locale;
@@ -95,6 +94,7 @@
if (!silent) {
getLog().info("config - src basedir : " + src.getAbsolutePath());
getLog().info("config - out basedir : " + out.getAbsolutePath());
+ getLog().info("config - src and out encoding : " + srcEncoding);
getLog().info("config - locales : " + Arrays.toString(locales));
}
for (Locale locale : locales) {
@@ -107,21 +107,24 @@
File bundleGetterOut = getI18nFile(
out, artifactId + GetterMojo.FROM_GETTERS, locale, false);
- SortedProperties propertiesSrc = new SortedProperties(encoding);
+ SortedProperties propertiesSrc = new SortedProperties(srcEncoding);
if (bundleSrc.exists()) {
propertiesSrc.load(bundleSrc);
}
- SortedProperties propertiesOut = new SortedProperties(encoding);
+ SortedProperties propertiesOut = new SortedProperties();
if (!strictMode) {
// si on n'est pas en mode strict, on doit push back in
- // bundle out, all the bundle src keys
+ // bundle out, all the bundle src keys
propertiesOut.putAll(propertiesSrc);
}
- propertiesOut.load(bundleGetterOut);
+ // Les parser utilisent outEncoding pour gérer les fichiers, donc
+ // la lecture se fera avec cet encoding et non pas le srcEncoding
+ propertiesOut.load(bundleGetterOut, outEncoding);
+
// Parcours des clés
for (Object key : propertiesOut.keySet()) {
Object oldKey = propertiesOut.get(key);
@@ -139,13 +142,9 @@
}
}
- //fixme : on devrait laisser le fichier en utf8 ?
- FileOutputStream outStream = new FileOutputStream(bundleOut);
- try {
- propertiesOut.store(outStream);
- } finally {
- outStream.close();
- }
+ // La sauvegarde doit assurer l'encoding de départ pour ne pas
+ // transformer les fichiers sources.
+ propertiesOut.store(bundleOut, srcEncoding);
// Sauvegarde avant copie
if (genSrc && keepBackup) {
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -76,7 +76,7 @@
createDirectoryIfNecessary(bundleGetters.getParentFile());
- SortedProperties propertiesOut = new SortedProperties(getEncoding());
+ SortedProperties propertiesOut = new SortedProperties(outEncoding);
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(out);
@@ -91,7 +91,7 @@
// chargement du getter
SortedProperties propertiesIn =
- new SortedProperties(getEncoding()).load(bundleGetter);
+ new SortedProperties(outEncoding).load(bundleGetter);
// ajout des entrées dans le bundle
propertiesOut.putAll(propertiesIn);
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -32,7 +32,6 @@
import org.nuiton.plugin.PluginHelper;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
@@ -116,7 +115,7 @@
);
SortedProperties propertiesOut =
- new SortedProperties(encoding, false);
+ new SortedProperties(outEncoding, false);
StringBuilder buffer = new StringBuilder();
URL[] urls = getCollectI18nResources(locale);
@@ -135,7 +134,11 @@
long t000 = System.nanoTime();
I18nBundleEntry bundleEntry =
new I18nBundleEntry(url, locale, null);
- bundleEntry.load(propertiesOut);
+ // Use srcEncoding, i18n files are generated using this encoding
+ // If bundle are from other libs, maybe encoding could be uncompatible :/
+ // Generally those files are ISO Latin1 or UTF-8, reading in
+ // UTF8 ISO Latin1 files will be Ok.
+ bundleEntry.load(propertiesOut, srcEncoding);
String strPath = bundleEntry.getPath().toString();
int index = strPath.indexOf("i18n/");
@@ -210,19 +213,14 @@
getLog().info("prepare i18n definition file in " +
defOut.getAbsolutePath());
}
- SortedProperties p = new SortedProperties(encoding, false);
+ SortedProperties p = new SortedProperties(outEncoding, false);
p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_LOCALES, bundles);
p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_VERSION, version);
for (Entry<Locale, String> e : bundleDico.entrySet()) {
p.setProperty(DefaultI18nInitializer.BUNDLES_FOR_LOCALE +
e.getKey().toString(), e.getValue());
}
- FileOutputStream out = new FileOutputStream(defOut);
- try {
- p.store(out, null);
- } finally {
- out.close();
- }
+ p.store(defOut);
}
@Override
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -35,7 +35,6 @@
import org.apache.maven.shared.dependency.tree.DependencyNode;
import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
-import org.codehaus.plexus.util.CollectionUtils;
import org.nuiton.i18n.bundle.I18nBundleEntry;
import org.nuiton.plugin.DependencyUtil;
@@ -43,7 +42,6 @@
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -185,7 +183,7 @@
getLog().info("add " + path);
}
}
- writeFile(bundleOut, buffer.toString(), encoding);
+ writeFile(bundleOut, buffer.toString(), outEncoding);
}
/**
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -85,7 +85,7 @@
}
SortedProperties propertiesOut =
- new SortedProperties(encoding, false);
+ new SortedProperties(outEncoding, false);
StringBuilder buffer = new StringBuilder();
URL[] urls = getCollectI18nResources(locale);
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -139,9 +139,9 @@
public void init() throws Exception {
super.init();
t0 = System.nanoTime();
- result = new SortedProperties(encoding);
- oldParser = new SortedProperties(encoding);
- oldLanguage = new SortedProperties(encoding);
+ result = new SortedProperties(outEncoding);
+ oldParser = new SortedProperties(outEncoding);
+ oldLanguage = new SortedProperties(outEncoding);
createDirectoryIfNecessary(out);
// // evenements
// if (keysModifier) {
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -258,7 +258,7 @@
private String readInputStream(InputStream in) throws IOException {
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(
- new InputStreamReader(in, getEncoding()));
+ new InputStreamReader(in, outEncoding));
try {
String line;
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -143,7 +143,7 @@
public FileParser newFileParser() {
return new GWTJavaFileParser(getLog(),
- getEncoding(),
+ outEncoding,
oldParser,
isShowTouchedFiles()
);
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -109,7 +109,7 @@
public FileParser newFileParser() {
return new JavaFileParser(getLog(),
- getEncoding(),
+ outEncoding,
oldParser,
isShowTouchedFiles()
);
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -152,7 +152,7 @@
final DocumentBuilder builder) {
return new XmlFileParser(getLog(),
- getEncoding(),
+ outEncoding,
oldParser,
showTouchedFiles,
rules,
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -141,7 +141,7 @@
public FileParser newFileParser() {
return new TapestryFileParser(getLog(),
- getEncoding(),
+ outEncoding,
oldParser,
isShowTouchedFiles()
);
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -144,7 +144,7 @@
builder.setEntityResolver(getEntityResolver());
return new XmlFileParser(getLog(),
- getEncoding(),
+ outEncoding,
oldParser,
showTouchedFiles,
rules,
Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java 2011-05-03 22:36:42 UTC (rev 1898)
@@ -106,7 +106,7 @@
@Override
protected XmlFileParser newXmlFileParser(XPath xpath, DocumentBuilder builder) {
XmlFileParser fileParser = new XmlFileParser(getLog(),
- getEncoding(),
+ outEncoding,
oldParser,
showTouchedFiles,
rules,
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-03 22:29:45 UTC (rev 1897)
+++ trunk/pom.xml 2011-05-03 22:36:42 UTC (rev 1898)
@@ -37,7 +37,7 @@
</parent>
<artifactId>i18n</artifactId>
- <version>2.3.3-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
<modules>
<module>nuiton-i18n</module>
@@ -188,6 +188,7 @@
<projectId>i18n</projectId>
<processorVersion>1.2.1</processorVersion>
+ <helperPluginVersion>1.3-SNAPSHOT</helperPluginVersion>
<!--Multilanguage maven-site -->
<locales>fr,en</locales>
1
0
r1897 - trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle
by fdesbois@users.nuiton.org 03 May '11
by fdesbois@users.nuiton.org 03 May '11
03 May '11
Author: fdesbois
Date: 2011-05-04 00:29:45 +0200 (Wed, 04 May 2011)
New Revision: 1897
Url: http://nuiton.org/repositories/revision/i18n/1897
Log:
#1495 : Add methods to use specific encoding with File. The one from instance is renamed defaultEncoding. Keep same implementation as superclass for overriden methods (need only removeHeader management)
Modified:
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java 2011-05-03 09:40:22 UTC (rev 1896)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java 2011-05-03 22:29:45 UTC (rev 1897)
@@ -122,51 +122,46 @@
*
* @param resource the save of resources already loaded
* @throws IOException if any pb while reading resource file
+ * @deprecated since 2.4 use {@link #load(Properties, String)} instead, charset must be provided to avoid encoding problems
*/
+ @Deprecated
public void load(Properties resource) throws IOException {
+ String encoding = I18nUtil.ISO_8859_1_ENCONDING;
+ load(resource, encoding);
+ }
+
+ /**
+ * For a given language, load the resource file of this entry into the
+ * <code>resource</code> properties object. Use {@code charset} to load
+ * properties. It could be different from resulting properties store.
+ *
+ * @param resource the save of resources already loaded
+ * @param encoding Encoding used to store the properties
+ * @throws IOException if any pb while reading resource file
+ * @since 2.4
+ */
+ public void load(Properties resource, String encoding) throws IOException {
InputStream inputStream = null;
StringBuilder sb = new StringBuilder();
try {
-// I18nFileReader fileReader = new I18nFileReader();
- Properties fileReader = new Properties() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public synchronized void load(InputStream inStream) throws IOException {
- String charset = I18nUtil.ISO_8859_1_ENCONDING;
- Charset charsetTo = Charset.forName(charset);
-
- BufferedReader readerFile = new BufferedReader(
- new InputStreamReader(inStream, charsetTo));
- try {
- String lineFile;
- StringBuilder builderFile;
- builderFile = new StringBuilder();
- while ((lineFile = readerFile.readLine()) != null) {
- builderFile.append(lineFile).append('\n');
- }
- super.load(new ByteArrayInputStream(
- builderFile.toString().getBytes()));
- } finally {
- readerFile.close();
- }
- }
- };
-
inputStream = getPath().openStream();
- //String encoding = language.getEncoding();
if (I18nBundle.log.isDebugEnabled()) {
sb.append(getPath()).append("\n");
}
- // TC 20081117 always use ISO_8859_1_ENCONDING, since java does
- // it like this.
- fileReader.load(inputStream);
-// fileReader.load(inputStream, I18nUtil.ISO_8859_1_ENCONDING);
+ // Prepare new Properties using charset to load entries
+ Properties fileReader = new Properties();
+ Reader reader = new InputStreamReader(inputStream, encoding);
+ try {
+ fileReader.load(reader);
+ } finally {
+ reader.close();
+ }
+
if (I18nBundle.log.isDebugEnabled()) {
for (Entry<Object, Object> entry : fileReader.entrySet()) {
- sb.append(I18nUtil.ISO_8859_1_ENCONDING);
+ sb.append(encoding);
sb.append(" : ");
sb.append(entry);
sb.append("\n");
1
0
r1896 - trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init
by echatellier@users.nuiton.org 03 May '11
by echatellier@users.nuiton.org 03 May '11
03 May '11
Author: echatellier
Date: 2011-05-03 11:40:22 +0200 (Tue, 03 May 2011)
New Revision: 1896
Url: http://nuiton.org/repositories/revision/i18n/1896
Log:
Wrong copied code
Modified:
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java 2011-04-11 08:45:39 UTC (rev 1895)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/ClassPathI18nInitializer.java 2011-05-03 09:40:22 UTC (rev 1896)
@@ -54,7 +54,7 @@
/** Logger */
private static final Log log =
- LogFactory.getLog(DefaultI18nInitializer.class);
+ LogFactory.getLog(ClassPathI18nInitializer.class);
/** class loader to use (optional) */
protected ClassLoader loader;
1
0
Author: tchemit
Date: 2011-04-11 10:45:39 +0200 (Mon, 11 Apr 2011)
New Revision: 1895
Url: http://nuiton.org/repositories/revision/i18n/1895
Log:
Update mavenpom4redmineAndCentral to 2.5.3.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-03-24 14:37:51 UTC (rev 1894)
+++ trunk/pom.xml 2011-04-11 08:45:39 UTC (rev 1895)
@@ -33,7 +33,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmineAndCentral</artifactId>
- <version>2.5.2</version>
+ <version>2.5.3</version>
</parent>
<artifactId>i18n</artifactId>
1
0
Author: jcouteau
Date: 2011-03-24 15:37:51 +0100 (Thu, 24 Mar 2011)
New Revision: 1894
Url: http://nuiton.org/repositories/revision/i18n/1894
Log:
Add doc for GWT
Added:
trunk/src/site/apt/gwt.apt
trunk/src/site/en/apt/gwt.apt
Modified:
trunk/src/site/site_en.xml
trunk/src/site/site_fr.xml
Added: trunk/src/site/apt/gwt.apt
===================================================================
--- trunk/src/site/apt/gwt.apt (rev 0)
+++ trunk/src/site/apt/gwt.apt 2011-03-24 14:37:51 UTC (rev 1894)
@@ -0,0 +1,177 @@
+GWT UiBinder et i18n, vous avez dit un cauchemard ?
+
+* GWT avec nuiton-i18n (et Maven) et ça coule de source
+
+** Le fonctionnement classique de l'i18n dans GWT
+
+ Si vous avez des écrans que vous avez créé avec UiBinder et que vous souhaitez
+ les internationaliser, vous aller vous tourner vers la page ad-hoc de la
+ documentation de GWT
+ (http://code.google.com/intl/fr/webtoolkit/doc/latest/DevGuideUiBinderI18n.h…)
+ Dans cette documentation, on vous apprend que vous devez utiliser, pour
+ l'internationalisation, la syntaxe suivante :
+
+--------------------------------------------------------------------------------
+ <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
+ ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
+ ui:generateLocales="default">
+ <div><ui:msg description="Greeting">Hello, world.</ui:msg></div>
+ </ui:UiBinder>
+--------------------------------------------------------------------------------
+
+ Cela vous donnera un magnifique fichier de propriété qui ressemble à ça :
+
+--------------------------------------------------------------------------------
+ # Generated from my.app.HelloWorldMyBinderImplGenMessages
+ # for locale default
+ # Description: Greeting
+ 022A824F26735ED0582324BE34F3CAE1=Hello, world.
+--------------------------------------------------------------------------------
+
+ Ok, cool, mais ce beau fichier de propriété, vous le donnez à un traducteur,
+ il vous regarde avec des gros yeux, il claque la porte et vous le revoyez
+ jamais. D'autant plus que vous allez avoir un fichier de propriété par fichier
+ UiBinder. Oui oui, vous avez bien lu.
+
+ Bon admettons, on va chercher à améliorer ce fichier de propriétés alors.
+ Déjà, en changeant le générateur on arrive à avoir de beaux fichiers. Bien.
+ Mais on a toujours pleins de fichiers de propriétés, qui en plus sont générés
+ dans pleins d'endroits différents. Un beau cauchemard.
+
+ En cherchant un peu sur le net, on voit que si on met toutes nos chaines dans
+ un fichier LocalizableResources.properties, on n'a plus besoins de tous les
+ autres ficheirs de propriétés. On trouve un script python qui nous met tout ça
+ en un seul endroit mais vous vous voyez utiliser un script python a l'heure de
+ l'automatisation de toutes les taches répétitives. Un script python, alors que
+ vous faites du Java !
+
+ Si vous êtes arrivés jusqu'ici et que vous avez persévéré, vous voyez bien que
+ l'internationalisation en utilisant UiBinder est un cauchemard.
+
+** Le fonctionnement attendu
+
+ Bon, et si on se posait les bonnes questions. Qu'est ce que veulent toutes les
+ personnes impliquées dans la boucle ? Les développeurs ? Les traducteurs ?
+
+ Les développeurs, ils veulent surtout en écrire le moins possible. Répéter les
+ informations de génération en haut de chaque fichier c'est un peu répétitif
+ et, comment dire, pénible. Appliquer un script python c'est pas optimum, si on
+ pouvait faire ça avec un outil de gestion des builds (comme Maven) ça serait
+ bien quand même. Le développeur ne doit faire que coder, toutes les
+ manipulations de fichier doivent être laissées à l'outil de gestion de build.
+
+ Les traducteurs, ils veulent des fichiers facile à manipuler, au maximum un
+ fichier par langue. Il faut donc grouper les traductions de tous les fichiers.
+ Il ne faut aps aller chercher les nouvelles clés dans le code. Tout doit être
+ dans le fichier de propriété, seule la traduction doit être à la charge du
+ traducteur.
+
+ Donc en résumé, on veut que les chaînes soient extraites de façon automatisées
+ et placées dans un fichier de propriété unique (un par langue). Il faut que
+ l'on conserve les chaînes déjà traduites d'une version à l'autre. Il faut que
+ la configuration de la génération soit centralisée et que cette génération
+ soit gérée par l'outil de gestion de build.
+
+** Et comment on s'y prend ?
+
+ Le processus de build peut déjà être géré par Maven
+ (http://mojo.codehaus.org/gwt-maven-plugin/) on va donc se baser sur Maven,
+ d'autant plus que la librairie nuiton-i18n
+ (http://maven-site.nuiton.org/i18n/) fournit un plugin qui gère les clés de
+ traduction et leur extraction déjà très bien. On va donc se baser sur ces deux
+ outils.
+
+ On va considérer que vous avez réussi à compiler/lancer votre projet avec
+ Maven pour se consacrer à ce qui nous intéresse, la traduction de nos fichiers
+ UiBinder. On va donc utiliser nuiton-i18n et plus particulièrement le parser
+ xml avec nos propres règles.
+
+** Création de notre règle de parsing
+
+ Nuiton-i18n fournit un parser XML qui est très puissant et peut être configuré
+ par des règles externes. Nous allons donc créer une règle pour parser les
+ fichiers UiBinder de GWT. Notre règle s'appelera 'gwt.rules' et sera placée
+ dans notre répertoire *src/main/i18n*. Son contenu sera uniquement :
+
+--------------------------------------------------------------------------------
+//ui:msg/@key
+--------------------------------------------------------------------------------
+
+ La valeur est du jxpath indiquant que l'on recherche tous les attributs key
+ des éléments ui:msg. Jusque là, pas de soucis. Vous pourrez améliorer cette
+ règle si vous avez plus de champs à traduire, mais elle devrait suffire à la
+ plupart des cas.
+
+** Configuration du plugin
+
+ Nous allons configurer le plugin nuiton-i18n pour arriver à nos fins.
+
+ Dans une première exécution, nous allons lui dire de parser nos fichiers
+ UiBinder (*.ui.xml) situés dans notre dossier src/main/java en utilisant la
+ rule créée précédemment. Il ne faut pas oublier de préciser les namespace pour
+ que le plugin s'y retrouve dans les path.
+
+ Dans une deuxième execution, on génère les fichiers de propriété qui seront
+ situés dans src/main/resources/i18n.
+
+ Dans une dernière exécution, on génère le bundle. On précise le fichier et
+ répertoire de sortie, soit LocalizableResource (les langues et le .properties
+ sont ajoutés automatiquement) et WEB-INF/com/google/gwt/i18n/client dans le
+ répertoire de votre hostedWebapp (ici src/main/webapp).
+
+--------------------------------------------------------------------------------
+<plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>scan-gwt-sources</id>
+ <goals>
+ <goal>parserXml</goal>
+ </goals>
+ <configuration>
+ <basedir>${project.basedir}/src/main/java</basedir>
+ <includes>**/*.ui.xml</includes>
+ <userRulesFiles>
+ <file>${basedir}/src/main/i18n/gwt.rules</file>
+ </userRulesFiles>
+ <namespaces>
+ <gwt>urn:import:com.google.gwt.user.client.ui</gwt>
+ <ui>urn:ui:com.google.gwt.uibinder</ui>
+ </namespaces>
+ </configuration>
+ </execution>
+ <execution>
+ <id>gen</id>
+ <goals>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>make-bundle</id>
+ <goals>
+ <goal>bundle</goal>
+ </goals>
+ <configuration>
+ <generateDefinitionFile>false</generateDefinitionFile>
+ <addBundleOuputDirParent>false</addBundleOuputDirParent>
+ <bundleOutputPackage>com/google/gwt/i18n/client</bundleOutputPackage>
+ <bundleOutputName>LocalizableResource</bundleOutputName>
+ </configuration>
+ </execution>
+ </executions>
+</plugin>
+--------------------------------------------------------------------------------
+
+** Premier build
+
+ Lancez un premier build, vous allez avoir vos fichiers de propriétés vides qui
+ vont venir se placer dans votre répertoire src/main/resources/i18n.
+ Remplissez-les (pensez à bien échapper les caractères spéciaux en les
+ remplaçant par leur code unicode.
+
+** Second build, c'était compliqué ?
+
+ Lancez un deuxième build, lancez votre application. Vos langues sont
+ disponibles ? Bien... C'est toujours un cauchemard ?
Added: trunk/src/site/en/apt/gwt.apt
===================================================================
--- trunk/src/site/en/apt/gwt.apt (rev 0)
+++ trunk/src/site/en/apt/gwt.apt 2011-03-24 14:37:51 UTC (rev 1894)
@@ -0,0 +1,164 @@
+GWT UiBinder and i18n, you said nightmare ?
+
+* GWT with nuiton-i18n (and Maven) and it's easy
+
+** The way i18n works in GWT
+
+ If you got screens you made using UiBider and that you want to localize, you
+ will go to the ad-hoc page of the GWT documentation
+ (http://code.google.com/intl/fr/webtoolkit/doc/latest/DevGuideUiBinderI18n.h…)
+ In this documentation, you learn tha tyou must use, for localization, the
+ following syntax :
+
+--------------------------------------------------------------------------------
+ <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
+ ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
+ ui:generateLocales="default">
+ <div><ui:msg description="Greeting">Hello, world.</ui:msg></div>
+ </ui:UiBinder>
+--------------------------------------------------------------------------------
+
+ This will give you a nice property file that looks like that :
+
+--------------------------------------------------------------------------------
+ # Generated from my.app.HelloWorldMyBinderImplGenMessages
+ # for locale default
+ # Description: Greeting
+ 022A824F26735ED0582324BE34F3CAE1=Hello, world.
+--------------------------------------------------------------------------------
+
+ Nice, but this property file, if you give it to a translator, he will look at
+ you with big eyes, smash the door and you will never see him again. And you
+ will got a property file per UiBinder file. Yes you read well.
+
+ Let's admit that, try to improve the property file then. Changing the
+ generator, we succeed in getting nice files. Ok. But we still get lots of
+ property files, that are generated in different directories. A nightmare.
+
+ If you search on the net, we see that if we put all our translated strings in
+ a file called LocalizableResources.properties, we do not need all the other
+ files anymore. You can find a python script that puts everything in a single
+ place, but you see yourself using python script whereas all repetitive tasks
+ are automatized. A python script, but you are coding in Java !
+
+ So if you get there, you found out that localization in GWT when using
+ UiBinder can be quite a pain.
+
+** How we want it to work
+
+ So let's ask the right questions. What all people involved in the localization
+ process want ? Developers ? Translators ?
+
+ Developers want to write the minimum code. Repeat generation documentation on
+ top of each file can be quite repetitive and useless. Applying a python script
+ is not optimum, if we could process this with our build manager (like Maven or
+ Ant) that could be great. The developer must only have to code, all the files
+ manipulations must be left to the build manager.
+
+ The translators want files easy to deal with. And one file per language
+ maximum. We must gather the translation sof all files in one. The translator
+ should not have to search for translation keys in the code. Everything must be
+ in the property file, only translation must be done by the translator.
+
+ So to summarize, we want the strings to be extracted in an automatized way and
+ placed in a unique property file (one per language). We must keep the already
+ translated strings from a version to the other. And the generation
+ configuration must be centralised and the generation dealt with by the build
+ manager.
+
+** How we do that ?
+
+ The build process can already be managed by Maven
+ (http://mojo.codehaus.org/gwt-maven-plugin/) so we will be based on Maven,
+ and nuiton-i18n got a Maven plugin managing translation keys and extraction
+ quite well.
+
+ We will consider here that you can compile/run your GWT project with Maven to
+ go to the interesting part, the translation of UiBinder files. So we will use
+ the xml parser with our own rules.
+
+** Creating our own parsing rule
+
+ Nuiton-i18n got a XML parser that is quite powerful and can be configured with
+ external rules. So we will create a rule to parse GWT UiBinder files. Our rule
+ will be named gwt.rules and will be placed in *src/main/i18n* directory. It's
+ content will be :
+
+--------------------------------------------------------------------------------
+ //ui:msg/@key
+--------------------------------------------------------------------------------
+
+ The value is jxpath indicating that we look all the key attributes of the
+ ui:msg elements. So far no problem. You can update this rule if you got other
+ stuff to translate, but this should cover most of the cases.
+
+** Plugin configuration
+
+ We will configure the nuiton-i18n plugin to be able to do what we want.
+
+ In a first execution, we will tell him to parse our UiBinder files (*.ui.xml)
+ located in our src/main/java directory using the rule previously created.
+ Do not forget to indicate the namespaces so the plugin can deal with paths.
+
+ In a second execution, we generate the property files located in
+ src/main/resources/i18n.
+
+ The last execution generate the Bundle. We give the name of the file and its
+ package : LocalizableResource (language and .properties are added by the
+ plugin) and com/google/gwt/i18n/client.
+
+--------------------------------------------------------------------------------
+<plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>scan-gwt-sources</id>
+ <goals>
+ <goal>parserXml</goal>
+ </goals>
+ <configuration>
+ <basedir>${project.basedir}/src/main/java</basedir>
+ <includes>**/*.ui.xml</includes>
+ <userRulesFiles>
+ <file>${basedir}/src/main/i18n/gwt.rules</file>
+ </userRulesFiles>
+ <namespaces>
+ <gwt>urn:import:com.google.gwt.user.client.ui</gwt>
+ <ui>urn:ui:com.google.gwt.uibinder</ui>
+ </namespaces>
+ </configuration>
+ </execution>
+ <execution>
+ <id>gen</id>
+ <goals>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>make-bundle</id>
+ <goals>
+ <goal>bundle</goal>
+ </goals>
+ <configuration>
+ <generateDefinitionFile>false</generateDefinitionFile>
+ <addBundleOuputDirParent>false</addBundleOuputDirParent>
+ <bundleOutputPackage>com/google/gwt/i18n/client</bundleOutputPackage>
+ <bundleOutputName>LocalizableResource</bundleOutputName>
+ </configuration>
+ </execution>
+ </executions>
+</plugin>
+--------------------------------------------------------------------------------
+
+** First build
+
+ Launch a first build, your empty (not translated) property files will be
+ created and in your src/main/resources/i18n. Fill them (translate) (think
+ about escaping special caracters by replacing them with their unicode code).
+
+** Second build, said difficult ?
+
+ Launch a second build, launch your app. Your languages are available ? Ok...
+ still getting nightmares ?
Modified: trunk/src/site/site_en.xml
===================================================================
--- trunk/src/site/site_en.xml 2011-03-24 13:24:18 UTC (rev 1893)
+++ trunk/src/site/site_en.xml 2011-03-24 14:37:51 UTC (rev 1894)
@@ -57,6 +57,7 @@
<item name="Home" href="index.html"/>
<item name="Presentation" href="presentation.html"/>
<item name="Best Practices" href="bestPractices.html"/>
+ <item name="Use with GWT" href="gwt.html"/>
</menu>
<menu name="Tutorials">
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2011-03-24 13:24:18 UTC (rev 1893)
+++ trunk/src/site/site_fr.xml 2011-03-24 14:37:51 UTC (rev 1894)
@@ -57,6 +57,7 @@
<item name="Accueil" href="index.html"/>
<item name="Présentation" href="presentation.html"/>
<item name="Best Practices" href="bestPractices.html"/>
+ <item name="Utilisation avec GWT" href="gwt.html"/>
</menu>
<menu name="Tutoriaux">
1
0
Author: jcouteau
Date: 2011-03-24 14:24:18 +0100 (Thu, 24 Mar 2011)
New Revision: 1893
Url: http://nuiton.org/repositories/revision/i18n/1893
Log:
Update tutorials
Added:
trunk/src/site/apt/library.apt.vm
trunk/src/site/en/apt/library.apt.vm
trunk/src/site/resources/application-i18n.tar.gz
trunk/src/site/resources/helloworld.tar.gz
trunk/src/site/resources/library-i18n.tar.gz
Removed:
trunk/src/site/apt/library.apt
trunk/src/site/en/apt/library.apt
Modified:
trunk/src/site/apt/application.apt
trunk/src/site/apt/helloWorld.apt
trunk/src/site/en/apt/application.apt
trunk/src/site/en/apt/helloWorld.apt
trunk/src/site/resources/application-i18n.zip
trunk/src/site/resources/helloworld.zip
trunk/src/site/resources/library-i18n.zip
Modified: trunk/src/site/apt/application.apt
===================================================================
--- trunk/src/site/apt/application.apt 2011-03-24 12:15:20 UTC (rev 1892)
+++ trunk/src/site/apt/application.apt 2011-03-24 13:24:18 UTC (rev 1893)
@@ -80,5 +80,7 @@
* Sources du tutoriel
- {{{./application-i18n.zip}Sources du tutoriel}}
+ * {{{./application-i18n.zip}Sources du tutoriel (zip)}}
+ * {{{./application-i18n.tar.gz}Sources du tutoriel (tar.gz)}}
+
Modified: trunk/src/site/apt/helloWorld.apt
===================================================================
--- trunk/src/site/apt/helloWorld.apt 2011-03-24 12:15:20 UTC (rev 1892)
+++ trunk/src/site/apt/helloWorld.apt 2011-03-24 13:24:18 UTC (rev 1893)
@@ -71,14 +71,14 @@
la ligne
----
-org.nuiton.i18n.I18n.init(Locale.FRANCE);
+org.nuiton.i18n.I18n.init(null, Locale.FRANCE);
----
avant le premier appel à la librairie Nuiton I18n. Cela a pour effet de dire
- à Nuiton I18n quelle langue utiliser (en l'occurence le français). Il
- recherche donc dans le classpath tous les fichiers i18n/????fr_FR et les
- charge.
+ à Nuiton I18n quelle langue utiliser (en l'occurence le français). Comme nous
+ mettons l'initializer à null, il utilise celui par défaut. Il recherche donc
+ dans le classpath tous les fichiers i18n/????fr_FR et les charge.
Pour tester il suffit de recompiler et de relancer l'application, vous devriez
obtenir :
@@ -111,6 +111,6 @@
Sources du tutoriel
Les sources de ce tutoriel sont téléchargeables
- {{{./helloworld.zip}ici}}. Elles sont packagées
- avec les librairies nécessaires à la compilation et l'exécution de cet
- exemple.
+ {{{./helloworld.zip}ici (zip)}} ou {{{./helloworld.tar.gz}ici (tar.gz)}}.
+ Elles sont packagées avec les librairies nécessaires à la compilation et
+ l'exécution de cet exemple.
Deleted: trunk/src/site/apt/library.apt
===================================================================
--- trunk/src/site/apt/library.apt 2011-03-24 12:15:20 UTC (rev 1892)
+++ trunk/src/site/apt/library.apt 2011-03-24 13:24:18 UTC (rev 1893)
@@ -1,206 +0,0 @@
-~~~
-~~ #%L
-~~ I18n
-~~
-~~ $Id$
-~~ $HeadURL$
-~~ %%
-~~ Copyright (C) 2008 - 2010 CodeLutin
-~~ %%
-~~ This program is free software: you can redistribute it and/or modify
-~~ it under the terms of the GNU Lesser General Public License as
-~~ published by the Free Software Foundation, either version 3 of the
-~~ License, or (at your option) any later version.
-~~
-~~ This program is distributed in the hope that it will be useful,
-~~ but WITHOUT ANY WARRANTY; without even the implied warranty of
-~~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-~~ GNU General Lesser Public License for more details.
-~~
-~~ You should have received a copy of the GNU General Lesser Public
-~~ License along with this program. If not, see
-~~ <http://www.gnu.org/licenses/lgpl-3.0.html>.
-~~ #L%
-~~~
-Tutoriel de librairie utilisant Nuiton I18n (utilisation de Maven)
-
-* Pourquoi un tutoriel différent pour une librairie et pour une application
-finale ?
-
- Lorsque l'on crée une application finale, au moment du build, on crée un
- bundle regroupant les chaînes de l'application et de ses dépendances afin
- d'optimiser le chargement de l'application (on peut ainsi économiser jusqu'à
- plusieurs secondes au démarrage). Lorsque l'on crée une librairie, aucun
- bundle n'est réalisé, l'utilisation et la configuration de la librairie est
- donc plus simple.
-
-* Le tutoriel
-
- Dans ce tutoriel nous allons créer une librairie avec une classe unique qui va
- juste afficher un message. C'est ce message qui sera traduit.
-
-* Créons le projet Maven et configurons le plugin Nuiton I18n
-
- Créons un projet Maven standard. Dans le pom.xml, nous allons configurer le
- plugin Maven Nuiton I18n.
-
--------------------------------------------------------------------------------
-<plugin>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>1.2.1</version>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
-</plugin>
--------------------------------------------------------------------------------
-
- Dans la configuration du plugin, nous spécifions les goals à effectuer. Le
- goal parserJava extrait toutes les chaînes de charactère à traduire du code
- java. Le goal gen récupère le fichier de ressources contenant les chaînes déjà
- traduites et y ajoute les chaînes extraites par le goal parserJava qui ne sont
- pas déjà présentes. Vous pouvez ensuite traduire les chaînes.
-
- Afin que le plugin fonctionne, il ne faut pas oublier d'ajouter la librairie
- Nuiton I18n dans les dépendances.
-
--------------------------------------------------------------------------------
-<dependency>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>nuiton-i18n-api</artifactId>
- <version>1.2.1</version>
- <scope>compile</scope>
-</dependency>
--------------------------------------------------------------------------------
-
- Comme nous réalisons un import static, il faut configurer le plugin maven de
- compilation
-
--------------------------------------------------------------------------------
-<plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.1</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <encoding>UTF-8</encoding>
- <showDeprecation>true</showDeprecation>
- <showWarnings>true</showWarnings>
- </configuration>
-</plugin>
--------------------------------------------------------------------------------
-
- Et pour récupérer le plugin et la librairie Nuiton I18n, il ne faut pas
- oublier d'ajouter les dépots nuiton.
-
--------------------------------------------------------------------------------
-<repositories>
-
- <!-- depot des releases nuiton -->
-
- <repository>
- <id>nuiton.release</id>
- <name>NuitonReleaseRepository</name>
- <url>http://maven.nuiton.org/release</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
-
- <!-- depot des snapshots nuiton -->
-
- <repository>
- <id>nuiton.snapshot</id>
- <name>NuitonSnapshotRepository</name>
- <url>http://maven.nuiton.org/snapshot</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>fail</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
-
-</repositories>
-
-<pluginRepositories>
-
- <!-- depot des releases nuiton -->
-
- <pluginRepository>
-
- <id>nuiton.release</id>
- <name>NuitonReleaseRepository</name>
- <url>http://maven.nuiton.org/release</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </pluginRepository>
-
- <!-- depot des snapshots nuiton -->
-
- <pluginRepository>
- <id>nuiton.snapshot</id>
- <name>NuitonSnapshotRepository</name>
- <url>http://maven.nuiton.org/snapshot</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>fail</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </pluginRepository>
-
-</pluginRepositories>
--------------------------------------------------------------------------------
-
-* Créons notre librairie
-
- Notre librairie, pour faire simple, ne contiendra qu'une classe et une
- méthode statique
-
--------------------------------------------------------------------------------
-package org.myOrganisation.myLibrary;
-
-import static org.nuiton.i18n.I18n._;
-
-public class myLibrary {
-
- static public void myMethod(){
- System.out.println(_("My message to translate"));
- }
-}
--------------------------------------------------------------------------------
-
-* Premier build
-
- Lorsque vous buildez votre librairie pour la première fois avec la commande
- mvn compile, vous devez obtenir la création de deux nouveaux fichiers de
- ressource contenant chacun la chaîne à traduire sans traduction.
-
- Vous pouvez traduire la chaîne de charactère dans les deux langues, vous aurez
- alors la traduction disponibles dans vos prochains builds.
-
-* Second build
-
- Si vous buildez de nouveau la librairie, puis l'intégrez dans une application
- finale utilisant Nuiton I18n, le message sera affiché traduit.
-
-* Sources du tutoriel
-
- {{{./library-i18n.zip}Sources du tutoriel}}
Copied: trunk/src/site/apt/library.apt.vm (from rev 1892, trunk/src/site/apt/library.apt)
===================================================================
--- trunk/src/site/apt/library.apt.vm (rev 0)
+++ trunk/src/site/apt/library.apt.vm 2011-03-24 13:24:18 UTC (rev 1893)
@@ -0,0 +1,208 @@
+~~~
+~~ #%L
+~~ I18n
+~~
+~~ $Id$
+~~ $HeadURL$
+~~ %%
+~~ Copyright (C) 2008 - 2010 CodeLutin
+~~ %%
+~~ This program is free software: you can redistribute it and/or modify
+~~ it under the terms of the GNU Lesser General Public License as
+~~ published by the Free Software Foundation, either version 3 of the
+~~ License, or (at your option) any later version.
+~~
+~~ This program is distributed in the hope that it will be useful,
+~~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+~~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+~~ GNU General Lesser Public License for more details.
+~~
+~~ You should have received a copy of the GNU General Lesser Public
+~~ License along with this program. If not, see
+~~ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+~~ #L%
+~~~
+Tutoriel de librairie utilisant Nuiton I18n (utilisation de Maven)
+
+* Pourquoi un tutoriel différent pour une librairie et pour une application
+finale ?
+
+ Lorsque l'on crée une application finale, au moment du build, on crée un
+ bundle regroupant les chaînes de l'application et de ses dépendances afin
+ d'optimiser le chargement de l'application (on peut ainsi économiser jusqu'à
+ plusieurs secondes au démarrage). Lorsque l'on crée une librairie, aucun
+ bundle n'est réalisé, l'utilisation et la configuration de la librairie est
+ donc plus simple.
+
+* Le tutoriel
+
+ Dans ce tutoriel nous allons créer une librairie avec une classe unique qui va
+ juste afficher un message. C'est ce message qui sera traduit.
+
+* Créons le projet Maven et configurons le plugin Nuiton I18n
+
+ Créons un projet Maven standard. Dans le pom.xml, nous allons configurer le
+ plugin Maven Nuiton I18n.
+
+-------------------------------------------------------------------------------
+<plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${projet.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+</plugin>
+-------------------------------------------------------------------------------
+
+ Dans la configuration du plugin, nous spécifions les goals à effectuer. Le
+ goal parserJava extrait toutes les chaînes de charactère à traduire du code
+ java. Le goal gen récupère le fichier de ressources contenant les chaînes déjà
+ traduites et y ajoute les chaînes extraites par le goal parserJava qui ne sont
+ pas déjà présentes. Vous pouvez ensuite traduire les chaînes.
+
+ Afin que le plugin fonctionne, il ne faut pas oublier d'ajouter la librairie
+ Nuiton I18n dans les dépendances.
+
+-------------------------------------------------------------------------------
+<dependency>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>nuiton-i18n-api</artifactId>
+ <version>${projet.version}</version>
+ <scope>compile</scope>
+</dependency>
+-------------------------------------------------------------------------------
+
+ Comme nous réalisons un import static, il faut configurer le plugin maven de
+ compilation
+
+-------------------------------------------------------------------------------
+<plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <encoding>UTF-8</encoding>
+ <showDeprecation>true</showDeprecation>
+ <showWarnings>true</showWarnings>
+ </configuration>
+</plugin>
+-------------------------------------------------------------------------------
+
+ Et pour récupérer le plugin et la librairie Nuiton I18n, il ne faut pas
+ oublier d'ajouter les dépots nuiton.
+
+-------------------------------------------------------------------------------
+<repositories>
+
+ <!-- depot des releases nuiton -->
+
+ <repository>
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </repository>
+
+ <!-- depot des snapshots nuiton -->
+
+ <repository>
+ <id>nuiton.snapshot</id>
+ <name>NuitonSnapshotRepository</name>
+ <url>http://maven.nuiton.org/snapshot</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+
+</repositories>
+
+<pluginRepositories>
+
+ <!-- depot des releases nuiton -->
+
+ <pluginRepository>
+
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </pluginRepository>
+
+ <!-- depot des snapshots nuiton -->
+
+ <pluginRepository>
+ <id>nuiton.snapshot</id>
+ <name>NuitonSnapshotRepository</name>
+ <url>http://maven.nuiton.org/snapshot</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </pluginRepository>
+
+</pluginRepositories>
+-------------------------------------------------------------------------------
+
+* Créons notre librairie
+
+ Notre librairie, pour faire simple, ne contiendra qu'une classe et une
+ méthode statique
+
+-------------------------------------------------------------------------------
+package org.myOrganisation.myLibrary;
+
+import static org.nuiton.i18n.I18n._;
+
+public class myLibrary {
+
+ static public void myMethod(){
+ System.out.println(_("My message to translate"));
+ }
+}
+-------------------------------------------------------------------------------
+
+* Premier build
+
+ Lorsque vous buildez votre librairie pour la première fois avec la commande
+ mvn compile, vous devez obtenir la création de deux nouveaux fichiers de
+ ressource contenant chacun la chaîne à traduire sans traduction.
+
+ Vous pouvez traduire la chaîne de charactère dans les deux langues, vous aurez
+ alors la traduction disponibles dans vos prochains builds.
+
+* Second build
+
+ Si vous buildez de nouveau la librairie, puis l'intégrez dans une application
+ finale utilisant Nuiton I18n, le message sera affiché traduit.
+
+* Sources du tutoriel
+
+ * {{{./library-i18n.zip}Sources du tutoriel (zip)}}
+
+ * {{{./library-i18n.tar.gz}Sources du tutoriel (tar.gz)}}
Property changes on: trunk/src/site/apt/library.apt.vm
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/src/site/en/apt/application.apt
===================================================================
--- trunk/src/site/en/apt/application.apt 2011-03-24 12:15:20 UTC (rev 1892)
+++ trunk/src/site/en/apt/application.apt 2011-03-24 13:24:18 UTC (rev 1893)
@@ -77,5 +77,7 @@
* Tutorial sources
- {{{../application-i18n.zip}Tutorial sources}}
+ * {{{../application-i18n.zip}Tutorial sources (zip}}
+ * {{{../application-i18n.tar.gz}Tutorial sources (tar.gz}}
+
Modified: trunk/src/site/en/apt/helloWorld.apt
===================================================================
--- trunk/src/site/en/apt/helloWorld.apt 2011-03-24 12:15:20 UTC (rev 1892)
+++ trunk/src/site/en/apt/helloWorld.apt 2011-03-24 13:24:18 UTC (rev 1893)
@@ -69,13 +69,14 @@
not know whiwh language to load. We will then modify our class adding the line
----
-org.nuiton.i18n.I18n.init(Locale.FRANCE);
+org.nuiton.i18n.I18n.init(null, Locale.FRANCE);
----
before the first call to Nuiton I18n library. This will tell Nuiton I18n which
- language to use (in this case french). Nuiton I18n looks in the classpath
- for all the files i18n/?????fr_FR and loads them.
+ language to use (in this case french). We put null to the initializer, like
+ that Nuiton I18n looks in the classpath for all the files i18n/?????fr_FR and
+ loads them.
To test, you just need to compile and launch the application again, you should
obtain :
@@ -105,6 +106,6 @@
Tutorial sources
- This tutorial sources can be downloaded {{{../helloworld.zip}here}}. They are
- packaged with the libraries needed for the compilation and execution of this
- example.
+ This tutorial sources can be downloaded {{{../helloworld.zip}here (zip)}} or
+ {{{../helloworld.tar.gz}here (tar.gz)}}. They are packaged with the libraries
+ needed for the compilation and execution of this example.
Deleted: trunk/src/site/en/apt/library.apt
===================================================================
--- trunk/src/site/en/apt/library.apt 2011-03-24 12:15:20 UTC (rev 1892)
+++ trunk/src/site/en/apt/library.apt 2011-03-24 13:24:18 UTC (rev 1893)
@@ -1,204 +0,0 @@
-~~~
-~~ #%L
-~~ I18n
-~~
-~~ $Id$
-~~ $HeadURL$
-~~ %%
-~~ Copyright (C) 2008 - 2010 CodeLutin
-~~ %%
-~~ This program is free software: you can redistribute it and/or modify
-~~ it under the terms of the GNU Lesser General Public License as
-~~ published by the Free Software Foundation, either version 3 of the
-~~ License, or (at your option) any later version.
-~~
-~~ This program is distributed in the hope that it will be useful,
-~~ but WITHOUT ANY WARRANTY; without even the implied warranty of
-~~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-~~ GNU General Lesser Public License for more details.
-~~
-~~ You should have received a copy of the GNU General Lesser Public
-~~ License along with this program. If not, see
-~~ <http://www.gnu.org/licenses/lgpl-3.0.html>.
-~~ #L%
-~~~
-Library using Nuiton I18n tutorial (using Maven)
-
-* Why a different tutorial for a library and a final application ?
-
- When you create a final application, at build time, we create a bundle
- gathering all the strings of the application and its dependencies in order to
- optimise the application loading (we can save several seconds this way). When
- we create a library, no bundle is created, so the use and configuration of the
- library is easier.
-
-* The tutorial
-
- In this tutorial, we will create a library with a unique class that will just
- display a message. That is this message that will be translated.
-
-* Create the Maven project and configure the Nuiton I18n plugin
-
- We create a standard Maven project. In the pom.xml file, we will configure the
- Maven Nuiton I18n plugin.
-
--------------------------------------------------------------------------------
-<plugin>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>maven-i18n-plugin</artifactId>
- <version>1.2.1</version>
- <executions>
- <execution>
- <goals>
- <goal>parserJava</goal>
- <goal>gen</goal>
- </goals>
- </execution>
- </executions>
-</plugin>
--------------------------------------------------------------------------------
-
- In the plugin configuration, we secify the goals to execute. The parserJava
- goal extract all the strings to translate from the java code. The gen goal
- get the resource file that contains the translated strings and add the
- extracted strings that are not already present in it. You can then translate
- the strings.
-
- In order to work, the plugin needs to have the Nuiton I18n liibrary in the
- project dependencies.
-
--------------------------------------------------------------------------------
-<dependency>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>nuiton-i18n-api</artifactId>
- <version>1.2.1</version>
- <scope>compile</scope>
-</dependency>
--------------------------------------------------------------------------------
-
- We make static import in our code, so we need to configure the
- maven-compiler-plugin
-
--------------------------------------------------------------------------------
-<plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.1</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <encoding>UTF-8</encoding>
- <showDeprecation>true</showDeprecation>
- <showWarnings>true</showWarnings>
- </configuration>
-</plugin>
--------------------------------------------------------------------------------
-
- And in order to get the plugin and library Nuiton I18n, we have to add the
- nuiton repositories.
-
--------------------------------------------------------------------------------
-<repositories>
-
- <!-- depot des releases nuiton -->
-
- <repository>
- <id>nuiton.release</id>
- <name>NuitonReleaseRepository</name>
- <url>http://maven.nuiton.org/release</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </repository>
-
- <!-- depot des snapshots nuiton -->
-
- <repository>
- <id>nuiton.snapshot</id>
- <name>NuitonSnapshotRepository</name>
- <url>http://maven.nuiton.org/snapshot</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>fail</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
-
-</repositories>
-
-<pluginRepositories>
-
- <!-- depot des releases nuiton -->
-
- <pluginRepository>
-
- <id>nuiton.release</id>
- <name>NuitonReleaseRepository</name>
- <url>http://maven.nuiton.org/release</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>warn</checksumPolicy>
- </releases>
- </pluginRepository>
-
- <!-- depot des snapshots nuiton -->
-
- <pluginRepository>
- <id>nuiton.snapshot</id>
- <name>NuitonSnapshotRepository</name>
- <url>http://maven.nuiton.org/snapshot</url>
- <snapshots>
- <enabled>true</enabled>
- <checksumPolicy>fail</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </pluginRepository>
-
-</pluginRepositories>
--------------------------------------------------------------------------------
-
-* Crate our library
-
- Our library, to make it simple, will contain only one class and a static
- method.
-
--------------------------------------------------------------------------------
-package org.myOrganisation.myLibrary;
-
-import static org.nuiton.i18n.I18n._;
-
-public class myLibrary {
-
- static public void myMethod(){
- System.out.println(_("My message to translate"));
- }
-}
--------------------------------------------------------------------------------
-
-* First build
-
- When you build your library for the first time with the command mvn compile,
- you should see two new resource files containing each one a string to
- translate without translation.
-
- You can now translate the string in both language, you will then have the
- translation available for your next builds.
-
-* Second build
-
- If you build the library again, then integrate it in a final application using
- I18n, the message will be displayed translated.
-
-* Tutorial sources
-
- {{{../library-i18n.zip}Tutorial sources}}
Copied: trunk/src/site/en/apt/library.apt.vm (from rev 1892, trunk/src/site/en/apt/library.apt)
===================================================================
--- trunk/src/site/en/apt/library.apt.vm (rev 0)
+++ trunk/src/site/en/apt/library.apt.vm 2011-03-24 13:24:18 UTC (rev 1893)
@@ -0,0 +1,206 @@
+~~~
+~~ #%L
+~~ I18n
+~~
+~~ $Id$
+~~ $HeadURL$
+~~ %%
+~~ Copyright (C) 2008 - 2010 CodeLutin
+~~ %%
+~~ This program is free software: you can redistribute it and/or modify
+~~ it under the terms of the GNU Lesser General Public License as
+~~ published by the Free Software Foundation, either version 3 of the
+~~ License, or (at your option) any later version.
+~~
+~~ This program is distributed in the hope that it will be useful,
+~~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+~~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+~~ GNU General Lesser Public License for more details.
+~~
+~~ You should have received a copy of the GNU General Lesser Public
+~~ License along with this program. If not, see
+~~ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+~~ #L%
+~~~
+Library using Nuiton I18n tutorial (using Maven)
+
+* Why a different tutorial for a library and a final application ?
+
+ When you create a final application, at build time, we create a bundle
+ gathering all the strings of the application and its dependencies in order to
+ optimise the application loading (we can save several seconds this way). When
+ we create a library, no bundle is created, so the use and configuration of the
+ library is easier.
+
+* The tutorial
+
+ In this tutorial, we will create a library with a unique class that will just
+ display a message. That is this message that will be translated.
+
+* Create the Maven project and configure the Nuiton I18n plugin
+
+ We create a standard Maven project. In the pom.xml file, we will configure the
+ Maven Nuiton I18n plugin.
+
+-------------------------------------------------------------------------------
+<plugin>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+</plugin>
+-------------------------------------------------------------------------------
+
+ In the plugin configuration, we secify the goals to execute. The parserJava
+ goal extract all the strings to translate from the java code. The gen goal
+ get the resource file that contains the translated strings and add the
+ extracted strings that are not already present in it. You can then translate
+ the strings.
+
+ In order to work, the plugin needs to have the Nuiton I18n liibrary in the
+ project dependencies.
+
+-------------------------------------------------------------------------------
+<dependency>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>nuiton-i18n-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+</dependency>
+-------------------------------------------------------------------------------
+
+ We make static import in our code, so we need to configure the
+ maven-compiler-plugin
+
+-------------------------------------------------------------------------------
+<plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <encoding>UTF-8</encoding>
+ <showDeprecation>true</showDeprecation>
+ <showWarnings>true</showWarnings>
+ </configuration>
+</plugin>
+-------------------------------------------------------------------------------
+
+ And in order to get the plugin and library Nuiton I18n, we have to add the
+ nuiton repositories.
+
+-------------------------------------------------------------------------------
+<repositories>
+
+ <!-- depot des releases nuiton -->
+
+ <repository>
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </repository>
+
+ <!-- depot des snapshots nuiton -->
+
+ <repository>
+ <id>nuiton.snapshot</id>
+ <name>NuitonSnapshotRepository</name>
+ <url>http://maven.nuiton.org/snapshot</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+
+</repositories>
+
+<pluginRepositories>
+
+ <!-- depot des releases nuiton -->
+
+ <pluginRepository>
+
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </pluginRepository>
+
+ <!-- depot des snapshots nuiton -->
+
+ <pluginRepository>
+ <id>nuiton.snapshot</id>
+ <name>NuitonSnapshotRepository</name>
+ <url>http://maven.nuiton.org/snapshot</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <checksumPolicy>fail</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </pluginRepository>
+
+</pluginRepositories>
+-------------------------------------------------------------------------------
+
+* Crate our library
+
+ Our library, to make it simple, will contain only one class and a static
+ method.
+
+-------------------------------------------------------------------------------
+package org.myOrganisation.myLibrary;
+
+import static org.nuiton.i18n.I18n._;
+
+public class myLibrary {
+
+ static public void myMethod(){
+ System.out.println(_("My message to translate"));
+ }
+}
+-------------------------------------------------------------------------------
+
+* First build
+
+ When you build your library for the first time with the command mvn compile,
+ you should see two new resource files containing each one a string to
+ translate without translation.
+
+ You can now translate the string in both language, you will then have the
+ translation available for your next builds.
+
+* Second build
+
+ If you build the library again, then integrate it in a final application using
+ I18n, the message will be displayed translated.
+
+* Tutorial sources
+
+ * {{{../library-i18n.zip}Tutorial sources (zip)}}
+
+ * {{{../library-i18n.tar.gz}Tutorial sources (tar.gz)}}
Property changes on: trunk/src/site/en/apt/library.apt.vm
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/src/site/resources/application-i18n.tar.gz
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/application-i18n.tar.gz
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/src/site/resources/application-i18n.zip
===================================================================
(Binary files differ)
Added: trunk/src/site/resources/helloworld.tar.gz
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/helloworld.tar.gz
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/src/site/resources/helloworld.zip
===================================================================
(Binary files differ)
Added: trunk/src/site/resources/library-i18n.tar.gz
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/library-i18n.tar.gz
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/src/site/resources/library-i18n.zip
===================================================================
(Binary files differ)
1
0
r1892 - in trunk: . ant-i18n-task maven-i18n-plugin nuiton-i18n
by hudson@users.nuiton.org 24 Mar '11
by hudson@users.nuiton.org 24 Mar '11
24 Mar '11
Author: hudson
Date: 2011-03-24 13:15:20 +0100 (Thu, 24 Mar 2011)
New Revision: 1892
Url: http://nuiton.org/repositories/revision/i18n/1892
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/ant-i18n-task/pom.xml
trunk/maven-i18n-plugin/pom.xml
trunk/nuiton-i18n/pom.xml
trunk/pom.xml
Modified: trunk/ant-i18n-task/pom.xml
===================================================================
--- trunk/ant-i18n-task/pom.xml 2011-03-24 12:15:19 UTC (rev 1891)
+++ trunk/ant-i18n-task/pom.xml 2011-03-24 12:15:20 UTC (rev 1892)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>i18n</artifactId>
- <version>2.3.2</version>
+ <version>2.3.3-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.i18n</groupId>
Modified: trunk/maven-i18n-plugin/pom.xml
===================================================================
--- trunk/maven-i18n-plugin/pom.xml 2011-03-24 12:15:19 UTC (rev 1891)
+++ trunk/maven-i18n-plugin/pom.xml 2011-03-24 12:15:20 UTC (rev 1892)
@@ -33,7 +33,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>i18n</artifactId>
- <version>2.3.2</version>
+ <version>2.3.3-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.i18n</groupId>
Modified: trunk/nuiton-i18n/pom.xml
===================================================================
--- trunk/nuiton-i18n/pom.xml 2011-03-24 12:15:19 UTC (rev 1891)
+++ trunk/nuiton-i18n/pom.xml 2011-03-24 12:15:20 UTC (rev 1892)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>i18n</artifactId>
- <version>2.3.2</version>
+ <version>2.3.3-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.i18n</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-03-24 12:15:19 UTC (rev 1891)
+++ trunk/pom.xml 2011-03-24 12:15:20 UTC (rev 1892)
@@ -37,7 +37,7 @@
</parent>
<artifactId>i18n</artifactId>
- <version>2.3.2</version>
+ <version>2.3.3-SNAPSHOT</version>
<modules>
<module>nuiton-i18n</module>
@@ -200,11 +200,11 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/i18n/tags/i18n-2.3.2</connection>
+ <connection>scm:svn:http://svn.nuiton.org/svn/i18n/trunk</connection>
<developerConnection>
- scm:svn:http://svn.nuiton.org/svn/i18n/tags/i18n-2.3.2
+ scm:svn:http://svn.nuiton.org/svn/i18n/trunk
</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/i18n/tags/i18n-2.3.2</url>
+ <url>http://www.nuiton.org/repositories/browse/i18n/trunk</url>
</scm>
<profiles>
1
0