翻譯的模板是 使用Django的模版來(lái)配合字符串翻譯工作
日期:2023-03-11 12:39:36 / 人氣: 464 / 發(fā)布者:成都翻譯公司
這篇文章主要介紹了使用Django的模版來(lái)配合字符串翻譯工作,Django是*具人氣的Python開(kāi)發(fā)框架,需要的朋友可以參考下Django模板使用兩種模板標(biāo)簽,且語(yǔ)法格式與Python代碼有些許不同。的字符串中,混進(jìn)一個(gè)模板變量是不可能的。以上就是使用Django的模版來(lái)配合字符串翻譯工作的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注html中文網(wǎng)其它相關(guān)文章!本文主要介紹使用Django的模板配合字符串翻譯。Django 是*流行的 Python 開(kāi)發(fā)框架。有需要的朋友可以參考
Django 模板使用兩個(gè)模板標(biāo)簽,語(yǔ)法格式與 Python 代碼略有不同。為了讓模板訪問(wèn)標(biāo)簽,{% load i18n %} 需要放置在模板的頂部。
這個(gè) {% trans %} 模板標(biāo)簽翻譯一個(gè)常量字符串(用單引號(hào)或雙引號(hào)括起來(lái))或變量?jī)?nèi)容:
{% trans "This is the title." %} {% trans myvar %}
如果有 noop 選項(xiàng),變量查詢?nèi)匀挥行В珜⑻^(guò)翻譯。這在將來(lái)需要翻譯空白內(nèi)容時(shí)非常有用。
{% trans "myvar" noop %}
在帶有 {% trans %} 的字符串中,不可能混入模板變量。如果您的翻譯需要帶有變量(占位符)的字符串翻譯的模板是,請(qǐng)使用 {% blocktrans %}:
{% blocktrans %}This string will have {{ value }} inside.{% endblocktrans %}
要使用模板過(guò)濾器翻譯模板表達(dá)式,您需要將表達(dá)式綁定到翻譯文本中的局部變量:
{% blocktrans with value|filter as myvar %} This will have {{ myvar }} inside. {% endblocktrans %}
如果需要在blocktrans標(biāo)簽內(nèi)綁定多個(gè)表達(dá)式翻譯的模板是,可以使用和來(lái)分隔:
{% blocktrans with book|title as book_t and author|title as author_t %} This is {{ book_t }} by {{ author_t }} {% endblocktrans %}
為了表達(dá)單復(fù)數(shù)相關(guān)內(nèi)容,需要在{% blocktrans %}和{% endblocktrans %}之間使用{%復(fù)數(shù)%}標(biāo)簽來(lái)指定單復(fù)數(shù)形式,例如:
{% blocktrans count list|length as counter %} There is only one {{ name }} object. {% plural %} There are {{ counter }} {{ name }} objects. {% endblocktrans %}
內(nèi)部機(jī)制是所有塊和內(nèi)聯(lián)翻譯調(diào)用相應(yīng)的gettext 或ngettext。
每個(gè) RequestContext 可以訪問(wèn)三個(gè)指定的翻譯變量:
{{ LANGUAGES }} 是元組列表。每個(gè)元組的第一個(gè)元素是語(yǔ)言代碼,第二個(gè)元素是語(yǔ)言中的語(yǔ)言名稱。LANGUAGE_CODE 作為一兩個(gè)字符串,是當(dāng)前用戶的首選語(yǔ)言。例如:en-us。(請(qǐng)參閱下面的 Django 如何發(fā)現(xiàn)語(yǔ)言首選項(xiàng)) LANGUAGE_BIDI 是當(dāng)前區(qū)域的描述。如果為真(True),則是從右到左書(shū)寫(xiě)的語(yǔ)言,例如:希伯來(lái)語(yǔ)、阿拉伯語(yǔ)。如果為False,則是從左到右書(shū)寫(xiě)的語(yǔ)言,如:英語(yǔ)、法語(yǔ)、德語(yǔ)等。
如果您不使用此 RequestContext 擴(kuò)展,則可以對(duì)這些值使用 3 個(gè)標(biāo)簽:
{% get_current_language as LANGUAGE_CODE %} {% get_available_languages as LANGUAGES %} {% get_current_language_bidi as LANGUAGE_BIDI %}
這些標(biāo)簽還需要 {% load i18n %}。
任何接受常量字符串的模板塊標(biāo)記中也可以使用翻譯鉤子。這時(shí)候用_()表達(dá)式來(lái)指定翻譯字符串,例如:
{% some_special_tag _("Page not found") value|yesno:_("yes,no") %}
在這種情況下,標(biāo)簽和過(guò)濾器都會(huì)看到翻譯后的字符串,因此它們不需要注意翻譯操作。
評(píng)論:
在此示例中,翻譯結(jié)構(gòu)將省略字符串“yes,no”,而不是單獨(dú)的字符串“yes”和“no”。翻譯后的字符串需要包含一個(gè)逗號(hào),以便過(guò)濾器解析代碼了解如何拆分參數(shù)。例如,德語(yǔ)翻譯人員可能會(huì)將字符串“yes,no”翻譯為“ja,nein”(保留逗號(hào)不變)。
以上就是使用Django模板配合字符串翻譯工作的詳細(xì)內(nèi)容。更多內(nèi)容請(qǐng)關(guān)注html中文網(wǎng)其他相關(guān)文章!
- 上一條雙學(xué)位翻譯模板 浙商大教〔2009〕218號(hào) 浙江工商大學(xué)關(guān)于修訂 雙專業(yè)、雙學(xué)位實(shí)施方案
- 下一條電開(kāi)信用證翻譯模板 外貿(mào)企業(yè)操作SWIFT信用證策略
相關(guān)閱讀Relate
熱門文章 Recent
- 翻譯公司譯文模板 翻譯實(shí)踐類開(kāi)題報(bào)告模版2023-03-11
- 澳洲簽證翻譯模板 11年澳大利亞留學(xué)簽證申請(qǐng)材料模板翻譯2023-03-11
- 戶口本俄語(yǔ)翻譯模板 俄語(yǔ)翻譯面試自我介紹2023-03-11
- 英語(yǔ)道歉信模板及翻譯 2019考研英語(yǔ)小作文預(yù)測(cè):道歉信模板+高分范文+表達(dá)2023-03-11
- 翻譯應(yīng)屆生簡(jiǎn)歷模板 應(yīng)屆生求職免費(fèi)簡(jiǎn)歷模板下載2023-03-11
- 簡(jiǎn)歷模板翻譯2023-03-11
- 英語(yǔ)四級(jí)中國(guó)文化翻譯萬(wàn)能模板 大學(xué)英語(yǔ)四級(jí)、六級(jí)考試萬(wàn)能作文模板2023-03-11
- 商品房購(gòu)銷合同翻譯模板 商品房買賣合同樣本2023-03-11
- 考研英語(yǔ)一作文萬(wàn)能模板翻譯版 考研英語(yǔ):大小作文高分模板匯總!2023-03-11
- 專業(yè)的專利文獻(xiàn)翻譯模板誠(chéng)信為先 專利 | 專利檢索常用的十八個(gè)網(wǎng)站2023-03-11