<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 1. 支持 linux 與 windows 1. 除C語言外, GNU gettext還支持C++,Objective-C,Pascal/Object Pascal,sh腳本,bash腳本,Python,GNU CLISP,Emacs Lisp,librep,GNU Smalltalk,Java,GNU awk,wxWidgets(通過wxLocale類),YCP(YaST2語言),Tcl,Perl,PHP,Pike,Ruby以及R。用法均與在C語言上類似 1. wordpress的國際化就是用的GNU gettext ### 大致原理 1. GNU gettext使用PO或MO文件來實現國際化和本地化 2. PO的意思是Portable Object,是一種文本結構,可以方便的由人們閱讀和修改 3. PO的意思是Portable Object,是一種文本結構,可以方便的由人們閱讀和修改 4. 一個程序要支持多種語言,每一種語言都需要自己 的PO或MO文件 ![UTOOLS1596544492132.png](https://img03.sogoucdn.com/app/a/100520146/0d42b4e557e1954b4bf20d1100a4430a) ## php 開啟模塊 `;extension=php_gettext.dll` ### 提取字符可手動也可通過 xgettext ## 示例 ### xgettext 提取 <details> <summary>home.php</summary> ``` $str = 'home'; print <<<html <a href="#">{$str}</a> ``` </details> <br /> xgettext 提取 home.php `xgettext -a home.php -o home.pot` 生成的 home.pot <details> <summary>home.pot</summary> ``` # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <email@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-07-23 20:56+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <email@ADDRESS>\n" "Language-Team: LANGUAGE <ll@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: home.php:2 msgid "home" msgstr "" ``` </details> <br /> 生成 home.pot 文件 ``` > echo $LANG zh_CN.UTF-8 > msginit -l zh_CN.UTF-8 -i home.pot ``` <details> <summary>home.pot</summary> ``` # Chinese translations for PACKAGE package # PACKAGE 軟件包的簡體中文翻譯. # Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # <huixinchen@localhost.localdomain>, 2009. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-07-23 20:56+0800\n" "PO-Revision-Date: 2009-07-23 21:00+0800\n" "Last-Translator: <huixinchen@localhost.localdomain>\n" "Language-Team: Chinese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=GB2312\n" "Content-Transfer-Encoding: 8bit\n" #: test.php:2 msgid "home" msgstr "主頁" ``` </details> <br /> 根據po文件生成mo的二進制文件 `msgfmt zh_CN.po -o zh_CN.mo` 移動到指定目錄 `cp -f zh_CN.mo local/zh_CN/LC_MESSAGES/home.mo` 執行,展示效果 修改 home.php 文件 <details> <summary>home.php</summary> ``` setlocale(LC_ALL, 'zh_CN'); // Specify location of translation tables bindtextdomain("home", "locale"); // Choose domain textdomain("home"); // Translation is looking for in ./locale/zh_CN/LC_MESSAGES/home.mo now $str = gettext('home'); //也可以使用_('home') print <<<html <a href="#">{$str}</a> html; ``` </details> <br /> 執行 ``` > php home.php > <a href="#">主頁</a> ``` ### 手動生成 .pot 文件 手動添加 home.pot <details> <summary>home.pot</summary> ``` # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <email@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-07-23 20:56+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <email@ADDRESS>\n" "Language-Team: LANGUAGE <ll@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: home.php:2 msgid "home" msgstr "" ``` </details> <br />
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看