Gettext 필터 소개
게시 됨: 2023-02-12모든 요구 사항을 충족하는 WordPress 사이트용 플러그인 또는 테마를 찾는 것은 어려울 수 있습니다. 많은 사람들이 접근할 수 있지만 여전히 조정이나 사용자 지정이 필요합니다. 또한 개발자로서 코드가 전 세계의 사용자를 지원할 수 있을 만큼 유연하도록 만드는 것이 중요합니다.
다행스럽게도 사이트의 특정 요소를 조정하는 데 도움이 되는 WordPress 코어의 몇 가지 기능이 있습니다. 이를 통해 다른 유용한 플러그인을 포기하거나 번역을 위해 사이트를 준비하는 대신 버튼 또는 레이블 텍스트를 사용자 정의할 수 있습니다.
이 기사에서는 사이트의 번역 프로세스에서 필터가 작동하는 방식을 포함하여 gettext 필터에 대한 더 나은 이해를 제공합니다. 다루어야 할 것이 많으니 바로 들어가 봅시다!
Gettext란 무엇입니까?
gettext 필터를 사용하면 WordPress 사이트에서 텍스트 요소를 수정할 수 있습니다. 예제를 통해 가장 잘 이해됩니다.
댓글 양식에 "이름"과 "이메일"이라는 두 개의 필드가 있다고 가정합니다. "이름"과 "이메일 주소"를 읽게 하려면 테마 파일에서 각 용어의 모든 인스턴스를 수동으로 교체하지 않고 gettext 필터를 사용하여 수정할 수 있습니다.
gettext 필터는 사이트가 번역 준비가 된 경우에만 작동합니다. 따라서 이를 사용하여 텍스트를 사용자 지정하는 방법을 살펴보기 전에 코드를 국제화하는 방법에 대해 논의해야 합니다.
계속하기 전에 이해해야 할 몇 가지 용어는 다음과 같습니다.
- 국제화(i18n). 이는 WordPress 코드가 다른 언어로 번역될 준비가 되었음을 의미합니다.
- 현지화(l10n). i18n 프로그래밍을 수행하고 모국어로 사용하기 위해 WordPress 설치를 현지화할 수 있는 프로세스입니다.
- GNU gettext 라이브러리. GNU는 무료 오픈 소스 운영 체제입니다. gettext 라이브러리를 사용하면 번역을 위해 추출할 수 있는 코드 문자열로 텍스트를 래핑할 수 있습니다.
- POT 파일: gettext 함수로 생성된 번역 가능한 문자열의 추출을 실행하기 위해 POT(Portable Object Template) 파일이 생성됩니다.
- PO 파일: Poedit와 같은 도구는 POT 파일을 사용하여 완료된 번역과 번역 가능한 문자열이 포함된 PO(Portable Object) 파일을 생성합니다.
- MO 파일: MO(Machine Object) 파일은 PO 파일에서 생성됩니다. 플러그인 또는 테마 디렉토리에 있으며 웹 사이트의 번역된 버전이 요청되면 서버에서 제공합니다.
이러한 요소는 모두 아래 단계에서 볼 수 있듯이 번역을 위해 WordPress 제품을 준비하는 역할을 합니다.
번역을 위한 Gettext 및 PHP
아래에서는 테마 또는 플러그인을 국제화하기 위한 워크플로를 설명했습니다. 이러한 변경 사항을 실험하기 전에 작업할 하위 테마를 만드는 것이 좋습니다. 이렇게 하면 잠재적인 재해로부터 사이트를 보호할 수 있습니다.
1단계: 텍스트 문자열을 POT 파일로 추출
가장 먼저 할 일은 테마나 플러그인에 이미 POT 파일이 포함되어 있는지 확인하는 것입니다. 그렇지 않은 경우 자동 생성하거나 터미널을 사용하여 수동으로 생성하거나 앞서 언급한 WordPress에서 권장하는 Poedit라는 응용 프로그램을 사용해야 합니다.
Pro 버전은 필요한 파일을 생성하기 위한 빠른 WordPress 기능을 제공합니다. 그러나 무료 앱을 사용하여 몇 번의 추가 클릭으로 여전히 POT 파일을 생성할 수 있습니다.
시작하려면 데스크톱에서 실행되는 Poedit를 다운로드하여 설치해야 합니다. 작업을 마치면 File > New 로 이동합니다. 번역할 언어를 선택하라는 메시지가 표시됩니다.
그런 다음 진행하기 전에 새 프로젝트를 저장해야 합니다. 다음으로 기존 POT 파일을 업데이트하거나 소스에서 추출하는 옵션이 있습니다.
필요한 경우 빈 POT 파일로 시작한 다음 Poedit에서 텍스트 문자열을 변경할 수도 있습니다. 또는 Glotpress에서 사용할 기존 플러그인 및 테마 파일을 검색할 수 있습니다. 그러나 이 예에서는 다른 옵션을 사용해야 한다고 가정합니다.
소스에서 추출을 클릭하면 구성할 세 가지 설정 탭이 표시됩니다.
텍스트 문자열의 소스에 대한 경로를 설정해야 합니다. 특정 경로를 제외할 수도 있습니다. 그런 다음 번역 속성을 구성해야 합니다.
여기에서 프로젝트 이름을 지정하고 복수형 및 기타 언어별 요소에 대한 설정을 사용자 지정합니다. 마지막으로 소스 키워드 탭을 사용하여 POT 파일 설정을 완료할 수 있습니다.
더하기 기호를 클릭하면 gettext 키워드를 추가하여 번역 설정을 완료할 수 있습니다. 소스 파일에서 텍스트 문자열을 보고 검색할 수도 있습니다.
2단계: PO(Portable Object) 파일 생성
다음으로 추가하려는 각 언어에 대해 POT 파일을 PO 파일로 변환해야 합니다. 테마나 플러그인을 번역하지 않고 영어를 영어로 대체하는 데 gettext 필터만 사용할 계획이라면 두 언어(원본 및 번역)를 모두 영어로 설정합니다.
Poedit의 카탈로그 > POT 파일에서 업데이트 로 이동하면 번역할 파일을 선택할 수 있습니다.
다음으로 파일은 번역 가능한 모든 문자열을 Poedit로 가져오는 추출 프로세스를 거칩니다. 이렇게 하면 PO 파일이 생성됩니다. 이 프로젝트의 다른 파일과 일치하도록 이름을 지정할 수 있습니다.
그런 다음 텍스트 문자열 목록 하단에 있는 새 번역 만들기를 클릭하여 변경을 시작합니다.
영어에서 영어로 텍스트를 변경하려면 변경하려는 문자열을 클릭하고 소스 텍스트 아래의 번역 창을 사용하여 대체 단어를 입력하십시오.
테마 또는 플러그인 전체에서 변경하려는 텍스트에 대해 이 프로세스를 완료하십시오. 다음으로 세 개의 필수 파일 중 마지막 파일을 만듭니다.
3단계: MO(Machine Object) 파일로 변환
지금까지 번역과 관련된 프로그래밍 지침을 만드는 단계를 거쳤습니다. 이제 서버에서 읽고 원하는 텍스트를 방문자에게 전달할 수 있도록 각 PO 파일을 변환해야 합니다.
Poedit 작업 과정을 진행하는 방식에 따라 테마의 Languages 폴더에 MO 파일이 이미 생성되었을 수 있습니다. 그렇지 않은 경우 File > Compile to MO 로 이동합니다.
이제 WordPress의 gettext 필터로 가능해진 기능을 실행하는 데 필요한 구성 요소가 있어야 합니다.
WordPress Gettext 필터는 언제 유용합니까?
위에서 설명한 프로세스는 사이트를 여러 언어로 번역하는 데 도움이 될 수 있지만 gettext 필터의 목적은 아닙니다. 즉, 이 후크를 사용하여 영어 텍스트를 스페인어로 변환하고 싶지 않을 것입니다.
그보다는 다음과 같이 플러그인이나 테마로 사이트에 추가된 기본 텍스트를 수정하는 데 사용할 수 있는 디자인 기능에 가깝습니다.
- 라벨 맞춤화
- 버튼 텍스트 변경
- 제목 변경
이 프로세스는 웹 사이트 파일에서 번역 가능한 것으로 간주되는 모든 텍스트를 사용자 지정하는 데 사용할 수 있습니다. 또 다른 예를 들자면, 테마에 "지금 구입"이라는 사전 설정 버튼이 있지만 사이트에서 "구독"을 읽어야 하는 경우 gettext 그 변화를 현실로 만들 수 있는 필터입니다.
gettext를 너무 자주 사용하면 웹 사이트 성능에 부정적인 영향을 미칠 수 있다는 점에 유의해야 합니다. 이것은 사이트가 로드될 때마다 실행해야 하는 추가 코드이므로 페이지 속도 저하를 방지하기 위해 아껴서 사용하십시오.
WP 엔진으로 메시지 전파
플러그인을 사용할지 또는 웹 사이트에 대한 수동 코드 변경을 생성할지 여부를 결정하는 것은 어려울 수 있습니다. 그렇기 때문에 최고의 개발자 리소스를 보유하는 것이 중요합니다. WP Engine의 전문적이고 전문적인 지원으로 무장하여 고도로 맞춤화된 웹사이트를 만드는 데 필요한 모든 것을 갖추게 될 것입니다.
다음 프로젝트를 위한 관리형 전용 WordPress 호스팅 플랜을 확인하세요. 쉽게 혁신할 수 있도록 서버 유지 관리를 처리했습니다!