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.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
020    import com.liferay.portal.kernel.util.StringPool;
021    import com.liferay.portal.kernel.util.Validator;
022    
023    import java.util.List;
024    import java.util.Locale;
025    
026    import javax.portlet.PortletConfig;
027    import javax.portlet.PortletRequest;
028    
029    import javax.servlet.http.HttpServletRequest;
030    import javax.servlet.http.HttpServletResponse;
031    import javax.servlet.jsp.PageContext;
032    
033    /**
034     * @author Brian Wing Shun Chan
035     */
036    public class LanguageUtil {
037    
038            public static String format(
039                    Locale locale, String pattern, List<Object> arguments) {
040    
041                    return getLanguage().format(locale, pattern, arguments);
042            }
043    
044            public static String format(
045                    Locale locale, String pattern, Object argument) {
046    
047                    return getLanguage().format(locale, pattern, argument);
048            }
049    
050            public static String format(
051                    Locale locale, String pattern, Object argument,
052                    boolean translateArguments) {
053    
054                    return getLanguage().format(
055                            locale, pattern, argument, translateArguments);
056            }
057    
058            public static String format(
059                    Locale locale, String pattern, Object[] arguments) {
060    
061                    return getLanguage().format(locale, pattern, arguments);
062            }
063    
064            public static String format(
065                    Locale locale, String pattern, Object[] arguments,
066                    boolean translateArguments) {
067    
068                    return getLanguage().format(
069                            locale, pattern, arguments, translateArguments);
070            }
071    
072            public static String format(
073                    PageContext pageContext, String pattern, LanguageWrapper argument) {
074    
075                    return getLanguage().format(pageContext, pattern, argument);
076            }
077    
078            public static String format(
079                    PageContext pageContext, String pattern, LanguageWrapper argument,
080                    boolean translateArguments) {
081    
082                    return getLanguage().format(
083                            pageContext, pattern, argument, translateArguments);
084            }
085    
086            public static String format(
087                    PageContext pageContext, String pattern, LanguageWrapper[] arguments) {
088    
089                    return getLanguage().format(pageContext, pattern, arguments);
090            }
091    
092            public static String format(
093                    PageContext pageContext, String pattern, LanguageWrapper[] arguments,
094                    boolean translateArguments) {
095    
096                    return getLanguage().format(
097                            pageContext, pattern, arguments, translateArguments);
098            }
099    
100            public static String format(
101                    PageContext pageContext, String pattern, Object argument) {
102    
103                    return getLanguage().format(pageContext, pattern, argument);
104            }
105    
106            public static String format(
107                    PageContext pageContext, String pattern, Object argument,
108                    boolean translateArguments) {
109    
110                    return getLanguage().format(
111                            pageContext, pattern, argument, translateArguments);
112            }
113    
114            public static String format(
115                    PageContext pageContext, String pattern, Object[] arguments) {
116    
117                    return getLanguage().format(pageContext, pattern, arguments);
118            }
119    
120            public static String format(
121                    PageContext pageContext, String pattern, Object[] arguments,
122                    boolean translateArguments) {
123    
124                    return getLanguage().format(
125                            pageContext, pattern, arguments, translateArguments);
126            }
127    
128            public static String format(
129                    PortletConfig portletConfig, Locale locale, String pattern,
130                    Object argument) {
131    
132                    return getLanguage().format(portletConfig, locale, pattern, argument);
133            }
134    
135            public static String format(
136                    PortletConfig portletConfig, Locale locale, String pattern,
137                    Object argument, boolean translateArguments) {
138    
139                    return getLanguage().format(
140                            portletConfig, locale, pattern, argument, translateArguments);
141            }
142    
143            public static String format(
144                    PortletConfig portletConfig, Locale locale, String pattern,
145                    Object[] arguments) {
146    
147                    return getLanguage().format(portletConfig, locale, pattern, arguments);
148            }
149    
150            public static String format(
151                    PortletConfig portletConfig, Locale locale, String pattern,
152                    Object[] arguments, boolean translateArguments) {
153    
154                    return getLanguage().format(
155                            portletConfig, locale, pattern, arguments, translateArguments);
156            }
157    
158            public static String get(Locale locale, String key) {
159                    return getLanguage().get(locale, key);
160            }
161    
162            public static String get(Locale locale, String key, String defaultValue) {
163                    return getLanguage().get(locale, key, defaultValue);
164            }
165    
166            public static String get(PageContext pageContext, String key) {
167                    return getLanguage().get(pageContext, key);
168            }
169    
170            public static String get(
171                    PageContext pageContext, String key, String defaultValue) {
172    
173                    return getLanguage().get(pageContext, key, defaultValue);
174            }
175    
176            public static String get(
177                    PortletConfig portletConfig, Locale locale, String key) {
178    
179                    return getLanguage().get(portletConfig, locale, key);
180            }
181    
182            public static String get(
183                    PortletConfig portletConfig, Locale locale, String key,
184                    String defaultValue) {
185    
186                    return getLanguage().get(portletConfig, locale, key, defaultValue);
187            }
188    
189            public static Locale[] getAvailableLocales() {
190                    return getLanguage().getAvailableLocales();
191            }
192    
193            public static Locale[] getAvailableLocales(long groupId) {
194                    return getLanguage().getAvailableLocales(groupId);
195            }
196    
197            public static String getBCP47LanguageId(HttpServletRequest request) {
198                    return getLanguage().getBCP47LanguageId(request);
199            }
200    
201            public static String getBCP47LanguageId(Locale locale) {
202                    return getLanguage().getBCP47LanguageId(locale);
203            }
204    
205            public static String getBCP47LanguageId(PortletRequest portletRequest) {
206                    return getLanguage().getBCP47LanguageId(portletRequest);
207            }
208    
209            public static String getCharset(Locale locale) {
210                    return getLanguage().getCharset(locale);
211            }
212    
213            public static Language getLanguage() {
214                    PortalRuntimePermission.checkGetBeanProperty(LanguageUtil.class);
215    
216                    return _language;
217            }
218    
219            public static String getLanguageId(HttpServletRequest request) {
220                    return getLanguage().getLanguageId(request);
221            }
222    
223            public static String getLanguageId(Locale locale) {
224                    return getLanguage().getLanguageId(locale);
225            }
226    
227            public static String getLanguageId(PortletRequest portletRequest) {
228                    return getLanguage().getLanguageId(portletRequest);
229            }
230    
231            public static Locale getLocale(String languageCode) {
232                    return getLanguage().getLocale(languageCode);
233            }
234    
235            public static Locale[] getSupportedLocales() {
236                    return getLanguage().getSupportedLocales();
237            }
238    
239            public static String getTimeDescription(Locale locale, long milliseconds) {
240                    return getLanguage().getTimeDescription(locale, milliseconds);
241            }
242    
243            public static String getTimeDescription(
244                    Locale locale, long milliseconds, boolean approximate) {
245    
246                    return getLanguage().getTimeDescription(
247                            locale, milliseconds, approximate);
248            }
249    
250            public static String getTimeDescription(Locale locale, Long milliseconds) {
251                    return getLanguage().getTimeDescription(locale, milliseconds);
252            }
253    
254            public static String getTimeDescription(
255                    PageContext pageContext, long milliseconds) {
256    
257                    return getLanguage().getTimeDescription(pageContext, milliseconds);
258            }
259    
260            public static String getTimeDescription(
261                    PageContext pageContext, long milliseconds, boolean approximate) {
262    
263                    return getLanguage().getTimeDescription(
264                            pageContext, milliseconds, approximate);
265            }
266    
267            public static String getTimeDescription(
268                    PageContext pageContext, Long milliseconds) {
269    
270                    return getLanguage().getTimeDescription(pageContext, milliseconds);
271            }
272    
273            public static void init() {
274                    getLanguage().init();
275            }
276    
277            public static boolean isAvailableLanguageCode(String languageCode) {
278                    return getLanguage().isAvailableLanguageCode(languageCode);
279            }
280    
281            public static boolean isAvailableLocale(Locale locale) {
282                    return getLanguage().isAvailableLocale(locale);
283            }
284    
285            public static boolean isAvailableLocale(long groupId, Locale locale) {
286                    return getLanguage().isAvailableLocale(groupId, locale);
287            }
288    
289            public static boolean isAvailableLocale(long groupId, String languageId) {
290                    return getLanguage().isAvailableLocale(groupId, languageId);
291            }
292    
293            public static boolean isAvailableLocale(String languageId) {
294                    return getLanguage().isAvailableLocale(languageId);
295            }
296    
297            public static boolean isBetaLocale(Locale locale) {
298                    return getLanguage().isBetaLocale(locale);
299            }
300    
301            public static boolean isDuplicateLanguageCode(String languageCode) {
302                    return getLanguage().isDuplicateLanguageCode(languageCode);
303            }
304    
305            public static boolean isInheritLocales(long groupId)
306                    throws PortalException, SystemException {
307    
308                    return getLanguage().isInheritLocales(groupId);
309            }
310    
311            public static boolean isValidLanguageKey(Locale locale, String key) {
312                    String value = getLanguage().get(locale, key, StringPool.BLANK);
313    
314                    return Validator.isNotNull(value);
315            }
316    
317            public static void resetAvailableGroupLocales(long groupId) {
318                    getLanguage().resetAvailableGroupLocales(groupId);
319            }
320    
321            public static void resetAvailableLocales(long companyId) {
322                    getLanguage().resetAvailableLocales(companyId);
323            }
324    
325            public static void updateCookie(
326                    HttpServletRequest request, HttpServletResponse response,
327                    Locale locale) {
328    
329                    getLanguage().updateCookie(request, response, locale);
330            }
331    
332            public void setLanguage(Language language) {
333                    PortalRuntimePermission.checkSetBeanProperty(getClass());
334    
335                    _language = language;
336            }
337    
338            private static Language _language;
339    
340    }