ホームページ バックエンド開発 Python チュートリアル 在Python中的Django框架中进行字符串翻译

在Python中的Django框架中进行字符串翻译

Jun 06, 2016 am 11:13 AM
django

使用函数 ugettext() 来指定一个翻译字符串。 作为惯例,使用短别名 _ 来引入这个函数以节省键入时间.

在下面这个例子中,文本 "Welcome to my site" 被标记为待翻译字符串:

from django.utils.translation import ugettext as _

def my_view(request):
  output = _("Welcome to my site.")
  return HttpResponse(output)

ログイン後にコピー

显然,你也可以不使用别名来编码。 下面这个例子和前面两个例子相同:

from django.utils.translation import ugettext

def my_view(request):
  output = ugettext("Welcome to my site.")
  return HttpResponse(output)

ログイン後にコピー

翻译字符串对于计算出来的值同样有效。 下面这个例子等同前面一种:

def my_view(request):
  words = ['Welcome', 'to', 'my', 'site.']
  output = _(' '.join(words))
  return HttpResponse(output)

ログイン後にコピー

翻译对变量也同样有效。 这里是一个同样的例子:

def my_view(request):
  sentence = 'Welcome to my site.'
  output = _(sentence)
  return HttpResponse(output)

ログイン後にコピー

(以上两个例子中,对于使用变量或计算值,需要注意的一点是Django的待翻译字符串检测工具, make-messages.py ,将不能找到这些字符串。 稍后,在 makemessages 中会有更多讨论。)你传递给 _() 或 gettext() 的字符串可以接受占位符,由Python标准命名字符串插入句法指定的。 例如:

def my_view(request, m, d):
  output = _('Today is %(month)s %(day)s.') % {'month': m, 'day': d}
  return HttpResponse(output)

ログイン後にコピー

这项技术使得特定语言的译文可以对这段文本进行重新排序。 比如,一段英语译文可能是 "Today is November 26." ,而一段西班牙语译文会是 "Hoy es 26 de Noviembre." 使用占位符(月份和日期)交换它们的位置。

由于这个原因,无论何时当你有多于一个单一参数时,你应当使用命名字符串插入(例如: %(day)s )来替代位置插入(例如: %s or %d )。 如果你使用位置插入的话,翻译动作将不能重新排序占位符文本。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Djangoのバージョンを確認する方法 Djangoのバージョンを確認する方法 Dec 01, 2023 pm 02:25 PM

Djangoのバージョンを確認する方法

Django vs. Flask: Python Web フレームワークの比較分析 Django vs. Flask: Python Web フレームワークの比較分析 Jan 19, 2024 am 08:36 AM

Django vs. Flask: Python Web フレームワークの比較分析

Django フレームワークの長所と短所: 知っておくべきことすべて Django フレームワークの長所と短所: 知っておくべきことすべて Jan 19, 2024 am 09:09 AM

Django フレームワークの長所と短所: 知っておくべきことすべて

Djangoのバージョンを確認する方法 Djangoのバージョンを確認する方法 Nov 30, 2023 pm 03:08 PM

Djangoのバージョンを確認する方法

Django はフロントエンドですか、それともバックエンドですか? Django はフロントエンドですか、それともバックエンドですか? Nov 21, 2023 pm 02:36 PM

Django はフロントエンドですか、それともバックエンドですか?

Django のバージョンの違いは何ですか? Django のバージョンの違いは何ですか? Nov 20, 2023 pm 04:33 PM

Django のバージョンの違いは何ですか?

Django バージョンをアップグレードする方法: 手順と考慮事項 Django バージョンをアップグレードする方法: 手順と考慮事項 Jan 19, 2024 am 10:16 AM

Django バージョンをアップグレードする方法: 手順と考慮事項

Django はフロントエンドですか、バックエンドですか?それをチェックしてください! Django はフロントエンドですか、バックエンドですか?それをチェックしてください! Jan 19, 2024 am 08:37 AM

Django はフロントエンドですか、バックエンドですか?それをチェックしてください!

See all articles