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 getCharset(Locale locale) {
198                    return getLanguage().getCharset(locale);
199            }
200    
201            public static Language getLanguage() {
202                    PortalRuntimePermission.checkGetBeanProperty(LanguageUtil.class);
203    
204                    return _language;
205            }
206    
207            public static String getLanguageId(HttpServletRequest request) {
208                    return getLanguage().getLanguageId(request);
209            }
210    
211            public static String getLanguageId(Locale locale) {
212                    return getLanguage().getLanguageId(locale);
213            }
214    
215            public static String getLanguageId(PortletRequest portletRequest) {
216                    return getLanguage().getLanguageId(portletRequest);
217            }
218    
219            public static Locale getLocale(String languageCode) {
220                    return getLanguage().getLocale(languageCode);
221            }
222    
223            public static Locale[] getSupportedLocales() {
224                    return getLanguage().getSupportedLocales();
225            }
226    
227            public static String getTimeDescription(Locale locale, long milliseconds) {
228                    return getLanguage().getTimeDescription(locale, milliseconds);
229            }
230    
231            public static String getTimeDescription(
232                    Locale locale, long milliseconds, boolean approximate) {
233    
234                    return getLanguage().getTimeDescription(
235                            locale, milliseconds, approximate);
236            }
237    
238            public static String getTimeDescription(Locale locale, Long milliseconds) {
239                    return getLanguage().getTimeDescription(locale, milliseconds);
240            }
241    
242            public static String getTimeDescription(
243                    PageContext pageContext, long milliseconds) {
244    
245                    return getLanguage().getTimeDescription(pageContext, milliseconds);
246            }
247    
248            public static String getTimeDescription(
249                    PageContext pageContext, long milliseconds, boolean approximate) {
250    
251                    return getLanguage().getTimeDescription(
252                            pageContext, milliseconds, approximate);
253            }
254    
255            public static String getTimeDescription(
256                    PageContext pageContext, Long milliseconds) {
257    
258                    return getLanguage().getTimeDescription(pageContext, milliseconds);
259            }
260    
261            public static void init() {
262                    getLanguage().init();
263            }
264    
265            public static boolean isAvailableLanguageCode(String languageCode) {
266                    return getLanguage().isAvailableLanguageCode(languageCode);
267            }
268    
269            public static boolean isAvailableLocale(Locale locale) {
270                    return getLanguage().isAvailableLocale(locale);
271            }
272    
273            public static boolean isAvailableLocale(long groupId, Locale locale) {
274                    return getLanguage().isAvailableLocale(groupId, locale);
275            }
276    
277            public static boolean isAvailableLocale(long groupId, String languageId) {
278                    return getLanguage().isAvailableLocale(groupId, languageId);
279            }
280    
281            public static boolean isAvailableLocale(String languageId) {
282                    return getLanguage().isAvailableLocale(languageId);
283            }
284    
285            public static boolean isBetaLocale(Locale locale) {
286                    return getLanguage().isBetaLocale(locale);
287            }
288    
289            public static boolean isDuplicateLanguageCode(String languageCode) {
290                    return getLanguage().isDuplicateLanguageCode(languageCode);
291            }
292    
293            public static boolean isInheritLocales(long groupId)
294                    throws PortalException, SystemException {
295    
296                    return getLanguage().isInheritLocales(groupId);
297            }
298    
299            public static boolean isValidLanguageKey(Locale locale, String key) {
300                    String value = getLanguage().get(locale, key, StringPool.BLANK);
301    
302                    return Validator.isNotNull(value);
303            }
304    
305            public static void resetAvailableGroupLocales(long groupId) {
306                    getLanguage().resetAvailableGroupLocales(groupId);
307            }
308    
309            public static void resetAvailableLocales(long companyId) {
310                    getLanguage().resetAvailableLocales(companyId);
311            }
312    
313            public static void updateCookie(
314                    HttpServletRequest request, HttpServletResponse response,
315                    Locale locale) {
316    
317                    getLanguage().updateCookie(request, response, locale);
318            }
319    
320            public void setLanguage(Language language) {
321                    PortalRuntimePermission.checkSetBeanProperty(getClass());
322    
323                    _language = language;
324            }
325    
326            private static Language _language;
327    
328    }