01: /*
02: * (C) Copyright 2006 Nabh Information Systems, Inc.
03: *
04: * All copyright notices regarding Nabh's products MUST remain
05: * intact in the scripts and in the outputted HTML.
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public License
08: * as published by the Free Software Foundation; either version 2.1
09: * of the License, or (at your option) any later version.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: * GNU Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public License
17: * along with this program; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19: *
20: */
21: package com.nabhinc.portlet.common;
22:
23: import java.util.Locale;
24:
25: import javax.portlet.PortletContext;
26:
27: /**
28: *
29: *
30: * @author Padmanabh Dabke
31: * (c) 2006 Nabh Information Systems, Inc. All Rights Reserved.
32: */
33: public class CommonUtil {
34: public static String getLocalizedPath(String jspPath,
35: Locale locale, PortletContext pContext) {
36: String realJspPath = jspPath;
37: if (locale != null) {
38: int separator = jspPath.lastIndexOf("/");
39: String jspBaseDir = jspPath.substring(0, separator);
40: String jspFileName = jspPath.substring(separator + 1);
41:
42: String searchPath = constructLocalizedPath(jspBaseDir,
43: locale.toString(), jspFileName);
44:
45: // search the requested JSP from the following location:
46: // <ctxt_root>/<portlet_base_dir>_<language>_<country>/<jsp_file_name>
47: if (pContext.getResourceAsStream(searchPath) != null) {
48: realJspPath = searchPath;
49: } else {
50: // if the country code is not empty, try to search the
51: // requested JSP from the following location:
52: // <ctxt_root>/<portlet_base_dir>_<language>/<jsp_file_name>
53: if (!locale.getCountry().equals("")) {
54: searchPath = constructLocalizedPath(jspBaseDir,
55: locale.getLanguage(), jspFileName);
56:
57: if (pContext.getResourceAsStream(searchPath) != null) {
58: realJspPath = searchPath;
59: }
60: }
61: }
62: }
63: return realJspPath;
64: }
65:
66: public static String constructLocalizedPath(String jspBaseDir,
67: String localeStr, String jspFileName) {
68: StringBuffer sb = new StringBuffer();
69: sb.append(jspBaseDir).append("/").append(localeStr).append("/")
70: .append(jspFileName);
71: return sb.toString();
72: }
73:
74: }
|