【问题标题】:Django model form field language is not changingDjango模型表单字段语言没有改变
【发布时间】:2020-03-04 10:12:49
【问题描述】:

我正在使用 django 2.2。和python 3.6。引导程序 4。 我在模板中插入了一个模板和酥脆的表格。 此表单是从模型创建的。 模型中有一个imagefield字段。

photo = models.ImageField(upload_to="staff/", null=True, blank=True, verbose_name=_("Fotoğraf"))

crispyform 正在模板中创建字段,但字段中显示的语言是英语。但我想展示土耳其语。 选择文件和浏览应该是土耳其语。 所以我将 settings.py 更改为;

LANGUAGE_CODE = 'tr-tur'

但是页面中的字段还是写着Choose File and Browse。

您可以在屏幕截图中看到除了“选择文件”和“浏览”之外的所有内容都是土耳其语。

【问题讨论】:

    标签: python django django-forms django-templates django-crispy-forms


    【解决方案1】:

    “选择文件”和“浏览”不会被翻译,因为这是引导生成字段的一部分。

    您可以尝试按照翻译或自定义字符串部分中的here 所述创建伪类。很快,作为 CSS 代码,它应该是这样的:

    $custom-file-text: (
      en: "Browse",
      es: "Elegir"
    );
    

    【讨论】:

      【解决方案2】:

      问题解决了。首先更改“选择文件”部分:

      添加将更改标签文本内容的脚本,

      <script>
      var input = document.getElementById('id_photo');
      var label = input.labels[1];
      label.textContent = 'Dosya Seçin'
      </script>
      

      其次要更改浏览部分,您必须编辑 bootstrap.min.css 并更改 custom-file-label 部分 content:"Browse" content:"Whatever you want" 可能有多个 content:"Browse" 定义,全部更改。

      【讨论】:

        【解决方案3】:

        尝试在内置表单中更改 Django 的默认语言,方法是在 MIDDLEWARE 中包含 'django.middleware.locale.LocaleMiddleware',在 settings.py 中包含 settings.py

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-11-30
          • 2022-06-17
          • 2012-08-21
          • 2013-08-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多