惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
J
Java Code Geeks
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
美团技术团队
L
LangChain Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
Martin Fowler
Martin Fowler
月光博客
月光博客
Y
Y Combinator Blog
U
Unit 42
D
Docker
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
Google Developers Blog
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟
XBlock的国际化和本地化问题
2015-08-03 · via 夜行人

此前遇到过XBlock中translation相关的问题,解决得很是敷衍,上周末@MT兄也提到这个问题,于是认真解决了下

#需求场景 我们可能在两类场景中需要考虑translation相关的问题:

  • 使用国外的开发者的XBlock,需要考虑汉化
  • 自己做的XBlock,想贡献给社区

对于第一个问题,直接看下边的解决方案就行。对于第二个问题,需要我们在代码和模板里标注翻译字符串

1
2
3
4
5
6
:::text
#在代码里
from django.utils.translation import ugettext as _
_("hello world")
#在模板里,首先将 {% load i18n %} 放在模板最前面
<title>{% trans "hello world" %}</title>

#解决方案

###使用mako模板 此前在群里同@Datochen兄讨论过这个话题,他当时的解决方案是使用mako模板,mako模板支持unicode,所以可以直接写中文。这个方案无法解决以上的两个问题,它能做的是允许你在自己开发的XBlock里写中文字符串

具体的做法可以参考@Datochen兄的博客

###使用django的国际化机制 为了解决以上两个问题,我决定采用django的国际化机制

思路是将XBlock伪装成django app

具体步骤如下:

  • 将XBlock软链接到django app目录下
  • 进入XBlock,mkdir locale
  • 收集翻译字符串,生成.po文件:django-admin.py makemessages -l zh_CN
  • 翻译po文件
  • 在XBlock里编译:django-admin.py compilemessages

此外,我觉得软链接那一步应该可有可无,只要进入到virtualenv环境里,不过还没做测试

#参考 Internationalization

文章作者 种瓜

上次更新 2015-08-03