能盈利的网站,wordpress 后台登录,网站开发软件d,重庆免费网站推广软件《Django 5 By Example》学习第 17 天#xff0c;p493-p520 总结#xff0c;总计 28 页。
一、技术总结
1.internationalization(国际化) vs localization(本地化)
(1)18n#xff0c;L10n#xff0c;g11n
以前总觉得这两个缩写好难记#xff0c;今天仔细看了下维基百科…《Django 5 By Example》学习第 17 天p493-p520 总结总计 28 页。
一、技术总结
1.internationalization(国际化) vs localization(本地化)
(1)18nL10ng11n
以前总觉得这两个缩写好难记今天仔细看了下维基百科“i18n” 中的 i 代表 “internationalization” 的第一个字母 in 代表最后一个字母 n, 18 代表 i 和 n 中间有 18 个字母。“L10n” 中的 i 代表 “localization” 的第一个字母 ln 代表最后一个字母 n, 10 代表 l 和 n 中间有 10个字母。使用大写L 是因为小写的 l(L的小写) 和 大写的 I(i 的 大写)差不多一样所以使用大写其实大小写都可以。
也有人把上面两者合称为全球化(globalization)简称为 g11n。
(2)internationalization 和 localization 的区别
p495, Internationalization (frequently abbreviated to i18n) is the process of adapting software for the potential use of different languages and locales so that it isn’t hardwired to a specific language or locale.
Localization (abbreviated to l10n) is the process of actually translating the software and adapt-ing it to a particular locale. Django itself is translated into more than 50 languages using its internationalization framework.
说实话看完这两句还是没法理解它们之间的区别是什么。
2.Django 国际化和本地化实现
(1)设置
国际化和本地化依赖于 gettext, 如果没有先安装。本人是在WSL 里面使用 Ubuntu 系统安装示例
# sudo apt install gettext(2)翻译 Python 代码
1)Standard translation
使用 gettext() 实现
from django.utils.translation import gettext as _output _(Text to be translated.)2)Lazy translations
When using the lazy functions, strings are translated when the value is accessed, rather than when the function is called (this is why they are translated lazily).
使用 suffix _lazy() 实现。
3)Translations including variables
使用 gettext() 及 占位(placeholder)符实现。
from django.utils.translation import gettext as _month _(April)day 14output _(Today is %(month)s %(day)s) % {month: month, day: day}4)Plural forms in translations
使用 ngettext() 和 ngettext_lazy() 实现。
(3)生成 po 文件
在 project 目录下执行命令
django-admin makemessages --all(4)生成mo文件
在 project 目录下执行命令
django-admin compilemessages(5)翻译 template
使用 {% translate %} 和 {% blocktranslate %} 。
(6)poedit
用于编辑翻译文件的工具。
https://poedit.net/
二、英语总结(生词2)
1.hardwired
p495, Internationalization (frequently abbreviated to i18n) is the process of adapting software for the potential use of different languages and locales so that it isn’t hardwired to a specific language or locale.
(1)haredwired: hard(“with effor or energy, with difficulty”) wire(“adorn(装饰) with wire”)
adj. 也写作 hard-wired。本意是In computing, with permanently connected circuit performing unchangeable functions(在计算机技术中具有永久连接的电路执行不可改变的功能)后面引申为“Describe sth that is fixed, or designed in a way that is cannot be easily changed or modified和 hardcoded 的用法类似。
2.interpolate
p499, Translations including variables: Used to interpolate variables within strings that are to be translated.
(1)interpolateinter-(“among, between”) polare(“to smooth, polish(擦)”)
vt. to alter by inserting sth between other elements.
3.place an order
p503, You have added names for the fields that are displayed when a user places a new order.
“place an order” 的意思就是“下订单”对于 order看的时候一下脑子里面的第一反应是“顺序”导致理解不了其实 place an order 是一个很常见的用法这里记一下。
三、其它
看下去即使这本书写得再不好。
四、参考资料
1. 编程
(1) Antonio Melé《Django 5 By Example》https://book.douban.com/subject/37007362/
2. 英语
(1) Etymology Dictionaryhttps://www.etymonline.com
(2) Cambridge Dictionaryhttps://dictionary.cambridge.org 欢迎搜索及关注编程人(a_codists)