2015-01-11 6 views
1

저는 PHP에서 초보자이며 프레임 워크없이 PHP + JS를 사용하여 첫 번째 웹 페이지를 작성합니다 (어쩌면 나중에).gettext가없는 PHP 다국어 다국어

다음 질문이 있습니다.

Gettext 또는 다른 플러그인을 사용하지 않고 Twig에서 다중 언어를 구현하는 방법은 무엇입니까?

(순수 PHP에서 - 어떤 질문 ...하지만 어떻게 나뭇 가지에 사용) 뭐 그런 사실

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

내 프로젝트에는 제한이 없습니다. Gettext가 나에게 가장 적합한 솔루션이라면 - 그것을 사용하겠습니다. 페이지 당 5-10 단어 만 번역해야한다고 생각했습니다. 이 목적으로 Gettext를 사용하는 것은 약간 이상합니다.

+0

왜 gettext에 대한 제한이 있습니까? – deceze

+1

gettext 나 ​​다른 플러그인이 없다면 PHP 확장을 의미합니까, 아니면 Twig 확장을 포함할까요? 나뭇 가지에 대한 번역 확장 프로그램이 이미 있습니다. http://twig.sensiolabs.org/doc/extensions/i18n.html –

+0

Gettext가 나에게 가장 적합한 솔루션 인 경우 - 사용하겠습니다. 내 프로젝트에는 제한이 없습니다. 페이지 당 5 ~ 10 단어 만 번역해야한다고 생각했습니다. 이 목적으로 Gettext를 사용하는 것은 약간 이상합니다. –

답변

0

당신은 나뭇 가지로 번역을 위해 당신처럼 쉽게 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="#">{{ trans.about_site }}</a></li> 
    <li><a href="#">{{ trans.project }}</a></li> 
    <li><a href="#">{{ trans.team }}</a></li> 
</ul> 

그러나 마음 나는 것 gettext를 기반으로하는 나뭇 가지 i18n 확장을 사용하는 것이 좋습니다. http://twig.sensiolabs.org/doc/extensions/i18n.html