phpทวิกหลายภาษาโดยไม่มีข้อความ

ฉันเป็นมือใหม่ใน php และฉันเขียนหน้าเว็บแรกโดยใช้ PHP + JS โดยไม่มีเฟรมเวิร์กใด ๆ (อาจจะในภายหลัง)

ฉันมีคำถามต่อไป

จะใช้หลายภาษาใน Twig โดยไม่ต้องใช้ Gettext หรือปลั๊กอินอื่นๆ ได้อย่างไร

อะไรทำนองนั้น (ใน PHP ล้วนๆ - ไม่มีคำถาม... แต่จะใช้มันในทวิกได้อย่างไร)

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

อันที่จริงโครงการของฉันไม่มีข้อจำกัด หาก Gettext เป็นทางออกที่ดีที่สุดสำหรับฉัน ฉันจะใช้มัน ฉันคิดว่าฉันจะต้องแปลเพียง 5-10 คำต่อหน้า การใช้ Gettext เพื่อจุดประสงค์นี้ค่อนข้างแปลก


person Dmitry Novice    schedule 11.01.2015    source แหล่งที่มา
comment
เหตุใดจึงมีข้อจำกัดในการรับข้อความ   -  person deceze♦    schedule 11.01.2015
comment
เมื่อคุณบอกว่าไม่มี gettext หรือปลั๊กอินอื่นๆ คุณหมายถึงส่วนขยาย PHP หรือนั่นรวมส่วนขยาย Twig ด้วยเช่นกัน มีส่วนขยายการแปลสำหรับทวิแล้ว: twig.sensiolabs.org/doc/extensions/i18n .html   -  person Mathew Tinsley    schedule 11.01.2015
comment
หาก Gettext เป็นทางออกที่ดีที่สุดสำหรับฉัน ฉันจะใช้มัน โครงการของฉันไม่มีข้อจำกัด ฉันคิดว่าฉันจะต้องแปลเพียง 5-10 คำต่อหน้า การใช้ Gettext เพื่อจุดประสงค์นี้ค่อนข้างแปลก   -  person Dmitry Novice    schedule 11.01.2015


คำตอบ (1)


คุณสามารถใช้อาร์เรย์ php เช่นเดียวกับของคุณเพื่อแปลเป็นทวิกได้อย่างง่ายดาย เพียงส่งอาร์เรย์ไปยังเทมเพลตทวิก:

/* $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);

และในเทมเพลต:

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

แต่โปรดทราบว่า หากคุณมีการแปลที่ซับซ้อนด้วยนิพจน์เอกพจน์/พหูพจน์ ตัวแปร นิพจน์วันที่ ฯลฯ ฉันขอแนะนำอย่างยิ่งให้คุณใช้ส่วนขยายทวิ i18n ที่สร้างขึ้นจาก gettext: http://twig.sensiolabs.org/doc/extensions/i18n.html

person Mario A    schedule 24.01.2015