<div class="gmail_quote">2009/12/28 SauZheR <span dir="ltr">&lt;<a href="mailto:sauzher@gmail.com">sauzher@gmail.com</a>&gt;</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&#39; 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(&#39;plone&#39;)</span><br>



<br><span style="font-family:courier new,monospace">testo = ploneMessageFactory(u&#39;published&#39;)</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>&#39;published&#39;</span><span>. Ugualmente se tento di tradurre parole base, come ad esempio &#39;Title&#39;.</span></span></span></blockquote>

<div>in <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">testo</font> hai in effetti <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">u&#39;published&#39;</font>, ma non si tratta di un oggetto unicode: </div>

<div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&gt;&gt;&gt; testo</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">u&#39;published&#39;</font></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&gt;&gt;&gt; type(testo)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&lt;type &#39;zope.i18nmessageid.message.Message&#39;&gt;</font></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&gt;&gt;&gt; testo.domain</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&#39;plone&#39;</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 &quot;translate&quot;:</div>

<div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">translated = self.context.translate(testo, target_language=&#39;it&#39;)</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>