<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog ad Improbabilità Infinita &#187; lingua</title>
	<atom:link href="http://www.jhack.it/blog/tag/lingua/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jhack.it/blog</link>
	<description>L&#039;unico blog che può trasformarvi in una balena o in un vaso di petunie</description>
	<lastBuildDate>Sat, 04 Feb 2012 15:29:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>WordPress - Localizzazione Parziale</title>
		<link>http://www.jhack.it/blog/2008/08/13/wordpress-localizzazione-parziale/</link>
		<comments>http://www.jhack.it/blog/2008/08/13/wordpress-localizzazione-parziale/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 13:03:50 +0000</pubDate>
		<dc:creator>Jhack</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[Jhack Educational]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[internazionalizzazione]]></category>
		<category><![CDATA[lingua]]></category>
		<category><![CDATA[localizzazione]]></category>
		<category><![CDATA[mo]]></category>
		<category><![CDATA[personalizzazione]]></category>
		<category><![CDATA[po]]></category>
		<category><![CDATA[poedit]]></category>
		<category><![CDATA[pot]]></category>
		<category><![CDATA[traduzione]]></category>

		<guid isPermaLink="false">http://www.jhack.it/blog/?p=482</guid>
		<description><![CDATA[Differentemente rispetto alla versione precedente di questo blog, ho deciso di rendere finalmente uniforme l'interfaccia per quanto riguarda la lingua: prima la maggior parte delle parole erano in italiano, ma si potevano trovare frasi come "Posted on October 10th, 2007 by Jhack", "Select category" o simili. La "localizzazione" o "internazionalizzazione" è appunto l'atto di rendere <a href="http://www.jhack.it/blog/2008/08/13/wordpress-localizzazione-parziale/#more-482" class="more-link">Continue reading &#8594;</a>
Related posts:<ol>
<li><a href='http://www.jhack.it/blog/2008/08/05/wordpress-26-disabilitare-le-revisioni/' rel='bookmark' title='WordPress 2.6 - Disabilitare le Revisioni'>WordPress 2.6 - Disabilitare le Revisioni</a> <small>Nella versione 2.6 di WordPress hanno pensato bene di aggiungere...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Differentemente rispetto alla versione precedente di questo blog, ho deciso di rendere finalmente uniforme l'interfaccia per quanto riguarda la <strong>lingua</strong>: prima la maggior parte delle parole erano in italiano, ma si potevano trovare frasi come "<em>Posted on October 10th, 2007 by Jhack</em>", "<em>Select category</em>" o simili. La "<strong>localizzazione</strong>" o "<strong>internazionalizzazione</strong>" è appunto l'atto di rendere un prodotto conforme alla lingua o ad altri aspetti culturali degli utenti che  ne fanno utilizzo, in questo caso degli italiani, ma è ovviamente estendibile a qualsiasi altra lingua.</p>
<p style="text-align: justify;">Localizzare completamente l'interfaccia di <strong>WordPress</strong> in un'altra lingua è decisamente semplice, visto che è spiegato un po' <a href="http://codex.wordpress.org/WordPress_in_Your_Language">ovunque</a> (anche nel seguito di questo post) e consiste nell'aggiungere un riga in un file e copiarne un altro in una directory, o, più semplicemente, installare una versione già modificata di WordPress nella propria lingua. Tuttavia, quello che volevo ottenere era solo la traduzione dell'interfaccia che si presenta a voi utenti, lasciando tutta la parte amministrativa in inglese, <em>che è meglio</em>, come direbbe il <strong>Puffo Quattrocchi</strong>!</p>
<p style="text-align: center;"><span id="more-482"></span></p>
<p style="text-align: justify;">Come fare ciò e dove procurarsi gli strumenti non è particolarmente chiarissimo, quindi mi accingo a descrivervi cosa dovete fare.</p>
<p style="text-align: justify;">Prima, però, può essere utile una premessa riguardo ai file che andremo a maneggiare, perché difficilmente ne avrete già sentito parlare. Il framework utilizzato da WordPress per l'internazionalizzazione dell'interfaccia è <strong><a href="http://en.wikipedia.org/wiki/Gettext">gettext</a></strong>, un software ampiamente diffuso per la scrittura di programmi multilingua. Opportunamente <strong>marcati</strong> con una sintassi riconosciuta da <strong>gettext</strong> i programmi da tradurre, processandoli con il comando <strong><tt>xgettext</tt></strong>, si ottiene un file con estensione <strong>POT</strong> (<em>Portable Object Template</em>) che non è altro che un lungo elenco di blocchi del tipo:</p>
<blockquote>
<p style="text-align: justify;">#: wp-includes/widgets.php:726<br />
msgid "Select Category"<br />
msgstr ""</p></blockquote>
<p style="text-align: justify;">dove la prima riga indica il file e la riga in cui è presente l'identificativo della stringa da tradurre, la seconda l'identificativo stesso, e la terza è lasciata naturalmente vuota per la traduzione. Un'istanza di quel template è un file <strong>PO</strong> (<em>Portable Object</em>), che è sostanzialmente uguale al template per quanto ci riguarda (il comando per ottenerlo è "<em>msginit --locale=it --input=nome.pot</em>", dove "<em>it</em>" indica la lingua di destinazione, ma può essere qualsiasi stringa). Tramite un editor testuale o grafico è sufficiente specificare le frasi da tradurre, ottenendo qualcosa come:</p>
<blockquote>
<p style="text-align: justify;">#: wp-includes/widgets.php:726<br />
msgid "Select Category"<br />
msgstr "Scegli una Categoria"</p></blockquote>
<p style="text-align: justify;">Con il comando "<em>msgfmt nome.po</em>"  o tramite un editor grafico si ottiene un file <strong>MO</strong> (<em>Message Object</em>), che, a differenza dei precedenti, è un file binario e, pertanto, in generale non è portabile su architetture diverse, quindi deve essere generato appositamente per l'architettura di destinazione. Non vi riporto l'output di questo file per ovvi motivi <img src='http://www.jhack.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p style="text-align: justify;">Veniamo ora alla ricetta da seguire pedissequamente per ottenere risultati sensati:</p>
<ol>
<li>innanzitutto, è il caso di procurarsi un editor visuale, a meno che non siate masochisti e vogliate fare tutto a mano; da quel che ho visto in giro, quello maggiormente utilizzato è <a href="http://www.poedit.net/">Poedit</a>, disponibile per i sistemi operativi più diffusi;</li>
<li>poi ci serve una copia vergine del POT di WordPress (<em>wordpress.pot</em>), che si può trovare nelle versioni <a href="http://svn.automattic.com/wordpress-i18n/pot/tags/">stabile</a> (scegliete quello che corrisponde alla vostra versione di WordPress) o di <a href="http://svn.automattic.com/wordpress-i18n/pot/trunk/">sviluppo</a>;</li>
<li>a questo punto aprite il file <em>wordpress.pot</em> con Poedit e selezionate dal menu "<em>Catalog -&gt; Settings...</em>" ottenendo una finestra di dialogo che permette di specificare informazioni riguardanti la traduzione che volete eseguire. L'unico campo strettamente necessario da specificare è "<strong>Plural forms</strong>", nel quale dovete inserire, per una traduzione italiana, "<strong>nplurals=2; plural=(n != 1);</strong>" (senza virgolette, magari); quella stringa non vuol dire altro che "<em>ci sono due forme ed il plurale va utilizzato solo quando la quantità è diversa da 1</em>"; se siete particolarmente curiosi, potete leggere, ad esempio <a href="http://drupal.org/node/17564">questa pagina</a>, dove scoprirete formule apparentemente bizzarre che descrivono le forme plurali in altre lingue; vi consiglio anche di impostare i campi "<strong>Charset</strong>" e "<strong>Source code charset</strong>" a "<strong>utf-8</strong>", lasciando gli altri al vostro buon senso; fatto ciò, salvatelo tramite "<em>File -&gt; Save as...</em>" con estensione <strong>PO</strong> (ad es., <em>jWordpress.po</em>), ottenendo incidentalmente anche la versione con estensione <strong>MO</strong> (<em>jWordpress.mo</em>) e dimenticatevi del <strong>POT</strong>, non serve più;</li>
<li>utilizzando l'interfaccia grafica, identificate tramite la funzionalità di ricerca ("<em>Edit -&gt; Find...</em>") le frasi che vi interessano e traducetele, stando attenti a mantenere i marcatori delle parti variabili del testo; ad esempio, se vi trovate a tradurre "<em>%s hour</em>", l'interfaccia grafica vi proporrà le due forme, singolare e plurale, da aggiungere rispettivamente come "<em>%s ora</em>" e "<em>%s ore</em>" nei rispettivi campi; per quanto riguarda la traduzione di date ed ore (ad. es., Y/m/d in italiano è d/m/Y), vi rimando a <a href="http://www.php.net/date">questa pagina</a>, in cui sono spiegate le notazioni utilizzate; una volta tradotto quello che vi interessa, salvate il file;</li>
<li>come ultimo punto, dovete spiegare a WordPress che volete utilizzare un'altra lingua e per fare ciò:
<ol>
<li>copiate i file <em>jWordpress.po</em> e <em>jWordpress.mo</em> nella directory <em>wp-includes/languages</em>/ (se non c'è, createla!);</li>
<li>specificate nel file <em>wp-config.php</em> la stringa "<strong>define('WPLANG', 'jWordpress');</strong>", dove il valore "<strong>jWordpress</strong>" deve corrispondere al nome del file con estensione MO contenuto nella directory <em>wp-includes/languages</em>.</li>
</ol>
</li>
</ol>
<p>Se qualche passaggio è oscuro, ci sono apposta i commenti per chiedere chiarimenti.</p>
<p>Related posts:<ol>
<li><a href='http://www.jhack.it/blog/2008/08/05/wordpress-26-disabilitare-le-revisioni/' rel='bookmark' title='WordPress 2.6 - Disabilitare le Revisioni'>WordPress 2.6 - Disabilitare le Revisioni</a> <small>Nella versione 2.6 di WordPress hanno pensato bene di aggiungere...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.jhack.it/blog/2008/08/13/wordpress-localizzazione-parziale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

