65 votes


Vorto is a property editor wrapper (meaning it wraps any existing property editor) and converts it into a multilingual property by allowing you to enter multiple values per language enabled on the site. Ultimately, it's THE property editor for doing 1:1 translations in Umbraco.

How to use
After installing Vorto, you'll want to create a series of vorto wrapped data types so in the data types tree, create a new data type, choose Vorto and then choose the data type you want to wrap from Vortos prevalue. You can also provide Vorto with an xpath statement for where it should look for nodes with cultures defined, this is really handy if you have multiple multilingual sites in one install, Vorto can make sure that each site only provides translation services for languages it supports. Lastly, you can also decide whether you want to show the language names in their native form.

Once you have a bunch of Vorto wrapped data types defined, set up the properties on your doc type as normal, then in the content editor, Vorto will automatically wrap all your properties with a little mulilingual menu allowing you to switch languages (you can even pin languages as tabs for easy flicking between content during translation, and you can syncronise all properies on an editor so that when you change language on one property, it flicks all properties over to the same language).

To retrieve the values, Vorto comes with a few handy IPublishedContent extension methods (sorry, no dynamics support yet) namly HasVortoValue and GetVortoValue. These can be used as direct replacements to the built in HasValue and GetPropertyValue methods that come with Umbraco (if the value you are after isn't a Vorto value, it defaults back to the Umbraco implementation).

The signatures to these methods are very similar to the built in Umbraco ones, with the addition of a new parameter cultureName, which allows you to choose which translation of the value you want to return. Of course, if you don't provide a cultureName, the current sites culture will be used by default.

Version History

  • 1.0
    - Initial release
  • 1.1 
    - Added "Language Source" prevalue to allow choosing between "installed" and "in use" languages as the language source.
    - Fixed issue with data not serializing correctly when saving to / restoring from database
  • 1.2
    - Trigger FilterLanguages event when returning languages to allow custom filtering of languages
  • 1.3
    - Added ability to hide label (PR Jeavon)
    - Added deep watching for complex nested property editors (PR David Thibault)
    - Added mandatory field support
  • 1.4
    - Added fallback culture support to HasVortoValue and GetVortoValue
    - Added media section support for vorto values (XPath language lookup doesn't work here)
    - Overhalled "sync" feature which is now on by default, and syncs tabs + active tab aswell. All synced tabs + active tabs are now persisted between page loads.
  • 1.5
    - Added experimental RTL support
    - Performance boost for complex properties by using ng-if
    - Major updates to how values are retrieved so should support more property editors
    - Setup appveyor for auto build / deploy, including MyGet feed
    - Many other bug fixes / enhancements
  • 1.5.1
    - Bug fix of null refrence exception
    - Bug fix of value conversion occuring in the wrong order
  • 1.5.2
    - Fixed issue #43 Conversion error - improper data in DB
    - Fixed issue #44 recursive:true throws Exception
  • 1.5.3
    - Fixed issue #55 Convert data to source does not support preview (PR #56)
    - Fixed issue #67 Change from one property editor to vorto breaks vorto (PR #68)
    - PR #61 Make possible to run in virtual directory
    - Made VortoValue public
    - Added fix for vorto inside nested content not getting property alias correctly
  • 1.6
    - PR #72  Adds tick marks against completed languages so you can tell when a value needs filling in
    - PR #90 Adds XML comments to make the API more friendly
    - Many bug fixes


Package owner

Matt Brailsford

Matt Brailsford

Matt has 9562 karma points

Package Compatibility

This package is compatible with the following versions as reported by community members who have downloaded this package:
Works on Umbraco Cloud
8.0.x (untested)
7.12.x (100%)
7.11.x (100%)
7.10.x (100%)
7.9.x (untested)
7.8.x (100%)
7.7.x (100%)
7.6.x (100%)
7.5.x (100%)
7.4.x (75%)
7.3.x (86%)
7.2.x (100%)
7.1.x (100%)
7.0.x (100%)
6.1.x (untested)
6.0.x (untested)

You must login before you can report on package compatibility.

Package Information

  • Package owner: Matt Brailsford
  • Created: 10/04/2014
  • Current version 1.6
  • .net Version 4.0,4.5.2
  • License MIT
  • Downloads: 9738