まずは以下のようにしてパスワードを.cvspassに保存する。このレポジトリの場合、匿名(anonymous)ユーザのパスワードは空白。
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml login Logging in to :pserver:anonymous@cvs.alioth.debian.org:2401/cvsroot/webwml CVS password: cvs login: CVS password file /home/**********/.cvspass does not exist - creating a new file
適当なディレクトリを作成し、その中に移動する。
$ mkdir -p cvs-debian-wml $ cd cvs-debian-wml
まずはcopypage.plを正しく走らせるために必要なディレクトリをcheckoutする。
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout -l webwml cvs checkout: Updating webwml U webwml/.transignore U webwml/.wmlrc U webwml/Makefile U webwml/Makefile.common U webwml/README U webwml/README_CSS.txt U webwml/check_desc_trans.pl U webwml/check_links.pl U webwml/check_trans.pl U webwml/copypage.pl U webwml/cvsup.py U webwml/get-www-stats U webwml/i18nwwwfix.pl U webwml/karma.pl U webwml/make_all.pl U webwml/make_links.pl U webwml/remove_stale.pl U webwml/smart_change.pl U webwml/stattrans.pl U webwml/touch_files.pl U webwml/touch_translations.pl $ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/Perl cvs checkout: Updating webwml/Perl U webwml/Perl/README cvs checkout: Updating webwml/Perl/Debian U webwml/Perl/Debian/README cvs checkout: Updating webwml/Perl/Debian/L10n U webwml/Perl/Debian/L10n/Db.pm U webwml/Perl/Debian/L10n/Debconf.pm cvs checkout: Updating webwml/Perl/Debian/Pkg U webwml/Perl/Debian/Pkg/DebSrc.pm U webwml/Perl/Debian/Pkg/Diff.pm U webwml/Perl/Debian/Pkg/Tar.pm cvs checkout: Updating webwml/Perl/Local U webwml/Perl/Local/Cvsinfo.pm U webwml/Perl/Local/Util.pm U webwml/Perl/Local/VCS.pm U webwml/Perl/Local/VCS_CVS.pm U webwml/Perl/Local/WmlDiffTrans.pm cvs checkout: Updating webwml/Perl/Local/Inside U webwml/Perl/Local/Inside/DebSrc.pm U webwml/Perl/Local/Inside/Diff.pm U webwml/Perl/Local/Inside/Tar.pm cvs checkout: Updating webwml/Perl/Locale U webwml/Perl/Locale/Constants.pm U webwml/Perl/Locale/Country.pm U webwml/Perl/Locale/Language.pm cvs checkout: Updating webwml/Perl/MIME U webwml/Perl/MIME/EmailDateFormat.pm U webwml/Perl/MIME/Lite.pm cvs checkout: Updating webwml/Perl/Webwml U webwml/Perl/Webwml/Langs.pm U webwml/Perl/Webwml/TransCheck.pm U webwml/Perl/Webwml/TransIgnore.pm cvs checkout: Updating webwml/Perl/Webwml/L10n $ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout -l webwml/japanese cvs checkout: Updating webwml/japanese U webwml/japanese/.wmlrc U webwml/japanese/Make.lang U webwml/japanese/Makefile U webwml/japanese/contact.wml U webwml/japanese/debian-ja.css U webwml/japanese/donations.wml U webwml/japanese/index.wml U webwml/japanese/license.wml U webwml/japanese/search.wml U webwml/japanese/social_contract.1.0.wml U webwml/japanese/social_contract.wml U webwml/japanese/support.wml
次に翻訳したいファイルの原本が含まれるenglishディレクトリ以下の特定のディレクトリと、翻訳したファイルを置くjapaneseディレクトリ以下の特定のディレクトリをcheckoutする。
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/english/News/weekly/2011 cvs checkout: Updating webwml/english/News/weekly/2011 U webwml/english/News/weekly/2011/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/01 U webwml/english/News/weekly/2011/01/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/02 U webwml/english/News/weekly/2011/02/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/03 U webwml/english/News/weekly/2011/03/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/04 U webwml/english/News/weekly/2011/04/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/05 U webwml/english/News/weekly/2011/05/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/06 U webwml/english/News/weekly/2011/06/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/07 U webwml/english/News/weekly/2011/07/index.wml $ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/japanese/News/weekly/2011 cvs checkout: Updating webwml/japanese/News/weekly/2011 U webwml/japanese/News/weekly/2011/Makefile U webwml/japanese/News/weekly/2011/index.wml cvs checkout: Updating webwml/japanese/News/weekly/2011/05 U webwml/japanese/News/weekly/2011/05/Makefile U webwml/japanese/News/weekly/2011/05/index.wml
bashの置換機能をつかえば以下のようにかける。
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/{english,japanese}/News/weekly/2011 cvs checkout: Updating webwml/english/News/weekly/2011 U webwml/english/News/weekly/2011/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/01 U webwml/english/News/weekly/2011/01/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/02 U webwml/english/News/weekly/2011/02/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/03 U webwml/english/News/weekly/2011/03/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/04 U webwml/english/News/weekly/2011/04/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/05 U webwml/english/News/weekly/2011/05/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/06 U webwml/english/News/weekly/2011/06/index.wml cvs checkout: Updating webwml/english/News/weekly/2011/07 U webwml/english/News/weekly/2011/07/index.wml cvs checkout: Updating webwml/japanese/News/weekly/2011 U webwml/japanese/News/weekly/2011/Makefile U webwml/japanese/News/weekly/2011/index.wml cvs checkout: Updating webwml/japanese/News/weekly/2011/05 U webwml/japanese/News/weekly/2011/05/Makefile U webwml/japanese/News/weekly/2011/05/index.wml
ここまでやればcopypage.plが正しく走るはずである。webwmlディレクトリに移動して翻訳したいファイルパスを引数としてcopypage.plを走らせる。引数として与えたファイルが翻訳先(この場合はjapanese)の下にコピーされ、cvsのリビジョン番号に基づくメタデータの追記と、文字からHTML実態参照への変換が行われる。
$ cd webwml $ perl copypage.pl -l japanese english/News/weekly/2011/06/index.wml Unable to open language.conf. Using environment variables... Processing english/News/weekly/2011/06/index.wml... Destination directory japanese/News/weekly/2011/06/ does not exist, Checking CVS information for japanese/News/weekly/2011/06/index.wml... Copied News/weekly/2011/06/index.wml, remember to edit japanese/News/weekly/2011/06/index.wml
コピーされたファイルを開いたときに実態参照になっていない場合がある。例えば、english以下のディレクトリに置かれたファイル内で使われた文字öが、japanese以下のディレクトリに置かれたファイル内ではöのようなHTML実態参照になっていない場合がある。これは失敗ということである。原因は「webwml/japanese/.wmlrcが読み込まれていない」ことなので、これを上と同様の方法でチェックアウトすればよい。ただし、最近はwebwml/japanese/.wmlrcに"-D CHARSET=utf-8"という行が含まれるため、実態参照が行われない。これはこれで正解。debian-develに流れた情報参照。
編集する。
$ vim japanese/News/weekly/2011/06/index.wml
レポジトリの変更を取り込むにはupdateをつかう。この場合、カレントディレクトリに含まれるファイルだけがupdateされるので再帰的にupdateしたい場合は-dオプションをつける。
$ cd webwml $ cvs update -d english/News/weekly/2011 cvs update: Updating english/News/weekly/2011 cvs update: Updating english/News/weekly/2011/01 cvs update: Updating english/News/weekly/2011/02 cvs update: Updating english/News/weekly/2011/03 cvs update: Updating english/News/weekly/2011/04 cvs update: Updating english/News/weekly/2011/05 cvs update: Updating english/News/weekly/2011/06 cvs update: Updating english/News/weekly/2011/07
ディレクトリを移動しても良い。
$ cd webwml/english/News/weekly/2011/ $ cvs update -d cvs update: Updating . cvs update: Updating 01 cvs update: Updating 02 cvs update: Updating 03 cvs update: Updating 04 cvs update: Updating 05 cvs update: Updating 06 cvs update: Updating 07 U 07/index.wml