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