文档章节

PhalApi:[1.25] 国际化翻译:为走向国际化提前做好翻译准备

暗夜在火星
 暗夜在火星
发布于 2015/04/04 09:55
字数 687
阅读 16
收藏 0

Your new understanding has made you powerful. Please use your new powers for good.    

1.25.1 固定的中文写法

一直以来,我们都是硬编码方式返回中文的文案或者提示,如:

$rs['msg'] = '用户不存在';

这种写法在项目根本不需要考虑国际化翻译时,是完全没问题的。

1.25.2 通用的翻译写法

当我们需要进行翻译时,可以这样进行调整:

$rs['msg'] = T('user not exists');

然后在对应的翻译文件中(如中文对应文件是:./Language/zh_cn/common.php)添加对应的翻译即可:

// $vim ./Language/zh_cn/common.php
return array(
    'user not exists' => '用户不存在',
);

(1)当存在动态变量时?

有时,我们需要动态返回一些值,这里可以用 大括号 将需要动态替换的值包住并提供替换的参数即可,一如:

echo T('hello {name}', array('name' => 'dogstar'));

如果对应的中文翻译是:

'hello {name}' => '您好,{name}',

将会看到输出:

您好,dogstar

(2)当翻译不存在时?

翻译不存在,有两种场景:一是指定的语言包不存在;二是语言包存在但翻译不存在。无论何种情况,找不到翻译时,都会用代码硬编码的内容返回。

1.25.3 语言的设定

当我们拥有了多种语言时,则可以在入口/初始化文件中,选择设定需要的语言。

PhalApi_Translator::setLanguage('zh_cn');

参数即为语言包的路径名,如下面的en, zh_cn:

.
|-- en
|   `-- common.php
`-- zh_cn
    `-- common.php

此处,也可以通过客户端传递参数来自行选择语言。简单地:

PhalApi_Translator::setLanguage($_GET['lan']);

1.25.4 建议

所以,你可以轻松看到,所谓的翻译也只是通过数组下标找一下对应的内容而已,没有太多的技术性,也没有过多的性能问题。

但正是有这样提前周到的国际化准备,我们可以对外(如像产品、BOSS和外界)传送这样一个隐喻: 我们的项目可以快速支持国际翻译
这听起来多么高大尚啊!因为那些不懂技术的人,根本不在乎是用PHP的数组来存放还是什么技术,而在于能不能走向国际化。

SO?既然翻译”无伤大雅“(指对性能的影响和对代码编写的阻碍),统一使用翻译的写法是值得推荐的。

即使项目没有机会用到真正的翻译,但至少有两点我认为也是有用的:

  • 1、便于产品维护接口返回的提示文案;

  • 2、被同行问到时,你们有支持i18n吗?我们也可以笑着回答:有 _^


© 著作权归作者所有

暗夜在火星

暗夜在火星

粉丝 168
博文 177
码字总数 326789
作品 1
广州
程序员
私信 提问
phalapi-入门篇4(国际化高可用和自动生成文档)

先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 在本小节主要讲解如何使用phalapi框架自带的国际化和文档自动生成,以及这样做可以的优点和好处和能解决哪方面的...

喵了_个咪
2015/09/30
3K
1
PhalApi ( π 框架)-v1.3.6 踏青版版本更新

在春意盎然,生机勃勃之季, 充满活力的的 PhalApi (π框架) 迎来了鸡年首次更新 , 那么皮皮虾我们走 看看PhalApi有什么新的动态. 基于老版本开发的应用可以无缝升级到v1.3.6版本,直接覆盖核心...

喵了_个咪
2017/03/03
1K
3
PhalApi 1.3.5 贺岁发布,PHP 轻量接口框架

[前言] 借春节来临之际, PhalApi(π框架)在此发布v1.3.5幺鸡贺岁小版本,同时祝愿各位同学新春快乐、万事如意! 基于老版本开发的应用可以无缝升级到v1.3.5版本,直接覆盖核心文件PhalApi...

暗夜在火星
2017/01/06
833
6
2018年使用PhalApi的都有哪些产品或公司?(已整理部分)

使用PhalApi的都有哪些产品或公司? PhalApi从2015年正式开源以来,到现在2019年,差不多快三年多了。在此,小编也提前祝愿大家新春快乐,诸事顺利! 下面,小编简单整理一下,使用PhalApi进...

暗夜在火星
02/02
55
0
开源 PHP 轻量级 API 接口开发框架 PhalApi v2.0.1 发布

[前言] 大家好呀PhalApi又和小伙伴们见面了,经过了快半年的准备PhalApi2在今天终于正式发布了,如果PhalApi1.X版本是自行车的话,PhalApi2.X版本就是小汽车,能为开发者带来更加省心省力开发体验...

喵了_个咪
2017/09/02
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
12
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
8
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
11
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部