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