2016-10-03 12 views
0

私は、ハンドルバーのテンプレートを使って動的サイトを構築するPHPバックエンドを持っています。サイトはユーザーの好みによるUIのローカリゼーションをサポートしている必要があります(サイトにはユーザーのUI設定による認証があります)。今、すべてのハンドルバーテンプレートは、たとえば、PHPのプロセッサによって生成された:ローカライズされたhandlebarsjsテンプレートを作成する方法は?

{{!-- Template for dispatch table --}} 
<table id="records" class="table-data"> 
    <caption> 
     <h3> 
      <div class="column-right"><span class="icon-clock"></span><span id="clock"></span></div> 
      <div><span class="icon-database"></span><?php echo _('Records in the order for dispatching.'); ?></div> 
      <div class="clear"></div> 
     </h3> 
    </caption> 
    <thead> 
     <tr> 
      <th colspan="2"><span class="icon-database"></span><?php echo _('Name'); ?></th> 
      <th><span class="icon-clock"></span><?php echo _('Record Date'); ?></th> 
      <th><span class="icon-user"></span><?php echo _('Client'); ?></th> 
      <th><span class="icon-pencil"></span><?php echo _('Conclusion'); ?></th> 
      <th><span class="icon-doc"></span><?php echo _('Status'); ?></th> 
      <th><span class="icon-doc-text"></span><?php echo _('Doctor'); ?></th> 
      <th><span class="icon-code"></span><?php echo _('Type'); ?></th> 
     </tr> 
    </thead> 
    <tbody> 
     {{#each records}} 
     ................. 
     {{/each}} 
    </tbody> 
</table> 

そして、それは、テンプレートにあまりにも多くの<?php echo ... ?>を:(クールではないです は、この問題のいくつかの解決策があるかもしれませ

PS:。?テンプレートバックエンドで生成されたが、コンパイルされ、ユーザ側で働いている

UPDATE: 私は、バックエンドで実行される作業を減らしたい私にとって最善の解決策は、のための1つによって(静力学のセットにダイナミックHBSテンプレートを変換です。サポート移植されたローカリゼーション)。この目的のために、すべての<?php echo _('...'); ?>ステートメントがlocaly文字列に変換されるように、テンプレートをコンパイルしたいと思います。 しかし、私はこれを行う方法がわかりません。

+0

何が問題なのですか? – Jeff

+0

@Jeff、私はサーバーで実行される作業を減らしたい。 – 23W

答えて

0

echoステートメントの使用を避けるために、SmartyのようなPHPテンプレートエンジンを使用できます。このようにして、echoを使用する代わりに、すでにhtmlファイルで書かれたテンプレートをコンパイルします。このhtmlファイルには、handlebarsディレクティブも含まれているため、ユーザー側でコンパイルされます。しかし、この時点では、なぜPhpテンプレートエンジンだけを使用しないのですか?それはあなたに依存しています。 。 。

+0

PHPテンプレートは生成されたhbsの 'echo'文より速く動作しますか?これらのテンプレートをすべての言語でプリコンパイルできますか? – 23W

+0

テンプレートをプリコンパイルすることができます。エンジンを使用したパフォーマンスは、生のコードよりも常に遅くなりますが、心配する必要がなく、メンテナンス性が向上します。 –

関連する問題