2016-11-11 6 views
0

言語ラベルの一部を何らかの形で強調表示する必要がある場合は、ここでベストプラクティスと見なされるのは何ですか?locallang.xlfでのラベルの書式設定(タグによる)

私は通常、ラベルを部品に分割し、Fluidの対応するタグにラップすることで、可能な限り言語ラベルのhtmlタグを回避しようとしています。最悪のケースのラベルには

CDATAでラップされています

<trans-unit id="my.label"> 
    <source><![CDATA[Here comes a <strong>bold text</strong> and then <em>italic</em> and now <span class="fancy">fancy styled</span> stop]]></source> 
</trans-unit> 

しかし、これはCSSがリファクタリングされ、いくつかのクラスの名前が変更された場合、その後の痛みをもたらすことができ、コンテンツとプレゼンテーションをミックス。

もう一つの解決策は、htmlタグを含む可能性のあるすべてのテキストを、XLFからPluginのFlexForm RTEフィールドまたはRTEフィールドを持つ設定レコードのいずれかに移動することです。しかし、それはやはりハックのように見えます。

このような問題をどのように解決しますか?

答えて

3

私の場合、テキストの種類によっていくつかのオプションがあります。このHTMLは、任意の引数に巻き付けHTMLを外に移動し、<f:translate />なViewHelperの引数として使用されている場合は

1.))2.

できるだけ多くのHTMLを避けてください。

3)翻訳がちょっと違うので、引数を使用するのが難しい場合があります。次に、異なる言語に異なる部分/セクションを使用し、言語ファイルを使用しません。

4.)私はCDATAアプローチを使用します。

+1

私は、複雑なケースではアプローチ#3が好きです。入力ありがとうございました) –

+0

多分それを解決策としてマークしたい;) –

1

(点1のすべての可能な場合は、間違いなく行く方法です)ゲオルク・リンガー答えに加え:

5)使用しているものXLIFF申し出。 XLIFF 1.2には、翻訳可能なコンテンツ内にタグをマークする要素があります。正確に言えば、そのような要素が多すぎます。あなたの例の一つの可能​​性のある表現が

<trans-unit id="my.label"> 
    <source>Here comes a <bpt id="1">&lt;strong&gt;</bpt>bold text<ept id="1">&lt;/strong&gt;</ept> and then <bpt id="2">&lt;em&gt;</bpt>italic<ept id="2">&lt;/em&gt;</ept> and now <bpt id="3">&lt;span class=&quot;fancy&quot;&gt;</bpt>fancy styled<ept id="3">&lt;span&gt;</ept> stop</source> 
</trans-unit> 

だろう、これは、コードで乱雑に見えますが、それはXLIFF意識し、翻訳エディタは、彼らが仕事しやすい方法であなたの翻訳者にこれを提示する利点を持っていますこのように:

XLIFF segment screenshot

ターゲット言語でテキストの順序を変更する必要がある場合、トランスレータはこれらのタグを移動できます。ターゲット言語で意味をなさない場合は、紫色のタグを完全に削除することができます。複雑な中国語の文字は大胆な顔でひどく見えます。タグの一部を削除することはできません。

+0

ヒントありがとうございます。 Btw、私は少し違ってやろうとしました。XLIFFの内部カバーオンを作成しました。[docs](http://docs.oasis-open.org/xliff/v1.2/xliff-profile-html/ xliff-profile-html-1.2-cd02.html#Structure_MappingElements)、それでも成功しませんでした。しかし、なぜそう思ったのですか:それは翻訳をしないSimpleXMLですか、あるいはTYPO3 xliffパーサーがそのようなサポートを見逃していますか? –

+0

私はあなたに同意します:そのような機能を組み込むとよいでしょう。残念なことに、翻訳はしばしば開発者が考える最後のものです。 – Jenszcz

1

可能な解決策の1つは、翻訳文字列内のパラメータの使用です。これらのパラメータは、(TSまたは流体によって)タグで包まれた翻訳された文字列で満たされ得る。これは、文字列が複数の文字列(部分的に文脈がゆるくなる可能性がある)に分解されるので、非常に複雑な翻訳処理につながる可能性があります。

別の解決策は、端部で置換されたタグのための(<b></b>ため###_B######B###等)マーカーを使用することができた(そして、異なるデバイスのために変わる可能性があります)。これも複雑で、良い設定が必要で、さらなるマークアップのようなものを発明します。

関連する問題