메뉴 닫기

폴리랭(Polylang) Strings translations 커스텀 문자열 번역 추가하기

Polylang(폴리랭)은 무료로 사용할 수 있다는 장점 덕분에, WPML 다음으로 인기가 있는 강력한 워드프레스 다국어 사이트 플러그인이다. 그런데 문제는 국내 다국어 사이트 사용자가 적어서 관련된 한국어 정보 글이 없다. 다국어 플러그인 중에 가장 유명한 WPML 조차도 한국어 웹 검색결과로 보면 거의 정보가 없으니, 폴리랭(Polylang)은 아예 없다고 봐도 무방할 정도다.

때문에 마침 개꿀몬이 Polylang 플러그인을 사용하고 있고, 망망대해 속에서 먼저 고생해온 경험의 흔적들을 보고 누군가는 편리하게 이용하길 바라며, 앞으로 Polylang(폴리랑), 그리고 연동되어있는 Lingotek(링고테크) 관련 정보를 써 내려갈 생각이다.

    폴리랭(Polylang) Strings translations(문자열 변역)

우선 폴리랑(Polylang)의 핵심 기능 중 하나인 Strings translations 기능이다. 말 그대로 문자열 번역 시스템인데, 앞으로 번역하게 될 본문 말고도 사이트의 제목이라던지 태그 라인, 플러그인에 포함되어있는 설명, 댓글, 공유 등, 쉽게 말해 사이트의 오브젝트 글자들을 번역해주는 기능이다. 이 기능을 사용해야만이 각 언어별로 접속한 사람들에게 해당 언어에 맞는 사이트 제목 등을 보여주고, 완벽한 다국어 사이트를 만드는데 필수적인 기능이다.

문제는 폴리랭(Polylang)이 자체적으로 인식하는 문자열의 개수가 한정적이라는 것이다. 사이트 제목, 태그 라인, 그리고 젯팩(jetpack)관련 문자들, 그 외에 정말 핵심적인 단어들은 이 메뉴에서 변경할 수 있지만, 직접 커스터마이징 한 부분이라던지 테마 내부의 인식하지 못하는 특정 파트들이 존재하고, 이 문자열들을 인식시켜서 Strings translations 메뉴를 통해 번역하려면 추가적인 과정을 거쳐야 한다.

    "Polylang Theme Strings" 플러그인 사용

첫 번째는 'Polylang Theme Strings' 플러그인을 사용하는 것이다. 플러그인 이름처럼, 테마 내에 존재하는 거의 모든 문자열 요소를 Polylang에서 인식하게 변환시켜주고, 바로 문자열 번역(Strings translations) 메뉴에서 커스텀 할 수 있게 만들어 준다. 이 플러그인을 사용하면 거의 모든 요소가 인식되기 때문에 참 편리하다.

하지만 이 경우에도 직접 커스터마이징 한 부분이라던지 인식하지 못하는 파트가 존재한다. 이런 경우에는 폴리랭(Polylang)에서 제시하는 코드들을 사용해 직접 수정해야 한다.

    직접 코드 수정으로 Strings translations에 커스텀 문자 추가

개꿀몬도 이 점 때문에 플러그인이 아니라 직접 코드를 수정했는데, 우선 php로 문자열을 표현하고, 그 php를 function.php에서 폴리랭(Polylang)과 연동시켜야 한다. 예를 들어 메인 페이지(index.php)에 특정 문구를 문자열 번역(Strings translations)에 추가시키고 싶다면, "index.php" 에 아래와 같은 PHP를 만들고

<?php pll_e('Hello'); ?>

그 다음 이 "Hello"라는 문자를 functions.php 에서 아래 코드를 추가해 폴리랭(Polylang)과 연동시키면 된다.

add_action('init', function() {
  pll_register_string('custom', 'Hello');
});

이 코드를 이용해 몇 개가 되었던간에 얼마던지 커스텀 문자열을 폴리랭(Polylang)의 Strings translations(문자열 변환) 메뉴에 추가시킬 수 있다. 다만 번역할 모든 문자열을 모두 위와 같은 방식으로 표현해야 하는 번거로움이 있다.

댓글 (정보 필수X)

Posted in 전체 - All, 워드프레스 - Wordpress, 정보 - Information

이메일 구독 - Email Subs

최선을 다해 직접 만든 콘텐츠만 공유합니다.
We share the best content we have created.