PHP 응용 프로그램 국제화 : getText 를 사용하여 다국어 지원을 쉽게 구현하십시오.
글로벌 인터넷 사용자는 계속 성장하고 있으며 많은 사용자가 자신의 콘텐츠를 모국어로 탐색하기를 원합니다. 웹 사이트의 사용자 인터페이스 번역을 완료하기 위해서는 훌륭한 번역 만 필요하다고 생각할 수도 있지만 더 큰 도전은 백그라운드 코드를 작성하는 데 있습니다. 전통적인 소프트웨어 현지화 프로세스는 번거롭고 오류가 발생하기 쉽기 때문에 코드가 혼동됩니다. 일부 개발자는 다른 지역에 대해 다른 버전의 코드를 사용하여 코드베이스 관리를 거의 불가능하게합니다.
getText는 프로세스를 단순화하고 코드 쓰기에 집중할 수있는 훌륭한 오픈 소스 도구이며, 번역기는 대상 언어로 개별적으로 번역 된 파일을 처리 할 책임이 있습니다. PHP GetText 마스터 링, 응용 프로그램의 글로벌 영향을 확대하면 산들 바람이 될 것입니다! 이 일련의 기사는 GetText를 사용하여 PHP 응용 프로그램을 현지화하는 방법을 알려줍니다. 첫 번째 부분은 GetText를 빠르게 소개합니다. 이를 바탕으로 후속 부품은 여러 번역 도메인, 복수형 형태 및 현지화 프로세스의 일부를 자동화하는 방법을 설명하는 방법을 설명합니다.
준비 환경
학습을 시작하기 전에 환경이 올바르게 설정되어 있는지 확인하여 학습 내용을 단계별로 테스트하는 데 도움이됩니다. 설치 목록은 다음과 같습니다.
Apache (또는 원하는 웹 서버)의 php 5.x는 getText 확장자를 활성화합니다. www.php.net에서 최신 버전의 PHP를 얻을 수 있습니다.
Poedit, 크로스 플랫폼 GetText Directory 편집기. 이 도구는 애플리케이션 코드와 번역을 분리 할 수있는 훌륭한 도구입니다. www.poedit.net에서 사본을받을 수 있습니다.
플랫폼이 무엇이든, PHP의 getText를 사용하려면 GetText 라이브러리와 라이브러리에 연결된 PHP 확장을 설치해야합니다. Ubuntu/Debian 사용자는 APT-GET을 사용할 수 있으며 Fedora/Centos/Redhat 사용자는 YUM을 사용하여 GetText 라이브러리를 설치할 수 있습니다. 다른 Unix-like 시스템을 사용하는 경우 www.gnu.org/s/gettext를 방문하여 플랫폼과 호환되는 getText 사본을 얻으십시오. Windows 사용자는 gnuwin32.sourceforge.net/packages/gettext.htm에서 최신 실행 파일을 다운로드하여 설치할 수 있습니다. 라이브러리를 설치 한 후에는 php.ini를 편집하고 줄을 추가하여 GetText의 PHP 확장을 활성화해야합니다.
그런 다음 나중에 사용될 Poedit을 설치하십시오. www.poedit.net에서 사본을 다운로드 할 수 있습니다.
GetText의 "hello world"
웹 루트 디렉토리에서 gettext 연습 (i18n은 국제화를 의미 함)을 위해 Testi18N이라는 샌드 박스 디렉토리를 만듭니다. Testi18n 디렉토리에서 다음 계층을 만듭니다
-
향후 프로젝트에서는 원하는대로 부모와 로케일 디렉토리의 이름을 지정할 수 있지만 EN_US 및 LC_MESSAGES는 GetText에서 사용하는 표준 이름입니다. EN_US는 로케일의 이름을 나타내며 두 부분으로 구성됩니다. 첫 번째 부분은 ISO 639-1 사양에 따른 언어의 두 소문자 약어입니다. 밑줄 다음의 두 번째 부분은 ISO 3166-1 Alpha-2 사양에 따른 2 자리 자본 국가 코드입니다. 따라서 EN_US는 언어가 미국 영어임을 의미합니다. - 다음, Poedit이 플랫폼에서 올바르게 작동하는지 확인하십시오. 프로그램을 시작하고 상단 메뉴 표시 줄에서 "파일"> "새 디렉토리"를 선택하십시오. 설정 창에서 다음 정보를 채우고 복수형 필드를 일시적으로 건너 뜁니다.
"OK "를 클릭하고 LC_MESSAGES 디렉토리에서 작성된 Messages.po로 파일을 저장하십시오. 이제 POEDIT를 닫고 Messages.po가 좋아하는 텍스트 편집기와 함께 엽니 다 ... 예, 일반 텍스트 파일입니다! 수동으로 편집 할 수는 있지만 문제를 절약하기 위해 Poedit이 우리의 주요 정의를 만들 수 있습니다. 파일의 기존 줄 뒤에 빈 줄을 남겨두고 다음을 추가하십시오.
메시지를 저장하고 닫은 다음 Poedit로 다시 열어줍니다. Poedit에서 파일> 저장을 선택하거나 아이콘 막대에서 "디렉토리 저장"항목을 클릭하십시오. POEDIT에 PO 파일을 저장하는 이유는 GetText가 사용할 수있는 특수 형식으로 컴파일해야하기 때문입니다. POEDIT를 저장 한 후에는 동일한 이름의 새 파일이 동일한 디렉토리에서 만들어졌지만 확장자 .mo로 작성된 것을 볼 수 있습니다. 일반 텍스트 편집기를 사용하여 PO 파일을 계속 수정하고 저장하려면 Pocompile 명령으로 컴파일해야합니다. Poedit을 사용하는 경우 파일을 저장할 때 파일을 자동으로 컴파일하므로 추가 컴파일 단계가 필요하지 않습니다.
Testi18N 디렉토리로 돌아가 다음 코드와 함께 Test-Locale.php라는 파일을 만듭니다.
브라우저에서 Testi18n/Test-Locale.php를 열어줍니다. 모든 것이 올바르게 설치되어 잘 작동하면 페이지에 "Hello World"가 표시됩니다.
요약
<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>
로그인 후 복사
PHP 응용 프로그램을 현지화 할 때 많은 옵션이 있습니다. 우리는 GNU GetText 라이브러리와 PHP 확장을 사용하여 응용 프로그램을 "올바르게 현지화하는"강력하고 간단한 방법입니다! 이 섹션에서는 GetText 및 PHP 확장을 설치하는 데 필요한 사항을보고 간단한 Hello World 스크립트로 관심을 불러 일으키고 관심을 불러 일으 킵니다. 두 번째 부분은 getText에 대해 더 많이 배우기 위해이를 기반으로합니다.
SGAME / SHUTTERSTOCK의 사진
사진
(다음은 원래 내용에 따라 조정 된 FAQ 부분이며 의사 원리 창조물이 만들어졌습니다)
PHP 응용 프로그램 현지화에 대한 자주 질문 <code># 测试标记1
msgid "HELLO_WORLD"
msgstr "Hello World!"
# 测试标记2
msgid "TEST_TRANSLATION"
msgstr "Testing translation..."</code>
로그인 후 복사
PHP 응용 프로그램을 현지화하는 것의 중요성은 무엇입니까?
현지화 된 PHP 응용 프로그램은 전 세계 사용자에게 도달하려는 비즈니스에 필수적입니다. 여기에는 사용자 인터페이스 및 소프트웨어 응용 프로그램의 기타 가시 요소를 다른 언어로 변환하는 것이 포함됩니다. 이 프로세스는 사용자 경험을 향상시킬뿐만 아니라 응용 프로그램의 시장 범위를 확장합니다. PHP 응용 프로그램을 현지화하면 다른 사용자의 요구를 충족시켜 사용자 기반 및 잠재적 수익을 늘릴 수 있습니다.
PHP 현지화는 어떻게 작동합니까? PHP 현지화에는 특정 기능 및 라이브러리를 사용하여 응용 프로그램에서 텍스트를 변환하는 것이 포함됩니다. 가장 일반적인 방법은 강력한 라이브러리 인 GetText를 사용하는 것입니다. 강력한 라이브러리는 사용자의 로케일 설정에 따라 문자열을 랩핑 할 수 있습니다. 여기에는 모든 번역이 포함 된 각 언어에 대한 .po 파일을 작성하는 것이 포함됩니다.
PHP 현지화를 구현하기위한 단계는 무엇입니까?
PHP 현지화 구현에는 여러 단계가 필요합니다. 먼저 PHP 환경에서 GetText 라이브러리를 설치하고 구성해야합니다. 다음으로 GetText 함수를 사용하여 번역하려는 응용 프로그램의 모든 문자열을 랩핑해야합니다. 그런 다음 해당 파일의 모든 문자열을 지원하고 번역하려는 각 언어에 대해 .po 파일을 작성해야합니다. 마지막으로,이 .po 파일을 .mo 파일로 컴파일해야합니다.
PHP 애플리케이션을 현지화하는 데 어떤 어려움이 있습니까?
현지화 PHP 응용 프로그램은 몇 가지 이유로 인해 어려울 수 있습니다. 첫째, 응용 프로그램에서 모든 문자열을 번역하는 것은 특히 응용 프로그램이 거대하고 복잡 할 때 시간이 많이 걸릴 수 있습니다. 둘째, 특히 애플리케이션에 새로운 기능을 업데이트하거나 추가 할 때 번역을 유지하는 것은 어려울 수 있습니다. 셋째, 다른 언어로 복수, 성별 및 기타 문법적 미묘함을 다루는 것은 까다로울 수 있습니다.
PHP 현지화에서 복수 수를 처리하는 방법은 무엇입니까?
NGETTE 기능은 PHP 지역화에서 복수 수를 처리하는 데 사용될 수 있습니다. 이 함수는 단수 형식, 복수형 및 문자열 수의 세 가지 매개 변수를 허용합니다. 그런 다음 숫자에 따라 올바른 양식을 반환합니다. 예를 들어, NGETTETEXT ( "One Apple", "많은 사과", $ 숫자)는 $ 숫자가 1이면 "하나의 사과"를 반환합니다. 그렇지 않으면 "많은 사과".
현지화 된 PHP 응용 프로그램을 테스트하는 방법은 무엇입니까?
서버 또는 PHP 코드에서 로케일을 변경 한 다음 문자열이 올바르게 변환되는지 확인하여 현지화 된 PHP 응용 프로그램을 테스트 할 수 있습니다. 또한 일부 언어에는 더 많은 공간이 필요하거나 다른 읽기 방향이 필요할 수 있으므로 다른 언어로의 레이아웃 및 디자인을 테스트해야합니다.
PHP 현지화에 기계 번역을 사용할 수 있습니까?
기계 번역은 문자열을 빠르고 쉽게 번역 할 수 있지만 PHP 현지화에는 권장되지 않습니다. 기계 번역에는 소프트웨어 현지화에 필요한 정확성과 상황 인식이 부족합니다. 번역의 품질을 보장하기 위해 전문 번역가 또는 현지 서비스를 사용하는 것이 가장 좋습니다.
내 PHP 응용 프로그램의 번역을 관리하는 방법은 무엇입니까?
현지화 된 플랫폼 또는 번역 관리 시스템을 사용하여 PHP 응용 프로그램의 번역을 관리 할 수 있습니다. 이 도구를 사용하면 중앙 위치에 번역을 저장, 관리 및 업데이트 할 수 있습니다. 또한 번역 메모리, 용어집 및 협업 도구와 같은 기능을 제공하여 현지화 프로세스를 단순화하는 데 도움이됩니다.
PHP 현지화에서 .po 및 .mo 파일의 역할은 무엇입니까? PHP 현지화에서 .po 및 .mo 파일은 중요한 역할을합니다. .po 파일은 원래 문자열과 해당 변환이 포함 된 텍스트 파일입니다. 이들은 인간을 읽을 수 있으며 텍스트 편집기 또는 .PO 파일 편집기를 사용하여 편집 할 수 있습니다. 반면에 .mo 파일은 기계로 읽을 수있는 이진 파일입니다. .po 파일에 의해 생성되며 GetText에서 응용 프로그램의 문자열을 번역하는 데 사용됩니다.
PHP 응용 프로그램을 어떤 언어로 현지화 할 수 있습니까?
예, PHP 응용 프로그램을 GetText를 지원하는 모든 언어로 현지화 할 수 있습니다. 그러나 응용 프로그램의 모든 문자열에 대한 해당 언어의 번역이 필요합니다. 또한 현지화의 질을 보장하기 위해 각 언어의 문화 및 언어 적 뉘앙스를 고려해야합니다.
위 내용은 Phpmaster | 현지화 PHP 응용 프로그램 파트 1 : 2011 년 10 월 - SitePoint의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!