1

내 다국어 사이트에서 이미 Zend 번역의 "배열"방법을 사용하고 있습니다.Zend 현지화/변환 배열을 gettext로 변환하려면 어떻게해야합니까?

gettext가 우수하다는 것을 읽었 기 때문에 해당 메소드를 "gettext"메소드로 변환하고 싶습니다.

http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/php2po.html을 사용해 보았지만 제대로 작동하지 않습니다.

젠드 어레이를 입력으로 처리하지 않아도된다고 생각합니다. (작동)

내 젠드 파일은 다음과 같다 :

<?php 

return array( 
    'choose your favorite stores' => 'Choose your %1$sfavorite stores%2$s', 
    'P.S. If you ever have question' => 'P.S. If you ever have questions, %1$semail us%2$s any time.', 
    'You can also find quick answer' => 'You can also find quick answers on our %1$sHelp page%2$s.', 
    'Earn X cash' => '%1$sEarn 1-30%% cash back%2$s, get money-saving coupons, and find the best price on every purchase at %3$s2,500+ stores%4$s.' 
); 

(하지만 훨씬 더 오래, 그리고 내가 여러 언어를 가지고 자신의 PHP 파일의 각.) 니펫으로

+0

그리고 특히, http://stackoverflow.com/questions/1888487을 읽은 후에도 정렬 된 변수가 걱정됩니다. 왜냐하면 나는 다음을 할 수 있어야하기 때문이다. 변수의 순서가 영어와 중국어로 어떻게 다른지 확인하십시오 : ''X 현금을 얻으십시오 '=>'% 1 $ s 원 1-30 %% 현금 환불 % 2 $ s, 돈 절약형 쿠폰을 받고 최상의 상품 찾기 % 3 $ s2,500 + 매장 % 4 $ s의 모든 구매시 가격. 및 ''X 현금을 얻으십시오 '=>'您 可 从 % 3 $ s2500 个商家 % 4 $ s 中, 找到 省钱 – Ryan

답변

0

당신 저에게 변환 작업을 주셨습니다. 내가 git master에서 번역 툴킷 버전을 사용하고

$ php2po en.php en.po -t en.php 
processing 1 files... 
[###########################################] 100% 

$ cat en.po 
#. extracted from en.php, en.php 
msgid "" 
msgstr "" 
"Project-Id-Version: PACKAGE VERSION\n" 
"Report-Msgid-Bugs-To: \n" 
"POT-Creation-Date: 2012-12-19 10:08+0200\n" 
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
"Last-Translator: FULL NAME <[email protected]>\n" 
"Language-Team: LANGUAGE <[email protected]>\n" 
"MIME-Version: 1.0\n" 
"Content-Type: text/plain; charset=UTF-8\n" 
"Content-Transfer-Encoding: 8bit\n" 
"X-Generator: Translate Toolkit 1.9.1-pre\n" 

#: return+array%28-%3E%27choose+your+favorite+stores%27 
msgid "Choose your %1$sfavorite stores%2$s" 
msgstr "Choose your %1$sfavorite stores%2$s" 

#: return+array%28-%3E%27P.S.+If+you+ever+have+question%27 
msgid "P.S. If you ever have questions, %1$semail us%2$s any time." 
msgstr "P.S. If you ever have questions, %1$semail us%2$s any time." 

#: return+array%28-%3E%27You+can+also+find+quick+answer%27 
msgid "You can also find quick answers on our %1$sHelp page%2$s." 
msgstr "You can also find quick answers on our %1$sHelp page%2$s." 

, 어쩌면 당신은 그것을 시도해야합니다.

+0

저를 지적 해 주셔서 고맙습니다.하지만 불행히도 배열의 4 번째 키/값 쌍을 건너 뜁니다. ('' '' '' '' '' ' X 현금을 얻는다 '). – Ryan

+1

또한 배열 키를 msgid로 사용하지 못합니다. – Ryan

+0

배열의 마지막 요소에 쉼표를 추가하면이 요소도 함께 포함됩니다. 배열의 키는'msgid'로 사용되지 않을 것입니다. 왜 그걸 원하겠습니까? 단일 언어 형식에서 이중 언어 형식으로 변환 중입니다. PO 파일은'msgid'에 항상 소스 텍스트 (이 경우 영어)를 갖습니다. 그것이 로컬 라이저가 로컬라이징 할 것으로 기대하는 바입니다. – julen