Eric @ EricBess WebHome

Ne gagne pas arrogant, de ne pas perdre la faim, il est choc poitrine et le visage, comme le mien Pinghu

Chinese (Simplified) flagItalian flagKorean flagPortuguese flagEnglish flagGerman flagFrench flagSpanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flagCzech flagCroat flagDanish flagFinnish flagHindi flagPolish flagRumanian flagSwedish flagNorwegian flag
By N2H

PHP usage gettext

Gettext pour la mondialisation du système (I18N) et de localization (L10N), le compilateur peut utiliser le temps de soutenir la langue nationale (Native Language Support (NLS)), le logiciel permet à l'utilisateur de configurer la sortie à utiliser la langue plutôt que l'anglais . Avec d'autres langages de programmation, telles que PHP peut également être utilisé dans le paquet gettext i18n processus d'écriture pour atteindre NLS (Native Language Support) de l'appui international, s'il vous plaît se référer à un des documents officiels http://www.gnu.org/software/gettext/manual/ gettext.html.

La réalisation du processus: les concepteurs dans le logiciel à code écrit dans le spectacle, la course programs pas un intérêt direct message écrit par des programmeurs, et sera la recherche d'un ensemble de la langue des informations sur le fichier. Si vous ne trouvez pas la volonté de montrer le code.

Tout d'abord, pour installer gettext d'ensemble:

1) les systèmes * nix:

下载gettext package,进行安装 1, de http://www.gnu.org/software/gettext/gettext.html télécharger paquet gettext, l'installation
2, compilé PHP en combinaison avec "- with-gettext [= DIR]", qui DIR pour le répertoire d'installation de gettext, pour les paramètres par défaut: / usr / local
3, enregistrer, puis redémarrez le serveur.   


2) WIN32:

1, gnu_gettext.dll besoin de copier des fichiers dans le répertoire suivant système (C: \ WINDOWS \ System32), PHP 4.2.3 est nommé d'après le fichier libintl-1.dll, en php4 \ dlls sous.
2, ouvrir le fichier php.ini et recherchez l'extension = php_gettext.dll, supprimer l'avant ";"
3, enregistrer, puis redémarrez le serveur.

Si tout va bien, peut phpinfo () pour voir les mots gettext, ont depuis lors été mis en place.

Deuxièmement, i18n écrit:

? Afficher le code PHP
 1 
 2 
 3 
 4 
  <? Php 
  / / Procédure conventionnelle 
  ) ; echo "Bonjour tout le monde!"); 
  ?>; 

La suite de la procédure sont i18n: hello.php

? Afficher le code PHP
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
  <? Php 
  / / I18N exemple de la procédure pour démarrer 
  "hello" ; // 定义要用的mo文件名称,常规来说,我们都把PACKAGE的名称定义和程序名称相同。 $ Paquet = "bonjour"; / / utiliser la définition du nom de fichier par mois, conventionnel, nous avons FORFAIT procédures et la définition du nom du même nom. 
  "zh_CN" ; // 指定要用的语系,如:en_US、zh_CN、zh_TW $ Locale = "zh_CN"; / / désigné usage de la langue tels que: fr, zh_CN, zh_TW 

  'LANG=$locale' ) ; putenv ( 'LANG = $ locale'); 
  LC_ALL , $locale ) ; setlocale (LC_ALL, $ locale);  

  $package , './locale' ) ; bindtextdomain ($ paquet, '. / locale'); 
  $package ) ; textdomain ($ paquet);  

  / / Le. Mo fichier cherché est: 
  / /. / Locale / zh_CN / LC_MESSAGES / hello.mo 

  "Hello World!" ) ; echo gettext ( "Bonjour tout le monde!"); 
  ?>; 

Dans IE, tapez: http://localhost/hello.php, comme sortie: "Bonjour à tous!"
Note: en fonction de la GNU paquet à l'intérieur de l'habitude, vous pouvez utiliser pour remplacer _(...) gettext (...), si peu seront en mesure de jouer un grand nombre de gettext.

Troisièmement, mettre en place gettext fichier po:

1, créer une structure de répertoire comme suit:
bindtextdomain la dir
/ Langue
/ LC_MESSAGES
domain.po
domain.mo
Un bindtextdomain la dir pour bindtextdomain () utilisée dans le répertoire, la langue de l'usage de la langue, du nom de domaine pour le package.

Ci-dessus à titre d'exemple:
/ Locale
/ Zh_CN
/ LC_MESSAGES
hello.po
hello.mo

2, créer un fichier PO
xgettext-d [votre définition du nom Package] [nom de fichier]
WIN32 suivant xgettext, msgfmt Program Files de l'(http://sourceforge.net/projects/gettext/) pour télécharger la nécessité libiconv.dll, libintl.dll. Puis poEdit à modifier.

Hello.php fichier à la ci-dessus, par exemple,
$ Xgettext-d bonjour hello.php
Hello.po exécutera un fichier qui se lit comme suit:

? Afficher le code bash
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
  # SOME DESCRIPTIVE TITLE. 
  # Copyright © YEAR Free Software Foundation, Inc 
  # FIRST AUTHOR <<a href="mailto:EMAIL@ADDRESS"> email @ adresse </ a>>, YEAR. 
  # 
  #, Fuzzy 
  msgid "" 
  msgstr "" 
  "Project-Id-Version: PACKAGE VERSION \ n" 
  "POT-Creation-Date: 2003-04-21 22:31 +0800 \ n" 
  "PO-Revision-Date: YEAR-MO-DA HO: MI + ZONE \ n" 
  ADDRESS % 3E\n ">EMAIL@ADDRESS&gt; \n </a>" "Last-Translator: FULL NAME <<a href=" mailto:EMAIL @ ADDRESS% 3E\n "> email @ adresse> \ n </ a>" 
  li.org % 3E\n ">LL@li.org&gt; \n </a>" "Language-Team: LANGUAGE <<a href=" mailto:LL @ li.org% 3E\n "> LL@li.org> \ n </ a>" 
  "MIME-Version: 1.0 \ n" 
  "Content-Type: text / plain; charset = CHARSET \ n" 
  "Content-Transfer-Encoding: 8bit \ n"  

  #: Hello.php: 14 
  msgid "Bonjour tout le monde!" 
  msgstr "dans le monde, bonjour!" 

Hello.php fichier, qui recense tous les appels gettext fonction de la chaîne, lorsque traduit simplement msgid valeur msgstr peut remplir dans la traduction, tels que la traduction en chinois.

3, créer un fichier MO
$ O-Msgfmt hello.mo hello.po
Hello.mo exécutera un fichier binaire.

4, sera la dernière hello.po, hello.mo copie à la langue de l'annuaire peut être.

Enfin: Dans IE, tapez: http://localhost/hello.php, il est maintenant le résultat: «Le monde, bonjour!"

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, moyenne: 5 sur 5)
Loading ... Chargement ...
- S'est félicité de l'avis sur cet article

Connectez-vous liés à

Dans le présent document, les lecteurs sont également préoccupés par le texte suivant:

  • N / A

9 février 2008 Auteur: Eric | Codage | Trackback | 1 commentaire | Email This Post Print This Post | 444 vues

Ajouter un commentaire

Laissez une réponse

Masquer écrire des commentaires
  1. Charles posta le message suivant sur le 2008-05-20 à 9:18 pm.

    Très bonne entrée, vous regardez le cours d'aujourd'hui, si au moins je n'ai obtenir un fichier po, mais, malheureusement, le GT de produits liés à la production de pack de langue, mais aussi une certaine distance. En tout état de cause, ou pour m'aider, je vous remercie ~ ~ ~ :-D

    Répondre