• php gettext


     
    安装gettext:
    ubuntu: apt-get install php-gettext, apt-get install gettext
    window:开启扩展


    修改locale :
    $ /usr/share/i18n/locales //查看支持的语言
    $ vi /etc/locale.gen //开启语言
    $ locale-gen //是新设置的locale 生效
    $ locale -a 查看目前支持的语言
    example:
    
    test.php:
    <?php
      str='home';
    xgettext -a test.php -o test.pot
    exportLANG=zh_CN.utf8
    msginit -l zh_CN.utf8 -i test.pot
    生成了相应的zh_CN.po文件


    将这两个文件,移动到对应的文件夹中
    var/www/test/locale/LC_MESSAGES
    index.php
    
     1 $lang = 'tw';
     2 putenv('LANG=zh_TW');
     3 setlocale(LC_ALL, 'zh_TW');
     4 
     5 $lang = isset($_GET['lang']) ? $_GET['lang'] : 'tw';
     6 
     7 if ('tw' == $lang) {
     8     putenv('LANG=zh_TW');
     9     setlocale(LC_ALL, 'zh_TW'); // bsd use zh_TW.UTF-8
    10 } else if ('cn' == $lang) {
    11     putenv('LANG=zh_CN');
    12     setlocale(LC_ALL, 'zh_CN'); // bsd use zh_CN.UTF-8
    13 } else if ('en' == $lang) {
    14     putenv('LANG=en_US');
    15     setlocale(LC_ALL, 'en_US');
    16 }
    17 
    18 define('PACKAGE', 'hello'); // package其实是.mo文件的文件名称,比如是zj.mo那么我们写的时候只需要些(PACKAGE:zj)
    19 
    20 // gettext setting
    21 bindtextdomain(PACKAGE, 'locale'); // or $your_path/locale, ex: /var/www/test/locale
    22 textdomain(PACKAGE);//sets default domain ××我在这里栽了一个跟头,.mo的文件名称要和项目包的名称一样,这样才可以,
    23 
    24 
    25 // main program
    26 echo gettext("Hello World!");
    27 echo '<br>';
    28 echo _("This is book.");
    29 echo '<br>';
    30 echo _("Hello World!");
    1、string gettext ( string $message )
      looks up a message in the current domain
    2、bool putenv ( string $setting )
    Setting certain environment variables may be a potential security breach
    3、string setlocale ( int $category , string $locale [, string $... ] )
    string setlocale ( int $category , array $locale ) set locale information

      
  • 相关阅读:
    原型模式
    哈希表原理
    Pow共识算法
    C++虚函数的工作原理
    TCP三次握手与四次分手
    TCP重置报文段及RST常见场景分析
    Ping、Traceroute工作原理
    ARP协议
    Rust生命周期bound用于泛型的引用
    Linux下core dump
  • 原文地址:https://www.cnblogs.com/zhangjun516/p/3140439.html
Copyright © 2020-2023  润新知