Index: magnolia-core/src/main/java/info/magnolia/cms/i18n/DefaultI18nContentSupport.java =================================================================== --- magnolia-core/src/main/java/info/magnolia/cms/i18n/DefaultI18nContentSupport.java (revision 15119) +++ magnolia-core/src/main/java/info/magnolia/cms/i18n/DefaultI18nContentSupport.java (working copy) @@ -71,13 +71,16 @@ * The active locales */ private Map locales = new HashMap(); + + private Locale currentLocale = fallbackLocale; public Locale getLocale() { - return MgnlContext.getAggregationState().getLocale(); + return currentLocale; } public void setLocale(Locale locale) { MgnlContext.getAggregationState().setLocale(locale); + currentLocale = locale; } public Locale getFallbackLocale() { Index: magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupport.java =================================================================== --- magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupport.java (revision 15119) +++ magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupport.java (working copy) @@ -38,6 +38,7 @@ import info.magnolia.cms.core.Content; import info.magnolia.cms.core.NodeData; +import java.util.Collection; import javax.jcr.RepositoryException; @@ -86,5 +87,22 @@ * Returns the NodeData object based on the current language. */ public NodeData getNodeData(Content node, String name); + + /** + * Is the i18n content support enabled + * @return + */ + public boolean isEnabled(); + /** + * + * @param enabled + */ + public void setEnabled(boolean enabled); + + public Collection getLocales(); + + public void addLocale(LocaleDefinition ld); + + } Index: magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupportFilter.java =================================================================== --- magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupportFilter.java (revision 15119) +++ magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupportFilter.java (working copy) @@ -54,6 +54,11 @@ public class I18nContentSupportFilter extends AbstractMgnlFilter { public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { + + if(!isURIFilterable()){ + chain.doFilter(request, response); + } + I18nContentSupport i18nSupport = I18nContentSupportFactory.getI18nSupport(); final Locale locale = i18nSupport.determineLocale(); @@ -68,4 +73,9 @@ chain.doFilter(request, response); } + + private boolean isURIFilterable(){ + String i18nURI = MgnlContext.getAggregationState().getCurrentURI(); + return !i18nURI.contains("/.") && i18nURI.endsWith(".html"); + } } Index: magnolia-gui/src/main/java/info/magnolia/cms/gui/dialog/DialogControlImpl.java =================================================================== --- magnolia-gui/src/main/java/info/magnolia/cms/gui/dialog/DialogControlImpl.java (revision 15119) +++ magnolia-gui/src/main/java/info/magnolia/cms/gui/dialog/DialogControlImpl.java (working copy) @@ -36,6 +36,8 @@ import info.magnolia.cms.core.Content; import info.magnolia.cms.core.ItemType; import info.magnolia.cms.core.NodeData; +import info.magnolia.cms.i18n.I18nContentSupport; +import info.magnolia.cms.i18n.I18nContentSupportFactory; import info.magnolia.cms.i18n.Messages; import info.magnolia.cms.i18n.MessagesUtil; import info.magnolia.cms.i18n.TemplateMessagesUtil; @@ -500,6 +502,16 @@ config.put("name", configNodeParent.getName()); } + I18nContentSupport i18ns = + (I18nContentSupport) I18nContentSupportFactory.getI18nSupport(); + if (i18ns.isEnabled()) { + if (!i18ns.getLocale().equals(i18ns.getFallbackLocale())) { + String name = (String) config.get("name"); + name += "_" + i18ns.getLocale(); + config.put("name", name); + } + } + this.config = config; Iterator it = configNodeParent.getChildren(ItemType.CONTENTNODE).iterator();