1 /** 2 * This file Copyright (c) 2013-2018 Magnolia International 3 * Ltd. (http://www.magnolia-cms.com). All rights reserved. 4 * 5 * 6 * This file is dual-licensed under both the Magnolia 7 * Network Agreement and the GNU General Public License. 8 * You may elect to use one or the other of these licenses. 9 * 10 * This file is distributed in the hope that it will be 11 * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the 12 * implied warranty of MERCHANTABILITY or FITNESS FOR A 13 * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT. 14 * Redistribution, except as permitted by whichever of the GPL 15 * or MNA you select, is prohibited. 16 * 17 * 1. For the GPL license (GPL), you can redistribute and/or 18 * modify this file under the terms of the GNU General 19 * Public License, Version 3, as published by the Free Software 20 * Foundation. You should have received a copy of the GNU 21 * General Public License, Version 3 along with this program; 22 * if not, write to the Free Software Foundation, Inc., 51 23 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 24 * 25 * 2. For the Magnolia Network Agreement (MNA), this file 26 * and the accompanying materials are made available under the 27 * terms of the MNA which accompanies this distribution, and 28 * is available at http://www.magnolia-cms.com/mna.html 29 * 30 * Any modifications to this file must keep this entire header 31 * intact. 32 * 33 */ 34 package info.magnolia.ui.api.i18n; 35 36 import java.util.Arrays; 37 import java.util.List; 38 import java.util.Locale; 39 import java.util.Objects; 40 41 import javax.jcr.Node; 42 43 import com.vaadin.ui.HasComponents; 44 import com.vaadin.v7.data.Item; 45 46 /** 47 * Allows authors to create components with locale-dependent controls. 48 */ 49 public interface I18NAuthoringSupport { 50 51 /** 52 * Stub method implementation always returning English and German as available languages. 53 * 54 * @deprecated since 6.0 - temporary API used solely in UI framework developer preview features 55 * and is a subject for removal in the nearest future. 56 */ 57 @Deprecated 58 default List<Locale> getAvailableLocales() { 59 return Arrays.asList(Locale.ENGLISH, Locale.GERMAN); 60 } 61 62 /** 63 * Stub method implementation always treating English as default locale. 64 * 65 * @deprecated since 6.0 - temporary API used solely in UI framework developer preview features 66 * and is a subject for removal in the nearest future. 67 */ 68 @Deprecated 69 default Locale getDefaultLocale() { 70 return Locale.ENGLISH; 71 } 72 73 /** 74 * Stub method implementation always treating English as default locale. 75 * 76 * @deprecated since 6.0 - temporary API used solely in UI framework developer preview features 77 * and is a subject for removal in the nearest future. 78 */ 79 @Deprecated 80 default boolean isDefaultLocale(Locale locale) { 81 return Objects.equals(locale, Locale.ENGLISH); 82 } 83 84 default boolean isDefaultLocale(Locale locale, Node node) { 85 return Objects.equals(getDefaultLocale(node), locale); 86 } 87 88 String deriveLocalisedPropertyName(String base, Locale locale); 89 90 List<Locale> getAvailableLocales(Node node); 91 92 Locale getDefaultLocale(Node node); 93 94 /** 95 * @deprecated I18nAuthoringSupport is an instance singleton, and should not be used to sync UI state of a specific user. Since 5.3.9, use {@link info.magnolia.ui.api.app.SubAppContext#getAuthoringLocale() SubAppContext#getAuthoringLocale()}. 96 * @see <a href="https://jira.magnolia-cms.com/browse/MGNLUI-3221">[MGNLUI-3221] All authors share the same authoring locale</a> 97 */ 98 @Deprecated 99 Locale getAuthorLocale(); 100 101 /** 102 * @deprecated since 5.4.2 without a substitute - the i18n-ready components should now take 103 * of switching the language on their own. 104 */ 105 @Deprecated 106 void i18nize(HasComponents fieldContainer, Locale locale); 107 108 /** 109 * @deprecated since 6.0 - use {@link #getAvailableLocales(Node)} (Node)} instead. 110 */ 111 @Deprecated 112 List<Locale> getAvailableLocales(Item item); 113 114 /** 115 * @deprecated since 6.0 - use {@link #getDefaultLocale(Node)} instead. 116 */ 117 @Deprecated 118 Locale getDefaultLocale(Item item); 119 120 /** 121 * @deprecated since 6.0 - use {@link #isDefaultLocale(Locale, Node)} instead. 122 */ 123 @Deprecated 124 boolean isDefaultLocale(Locale locale, Item item); 125 126 /** 127 * @deprecated since 6.0 without explicit replacement, this part of interface is no longer used in the system. 128 */ 129 @Deprecated 130 String createI18NURI(Node node, Locale locale); 131 }