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

来自最权威最新完整开源SIP,语音通信,融合通信中文技术文档资料,提供详细的Asterisk Freepbx, FreeSBC, 免费会话边界控制器,网关,语音板卡,IPPBX,SBC配置资料-asterisk,freepbx,freesbc 用户手册 界面配置,呼叫路由,IVR, 网关对接,拨号规则,SIP 分机呼叫,pjsip, IVR, 录音, CDR, 队列呼叫,振铃组,CLI 命令中文资料手册
跳转至: 导航搜索
(创建页面,内容为“'''Translating FreePBX Manually''' FreePBX began including the [http://www.gnu.org/software/gettext/ gettext] package for i18n since version 2.5. This mak...”)
 
(FreePBX汉化)
 
(未显示同一用户的5个中间版本)
第1行: 第1行:
'''Translating FreePBX Manually'''
+
'''手动汉化FreePBX 中文界面'''
  
FreePBX began including the [http://www.gnu.org/software/gettext/ gettext] package for i18n since version 2.5. This makes translating (localization) to your desired language relatively simple using the following steps: 
+
FreePBX 自从 FreePBX 2.5 以后已经包括了gettext包支持i18n 中文汉化. 用户可以在本地对FreePBX 进行汉化处理,汉化FreePBX 需要经过以下几个步骤:
  
''' Translation files'''
+
'''找到相关汉化文件'''
  
In each modules/&lt;modulename&gt;/i18n directory there is a &lt;modulename&gt;.pot file. This is a template file with all the strings needed for translation. Create a new language directory structure in the i18n directory and copy the &lt;modulename&gt;.pot file to&nbsp;''lang_code''/LC_MESSAGES/&lt;modulename&gt;.po Replace&nbsp;''lang_code''&nbsp;with the proper language code for your translation (hint: see /usr/share/locale<nowiki>/locale.al</nowiki>ias).
+
在每个模块文件夹下面有一个 module_名称/i18n, 这个路径下有各种语言的POT文件,当然包括了zh_CN的文件,具体的文件路径是模块名称/i18n/zh_CN/LC_MESSAGES/模块名称.po 文件。
 +
这些文件支持每个具体的模块界面汉化。
  
'''Note:'''&nbsp;core does not contain an i18n directory as all text for core is located in admin/i18n/''lang_code''/LC_MESSAGES<nowiki>/amp.po</nowiki> - <nowiki>amp.mo</nowiki> and the template file are in admin/i18n.
+
'''注意:'''core 文件夹不包括 i18n路径,主界面的中文汉化包存放在 admin/i18n/''zh_CN''/LC_MESSAGES/amp.po。
  
'''Example'''
+
'''如何实现Elastix界面汉化'''
  
You want to translate the backup module to Danish, First check the language code for Danish in <nowiki>locale.al</nowiki>ias. For Danish it is da_DK, then create the directory structure (backup/i18n/da_DK/LC_MESSAGES), then copy the i18n<nowiki>/backup.po</nowiki>t to da_DK/LC_MESSAGES<nowiki>/backup.po</nowiki>.
+
Elastix 核心界面还是基于FreePBX,elastix下的模块路径文件都一样。具体的elastix 汉化文档,请访问[http://www.hiastar.com/index.php/2011-04-19-19-01-04/asterisk-elastix-freeswitch-doc Elastix不同版本汉化包]
  
'''Translating the File'''
+
'''对PO文件进行汉化'''
 
+
Continuing from our above example, in <nowiki>backup.po</nowiki> you will see several "msgid" and "msgstr" name/value pairs. "msgid" contains the string to be translated and "msgstr" will be where you put your translation for the given "msgid". Here's an example from the core module where we translate "Delete Route %s" to Spanish:
+
  
 +
举例,我们现在要对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>
  
第25行: 第26行:
 
msgid "Delete Route %s"
 
msgid "Delete Route %s"
  
msgstr "Agregar Usuario %s"
+
msgstr "删除路由 %s"
 +
</pre>
  
If you are working in Linux there is a PO-editor called KBabel which you may prefer to use. Otherwise you may also want to check out the cross-platform (Linux/Mac/Windows) editor called&nbsp;[http://www.poedit.net/ Poedit].
+
在linux 环境下的编译工具是 KBabel ,当然用户也可以拷贝到Windows 环境下,使用[http://www.poedit.net/ Poedit]来编辑。
  
'''Compiling your translation file'''
+
'''完成翻译以后,保存编译PO文件'''
  
The .po file needs to be compiled into an .mo file before it can be used. To do this, run:
+
这里的.po 文件需要编译保存成一个.mo 文件,系统才能显示中文,执行:
  
'''''Note:'''''&nbsp;''If you are using KBabel or Poedit, the files are compiled with these programs and you don't have to do the next part''
+
'''注意:''' KBabel或者Poedit 可以点击保存,如果所有语法正确的话,工具会在相应的文件路径下保存一个同样文件名的mo后缀文件。用户可以把这个文件存放回i18n/''zh_CN''/LC_MESSAGES 目录下的 文件夹中。 当然用户也可以在linux 命令进行文件转换:
  
msgfmt -v &lt;module&gt;.po -o &lt;module&gt;.mo
+
<pre>msgfmt -v backup.po -o backup.mo </pre>
  
For example, you have translated the <nowiki>backup.po</nowiki>, to compile it, run:
 
  
msgfmt -v <nowiki>backup.po</nowiki> -o <nowiki>backup.mo</nowiki>
+
'''测试汉化效果'''
  
You might have some errors to correct, which are usually a result of quoting problems or that you have not updated the header in the .po file. If you have no error and all is good, continue to the next step.
+
为了支持中文界面的显示,我们必须在语言选择界面添加中文选项。打开文件 /var/www/html/admin/views/menu.php (默认是CentOS 安装),其他环境可能在不同的路径。
 
+
'''Testing your Translation'''
+
 
+
To see your translations at work, you need to update FreePBX's code to include your translation. The file that you'll need to edit is located at /var/www/html/admin/views/men<nowiki>u.ph</nowiki>p (on a default CentOS install), and you'll want to look for the code block shown below:
+
 
+
'''/var/www/html/admin/views<nowiki>/menu.ph</nowiki>p'''
+
  
 +
'''/var/www/html/admin/views/menu.php'''
 +
<pre>
 
<nowiki>if($amp_conf['SHOWLANGUAGE']) {</nowiki>
 
<nowiki>if($amp_conf['SHOWLANGUAGE']) {</nowiki>
  
 
         $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;';
第61行: 第58行:
 
         $out .= '&lt;li data-lang="bg_BG"&gt;&lt;a href="#"&gt;' . _('Bulgarian') . '&lt;/a&gt;&lt;/li&gt;';
 
         $out .= '&lt;li data-lang="bg_BG"&gt;&lt;a href="#"&gt;' . _('Bulgarian') . '&lt;/a&gt;&lt;/li&gt;';
  
         $out .= '&lt;li data-lang="zh_CN"&gt;&lt;a href="#"&gt;' . _('Chinese') . '&lt;/a&gt;&lt;/li&gt;';
+
         $out .= '&lt;li data-lang="zh_CN"&gt;&lt;a href="#"&gt;' . _('Chinese') . '&lt;/a&gt;&lt;/li&gt;'; // 这里已经支持了中文zh_CN
  
 
         $out .= '&lt;li data-lang="de_DE"&gt;&lt;a href="#"&gt;' . _('German') . '&lt;/a&gt;&lt;/li&gt;';
 
         $out .= '&lt;li data-lang="de_DE"&gt;&lt;a href="#"&gt;' . _('German') . '&lt;/a&gt;&lt;/li&gt;';
第86行: 第83行:
  
 
}
 
}
 +
</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].
+
'''languagestatus'''模块可以帮助开发人员参考语言翻译的状态,执行以下步骤安装此工具:
  
'''Determining Translation Status'''
+
* 点击admin, 然后选择 Module Admin, 然后确认Unsupported is checked,点击 Updates,安装 languagestatus
  
The&nbsp;'''languagestatus'''&nbsp;module provides developers insight into the translation status of core modules. To install the module, follow the steps below:
+
成功安装后,管理员菜单中会显示一个语言状态的菜单。如果安装后没有显示,用户需要点击:
  
* Click Admin
+
* 点击 Settings,选择 Advanced Settings, 设置 Show Language setting 为True。
* 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:
+
如果用户希望参与FreePBX中文汉化,可以登录官方网站进行进一步操作:
  
* Click Settings
+
参与官方中文汉化,请登录:
* 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.
+
http://wiki.freepbx.org/display/FOP/Translating+FreePBX+with+Weblate

2015年11月6日 (五) 14:44的最新版本

手动汉化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。

如何实现Elastix界面汉化

Elastix 核心界面还是基于FreePBX,elastix下的模块路径文件都一样。具体的elastix 汉化文档,请访问Elastix不同版本汉化包

对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