gettext를 사용하여 내 웹 사이트에 현지화 지원을 추가하려고합니다. 내가 설정하는 방법에 gettext에 다양한 가이드를 따라 한 다음 수행 한 : 나는 Poedit을 사용했습니다PHP gettext 함수는 원래 번역되지 않은 문자열을 반환합니다.
test.php
locale/
de_DE
LC_MESSAGES
messages.mo
messages.po
en_GB
LC_MESSAGES
messages.mo
messages.po
: 내 프로젝트 디렉토리의 루트에 다음 파일과 디렉토리를 만든
위의 .po 및 mo 파일을 만듭니다. 유닉스 라인 엔딩, UTF-8을 사용하여 고소했고 언어와 국가를 적절히 설정했습니다.
나는 다음 코드가 test.php라는 PHP 스크립트를 만들었습니다. "이것은 테스트입니다"나는 텍스트를 가져온<?php
define('LOCALE', 'de_DE');
// Set up environmental variables
putenv("LC_ALL=" . LOCALE);
setlocale(LC_ALL, LOCALE);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", LOCALE .".utf8");
textdomain("messages");
die(gettext('This is a test.'));
?>
을 Poedit에 번역을 제공하고 저장했습니다.
그러나 어떤 이유로 test.php 스크립트는 원본 텍스트를 번역되지 않은 상태로만 출력합니다. 변환 파일의 버전로드를 거부합니다.
서버가 리눅스 (Ubuntu), 아파치 2.2.11 및 PHP 5.2.6-3ubuntu4.5를 실행하고 있다는 점은 주목할 가치가 있습니다. phpinfo()
을 확인하고 gettext를 사용할 수 있습니다.
나를 도와 줄 사람이 있습니까? 감사.
그럼 작동 했나요? 실종 로케일이나 다른 것과 관련된 문제였습니까? – bpedro
예! 효과가 있습니다. 당신의 도움을 주셔서 대단히 감사합니다. – Camsoft
괜찮습니다. 내가 도울 수있어서 기뻐! – bpedro