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
May 2011
- 4 participants
- 38 discussions
Author: fdesbois
Date: 2011-05-04 21:30:55 +0200 (Wed, 04 May 2011)
New Revision: 1903
Url: http://nuiton.org/repositories/revision/i18n/1903
Log:
#1505 : UTF-8 is default encoding. Only one parameter in maven plugin is sufficient. Definition file will be used by DefaultI18nInitializer.
Modified:
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml
trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy
trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml
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/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nUtil.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
trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_fr_FR.properties
trunk/src/site/apt/index.apt
trunk/src/site/en/apt/index.apt
Modified: 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 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml 2011-05-04 19:30:55 UTC (rev 1903)
@@ -70,7 +70,7 @@
<version>@pom.version@</version>
<configuration>
<verbose>true</verbose>
- <srcEncoding>iso-8859-1</srcEncoding>
+ <encoding>iso-8859-1</encoding>
<bundleOutputName>ResultBundle</bundleOutputName>
<bundleOutputPackage>org.nuiton</bundleOutputPackage>
</configuration>
Modified: 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 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy 2011-05-04 19:30:55 UTC (rev 1903)
@@ -36,7 +36,6 @@
content = file.text;
for (value in values) {
- println("VALUE : " + value);
if (!content.contains(value)) {
println("Could not find " + value + " in file " + file);
return false;
Modified: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml
===================================================================
--- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml 2011-05-04 19:30:55 UTC (rev 1903)
@@ -81,7 +81,7 @@
<version>@pom.version@</version>
<configuration>
<verbose>true</verbose>
- <srcEncoding>utf-8</srcEncoding>
+ <encoding>utf-8</encoding>
<bundleOutputName>ResultBundle</bundleOutputName>
<bundleOutputPackage>org.nuiton</bundleOutputPackage>
</configuration>
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -47,7 +47,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @author jruchaud <ruchaud(a)codelutin.com>
*/
-public abstract class AbstractI18nMojo extends AbstractPlugin {
+public abstract class AbstractI18nMojo extends AbstractPlugin implements PluginWithEncoding {
/** Le nombre de getters détectés pendant le cycle de vie du build. */
private static int NB_GETTER_FILES;
@@ -99,37 +99,14 @@
protected File out;
/**
- * Deprecated param.
+ * Encoding used to load and store properties.
*
* @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.srcEncoding}" default-value="${project.build.sourceEncoding}"
- * @required
- */
- 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
@@ -346,4 +323,14 @@
public boolean isStrictMode() {
return strictMode;
}
+
+ @Override
+ public String getEncoding() {
+ return encoding;
+ }
+
+ @Override
+ public void setEncoding(String encoding) {
+ this.encoding = encoding;
+ }
}
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -94,7 +94,6 @@
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,13 +106,13 @@
File bundleGetterOut = getI18nFile(
out, artifactId + GetterMojo.FROM_GETTERS, locale, false);
- SortedProperties propertiesSrc = new SortedProperties(srcEncoding);
+ SortedProperties propertiesSrc = new SortedProperties(encoding);
if (bundleSrc.exists()) {
propertiesSrc.load(bundleSrc);
}
- SortedProperties propertiesOut = new SortedProperties();
+ SortedProperties propertiesOut = new SortedProperties(encoding);
if (!strictMode) {
// si on n'est pas en mode strict, on doit push back in
@@ -121,9 +120,7 @@
propertiesOut.putAll(propertiesSrc);
}
- // 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);
+ propertiesOut.load(bundleGetterOut);
// Parcours des clés
for (Object key : propertiesOut.keySet()) {
@@ -142,9 +139,7 @@
}
}
- // La sauvegarde doit assurer l'encoding de départ pour ne pas
- // transformer les fichiers sources.
- propertiesOut.store(bundleOut, srcEncoding);
+ propertiesOut.store(bundleOut);
// Sauvegarde avant copie
if (genSrc && keepBackup) {
@@ -160,7 +155,10 @@
if (genSrc) {
// Copie des fichiers dans les sources
- copyFile(bundleOut, bundleSrc);
+// copyFile(bundleOut, bundleSrc);
+
+ propertiesOut.store(bundleSrc);
+
if (!silent) {
getLog().info("copy bundle " + locale + " to src");
}
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -76,7 +76,7 @@
createDirectoryIfNecessary(bundleGetters.getParentFile());
- SortedProperties propertiesOut = new SortedProperties(outEncoding);
+ SortedProperties propertiesOut = new SortedProperties(encoding);
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(out);
@@ -91,7 +91,7 @@
// chargement du getter
SortedProperties propertiesIn =
- new SortedProperties(outEncoding).load(bundleGetter);
+ new SortedProperties(encoding).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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -116,7 +116,7 @@
);
SortedProperties propertiesOut =
- new SortedProperties(outEncoding, false);
+ new SortedProperties(encoding, false);
StringBuilder buffer = new StringBuilder();
URL[] urls = getCollectI18nResources(locale);
@@ -131,15 +131,12 @@
}
List<String> bundlesUrls = new ArrayList<String>();
- Charset loadEncoding = Charset.forName(srcEncoding);
+
+ Charset loadEncoding = Charset.forName(encoding);
for (URL url : urls) {
long t000 = System.nanoTime();
I18nBundleEntry bundleEntry =
new I18nBundleEntry(url, locale, null);
- // 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, loadEncoding);
String strPath = bundleEntry.getPath().toString();
int index = strPath.indexOf("i18n/");
@@ -215,9 +212,10 @@
getLog().info("prepare i18n definition file in " +
defOut.getAbsolutePath());
}
- SortedProperties p = new SortedProperties(outEncoding, false);
+ SortedProperties p = new SortedProperties(encoding, false);
p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_LOCALES, bundles);
p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_VERSION, version);
+ p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_ENCODING, encoding);
for (Entry<Locale, String> e : bundleDico.entrySet()) {
p.setProperty(DefaultI18nInitializer.BUNDLES_FOR_LOCALE +
e.getKey().toString(), e.getValue());
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -183,7 +183,7 @@
getLog().info("add " + path);
}
}
- writeFile(bundleOut, buffer.toString(), outEncoding);
+ writeFile(bundleOut, buffer.toString(), encoding);
}
/**
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -86,7 +86,7 @@
}
SortedProperties propertiesOut =
- new SortedProperties(outEncoding, false);
+ new SortedProperties(encoding, false);
StringBuilder buffer = new StringBuilder();
URL[] urls = getCollectI18nResources(locale);
@@ -95,7 +95,7 @@
continue;
}
- Charset loadEncoding = Charset.forName(outEncoding);
+ Charset loadEncoding = Charset.forName(encoding);
for (URL url : urls) {
long t000 = System.nanoTime();
I18nBundleEntry bundleEntry =
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -139,9 +139,9 @@
public void init() throws Exception {
super.init();
t0 = System.nanoTime();
- result = new SortedProperties(outEncoding);
- oldParser = new SortedProperties(outEncoding);
- oldLanguage = new SortedProperties(outEncoding);
+ result = new SortedProperties(encoding);
+ oldParser = new SortedProperties(encoding);
+ oldLanguage = new SortedProperties(encoding);
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -258,7 +258,7 @@
private String readInputStream(InputStream in) throws IOException {
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(
- new InputStreamReader(in, outEncoding));
+ new InputStreamReader(in, encoding));
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -143,7 +143,7 @@
public FileParser newFileParser() {
return new GWTJavaFileParser(getLog(),
- outEncoding,
+ encoding,
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -109,7 +109,7 @@
public FileParser newFileParser() {
return new JavaFileParser(getLog(),
- outEncoding,
+ encoding,
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -152,7 +152,7 @@
final DocumentBuilder builder) {
return new XmlFileParser(getLog(),
- outEncoding,
+ encoding,
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -141,7 +141,7 @@
public FileParser newFileParser() {
return new TapestryFileParser(getLog(),
- outEncoding,
+ encoding,
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -144,7 +144,7 @@
builder.setEntityResolver(getEntityResolver());
return new XmlFileParser(getLog(),
- outEncoding,
+ encoding,
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-04 15:40:06 UTC (rev 1902)
+++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -106,7 +106,7 @@
@Override
protected XmlFileParser newXmlFileParser(XPath xpath, DocumentBuilder builder) {
XmlFileParser fileParser = new XmlFileParser(getLog(),
- outEncoding,
+ encoding,
oldParser,
showTouchedFiles,
rules,
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-04 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -139,6 +139,9 @@
// load resources
try {
+ if (log.isInfoEnabled()) {
+ log.info("Encoding " + encoding + " will be used to load files");
+ }
for (I18nBundleEntry e : bundleEntries) {
e.load(resource, encoding);
}
Modified: trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nUtil.java
===================================================================
--- trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nUtil.java 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nUtil.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -36,7 +36,11 @@
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.Stack;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
@@ -52,7 +56,7 @@
public static final String UTF_8_ENCONDING = "UTF-8";
- public static final String DEFAULT_ENCODING = ISO_8859_1_ENCONDING;
+ public static final String DEFAULT_ENCODING = UTF_8_ENCONDING;
public static final Locale DEFAULT_LOCALE = Locale.UK;
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-04 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/DefaultI18nInitializer.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -60,6 +60,8 @@
public static String BUNDLE_DEF_VERSION = "version";
+ public static String BUNDLE_DEF_ENCODING = "encoding";
+
public static String BUNDLES_FOR_LOCALE = "bundles.";
/** the name of the bundle */
@@ -89,14 +91,6 @@
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");
@@ -134,7 +128,7 @@
return url;
}
- public String resolvDefinition(Properties p) throws Exception {
+ public String resolvDefinition(Properties properties) throws Exception {
String filename = String.format(UNIQUE_BUNDLE_DEF, getBundleName());
@@ -147,12 +141,19 @@
// load definition file
InputStream stream = url.openStream();
try {
- p.load(stream);
+ properties.load(stream);
stream.close();
} finally {
stream.close();
}
+ // Load encoding from definition file and use it as Charset encoding
+ if (encoding == null) {
+ String encoding = properties.getProperty(BUNDLE_DEF_ENCODING);
+ Charset charset = Charset.forName(encoding);
+ setEncoding(charset);
+ }
+
String prefix = url.toString();
prefix = prefix.substring(0, prefix.length() - filename.length());
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 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/init/I18nInitializer.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -47,10 +47,12 @@
/** Logger */
private static final Log log = LogFactory.getLog(I18nInitializer.class);
+ protected static Charset defaultEncoding =
+ Charset.forName(I18nUtil.DEFAULT_ENCODING);
+
protected Charset encoding;
protected I18nInitializer() {
- this(null);
}
/**
@@ -59,8 +61,7 @@
* @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;
+ this.encoding = encoding;
}
/**
@@ -90,7 +91,8 @@
}
public Charset getEncoding() {
- return encoding;
+ Charset result = encoding == null ? defaultEncoding : encoding;
+ return result;
}
public void setEncoding(Charset 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-04 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/test/java/org/nuiton/i18n/I18nTest.java 2011-05-04 19:30:55 UTC (rev 1903)
@@ -29,9 +29,7 @@
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;
/**
@@ -106,15 +104,10 @@
}
@Test
- public void testEncodingUTF8() {
+ public void testJapanese() {
- Charset utf8 = Charset.forName("utf-8");
+ I18n.init(initializer, Locale.JAPAN);
- 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"));
}
@@ -130,11 +123,11 @@
I18n.init(initializer, Locale.FRANCE);
// I18n.getStore().setLanguage(Locale.FRANCE);
- expected = "Clef avec %s";
+ expected = "Clé avec %s";
actual = I18n._("key.with.param");
Assert.assertEquals(expected, actual);
- expected = "Clef avec param";
+ expected = "Clé avec param";
actual = I18n._("key.with.param", "param");
Assert.assertEquals(expected, actual);
@@ -175,11 +168,11 @@
I18n.init(initializer, null);
- expected = "Clef avec %s";
+ expected = "Clé avec %s";
actual = I18n.l_(Locale.FRANCE, "key.with.param");
Assert.assertEquals(expected, actual);
- expected = "Clef avec param";
+ expected = "Clé avec param";
actual = I18n.l_(Locale.FRANCE, "key.with.param", "param");
Assert.assertEquals(expected, actual);
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-04 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest-definition.properties 2011-05-04 19:30:55 UTC (rev 1903)
@@ -26,4 +26,5 @@
bundles.en_GB=bundleTest/I18nStoreTest_en_GB.properties
bundles.fr_FR=bundleTest/I18nStoreTest_fr_FR.properties
bundles.ja_JP=bundleTest/I18nStoreTest_ja_JP.properties
+encoding=utf-8
locales=fr_FR,en_GB,ja_JP
Modified: trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_fr_FR.properties
===================================================================
--- trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_fr_FR.properties 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/nuiton-i18n/src/test/resources/META-INF/I18nStoreTest_fr_FR.properties 2011-05-04 19:30:55 UTC (rev 1903)
@@ -24,4 +24,4 @@
###
key.one=Premier
key.two=Seconde
-key.with.param=Clef avec %s
+key.with.param=Clé avec %s
Modified: trunk/src/site/apt/index.apt
===================================================================
--- trunk/src/site/apt/index.apt 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/src/site/apt/index.apt 2011-05-04 19:30:55 UTC (rev 1903)
@@ -53,33 +53,11 @@
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).
+ La version 2.4 gère désormais les fichiers properties en UTF-8 par défaut.
+ Il est cependant possible de modifier cet encoding dans le plugin et via
+ le {{{/i18n/nuiton-i18n/apidocs/org/nuiton/i18n/init/I18nInitializer.html}I18nInitializer}}
+ pour l'api runtime.
-* 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
Modified: trunk/src/site/en/apt/index.apt
===================================================================
--- trunk/src/site/en/apt/index.apt 2011-05-04 15:40:06 UTC (rev 1902)
+++ trunk/src/site/en/apt/index.apt 2011-05-04 19:30:55 UTC (rev 1903)
@@ -51,6 +51,13 @@
- {{{./maven-i18n-plugin/index.html}I18n Maven Plugin}}
+What's new in 2.4 version
+
+ The 2.4 version manage properties file with UTF-8 encoding by default.
+ It's also possible to change this encoding with maven plugin and with
+ {{{/i18n/nuiton-i18n/apidocs/org/nuiton/i18n/init/I18nInitializer.html}I18nInitializer}}
+ for runtime api.
+
What's new in 2.3 version
Version 2.3 improves a lot performance on detection of java file i18n keys
1
0
r1902 - in trunk/nuiton-i18n/src/main/java/org/nuiton/i18n: . bundle
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 17:40:06 +0200 (Wed, 04 May 2011)
New Revision: 1902
Url: http://nuiton.org/repositories/revision/i18n/1902
Log:
Use DEFAULT_ENCODING constant
Modified:
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java
trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java
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-04 12:30:27 UTC (rev 1901)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/I18nLanguage.java 2011-05-04 15:40:06 UTC (rev 1902)
@@ -81,7 +81,7 @@
*/
@Deprecated
public void load(I18nBundleEntry[] bundleEntries) {
- Charset encoding = Charset.forName(I18nUtil.ISO_8859_1_ENCONDING);
+ Charset encoding = Charset.forName(I18nUtil.DEFAULT_ENCODING);
load(bundleEntries, encoding);
}
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-04 12:30:27 UTC (rev 1901)
+++ trunk/nuiton-i18n/src/main/java/org/nuiton/i18n/bundle/I18nBundleEntry.java 2011-05-04 15:40:06 UTC (rev 1902)
@@ -130,7 +130,7 @@
*/
@Deprecated
public void load(Properties resource) throws IOException {
- Charset encoding = Charset.forName(I18nUtil.ISO_8859_1_ENCONDING);
+ Charset encoding = Charset.forName(I18nUtil.DEFAULT_ENCODING);
load(resource, encoding);
}
1
0
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