PHP의 다국어 지원: Gettext 사용 방법

王林
풀어 주다: 2023-06-20 09:28:02
원래의
1425명이 탐색했습니다.

PHP는 동적 및 대화형 웹 애플리케이션을 쉽게 만들 수 있는 널리 사용되는 프로그래밍 언어입니다. 웹 애플리케이션을 개발할 때 다국어 지원은 중요한 요소입니다. Gettext는 다국어 지원을 달성하는 데 사용되며 PHP와 통합될 수 있는 오픈 소스 소프트웨어 국제화 도구입니다. 이 기사에서는 Gettext를 사용하여 PHP에서 다국어 지원을 구현하는 방법을 소개합니다.

Gettext가 무엇인가요?

Gettext는 최신 Linux 및 Unix 시스템의 표준 다중 언어 지원 라이브러리인 소프트웨어 국제화 도구입니다. 거의 모든 프로그래밍 언어에서 작동하며 다양한 텍스트 파일 형식을 처리할 수 있습니다. Gettext의 기본 원칙은 하나의 기본 언어(보통 영어)로만 소프트웨어를 작성하고 모든 언어 문자열을 번역 파일에 넣는 것입니다. Gettext에서 제공하는 도구를 사용하여 번역 파일을 생성하고 유지 관리할 수 있습니다. 런타임 시 Gettext는 번역 파일을 애플리케이션에 로드하고 언어 문자열을 올바른 번역으로 바꿉니다.

Gettext를 사용하는 방법은 무엇입니까?

먼저 웹 서버에 Gettext 확장 프로그램이 설치되어 있는지 확인해야 합니다. 일반적인 Linux 서버에서는 다음 명령을 사용하여 Gettext 확장을 설치할 수 있습니다.

sudo apt-get install php-gettext
로그인 후 복사
  1. PHP에서 Gettext 구성

PHP에서 Gettext를 활성화하려면 php.ini 파일에서 구성해야 합니다. php.ini 파일을 열고 다음 줄을 찾습니다.

;extension=php_gettext.dll
로그인 후 복사

다음으로 변경합니다.

extension=php_gettext.dll
로그인 후 복사
  1. 번역 파일 만들기

다음으로 번역 파일을 만들어야 합니다. 번역 파일에는 번역하려는 모든 텍스트 문자열이 포함되어 있어야 합니다.

Gettext의 번역 파일 형식은 특정 파일 확장자(보통 .po)를 가진 바이너리 파일입니다. 애플리케이션이 여러 언어를 지원해야 하는 경우 각 언어에 대해 별도의 번역 파일을 만들어야 합니다.

번역 파일을 생성할 때는 gettext에서 제공하는 도구를 사용해야 합니다. Ubuntu 및 Debian과 같은 운영 체제에서는 다음 명령을 사용하여 gettext를 설치할 수 있습니다.

sudo apt-get install gettext
로그인 후 복사

다음으로 다음 명령을 사용하여 새 번역 파일을 만듭니다.

msginit --input=file.pot --locale=en_US.utf8
로그인 후 복사

여기서 --input 옵션은 애플리케이션의 PO 파일을 지정합니다. 기본 언어에서 --locale 옵션은 생성하려는 번역 파일에 대한 현지화 설정을 지정합니다. 이 명령을 실행하면 Gettext는 모든 문자열에 대한 번역 항목이 포함된 번역 파일을 자동으로 생성합니다.

  1. 번역 파일 업데이트

응용 프로그램에 번역해야 할 새 텍스트 문자열이 있거나 변경해야 하는 기존 문자열이 있는 경우 이에 따라 번역 파일을 업데이트해야 합니다. 번역 파일을 업데이트하려면 다음 명령을 사용하세요.

msgmerge --update po-file.po translation-file.po
로그인 후 복사

여기서 po-file.po는 애플리케이션의 PO 파일이고, Translation-file.po는 업데이트하려는 번역 파일입니다.

  1. 번역 파일 로드

PHP에서 번역 파일을 로드하려면 gettext 확장의 gettext() 함수를 사용해야 합니다. gettext() 함수를 사용할 때 번역하려는 텍스트 문자열과 현재 언어를 지정해야 합니다.

다음은 gettext() 함수를 사용하여 번역 파일을 로드하는 예입니다.

// 加载翻译文件
$locale = 'zh_CN';
$language_domain = 'messages';
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($language_domain, '/path/to/translations/');
textdomain($language_domain);

// 翻译文本字符串
echo gettext('Hello, world!');
로그인 후 복사

위 코드는 먼저 번역 파일의 디렉터리를 바인딩하기 위해 bintextdomain() 함수를 사용하고, textdomain() 함수를 사용하여 현재 번역의 도메인을 설정합니다. 다음으로, gettext() 함수를 사용하여 "Hello, world!" 문자열을 현재 언어로 변환합니다. 언어가 영어가 아닌 경우 gettext() 함수는 번역 파일에서 해당 번역을 찾아 중국어 또는 다른 번역으로 바꿉니다.

결론

Gettext를 사용하면 웹 애플리케이션을 전 세계적으로 더 쉽게 사용하는 동시에 애플리케이션의 가용성과 안정성을 향상시킬 수 있습니다. 이 문서에서는 PHP에서 Gettext를 사용하여 다중 언어 지원을 구현하는 방법을 설명합니다. 이러한 기능을 이해하고 나면 여러 언어를 지원하는 웹 애플리케이션 작성을 자신있게 시작할 수 있습니다.

위 내용은 PHP의 다국어 지원: Gettext 사용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿