Send multilingual content to Graph
How to configure Optimizely CMS and synchronize multilingual content with Optimizely Graph.
Optimizely Graph supports multilingual content by integrating directly with Optimizely CMS 12. This guide outlines how to configure your CMS for multiple languages and how Optimizely Graph handles synchronization and indexing of language-specific content.
CMS configuration for multi-language
Optimizely CMS 12 uses standard globalization settings to enable multi-language support. 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 the CMS 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. Each field can be translated 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; }
}Content synchronization
Optimizely Graph automatically manages multilingual content when you create or update it in CMS. 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 CMS13 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 1 day ago
