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    
021    import java.util.List;
022    import java.util.Locale;
023    import java.util.ResourceBundle;
024    import java.util.Set;
025    
026    import javax.portlet.PortletRequest;
027    
028    import javax.servlet.http.HttpServletRequest;
029    import javax.servlet.http.HttpServletResponse;
030    
031    /**
032     * @author Brian Wing Shun Chan
033     */
034    @ProviderType
035    public interface Language {
036    
037            public String format(
038                    HttpServletRequest request, String pattern, LanguageWrapper argument);
039    
040            public String format(
041                    HttpServletRequest request, String pattern, LanguageWrapper argument,
042                    boolean translateArguments);
043    
044            public String format(
045                    HttpServletRequest request, String pattern,
046                    LanguageWrapper[] arguments);
047    
048            public String format(
049                    HttpServletRequest request, String pattern, LanguageWrapper[] arguments,
050                    boolean translateArguments);
051    
052            public String format(
053                    HttpServletRequest request, String pattern, Object argument);
054    
055            public String format(
056                    HttpServletRequest request, String pattern, Object argument,
057                    boolean translateArguments);
058    
059            public String format(
060                    HttpServletRequest request, String pattern, Object[] arguments);
061    
062            public String format(
063                    HttpServletRequest request, String pattern, Object[] arguments,
064                    boolean translateArguments);
065    
066            public String format(Locale locale, String pattern, List<Object> arguments);
067    
068            public String format(Locale locale, String pattern, Object argument);
069    
070            public String format(
071                    Locale locale, String pattern, Object argument,
072                    boolean translateArguments);
073    
074            public String format(Locale locale, String pattern, Object[] arguments);
075    
076            public String format(
077                    Locale locale, String pattern, Object[] arguments,
078                    boolean translateArguments);
079    
080            public String format(
081                    ResourceBundle resourceBundle, String pattern, Object argument);
082    
083            public String format(
084                    ResourceBundle resourceBundle, String pattern, Object argument,
085                    boolean translateArguments);
086    
087            public String format(
088                    ResourceBundle resourceBundle, String pattern, Object[] arguments);
089    
090            public String format(
091                    ResourceBundle resourceBundle, String pattern, Object[] arguments,
092                    boolean translateArguments);
093    
094            public String get(
095                    HttpServletRequest request, ResourceBundle resourceBundle, String key);
096    
097            public String get(
098                    HttpServletRequest request, ResourceBundle resourceBundle, String key,
099                    String defaultValue);
100    
101            public String get(HttpServletRequest request, String key);
102    
103            public String get(
104                    HttpServletRequest request, String key, String defaultValue);
105    
106            public String get(Locale locale, String key);
107    
108            public String get(Locale locale, String key, String defaultValue);
109    
110            public String get(ResourceBundle resourceBundle, String key);
111    
112            public String get(
113                    ResourceBundle resourceBundle, String key, String defaultValue);
114    
115            public Set<Locale> getAvailableLocales();
116    
117            public Set<Locale> getAvailableLocales(long groupId);
118    
119            public String getBCP47LanguageId(HttpServletRequest request);
120    
121            public String getBCP47LanguageId(Locale locale);
122    
123            public String getBCP47LanguageId(PortletRequest portletRequest);
124    
125            public String getLanguageId(HttpServletRequest request);
126    
127            public String getLanguageId(Locale locale);
128    
129            public String getLanguageId(PortletRequest portletRequest);
130    
131            public Locale getLocale(long groupId, String languageCode);
132    
133            public Locale getLocale(String languageCode);
134    
135            public Set<Locale> getSupportedLocales();
136    
137            public String getTimeDescription(
138                    HttpServletRequest request, long milliseconds);
139    
140            public String getTimeDescription(
141                    HttpServletRequest request, long milliseconds, boolean approximate);
142    
143            public String getTimeDescription(
144                    HttpServletRequest request, Long milliseconds);
145    
146            public String getTimeDescription(Locale locale, long milliseconds);
147    
148            public String getTimeDescription(
149                    Locale locale, long milliseconds, boolean approximate);
150    
151            public String getTimeDescription(Locale locale, Long milliseconds);
152    
153            public void init();
154    
155            public boolean isAvailableLanguageCode(String languageCode);
156    
157            public boolean isAvailableLocale(Locale locale);
158    
159            public boolean isAvailableLocale(long groupId, Locale locale);
160    
161            public boolean isAvailableLocale(long groupId, String languageId);
162    
163            public boolean isAvailableLocale(String languageId);
164    
165            public boolean isBetaLocale(Locale locale);
166    
167            public boolean isDuplicateLanguageCode(String languageCode);
168    
169            public boolean isInheritLocales(long groupId) throws PortalException;
170    
171            public String process(
172                    ResourceBundle resourceBundle, Locale locale, String content);
173    
174            public void resetAvailableGroupLocales(long groupId);
175    
176            public void resetAvailableLocales(long companyId);
177    
178            public void updateCookie(
179                    HttpServletRequest request, HttpServletResponse response,
180                    Locale locale);
181    
182    }