Ghost 다국어 페이지
현재 ghost는 하나의 언어 페이지만 지원하는 것으로 알고 있다. 고스트 가이드 문서에는 시스템 언어만 변경하는 법과 embeding으로 번역 서비스를 이용하는 법을 언급하고 있는데 번역 비용이 든다.
구글링 해보면 여러 방법들이 있는 것 같다. 여기서는 별개의 사이트를 만들어서 해결해보겠다.
언어별로 새로운 ghost를 설치하는 것이다. 가장 쉬운 방법이고 하나의 사이트에 여러 언어 서비스를 제공하는 것 보다 좋은 방법인 것 같다. 왜냐하면 이른바 마이크로서비스 관점에서 보면 분리하는 것이 맞다고 본다. 보통 블로그는 개인이 운영하거나 소규모의 출판사 정도일 것이다. 이런 경우 자신의 모든 컨텐츠를 여러나라 말로 번역하는 것은 현실적으로 어렵다. 그리고 나라마다 원하는 것이 다를 테니 니즈에 맞게 콘텐츠를 올리는 것이 당연하다. 그렇다면 각 언어별로 별개의 콘텐츠를 올리게 될 것이고 이는 별개의 서비스로 봐야할 것이다. 좀 더 얘기해보면 한 쪽 언어의 서비스가 망가지는 일이 발생되어도 여러 서버로 분산 시켜놓으면 다른 언어 서비스는 계속 운영될 수 있지않은가!
별개의 서버를 구축할 것이라면 지난 post를 참고하면 될 것이다.
만약 동일 서버에 구축하고 싶다면 아래처럼 ghost를 새로 설치한 폴더를 만들고 설치하면 된다. 설치가 되는 동안 호스팅업체에서 신규 언어 url을 위한 레코드를 추가한다. 예를 들면 en.yoursite.com 일 것이다.
sudo mkdir -p /var/www/newlanguage
sudo chown newuser:newuser /var/www/newlanguage
sudo chmod 775 /var/www/newlanguage
cd /var/www/newlanguage
ghost install
설치가 완료되면 ghost는 url과 DB명을 물어볼 것이다. url은 http://en.yoursite.com을 입력하고 DB는 새로 이름을 입력하여 신규DB를 생성하라.
이렇게 하면 두개의 Ghost가 운영될 것이다.
⚠️
여기서 별도 작업을 안한 것 같은데 접속url만으로 사이트가 분기되는 것이 궁금하다면 이유는 이렇다. ghost install 명령만으로 nginx에서 /etc/ngnix/site-available와 /etc/ngnix/site-enabled에 분산처리를 할 수 있는 셋팅 파일(yoururl.conf, yoururl-ssl.conf)을 생성한다. 즉, nginx 에서 알아서 접속 도메인 url에 따라 알맞는 웹페이지가 표시되게끔 ghost install하면서 처리해줬기 때문이다.
이제 두개를 연동해줄 매개체가 필요하다. 언어 변환 버튼 같은 것..
걱정마시라! 아래 post를 참고해서 헤더에 메뉴를 추가하면 된다.