作为专业的一对一视频聊天源码开发服务商,与国外客户打交道是必不可少的,但是由于语言不同所以在开发和后期搭建部署时会遇到一些障碍。
除此之外还需要考虑国外客户在其所在国家上线运营时的语言问题,这就需要开发者将自己的源码界面翻译成为不同的国家语言。接下来给大家分享怎样做。
整理语言包,将系统界面显示的文字、所有文字提示等涉及语言转化的内容整理语言包进行翻译。
<?php
return array (
'USER_INDEXADMIN_BAN' => '拉黑会员',
'USER_INDEXADMIN_CANCELBAN' => '启用会员',
'USER_INDEXADMIN_DEFAULT1' => '用户组',
'USER_INDEXADMIN_DEFAULT3' => '管理组',
'USER_INDEXADMIN_INDEX' => '本站用户',
'USER_OAUTHADMIN_DELETE' => '第三方用户解绑',
'USER_OAUTHADMIN_INDEX' => '第三方用户',
'USER_INDEXADMIN_DEFAULT' => '用户管理',
'USER_INDEXADMIN_ADD' => '新增会员',
'USER_INDEXADMIN_ADD_POST' => '新增会员修改',
'USER_INDEXADMIN_CANCELRECOMMEND' => '取消推荐',
'USER_INDEXADMIN_CANCELRECORD' => '关闭录播',
'USER_INDEXADMIN_CANCELZOMBIE' => '关闭僵尸粉',
'USER_INDEXADMIN_CANCELZOMBIEP' => '取消设置僵尸粉',
'USER_INDEXADMIN_DEL' => '删除会员',
'USER_INDEXADMIN_EDIT' => '编辑',
'USER_INDEXADMIN_EDIT_POST' => '编辑修改',
'USER_INDEXADMIN_RECOMMEND' => '推荐',
'USER_INDEXADMIN_RECORD' => '开启录播',
'USER_INDEXADMIN_RECORDALL' => '一键开启/关闭录播',
'USER_INDEXADMIN_ZOMBIE' => '开启僵尸粉',
'USER_INDEXADMIN_ZOMBIEALL' => '一键开启/关闭僵尸粉',
'USER_INDEXADMIN_ZOMBIEP' => '设置为僵尸粉',
'USER_INDEXADMIN_ZOMBIEPBATCH' => '批量设置/取消僵尸粉',
'USER_INDEXADMIN_CANCELHOT' => '取消热门',
'USER_INDEXADMIN_CANCELSUPER' => '取消超管',
'USER_INDEXADMIN_HOT' => '设置热门',
'USER_INDEXADMIN_SUPER' => '设置超管',
);
使用语言翻译方法进行翻译
function L($name=null, $value=null) {
static $_lang = array();
// 空参数返回所有定义
if (empty($name))
return $_lang;
// 判断语言获取(或设置)
// 若不存在,直接返回全大写$name
if (is_string($name)) {
$name = strtoupper($name);
if (is_null($value)){
return isset($_lang[$name]) ? $_lang[$name] : $name;
}elseif(is_array($value)){
// 支持变量
$replace = array_keys($value);
foreach($replace as &$v){
$v = '{$'.$v.'}';
}
return str_replace($replace,$value,isset($_lang[$name]) ? $_lang[$name] : $name);
}
$_lang[$name] = $value; // 语言定义
return null;
}
// 批量定义
if (is_array($name))
$_lang = array_merge($_lang, array_change_key_case($name, CASE_UPPER));
return null;
}
调用语言翻译方法
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('user/index')}">{:L('ADMIN_USER_INDEX')}</a></li>
<li><a href="{:U('user/add')}">{:L('ADMIN_USER_ADD')}</a></li>
</ul>
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="50">ID</th>
<th>{:L('USERNAME')}</th>
<th>{:L('LAST_LOGIN_IP')}</th>
<th>{:L('LAST_LOGIN_TIME')}</th>
<th>{:L('EMAIL')}</th>
<th>{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<php>$user_statuses=array("0"=>L('USER_STATUS_BLOCKED'),"1"=>L('USER_STATUS_ACTIVATED'),"2"=>L('USER_STATUS_UNVERIFIED'));</php>
<foreach name="users" item="vo">
<tr>
<td>{$vo.id}</td>
<td>{$vo.user_login}</td>
<td>{$vo.last_login_ip}</td>
<td>
<if condition="$vo['last_login_time'] eq 0">
{:L('USER_HAVENOT_LOGIN')}
<else />
{$vo.last_login_time}
</if>
</td>
<td>{$vo.user_email}</td>
<td>{$user_statuses[$vo['user_status']]}</td>
<td>
<if condition="$vo['id'] eq 1">
<font color="#cccccc">{:L('EDIT')}</font> | <font color="#cccccc">{:L('DELETE')}</font> |
<if condition="$vo['user_status'] eq 1">
<font color="#cccccc">{:L('BLOCK_USER')}</font>
<else />
<font color="#cccccc">{:L('ACTIVATE_USER')}</font>
</if>
<else />
<a href='{:U("user/edit",array("id"=>$vo["id"]))}'>{:L('EDIT')}</a> |
<a class="js-ajax-delete" href="{:U('user/delete',array('id'=>$vo['id']))}">{:L('DELETE')}</a> |
<if condition="$vo['user_status'] eq 1">
<a href="{:U('user/ban',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="{:L('BLOCK_USER_CONFIRM_MESSAGE')}">{:L('BLOCK_USER')}</a>
<else />
<a href="{:U('user/cancelban',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="{:L('ACTIVATE_USER_CONFIRM_MESSAGE')}">{:L('ACTIVATE_USER')}</a>
</if>
</if>
</td>
</tr>
</foreach>
</tbody>
</table>
<div class="pagination">{$page}</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>
以上就是一对一视频聊天源码中关于语言包开发的大概流程,由此可见为了更好的实现不同平台客户的需求,需要涉及的部分是非常多的,所以还是建议大家找专业的源码服务开发商。
声明:本文由作者原创,转载请注明出处及原文链接。