Localized page types and properties in Optimizely CMS 12
In Optimizely CMS you can name your content types, and properties, using the [ContentType()] and [Display()]-attributes, like this.
[ContentType(DisplayName="Bloggpost")]
public class BlogPostPage : PageData
{
    [CultureSpecific]
    [Display(Name = "Tekstinnhold")]
    public virtual XhtmlString MainBody { get; set; }
    ...
}If you have editors that use different languages, you might want localized content type and property names.
Step 1 – create an xml file for each language
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<languages>
  <language name="norsk" id="no">
    <contenttypes>
      <icontentdata>
        <properties>
          <mainbody>
            <caption>Tekstinnhold</caption>
            <help></help>
          </mainbody>
        </properties>
      </icontentdata>
      <blogpostpage>
        <name>Bloggpost</name>
        <description></description>
      </blogpostpage>
    </contenttypes>
  </language>
</languages>Step 2 – add the following to startup.cs
services.AddEmbeddedLocalization<Startup>();
services.AddLocalizationProvider<FileXmlLocalizationProvider, NameValueCollection>(o =>
{
        o[FileXmlLocalizationProvider.PhysicalPathKey] = "language";
});Set the value  PhysicalPathKey to the path where you keep your XML files.
That's all!
Found this post helpful? Help keep this blog ad-free by buying me a coffee! ☕