fbpx
维基百科

gettext

gettextGNU国际化与本地化(i18n)函数库。它常被用于编写多语言程序。

gettext
開發者GNU项目
当前版本
  • 0.22.3 (2023年10月4日;穩定版本)[1]
源代码库
  • git.savannah.gnu.org/cgit/gettext.git
操作系统跨平台
类型软件开发翻译
许可协议LGPL(函数库),GPL(工具),GFDL/GPL(文档)
网站www.gnu.org/software/gettext/

开发 编辑

程序源代码需要进行修改以响应GNU gettext请求。多数编程语言均已通过字符封装的方式实现了对其的支持。为了减少输入量和代码量,此功能通常以标记别名“_”的形式使用,所以例如以下C语言代码:

printf(gettext("My name is %s.\n"), my_name); 

应当写作:

printf(_("My name is %s.\n"), my_name); 

gettext使用其中的字符串寻找对应的其他语言翻译,若没有可用翻译则返回原始内容。

C语言外,GNU gettext还支持C++Objective-CPascal/Object Pascalsh脚本、bash脚本、Python、GNU CLISPEmacs Lisp、ibrep、GNU SmalltalkJava、GNU awkwxWidgets(通过wxLocale类)、YCP(YaST2语言)、TclPerlPHP、Pike、Ruby以及R。用法均与在C语言上类似。

xgettext程序从源代码生成.pot文件,作为源代码中需翻译内容的模板。一个典型的.pot文件条目应当是这样的:

#: src/name.c:36 msgid "My name is %s.\n" msgstr ""

註解被直接放置在字符串前,用于帮助翻译者理解原文的內容:

/// TRANSLATORS: Please leave %s as it is, because it is needed by the program. /// Thank you for contributing to this project. printf(_("My name is %s.\n"), my_name); 

本例中的註解是以 ///开头的,其作用是用于xgettext程序生成.pot模板文件。

xgettext --add-comments=/// 

在.pot文件中的注释应为以下形式:

#. TRANSLATORS: Please leave %s as it is, because it is needed by the program. #. Thank you for contributing to this project. #: src/name.c:36 msgid "My name is %s.\n" msgstr ""

翻译 编辑

翻譯者需要處理的對象是.po文件,它是由msginit程序从.pot模板文件生成的。例如使用msginit初始化法语翻译文件时,我们运行以下命令:

msginit --locale=fr --input=name.pot 

这将会使用指定的name.pot在当前目录创建一个fr.po,其中的一个条目应该是以下形式的:

#: src/name.c:36 msgid "My name is %s.\n" msgstr ""

翻译者需要手工或使用类似Poedit、gtranslator、OmegaTEmacs等工具的相应模式编辑该文件。翻译完成后,文件应为如下的样子:

#: src/name.c:36 msgid "My name is %s.\n" msgstr "Je m'appelle %s.\n"

最后.po文件需要使用msgfmt编译为.mo文件以用作发布。

執行 编辑

使用Unix类型操作系统的用户只需设置环境变量中的LC_MESSAGES(但是ubuntu linux 是用LANG)但是ubuntu linux 是用LANG[來源請求],程序将自动从相应的.mo文件中读取语言信息。

参考 编辑

  1. ^ https://ftp.gnu.org/gnu/gettext/; 检索日期: 2023年10月5日.

另见 编辑

外部链接 编辑

  • Gettext主页(页面存档备份,存于互联网档案馆
  • 使用gettext本地化PHP网站 (页面存档备份,存于互联网档案馆) - 解些和示例。
  • Gettext Commons - Java gettext工具集 (页面存档备份,存于互联网档案馆
  • Autotools教程(页面存档备份,存于互联网档案馆
  • Gorm PO文件编辑器 (页面存档备份,存于互联网档案馆
  • Windows 下的对应函数为 LoadString,直接读取适合当前 locale/lcid 设置的资源字符串 (页面存档备份,存于互联网档案馆

gettext, 此條目没有列出任何参考或来源, 2009年9月19日, 維基百科所有的內容都應該可供查證, 请协助補充可靠来源以改善这篇条目, 无法查证的內容可能會因為異議提出而被移除, 是gnu国际化与本地化, i18n, 函数库, 它常被用于编写多语言程序, 開發者gnu项目当前版本0, 2023年10月4日, 穩定版本, 源代码库git, savannah, cgit, git操作系统跨平台类型软件开发, 翻译许可协议lgpl, 函数库, 工具, gfdl, 文档, 网站www, software, 目录,. 此條目没有列出任何参考或来源 2009年9月19日 維基百科所有的內容都應該可供查證 请协助補充可靠来源以改善这篇条目 无法查证的內容可能會因為異議提出而被移除 gettext是GNU国际化与本地化 i18n 函数库 它常被用于编写多语言程序 gettext開發者GNU项目当前版本0 22 3 2023年10月4日 穩定版本 1 源代码库git wbr savannah wbr gnu wbr org wbr cgit wbr gettext wbr git操作系统跨平台类型软件开发 翻译许可协议LGPL 函数库 GPL 工具 GFDL GPL 文档 网站www wbr gnu wbr org wbr software wbr gettext wbr 目录 1 开发 2 翻译 3 執行 4 参考 5 另见 6 外部链接开发 编辑程序源代码需要进行修改以响应GNU gettext请求 多数编程语言均已通过字符封装的方式实现了对其的支持 为了减少输入量和代码量 此功能通常以标记别名 的形式使用 所以例如以下C语言代码 printf gettext My name is s n my name 应当写作 printf My name is s n my name gettext使用其中的字符串寻找对应的其他语言翻译 若没有可用翻译则返回原始内容 除C语言外 GNU gettext还支持C Objective C Pascal Object Pascal sh脚本 bash脚本 Python GNU CLISP Emacs Lisp ibrep GNU Smalltalk Java GNU awk wxWidgets 通过wxLocale类 YCP YaST2语言 Tcl Perl PHP Pike Ruby以及R 用法均与在C语言上类似 xgettext程序从源代码生成 pot文件 作为源代码中需翻译内容的模板 一个典型的 pot文件条目应当是这样的 src name c 36 msgid My name is s n msgstr 註解被直接放置在字符串前 用于帮助翻译者理解原文的內容 TRANSLATORS Please leave s as it is because it is needed by the program Thank you for contributing to this project printf My name is s n my name 本例中的註解是以 开头的 其作用是用于xgettext程序生成 pot模板文件 xgettext add comments 在 pot文件中的注释应为以下形式 TRANSLATORS Please leave s as it is because it is needed by the program Thank you for contributing to this project src name c 36 msgid My name is s n msgstr 翻译 编辑翻譯者需要處理的對象是 po文件 它是由msginit程序从 pot模板文件生成的 例如使用msginit初始化法语翻译文件时 我们运行以下命令 msginit locale fr input name pot 这将会使用指定的name pot在当前目录创建一个fr po 其中的一个条目应该是以下形式的 src name c 36 msgid My name is s n msgstr 翻译者需要手工或使用类似Poedit gtranslator OmegaT或Emacs等工具的相应模式编辑该文件 翻译完成后 文件应为如下的样子 src name c 36 msgid My name is s n msgstr Je m appelle s n 最后 po文件需要使用msgfmt编译为 mo文件以用作发布 執行 编辑使用Unix类型操作系统的用户只需设置环境变量中的LC MESSAGES 但是ubuntu linux 是用LANG 但是ubuntu linux 是用LANG 來源請求 程序将自动从相应的 mo文件中读取语言信息 参考 编辑 https ftp gnu org gnu gettext 检索日期 2023年10月5日 另见 编辑 nbsp Free software主题 国际化和本地化 翻译工具外部链接 编辑Gettext主页 页面存档备份 存于互联网档案馆 使用gettext本地化PHP网站 页面存档备份 存于互联网档案馆 解些和示例 Gettext Commons Java gettext工具集 页面存档备份 存于互联网档案馆 Autotools教程 页面存档备份 存于互联网档案馆 gted GetText EDitor和工具集成 Gorm PO文件编辑器 页面存档备份 存于互联网档案馆 Windows 下的对应函数为 LoadString 直接读取适合当前 locale lcid 设置的资源字符串 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Gettext amp oldid 75022627, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。