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(long groupId, String languageCode) {
232                    return getLanguage().getLocale(groupId, languageCode);
233            }
234    
235            public static Locale getLocale(String languageCode) {
236                    return getLanguage().getLocale(languageCode);
237            }
238    
239            public static Locale[] getSupportedLocales() {
240                    return getLanguage().getSupportedLocales();
241            }
242    
243            public static String getTimeDescription(Locale locale, long milliseconds) {
244                    return getLanguage().getTimeDescription(locale, milliseconds);
245            }
246    
247            public static String getTimeDescription(
248                    Locale locale, long milliseconds, boolean approximate) {
249    
250                    return getLanguage().getTimeDescription(
251                            locale, milliseconds, approximate);
252            }
253    
254            public static String getTimeDescription(Locale locale, Long milliseconds) {
255                    return getLanguage().getTimeDescription(locale, milliseconds);
256            }
257    
258            public static String getTimeDescription(
259                    PageContext pageContext, long milliseconds) {
260    
261                    return getLanguage().getTimeDescription(pageContext, milliseconds);
262            }
263    
264            public static String getTimeDescription(
265                    PageContext pageContext, long milliseconds, boolean approximate) {
266    
267                    return getLanguage().getTimeDescription(
268                            pageContext, milliseconds, approximate);
269            }
270    
271            public static String getTimeDescription(
272                    PageContext pageContext, Long milliseconds) {
273    
274                    return getLanguage().getTimeDescription(pageContext, milliseconds);
275            }
276    
277            public static void init() {
278                    getLanguage().init();
279            }
280    
281            public static boolean isAvailableLanguageCode(String languageCode) {
282                    return getLanguage().isAvailableLanguageCode(languageCode);
283            }
284    
285            public static boolean isAvailableLocale(Locale locale) {
286                    return getLanguage().isAvailableLocale(locale);
287            }
288    
289            public static boolean isAvailableLocale(long groupId, Locale locale) {
290                    return getLanguage().isAvailableLocale(groupId, locale);
291            }
292    
293            public static boolean isAvailableLocale(long groupId, String languageId) {
294                    return getLanguage().isAvailableLocale(groupId, languageId);
295            }
296    
297            public static boolean isAvailableLocale(String languageId) {
298                    return getLanguage().isAvailableLocale(languageId);
299            }
300    
301            public static boolean isBetaLocale(Locale locale) {
302                    return getLanguage().isBetaLocale(locale);
303            }
304    
305            public static boolean isDuplicateLanguageCode(String languageCode) {
306                    return getLanguage().isDuplicateLanguageCode(languageCode);
307            }
308    
309            public static boolean isInheritLocales(long groupId)
310                    throws PortalException, SystemException {
311    
312                    return getLanguage().isInheritLocales(groupId);
313            }
314    
315            public static boolean isValidLanguageKey(Locale locale, String key) {
316                    String value = getLanguage().get(locale, key, StringPool.BLANK);
317    
318                    return Validator.isNotNull(value);
319            }
320    
321            public static void resetAvailableGroupLocales(long groupId) {
322                    getLanguage().resetAvailableGroupLocales(groupId);
323            }
324    
325            public static void resetAvailableLocales(long companyId) {
326                    getLanguage().resetAvailableLocales(companyId);
327            }
328    
329            public static void updateCookie(
330                    HttpServletRequest request, HttpServletResponse response,
331                    Locale locale) {
332    
333                    getLanguage().updateCookie(request, response, locale);
334            }
335    
336            public void setLanguage(Language language) {
337                    PortalRuntimePermission.checkSetBeanProperty(getClass());
338    
339                    _language = language;
340            }
341    
342            private static Language _language;
343    
344    }