[워드프레스] 댓글란의 ‘응답’ 버튼의 글자를 ‘답글’로 변경하는 방법

워드프레스의 번역 파일이 있는 서버상의 위치
워드프레스의 번역 파일이 있는 서버상의 위치

워드프레스는 기본적으로 번역 파일을 제공하고 있습니다.

서버상의 위치는 /wp-content/languages이고 한국어 번역 파일은 파일명이 ko_KRpo파일mo파일입니다.

위의 파일들 외에도 테마나 플러그인 개발자들이 각각의 폴더에 별도로 제공해주는 경우도 있습니다.

처음에 워드프레스를 설치할 때 또는 관리자화면에서 사이트 언어를 선택하면 워드프레스가 알아서 번역을 해줍니다.

한국사람이라면 아무래도 한국어를 선택해서 쓰시는 게 편하시겠죠.

저의 경우, 진짜 별것도 아닌데 일부 번역이 마음에 들지 않는다는 이유만으로, 그동안 직접 번역을 해서 워드프레스에 적용을 하고 사용해 왔습니다.

그동안 해왔었던 방법 (poedit 사용)

번역 파일의 수정은 직접 할 수도 있습니다.

주로 사용되는 방법으로는 Loco Translate 플러그인이나, poedit라는 번역편집 프로그램의 사용입니다.

플러그인을 좋아하지 않는 저는 당연히 poedit를 사용했었습니다. 호기심도 있었구요.

번역 파일은 3종류 ( *.pot / *.po / *.mo )

번역 파일의 확장자는 3가지 종류가 있습니다.

  • POT (템플릿 파일) : 기본언어(영어)가 들어있고 번역부분은 공백인 텍스트 파일. gettext( ) 함수를 사용해서 php, js파일에서 리스트를 작성하는 것 같음. 필수는 아님
    • 예시) msgid: “title"
    • 예시) msgstr: “"
  • PO (번역 파일) : pot의 정보를 기반으로 번역문을 추가한 텍스트 파일. 언어마다 각각의 po파일이 필요. (pot가 없으면 직접 작성해도 상관없음)
    • 예시) msgid: “title"
    • 예시) msgstr: “제목"
  • MO (컴파일 파일) : 워드프레스가 실제로 읽고 처리하는 바이너리 파일.

poedit는 이런 식으로 구성되어 있습니다.

좌측이 원본(영어) 텍스트, 우측이 번역된 텍스트입니다.

번역작업은 하단에서 이루어집니다.

워드프레스가 번역을 처리하는 방법

워드프레스는 번역이 필요한 텍스트를 어떻게 구분할까요?

번역의 기능을 실행하기 위한 국제화함수라는 것이 존재합니다.

국제화함수의 종류에는 몇 가지가 있지만 가장 많이 사용하는 것은 _e( )__( ) 함수입니다.

_e( )는 마치 echo가 합쳐진 것처럼 바로 출력해버리는 특징이 있기 때문에, 실제로는 변수에도 값을 대입할 수 있는 __( )를 더 많이 사용하는 편입니다.

__( $text, $domain = 'default’ )
  • $text : 번역할 텍스트
  • $domain : 텍스트도메인

텍스트도메인이라는 말이 어려울 수도 있는데, 번역이 필요한 문자열을 가져오기 위해 테마나 플러그인을 구분하기 위한 식별용 ID와 같은 것입니다.

워드프레스는 코드 안에서 __( )_e( )와 같은 국제화함수를 만나게되면, 번역 파일에서 해당하는 문자열을 찾고 번역된 문자열로 바꿔서 값을 리턴합니다.

만약 번역파일이 없거나 파일안에서 발견하지 못하면 번역없이 원래의 문자열 그대로 출력합니다.

poedit로 직접 수정하는 방법의 치명적인 단점

그러나 이렇게 직접 번역하는 방법의 치명적인 단점은 워드프레스가 자동으로 업데이트 될 때, 애써 수정해 놓은 번역 파일을 새로 덮어씌워버린다는 점입니다.

배포되는 번역 파일 자체도 워드프레스 번역팀이 빈번하게 업데이트를 하고 있기 때문에, 업데이트 후에 제가 수정해 놓은 번역 파일을 그대로 다시 덮어씌운다면 업데이트가 적용되지 않은 파일이 되어버립니다.

그래서 저는 지금까지 워드프레스가 업데이트가 될 때마다 아래의 작업을 반복해 왔습니다.

  1. 배포된 번역파일을 다운로드
  2. poedit로 po파일을 일부 재번역
  3. poedit로 컴파일해서 mo파일을 새로 생성
  4. 생성된 mo파일을 워드프레스의 language폴더에 파일을 업로드

업데이트 후, 잊어버릴 때도 있었기 때문에 엄밀히 말하면 매번은 아니지만, 은근히 횟수가 여러번 됩니다.

그러다가 최근에 워드프레스 버전이 6.5.4로 업데이트 되었고, 이번을 계기로 방법을 바꿨습니다.

그러나 내가 원하는 단어를 모두 바꾸기에는 코드가 너무 길어지기 때문에, 쓸데없는 욕심은 버리고 가장 꼴보기 싫었던 댓글란의 응답이라는 글자만 바꾸기로 하였습니다.

새로운 방법 ( function.php 파일에 코드 추가 )

주의

functions.php 파일을 잘못 수정하면 아래와 같은 메세지를 뿜어내면서 블로그가 작동하지않게 될 수 있습니다. 반드시 백업하신 후에 수정하시기 바랍니다.

functions.php 파일에 아래의 코드를 추가합니다.

# 댓글란의 '응답'을 '답글'로 변경
function change_reply_text( $text ) {
    $text = str_replace( '응답', '답글', $text );
    return $text;
}
add_filter( 'comment_reply_link', 'change_reply_text' );

간단하죠?

결과

정리

굳이 바꿀 필요가 있나?하고 물으신다면 전혀 그렇지 않습니다. 그냥 저만의 소소한 자기만족입니다.

바꾸는 방법만 포스팅하려고 했는데 주저리주저리 푸념을 늘어놓느라 글이 길어졌습니다.

송구하고 감사합니다.

블로그php

Posted by 요로코비