It could be you! Umbraco HQ are hiring and are looking for both talents and senior developers. Wonderful workplace, friendly colleagues and competitive salary.
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.