Author: tchemit Date: 2011-08-04 13:09:14 +0200 (Thu, 04 Aug 2011) New Revision: 3248 Url: http://chorem.org/repositories/revision/lima/3248 Log: make i18n works with external resources Modified: 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/ui/MainViewHandler.java trunk/lima-swing/src/main/resources/lima-config.properties 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 10:44:34 UTC (rev 3247) +++ trunk/lima-swing/src/main/java/org/chorem/lima/LimaConfig.java 2011-08-04 11:09:14 UTC (rev 3248) @@ -25,35 +25,30 @@ package org.chorem.lima; -import static org.nuiton.i18n.I18n._; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.Locale; -import java.util.Properties; - import org.apache.commons.logging.Log; 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; +import java.beans.PropertyChangeListener; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Locale; +import java.util.Properties; + +import static org.nuiton.i18n.I18n._; + /** * La configuration de l'application. * @@ -340,13 +335,13 @@ return result; } - public String getVersionDirectory() { - String result = getOption(Option.VERSION_DIRECTORY.key); + public File getResourcesDirectory() { + File result = getOptionAsFile(Option.RESOURCES_DIRECTORY.key); return result; } - public String getI18nDirectory() { - String result = getOption(Option.I18N_DIRECTORY.key); + public File getI18nDirectory() { + File result = getOptionAsFile(Option.I18N_DIRECTORY.key); return result; } @@ -390,8 +385,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), + RESOURCES_DIRECTORY("lima.resources.dir", _("lima.config.resourcesdir"), "${lima.dir}/resources-${application.version}", String.class, false, false), + I18N_DIRECTORY("lima.i18n.dir", _("lima.config.i18ndir"), "${lima.resources.dir}/i18n", 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), @@ -469,7 +464,7 @@ /** * Lima action definition. */ - public static enum Action { + public enum Action { HELP(_("lima.action.commandline.help"), MiscAction.class.getName() + "#help", "-h", "--help"); @@ -482,7 +477,7 @@ public String action; public String[] aliases; - private Action(String description, String action, String... aliases) { + Action(String description, String action, String... aliases) { this.description = description; this.action = action; this.aliases = aliases; 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 10:44:34 UTC (rev 3247) +++ trunk/lima-swing/src/main/java/org/chorem/lima/LimaContext.java 2011-08-04 11:09:14 UTC (rev 3248) @@ -33,9 +33,7 @@ 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; @@ -110,30 +108,28 @@ 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); + + File i18nDirectory = config.getI18nDirectory(); + + if (log.isInfoEnabled()) { + log.info("I18n directory : " + i18nDirectory); + } + try { //create directory to store i18n files - FileUtil.createDirectoryIfNecessary(i18nDirectory); + FileUtil.createDirectoryIfNecessary(i18nDirectory.getParentFile()); + } catch (IOException eee) { + throw new RuntimeException( + "Could not create directory " + + i18nDirectory.getParentFile(), eee); } - 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 @@ -146,12 +142,6 @@ 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);*/ } public MainView getMainUI() { Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/MainViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/MainViewHandler.java 2011-08-04 10:44:34 UTC (rev 3247) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/MainViewHandler.java 2011-08-04 11:09:14 UTC (rev 3248) @@ -25,10 +25,6 @@ package org.chorem.lima.ui; -import static org.nuiton.i18n.I18n._; -import java.awt.Desktop; -import java.net.URL; -import java.util.Locale; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.AboutPanel; import jaxx.runtime.swing.editor.config.ConfigUIHelper; @@ -43,12 +39,12 @@ import org.chorem.lima.ui.entrybook.EntryBookView; import org.chorem.lima.ui.entrybooksreports.EntryBooksReportsView; import org.chorem.lima.ui.financialperiod.FinancialPeriodView; -import org.chorem.lima.ui.fiscalperiod.FiscalPeriodView; import org.chorem.lima.ui.financialstatementchart.FinancialStatementChartView; import org.chorem.lima.ui.financialstatementreport.FinancialStatementReportView; import org.chorem.lima.ui.financialtransaction.FinancialTransactionView; import org.chorem.lima.ui.financialtransactionsearch.FinancialTransactionSearchView; import org.chorem.lima.ui.financialtransactionunbalanced.FinancialTransactionUnbalancedView; +import org.chorem.lima.ui.fiscalperiod.FiscalPeriodView; import org.chorem.lima.ui.home.HomeView; import org.chorem.lima.ui.identity.IdentityForm; import org.chorem.lima.ui.importexport.ImportExport; @@ -58,6 +54,12 @@ import org.chorem.lima.ui.vatreports.VatReportView; import org.chorem.lima.util.ErrorHelper; +import java.awt.Desktop; +import java.net.URL; +import java.util.Locale; + +import static org.nuiton.i18n.I18n._; + /** * Handler for main view. * @@ -103,7 +105,7 @@ config.setLocale(newLocale); // rechargement i18n - LimaContext.get().initI18n(); + LimaContext.get().initI18n(config); // on recharge l'ui reloadUI(LimaContext.get(), config.isFullScreen()); Modified: trunk/lima-swing/src/main/resources/lima-config.properties =================================================================== --- trunk/lima-swing/src/main/resources/lima-config.properties 2011-08-04 10:44:34 UTC (rev 3247) +++ trunk/lima-swing/src/main/resources/lima-config.properties 2011-08-04 11:09:14 UTC (rev 3248) @@ -39,12 +39,7 @@ #LIMA Defaults values # main directory lima.dir=${user.home}/.lima -# version directory -lima.version.dir=${lima.dir}/${project.version} -# directory for i18n files -lima.i18n.dir=${lima.version.dir}/i18n - ######################## # Open EJB Configuration ########################