Django 中不会自动加载语言文件

2023-12-12

我在我的应用程序中使用 python3 和 Django 1.10,而且我对 Django 有点陌生。 我计划为 Django 管理面板提供多种语言。当我遵循 Django 文档中的规则时,我发现我必须使用中间件进行本地化...以下是我的设置:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 ]

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)


LANGUAGE_CODE = 'en'

ugettext = lambda s: s

LANGUAGES = (
   ('fa', ugettext('Farsi')),
   ('en', ugettext('English')),
)

当我转到管理员时mylocal/en/admin or mylocal/fa/admin应用程序语言完美改变。但是我的语言文件(.po)总是关注LANGUAGE_CODE。当我设定LANGUAGE_CODE='fa'它将更改为波斯语。不会自动
现在我只想使用 url 加载我的语言文件/en/ or /fa/ .

这是我的urls.py如果您需要签出,请归档。

urlpatterns = i18n_patterns(
    url(r'^admin/', admin.site.urls),
)

我有类似的工作设置,主要区别似乎是我正在使用ugettext_lazy。这是因为我需要在访问模型或设置时翻译这些字符串,而不是在调用它们时(这只发生一次:它们只会在服务器启动时进行评估,并且不会识别任何进一步的更改;例如,切换Django 管理语言)。

参考:https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#lazy-translation

这就是我使用的(在这种特殊情况下,德语是默认语言,我正在翻译成英语):

项目/urls.py

from django.conf.urls.i18n import i18n_patterns
urlpatterns = i18n_patterns(
    url(r'^admin/', admin.site.urls),
)

项目/设置.py

from django.utils.translation import ugettext_lazy as _

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

LANGUAGE_CODE = 'de-de'
USE_I18N = True
USE_L10N = True

LANGUAGES = [
  ('de', _('German')),
  ('en', _('English')),
]

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'locale'),
]

应用程序/模型.py

from django.utils.translation import ugettext_lazy as _

class Kindergarten(models.Model):
    stadt = models.CharField(verbose_name=_(Stadt))

    class Meta:
        verbose_name = _('Kindergarten')
        verbose_name_plural = _('Kindergärten')

Workflow

$ python manage.py makemessages --locale en
... edit project/locale/en/LC_MESSAGES/django.po ...
$ python manage.py compilemessages

现在我可以通过以下方式访问我的翻译 Django 管理(界面 + 模型):

  • http://127.0.0.1:8000/de/admin/app/kindergarten/
  • http://127.0.0.1:8000/en/admin/app/kindergarten/

Notes

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

Django 中不会自动加载语言文件 的相关文章

随机推荐

  • 无法在 Ionic 2 项目中使用 cordova 文件插件读取文件

    我正在尝试使用Cordova 文件插件读取移动设备中保存的图像 这样我就可以获得它的 Base64 编码 我需要远程存储它 问题在于 resolveLocalFilesystemUrl 方法本应提供一个 File Entry 对象 但似乎返
  • 何时使用 git 子树?

    有什么问题git subtree解决 我何时以及为什么应该使用该功能 我读到它是用于存储库分离 但为什么我不直接创建两个独立的存储库 而是将两个不相关的存储库合并为一个呢 这个 GitHub 教程解释了如何执行 Git 子树合并 我有点知道
  • PHP 致命错误:找不到类“Dotenv”

    我有一个项目 我尝试运行它 但出现以下错误 PHP Fatal error Class Dotenv not found in home maras Documents eCodile debtorcare server bootstrap
  • 使用包“cmprsk”在 R 中自定义竞争风险图

    我正在尝试使用 R 和包定制竞争风险图cmprsk 具体来说 我想覆盖默认情况 即对于竞争事件使用颜色 对于不同组使用线型 这是我的可重现的示例 library ggplot2 library cmprsk library survmine
  • 标准化 FFT 数据 (FFTW)

    我一直在使用 FFTW 计算标准化 wav 文件数据的 FFT 然而 我对如何标准化 FFT 输出有点困惑 我一直在使用对我来说显而易见的方法 即除以最高的 FFT 幅度 然而 我已经看到建议除以 1 N 和 N 2 其中我假设 N FFT
  • 仅在 NVIDIA 上的 glDrawArrays 上的 Java OpenGL EXCEPTION_ACCESS_VIOLATION

    我正在使用 lwjgl 开发一个 java 游戏 它是 OpenGL 实现 从来没有任何问题 直到我与一位使用 NVIDIA 而不是 AMD 的同事交换它 突然它在 AMD 上工作的线路上崩溃 但它只在代码中的那个点崩溃 这是最磨损的部分
  • 在 Grails 中解析 CSV 并导出到 Mysql 数据库

    我是 Groovy Grails 的新手 我想提交解析 CSV 文件并导出到 MySQL 数据库的多个表中 我看过一些编码 但作为新手 这让我感到困惑 那么任何人都可以帮助我理解简单的 csv 文件解析并导出到 MySQL 数据库 谢谢 索
  • 适用于 Android 的 pdf 查看器库

    我知道这个问题已经被问过好几次了 但我找不到一个令人满意的答案 我的要求很简单 只需在我的应用程序 android 中打开pdf文档 但我无法找到一种简单的方法来做到这一点 它的原生 c c 方式或编写自己的引擎 但是没有任何简单的 API
  • 如何在dygraphs中设置特定的y轴标签点?

    Dygraphs 通常会根据轴的大小 标签的大小等自动选取 Y 和 X 轴标记点 在某些情况下 它会选取导致清晰度较低的标记点 例如 在 Y 轴值为 0 到 10 的图表上 它标记为 0 4 和 8 至少对于特定尺寸的图表而言 我希望将其标
  • wpf/silverlight 应用程序到 DVD

    如何转换 wpf silverlight 应用程序 使其可以在 DVD 上运行 我们有用于学习目的的 wpf 应用程序 我们希望创建该应用程序的 DVD 版本并将其提供给我们的用户 以便他们可以回家使用它们 任何建议将不胜感激 我们已经查看
  • 如何使用 sed 仅替换第二个匹配行

    cat file cat cat dog cat dog puppy dog cat 使用 sed sed s dog big dog my file gt new file cat new file cat cat big dog cat
  • 如何让 Eclipse 解析 MongoDB\BSON 命名空间中的 php 类?

    经过多次来来去去 我成功安装了 PHP 5 6 的 MongoDB 驱动程序 并使其在 OSX El Capitan 上运行 它的工作方式是使用Homebrew 为了开始处理项目 我为该项目创建了文件夹并使用Composer安装了我需要的必
  • Hive 查询在生成缺失日期时面临问题

    我有一个要求 我需要返回到列的先前值 直到 1000 行 并获取之前的 1000 个日期以用于下一步 但是表中该列不存在所有这些先前的 1000 个日期 但我需要从查询的输出中获取那些缺失的日期 当我尝试运行下面的查询时 它没有显示当前日期
  • 如何在 Android 中获取当前日期?

    我写了下面的代码 Date d new Date CharSequence s DateFormat format MMMM d yyyy d getTime 我想要字符串格式的当前日期 例如 28 Dec 2011 这样我就可以将它设置为
  • 如何将PCM原始数据转换为mp3文件?

    编辑我的问题 是否有从 PCM 原始数据到任何音频文件的编码器 mp3 ogg 但不是WAV 因为它太大了 我有一个包含原始 PCM 数组的文本文件 我想将其转换为 mp3 ogg 文件 经过长时间的搜索 我找不到一些提供这种编码 PCM
  • azure blob存储和azure data Lake存储之间的区别[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 对于像我这样的用户来说 这似乎很困惑 因为 azure blob 存储和 azure data Lake 存储之间的主要区别是什么 以及在什么用户情况下 azure blob 存储比 az
  • 输出时区感知的 django 日期时间字段,无需过滤器

    您好 我升级到 django 1 4 我想利用时区支持 我在 postgres 中保存了一些日期时间字段 并且在我设置后 它们是假设我所在城市的时区保存的 USE TZ True 并将时区设置为我的城市 模板中的日期过滤器标签输出正确的小时
  • 文件重写:一行大于变量的最大大小。解决方法?

    我需要替换文件中的一行 一般来说 这段代码可以正常工作 这个问题不需要这个块正在做什么的实际细节 for F tokens 1 delims a in findstr N DATA do if a equ TargetLine echo i
  • WPF:control.ItemContainerGenerator.Status 为未启动。我如何告诉它现在开始?

    我的控件 ItemContainerGenerator Status 为 NotStarted 我如何告诉它现在开始并等待它完成 如果您执行一些同步操作 您可能需要手动启动生成器 在将其分块到页面上之前 我必须生成结果视图来测量它 IIte
  • Django 中不会自动加载语言文件

    我在我的应用程序中使用 python3 和 Django 1 10 而且我对 Django 有点陌生 我计划为 Django 管理面板提供多种语言 当我遵循 Django 文档中的规则时 我发现我必须使用中间件进行本地化 以下是我的设置 M