Blog Sections Open

Using Language-Specific TV Names in Multilingual Evolution CMS Projects

How to work with language-specific TV fields such as `tvname_ru` and `tvname_en` in a multilingual Evolution CMS project.

Not every multilingual Evolution CMS project needs a full translation framework for every field. Sometimes the simplest working pattern is to store separate TVs for each language, such as tvname_ru and tvname_en, and resolve the right one from the current language context.

The natural temptation is to try something like:

[[*tvname_[[+lang]]]]

But nested dynamic field resolution can quickly become fragile, especially once routing, language prefixes, and parser timing enter the picture.

The durable lesson from this kind of setup is to make the language decision explicit. Decide where the active language lives, map that value cleanly to the correct TV name, and only then output the content. If the site has clear /ru/ and /en/ segments, use that structure to drive the selection logic instead of trying to make the template guess too much on its own.

This approach is not as elegant as a fully abstract localization layer, but it is practical, transparent, and often easier to maintain on real-world multilingual Evolution builds.

Newer post

Filtering Ditto Listings with AJAX Category Selection in Evolution CMS

How to reload Ditto results through AJAX when the visitor changes a category selector, and what to watch for with pagination.

Older post

Working with `documentObject` and TV Output Through the Evolution CMS API

A practical guide to reading core document fields and TV values through the Evolution API without losing track of where the data lives.