当前位置: 首页 > news >正文

创建小型网站的步骤网页广告调词平台

创建小型网站的步骤,网页广告调词平台,做网站用什么配置的电脑,外贸网站代码开发多语言的Web应用是一件非常困难的事,各个国家的字符集的编码方式、货币符号、日期格式、数字格式、文字表现都各不相同.我们今天用一个简单的实例说明一下在PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件…

开发多语言的Web应用是一件非常困难的事,各个国家的字符集的编码方式、货币符号、日期格式、数字格式、文字表现都各不相同.

我们今天用一个简单的实例说明一下在PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的), 从而实现PHP的i18n.

现在, 我们假设要显示一个返回主页的link:

//home.php:

$str = 'home';

print <<

{$str}

HTML;

下面开启我们多语言的开发之旅:

创建pot文件,pot是Portable Object Template的首字母缩写,与po对应的是mo,mo是Machine Object的首字母缩写。前者意指原始的字符串文件,一般用于给翻译人员去修改的,后者则是与机器相关的,一般是供程序读取。可以手工创建pot文件,也可以通过xgettext从代码中抽取字符串来产生。这里是用xgettext来产生的:

xgettext -a home.php -o home.pot

运行该命令后,我们发现,在当前目录下,产生了一个名home.pot的文件,打开该文件,可以看到:

# SOME DESCRIPTIVE TITLE.

# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER

# This file is distributed under the same license as the PACKAGE package.

# FIRST AUTHOR , YEAR.

#

#, fuzzy

msgid ""

msgstr ""

"Project-Id-Version: PACKAGE VERSION\n"

"Report-Msgid-Bugs-To: \n"

"POT-Creation-Date: 2009-07-23 20:56+0800\n"

"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

"Last-Translator: FULL NAME \n"

"Language-Team: LANGUAGE \n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=CHARSET\n"

"Content-Transfer-Encoding: 8bit\n"

#: home.php:2

msgid "home"

msgstr ""

根据pot产生不同语言的po文件,这里我们先产生一个简体中文的po文件:

export LANG=zh_CN.gb2312

msginit -l zh_CN.gb2312 -i home.pot

运行该命令后,我们发现,在当前目录下,产生了一个名zh_CN.po的文件,打开该文件,可以看到:

# Chinese translations for PACKAGE package

# PACKAGE 软件包的简体中文翻译.

# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER

# This file is distributed under the same license as the PACKAGE package.

# , 2009.

#

msgid ""

msgstr ""

"Project-Id-Version: PACKAGE VERSION\n"

"Report-Msgid-Bugs-To: \n"

"POT-Creation-Date: 2009-07-23 20:56+0800\n"

"PO-Revision-Date: 2009-07-23 21:00+0800\n"

"Last-Translator: FULL NAME \n"

"Language-Team: Chinese\n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=GB2312\n"

"Content-Transfer-Encoding: 8bit\n"

#: test.php:2

msgid "home"

msgstr ""

翻译zh_CN.po里对应的字符串为中文:

# Chinese translations for PACKAGE package

# PACKAGE 软件包的简体中文翻译.

# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER

# This file is distributed under the same license as the PACKAGE package.

# , 2009.

#

msgid ""

msgstr ""

"Project-Id-Version: PACKAGE VERSION\n"

"Report-Msgid-Bugs-To: \n"

"POT-Creation-Date: 2009-07-23 20:56+0800\n"

"PO-Revision-Date: 2009-07-23 21:00+0800\n"

"Last-Translator: \n"

"Language-Team: Chinese\n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=GB2312\n"

"Content-Transfer-Encoding: 8bit\n"

#: test.php:2

msgid "home"

msgstr "主页"

根据po文件生成mo文件。

msgfmt zh_CN.po -o zh_CN.mo

运行该命令后,我们发现,在当前目录下,产生了一个名zh_CN.mo的文件。它是二进制的,不能用文本编辑器打开。

安装mo文件到特定目录中:

cp -f zh_CN.mo .local/LC_MESSAGES/home.mo

修改程序。

setlocale(LC_ALL, 'zh_CN');

// Specify location of translation tables

bindtextdomain("home", ".");

// Choose domain

textdomain("home");

// Translation is looking for in ./locale/zh_CN/LC_MESSAGES/home.mo now

$str = gettext('home'); //也可以使用_('home')

print <<

{$str}

HTML;

运行这个脚本, 看看, 是不是输出正确的中文了呢?

添加其它语言也很容易,不需要修改程序,只需要像对待中文一样,生成一个mo文件,并安装到系统中对应的目录即可。切换不同的语言仅仅是修改当前的locale就行了。

http://www.lbrq.cn/news/2432575.html

相关文章:

  • 网页设计教程文字与图片广州网站设计专注乐云seo
  • 嘉兴网站制作案例百度快速优化推广
  • 网站 建设 内容 安排免费留电话的广告
  • 网优 是什么网站五年级上册语文优化设计答案
  • 焦作会计做继续教育在哪个网站建网站有哪些步骤
  • 企业网站报价方案模板下载搜索推广渠道有哪些
  • 学网站开发培训机构全网关键词搜索工具
  • 四川城乡建设委员会官方网站关键词首页排名优化
  • 淄博网站建设费用郑州seo招聘
  • 购物网站运营人力资源培训
  • 商城网站设计费用网络营销案例有哪些
  • 仿牌网站安全电商培训课程
  • 自适应网站做百度推广找客户资源的软件免费的
  • 玩具网站建设策划书最好的bt磁力搜索引擎
  • wordpress short ping杭州市优化服务
  • php动态网站开发 唐四全达seo
  • 做网站搜索结果的代码友链通
  • 技术支持 天空网络-临汾做网站重庆人力资源和社会保障网
  • 国家工业和信息化部网站备案系统sem是什么检测分析
  • 北流建设局网站电商平台营销策划方案
  • 建设网站前的市场分析主要包括哪些内容网络营销策划推广公司
  • 建设银行的网站首页查询网入口
  • 嘉兴做毛织的有哪些网站济南网站建设哪家便宜
  • 有好的学网站建设的书吗网店推广分为哪几种类型
  • 公司请外包做的网站怎么维护搜索引擎营销的内容
  • 网站建设公司基本流程文职培训机构前十名
  • 深圳做网站应该怎么做深圳网络营销网站设计
  • 350做网站深圳新浪博客
  • 宁波建设工程报名网站十堰seo优化方法
  • 含山建设局网站辽源seo
  • 【并集查找】P4380 [USACO18OPEN] Multiplayer Moo S|省选-
  • 基于YOLOv5+pyQT6的目标检测系统通用项目模板
  • YOLOv5模型剪枝实战教程
  • Android埋点实现方案深度分析
  • 架构师--基于常见组件的微服务场景实战
  • es6中的symbol基础知识