2010-12-29 5 views
6

私はDjangoプロジェクトを翻訳する方法を探しています。 Djangoで提供される組み込みの機構は素晴らしいですが、いくつかの弱点があり、私は代替手段を探していました。Django i18n:gettextの代替手段はありますか?

プロジェクトの所有者は、英語(元の翻訳)を含むすべての翻訳を編集できる必要があります。 gettextを使用すると、Pootleのようなツールで翻訳を編集することは可能ですが、元の文字列はファイルソースまたはテンプレート内でハードコードされたままです。製品の所有者が変更できる方法はありません。

_('form_sumbit_button') 

しかし、これは翻訳者のために使用することはほとんど不可能pootleのようなツールを作る:

解決策は、このように、いくつかのユニークな識別子を翻訳gettextを作り、ちょうど英語を含むすべての言語にそれらを変換することです。

質問: Djangoプロジェクトの翻訳に必要なツールはありますか?

答えて

1

Pootleをどのようにカスタマイズするのが簡単かによっては、_( "message_id")アプローチでPootleを使用することができます(私は内部についてはわかりませんが、IIUCではDjangoを使用していますテンプレートの変更は通常簡単です)。

たとえば、Pootleの翻訳画面には「オリジナル」セクションと「翻訳」セクションがあります。おそらく、オリジナルのセクションの下に特定の参照言語(英語など)を使用して標準的な翻訳を表示する「参照」セクションを表示するためにテンプレートを適応させることができます。

また、Pootleをカスタマイズする必要なく、Pootleのalternative source language機能を使用することができます。使用されていない言語コード(またはメークアップコード)を使用して、標準バージョンの翻訳を保存することができます。

2

いくつかのメッセージIDを使用すると、理解できない( "message_2215")か、メッセージIDを実際のメッセージと同期させる( "任意のキーを押してください" = "please_press_any_key" =>続行する任意のキー "=" any_key_to_continue ")。いずれにしても、プログラマーやツールにとっては、実際の文字列が優れています。あなたは、文字列のための独立した証拠リーダーを採用する場合は、次の操作を行うことができ

  1. 英語「翻訳」ファイルを作成します(はい、これは動作します)
  2. はあなたproof-をしてみましょう読者はPootleまたは他のツールを使用して英語から英語に翻訳する
  3. コード内の文字列を更新することによってプログラマがその翻訳ファイルを翻訳しないようにしてください。
  4. (オプション)メインコードとは独立して翻訳を展開する方法を作成し、誤植をすばやく修正できます。
0

私はあなたと同じ問題を抱えていたし、私はこのライブラリを書いたので、私は、任意のサードパーティのソリューションを設立していない:https://github.com/fabiocaccamo/django-kway

・ホープ誰かウィルは、それが有用であることが分かっていることを。

0

Gettextでは識別子を使用することが可能であり、これをサポートするツールがあります。しかし、一部の翻訳者は、オフライン翻訳のために.poファイルのみをダウンロードすることに慣れているため、単一言語の翻訳では動作しません。たとえばWeblateについては

は(私は、このツールの作者です)ちゃんとモノリンガルのgettextファイルをサポートしています。https://docs.weblate.org/en/latest/formats.html#monolingual-gettext

関連する問題