首页
学习
活动
专区
圈层
工具
发布

Django 实战:I18N 国际化与本地化配置、翻译与切换一步到位

# 进入Django 项目的根目录(就是包含 manage.py 的那个目录),或进入Django app的根目录django-admin makemessages -l zh_Hansdjango-admin...makemessages -l en# 只检查 *.py 文件(可选)django-admin makemessages -l zh_Hans -e py# 以后使用下面命令,重新检查并更新所有语言的消息文件...django-admin makemessages -a生成对应的消息文件*.polocale├── en│ └── LC_MESSAGES│ ├── django.mo│...\zh_Hans\LC_MESSAGES\django.pomsgid "账号或密码错误"msgstr "账号或密码错误"编译消息文件下面命令会根据 .po 文件内容,编译并创建对应的 .mo 文件。...django-admin compilemessages# 如果更新了消息文件,需要重新编译生成的翻译文件应位于以下路径。需要重启一下Django项目,才生效。

28100

django2.2 国际化实践

0.15 意思是提示需要安装 gettext) brew install gettext brew link gettext --force 注:Mac 解决 Homebrew 一直卡在 update 生成需要翻译的文件...python manage.py makemessages -l zh_Hans (joyoo) E:\yinzhuoqun\djangos\joyoo>python manage.py makemessages...-l zh_Hans processing locale zh_Hans 运行成功后会生成一个 django.po 文件( LOCALE_PATHS 对应语言目录下 - 具体看下图,这个里面就是我们手动写翻译的地方...) django.po 文件: 如果执行命令:python manage.py makemessages -l zh_Hans(第二个 H 大写) 提示:CommandError: Can't find...msgid: 需要翻译的文案 msgstr: 翻译后的文案 在代码中看到:_("这种就是国际化的标志,我们只需要翻译下就 OK") 例子: 最后一步就是 编译 编译成功后会在 django.po 的对应目录生成

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

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

    Google 上面有一张图,比较直观的解释了这三者的关系: xgettext 在介绍图中的三种文件之前,先要了解一下xgettext这个工具,它是在 Linux 上的一个程序,Ubuntu 下可以直接使用...(命令行中),其功能是抽取给定的文件中可供翻译的字符串。...运行下面的这个命令即可生成 .pot 文件 xgettext --keyword=_ --language=javascript --add-comments --from-code=utf-8 --sort-output...从工程层面上就会变的复杂,因此一个简单的翻译流程就是,先生成模板文件,通过模板文件产出翻译内容,程序则直接使用翻译内容,即 .po 文件,或将他们编译成二进制使用。...# translator-comments 翻译者写的注释就会在这里显示 #. extracted-comments xgettext 从源代码中提取后给出的注释,通常是程序生成 #: reference

    2.4K31

    manage.py命令

    在终端进入django的项目目录,输入指令: python manage.py help 查看基础的命令信息 常用命令: 创建app startapp 从模型对象创建数据迁移文件并保存在app的migrations...文件夹 makemigrations 根据迁移文件的内容在数据库里生成相应的数据表 migrate 在本地计算机上启动django项目 runserver 收集所有的静态文件 collectstatic...为内置用户表创建超级管理员账号 createsuperuser 其他命令: 修改内置用户表的用户密码 changepassword 删除数据库中已不使用的数据表 remove_stale_contenttypes...检测整个项目是否存在异常问题 check 编译语言文件,用于项目的区域语言设置 compilemessages 创建缓存数据表,为内置的缓存机制提供储存功能 createcachetable 进入django...data.json中 dumpdata 清空数据表的数据信息 flush 获取项目所有模型的定义过程 inspectdb 将数据文件导入数据表 loaddata 创建语言文件,用于项目的区域语言设置 makemessages

    37220

    Django 面试题

    它的名字来源于比利时的吉普赛爵士吉他手 Django Reinhardt。Django 一词也是罗马语术语,含义是「我醒了」。Django 的主要目标是简化数据库驱动的网站的开发。...Django 注重组件的重用性和“可插拔性”,敏捷开发和 DRY 法则(Don't Repeat Yourself)。 2. Django 的有哪些优点和缺点/Django的哪些特征是你喜欢的?...Django 已经持续更新迭代十多年,增加了不少新功能并持续加固。 集成后台管理。只需要轻松配置即可自动生成强大的后台管理页面,便于管理 web 应用。 插件支持。...10. django-admin.py makemessages 或 manage.py makemessages 做何用?...如果你的网站需要国际化,那么会用到这个命令,执行该命令后,Django 会在当前路径生成一个 message file,里面保存了该 web 项目需要被翻译的字符串。

    2K30

    测试开发之创建你的第一个Django项目(一)

    自带的一个小型数据库文件,而且是数据库本体,一般小项目可以直接使用 -- manage.py :项目管理命令行工具 ④.Django的常用命令 任务 命令 创建新项目 django-admin.py startproject...(注意: 你需要先cd进入创建的项目文件夹) 检测模型变化,生成新的数据库迁移文件 python manage.py makemigrations [app_label] (注意: app名字可选。...和manage.py其它命令 命令 用途 python manage.py flush 清空数据库内容,只留下空表 python manage.py test 开始测试 python manage.py...createcachetable 创建缓存表 python manage.py check 检测项目有没有问题 python manage.py inspectdb [table] 根据已有数据库反向生成...你可以选择数据表名字 python manage.py makemessages 搜集所有的messages,可以生成指定文件格式如xml文件,供后期翻译 python manage.py sendemail

    1.5K10

    掌握Linux Shell参数本地化(轻松实现多语言支持的脚本开发)

    Shell 参数本地化是指根据系统的语言环境(locale)动态调整脚本中的输出信息(如提示语、错误信息等)。这通常涉及使用 gettext 工具或简单的变量替换机制,让脚本能“说”用户的母语。...这是实现 命令行参数处理 与本地化结合的基础方式。进阶方法:使用 gettext 实现专业本地化对于更复杂的项目,推荐使用 GNU gettext 工具链。...它支持完整的翻译流程,包括提取字符串、生成 .po 文件、编译为 .mo 文件等。步骤简述:在脚本中用 gettext "字符串" 包裹所有需翻译的文本。...使用 xgettext 提取这些字符串生成 .pot 模板文件。为每种语言创建 .po 文件并翻译。用 msgfmt 编译 .po 为 .mo 文件,放入指定目录。运行脚本时自动加载对应语言的翻译。...关键词:Linux Shell参数, Shell本地化, 命令行参数处理, Shell脚本国际化来源:https://www.vps5.cn/

    17310

    为 Vue 配置 GraphQL API

    除此之外会让你选择是否生成代码,是否配置相关的 API,如下图所示: ? 这里只选择生成样例代码即可,其他都选否。生成样例代码的好处是我们不需要关心配置信息,集中精力放在业务逻辑即可。...生成样例代码后,我们先修改配置文件,将 graphql 的接口对接 Django 的 url。...graphql 的查询语句,因为需要传入参数,这里外层做了一下封装,不要问为啥这样写,这是 apollo 规定好了的,我们只需要比葫芦画瓢,如下: query categoryByName($name: String...可能遇到的问题 使用 Django API 最常见的问题就是跨域(CORS)问题,前端的错误提示可能是这样的: Access to XMLHttpRequest at 'url’' from origin...说明可能遇到了 django cors 错误,按照上面的方法解决即可。

    1.6K20

    怎么新建pytest的ini文件_pytest.ini配置

    escape non-ascii characters, might cause unwanted side effects(use at your own risk) console_output_style...log_level (string): default value for --log-level log_format (string): default value for --log-format...写法 [pytest] markers = app: Run the app case web: Run the web case addopts 作用:addopts参数可以更改默认命令行选项...,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作 比如:想测试完生成报告,失败重跑两次,如果在bash中写的话,命令会很长 pytest -v --reruns....* build dist CVS _darcs {arch} *.egg API common configFile data logs report 自定义匹配规则 查看pytest -h 查看命令行参数找到

    1.7K20

    【Python】已解决:You have 18 unapplied migration(s). Your project may not work properly until you apply t

    当我们创建或修改模型时,Django会生成相应的迁移文件,这些文件需要应用到数据库中以保持一致性。...这个警告表明有18个未应用的迁移,需要通过运行python manage.py migrate命令来应用它们,否则项目可能无法正常工作。...二、可能出错的原因 导致这个错误的原因主要有以下几种: 新建项目后未运行迁移:新建Django项目并创建模型后,未运行迁移命令。...三、错误代码示例 以下是一个可能导致该错误的代码示例: # models.py from django.db import models class MyModel(models.Model):...四、正确代码示例 要正确解决该报错问题,需要按以下步骤操作: 生成迁移文件 首先,生成迁移文件。

    58210

    Joern In RealWorld (2) - Jumpserver随机数种子泄露导致账户劫持漏洞(CVE-2023-42820)

    有泄露随机数种子的问题,再配合Jumpserver使用了错误的随机数方案导致了最终的漏洞。...django-simple-captcha是Django的相关组件中非常流行的验证码生成库,就像phith0n所说,在国内你几乎没有别的选择,引入的方式超级简单,只要在配置里引入对应库 INSTALLED_APPS...修复的方案也很简单粗暴,只要在生成结束之后用随机一个新种子就可以了 https://github.com/mbi/django-simple-captcha/commit/dcf1ccda3b12df179eaa5c0ebec95a897e96245f.../apps/authentication/api/password.py 重置密码用的code使用了random_string来生成,然后看看random_string的定义 这个函数在jumpserver...的问题来说,JumpServer的问题在源代码的角度上来说更不像一个问题,只能算是一个使用错误的范例,有潜在的风险。

    92530
    领券