“如何进一步汉化FreePBX界面”的版本间的差异

来自最权威最新完整开源SIP,语音通信,融合通信中文技术文档资料,提供详细的Asterisk Freepbx, FreeSBC, 免费会话边界控制器,网关,语音板卡,IPPBX,SBC配置资料-asterisk,freepbx,freesbc 用户手册 界面配置,呼叫路由,IVR, 网关对接,拨号规则,SIP 分机呼叫,pjsip, IVR, 录音, CDR, 队列呼叫,振铃组,CLI 命令中文资料手册
跳转至: 导航搜索
第13行: 第13行:
 
'''对PO文件进行汉化'''
 
'''对PO文件进行汉化'''
  
举例,我们现在要对backup 模块中的po 文件进行汉化,用户使用POedit工具,在用户电脑打开PO文件,然后文件,用户根据文件中的提示可以一一对应进行汉化。在文件中用户会看到 "msgid" 和 "msgstr" 一对对应的值。"msgid" 是英文的原始条目, "msgstr" 就是中文的含义,这里有一个例子:
+
举例,我们现在要对backup 模块中的po 文件进行汉化,用户使用POedit工具,在用户电脑打开PO文件,然后文件,用户根据文件中的提示可以一一对应进行汉化。在文件中用户会看到 "msgid" 和 "msgstr" 一对对应的值。 "msgid" 是英文的原始条目, "msgstr" 就是中文的含义,这里有一个例子:
 
+
<pre>
 
<nowiki>#: amp_conf/htdocs/admin/modules/core/page.routing.php:275</nowiki>
 
<nowiki>#: amp_conf/htdocs/admin/modules/core/page.routing.php:275</nowiki>
  
第24行: 第24行:
  
 
msgstr "删除路由 %s"
 
msgstr "删除路由 %s"
 +
</pre>
  
 
在linux 环境下的编译工具是 KBabel ,当然用户也可以拷贝到Windows 环境下,使用[http://www.poedit.net/ Poedit]来编辑。
 
在linux 环境下的编译工具是 KBabel ,当然用户也可以拷贝到Windows 环境下,使用[http://www.poedit.net/ Poedit]来编辑。
第33行: 第34行:
 
'''注意:''' KBabel或者Poedit 可以点击保存,如果所有语法正确的话,工具会在相应的文件路径下保存一个同样文件名的mo后缀文件。用户可以把这个文件存放回i18n/''zh_CN''/LC_MESSAGES 目录下的 文件夹中。 当然用户也可以在linux 命令进行文件转换:
 
'''注意:''' KBabel或者Poedit 可以点击保存,如果所有语法正确的话,工具会在相应的文件路径下保存一个同样文件名的mo后缀文件。用户可以把这个文件存放回i18n/''zh_CN''/LC_MESSAGES 目录下的 文件夹中。 当然用户也可以在linux 命令进行文件转换:
  
msgfmt -v <nowiki>backup.po</nowiki> -o <nowiki>backup.mo</nowiki>
+
<pre>msgfmt -v backup.po -o backup.mo </pre>
  
  
第46行: 第47行:
 
         $out .= '&lt;a id="language-menu-button" '
 
         $out .= '&lt;a id="language-menu-button" '
  
                . 'class="button-right ui-widget-content ui-state-default"&gt;' . _('Language') . '&lt;/a&gt;';
+
      . 'class="button-right ui-widget-content ui-state-default"&gt;' . _('Language') . '&lt;/a&gt;';
  
 
         $out .= '&lt;ul id="fpbx_lang" style="display:none;"&gt;';
 
         $out .= '&lt;ul id="fpbx_lang" style="display:none;"&gt;';
第80行: 第81行:
 
}
 
}
 
</pre>
 
</pre>
Once you've located the code block, you'll want to add you code to above the line that shows:
 
 
        $out .= '&lt;/ul&gt;';
 
 
For example, if you want to add Danish as the new language, you would add the following live above the code block above:
 
 
$out .= '&lt;li data-lang="da_DK"&gt;&lt;a href="#"&gt;' . _('Danish') . '&lt;/a&gt;&lt;/li&gt;';
 
 
Finally you can test your translations by refreshing your browser window and selecting your new language.&nbsp;If everything looks good, zip up your translated &lt;modules&gt;.po and &lt;modules.&gt;mo files and submit them by creating a New Ticket in our bug tracker. For information on how to do that, please see&nbsp;[file:///E:/display/FOP/Bug+Reporting Bug Reporting].
 
  
'''Determining Translation Status'''
+
'''查看翻译状态'''
  
The&nbsp;'''languagestatus'''&nbsp;module provides developers insight into the translation status of core modules. To install the module, follow the steps below:
+
'''languagestatus'''模块可以帮助开发人员参考语言翻译的状态,执行以下步骤安装此工具:
  
* Click Admin
+
* 点击admin, 然后选择 Module Admin, 然后确认Unsupported is checked,点击 Updates,安装 languagestatus
* Choose Module Admin
+
* Make sure Unsupported is checked
+
* Check for Updates
+
* Install languagestatus
+
  
The module provides a menu option under Admin called&nbsp;'''Language Status.&nbsp;'''If you click on this, you will be greeted with a page that tells you to choose a language. If you do not have the language selection dropdown in the menu, complete the following:
+
成功安装后,管理员菜单中会显示一个语言状态的菜单。如果安装后没有显示,用户需要点击:
  
* Click Settings
+
* 点击 Settings,选择 Advanced Settings, 设置 Show Language setting 为True。
* Choose Advanced Settings
+
* Set&nbsp;'''Show Language setting'''&nbsp;to True&nbsp;
+
  
Choose a language other than English to see how well core modules are translated.
+
如果用户希望参与FreePBX中文汉化,可以登录官方网站进行进一步操作:
  
 
参与官方中文汉化,请登录:
 
参与官方中文汉化,请登录:
 
http://wiki.freepbx.org/display/FOP/Translating+FreePBX+with+Weblate
 
http://wiki.freepbx.org/display/FOP/Translating+FreePBX+with+Weblate

2015年11月6日 (五) 08:10的版本

手动汉化FreePBX 中文界面

FreePBX 自从 FreePBX 2.5 以后已经包括了gettext包支持i18n 中文汉化. 用户可以在本地对FreePBX 进行汉化处理,汉化FreePBX 需要经过以下几个步骤:

找到相关汉化文件

在每个模块文件夹下面有一个 module_名称/i18n, 这个路径下有各种语言的POT文件,当然包括了zh_CN的文件,具体的文件路径是模块名称/i18n/zh_CN/LC_MESSAGES/模块名称.po 文件。 这些文件支持每个具体的模块界面汉化。

注意:core 文件夹不包括 i18n路径,主界面的中文汉化包存放在 admin/i18n/zh_CN/LC_MESSAGES/amp.po - amp.mo。


对PO文件进行汉化

举例,我们现在要对backup 模块中的po 文件进行汉化,用户使用POedit工具,在用户电脑打开PO文件,然后文件,用户根据文件中的提示可以一一对应进行汉化。在文件中用户会看到 "msgid" 和 "msgstr" 一对对应的值。 "msgid" 是英文的原始条目, "msgstr" 就是中文的含义,这里有一个例子:

#: amp_conf/htdocs/admin/modules/core/page.routing.php:275

#: amp_conf/htdocs/admin/modules/core/page.did.php:141

#, php-format

msgid "Delete Route %s"

msgstr "删除路由 %s"

在linux 环境下的编译工具是 KBabel ,当然用户也可以拷贝到Windows 环境下,使用Poedit来编辑。

完成翻译以后,保存编译PO文件

这里的.po 文件需要编译保存成一个.mo 文件,系统才能显示中文,这些:

注意: KBabel或者Poedit 可以点击保存,如果所有语法正确的话,工具会在相应的文件路径下保存一个同样文件名的mo后缀文件。用户可以把这个文件存放回i18n/zh_CN/LC_MESSAGES 目录下的 文件夹中。 当然用户也可以在linux 命令进行文件转换:

msgfmt -v backup.po -o backup.mo 


测试汉化效果

为了支持中文界面的显示,我们必须在语言选择界面添加中文选项。打开文件 /var/www/html/admin/views/menu.php (默认是CentOS 安装),其他环境可能在不同的路径。

/var/www/html/admin/views/menu.php

if($amp_conf['SHOWLANGUAGE']) {

        $out .= '<a id="language-menu-button" '

       . 'class="button-right ui-widget-content ui-state-default">' . _('Language') . '</a>';

        $out .= '<ul id="fpbx_lang" style="display:none;">';

        $out .= '<li data-lang="en_US"><a href="#">'. _('English') . '</a></li>';

        $out .= '<li data-lang="bg_BG"><a href="#">' . _('Bulgarian') . '</a></li>';

        $out .= '<li data-lang="zh_CN"><a href="#">' . _('Chinese') . '</a></li>';  // 这里已经支持了中文zh_CN

        $out .= '<li data-lang="de_DE"><a href="#">' . _('German') . '</a></li>';

        $out .= '<li data-lang="fr_FR"><a href="#">' . _('French') . '</a></li>';

        $out .= '<li data-lang="he_IL"><a href="#">' . _('Hebrew') . '</a></li>';

        $out .= '<li data-lang="hu_HU"><a href="#">' . _('Hungarian') . '</a></li>';

        $out .= '<li data-lang="it_IT"><a href="#">' . _('Italian') . '</a></li>';

        $out .= '<li data-lang="pt_PT"><a href="#">' . _('Portuguese') . '</a></li>';

        $out .= '<li data-lang="pt_BR"><a href="#">' . _('Portuguese (Brasil)') . '</a></li>';

        $out .= '<li data-lang="ru_RU"><a href="#">' . _('Russian') . '</a></li>';

        $out .= '<li data-lang="sv_SE"><a href="#">' . _('Swedish') . '</a></li>';

        $out .= '<li data-lang="es_ES"><a href="#">' . _('Spanish') . '</a></li>';

        $out .= '</ul>';

}

查看翻译状态

languagestatus模块可以帮助开发人员参考语言翻译的状态,执行以下步骤安装此工具:

  • 点击admin, 然后选择 Module Admin, 然后确认Unsupported is checked,点击 Updates,安装 languagestatus

成功安装后,管理员菜单中会显示一个语言状态的菜单。如果安装后没有显示,用户需要点击:

  • 点击 Settings,选择 Advanced Settings, 设置 Show Language setting 为True。

如果用户希望参与FreePBX中文汉化,可以登录官方网站进行进一步操作:

参与官方中文汉化,请登录: http://wiki.freepbx.org/display/FOP/Translating+FreePBX+with+Weblate