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

django2.2 国际化实践

= [ os.path.join(BASE_DIR, 'locale'), # 翻译文件所在目录,请手动创建目录 ] 安装 gettext Django 框架具有很好的 I18N 和 L10N...的支持,其实现是基于 GNU 的 gettext, 所以要想在 Django 中使用 I18N 还需要先安装配置 gettext。...Make sure you have GNU gettext tools 0.15 意思是提示需要安装 gettext) brew install gettext brew link gettext -...那么可能是:gettext 版本不对 或者 安装后没有加入到环境变量 手工翻译需要的 msgid 找到 settings 里面配置的 LOCALE_PATHS 下的 django.po 文件,开始你的编辑之路...msgid: 需要翻译的文案 msgstr: 翻译后的文案 在代码中看到:_("这种就是国际化的标志,我们只需要翻译下就 OK") 例子: 最后一步就是 编译 编译成功后会在 django.po 的对应目录生成

64840

tornado with i18n

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/ mv messages.po locale/cn/LC_MESSAGES cn目录是所对应的语言,LC_MESSAGES是gettext.py文件里要求的 mo文件必须和所定义的域同名...gettext.py中有 modfile=os.path.join(localedir,lang,’LC_MESSAGES’,’%s.mo’ %domain) 测试: $python  .../LC_MESSAGES/openquant.mo 生成mo文件 完成相关文件的生成后,需要在代码中加载: tornado.locale.load_gettext_translations(options.I18N_PATH

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

    python gettext使用

    python中使用gettext进行语言国际化的方法 1.编辑源代码, 保存为gettextdemo.py import gettext catalogs = gettext.find("example...", fallback=True) _=t.ugettext print(_("this message")) 2.从源代码中抽取需要国际化的文本消息,并转换创建.pot文件, 可以使用的工具为pygettext.py...或者GNU工具 xgettext 这里我使用xgettext,  MAC上使用homebrew 安装, 输入命令: >brew install xgettext 即可自动完成安装, 安装后的默认目录...:/usr/local/Cellar/gettext/0.19.2/,  进入/usr/local/Cellar/gettext/0.19.2/bin 可以看到有很多可执行文件 , 我们这里需要用到xgettext.../local/en_US/LC_MESSAGES/example.po, 修改这个文件,替换要国际化的消息内容 如把 msgid "this message" msgstr "translated message

    1.6K20

    gettext模块实现Python国际化

    __main__":     print _("hello world") 这里用_()括起来的字符串就是需要翻译的字符串 (c)用xgetext来提取需要翻译的字符串生成翻译模板 ?...这里msgid后面的字符串就是需要翻译的字符串,msgstr后面就是译文字符串。对en.po重复(e)操作 (f)使用msgfmt命令从po生成二进制文件mo,也是应用程序需要使用的文件。...先在工程目录下创建存放mo文件的locale目录,目录结构要和系统的locale目录结构一样: ? 然后在对应目录下生成不同的mo文件 ? ok!...第一种是根据用户系统的语言配置(系统的环境变量LANGUAGE, LC_ALL, LC_MESSAGES, LANG),自动选择语言;第二种是在程序中实时切换语言。... = "my_app" LOCALE_DIR = os.path.abspath("locale") # 将域APP_NAME与LOCALE_DIR目录绑定, # 这样gettext函数会在LOCALE_DIR

    2.5K10

    带你认识 flask 国际化和本地化

    支持多语言的常规流程是在源代码中标记所有需要翻译的文本。文本标记后,Flask-Babel将扫描所有文件,并使用gettext工具将这些文本提取到单独的翻译文件中。...Flask-Babel提供了一个称为lazy_gettext()的_()函数的延迟评估的版本: from flask_babel import lazy_gettext as _l class LoginForm...因此,不需要将该文件提交到源代码管理 05 生成语言目录 该过程的下一步是在除了原始语言(在本例中为英语)之外,为每种语言创建一份翻译。...特别是,将会有一个名为app/translations/es/LC_MESSAGES/messages.po的新文件,是需要翻译的文件路径。...我决定在顶级目录的microblog.py文件中执行此操作: microblog.py:注册命令 from app import cli 这里我唯一需要做的就是导入新的cli.py模块,不需要做任何事情

    1.8K30

    php安装扩展模块后,重启不生效的原因及解决办法

    在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块。在扩展被安装配置后,往往会发现php-fpm服务重启后,这些扩展并没有真正加载进去!...下面就以一个示例进行说明: 示例环境: php安装包存放路径:/data/software/php-5.6.10.tar.gz php安装目录:/data/php [root@zabbix ~]# ll...编译成功之后会告诉你一个目录 Installing shared extensions: /data/php/lib/php/extensions/no-debug-non-zts-20131226...编译成功之后会告诉你一个目录 Installing shared extensions: /data/php/lib/php/extensions/no-debug-non-zts-20131226...那就可能是php.ini文件没有放对路径(这里我是直接放大php的etc目录下的) [root@zabbix ~]# ll /data/php/etc/php.ini -rw-r--r-- 1 root

    2.6K30

    Flask-Admin修改成中文显示

    我们需要检查所有的代码和模版标记所有需要翻译的英文文本以便 Babel 能够找到它们。...messages.pot 文件是一个模板文件,其中包含所有需要翻译的文本。这个文件是用来作为一种生成语言文件的模型。 生成一个语言目录 这个过程的下一步就是为一个新语言创建翻译。...,以 -d 选项指定的目录为新语言的目录,以 -l 指定的语言为想要翻译成的语言类型。...在你运行上述命令后,一个目录 app/translations/es 是创建了。在它里面有另一个名为 LC_MESSAGES 的目录,在它里面有一个messages.po 文件。...最后,当使用 lazy_gettext 的时候,pybabel extract 命令需要一个额外的 -k 的选项指明是 lazy_gettext 函数: flask/bin/pybabel extract

    1.7K31
    领券