在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 格式本地化
編寫自定義存儲系統(tǒng)
高級
編寫你的第一個Django應(yīng)用,第5部分
視圖層
Django管理文檔生成器
編寫你的第一個 Django 程序 第3部分
編寫你的第一個Django應(yīng)用,第6部分
模型層
中間件
測試
數(shù)據(jù)庫訪問優(yōu)化
文件上傳
中間件
驗證器
基于類的內(nèi)建通用視圖
部署靜態(tài)文件
使用Django認證系統(tǒng)
高級教程:如何編寫可重用的應(yīng)用
Model 類參考
Django 初探
使用Django輸出PDF
模型的實例
模型
文件上傳
進行原始的sql查詢
面向程序員
中間件
編寫數(shù)據(jù)庫遷移
TemplateResponse 和 SimpleTemplateResponse
異常
Django中的測試
基礎(chǔ)
管理器
File對象
URL調(diào)度器
加密簽名
國際化和本地化
日志
查詢集
django-admin 和 manage.py
使用基于類的視圖處理表單
聚合
內(nèi)建基于類的視圖的API
如何使用會話
部署 Django
其它
其它核心功能
高級
Django中的密碼管理
模型元選項
按需內(nèi)容處理
查找 API 參考
高級
Django 的快捷函數(shù)
Django 的設(shè)置
Admin
開發(fā)過程
新手入門
基于類的視圖
模型實例參考
信號
表單素材 ( <code>Media</code> 類)
自定義查找
常見的網(wǎng)站應(yīng)用工具
模型
django.contrib.humanize
Django模版語言
點擊劫持保護
管理操作
編寫你的第一個 Django 程序 第2部分
Django安全
模式編輯器
多數(shù)據(jù)庫
部署
基于類的視圖
內(nèi)建的視圖
視圖裝飾器
面向設(shè)計師
編寫視圖
應(yīng)用程序
如何使用WSGI 部署
參考
表單 API
文件儲存API
認證
國際化和本地化
錯誤報告
基礎(chǔ)
基礎(chǔ)
將遺留數(shù)據(jù)庫整合到Django
教程
Django異常
編寫你的第一個 Django 程序 第4部分
遷移
分頁
重定向應(yīng)用
表單
從零開始
為模型提供初始數(shù)據(jù)
設(shè)置
使用Django輸出CSV
關(guān)聯(lián)對象參考
使用表單
Django 中的用戶認證
快速安裝指南
安全問題歸檔
數(shù)據(jù)庫函數(shù)
編寫自定義的django-admin命令
高級教程
管理文件
格式本地化
基于類的通用視圖 —— 索引
安全
系統(tǒng)檢查框架
為Django編寫首個補丁
模板層
Widgets
編寫你的第一個 Django 程序 第1部分
執(zhí)行查詢

格式本地化

概覽

Django的格式化系統(tǒng)可以在模板中使用當前地區(qū)特定的格式,來展示日期、時間和數(shù)字。也可以處理表單中輸入的本地化。

當它被開啟時,訪問相同內(nèi)容的兩個用戶可能會看到以不同方式格式化的日期、時間和數(shù)字,這取決于它們的當前地區(qū)的格式。

格式化系統(tǒng)默認是禁用的。需要在你的設(shè)置文件中設(shè)置USE_L10N = True來啟用它。

注意

為了方便起見,django-admin startproject創(chuàng)建的默認的settings.py文件包含了&nbsp;[USE_L10N = True](../../ref/settings.html#std:setting-USE_L10N) 的設(shè)置。但是要注意,要開啟千位分隔符的數(shù)字格式化,你需要在你的設(shè)置文件中設(shè)置USE_THOUSAND_SEPARATOR = True?;蛘撸阋部梢栽谀愕哪0逯惺褂?a href="../../ref/contrib/humanize.html#std:templatefilter-intcomma">intcomma來格式化數(shù)字。

注意

USE_I18N 是另一個獨立的并且相關(guān)的設(shè)置,它控制著Django是否應(yīng)該開啟翻譯。詳見翻譯。

表單中的本地化識別輸入

格式化開啟之后,Django可以在表單中使用本地化格式來解析日期、時間和數(shù)字。也就是說,在表單上輸入時,它會嘗試不同的格式和地區(qū)來猜測用戶使用的格式。

注意

Django對于展示數(shù)據(jù),使用和解析數(shù)據(jù)不同的格式。尤其是,解析日期的格式不能使用%a(星期名稱的縮寫),%A (星期名稱的全稱),%b (月份名稱的縮寫), %B(月份名稱的全稱),或者%p(上午/下午)。

只是使用localize參數(shù),就能開啟表單字段的本地化輸入和輸出:

class CashRegisterForm(forms.Form):
   product = forms.CharField()
   revenue = forms.DecimalField(max_digits=4, decimal_places=2, localize=True)

在模板中控制本地化

當你使用USE_L10N來開啟格式化的時候,Django會嘗試使用地區(qū)特定的格式,無論值在模板的什么位置輸出。

然而,這對于本地化的值不可能總是十分合適,如果你在輸出JavaScript或者機器閱讀的XML,你會想要使用去本地化的值。你也可能想只在特定的模板中使用本地化,而不是任何位置都使用。

DJango提供了l10n模板庫,包含以下標簽和過濾器,來實現(xiàn)對本地化的精細控制。

模板標簽

localize

在包含的代碼塊內(nèi)開啟或關(guān)閉模板變量的本地化。

這個標簽可以對本地化進行比USE_L10N更加精細的操作。

這樣做來為一個模板激活或禁用本地化:

{% load l10n %}

{% localize on %}
    {{ value }}
{% endlocalize %}

{% localize off %}
    {{ value }}
{% endlocalize %}

注意

在 {% localize %}代碼塊內(nèi)并不遵循f USE_L10N的值。

對于在每個變量基礎(chǔ)上執(zhí)行相同工作的模板過濾器,參見localizeunlocalize。

模板過濾器

localize

強制單一值的本地化。

例如:

{% load l10n %}

{{ value|localize }}

使用unlocalize來在單一值上禁用本地化。使用localize 模板標簽來在大塊的模板區(qū)域內(nèi)控制本地化。

unlocalize

強制單一值不帶本地化輸出。

例如:

{% load l10n %}

{{ value|unlocalize }}

使用localize來強制單一值的本地化。使用localize模板標簽來在大塊的模板區(qū)域內(nèi)控制本地化。

創(chuàng)建自定義的格式文件

Django為許多地區(qū)提供了格式定義,但是有時你可能想要創(chuàng)建你自己的格式,因為你的的確并沒有現(xiàn)成的格式文件,或者你想要覆寫其中的一些值。

Changed in Django 1.8:

添加了指定FORMAT_MODULE_PATH為列表的功能。之前只支持單一的字符串值。

指定你首先放置格式文件的位置來使用自定義格式。把你的FORMAT_MODULE_PATH設(shè)置設(shè)置為格式文件存在的包名來使用它,例如:

FORMAT_MODULE_PATH = [
    'mysite.formats',
    'some_app.formats',
]

文件并不直接放在這個目錄中,而是放在和地區(qū)名稱相同的目錄中,文件也必須名為formats.py。

需要這樣一個結(jié)構(gòu)來自定義英文格式:

mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

其中formats.py包含自定義的格式定義。例如:

from __future__ import unicode_literals

THOUSAND_SEPARATOR = '\xa0'

使用非間斷空格(Unicode 00A0)作為千位分隔符,來代替英語中默認的逗號。

提供本地化格式的限制

一些地區(qū)對數(shù)字使用上下文敏感的格式,Django的本地化系統(tǒng)不能自動處理它。

瑞士(德語)

瑞士的數(shù)字格式化取決于被格式化的數(shù)字類型。對于貨幣值,使用逗號作為千位分隔符,以及使用小數(shù)點作為十進制分隔符。對于其它數(shù)字,逗號用于十進制分隔符,空格用于千位分隔符。Django提供的本地格式使用通用的分隔符,即逗號用于十進制分隔符,空格用于千位分隔符。

譯者:Django 文檔協(xié)作翻譯小組,原文:ocalized Web UI formatting and form input。

本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。

Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。