1

__( '')関数を使うのは本当にいいです。しかし、私はどのようにリンクとハイライトで全体の段落を翻訳することができますかと思います。たとえば、次のリンクからベストプラクティスtranslate CakePHP 3.x __機能

<p><?= __('Bla bla text in german bla bla ')?> <a href="/user">Account</a> text bla bla <b>bla</b>.</p> 

アパートは(私はこれを操作する方法、私はケーキHTMLヘルパーを使用する必要があります知っている翻訳者は時々知っているdoesntのため、切り抜いた言語に翻訳するために、それは、これらのブロックarroundの翻訳するために吸います? 。コンテキスト

私はビューで開発していますhttp://book.cakephp.org/3.0/en/orm/behaviors/translate.htmlを探しています何これです - 多分これが私の最初の問題であるので、私は追加してDBにコンテンツを書いていないですなど

答えて

2

コンテキストは何ですか? __x()関数はそこにあり、最初の引数として任意のコンテキスト文字列をとります。これはgoiですI18nシェルを使用する場合は、msgctxtと抽出する必要があります。そうすれば、翻訳者に翻訳の正確な情報を与えることができます。

HTMLの場合、それは依存し、個人的な好みがあります。個人的には、複雑なHTMLの場合や、コードを生成するためにコードを使用する必要がある場合は、通常、分割しています。もし本当に基本的なHTML、あるいは異なる言語で別々に置く必要があるタグであれば、私はそれを単一のメッセージにしておきます。

私はの線に沿って何かをしたい、あなたの例では

<?php 
$link = $this->Html->link(
    __x('Paragraph XYZ link text', 'Account'), 
    ['controller' => 'Users'] 
); 
?> 
<p><?= __x('Paragraph XYZ', 'Bla text in german {0} text bla <b>bla</b>.', $link)?></p> 

翻訳を抽出する場合、これはすでに、テキストコンテキストを提供するメッセージで

#: Template/Foo/bar.ctp:3 
msgctxt "Paragraph XYZ link text" 
msgid "Account" 
msgstr "" 

#: Template/Foo/bar.ctp:7 
msgctxt "Paragraph XYZ" 
msgid "Bla text in german {0} text bla bla <b>bla</b>." 
msgstr "" 

のようなものとして終わるでしょうそれを補う値であるmsgctxtの値を使用すると、翻訳者は翻訳内容やメッセージの関係を把握するのに問題はないはずです。

+0

感謝を参照してください!私は最終的にDBから翻訳に行きますが、変数を使用することでその時間をカバーするのに役立ちます。 – Isengo

関連する問題