답변
이 샘플 응용 프로그램 (https://github.com/phalcon/php-site)는 Phalcon를 사용하여 변환을 구현한다.
팔콘은 I18n 기능을 제공하지 않습니다. 이러한 종류의 기능을 제공하는 PECL 확장은 intl (manual 참조)입니다. 당신이 다른 언어로 웹 사이트를 제시에 주로 관심이 있다면
그러나, 당신은
\Phalcon\Translate\Adapter\NativeArray
구성 요소를 사용할 수 있습니다. 이 구성 요소는 언어 인식 문자열이 포함 된 키/값의 배열을 사용합니다. 예를 들어 당신은 당신의 설정이를 사용할 수 있습니다
$trans_config = array(
'en' => array(
'bye' => 'Good Bye',
'song-key' => 'This song is %song% (%artist%)',
),
'es' => array(
'bye' => 'Adiós',
'song-key' => 'La canción es %song% (%artist%)',
),
);
테스트를 위의 사용이 입증 :
public function testVariableSubstitutionTwoEnglish()
{
$language = $trans_config['en'];
$params = array('content' => $language);
$translator = new \Phalcon\Translate\Adapter\NativeArray($params);
$vars = array(
'song' => 'Dust in the wind',
'artist' => 'Kansas',
);
$expected = 'This song is Dust in the wind (Kansas)';
$actual = $translator->_('song-key', $vars);
$this->assertEquals(
$expected,
$actual,
'Translator does not translate English correctly - many parameters'
);
}
위는 당신이 자리 변수와 메시지를 번역 얻을 수있는 방법을 보여줍니다. 단순히 다른 언어로 문자열을 얻으려면 번역기에 _()
을 해당 키와 변수가 전달되지 않은 상태로 호출하면됩니다.
편집보기에서 원하는대로 작업 할 수 있습니다. 뷰 레이어에 표시되는 변수를 설정하거나 변환 객체를 전달하고 거기에서 변환을 수행 할 수 있습니다. 너까지.
HTH
감사합니다. 구현할 다른 어댑터는 무엇입니까? 그러한 배열을 생성하고 사용하는 것은 조금 어색하며, 또한 '_ ('x ', array ('1 ','2 '))'' a '=>'1 ','b '=>'2 '))'. 뷰를 통해 액세스 할 서비스 이름을 만드는 것이 좋은 일입니까? – PHPst
Gettext 대신'\ Phalcon \ Translate \ Adapter \ NativeArray'를 사용하는 것이 장단점은 무엇입니까? – PHPst
Re Gettext 매우 작음, 주로 성능 및 기본 설정을 기반으로합니다. 성능은 실제로 큰 문제가 아닙니다. –
가장 좋은 해결책은 Phalcon Gettext Adapter을 사용하는 것입니다. Gettext의 가장 중요한 장점은 복수형을 다루는 것입니다.
- 1. 작은 크기의보고 도구 (시설)
- 2. 로깅 시설 및 Qt
- 3. XQuery 업데이트 시설
- 4. Google지도에서 시설 제거
- 5. 시설 설정을 저장하는 곳
- 6. lucene의 암호화 시설
- 7. Wcf net.tcp를 사용하는 시설
- 8. Android NDK 시설
- 9. 성 WCF 통합 시설
- 10. Nuxeo 전자 메일 아카이브 시설
- 11. 캐슬 WCF 시설 컨테이너 구성
- 12. 전화 회의 시설 자바 SIP
- 13. PHP에서 JavaScript 번역 또는 번역
- 14. 구글 번역 아이폰을위한 API를 번역
- 15. 성 윈저 시설 내에서 클래스 프록시 만들기
- 16. 의 printk의 PARAMS 및 syslog.h 시설 이름
- 17. 숙박 시설 목록 워드 프레스 플러그인
- 18. UberCart : 서비스 상품 및 숙박 시설?
- 19. Unity는 Castles Windsor의 시설 개념에 해당합니까?
- 20. nodejs/express 앱의 번역/번역 워크 플로우
- 21. 애니메이션 번역
- 22. 이미지 번역
- 23. 번역 프로그램
- 24. 업데이트 번역
- 25. 컴퓨터 번역
- 26. 언어 번역
- 27. 번역 과정
- 28. 번역 규칙
- 29. UIDatePicker 번역
- 30. 레이블 번역
Phalcon 아키텍처에서 gettext를 사용하려면 어떻게해야합니까? – PHPst
내가 당신에게 예제를 만들어 보자 – twistedxtra
그러나 gettext는 스레드 안전하지 않다는 것을 기억하십시오. 아파치와 함께 애플리케이션을 실행하면 문제가 발생할 수 있습니다. – twistedxtra