加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在bash中使用gettext

发布时间:2020-12-15 21:50:11 所属栏目:安全 来源:网络整理
导读:如何在bash脚本中使用gettext? 我只找到了这个页面,但我不明白. Localization 我的脚本是这样编写的: #!/bin/bash . lang_file.sh echo $LANG_HELLO_WORLD 而lang_file.sh看起来像那样: #!/bin/bash LANG_HELLO_WORLD="Hello World" 我想使用gettext将lan
如何在bash脚本中使用gettext?

我只找到了这个页面,但我不明白.

Localization

我的脚本是这样编写的:

#!/bin/bash
 . lang_file.sh
 echo $LANG_HELLO_WORLD

而lang_file.sh看起来像那样:

#!/bin/bash
 LANG_HELLO_WORLD="Hello World"

我想使用gettext将lang_file.sh更改为某些内容,如下所示:

#!/bin/bash
 LANG_HELLO_WORLD=`some gettext command to get string in user language`

我想在Launchpad中使用代码,以便其他用户可以翻译它(.po,.pot文件)

抱歉英语不好,有什么建议吗?

解决方法

您需要执行以下步骤:

>确定您的项目名称是什么,gettext将其称为textdomain,您将需要它来检索项目的翻译.我们称之为“PRJ”.
>标记要翻译的字符串.以下代码段给出了示例:

(我们称之为PRJ.sh)

#!/bin/sh
alias GETTEXT='gettext "PRJ"'

## Use GETTEXT to mark the string you want to translate
HELLO_WORLD=$(GETTEXT "Hello world") 

echo "$HELLO_WORLD"

>制作.pot文件,以便翻译人员可以使用它.

运行以下命令,它只查找GETTEXT,您实际想要翻译的那个.

xgettext -o PRJ.pot  -L Shell --keyword --keyword=GETTEXT  PRJ.sh

>(可选)生成.po文件.

对于要覆盖的每个区域设置.

msginit -i PRJ.pot -l fr.UTF-8

请注意,“UTF-8”是建议的,否则msginit可能会错误地为您选择一些过时的编码.

>检索已完成的.po文件,并将其转换为.mo文件

(机器可以读取的文件)

msgfmt -v  fr.po -o fr.mo

>安装.mo文件

跑:

sudo install fr.mo /usr/share/locale/fr/LC_MESSAGES/PRJ.mo

现在您可以尝试结果:

LANGUAGE=fr  ./PRJ.sh

你应该看看Hello world的法语翻译.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读