如何覆盖 django admin 翻译?

2024-04-01

我正在尝试覆盖 Django 管理站点的默认翻译。

我正在使用 Django 1.6。我的settings.py包含:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

# ...

LANGUAGE_CODE = 'nl'
USE_I18N = True
USE_L10N = True
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),)

我已经复制了文件django/contrib/admin/locale/nl/LC_MESSAGES/django.po to my_project/locale/nl/LC_MESSAGES/django.po我对它做了一些改变。

接下来,我跑了python manage.py compilemessages and python manage.py runserver.

当我访问时localhost:8000/admin,但是,我仍然看到 Django 的默认管理翻译。我究竟做错了什么?

编辑-我发现了问题:

上述描述是覆盖应用程序翻译的正确方法。我按照自己的指示进行操作,它们起作用了。我的问题的原因是我不小心遗漏了nl第一次进入子目录。我是一个愚蠢的人。


我正在提供答案,尽管 @hedgie 大部分回答了他们自己的问题。我将添加一些有关正在发生的事情的背景和描述。这个答案从 Django 3.0 开始仍然适用。

正如您可以通过在我们自己的项目中复制模板的名称和目录结构来覆盖 Django 提供的管理模板一样,您也可以通过复制.po我们项目中的文件名和目录结构。

Django 的管理翻译位于django/contrib/admin/locale/并按语言组织在名为的目录中[language code]/LC_MESSAGES/。这些单独的语言目录包含两个.po files, django.po and djangojs.po,以及各自编译的.mo文件。你将覆盖.po文件,并编译我们自己的.mo files.

您要做的第一件事是在设置中启用翻译,并告诉 Django 您存储翻译文件的位置。

设置.py

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

# ...

LANGUAGE_CODE = 'nl-NL'
USE_I18N = True
USE_L10N = True
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),)  # our custom translations will go here

请注意,虽然 Django 使用的目录是nl,荷兰语的完整语言标识符是nl-NL。您可以找到按国家/地区组织的标识符的完整列表here http://www.i18nguy.com/unicode/language-identifiers.html.

接下来,您将模仿 Django 的目录结构并在新目录中创建两个文件:

my_project/locale/nl/LC_MESSAGES/django.po

my_project/locale/nl/LC_MESSAGES/djangojs.po

请注意,此路径还必须与您在中提供的路径匹配settings.py.

复制并粘贴内容Django 的翻译文件 https://github.com/django/django/tree/master/django/contrib/admin/locale/nl/LC_MESSAGES。您现在可以编辑您喜欢的任何字符串的翻译。例如:

django.po

msgid "Are you sure?"
--- msgstr "Weet u het zeker?"
+++ msgstr "Weet u het zeker?!"

现在您需要使用以下命令编译消息:

python manage.py compilemessages

这个命令编译你的.po文件到.mo文件,Django 将使用这些文件来翻译任何匹配的 gettext 调用。您现在应该在管理界面中看到您的自定义翻译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何覆盖 django admin 翻译? 的相关文章

  • Django 营业时间

    我想添加诊所的营业时间 我已经对此进行了调查在 Django 中实现 开放时间 的任何现有解决方案 https stackoverflow com questions 8128143 any existing solution to imp
  • TemplateSyntaxError:“settings_tags”不是有效的标签库

    当我尝试运行此测试用例时 出现此错误 这是在我的 django 应用程序的tests py 中编写的 def test accounts register self self url http royalflag com pk accoun
  • 在 ubuntu 中卸载 python 模块

    我必须删除一个名为 django 的 python 模块 一种流行的模块 因为我安装了错误的版本 1 3 py 2 6 中的 beta 如何卸载这个模块 请解释一下 因为我只在 Windows 中使用过 python 而从未在 Ubuntu
  • pandas DataFrame 中行的高效成对比较

    我目前正在处理一个较小的数据集 大约 900 万行 不幸的是 大多数条目都是字符串 即使强制类别 框架在内存中也只有几 GB 我想做的是将每一行与其他行进行比较 并对内容进行直接比较 例如 给定 A B C D 0 cat blue old
  • 关于具有自定义损失的 3 输出 ANN 的加权

    我正在尝试定义一个自定义损失函数 它在回归模型中接收 3 个输出变量 def custom loss y true y pred y true c K cast y true float32 Shape batch size 3 y pre
  • Python 模块 BeautifulSoup 提取锚点 href

    我正在使用 BeautifulSoup 模块通过以下方式从 html 选择所有 href def extract links html soup BeautifulSoup html anchors soup findAll a print
  • 如何停止 PythonShell

    如何终止 停止 Node js 中 PythonShell 执行的 Python 脚本的执行 我在交互模式下运行 输出通过 socket io 发送到给定的房间 如果没有更多的客户端连接到这个房间 我想停止 python 脚本的执行 这是我
  • python os.fork 使用相同的 python 解释器吗?

    据我所知 Python 中的线程使用相同的 Python 解释器实例 我的问题是与创建的流程相同os fork 或者每个进程创建的os fork有自己的翻译吗 每当你 fork 时 整个 Python 进程都会在内存中复制 包括Python
  • 在 Python 中引发异常的正确方法是什么? [复制]

    这个问题在这里已经有答案了 这是简单的代码 import sys class EmptyArgs StandardError pass if name main The first way to raise an exception if
  • 如何在 tkinter 后台运行函数[重复]

    这个问题在这里已经有答案了 我是 GUI 编程新手 我想用 tkinter 编写一个 Python 程序 我想要它做的就是在后台运行一个可以通过 GUI 影响的简单函数 该函数从 0 计数到无穷大 直到按下按钮为止 至少这是我想要它做的 但
  • numpy 向量化而不是 for 循环

    我用 Python 写了一些代码 运行良好 但速度很慢 我认为是由于 for 循环 我希望可以使用 numpy 命令加速以下操作 让我定义目标 假设我有一个 2D numpy 数组all CMs尺寸row x col 例如考虑一个6x11数
  • 在基本 Tensorflow 2.0 中运行简单回归

    我正在学习 Tensorflow 2 0 我认为在 Tensorflow 中实现最基本的简单线性回归是一个好主意 不幸的是 我遇到了几个问题 我想知道这里是否有人可以提供帮助 考虑以下设置 import tensorflow as tf 2
  • 从 SUDS 中的 SOAP 响应中提取 Cookie

    我必须使用具有多种服务的 API 所有这些都需要来自下面的身份验证的 JSESSION cookie 然而 当我调用下一个服务时 它不会保留 cookie 因此会拒绝它们 from suds client import Client url
  • 根据标签位置计算 Pandas DataFrame 的索引

    我正在尝试计算标签的索引Pandas https pandas pydata org DataFrame在每一列中 基本上我有以下内容DataFrame d col1 label1 label2 label3 col2 label2 lab
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • model.predict() 返回类而不是概率

    Hello 我是第一次使用 Keras 我训练并保存了一个模型 作为 json 文件及其权重 该模型旨在将图像分为 3 个类别 我的编译方法 model compile loss categorical crossentropy optim
  • python 中“重载”函数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在尝试在 python 中做这样的事情 def foo x y do something at position x y def foo pos foo pos x pos y 所以我想根据我提供的参数数量调
  • 阻止 BeautifulSoup 将我的 XML 标签转换为小写

    我正在使用 BeautifulStoneSoup 来解析 XML 文档并更改一些属性 我注意到它会自动将所有 XML 标签转换为小写 例如我的源文件有
  • 如何将另一整列作为参数传递给 pandas fillna()

    我想用另一列中的值填充一列中的缺失值 使用fillna方法 我读到循环遍历每一行将是非常糟糕的做法 最好一次完成所有事情 但我不知道如何使用fillna 之前的数据 Day Cat1 Cat2 1 cat mouse 2 dog eleph
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co

随机推荐

  • 在 Java 中执行身份验证加密的正确方法是什么?

    验证加密要求我们使用一些公认的标准来加密和验证消息 因此 我们对消息进行加密并计算消息的 MAC 以验证它没有被篡改 这个问题 https stackoverflow com questions 992019 java 256 bit ae
  • 如何使用 Xcode 6.3 Beta2 覆盖 Swift 中超类的 setter?

    我的 SuerClass 是UICollectionViewCell它有一个属性 var selected Bool 我的班级是 MyClass UICollectionViewCell func setSelected selected
  • 使用 Capistrano 部署 Rails 5.1 / Webpacker 应用程序

    我有一个 Ubuntu 服务器来部署我的 Rails 项目 在我的 Ubuntu 服务器中 我有 RVM 现在我想使用 Rails 5 1 和 webpacker 部署新项目 为了部署这个项目 我在我的 Ubuntu 服务器中安装了 NVM
  • 如何为 Android 发送库

    我想为 Android 开发一个库 我可以以什么形式运送 jar apk 还是其他 我应该如何做才能让其他开发人员可以在他们的应用程序中使用我的库 如果您的库是纯 Java 代码 则 JAR 就可以了 也许可以用文档等进行压缩 如果您需要资
  • 如何将 SVN 存储库移至新服务器

    我们想要将两台服务器合并在一起 为此 我们需要在 新 服务器上安装 SVN 然后移动我们在 旧 服务器上设置的所有存储库 这是一个容易做的操作吗 可能使用 TortoiseSVN 提供的 重新定位 选项 最好的方法是什么 现在也是重新组织存
  • Hibernate多态查询

    我有两个类 Person 和 Company 它们派生自另一个类 Contact 它们在两个表 个人和公司 中以多态形式表示 简化的类如下所示 public abstract class Contact Integer id public
  • 如何将两个数据帧与日期进行比较,返回匹配日期并为新数据帧中的每一行标记不匹配日期

    我有一个数据框 每行中的每个受试者都有多个测量日期 另一个数据框有每行中同一受试者的多个访问日期 还包括一些 NA 我想要的是提取与某个主题的访问日期匹配的测量日期 并标记不符合访问日期的测量日期 例如 使用 FALSE 或 99 并保持
  • 如何用另一个 GestureDetector 包装 GestureDetector 并在各处获取事件

    如果我有一个GestureDetector具有内部GestureDetector我该如何设置才能使两个检测器都收到点击事件 您可以在此处查看运行代码 https dartpad dev 37807a51a48e52eda81c24cf672
  • HTML 和属性编码

    我遇到了一个发表在 Meta SO 上 https meta stackexchange com questions 104230 attack of the double encoded hellip part n我很好奇未编码和编码的
  • MVC3 C# 导出到 Excel

    我正在尝试将数据从数据库导出到 Excel 2007 文件 我只想将 html 文件的标题更改为 excel 2007 文件 我将数据格式化为表格并将标题更改为 Response AddHeader Content Disposition
  • BuildException:无法在 Android Studio 3.1 Canary 6 中执行 aapt

    我在 gradle 构建过程中遇到这个问题 org gradle tooling BuildException Failed to execute aapt at com android build gradle internal res
  • Wifi和3G同时使用

    对于我的应用程序 我需要来自本地网络和互联网的数据 本地网络 Wifi 无法连接到互联网 因此我必须使用移动连接 例如 3G 但每当我连接到本地网络时 3G 就会停止 询问三星服务后 无法在 UI 中更改该设置 但他们无法告诉我是否有可编程
  • Kotlin - 将集合转换为数组列表

    我正在将 Java 应用程序转换为 Kotlin 在某一方面 它使用 apache IO 的 FileUtils listFiles 函数 这些返回集合 我在将集合转换 转换为 ArrayList 时遇到问题 val myFiles Fil
  • SQL - 从数据库中选择最“活跃”的时间

    非常密切相关SQL 从数据库中选择最 活跃 的时间跨度 https stackoverflow com questions 12938302 sql select most active timespan fromdb但不同的问题 我有一个
  • 如何让我的 NextJS 应用程序接受 otf 和 ttf 字体?

    我正在使用 NextJS 当我构建我的应用程序时 我的控制台返回给我 ModuleParseError 模块解析失败 意外字符 1 0 您可能需要适当的加载程序来处理此文件类型 我想知道出了什么问题 因为我已经构建了自定义 webpack
  • jquery动画位置百分比

    如何确定百分比位置 document ready function button toggle function slide animate top 100 1000 function slide animate top 0 1000 请建
  • Magento 的空白主题是否仍应用作主题基线(Magento 版本 1.7)?

    我发现的许多关于 Magento 主题开发的教程都建议从使用空白作为制作您自己的自定义主题的指南开始 这些文章很多都已经很老了 截至当前版本 1 7 情况仍然如此吗 附 除了 Magento 之外 是否有任何好的 相关的主题开发文章官方设计
  • 如何在 WPF 拖放过程中更新拖动装饰器的位置?

    我正在使用装饰器来显示被拖动元素的 幽灵 var adornerLayer AdornerLayer GetAdornerLayer topLevelGrid dragAdorner new DragAdorner topLevelGrid
  • 如何调试“ImagePullBackOff”?

    突然间 我无法部署一些以前可以部署的映像 我得到以下 Pod 状态 root webdev2 origin oc get pods NAME READY STATUS RESTARTS AGE arix 3 yjq9w 0 1 ImageP
  • 如何覆盖 django admin 翻译?

    我正在尝试覆盖 Django 管理站点的默认翻译 我正在使用 Django 1 6 我的settings py包含 import os BASE DIR os path dirname os path dirname file LANGUA