🤖
sphinxを用いた作成されたドキュメントサイトに日本語訳を追加する
概要
sphinx
を用いた作成されたドキュメントサイトに日本語訳を追加することがあり、その備忘録です。
以下を対象にします。
方法
まず、対象リポジトリをForkします。
次に、Cloneします。
git clone https://github.com/nakamura196/archivematica-storage-service-docs
cd atom-docs
ここでは、Pythonの仮想環境を作成しておきます。
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
ライブラリの追加
requirements.txt
にsphinx-intl
を追加して、インストールします。
requirements.txt
sphinx
sphinx-intl
sphinx-autobuild
pip install -r requirements.txt
(オプション) conf.py
conf.py
に言語設定が存在しない場合には、以下のように追加します。
conf.py
...
# 言語設定
locale_dirs = ['locale/'] # 翻訳ファイルを格納するディレクトリ
gettext_compact = False # ファイル名を短くしない
language = "ja"
そして、gettext
ビルドを実行します。
make gettext
日本語ディクレトリの作成
以下を実行すると、locale/ja
にpoファイルが作成されます。
sphinx-intl update -p _build/locale -l ja
編集
locale/ja
以下のpoファイルを編集することで、多言語化を行います。
開発
以下のコマンドにより、サイトをプレビューできます。
sphinx-autobuild . _build/html
ビルド
以下のコマンドにより、ビルド結果が_build/html
に格納されます。
sphinx-build . _build/html
デプロイ
/.github/workflows/deploy.yml
name: Deploy Sphinx Documentation to GitHub Pages
on:
push:
branches:
- "1.15"
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10" # Specify the Python version
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt # if you have any dependencies
- name: Build Sphinx Documentation
run: |
sphinx-build . _build/html # Adjust paths if necessary
env:
TZ: UTC
# buildディレクトリのアーティファクトとして保存
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: _build/html
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
結果、以下のようにデプロイされます。
まとめ
参考になりましたら幸いです。
Discussion