是否有从多个 .po 文件生成所有 .mo 文件的命令?

Posted

技术标签:

【中文标题】是否有从多个 .po 文件生成所有 .mo 文件的命令?【英文标题】:Is there a command to generate all .mo files from multiple .po files? 【发布时间】:2021-05-13 17:04:25 【问题描述】:

我在 GNU gettext 的标准目录结构中有多个 .po 文件:

locales/
├── en_US
│   └── LC_MESSAGES
│       └── myapp.po
└── zh_TW
    └── LC_MESSAGES
        └── myapp.po

我知道我可以编写一个脚本,使用msgfmt 从这些 .po 文件生成 .mo 文件。比如:

# generate-mo-files.sh

for PO_FILE in locales/*/LC_MESSAGES/*.po
do
    MO_FILE="$PO_FILE/.po/.mo"
    msgfmt -o "$MO_FILE" "$PO_FILE"
done

但是,为我从事的每个项目编写此脚本有点乏味。这种用例有现成的脚本吗?

【问题讨论】:

【参考方案1】:

如果您使用的是 GNU 自动工具,您可以使用脚本 gettextize 为您的项目准备 gettext。其他构建系统也有类似的特殊工具。

否则,您的小脚本正是正确的解决方案。

【讨论】:

以上是关于是否有从多个 .po 文件生成所有 .mo 文件的命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 php 中运行或加载 .po/.mo 文件以进行本地化

如何将gettext .mo文件转换为.po文件[关闭]

生成本地化文件的最简单方法

php源代码到PO文件生成器

.Mo翻译文件结构解析

如何使用 poedit 从 js 文件生成 po 文件