xypmdxx
|
2.0/chapter10/#171 |
2009-11-26 21:03:01
|
managers在第5章,我们简要地确定模块manager 。现在是时候更深入的使用它们。
|
|
xypmdxx
|
2.0/chapter10/#170 |
2009-11-26 20:59:40
|
在声明中 Book.objects.all() , objects是一个特殊的属性,需要通过它查询数据库。
|
|
xypmdxx
|
2.0/chapter10/#166 |
2009-11-26 20:55:29
|
正如在前面部分,一定要按这样的顺序做。
|
|
xypmdxx
|
2.0/chapter10/#164 |
2009-11-26 20:53:01
|
当你需要从数据库中删除第一个任何依赖的表时要注意,例如有任何表外键的表 books_book。
|
|
|
2.0/chapter03/#237 |
2009-11-25 22:44:17
|
最重要的设置是ROOT_URLCONF,它将作为URLconf告诉Django在这个站点中那些Python的模块将被用到
|
|
old_taoist
|
2.0/chapter19/#363 |
2009-11-25 17:47:39
|
该头部是你的浏览器发送的,并且按优先顺序告诉服务器你的语言偏好。
|
|
old_taoist
|
2.0/chapter19/#362 |
2009-11-25 17:46:16
|
还找不到的话,它会在 HTTP 请求头部里查找<literal>Accept-Language</literal>,
|
|
old_taoist
|
2.0/chapter19/#360 |
2009-11-25 17:43:49
|
如未找到,它会找寻一个cookie
|
|
old_taoist
|
2.0/chapter19/#358 |
2009-11-25 17:42:58
|
首先,在当前用户的 session 的中查找<literal>django_language</literal>键;
|
|
old_taoist
|
2.0/chapter19/#364 |
2009-11-25 17:39:48
|
Django会尝试头部中的每一个语种直到它发现一个可用的翻译。
|
|
old_taoist
|
2.0/chapter19/#370 |
2009-11-25 17:38:57
|
在上述每一处,语种偏好应作为字符串,以标准的语种格式出现。
|
|
old_taoist
|
2.0/chapter19/#558 |
2009-11-25 17:35:18
|
而是经过Python包装后的<literal>xgettext</literal>和msgfmt。这主要是为了方便。
|
|
old_taoist
|
2.0/chapter19/#557 |
2009-11-25 17:34:04
|
Django不单独使用 <literal>xgettext</literal> ,
|
|
old_taoist
|
2.0/chapter19/#5 |
2009-11-25 17:27:40
|
像大多数开源项目一样,Djano社区逐渐开始包括来自全球各地的许多参与者。
|
|
old_taoist
|
2.0/chapter19/#235 |
2009-11-25 17:13:29
|
这里就是它如何工作的。
|
|
old_taoist
|
2.0/chapter19/#239 |
2009-11-25 17:11:54
|
Django不会支持本地化你的应用到一个连它自己都还没被翻译的地域。
|
|
old_taoist
|
2.0/chapter19/#242 |
2009-11-25 17:09:28
|
如果你的应用需要你支持一个Django中没有的地域,你将至少需要做一个Django core的最小翻译。
|
|
old_taoist
|
2.0/chapter19/#274 |
2009-11-25 17:05:33
|
用逗号和(或)使用<literal>-e</literal>或<literal>--extension</literal>来分隔多项扩展项:
|
|
old_taoist
|
2.0/chapter19/#274 |
2009-11-25 17:01:52
|
分立的多项扩展使用逗号和(或)使用<literal>-e</literal>或<literal>--extension</literal>多次:
|
|
old_taoist
|
2.0/chapter19/#335 |
2009-11-25 16:58:26
|
要设定一个安装阶段的语种偏好,请设定<literal>LANGUAGE_CODE</literal>。如果其他翻译器没有找到一个译文,Django将使用这个语种作为缺省的翻译最终尝试。
|
|
old_taoist
|
2.0/chapter19/#373 |
2009-11-25 16:53:04
|
如果一个基本语种存在而亚语种没有指定,Django将使用基本语种。
|
|
old_taoist
|
2.0/chapter19/#371 |
2009-11-25 16:49:40
|
例如,巴西葡萄牙语是<literal>pt-br</literal> |
|
old_taoist
|
2.0/chapter19/#378 |
2009-11-25 16:48:43
|
例如:
|
|
old_taoist
|
2.0/chapter19/#407 |
2009-11-25 16:48:26
|
注意,对于静态翻译(无中间件)而言,此语言在<literal>settings.LANGUAGE_CODE</literal>中,而对于动态翻译(中间件),它在<literal>request.LANGUAGE_CODE</literal>中。
|
|
old_taoist
|
2.0/chapter19/#525 |
2009-11-25 16:43:07
|
<literal>obj</literal>包括一个JavaScript数组对象,要素值在它们的对应于<literal>fmt</literal>的占位符中以它们出现的相同次序顺序插值 。
|
|
old_taoist
|
2.0/chapter19/#525 |
2009-11-25 16:42:39
|
<literal>obj</literal>包括一个JavaScript数组对象,要素值在它们的对应于<literal>fmt</literal>的占位符中以它们出现的相同次序连续插值 。
|
|
old_taoist
|
2.0/chapter19/#516 |
2009-11-25 16:31:09
|
亦有一个<literal>ngettext</literal>接口:
|
|
old_taoist
|
2.0/chapter19/#530 |
2009-11-25 16:29:32
|
通过传送为真(TRUE)的布尔参数<literal>name</literal>来选择这个模式。
|
|
old_taoist
|
2.0/chapter19/#462 |
2009-11-25 16:25:53
|
否则,它会以缺省名<literal>django_language</literal>在cookie中保存这个语言选择。(这个名字可以通过<literal>LANGUAGE_COOKIE_NAME</literal>设置来改变)
|
|
old_taoist
|
2.0/chapter19/#462 |
2009-11-25 16:25:26
|
否则,它会以缺省名<literal>django_language</literal>在cookie中保存这个语言选择。(这个名字可以通过<literal>LANGUAGE_COOKIE_NAME</literal>设置来改变。
|
|
old_taoist
|
2.0/chapter19/#403 |
2009-11-25 16:21:17
|
一旦<literal>LocaleMiddleware</literal>决定用户的偏好,它会让这个偏好作为<literal>request.LANGUAGE_CODE</literal>对每一个<literal>HttpRequest</literal>有效。请随意在你的视图代码中读一读这个值。
|
|
old_taoist
|
2.0/chapter19/#364 |
2009-11-25 16:12:20
|
Django会尝试头部中的每一个语言直到它发现一个可用的翻译。
|
|
old_taoist
|
2.0/chapter19/#360 |
2009-11-25 16:09:57
|
别管它,它找寻一个cookie
|
|
old_taoist
|
2.0/chapter19/#349 |
2009-11-25 16:06:27
|
如果你使用<literal>CacheMiddleware</literal>把<literal>LocaleMiddleware</literal>放在它后面。
|
|
old_taoist
|
2.0/chapter19/#343 |
2009-11-25 16:03:43
|
因为中间件的顺序因素,你应当跟从这些准则:
|
|
old_taoist
|
2.0/chapter19/#277 |
2009-11-25 16:01:59
|
当创建JavaScript翻译目录时,你需要使用特殊的Django域:<strong>not</strong> |
|
old_taoist
|
2.0/chapter19/#277 |
2009-11-25 16:01:41
|
当创建JavaScript翻译目录时,你需要使用特殊的Django域:<strong>not</strong> |
|
old_taoist
|
2.0/chapter19/#267 |
2009-11-25 16:00:03
|
这段脚本遍历你的项目源树或你的应用程序源树并且提取出所有为翻译而被标记的字符串。
|
|
old_taoist
|
2.0/chapter19/#240 |
2009-11-25 15:53:25
|
在这种情况下,它将忽略你的翻译文件。
|
|
old_taoist
|
2.0/chapter19/#232 |
2009-11-25 15:52:03
|
2、如何创建语言文件
|
|
old_taoist
|
2.0/chapter19/#213 |
2009-11-25 15:51:30
|
allow_lazy() 装饰模式
|
|
old_taoist
|
2.0/chapter19/#208 |
2009-11-25 15:49:16
|
例如:
|
|
old_taoist
|
2.0/chapter19/#204 |
2009-11-25 15:48:50
|
string_concat()
|
|
old_taoist
|
2.0/chapter19/#199 |
2009-11-25 15:48:05
|
在模式和公用函数中,使用<literal>ugettext_lazy()</literal>和<literal>ungettext_lazy()</literal>来标记字符串是很普遍的操作。
|
|
old_taoist
|
2.0/chapter19/#197 |
2009-11-25 15:44:12
|
与惰性翻译对象一道工作
|
|
old_taoist
|
2.0/chapter19/#194 |
2009-11-25 15:43:19
|
在这个例子中,翻译结构将放过字符串<literal>"yes,no"</literal>,而不是单独的字符串<literal>"yes"</literal>和<literal>"no"</literal>。翻译的字符串将需要包括逗号以便过滤器解析代码明白如何分割参数。
|
|
old_taoist
|
2.0/chapter19/#167 |
2009-11-25 15:34:06
|
每一个<literal>RequestContext</literal>可以访问三个指定翻译变量:
|
|
old_taoist
|
2.0/chapter19/#167 |
2009-11-25 15:32:21
|
每一个<literal>RequestContext</literal>可以存取三个指定翻译变量:
|
|
old_taoist
|
2.0/chapter19/#146 |
2009-11-25 15:27:34
|
这个<literal>{% trans %}</literal>模板标记翻译一个常量字符串 (括以单或双引号) 或 可变内容:
|
|
old_taoist
|
2.0/chapter19/#141 |
2009-11-25 15:02:00
|
模板代码
|
|