php ranting multibahasa tanpa gettext

Saya pemula di php dan saya menulis halaman web pertama saya menggunakan PHP + JS tanpa kerangka apa pun (mungkin nanti).

Saya punya pertanyaan berikutnya.

Bagaimana cara mengimplementasikan multibahasa di Twig tanpa Gettext atau plugin lainnya?

Sesuatu seperti itu (dalam PHP murni - tidak ada pertanyaan... tapi bagaimana menggunakannya di ranting)

$lang=array(
"about_site" => "о нас",
"project" => "проект",
"team" => "команда");

Sebenarnya proyek saya tidak memiliki batasan. Jika Gettext adalah solusi terbaik bagi saya - saya akan menggunakannya. Saya pikir saya hanya perlu menerjemahkan 5-10 kata per halaman. Menggunakan Gettext untuk tujuan ini agak aneh.


person Dmitry Novice    schedule 11.01.2015    source sumber
comment
Mengapa ada pembatasan terhadap gettext?   -  person deceze♦    schedule 11.01.2015
comment
Ketika Anda mengatakan tanpa gettext atau plugin lain, maksud Anda ekstensi PHP atau apakah itu termasuk ekstensi Ranting juga. Sudah ada ekstensi terjemahan untukranting: twig.sensiolabs.org/doc/extensions/i18n .html   -  person Mathew Tinsley    schedule 11.01.2015
comment
Jika Gettext adalah solusi terbaik bagi saya - saya akan menggunakannya. Proyek saya tidak memiliki batasan. Saya pikir saya hanya perlu menerjemahkan 5-10 kata per halaman. Menggunakan Gettext untuk tujuan ini agak aneh.   -  person Dmitry Novice    schedule 11.01.2015


Jawaban (1)


Anda dapat dengan mudah menggunakan array php seperti milik Anda untuk terjemahan dalam ranting. Cukup teruskan array ke templat ranting:

/* $twig is a is an instance of Twig_Environment */
$template = $twig->loadTemplate('yourtemplate.html');

$templateVars['trans'] = array(
  "about_site" => "о нас",
  "project" => "проект",
  "team" => "команда"
);
echo $template->render($templateVars);

Dan di templatnya:

<!-- a lot of html stuff -->
<ul>
  <li><a href="/id#">{{ trans.about_site }}</a></li>
  <li><a href="/id#">{{ trans.project }}</a></li>
  <li><a href="/id#">{{ trans.team }}</a></li>
</ul>

Namun perlu diingat, jika Anda memiliki terjemahan kompleks dengan ekspresi tunggal/jamak, variabel, ekspresi tanggal, dll. Saya sangat menyarankan Anda untuk menggunakan ekstensiranting i18n yang dibuat berdasarkan gettext: http://twig.sensiolabs.org/doc/extensions/i18n.html

person Mario A    schedule 24.01.2015