aug*_*tin 6 linux bash gettext msgfmt
我正在为一个非常具体的项目创建一个 bash 脚本,并且字符串必须是可翻译的。
我已成功遵循以下教程:gettext 支持 bash 脚本: http:
//mywiki.wooledge.org/BashFAQ/098
但是,本教程的一部分要求运行 msgfmt 命令来为每种语言生成已编译的 .mo 文件。为了使其工作,我必须以 root 身份运行该命令,并且 .mo 文件保存在 /usr/share/locale/(lang)/LC_MESSAGES 下。
我希望将 .mo 文件保存在相对于 bash 脚本的子目录中,这很容易。但是,当脚本运行时,bash 必须知道必须在适当的自定义位置查找 .mo 文件。
如何实现这一目标?
我想做的是让整个项目以及 .pot 和 .mo 文件成为独立的,并且能够更新翻译而无需使用 sudo。
你玩过环境变量吗TEXTDOMAINDIR
您可能会在info页面中找到比在man页面中更多的信息:
info gettext
Run Code Online (Sandbox Code Playgroud)
或者
info gettext 'Variable Index'
Run Code Online (Sandbox Code Playgroud)