Author: vsalaun Date: 2011-08-04 12:31:43 +0200 (Thu, 04 Aug 2011) New Revision: 3246 Url: http://chorem.org/repositories/revision/lima/3246 Log: add i18n:bundle Modified: trunk/lima-swing/pom.xml trunk/lima-swing/src/main/java/org/chorem/lima/LimaConfig.java trunk/lima-swing/src/main/java/org/chorem/lima/LimaContext.java trunk/lima-swing/src/main/java/org/chorem/lima/LimaMain.java Modified: trunk/lima-swing/pom.xml =================================================================== --- trunk/lima-swing/pom.xml 2011-08-04 09:52:55 UTC (rev 3245) +++ trunk/lima-swing/pom.xml 2011-08-04 10:31:43 UTC (rev 3246) @@ -136,6 +136,9 @@ <license.generateBundle>true</license.generateBundle> <license.bundleLicensePath>META-INF/lima-swing-LICENSE.txt</license.bundleLicensePath> <license.bundleThirdPartyPath>META-INF/lima-swing-THIRD-PARTY.txt</license.bundleThirdPartyPath> + + <i18n.bundles>fr_FR,en_GB</i18n.bundles> + <i18n.bundleOutputName>lima</i18n.bundleOutputName> </properties> @@ -175,22 +178,29 @@ </execution> </executions> </plugin> - + <plugin> <groupId>org.nuiton.i18n</groupId> <artifactId>maven-i18n-plugin</artifactId> <executions> <execution> + <id>scan-sources</id> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + </goals> <configuration> <entries> <entry> - <basedir>${maven.gen.dir}/java</basedir> + <basedir>${maven.gen.dir}/java/</basedir> </entry> </entries> </configuration> + </execution> + <execution> + <id>make-bundle</id> <goals> - <goal>parserJava</goal> - <goal>gen</goal> + <goal>bundle</goal> </goals> </execution> </executions> Modified: trunk/lima-swing/src/main/java/org/chorem/lima/LimaConfig.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/LimaConfig.java 2011-08-04 09:52:55 UTC (rev 3245) +++ trunk/lima-swing/src/main/java/org/chorem/lima/LimaConfig.java 2011-08-04 10:31:43 UTC (rev 3246) @@ -38,12 +38,18 @@ import org.apache.commons.logging.LogFactory; import org.chorem.lima.actions.MiscAction; import org.chorem.lima.business.OptionsServiceMonitorable; +import org.chorem.lima.business.LimaConfig.Option; import org.chorem.lima.entity.LimaCallaoDAOHelper; import org.chorem.lima.service.LimaServiceFactory; +import org.nuiton.i18n.I18n; +import org.nuiton.i18n.init.DefaultI18nInitializer; +import org.nuiton.i18n.init.I18nInitializer; +import org.nuiton.i18n.init.UserI18nInitializer; import org.nuiton.util.ApplicationConfig; import org.nuiton.util.ArgumentsParserException; import org.nuiton.util.FileUtil; import org.nuiton.util.SortedProperties; +import org.nuiton.util.StringUtil; import org.nuiton.util.Version; import org.nuiton.util.VersionUtil; import org.nuiton.util.converter.ConverterUtil; @@ -68,9 +74,6 @@ private static final String configFile = "lima-config.properties"; - //used for services - protected static final String SERVICECONFIGFILE = "lima.properties"; - protected OptionsServiceMonitorable optionsService; /** @@ -337,6 +340,16 @@ return result; } + public String getVersionDirectory() { + String result = getOption(Option.VERSION_DIRECTORY.key); + return result; + } + + public String getI18nDirectory() { + String result = getOption(Option.I18N_DIRECTORY.key); + return result; + } + public String getHostAdress() { return getOption(Option.LIMA_HOST_ADDRESS.key); } @@ -377,6 +390,8 @@ public static enum Option implements OptionDef { CONFIG_FILE(CONFIG_FILE_NAME, _("lima.config.configFileName.description"), "lima-config.properties", String.class, true, true), + VERSION_DIRECTORY("lima.version.dir", _("lima.config.versiondir"), "", String.class, false, false), + I18N_DIRECTORY("lima.i18n.dir", _("lima.config.i18ndir"), "", String.class, false, false), LOCALE("locale", _("lima.config.locale.description"), "fr_FR", Locale.class, false, false), DECIMAL_SEPARATOR("lima.config.decimalseparator", _("lima.config.decimalseparator.description"), ",", String.class, false, false), SCALE("scale", _("lima.config.scale.description"), "2", Integer.class, false, false), Modified: trunk/lima-swing/src/main/java/org/chorem/lima/LimaContext.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/LimaContext.java 2011-08-04 09:52:55 UTC (rev 3245) +++ trunk/lima-swing/src/main/java/org/chorem/lima/LimaContext.java 2011-08-04 10:31:43 UTC (rev 3246) @@ -32,8 +32,15 @@ import org.chorem.lima.ui.MainView; import org.chorem.lima.ui.MainViewHandler; import org.nuiton.i18n.I18n; +import org.nuiton.i18n.init.DefaultI18nInitializer; +import org.nuiton.i18n.init.I18nInitializer; +import org.nuiton.i18n.init.UserI18nInitializer; import org.nuiton.i18n.init.ClassPathI18nInitializer; +import org.nuiton.util.FileUtil; +import org.nuiton.util.StringUtil; +import java.io.File; +import java.io.IOException; import java.util.Locale; /** @@ -78,7 +85,7 @@ instance = new LimaContext(); instance.setContextValue(new LimaConfig()); instance.setContextValue(new MainViewHandler()); - + return instance; } @@ -100,12 +107,51 @@ return getContextValue(LimaConfig.class); } - public void initI18n() { + public void initI18n(LimaConfig config) { + + I18n.close(); + + File versionDirectory = new File(config.getVersionDirectory()); + File i18nDirectory = new File(config.getI18nDirectory()); + //create directory to store files for the current version only + try { + FileUtil.createDirectoryIfNecessary(versionDirectory); + //create directory to store i18n files + FileUtil.createDirectoryIfNecessary(i18nDirectory); + } + catch (IOException eee) { + throw new RuntimeException("Could not create directory ", eee); + } + UserI18nInitializer i18nInitializer = + new UserI18nInitializer( + i18nDirectory, + new DefaultI18nInitializer("lima") + ); + + //I18nInitializer i18nInitializer = new DefaultI18nInitializer("lima-config"); + + Locale locale = config.getLocale(); + + //I18n.init(new ClassPathI18nInitializer(), locale); + I18n.init(i18nInitializer, locale); + + // Default Locale for DatePicker + Locale.setDefault(locale); + + long t00 = System.nanoTime(); + + if (log.isDebugEnabled()) { + log.debug("i18n language : " + locale); + log.debug("i18n loading time : " + + StringUtil.convertTime(t00, System.nanoTime())); + } + + /* Locale locale = getConfig().getLocale(); I18n.init(new ClassPathI18nInitializer(), locale); // Default Locale for DatePicker - Locale.setDefault(locale); + Locale.setDefault(locale);*/ } public MainView getMainUI() { Modified: trunk/lima-swing/src/main/java/org/chorem/lima/LimaMain.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/LimaMain.java 2011-08-04 09:52:55 UTC (rev 3245) +++ trunk/lima-swing/src/main/java/org/chorem/lima/LimaMain.java 2011-08-04 10:31:43 UTC (rev 3246) @@ -27,7 +27,6 @@ import static org.nuiton.i18n.I18n._; import java.util.List; -import java.util.Locale; import javax.swing.SwingUtilities; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; @@ -41,8 +40,6 @@ import org.chorem.lima.ui.MainViewHandler; import org.chorem.lima.ui.opening.OpeningView; import org.chorem.lima.util.ErrorHelper; -import org.nuiton.i18n.I18n; -import org.nuiton.util.StringUtil; /** * Lima main. @@ -138,7 +135,7 @@ LimaConfig config = context.getContextValue(LimaConfig.class); config.parse(args); - context.initI18n(); + context.initI18n(config); // prepare ui look&feel and load ui properties try {