l 收发私人消息:一个类似email的私人消息通信系统,用户之间可以通过此系统互发消息,同时对自己邮箱中的消息可以保存、删除;
l 加入/退出用户组:论坛中会有多个用户组,用户可以根据自己的需要加入某个用户组,则可以更好与此用户组的用户进行交流;
l 搜索:通过搜索功能,所有用户都可以查找需要的主题/帖子;
l 个人资料管理:用户可以修改自己的个人资料,主要有一些基本信息(联系方式、兴趣爱好、个人签名等),用户在论坛中的个性化设置(操作界面风格、语言、时区等),还可以上传个人头像。
(2)论坛管理员
l 管理主题/帖子:对本论坛的主题/帖子,可以编辑、删除、移动、加锁/解锁、分离等操作,维护本论坛的日常运行。
(3)系统管理员
l 论坛管理:类别管理-系统管理员可以对论坛的类别进行增加、删除、编辑、移动等操作,并对各类别的论坛撰写简要的文字说明,有利于引导用户进入论坛中讨论;权限管理-设置哪一级别的用户对论坛所拥有的权限(浏览、阅读、发表、回复、编辑、删除、引用、公告、投票、创建调查等);数据管理-主要对长时间没有回复的主题进行剔除,也可剔除陈旧数据。
l 论坛配置管理:备份数据库-为了论坛能安全、稳定的运行,常要对数据进行备份;恢复数据库-当前的数据受到损坏时,可恢复到上次备份数据的状态;常用配置-论坛的一些基本配置;表情图形-增加、删除、编辑表情图形;文字过滤-设置一些不合法的字符或单词,可防止论坛受到恶意的攻击。
l 用户组管理:可以增加用户组,并可以编辑、删除用户组及设定用户组的权限。
l 风格管理:可以创建、编辑、导出风格模板,建立多种论坛的风格,以使用户得到个性化的论坛。
l 用户管理:用户取缔-可以禁止恶意的用户访问论坛,甚至取缔其用户资格;管理-对所有的用户都可以编辑、删除;权限设置--设定用户的权限,即超级管理员、论坛管理员、普通用户,可以控制每个用户的操作,以及用户的级别管理。
3.3 语言模块的翻译
语言模块的翻译,就需要新建中文语言模块的文件夹lang_chinese和操作界面的图片*_chinese.gif,所有这些包含了上述的六个语言模块。
对language中的语言模块的分析,可以得知每个语句都是用数组来存储,翻译前的lang_main.php如下:
// lang_main.php
……
//setlocale(lc_all, "en");
$lang['encoding'] = "iso-8859-1";
……
$lang['register'] = "register";
$lang['profile'] = "profile";
$lang['edit_profile'] = "edit your profile";
$lang['search'] = "search";
$lang['memberlist'] = "memberlist";
$lang['faq'] = "faq";
$lang['bbcode_guide'] = "bbcode guide";
$lang['usergroups'] = "usergroups";
……
$lang['enter_password'] = "please enter your username and password to login";
$lang['login'] = "login";
$lang['logout'] = "logout";
……
英语的默认编码是西欧iso-8859-1,则首先要把编码更改为简体中文gb2312。语句翻译需要保证合理性、正确性、简明性,翻译后的lang_main.php模块如下:
//setlocale(lc_all, "cn");
$lang['encoding'] = "gb2312";
……
$lang['register'] = "注册";
$lang['profile'] = "个人资料";
$lang['edit_profile'] = "编辑您的注册信息";
$lang['search'] = "搜索";
$lang['memberlist'] = "用户列表";
$lang['faq'] = "问与答";
$lang['bbcode_guide'] = "bbcode 指南";
$lang['usergroups'] = "用户组";
……
$lang['enter_password'] = "请输入用户名和密码";
$lang['login'] = "登录";
$lang['logout'] = "退出";
……
通过翻译英文的语言模块,建立起中文语言模块,论坛的注册用户则可以选择自己需要的语言(英文或中文),如图4中(a)、(b)所示。
(b)中文界面
图 4 英文、中文界面
由于翻译过程中常牵涉到很多网络上的常用术语,为了翻译准确,不能只做普通的文字翻译,需要了解phpbb 2中的每个功能以及一些中英文在网络术语中的表述差异,例如:profileà个人资料,avatarà个人头像,messageà私人消息,smileà表情图形,word censoringà文字过滤,等等。
图片上的语言文字翻译直接在*_english.gif文件上把英文修改成中文,另存为*_chinese.gif就可,应该注意风格上的统一,如下表所示。
英中文操作界面图片对照表
图片
语言 英文 中文 英文 中文
文件名 post_english.gif post_chinese.gif icon_profile_english.gif icon_profile_chinese.gif
3.4 语言模块的测试
要通过不断的单元测试和模块测试来完善或纠正汉化bug,对应翻译的语句找出其相应的页面输出,验证汉化后的合理性、正确性、简明性,这一步骤是汉化人员来实施的。只有通过反复的测试,才能使汉化的模块更准确。例如:using the form below you can split a topic in two, either by selecting the posts individually or by splitting at a selected postà使用以下的表单您可以分离帖子变成两个,您可以选择分离一个或多个帖子,此语句出现在论坛栏目管理员对本栏目主题管理的 "分离主题控制栏"中,就可以测试所要进行的操作与语句表述的是否一致。
测试的下一个过程是α-测试和β-测试,α-测试是一个用户以开发者的身份来实施,可以由汉化小组组织一些人员对汉化后的语言模块进行测试,记录发生的错误和使用问题(主要是语句的理解问题)。β-测试是软件的最终用户以一个或多个用户的身份进行的,就是任何一个用户都可以参与测试,对每个汉化的语句可以提出其不合理性、难以理解及错误等问题,然后就可做出相应的修改。完成这些测试后,才能对用户发布整个汉化包。
4 phpbb 2的应用
对phpbb 2整个语言模块的翻译及测试,也就意味着phpbb 2论坛软件可以支持中文了,结合实际需要,完全可以建立起一个符合要求的论坛。
在对phpbb 2的应用中,建立了一个围绕集团公司科学技术交流方面的论坛-科技学术论坛,由于phpbb 2支持多种数据库,所以其应用建立在两种数据库环境下:mysql和ms sql。mysql与ms sql相比,各有自己的优势,都适合中小型的应用,但ms sql更适合于企业级应用。当更改数据库时,只需对根目录下的配置文件config.php修改连接数据库的参数,以下是连接mysql和ms sql数据库的配置文件。
<?php//mysql数据库// phpbb 2.x auto-generated config file// do not change anything in this file!$dbms = "mysql";$dbhost = "localhost";$dbname = "phpbb";$dbuser = "root";$dbpasswd = "password";$table_prefix = "phpbb_";define('phpbb_installed', true);?> <?php//ms sql数据库// phpbb 2.x auto-generated config file// do not change anything in this file!$dbms = 'mssql';$dbhost = 'jss';$dbname = 'phpbb';$dbuser = 'sa';$dbpasswd = 'sa';$table_prefix = 'phpbb_';define('phpbb_installed', true);?>
图5是在mysql数据库中的应用。
在这两种环境中,mysql完全可以体现出速度的优越性。浏览首页时,连接mysql数据库,进行10个查询,只用了0.142413秒;连接ms sql数据库,也是进行10个查询,而且返回的数据要少,却用了0.243156秒。在ms sql数据库中,phpbb 2不支持数据备份和恢复功能,而在mysql数据库中可以。
5 结束语
phpbb 2作为强大的论坛软件,对其进行汉化,可以说一个很好的软件开发学习过程,总结了脚本语言所开发的软件汉化流程,同时能真正地使用中文界面的phpbb 2论坛,建立起一个符合实际应用的论坛-科技学术论坛。对此软件应该要更深入的研究,不仅是汉化,还有其安全控制、消息系统、搜索、兼容性、个性化管理等功能,都是值得探讨。
参考文献
[1] (美)jesus castagnetto等著,薛忠胜等译、《php高级编程》、机械工业出版社、2001年3月
[2] 杨文龙等编著、《软件工程》、电子工业出版社、2001年12月