2012-03-04 10 views
2

Pyramidプロジェクトのテンプレートファイルからテキストを翻訳しようとしています。この例のように多かれ少なかれ:http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/chameleon_i18n.html<動的要素>の代わりにタグ付きPOTファイル

私の.potファイルのコメントに<dynamic element>を取り除くにはどうすればよいですか?私はタグの他のコードを見たいと思います。

マイカメレオンテンプレート(.pt):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal" 
    xmlns:i18n="http://xml.zope.org/namespaces/i18n" 
    i18n:domain="MyDomain"> 
<head> 
    ... 
</head> 
<body> 
    <div i18n:translate="MyID"> 
     This will appear in the comments. 
     <span>This will NOT.</span> 
     While this will again appear. 
    </div> 
</body> 
</html> 

私は私のsetup.pyで次のオプションを指定してメッセージを抽出するために、バベルとリンガを使用します。

message_extractors = { '.': [ 
     ('**.py', 'lingua_python', None), 
     ('**.pt', 'lingua_xml', None), 
     ]} 

し、関連する出力で私の.potファイルは次のようになります。

#. Default: This will appear in the comments. <dynamic element> While this will 
#. again appear. 
#: myproject/templates/base.pt:10 
msgid "MyID" 
msgstr "" 

答えて

2

これは明示的にはサポートされていません。テキストを保持します。マークアップを含んではいけません。そうしないと、二つの問題を持っているでしょう:

    翻訳 のいずれかの文字がする必要がある場合は、テンプレートツールキットを決定する方法はありませんあなたのサイトを壊す可能性がある、マークアップを挿入したり、セキュリティ上の問題
  1. を作成することができます
  2. 翻訳者エスケープされているか、そのまま出力する必要があります。

i18n:name属性を使用する場合は、動的コンポーネントまたはマークアップ内のアイテムを翻訳する必要があるのが一般的です。たとえば、あなたがこれを行うことができます:This is ${very} stringvery:あなたに変換する2つの文字列を与えるだろう

<p i18n:translate="">This is <strong i18n:name="very" i18n:translate="">very</strong> important.

を。

関連する問題