zoukankan      html  css  js  c++  java
  • Xadmin 汉化不全的解决方案

    前言

    由于近期需要为自己的应用写一个后台管理系统,刚开始想尝试这自己一步一步慢慢的敲出来,但是写了一点后发现自己写真是太麻烦了!
    所以想看看有没有现成的后台管理的框架。由于我是基于Django的系统,所以我找到了xadmin。但是在使用xadmin的过程中我遇到了一些汉化的问题:部分英文汉化不出来,最后通过在网上看博客和看文档的方式解决了这个问题。

    Django 本地化

    在django中,我们可以通过自己编写语言文件让django识别并使用。

    翻译的本质:字符串替换的过程。

    编写语言文件并生效分为以下几个步骤:

    1. settings.py 中配置翻译文件所在的路径:

      LOCALE_PATHS = [
          os.path.join(BASE_DIR, 'extra_apps', 'xadmin', 'locale')
      ]
      
    2. 为你想要支持的语言创建一个消息文件。

      消息文件里面包含了所有需要翻译的字符串,并让我们自己决定如何在这种语言中显示它们。

      我们可以通过下面的命令创建一个语言为zh-Hans(中文)的消息文件:

      python manage.py makemessages -l zh-Hans
      

      如果在运行命令的过程中出现了 CommandError: Can’t find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed. 报错信息,则需要安装 gettext

      在mac上安装 gettext 的步骤如下:

      brew install gettext
      brew link gettext –-force
      
    3. 翻译字符串
      在我们生成的消息文件中,会出现待翻译的字符串,与下图类似:

      #: path/to/python/module.py:23
      msgid "Welcome to my site."
      msgstr ""
      

      解释:

      • 第一行注释是字符串所在的文件路径和位置
      • msgid 是文件原始字符串
      • msgstr 是翻译后的字符串,也就是我们自己填写的字符串

      更新所有的消息文件:

      python manage.py makemessages -a
      
    4. 编译消息文件使之生效

      django-admin compilemessages
      

      执行完命令后可以看到原来的消息文件中多了几个 .mo 的文件,则说明我们编译成功了。

    上面就是我们创建本地化django翻译的流程。

    解决 Xadmin 汉化不完全的问题

    在xadmin中自带了语言包,但是不知道为啥我下载的版本没有编译语言包,导致在使用xadmin的过程中会出现汉化不完全的问题。

    解决方法:

    1. 在settings.py中配置翻译文件所在的目录(可有可无)

      LOCALE_PATHS = [
          os.path.join(BASE_DIR, 'extra_apps', 'xadmin', 'locale')
      ]
      
    2. 编译语言包

      django-admin compilemessages
      
    3. 设置语言为中文并开启国际化

      LANGUAGE_CODE = 'zh-Hans'
      
      USE_I18N = True
      
      USE_L10N = True
      

    这样xadmin的汉化就完美了,可以开开心心的继续写代码了~

  • 相关阅读:
    一条命令深度清理你的mac
    将以太坊封装为 ERC20
    golang subprocess tests
    go 笔记
    readme
    如何使用 channel
    修改vscode caipeiyu.writeCnblog ,简化博客发布
    thedao
    firefox 59 无法使用 pac 代理上网
    scrapy简单使用
  • 原文地址:https://www.cnblogs.com/finlu/p/11645744.html
Copyright © 2011-2022 走看看