Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2030837
  • 博文数量: 433
  • 博客积分: 918
  • 博客等级: 准尉
  • 技术积分: 3218
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:21
个人简介

你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o

文章分类

全部博文(433)

分类: 嵌入式

2012-11-27 16:31:19

  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。

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