这里需要 gettext 的 msgfmt 。 安装 gettext : 这里以 CentOS 为例,其他平台安装命令放在最后面。 install -y gettext 如果您的系统不支持 sudo 命令,需要安装 sudo: yum install sudo 文件转换: 然后执行转换命令,将 .po 文件转换成 .mo 文件: msgfmt -o /langs/languages-master/en_US.mo /langs/languages-master/en_US.po #msgfmt -o 新文件 源文件 注意顺序,不然会报错: msgfmt: error while opening "/langs/languages-master/ja_JP_.mo" for reading: No such file or directory 更多 msgfmt 命令可以参考: msgfmt --help 通过包管理器安装GNU gettext: 操作系统 包管理器 安装命令 Windows scoop scoop install gettext
locations or Tcl/Tk interpreter GEN git-gui INDEX lib/ * tclsh failed; using unoptimized loading MSGFMT /configure --prefix=<...path> --without-tcltk 6. make && make install仍会出错, 提示: SUBDIR templates MSGFMT po/build/locale/bg/LC_MESSAGES/git.mo /bin/sh: msgfmt: not found make: *** [po/build/locale/bg/LC_MESSAGES /git.mo] Error 127 解决办法: make NO_CURL=1 NO_MSGFMT=YesPlease NO_TCLTK=YesPlease NO_GETTEXT=YesPlease
tornado中使用i18n需要下面两个工具 两个工具:pygettext,msgfmt,两个相关文件:po文件和mo文件 pygetext和msgfmt的使用方法: 编写python代码文件 test.py pygetext test.py 生成messages.pot文件,更改文件后缀 mv messages.pot messages.po 配置msgstr值 生成一个名为messages.mo文件: msgfmt -name \*.py) $(find template/ -name \*.html) 查找所有需要翻译的相关项生成 po 文件 $msgfmt openquant.po -o locale/zh_CN
local/Cellar/gettext/0.19.2/, 进入/usr/local/Cellar/gettext/0.19.2/bin 可以看到有很多可执行文件 , 我们这里需要用到xgettext 和 msgfmt msgid "this message" msgstr "translated message" 4.将po文件转换成.mo 二进制文件, cd locale/en_US/LC_MESSAGES/ msgfmt
/Tools/i18n/目录下的msgfmt.py,Linux下命令为: python msgfmt.py lang.po(widows下的话,将lang.po文件拷贝到. /Tools/i18n/目录下,运行命令行窗口,到改目录下键入:msgfmt.py lang.po),生成lang.mo,将该文件拷贝至. 还有就是注意修改文件头部分Content-Type的charset为合适的编码,比如utf8 3.编写好模板后,把扩展名修改为.po,运行Tools/i18n/msgfmt.py,生成二进制的资源文件 >>> msgfmt.py messages.po 将生成一个名为messages.mo的文件 4.把这个mo文件放在正确的位置.
github.com/milvus-io/milvus-sdk-go/v2/client""github.com/milvus-io/milvus-sdk-go/v2/entity""os")const (msgFmt )username := section.Key("username").String()password := section.Key("password").String()fmt.Printf(msgFmt err.Error())os.Exit(1)}defer c.Close()dbs, _ := c.ListDatabases(ctx)for _, db := range dbs {fmt.Printf(msgFmt
"This is a translatable string." msgstr "This is a translatable string." 6)创建mo二进制文件,使用python的i18n工具msgfmt.py 创建中文mo文件: python msgfmt.py -o locale/cn/LC_MESSAGES/i18n_demo.mo cn.po 创建英文mo文件: python msgfmt.py -o
编译翻译文件:使用`msgfmt`将`.po`文件编译为机器可读的`.mo`文件。 收起代码语言:TXTAI代码解释msgfmt-olocale/zh_CN/LC_MESSAGES/myapp.mopo/zh_CN.po编译程序:收起代码语言:TXTAI代码解释gcc-omyapp-I
drive.noobslab.com/data/Mac-15.10/change-name-on-panel/mac.po cd /usr/share/locale/zh_CN/LC_MESSAGES; sudo msgfmt drive.noobslab.com/data/Mac-15.10/change-name-on-panel/mac.po cd /usr/share/locale/zh_CN/LC_MESSAGES; sudo msgfmt drive.noobslab.com/data/Mac-15.10/change-name-on-panel/ubuntu.po cd /usr/share/locale/zh_CN/LC_MESSAGES; sudo msgfmt
changelog 生成 version.h 依赖库检测: pkg-config 工具缺失导致依赖检测失败 系统函数缺失: HarmonyOS SDK 可能没有提供 getpass 函数 翻译文件构建: msgfmt 3.5 问题五:翻译文件构建失败 错误信息: msgfmt --statistics --check --verbose --output-file=cs.mo cs.po make[1]: *** [ cs.mo] Segmentation fault: 11 原因分析:msgfmt 工具在构建翻译文件时出现段错误。 解决方案: 将翻译文件构建设为可选,失败不影响整体构建: # 构建主程序(跳过翻译文件,因为 msgfmt 可能有问题) make VERBOSE=1 whois mkpasswd || { echo"Error
/bin/sed checking whether NLS is requested... yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext...
但是官方提供的翻译文件都是 .po 文件,Typecho 并不支持 .po 文件,可以将 .po 文件编译成 .mo 文件,参考这篇文章:gettext msgfmt安装及po/mo文件编译转换 我把转换好的文件也上传到我的项目仓库了
missing from command line undefined reference to `__cxa_throw_bad_array_new_length’: 编译 libstdc++ 时,会使用命令 msgfmt 而 msgfmt 依赖 libstdc++.so.6,但编译时,gcc的编译系统会把 msgfmt 的依赖指向其自身的 libstdc++.so.6,而不是系统自带的libstdc++.so.6。 如果 gcc 的版本比较老,就会导致 libstdc++.so.6 与 msgfmt 不兼容。
用 msgfmt 编译 .po 为 .mo 文件,放入指定目录。运行脚本时自动加载对应语言的翻译。虽然 gettext 学习曲线稍陡,但它是实现 Shell 脚本国际化 的标准方案,值得深入学习。
反编译的工具是 msgfmt ,这个在 Ubuntu 上也是现有的。 │ │ ├─── New LANG.po <────────────────────╯ │ ╭─── LANG.gmo <─── msgfmt
/drive.noobslab.com/data/Mac/change-name-on-panel/mac.po cd /usr/share/locale/en/LC_MESSAGES; sudo msgfmt
gettext is requested... no checking for libintl.h... yes checking for gettext in libc... yes checking for msgfmt /usr/bin/msgfmt checking for dcgettext... yes checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext...
对en.po重复(e)操作 (f)使用msgfmt命令从po生成二进制文件mo,也是应用程序需要使用的文件。
locale/zh/LC_MESSAGES/ rm django.mo vim django.po 修改language配置项从CN->EN"Language: zh_EN\n" msgfmt
字串格式化 String s = S.fmt("hello %s", "world"); // hello world s = S.msgFmt("hello {0}", "world"); // hello