Index: magnolia-core/src/main/java/info/magnolia/cms/i18n/AbstractI18nContentSupport.java =================================================================== --- magnolia-core/src/main/java/info/magnolia/cms/i18n/AbstractI18nContentSupport.java (revision 18407) +++ magnolia-core/src/main/java/info/magnolia/cms/i18n/AbstractI18nContentSupport.java (working copy) @@ -65,6 +65,8 @@ */ private Locale fallbackLocale = new Locale("en"); + private Locale currentLocale = fallbackLocale; + private boolean enabled = false; /** @@ -73,11 +75,12 @@ private Map locales = new HashMap(); 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 18407) +++ magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupport.java (working copy) @@ -87,4 +87,11 @@ */ public NodeData getNodeData(Content node, String name); + /** + * Is the i18n content support enabled + * @return + */ + public boolean isEnabled(); + + } Index: magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupportFilter.java =================================================================== --- magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupportFilter.java (revision 18407) +++ magnolia-core/src/main/java/info/magnolia/cms/i18n/I18nContentSupportFilter.java (working copy) @@ -55,8 +55,13 @@ public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { I18nContentSupport i18nSupport = I18nContentSupportFactory.getI18nSupport(); - if(i18nSupport != null){ + if (i18nSupport != null) { + if (!isURIFilterable()) { + chain.doFilter(request, response); + return; + } + final Locale locale = i18nSupport.determineLocale(); i18nSupport.setLocale(locale); @@ -70,4 +75,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 18407) +++ 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; @@ -496,12 +498,23 @@ } config.put("handle", configNodeParent.getHandle()); - + // name is usually mandatory, use node name if a name property is not set if (!config.containsKey("name")) { 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();