Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1722891
  • 博文数量: 199
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 6186
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-30 11:01
个人简介

Linuxer.

文章存档

2015年(4)

2014年(28)

2013年(167)

分类: LINUX

2013-03-31 11:11:37

  1. bindtextdomain()

    参考:,功能是:设置包含 LC_MESSAGES 分类 (catalog) 的 locale 目录,程序的 .mo 文件就保存到其下的目录中。LC_MESSAGES 是 locale 的一个分类 (catalog),和其它的分类,如:LC_TIME、LC_CTYPE,是平级的概念。

    bindtextdomain() 有两个参数,第一个叫 domainname,所谓 domain 即领域范围,它的含义是 .mo 文件将应用在哪个、哪些程序中,可以将 domain 对应为工程的概念,上面的示例工程叫 GetTextTest,所以将 domainname 也定义为 "GetTextTest"。第二个参数是定义保存 .mo 文件的 locale 相关目录的路径,可以为相对或绝对路径,示例中设置为 "locale/",表示检查当前目录下的 locale 目录.

    domainname、locale 目录、程序当前活动 locale,这三者会决定你需要将 .mo 放到 locale 目录的具体位置,形式为:

    [locale 目录]/[活动 locale]/LC_MESSAGES/[domainname].mo

    比如,示例的 .mo 必需命名并保存为:

    [GetTextTest 程序当前目录]/locale/zh_CN.GBK/LC_MESSAGES/GetTextTest.mo
  2. textdomain()

    参考:,功能是:设置后来使用 gettext() 时的 domain。示例中设置:textdomain("GetTextTest")。

  3. gettext()

    参考:, 功能是:替换程序中的 msgid 为 .mo 中的 msgstr,并返回 msgstr。示例中活动 locale 为 zh_CN.GBK 时,gettext("Hello World!") 将返回文件 locale/zh_CN.GBK/LC_MESSAGES/GetTextTest.mo 中对应的 GBK 编码的 msgstr,即 "你好,世界!"

    如果不存在 locale/zh_CN.GBK,则会到 locale/zh_CN 中查找 .mo。

阅读(1889) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~