Per Nergård (MVP)
OMVPSaaS CMS Developer CertificationCommerce Connect 13 Developer Certification +2
Mar 5, 2013
visibility 13459
star star star star star
(1 votes)

EPiServer localization xml files structure

In CMS7 there are a couple of new things that can be localized. I hadn’t had the time to check it out but a question in the forums   about localization of “GroupName” on page types got me curious.

Localization of page types and properties are the same as for earlier versions of EPiServer.

Blocks are new to CMS7. Thomas Krantz blogged about block localization over here but I will include it in the example below just for completeness. The example for blocks in the Alloy demo package ContentTypeNames.xml is incorrect at least in the first production release.

Groups then. The DisplayAttribute.GroupName is localized via heading elements. These headings localizes the tab names in edit mode.

I couldn’t find anything about ContentTypeAttribute.GroupName so I fired up good old reflector. It turned out that you can localize GroupName via specifying groups in the xml file.

I expected this to localize the labels for the different groups of page types  you get when creating a new page. This is not the case. What’s actually localized is the bracketed prefix on the page type when you view them in admin mode. I can’t see much use for this so I’ve checked with the support and they have an existing bug regarding that page type information localization doesn’t work so hopefully this will be fixed soon.

Below is an example lang file for reference.

<?xml version="1.0" encoding="utf-8" ?>
<languages>
 
  <language name="English" id="en">
 
    <!-- Blocks -->
    <blocktypes>
      <blocktype name="PageListBlock">
        <name>Page List</name>
        <description>Blockbeskrivning</description>
      </blocktype>
    </blocktypes>
 
    <!-- Tab headings aka GroupName in Displayattribute for a property-->
    <headings>
      <heading name="Default">
        <description>Default</description>
      </heading>
    </headings>
    
    <pagetypes>
      <!-- PropertyNames -->
      <common>
        <property name="DisableIndexing">
          <caption>Disable indexing</caption>
          <help>Help</help>
        </property>
      </common> 
      
      <!-- Page types -->
      <pagetype name="ArticlePage">
        <name>Article</name>
        <description>Help</description>
      </pagetype>
      
      <!-- Groupname in ContentTypeAttribute-->
      <groups>
        <group name="Test">Prefix</group>
      </groups>
    </pagetypes>
  </language>
 
</languages>
Mar 05, 2013

Comments

Per Nergård (MVP)
Per Nergård (MVP) Apr 23, 2013 01:37 PM

Update: (It seems I can't edit old posts with live writer from another computer so a comment have to be sufficient).

if you wan't to localize propertynames on a per type basis the format is like this. The pagetype element name attribute can be both the name of a pagetype as well as a blocktype.




Caption
HelpText


janaka.podiralahamy
janaka.podiralahamy Nov 18, 2013 05:02 PM

i am able to see my changes on page types but not with blocks. can you help? thanks!

error Please login to comment.
Latest blogs
Optimizely Agent Platform - October 2026 State of Play

Overview A month ago I wrote up my takeaways from Opticon New York ( Opticon New York & The Strategy on Upgrading to CMS 13 & Commerce 15 ). The...

Scott Reed | Oct 5, 2026

Migrating from Search & Navigation (Find) to Optimizely Graph in CMS 13

If you are planning an upgrade to Optimizely CMS 13, one of the biggest

Adnan Zameer | Oct 5, 2026 |

So you've decided to move to .NET 10 (but stay on CMS 12)

Ok, "decided" is a strong word. Microsoft decided for us. .NET 8 and .NET 9 both reach end of support on November 10, 2026 , and if you're on CMS 1...

KennyG | Oct 2, 2026

From robots.txt to GEO Analytics: A Year On

In September 2025, I wrote about updating

Adnan Zameer | Oct 2, 2026 |