首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

多语言中的 .POT .PO .MO 和 xgettext

(命令行中),其功能是抽取给定的文件中可供翻译的字符串。...现在我们知道 .pot 文件是可以通过 xgettext 从代码文件中提取出来,根据英文全称我们知道这类文件是模板的概念,根据查阅资料得知,POT 文件是 PO 文件的模板文件。....MO mo 代表 Machine Object,这是一个二进制数据文件,是 po 文件编译后的产物,通常我们汉化程序或者主题时,如果没有 pot 或者 po 文件的话,可以用 mo 文件反编译出 po...从工程层面上就会变的复杂,因此一个简单的翻译流程就是,先生成模板文件,通过模板文件产出翻译内容,程序则直接使用翻译内容,即 .po 文件,或将他们编译成二进制使用。...参考链接: https://www.drupal.org/node/1814954 https://zh.wikipedia.org/wiki/Gettext https://www.gnu.org/software

1.8K31

python gettext使用

", fallback=True) _=t.ugettext print(_("this message")) 2.从源代码中抽取需要国际化的文本消息,并转换创建.pot文件, 可以使用的工具为pygettext.py...或者GNU工具 xgettext 这里我使用xgettext,  MAC上使用homebrew 安装, 输入命令: >brew install xgettext 即可自动完成安装, 安装后的默认目录.../local/en_US/LC_MESSAGES/example.po, 修改这个文件,替换要国际化的消息内容 如把 msgid "this message" msgstr "translated message...二进制文件,  cd locale/en_US/LC_MESSAGES/ msgfmt -o example.mo example.po可以看到转换后生成的mo是二进制文件,而po,pot都是文本文件...这一步很关键,我在弄的时候没注意到这一步, 直接把.po文件复制成.mo文件, 导致出现以下类似的情况, 掉到坑里,半天爬不出来,汗~ File "C:\env\lib\gettext.py", line

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    gettext模块实现Python国际化

    它提供两套API,一套高层的类似于GNU gettext的API和一套基于类的API。前者适用于单语言的场景,并且语言的选择通常依赖于用户的locale,会全局性地影响到你整个应用程序语言的转译。....mo文件,由.po转换而来 现在举一个简单例子来示范上述步骤 (a)创建一个工程目录py_i18n,创建程序主文件my_app.py ?...对en.po重复(e)操作 (f)使用msgfmt命令从po生成二进制文件mo,也是应用程序需要使用的文件。...先在工程目录下创建存放mo文件的locale目录,目录结构要和系统的locale目录结构一样: ? 然后在对应目录下生成不同的mo文件 ? ok!...目录下搜索对应语言的二进制APP_NAME.mo文件 gettext.bindtextdomain(APP_NAME, LOCALE_DIR) # 声明使用现在的域,可以使用多个域,便可以为同一种语言提供多套翻译

    2.5K10

    python国际化(i18n)和中英文切

    在主文件中引入gettext模块: # -*- coding: utf-8 -*- #!...上述实现的方法用在界面编程上可以实现中英文界面的切换,需要作个配置文件选择中/英文;或者在主文件开始时先获取操作系统本地语言然后根据获取结果再设置中/英文,这样就可以实现软件语言自适应;如果想实现软件语言在线切换...,对于python来说就比较困难了,需要在软件中加入界面刷新机制,不推荐,可以在切换中/英文设置后软件下一次启动生效(软件如Ulipad)....比如你在程序中是这样写的: gettext.install('i18ntest', '....cn目录是所对应的语言,LC_MESSAGES目录是gettext.py里要求的,mo文件必须和所定义的域同名,见 gettext.py的mofile = os.path.join(localedir

    1.2K10

    在龙芯迷你电脑上搭建开发环境

    既然如此,接下来就介绍如何在龙芯 UOS 系统上搭建 C/C++ 开发环境。 安装编译工具链 尽管龙芯生态尚不成熟,但其开发支持相对完备,已有多种编译器和工具链版本适配龙芯架构。...Widgets、Gui 等) qmake: Qt 项目构建工具,将 .pro 文件转换为 Makefile 以进行编译。...多语言支持 支持多种编程语言:支持 C/C++、Java、Python、JavaScript 等多种编程语言。 AI集成 智能问答:开发中遇到的技术问题,可直接向 AI 提问。...总结 至此,我们已经成功搭建了一套完整的 C/C++ 开发环境,接下来可以开始编写代码了。 尽管龙芯 UOS 系统的生态还在发展中,但作为国产操作系统,它具有巨大的发展潜力。...希望这篇文章能帮助你在龙芯迷你电脑上成功搭建高效的开发环境,祝你编码愉快!

    8310

    【Django | 开发】 (国际化项目&支持多语言)

    这个需要你自己事先手动翻译好,存放在专门翻译文件中,Django只是事后调用而已。...二、实现步骤 2.1 为翻译字符串添加钩子 1) py文件 将需要翻译的字符串统一使用gettext_lazy或gettext包裹 from django.utils.translation import...] # 用于存放django.po和django.mo编译过的翻译文件 PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(...(.po和.mo格式的) 在终端输入 ( 大坑插入: 由于在gettext版本低于0.15, 报错:Make sure you have GNU gettext tools 0.15 or newer...en 文件 ( 这里的en 是之前所设置的名字,需要与setting中语言配置元组中第一个数据一样,此时我们需要都将中文翻译成英文,注意!!不进行翻译会默认使用其他语言!

    73010

    CURL常用命令_db2常用命令

    # 将文件保存到本地并命名为gettext.html 5 curl -O http://www.gnu.org/software/gettext/manual/gettext.html 同样可以使用转向字符...”>”对输出进行转向输出 同时获取多个文件 1 curl -O URL1 -O URL2 若同时从同一站点下载多个文件时,curl会尝试重用链接(connection)。...,如: 1 # 当文件在下载完成之前结束该进程 2 $ curl -O http://www.gnu.org/software/gettext/manual/gettext.html 3 #######...-T "{file1,file2}" ftp://ftp.testserver.com # 从标准输入获取内容保存到服务器指定的文件中 curl -u ftpuser:ftppass -T - ftp...,首先需要将特殊字符转义在传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如: 1 curl -d "value%201" http://hostname.com 在新版本的CURL

    75030

    使用 poEdit 汉化 WordPress 插件和主题

    并且 .po 文件还有一个好处就是,如果源代码作了任何修改,翻译者不必查看源代码来重新翻译,因为所有需要翻译的文本都会自动保存在一个后缀名为 .po 文件中,翻译者所需要做的只是重新更新下 .po 文件...下面以插件为例,详细讲解 WordPress 插件和主题翻译的所有过程: 本地化的准备工作 WordPress 使用 GNU gettext 机制来实现本地化。...在确保输出的文本可以被本地化之后,你必须设置你的插件或者主题的 .mo 文件的路径(.mo 是编译后的 .po 文件,它是在 poEdit 保存的时候会自动产生的)。...这里需要注意的一件事情是,产生的任何 .mo 文件都应该以 domain 变量的值作为文件名的前缀。...如果插件的 domain 是 related_posts 的话,那么 .mo 文件将会被命名为 related_posts-zh_CN.mo(假设插件被翻译成中文)。

    1.3K20

    WMI使用技巧集

    5、 怎样写程控制让系统中的某个文件夹共享或取消共享.? 首先,这需要以有相应权限的用户登录系统才行。....比如如何列出一个目录下的所有文件,或者所有子目录;如何删除,舔加,更改文件?...例如,WMI 广泛利用 .NET 集合类并使用推荐的编码模式,如 .NET 异步操作的“委托”模式。因此,使用 .NET 框架的开发人员可以使用他们的当前技能访问有关计算机或应用程序的管理信息。... HDid = (string)mo.Properties["Model"].value;  MessageBox.Show(HDid  );  } 16、在.NET中轻松获取系统信息(1) -WMI篇...今天简单介绍一个在.NET中如何通过与WMI(Windows 管理规范)的通讯,从而得到获取信息的目的。

    84420

    Codeblocks配合gfortran作为fortran开发环境的配置方法

    ->选左侧view,找到右侧的internationalization里找中文选上,点OK后重启codeblocks,如果汉化不成功,请检查codeblocks.mo文件是否在正确的路径。    ...3,安装含有gfortran的gcc,注意:最好选择一个不带空格的路径,更不要用中文路径,如C:/gcc ,把路径记住。    ...4,让codeblocks使用gfortran,在codeblocks菜单中选 “设置”->“编译器和调试器”,选中“GNU GCC 编译器”,点“复制”,然后输入一个好记的名字如“my Gfotran...然后把下面的“C编译器”,“C++编译器”,“动态库链接器”都选成gfortran.exe,“调试器”选gdb.exe,其他的都不要动,确定。安装完成。    ...5,文件->新建->项目,选“empty project”,输入项目名,保存路径等,然后,在编译器下拉框中,必须选择“my Gfotran compiler”其余默认,建好项目后,选文件->新建->文件

    1.1K30

    RPM打包原理、示例、详解及备查

    /usr/share/locale/ca/LC_MESSAGES/hello.mo ......注意不要使用形如 /usr/bin/ 的硬编码, 应使用类似 %{_bindir}/hello 这样的宏来替代。...使用 推荐方法 来声明它们: 包含程序安装的相关文件 查找 %install 中的语言文件: %find_lang %{name} 添加编译依赖: BuildRequires: gettext 声明找到的文件...如果程序使用 GNU info 文件,你需要确保安装和卸载软件包,不影响系统中的其他软件,按以下步骤操作: 在 %install 中添加删除 ‘dir’ 文件的命令: rm -f %{buildroot...如果您想要在 %install 中安装一些文档,请将它们临时安装到 build 目录(不是 build root 目录)中,例如 _docs_staging,接着在 %files 中列出,如 %doc

    11.3K71

    C++ 环境设置

    在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 C++ 编译器 写在源文件中的源代码是人类可读的源。...以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。...当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。...... : 9、选择 C++ File 然后设置文件名为 main.cpp,然后点击 Add: 10、拷贝以下代码到 main.cpp 中: #include int main...如果是多个 C++ 代码文件,如 runoob1.cpp、runoob2.cpp,编译命令如下: $ g++ runoob1.cpp runoob2.cpp -o runoob 生成一个 runoob

    2.3K51

    配置C++的学习环境

    C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。...以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。...Mac OS X 上的安装 如果您使用的是 Mac OS X,最快捷的获取 GCC 的方法是从苹果的网站上下载 Xcode 开发环境,并按照安装说明进行安装。...当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。...如果是多个 C++ 代码文件,如 runoob1.cpp、runoob2.cpp,编译命令如下: $ g++ runoob1.cpp runoob2.cpp -o runoob 生成一个 runoob

    17110

    如何进行环境配置

    在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 C++ 编译器 写在源文件中的源代码是人类可读的源。...以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。...Mac OS X 上的安装 如果您使用的是 Mac OS X,最快捷的获取 GCC 的方法是从苹果的网站上下载 Xcode 开发环境,并按照安装说明进行安装。...当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。...如果是多个 C++ 代码文件,如 kxdang1.cpp、kxdang2.cpp,编译命令如下: $ g++ kxdang1.cpp kxdang2.cpp -o kxdang 生成一个 kxdang

    1.2K20

    如何进行内存设置

    在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 C++ 编译器 写在源文件中的源代码是人类可读的源。...以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。...Mac OS X 上的安装 如果您使用的是 Mac OS X,最快捷的获取 GCC 的方法是从苹果的网站上下载 Xcode 开发环境,并按照安装说明进行安装。...当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。...如果是多个 C++ 代码文件,如 kxdang1.cpp、kxdang2.cpp,编译命令如下: $ g++ kxdang1.cpp kxdang2.cpp -o kxdang 生成一个 kxdang

    1.3K20
    领券