Hexo는 다국어 지원 "internationalized i18n"을 추가합니다.
2019-03-30 · 1398 · 1 min
내 블로그는 트래픽 통계를 수행하기 위해 Google Analytics를 추가했는데, 일반적으로 GA의 데이터에주의를 기울이고 GA에는 "데이터 분석"기능이 있습니다. 비정상적이라고 생각되는 데이터를 자동으로 보내 드리며, 사용하기가 매우 쉽다고 생각합니다. 최근에 본 것 중 하나 :
즉, 내 웹 사이트는 기본적으로 언어가 en-us 인 방문자 중 4 초 동안 만 유지되며 이탈률은 95.4이지만 총 방문자는 16.5 명입니다. 저는 매우 까다로운 사람이기 때문에 GA가 이것을 상기시켜 주므로 다국어 지원을 최적화하겠습니다. (이 기사가 게시되었을 때 en은 이미 온라인 상태였으며 기사 번역이 아직 완료되지 않았습니다. 메뉴에서 영어를 클릭하거나 이 링크를 클릭하여 액세스할 수 있습니다.)
{% btn https://tstrs.me/en/1448.html, 영어 버전 읽기, 언어 fa-lg fa-fw %}
이 기사의 주요 내용은 Hexo를 위한 다국어 국제화 솔루션을 지원하는 것입니다.
# 기타 시나리오
국제화 (i18n)
이것은 HEXO의 공식 권장 솔루션입니다 ([공식 문서를 보려면 여기를 클릭하십시오] (https://hexo.io/zh-cn/docs/internationalization.html)), 그러나 나는 메뉴 막대 제목 등의 번역 이상을 원한다, 나는 그것을 모두 대체 할 완전한 세트를 원한다, 그래서이 솔루션은 단순히 무시됩니다.
hexo-generator-i18n 플러그인
시도하기 전에 많은 정보를 읽었는데,이 플러그인은 언어 정보로 중국어와 영어 페이지를 구별하도록 설계되었지만 많은 블로그에서 솔루션을 권장하지 않습니다. 유지 보수 비용이 높은 이유는 단 하나뿐입니다.
Nginx 프록시
이것은 [Kevinho의 블로그] (http://kvh.io/cn/hexo-nginx-multi-lingual.html)에서 권장하는 솔루션이지만 두 개의 도메인을 구성하고 nginx 구성을 최적화해야하기 때문에 여전히 너무 번거롭다고 생각합니다.
# 내 솔루션
내가 원하는 것은 중국어와 영어의 두 페이지가 언어의 차이 만 있고 나머지는 동일하기 때문에 중국어와 영어 사이를 편리하게 전환하는 버튼이 있고 en 버전은 메인 사이트의 en 하위 디렉토리에 있습니다.
그래서 방금 hexo 파일의 사본을 복사하여 새 디렉토리 hexoen에 넣었습니다. 주의! '(node_modules 복사하지 않음)'
불필요한 문제가 없도록 중국어 사이트와 영어 사이트를 완전히 분리하십시오 (유지 관리하면 동기화 및 자동 실행 코드가 완료된 후 중국어와 영어로 두 개의 기사 만 작성하면됩니다). )
다음 이미지는 모두 왼쪽이 hexo-en이고 오른쪽이 hexo-en입니다.
언어 수정
hexoen 내부의 '_config.yml'을 편집하여 언어를 en으로 변경합니다. 이렇게 하면 hexo G를 사용할 때 테마가 자동으로 영어를 사용합니다.
루트 디렉토리 수정
메뉴 수정
다음 테마를 사용하고 있으므로 이 파일은 '/hexo/themes/next/_config.yml'에 있습니다.
저작권 포스트 링크 수정
새 사이트는 수정할 필요가 없을 수도 있지만 내 사이트는이 부분을 수정해야합니다, 그렇지 않으면 포스트 링크의 영어 버전과 중국어 버전이 정확히 동일합니다. 다음 그림과 같이:
이 문제를 해결하려면 'next/layout/_macro/post-copyright.swig'를 수정하십시오.
빨간색 프레임을 수정하여 링크를 사용자 지정합니다.
위의 모든 작업이 완료된 후 헥소엔에서 'npm install'을 실행하면 블로그에 필요한 모든 플러그인이 자동으로 설치되고, 설치 후 'hexo g' 명령어를 실행하면 hyoxo 사이트가 영어로 생성됩니다.
이 시점에서 백엔드가 완료되고 웹 서버로 푸시할 때 en 버전의 모든 공개 파일을 중국어 버전의 public/en으로 복사합니다.
배포
코드 구현:
cd / root / hexo & hexo clean & & hexo g & & cd / root / hexoen & hexo clean & & hexo g & cd / root / hexo &&cp -r / root / hexoen / public/. /root/hexo/public/en/ && hexo d
누군가는 hexo-zh가 파일을 생성할 때 공용 폴더가 삭제되기 때문에 hexo-zh를 만든 다음 hexo-en을 생성해야 하기 때문에 hexo-en의 파일을 hexo-zh로 복사하고 마지막으로 hexo-zh의 배포를 사용하여 웹 서버로 푸시할 수 있기 때문에 'cd' 명령을 사용하여 수평으로 점프하는 이유를 분명히 물을 것입니다. 어지러운가, 나 자신이 희미해, 이해하기 위해 순서도를보십시오.
이 시점에서, en 사이트가 완전히 설정되었습니다, 이제해야 할 일은 기사를 번역하는 것입니다, 이것은 일회성이 아닙니다, 시간을 내십시오, 지금은 {% label success@60 %} 만 번역합니다.
추신 : 이것은 아마도 지속적인 통합 / 지속적인 전달로 간주 될 것입니다. '(하하하하)'