User Tools

Site Tools


doc:appunti:prog:gettext

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:appunti:prog:gettext [2012/06/08 17:03]
niccolo
doc:appunti:prog:gettext [2018/12/04 11:32] (current)
niccolo [gettext con PHP]
Line 18: Line 18:
 </​code>​ </​code>​
  
-====== Compilazione del file .mo ======+====== Compilazione ​e decompilazione ​del file .mo ====== 
 + 
 +Installare il pacchetto Debian **gettext**.
  
 Se si esegue la traduzione con un client tipo **''​poedit''​**,​ al momento del salvataggio del file **''​.po''​** viene creata anche la versione compilata **''​.mo''​**. In ogni caso la versione compilata può essere generata nuovamente con: Se si esegue la traduzione con un client tipo **''​poedit''​**,​ al momento del salvataggio del file **''​.po''​** viene creata anche la versione compilata **''​.mo''​**. In ogni caso la versione compilata può essere generata nuovamente con:
Line 26: Line 28:
 </​code>​ </​code>​
  
 +Se è necessario è possibile **decompilare** il file **''​.mo''​** con:
 +
 +<​code>​
 +msgunfmt default.mo > default.po
 +</​code>​
 ====== gettext con PHP ====== ====== gettext con PHP ======
  
-Per utilizzare le funzioni **''​gettext()''​** con il PHP bisogna inizializzare l'​ambiente con le seguenti istruzioni (per comodità sono state raggruppate in una funzione ''​my_setlocale()'':​+Per utilizzare le funzioni **''​gettext()''​** con il PHP bisogna inizializzare l'​ambiente con le seguenti istruzioni (per comodità sono state raggruppate in una funzione ''​my_setlocale()'' ​e il locale viene salvato in una variabile di sessione):
  
 <code php> <code php>
Line 48: Line 55:
 │     ​│ ​ └─ LC_MESSAGES │     ​│ ​ └─ LC_MESSAGES
 </​code>​ </​code>​
 +
 +In ciascuna directory ''​LC_MESSAGES''​ deve trovarsi il file **''​default.po''​** e **''​default.mo''​**.
  
 Inoltre ricordarsi di: Inoltre ricordarsi di:
  
   - Creare i locale necessari con **''​dpkg-reconfigure locales''​**.   - Creare i locale necessari con **''​dpkg-reconfigure locales''​**.
-  - Se si sono aggiornati i locale disponibili,​ riavviare Apache.+  - Se si sono **aggiornati i locale** disponibili,​ riavviare Apache
 +  - Se si è **modificato un file ''​.mo''​**,​ riavviare Apache (PHP tiene in cache qualcosa!). 
 +  - Nel caso in cui il server sia **Nginx** con **php5-fpm** in modalità **FastCGI socket**, può essere necessario riavviare il servizio **php5-fpm** invece di nginx. 
 +  - In alcuni casi la funzione setlocale() vuole la sigla comprensiva di encoding, ad esempio per il cinese semplificato è necessario usare **''​zh_CN.UTF-8''​**.
doc/appunti/prog/gettext.1339167791.txt.gz · Last modified: 2012/06/08 17:03 by niccolo