001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.language;
016    
017    import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
018    import com.liferay.portal.kernel.util.StringPool;
019    import com.liferay.portal.kernel.util.Validator;
020    
021    import java.util.Locale;
022    
023    import javax.portlet.PortletConfig;
024    import javax.portlet.PortletRequest;
025    
026    import javax.servlet.http.HttpServletRequest;
027    import javax.servlet.http.HttpServletResponse;
028    import javax.servlet.jsp.PageContext;
029    
030    /**
031     * @author Brian Wing Shun Chan
032     */
033    public class LanguageUtil {
034    
035            public static String format(
036                    Locale locale, String pattern, Object argument) {
037    
038                    return getLanguage().format(locale, pattern, argument);
039            }
040    
041            public static String format(
042                    Locale locale, String pattern, Object argument,
043                    boolean translateArguments) {
044    
045                    return getLanguage().format(
046                            locale, pattern, argument, translateArguments);
047            }
048    
049            public static String format(
050                    Locale locale, String pattern, Object[] arguments) {
051    
052                    return getLanguage().format(locale, pattern, arguments);
053            }
054    
055            public static String format(
056                    Locale locale, String pattern, Object[] arguments,
057                    boolean translateArguments) {
058    
059                    return getLanguage().format(
060                            locale, pattern, arguments, translateArguments);
061            }
062    
063            public static String format(
064                    PageContext pageContext, String pattern, LanguageWrapper argument) {
065    
066                    return getLanguage().format(pageContext, pattern, argument);
067            }
068    
069            public static String format(
070                    PageContext pageContext, String pattern, LanguageWrapper argument,
071                    boolean translateArguments) {
072    
073                    return getLanguage().format(
074                            pageContext, pattern, argument, translateArguments);
075            }
076    
077            public static String format(
078                    PageContext pageContext, String pattern, LanguageWrapper[] arguments) {
079    
080                    return getLanguage().format(pageContext, pattern, arguments);
081            }
082    
083            public static String format(
084                    PageContext pageContext, String pattern, LanguageWrapper[] arguments,
085                    boolean translateArguments) {
086    
087                    return getLanguage().format(
088                            pageContext, pattern, arguments, translateArguments);
089            }
090    
091            public static String format(
092                    PageContext pageContext, String pattern, Object argument) {
093    
094                    return getLanguage().format(pageContext, pattern, argument);
095            }
096    
097            public static String format(
098                    PageContext pageContext, String pattern, Object argument,
099                    boolean translateArguments) {
100    
101                    return getLanguage().format(
102                            pageContext, pattern, argument, translateArguments);
103            }
104    
105            public static String format(
106                    PageContext pageContext, String pattern, Object[] arguments) {
107    
108                    return getLanguage().format(pageContext, pattern, arguments);
109            }
110    
111            public static String format(
112                    PageContext pageContext, String pattern, Object[] arguments,
113                    boolean translateArguments) {
114    
115                    return getLanguage().format(
116                            pageContext, pattern, arguments, translateArguments);
117            }
118    
119            public static String format(
120                    PortletConfig portletConfig, Locale locale, String pattern,
121                    Object argument) {
122    
123                    return getLanguage().format(portletConfig, locale, pattern, argument);
124            }
125    
126            public static String format(
127                    PortletConfig portletConfig, Locale locale, String pattern,
128                    Object argument, boolean translateArguments) {
129    
130                    return getLanguage().format(
131                            portletConfig, locale, pattern, argument, translateArguments);
132            }
133    
134            public static String format(
135                    PortletConfig portletConfig, Locale locale, String pattern,
136                    Object[] arguments) {
137    
138                    return getLanguage().format(portletConfig, locale, pattern, arguments);
139            }
140    
141            public static String format(
142                    PortletConfig portletConfig, Locale locale, String pattern,
143                    Object[] arguments, boolean translateArguments) {
144    
145                    return getLanguage().format(
146                            portletConfig, locale, pattern, arguments, translateArguments);
147            }
148    
149            public static String get(Locale locale, String key) {
150                    return getLanguage().get(locale, key);
151            }
152    
153            public static String get(Locale locale, String key, String defaultValue) {
154                    return getLanguage().get(locale, key, defaultValue);
155            }
156    
157            public static String get(PageContext pageContext, String key) {
158                    return getLanguage().get(pageContext, key);
159            }
160    
161            public static String get(
162                    PageContext pageContext, String key, String defaultValue) {
163    
164                    return getLanguage().get(pageContext, key, defaultValue);
165            }
166    
167            public static String get(
168                    PortletConfig portletConfig, Locale locale, String key) {
169    
170                    return getLanguage().get(portletConfig, locale, key);
171            }
172    
173            public static String get(
174                    PortletConfig portletConfig, Locale locale, String key,
175                    String defaultValue) {
176    
177                    return getLanguage().get(portletConfig, locale, key, defaultValue);
178            }
179    
180            public static Locale[] getAvailableLocales() {
181                    return getLanguage().getAvailableLocales();
182            }
183    
184            public static String getCharset(Locale locale) {
185                    return getLanguage().getCharset(locale);
186            }
187    
188            public static Language getLanguage() {
189                    PortalRuntimePermission.checkGetBeanProperty(LanguageUtil.class);
190    
191                    return _language;
192            }
193    
194            public static String getLanguageId(HttpServletRequest request) {
195                    return getLanguage().getLanguageId(request);
196            }
197    
198            public static String getLanguageId(Locale locale) {
199                    return getLanguage().getLanguageId(locale);
200            }
201    
202            public static String getLanguageId(PortletRequest portletRequest) {
203                    return getLanguage().getLanguageId(portletRequest);
204            }
205    
206            public static Locale getLocale(String languageCode) {
207                    return getLanguage().getLocale(languageCode);
208            }
209    
210            public static Locale[] getSupportedLocales() {
211                    return getLanguage().getSupportedLocales();
212            }
213    
214            public static String getTimeDescription(Locale locale, long milliseconds) {
215                    return getLanguage().getTimeDescription(locale, milliseconds);
216            }
217    
218            public static String getTimeDescription(
219                    Locale locale, long milliseconds, boolean approximate) {
220    
221                    return getLanguage().getTimeDescription(
222                            locale, milliseconds, approximate);
223            }
224    
225            public static String getTimeDescription(Locale locale, Long milliseconds) {
226                    return getLanguage().getTimeDescription(locale, milliseconds);
227            }
228    
229            public static String getTimeDescription(
230                    PageContext pageContext, long milliseconds) {
231    
232                    return getLanguage().getTimeDescription(pageContext, milliseconds);
233            }
234    
235            public static String getTimeDescription(
236                    PageContext pageContext, long milliseconds, boolean approximate) {
237    
238                    return getLanguage().getTimeDescription(
239                            pageContext, milliseconds, approximate);
240            }
241    
242            public static String getTimeDescription(
243                    PageContext pageContext, Long milliseconds) {
244    
245                    return getLanguage().getTimeDescription(pageContext, milliseconds);
246            }
247    
248            public static void init() {
249                    getLanguage().init();
250            }
251    
252            public static boolean isAvailableLanguageCode(String languageCode) {
253                    return getLanguage().isAvailableLanguageCode(languageCode);
254            }
255    
256            public static boolean isAvailableLocale(Locale locale) {
257                    return getLanguage().isAvailableLocale(locale);
258            }
259    
260            public static boolean isAvailableLocale(String languageId) {
261                    return getLanguage().isAvailableLocale(languageId);
262            }
263    
264            public static boolean isBetaLocale(Locale locale) {
265                    return getLanguage().isBetaLocale(locale);
266            }
267    
268            public static boolean isDuplicateLanguageCode(String languageCode) {
269                    return getLanguage().isDuplicateLanguageCode(languageCode);
270            }
271    
272            public static boolean isValidLanguageKey(Locale locale, String key) {
273                    String value = getLanguage().get(locale, key, StringPool.BLANK);
274    
275                    return Validator.isNotNull(value);
276            }
277    
278            public static void resetAvailableLocales(long companyId) {
279                    getLanguage().resetAvailableLocales(companyId);
280            }
281    
282            public static void updateCookie(
283                    HttpServletRequest request, HttpServletResponse response,
284                    Locale locale) {
285    
286                    getLanguage().updateCookie(request, response, locale);
287            }
288    
289            public void setLanguage(Language language) {
290                    PortalRuntimePermission.checkSetBeanProperty(getClass());
291    
292                    _language = language;
293            }
294    
295            private static Language _language;
296    
297    }