<div class="gmail_quote">2009/12/28 SauZheR <span dir="ltr"><<a href="mailto:sauzher@gmail.com">sauzher@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Salve.<br>Paster ci crea un messageFactory locale. Io ho bisogno talvolta di agganciarmi al motore di traduzione nativo di plone e sfruttare i suoi .po<br>Ho tentato la strada seguente ma il codice riportato non traduce come mi aspettavo. Qualcuno mi sa dire perche' e dove sbaglio?<br>
<br><span style="font-family:courier new,monospace">from zope.i18nmessageid import MessageFactory</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"><br>ploneMessageFactory = MessageFactory('plone')</span><br>
<br><span style="font-family:courier new,monospace">testo = ploneMessageFactory(u'published')</span><br><span><span><span></span><span><br><font face="arial,helvetica,sans-serif">in testo ho </font></span></span></span><span><span><span>u</span><span>'published'</span><span>. Ugualmente se tento di tradurre parole base, come ad esempio 'Title'.</span></span></span></blockquote>
<div>in <font class="Apple-style-span" face="'courier new', monospace">testo</font> hai in effetti <font class="Apple-style-span" face="'courier new', monospace">u'published'</font>, ma non si tratta di un oggetto unicode: </div>
<div><div><font class="Apple-style-span" face="'courier new', monospace">>>> testo</font></div><div><font class="Apple-style-span" face="'courier new', monospace">u'published'</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">>>> type(testo)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><type 'zope.i18nmessageid.message.Message'></font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">>>> testo.domain</font></div><div><font class="Apple-style-span" face="'courier new', monospace">'plone'</font></div><div>
ma di una stringa traducibile: porta con sé il messaggio e il domain per la traduzione.</div><div>Se fai uscire la stringa in un page template verrà tradotta, ma se la vuoi tradotta nel codice puoi usare lo script python "translate":</div>
<div><div><font class="Apple-style-span" face="'courier new', monospace">translated = self.context.translate(testo, target_language='it')</font></div><div>cfr <a href="http://plone.org/documentation/manual/developer-manual/internationalization-i18n-and-localization-l10n/translating-text-in-code/manually-translating-messages">http://plone.org/documentation/manual/developer-manual/internationalization-i18n-and-localization-l10n/translating-text-in-code/manually-translating-messages</a></div>
<div>ma Mikko sta portando tutto su <a href="http://plonemanual.twinapex.fi/">http://plonemanual.twinapex.fi/</a></div><div><a href="http://plonemanual.twinapex.fi/i18n/localization.html#manually-translated-message-ids">http://plonemanual.twinapex.fi/i18n/localization.html#manually-translated-message-ids</a></div>
<div><br></div></div></div><div> Silvio</div></div>