이 세상에 하나는 남기고 가자

이 세상에 하나는 남기고 가자

세상에 필요한 소스코드 한줄 남기고 가자

구글 번역 사용시 특정 영역을 번역에서 제외하기

유영재

이 블로그에는 구글 번역 기능이 붙어 있다. 관련해서 포스팅한 글 옥토프레스에 구글 번역기 달기도 있다. 현재 테스트로 몇가지 언어를 선택 가능하도록 하고 사용중인데 문제가 생겼다. 기존에는 기능을 달아 놓고 번역이 되는 것만 확인하고는 자세히 보지 않아서 몰랐는데 오늘 확인하니 소스 코드까지 부분적으로 번역이 되는 것이 아닌가. 사실 이 블로그의 주된 내용이 프로그래밍 관련이라 코드 블록이 아주 많다. 그래서 방법을 구글 번역 메뉴얼에서 보니 다음과 같은 방법이 나와있었다.

부분적으로 번역 제외하기

해당 영역을 둘러싸고 있는 Tag에 notranslate Class를 준다.

<span class="notranslate">번역하지 말아야 할 영역</span>

문서 전체를 번역 제외하기

Html의 head 영역에 아래의 Meta 정보를 추가한다.

<meta name="google" content="notranslate">

옥토프레스에 적용하기

문제는 옥토프레스의 결과 HTML은 직접 만드는 것이 아니라는 것이다. 여러가지 방법이 있을 수 있으나 나는 code block만 검색에서 제외되면 되므로 그냥 관련 플러그인을 수정해 버렸다. backtick_code_block.rb 파일에서 <figure class='code'> 부분을 찾아서 <figure class='code notranslate'>로 바꿔 버렸다.

이것으로 모든 것이 해결된 것은 아니다. 문장 내에서 사용된 코드 블록은 backtick_code_block 플러그인에서 처리하지 않으니 다른 플러그인을 고쳐야 하는데 어딘지 찾지 못했다. 아마도 markdown 해석 플러그인 내부에 있을텐데 gem으로 설치된 것인지 내부에서는 보이지 않는 듯하다(사실 귀찮아서 자세히 찾지 않았다. 게다가 Ruby를 거의 모른다.)

어쨌든 이로써 소스 코드 영역은 번역에서 제외되어 조금은 나아졌다.

comments powered by Disqus