| Have you ever heard of Tr8n?
http://github.com/tr8n And specifically Tr8n for RoR:
https://github.com/tr8n/tr8n_rails_clientsdk It is a powerful translation framework, which significantly simplifies the translation process, while improving your code readability. First of all you don't need to deal with resources bundles at all - use English keys right in the code. Tr8n takes care of the rest. <%= tr("Hello World") %> Dynamic data tokens are very easy to work with: <%= tr("Hello {user}", :user => "Michael") %> It fully supports language context rules: <%= tr("You have {count||message}", :count => 10) %>
<%= tr("{user|He, She} likes this", :user => some_user) %>
<%= tr("{users||likes, like} this a lot", :user => some_users) %> It even supports language cases: <%= tr("{actor} likes {target::possessive} message", ...) %> Tr8n uses TML (Translation Markup Language) to define translation keys that now an be shared across all platforms and applications (mobile, web, desktop). TML can easily handle data and decoration tokens within the same key context: <%= tr("You have [bold: {count||message}]", :count => 10, :bold => lambda{|t| "<strong>${t}</strong>"}) %> <%= tr("This is indeed [bold] a very [italic: powerful] framework]",...) %> You can predefine all your lambdas elsewhere and use default data and decorations throughout your app. The same sentence above, since it uses TML instead of hardcoded HTML, will actually produce an NSAttributedString in iOS properly decorated in any language. Tr8n is used in conjunction with Tr8nHub.com where you have access to UTM (Universal Translation Memory) - a huge database of translations used across all applications. You may get fully translated by just connecting to it. Disclosure:
I've been working on Tr8n for the past 4 years, constantly improving it. We are about to launch a new site soon that will make a lot of things much cleaner and easier. The framework is used by companies like Yammer and Geni. I forgot to mention that you get inline translation tools, translation widgets, and a lot more... |
More technically: how does this translate?
>This is indeed [bold] a very [italic: powerful] framework][/bold]
To make a hypothetical worst-case scenario, say one of the target languages combines "this" and "powerful" into a single word, splits "framework" into three, and reorders it so conceptually you flip between bold and italic and plain practically at random. There's (probably) an element of aesthetics combined with the text's meaning, can the crowd detect that aesthetic? What if it varies all over your site because it's sourcing from different crowds?
Similarly, say you refer to "this" thing on the website/app, which is up and a little to the right, but not this other thing to the left. RTL probably switches that, and does "up and a little to the right" have an encoding in TML so that the meaning is retained if a language has a specific word for that?