1、在window与linux下的多语言切换有些区别,主要putenv的设置区别。

  参考链接:http://www.cnblogs.com/sink_cup/archive/2013/11/20/ubuntu-php-gettext-error.html

       http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/09/2132603.html

  

在window下echo setlocale('LANG=zh_CN'),而在linux下如果支持该语言,则会输出设置的内容

windows的php代码:

  

<?php
// translate();
// include_once 'include/setLan.php';
echo putenv('LANG=zh_CN') . "--------------"; echo setlocale(LC_ALL, 'zh_CN'); $domain = 'translate'; //域名,可以任意取个有意义的名字,不过要跟相应的.mo文件的文件名相同(不包括扩展名)。
echo bindtextdomain("translate", dirname(__FILE__) . "/locale/") . "-------"; //设置某个域的mo文件路径
echo bind_textdomain_codeset("translate", 'UTF-8') . "-------------"; //设置mo文件的编码为UTF-8
// echo $domain;
echo textdomain($domain) . "----------------------<br>"; //设置gettext()函数从哪个域去找mo文件 $str = _("hello world love you");
print <<<HTML
<a href="#">{$str}</a>
HTML;
?>
<html>
<head>
<meta http-equiv="Content-Type" content= "text/html; charset=utf-8" />
<title>title</title>
</head>
<body bgcolor="#FFFFFF" text= "#000000" link= "#FF9966" vlink= "#FF9966" alink= "#FFCC99" >
<?=gettext('hello world love you')?>
</body>
</html>

linux下:

<?php
$lang = 'en_US'; //linux不支持zh-Hans,所以gettext、php都不支持。使用locale -a可以看到os支持的语言文字国家地区码。
putenv('LANGUAGE=' . $lang); //ubuntu 需要,centos不需要此行
echo setlocale(LC_ALL, $lang . '.utf8'); //ubuntu 需要.utf8,centos可有可无
$domain = 'translate';
bindtextdomain($domain, dirname(__FILE__) . '/locale');
bind_textdomain_codeset($domain , 'UTF-8');
textdomain($domain); echo _('asdf');
echo "\n";
exit;
?>

目录为en_US,如下:

|  |---locale
| |-----en_US
| |-----LC_MESSAGES
| | |----------translate.mo translate.po
| |

桌面linux:要实现中文的翻译,需要设置linux的区域语言。设置方法:

http://blog.sina.com.cn/s/blog_49f914ab0100sbsp.html

linux 区域语言的工作原理

  linux中的多语言环境(LC_ALL, LANG, locale)

开发板要支持国际化(Internationalization,简写为I18N,需要加入以下操作

1、busybox支持中文的显示,主要是加入locale的支持:

  http://blog.csdn.net/lqx4_3/article/details/7281034

2、开发板下存在/usr/lib/locale/locale-archive的编码集。生成locale-archive方法。 busybox没有locale相关命令,可以在桌面上linux上生成拷贝到开发板上。

生成编码集:    http://blog.chinaunix.net/uid-20648944-id-2950413.html

php gettext 多语言翻译的更多相关文章

  1. 第九篇:在SOUI中使用多语言翻译

    为UI在不同地区显示不同的语言是产品国际化的一个重要要求. 在SOUI中实现了一套类似QT的多语言翻译机制:布局XML不需要调整,程序代码也不需要调整,只需要为不同地区的用户提供不同的语言翻译文件即可 ...

  2. (2)esp8266多国语言翻译系统

    http://bbs.mydigit.cn/simple/?t2649513.html 这个想法不错 原来只是想用esp8266搞一个百度的多国语言翻译系统出来的,只是为了尝试如何调用各种web ap ...

  3. sap scriptfom 多语言翻译

    在某项目中,因为客户上线较早,非常多打印程序的form是由scriptform制做,又因为美国工厂要上线.免不了对scriptform进行多语言翻译.以下是对当中的一个交货单打印进行的多语言翻译,分享 ...

  4. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然

    from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...

  5. Python有哪些好用的语言翻译方法

    最近有个需求,要将几万条数据从日语翻译成中文.因为数据的获取和处理用的是python代码,所以想先尝试翻译部分也用python实现. 目前网上查到的翻译方法有百度.有道云以及谷歌翻译,下面会对这三个方 ...

  6. Dynamics CRM 系统自定义部分的语言翻译

    Dynamics CRM 自带语言切换功能,在官网下载所需语言包安装后,在设置语言中就能看到你所添加的语言,勾选要启用的语言应用即可,再打开系统设置--语言就能看到可更改用户界面语言的显示了. 但官方 ...

  7. Dynamics CRM 系统自己定义部分的语言翻译

    Dynamics CRM 自带语言切换功能,在官网下载所需语言包安装后,在设置语言中就能看到你所加入的语言.勾选要启用的语言应用就可以.再打开系统设置--语言就能看到可更改用户界面语言的显示了. wa ...

  8. C#&.Net干货分享- 构造BaiduLanguageHelper对接百度的语言翻译

    全部是封装的API源码... namespace Frame.Api{    /// <summary>    /// 百度多语言支持器    /// </summary>   ...

  9. QT语言翻译

    QT中多语言的实现方式: 1.代码中tr运用 2.使用工具生成ts文件 3.翻译ts文件 4.生成qm文件 5.程序加载 以下内容程序加载时放入即可. QString appPath = QCoreA ...

随机推荐

  1. Windows 10 装机回忆录

    Frank.Han 标记: Windows,快捷键,安装 2015年10月我便更新了Win10系统,一直用着很顺手,比起Win8.x,他更像Win7的嫡系版本. 屏蔽掉系统自带的平板服务(小娜.地理位 ...

  2. Linux下基于vsftpd搭建ftp服务器

    1.先用检查是否已经安装rpm -qa| grep vsftpd2.然后再进行在线安装vsftpd这个服务yum install vsftpd -y3.修改vi /etc/vsftpd/vsftpd. ...

  3. nginx下目录浏览及其验证功能配置记录

    工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...

  4. JAVA格物致知基础篇:你所不知道的返回码

    上篇我们主要讲解利用Jersey组件如何来写一个能保证基本运行的Rest Service, 之所以说能够基本运行是因为接口暴露及其简易,一旦遇到其他的情况了,就无法正确的处理我们的请求.同时,这个接口 ...

  5. css实现了hover显示title的效果

    <div data-title="hello, world">hello...</div> <style> div { position: re ...

  6. Android 线程池(转)

    new Thread的弊端及Java四种线程池的使用: 1.new Thread的弊端 ); } catch (InterruptedException e) { // TODO Auto-gener ...

  7. Mysql索引PRIMARY、NORMAL、UNIQUE、FULLTEXT 区别和使用场合

    索引 数据库的索引就像一本书的目录,能够加快数据库的查询速度. MYSQL索引有四种PRIMARY.INDEX.UNIQUE.FULLTEXT, 其中PRIMARY.INDEX.UNIQUE是一类,F ...

  8. ABP之依赖注入

    写在开头 ABP开源项目最近有点小火,还开展了线下活动.本着学习DDD的心态与学习开源代码的的好奇,我也看了一遍ABP源码,在此将自己学习ABP的一些心得记录下来. 作为核心的IoC 作为一种解耦的方 ...

  9. Jsoup 使用教程:数据抽取

    1.使用DOM方法来遍历一个文档 问题 你有一个HTML文档要从中提取数据,并了解这个HTML文档的结构. 方法 将HTML解析成一个Document之后,就可以使用类似于DOM的方法进行操作.示例代 ...

  10. shell浅谈之九子shell与进程处理

    转自:http://blog.csdn.net/taiyang1987912/article/details/39529291 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] ...