Skip to content
yuichiro umezawa edited this page Jul 30, 2017 · 18 revisions

po4a

po4a で翻訳作業を機械化できそう。以下、virtualbox 上の trusty における作業メモ。

# garbagetown @ garbagetown in ~/Desktop/trusty [5:45:54] 
$ cat Vagrantfile 
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "ubuntu/trusty64"
(snip)

# garbagetown @ garbagetown in ~/Desktop/trusty [5:45:58] 
$ vagrant up
(snip)
# garbagetown @ garbagetown in ~/Desktop/trusty [5:51:44] 
$ vagrant ssh
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-125-generic x86_64)
(snip)

git がないのでインストールする。

vagrant@vagrant-ubuntu-trusty-64:~$ which git

vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install git
(snip)
vagrant@vagrant-ubuntu-trusty-64:~$ which git
/usr/bin/git

po4a も apt-get でインストールできる。

vagrant@vagrant-ubuntu-trusty-64:~$ apt-cache search po4a
po4a - tools for helping translation of documentation
dl10n - Debian infrastructure and tools for localization
sisu - documents - structuring, publishing in multiple formats and search

vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install po4a
(snip)
vagrant@vagrant-ubuntu-trusty-64:~$ which po4a
/usr/bin/po4a

play のドキュメントだけ clone する。

vagrant@vagrant-ubuntu-trusty-64:~$ cd /vagrant/

vagrant@vagrant-ubuntu-trusty-64:/vagrant$ git clone https://github.com/playframework/playframework.git
(snip)
vagrant@vagrant-ubuntu-trusty-64:/vagrant$ cd playframework/
vagrant@vagrant-ubuntu-trusty-64:/vagrant/playframework$ git config core.sparsecheckout true
vagrant@vagrant-ubuntu-trusty-64:/vagrant/playframework$ touch .git/info/sparse-checkout
vagrant@vagrant-ubuntu-trusty-64:/vagrant/playframework$ echo documentation/manual/ > .git/info/sparse-checkout
vagrant@vagrant-ubuntu-trusty-64:/vagrant/playframework$ git read-tree -m -u HEAD

以下のようなディレクトリ構成とする。

./playframework
./playframework/documentation
./playframework/documentation/manual
./translation-project
./translation-project/documentation
./translation-project/documentation/manual
./translation-project/po
./translation-project/po/manual

翻訳用ディレクトリを作成する。

vagrant@vagrant-ubuntu-trusty-64:/vagrant/playframework$ cd ..

vagrant@vagrant-ubuntu-trusty-64:/vagrant$ mkdir translation-project

vagrant@vagrant-ubuntu-trusty-64:/vagrant$ find playframework/documentation/manual/ -type d | sed "s/playframework\///g" | xargs -i mkdir -p translation-project/{}

vagrant@vagrant-ubuntu-trusty-64:/vagrant$ find playframework/documentation/manual/ -type d | sed "s/playframework\/documentation\///g" | xargs -i mkdir -p translation-project/po/{}

.po ファイルを作る。

vagrant@vagrant-ubuntu-trusty-64:/vagrant$ find playframework/documentation/ -name "*.md" | sed "s/playframework\/documentation\///g" | xargs -i po4a-updatepo -f text -o markdown -M UTF-8 -m playframework/documentation/{} -p translation-project/po/{}_ja.po

本来はここで翻訳作業を行う。旧バージョンの翻訳から .po をリバースして新バージョンの .po にマージしたい。

.po ファイルから翻訳文を作成する。デフォルトで 80% 以上翻訳していないとエラーになるので -k 0 で強制的に出力。

vagrant@vagrant-ubuntu-trusty-64:/vagrant$ find playframework/documentation/ -name "*.md" | sed "s/playframework\/documentation\///g" | xargs -i po4a-translate -f text -o markdown -M UTF-8 -k 0 -m playframework/documentation/{} -p translation-project/po/{}_ja.po -l translation-project/documentation/{}
Clone this wiki locally