.MO mo 代表 Machine Object,这是一个二进制数据文件,是 po 文件编译后的产物,通常我们汉化程序或者主题时,如果没有 pot 或者 po 文件的话,可以用 mo 文件反编译出 po...文件进行多语言的翻译。...如果没有 .POT 文件充当一个模板,原先翻译好的 .po 文件就会被改动,新的待翻译内容和已被翻译的内容掺杂在一个文件中,如何解析拆分?...从工程层面上就会变的复杂,因此一个简单的翻译流程就是,先生成模板文件,通过模板文件产出翻译内容,程序则直接使用翻译内容,即 .po 文件,或将他们编译成二进制使用。...> 除了上面的「注释」「flag」两类外,还有一种语法是表示单复数的,在翻译中可能需要对这类情况需要进行处理。
不过现在采用的是简单轻便的翻译方法:通过 .po 文件。 通过 .po 文件,任何人都能翻译你的插件或者主题,只要他熟悉插件使用的原始语言。...在确保输出的文本可以被本地化之后,你必须设置你的插件或者主题的 .mo 文件的路径(.mo 是编译后的 .po 文件,它是在 poEdit 保存的时候会自动产生的)。...如果你不准备翻译该插件,你可以保存.po 文件并把它和插件一起分发出去,让别人能够直接使用它进行翻译。 第七步:翻译插件 一旦所有需要翻译的文本都找到了,就该开始翻译插件了。...在这里, 通过保存新文件,我将自动生成一个可以让别人使用的 .po的文件,和一个可以被 WordPress 直接读取来本地化插件的 .mo 文件。...总结 本地化一个 WordPress 插件是让更多地区用户使用你的插件的一个非常好的方法。本地化首先需要插件作者保证插件能够真正本地化,最后翻译者使用 PoEdit 进行翻译。
Loco 介绍和使用 我前面介绍过,使用 poEdit 汉化 WordPress 插件和主题,今天介绍一个新的服务:Loco,让你可以在浏览器中直接翻译 WordPress 主题和插件: Loco 提供了一个和...Poedit 一样 PO 文件编辑器,并且操作非常方便,只需要将你的 PO 文件直接拖进去即可: 上传之后,Loco 就会分析 PO 文件,并准备好要翻译的文本,你翻译好之后,就可以下载 .po 或者....mo 文件,或者直接存在 Loco 服务器中: Loco 的 WordPress 插件 为了方便大家使用,Loco 还自己开发了 WordPress 插件:Loco Translate,让你直接在...WordPress 后台翻译插件或者主题: 选择可以翻译的主题或者插件,就可以进行翻译了: 当你翻译完成保存 PO 文件,Loco 会在相同的位置保存编译好的 MO 文件,这样翻译就可以直接使用了...从源代码中直接提取要翻译的字符串。 原生的 MO 文件编译器,并且无需系统支持 Gettext。 支持 PO 的特性,包括留言,引用,负数等。 支持配置 PO 文件的备份。
建立翻译文件路径,在主文件目录下建立中文翻译路径 ..../locale是存放翻译文件的路径,第三个参数是是否使用unicode,第五行languages参数指定要使用的语言存放的子目录,这里cn表示使用....,因为en目录下lang.mo文件未做任何的翻译,默认字符串不被替换....>>> msgfmt.py messages.po 将生成一个名为messages.mo的文件 4.把这个mo文件放在正确的位置..../local/cn/LC_MESSAGES/i18ntest.mo 这样程序启动时就会读取这个资源文件,替换对应的文本,实现国际化了。 注意:如果使用utf格式保存,po文件不能有BOM头。
后者允许你在一个python模块内进行本地化,非常适用于在应用程序运行时切换你的语言。...---- 2.通用步骤 (1)无论是使用哪一套API,都必须提取可以翻译的字符串并且生成一个翻译模板文件.pot (2)然后生成对应于不同语言翻译的文件.po (3)我们在应用程序中使用是的二进制格式的....mo文件,由.po转换而来 现在举一个简单例子来示范上述步骤 (a)创建一个工程目录py_i18n,创建程序主文件my_app.py ?...这里msgid后面的字符串就是需要翻译的字符串,msgstr后面就是译文字符串。对en.po重复(e)操作 (f)使用msgfmt命令从po生成二进制文件mo,也是应用程序需要使用的文件。...到目前为止所有准备工作完成 补充: 注:上面的步骤也可以用poedit这款软件完成,官网上有详细的使用教程 另外,一旦python代码中要翻译的字符串发生变化(修改、增删),需要重新生成po文件时,可以用
tornado中使用i18n需要下面两个工具 两个工具:pygettext,msgfmt,两个相关文件:po文件和mo文件 pygetext和msgfmt的使用方法: 编写python代码文件 test.py...,更改文件后缀 mv messages.pot messages.po 配置msgstr值 生成一个名为messages.mo文件: msgfmt messages.po 建立目录locale/cn/LC_MESSAGES.../locale’,unicode=True) 三个参数: 作用域名,用于限定翻译文件的主名 路径,存放翻译文件的路径 unicode,是否使用unicode(如果应用程序是unicode的,此处应设为True.../locale',languages=['cn']).install(True) >>>print _("good") 在tornado中使用时: $xgettext -L python -k=_ -o...-name \*.py) $(find template/ -name \*.html) 查找所有需要翻译的相关项生成 po 文件 $msgfmt openquant.po -o locale/zh_CN
Typecho 原生自带了翻译功能,但不支持随客户端语言自动切换。 我们可以通过获取客户端语言,替换原生翻译功能所调用的翻译文件,来实现自动切换翻译。...但是官方提供的翻译文件都是 .po 文件,Typecho 并不支持 .po 文件,可以将 .po 文件编译成 .mo 文件,参考这篇文章:gettext msgfmt安装及po/mo文件编译转换 我把转换好的文件也上传到我的项目仓库了...:GitHub / 我自己搭建的GitLab 直接下载:点击下载 下载完解压得到 .mo 文件,将这些文件放到 Typecho 根目录下的 /usr/langs/ 文件夹下,如果没有,需要手动创建。...在控制台 -> 设置 -> 基本 设置页面就可以看到语言选项了。 配置自动切换语言: 打开 Typecho 根目录下的 /var/Typecho/I18n.php 文件(注意是文件不是文件夹)。...可以根据自己的需要,进行相应的修改。 未经允许不得转载:w3h5 » Typecho配置多国语支持,检查客户端语言自动切换翻译
wordpress应该很多小伙伴使用,国外一款很知名的博客系统,在国内也有很多用户使用。 为什么要汉化呢?...汉化我使用的是Poedit这个工具,你可以去Poedit官网进行下载,也可以在本文留言发送到你的邮箱, 2、在wordpress主题包找到languages文件夹,在里面找到后缀为 .po 和 .mo...文件这两个文件,然后复制分别复制一份并分别改名为zh_CN.po 和zh_CN.mo就好哦。...3、利用Poedit打开zh_CN.po这个文件,你可以看到如下图所示的界面,然后选择每段源文件进行翻译操作。...4、翻译完成以后,将zh_CN.po文件保存到languages文件夹中,汉化过程就基本告一段落了。
04 提取文本进行翻译 一旦应用所有_()和_l()都到位了,你可以使用pybabel命令将它们提取到一个*.pot文件中,该文件代表可移植对象模板*。...在每个语言存储库中创建的messages.po文件使用的格式是语言翻译的事实标准,使用的格式为gettext。...messages.po文件是一种用于翻译的源文件。当你想开始使用这些翻译后的文本时,这个文件需要被编译成一种格式,这种格式在运行时可以被应用程序使用。...messages.po旁边添加messages.mo文件。....mo文件是Flask-Babel将用于为应用程序加载翻译的文件。 在为西班牙语或任何其他添加到项目中的语言创建messages.mo文件之后,可以在应用中使用这些语言。
在 hello.py 的同级目录创建一个叫 babel.cfg 的文件,内容如下: ? image 生成翻译模板 这样 babel 就知道要从哪些位置搜索要翻译的字符串了。...然后我们用 pybabel 生成要翻译的 PO 模板文件,这个命令是 babel 这个工具包带来的,生成翻译模板命令如下: $ pybabel extract -F babel.cfg -o messages.pot...接下来我们就可以进行翻译了,修改translations/zh_Hans_CN/LC_MESSAGES/messages.po文件,将其中的内容翻译过来: # Chinese (Simplified,...编译翻译结果 翻译完后执行下面的命令,为其编译出 message.mo 文件: $ pybabel compile -d translations 如果上述命令无法生成 messages.mo 文件,那你需要将...更新后需要用前面的命令重新生成 messages.pot 文件,然后使用下面的命令将更新的内容 merge 到原来的翻译中: $ pybabel update -i messages.pot -d translations
/zh/LC_MESSAGES/messages.po 文件里。...在该文件中我们可以给需要翻译的字符串进行翻译: # Chinese translations for PROJECT. # Copyright (C) 2018 ORGANIZATION # This...翻译完后执行下面的命令: $ pybabel compile -d translations 这时会编译出 message.mo 文件。...如果上述命令无法生成 messages.mo 文件,那你需要将 message.po 中的 #, fuzzy 删除。 编译完成后翻译就已经生效了,这时来看看我们的网页: ?...image ---- 更新翻译 当我们修改了 messages.po 文件中的翻译时,可用以下命令更新: pybabel update -i messages.pot -d translations 然后重新执行编译命令
如何使用poedit 翻译wordpress .po文件 汉化英文模板 简单介绍下,把po文件直接导入poedit 就可以编辑了。...不过有时候根据软件的使用语言不通,编辑后的po文件不一定能直接读取。...举例:下面是我汉化的主题languages文件夹,把en_US.po导入poedit翻译后,因为我的wordpress主语言是中文简体,所以最后保存的时候要另存为zh_CN.po文件才能被识别出来。...导入poedit的界面,左边就是po文件中出现的要翻译的英文。点击左边的英文,在下图的“翻译”栏里写上翻译后的中文,最后直接保存就可以了,会自动生成po和mo文件的。 点击下载Poedit
文件,cn代表中文,en表示英文,使用linux下的msginit命令,中间有停顿,回车即可,依次生成cn.po和en.po文件。...创建中文po文件: msginit -l cn -i i18n_demo.pot 创建英文po文件: msginit -l en -i i18n_demo.pot 5)编辑上一步生成的po文件,切记将...二进制文件,使用python的i18n工具msgfmt.py,且需在代码所在目录下提前创建以下目录: locale/cn/LC_MESSAGES/ locale/en/LC_MESSAGES/ 指定中文...mo文件输出路径到locale/cn/LC_MESSAGES/,英文的mo文件路径为locale/en/LC_MESSAGES/,mo文件名称必须相同,都是i18n_demo.mo。...创建中文mo文件: python msgfmt.py -o locale/cn/LC_MESSAGES/i18n_demo.mo cn.po 创建英文mo文件: python msgfmt.py -o
2、多语言文件 语言文件主要是指三个文件:.mo文件,.po文件,.pot文件,百度上资料也很多,具体可以查看这个网址:http://shandian.biz/278.html 这里简单说明如下: 1、...2、po文件,是从原始pot文件对应的翻译文件,生成这个文件需要用到一个poedit软件。 3、mo文件,是编译后的po文件,程序可以直接读取,个人理解这么设置的目的是提高加载效率。...这里说明一点,这个pot、po、mo文件是一个通用规则,不是python首创的,很多著名的开发语言都支持上述i18n解决方案。...2.使用poEdit生成po文件。...a、这里提到的外部工具poEDIT有中文版本,请自行到https://poedit.net去下载. b、读取pot文件,翻译生成po文件,这个需要手动逐条完成 。
LOCALE_PATHS = [ os.path.join(BASE_DIR, 'locale'), # 翻译文件所在目录,请手动创建目录 ] 安装 gettext Django 框架具有很好的...文件( LOCALE_PATHS 对应语言目录下 - 具体看下图,这个里面就是我们手动写翻译的地方) django.po 文件: 如果执行命令:python manage.py makemessages...那么可能是:gettext 版本不对 或者 安装后没有加入到环境变量 手工翻译需要的 msgid 找到 settings 里面配置的 LOCALE_PATHS 下的 django.po 文件,开始你的编辑之路...msgid: 需要翻译的文案 msgstr: 翻译后的文案 在代码中看到:_("这种就是国际化的标志,我们只需要翻译下就 OK") 例子: 最后一步就是 编译 编译成功后会在 django.po 的对应目录生成...django.mo 文件 python manage.py compilemessages (joyoo) E:\yinzhuoqun\djangos\joyoo>python manage.py compilemessages
python中使用gettext进行语言国际化的方法 1.编辑源代码, 保存为gettextdemo.py import gettext catalogs = gettext.find("example..., 可以使用的工具为pygettext.py 或者GNU工具 xgettext 这里我使用xgettext, MAC上使用homebrew 安装, 输入命令: >brew install xgettext..." 修改为: msgid "this message" msgstr "translated message" 4.将po文件转换成.mo...二进制文件, cd locale/en_US/LC_MESSAGES/ msgfmt -o example.mo example.po可以看到转换后生成的mo是二进制文件,而po,pot都是文本文件...这一步很关键,我在弄的时候没注意到这一步, 直接把.po文件复制成.mo文件, 导致出现以下类似的情况, 掉到坑里,半天爬不出来,汗~ File "C:\env\lib\gettext.py", line
二、实现步骤 2.1 为翻译字符串添加钩子 1) py文件 将需要翻译的字符串统一使用gettext_lazy或gettext包裹 from django.utils.translation import...和django.mo编译过的翻译文件 PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__name__))) LOCALE_PATHS...= ( os.path.join(PROJECT_ROOT, 'locale'), ) 在项目根目录下生成locale目录,用于保存翻译消息文件(.po和.mo格式的) 在终端输入 ( 大坑插入...en 文件 ( 这里的en 是之前所设置的名字,需要与setting中语言配置元组中第一个数据一样,此时我们需要都将中文翻译成英文,注意!!不进行翻译会默认使用其他语言!...和django.mo编译过的翻译文件 LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), ) 效果 可以看到中文都翻译成了自己翻译的英文 配置本地化中间件
/install.sh force (第二个错误完全是我自己习惯使用root权限进行操作而导致的,其实这样并不好,还是推荐使用普通用户) 注:在安装过程中,会有一些需要你选择的选项,都选择默认和yes就可以了...,搜索unity tweak tool 软件,打开之后就可以在“主题”里面选择以Macbuntu开头的主题就可以了 当然你如果想要更加好的体验,需要对后面的“图标”,“指针”,“字体”进行一一调整...; sudo msgfmt -o unity.mo ~/Mac.po;rm ~/Mac.po;cd 全部完成安装之后,重启你的电脑 之后去下载一个Mac系统的壁纸就可以得到下图了: 希望各位读者可以根据上面的步骤正常的完成安装...; sudo msgfmt -o unity.mo ~/Mac.po;rm ~/Mac.po;cd 不喜欢可以按着下面操作恢复 cd && wget -O Ubuntu.po http://drive.noobslab.com...o unity.mo ~/Ubuntu.po;rm ~/Ubuntu.po;cd 替换启动板上的ubuntu-logo为mac-logo wget -O launcher_bfb.png http:/
所以,如果您使用的是 WordPress 2.6.1 或更老的版本,强烈建议您进行升级。...本中文版由WordPress中文团队制作,做了以下修改(相对于英文原版): 加入wp-content/languages/zh_CN.mo中文包; 加入了 zh_CN.po,方便大家对中文包自行修改;...Dashboard 插件,方便大家得到更多的中文信息(插件需用户自行启动) 请按以下步骤进行升级: 备份你修改过的文件,并上传新版本文件直接覆盖掉旧版本文件; 上传所有新文件; 在浏览器中打开 http...希望各位在使用的过程中积极基础您的意见和建议。 WordPress 中文团队在制作简体中文(汉化)版时。默认会做以下工作: 使用 WordPress 官方发布的最新压缩包为基础文件。...使用官方提供的 POT 文件将前一版本语言包进行更新,并进行扩展翻译以及词条校对。 翻译 Readme.html 说明文件。
这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍 。 尽管大多数 PHP 开发人员都知道如何使用 Composer ,但并不是所有的人都在有效地或以最好的方式使用它。...例如,使用形如 "symfony/symfony": "^3.1",有可能存在在 3.2 版本废弃的东西,而这会破坏你的应用程序在该版本下通过测试。...比如创建了一个库,要使用 symfony/yaml 库进行 YAML 解析,就应这样写: "symfony/yaml": "^3.0 || ^4.0" 这表示该库能从 Symfony 3.x 或 4.x...最佳方案应该这样做,用下面一行代码在项目根目录创建一个 .gitattributes 文件,它会告诉 git 不要试图对 composer.lock 文件进行合并操作: /composer.lock -...查看 [the result for symfony/symfony:^3.1 Tip 20: 在生产环境中使用使用权威类映射文件 应该在生产环境中 生成权威类映射文件 。
领取专属 10元无门槛券
手把手带您无忧上云