I think there are a few possibilities. First, your MultiT function could 
work, but you'd have to use str(T(text)) instead of T(text). The reason is 
that T() returns a lazyT object, not the translated string (it isn't 
translated until rendering). You can force the translation by calling the 
lazyT.__str__ method via str(T(text)).
 
Another option is to define your own T() objects for each language and force 
them to use the specific language. For example:
 
In a model file:
from gluon.languages import translator
enT=translator(request)
enT.force('en-en')
esT=translator(request)
esT.force('es-es')
 
In a view:
{{=esT('House')}} / {{=enT('House')}}
 
 
It would probably be easy to abstract the above by defining a class that 
stores multiple T objects and lets you easily add additional ones.
 
A third option might be to create a special multi-language translation file. 
For example, you could create a file called es-en.py, which could include 
translations such as:
 
'House': 'Casa / House'
 
 
Hope that helps.
 
Anthony
 

On Wednesday, July 13, 2011 1:22:23 PM UTC-4, demetrio wrote:

> Hi everyone, i don't know if "Simultaneous multi-language system" is 
> the correct way to say what i need... i'll explain myself. 
>
> I'm developing an application that by request of our customer, needs 
> to have 2 languages at the same time. For example, if this app were in 
> spanish and english, in the navigator should appear something like: 
>
> Casa / House 
>
> In the view we want to do something like this 
>
> {{=T("House", "es-es")}} / {{=T("House", "en-en")}} 
>
> But i don't know if web2py can permit to do this or something like 
> that. 
>
> I was thinking of writing a function like this: 
>
> def MultiT(text,separator=" / "): 
>     T.force("es-es") 
>     ret_text = T(text) 
>     T.force("en-en") 
>     ret_text += separator + T(text) 
>     return ret_text 
>
> But it does not work. Also, do not know how this affects the system 
> when updating the language files with the strings to translate (now 
> the files are updated automatically when pressing the "update 
> languages" button in admin, and I guess that it would make it on run 
> time. 
>
> Any sugestions? 
>
> Best regards 
> Daniel

Reply via email to