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