/** * Copyright 2010 the original author or authors. * * This file is part of Zksample2. http://zksample2.sourceforge.net/ * * Zksample2 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Zksample2 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 Public License for more details. * * You should have received a copy of the GNU General Public License * along with Zksample2. If not, see <http://www.gnu.org/licenses/gpl.html>. */ package de.forsthaus.webui.util; import java.io.File; import java.net.URL; import java.util.Locale; import org.apache.commons.lang.StringUtils; import org.zkoss.util.resource.LabelLocator; import org.zkoss.zk.ui.Sessions; public class GeneralLabelLocator implements LabelLocator { private static final String MENU_FILE_NAME = "i3-label"; private static final String MENU_FILE_SUFFIX = ".properties"; private String context; /** * Constructor * * @param context * wam context */ public GeneralLabelLocator(String context) { this.context = context; } /* * (non-Javadoc) * * @see org.zkoss.util.resource.LabelLocator#locate(java.util.Locale) */ public URL locate(Locale locale) throws Exception { // String menu_res_filename = // (locale.getLanguage().equals(Locale.ITALIAN.getLanguage())) ? // MENU_FILE_NAME + MENU_FILE_SUFFIX // : MENU_FILE_NAME + "_" + locale.getLanguage() + MENU_FILE_SUFFIX; String menu_res_filename = ""; if (StringUtils.isEmpty(context)) { // Locale.setDefault(new Locale("en", "EN")); context = "en_EN"; } if (context.equals("en_EN")) { // default property-file without locale Sessions.getCurrent().setAttribute("px_preferred_locale", new Locale("en", "EN")); menu_res_filename = MENU_FILE_NAME + MENU_FILE_SUFFIX; } else if (context.equals("de_DE")) { Sessions.getCurrent().setAttribute("px_preferred_locale", new Locale("de", "DE")); menu_res_filename = MENU_FILE_NAME + "_" + "de_DE" + MENU_FILE_SUFFIX; } // String menu_res_filename = MENU_FILE_NAME + "_" + context + // MENU_FILE_SUFFIX; // real path String menu_res_path = Sessions.getCurrent().getWebApp().getRealPath("/WEB-INF/" + menu_res_filename); // check if the file exists File fmr = new File(menu_res_path); if (!fmr.exists()) throw new Exception("..........."); // return url return fmr.toURL(); } }