Send multilingual content to Graph
How to configure Optimizely Optimizely Content Management System (CMS) 12 and sync multilingual content with Optimizely Graph.
Optimizely Graph supports multilingual content by integrating directly with Optimizely Content Management System (CMS) 12. Learn how to configure CMS 12 for multiple languages and how Optimizely Graph handles language-specific content syncing and indexing.
Configure CMS 12 for multi-language
Optimizely CMS 12 uses standard globalization settings to enable multi-language support. Learn how to Configure CMS 12 to send content.
Optimizely Graph automatically detects enabled languages from your CMS 12 configuration, so you do not need to configure Graph separately.
The following example shows how to configure language support and define a multilingual content type. The content type supports localization by implementing ILocalizable. You can translate each field into each language, including SEO-specific fields:
// Configure languages in Startup.cs or Program.cs
services.Configure<QueryOptions>(options =>
{
// Language configuration is handled through CMS globalization settings
// Content Graph will automatically detect enabled languages from CMS
});
// Language-specific content types
[ContentType(DisplayName = "Multilingual Article")]
public class MultilingualArticle : PageData, ILocalizable
{
[Display(Name = "Title")]
public virtual string Title { get; set; }
[Display(Name = "Content")]
public virtual XhtmlString Content { get; set; }
[Display(Name = "Meta Description")]
public virtual string MetaDescription { get; set; }
// Language-specific SEO fields
[Display(Name = "SEO Keywords")]
public virtual string SeoKeywords { get; set; }
}Sync content
Optimizely Graph automatically manages multilingual content when you create or update it in CMS 12. It performs the following actions:
- Indexes each language version separately using language-specific analyzers.
- Maintains language metadata for accurate querying and filtering.
- Applies language-specific text processing for better search performance.
- Creates fallback relationships based on CMS language configuration (for CMS 13 and SaaS CMS)
The following example shows how to publish content in English and Spanish using the CMS API:
// Example: Content publishing in multiple languages
var englishArticle = contentRepository.GetDefault<MultilingualArticle>(parentLink);
englishArticle.Language = CultureInfo.GetCultureInfo("en");
englishArticle.Title = "Understanding Machine Learning";
englishArticle.Content = new XhtmlString("<p>Machine learning is...</p>");
var spanishArticle = englishArticle.CreateWritableClone() as MultilingualArticle;
spanishArticle.Language = CultureInfo.GetCultureInfo("es");
spanishArticle.Title = "Entendiendo el Aprendizaje Automático";
spanishArticle.Content = new XhtmlString("<p>El aprendizaje automático es...</p>");
contentRepository.Save(englishArticle, SaveAction.Publish);
contentRepository.Save(spanishArticle, SaveAction.Publish);Each version is stored and indexed independently, enabling Optimizely Graph to serve localized content based on user preferences or query parameters.
Updated 12 days ago
