6月にギーク・ナード向けの本が出版されました。どちらも技術力はすごいけど人間関係が難しいような人を指す言葉として使われていますね*1。
Being Geek ―ギークであり続けるためのキャリア戦略
オライリージャパン
¥ 2,484
ギーク向けということになっていますが、ギークの人よりも人間関係をうまくやれるギークではない人が読んだ方がよい内容になっています。話題の多くはどうすればうまい具合に仕事ができるかということです。職場でうまく立ち振る舞うにはこうしたらよいというのが著者の経験を元に書かれているのですが、元々人間関係が苦手な人には実践することは難しそうです。
経験を元に職場での立ち振る舞い方を話してくれる人が周りにいないなら参考になるでしょう。あるいは、この職場でこのままやっていっていいのか、と誰にも相談できずに悶々としている人にもなにかヒントがあるかもしれません。
唯一「人間関係が難しい」という部分に向き合っているのが『23章 「ナード」ハンドブック』のところです。ここには、ギーク・ナードはいかに問題があって、それに対応するにはどうしたらよいかということが書かれています。本書ではナードの"パートナー向けに書"いたとありますが、パートナーに読ませるのではなく、自分で読んでみるのはいかがでしょうか。自分が本当にギーク・ナードかの判断に使えます。読んでみて、書かれていることの多くが当たっていて、頭を抱えてパートナーに謝りたくなったのなら、あなたは本当にギーク・ナードなんでしょう。
1章が数ページの読み物、という構成になっており、どこからでも好きなところから読むことができます。別の章の話が前提にあるところには「何章を参照」というような記述があるので、関連がある章があるところから読み始めてしまっても大丈夫です。気軽に読むことができるので、目次を見て気になるものがあったら手にとってみてはいかがでしょうか。
*1 自称ギークの人は人間関係云々は関係なく「自分は技術力がある」という意味合いで使っているように見えます。ただ、明確な定義があるわけではなさそうなので、「なんとなく」や「雰囲気」で使うのがちょうどよい気がします。
タイトルにキーワードを埋め込んでみました。ククログはtDiaryのRDスタイルで書いています。コードを貼り付けることも多々あるため、シンタックスハイライトもできるようにしてあります。今まではGNU Source-highlightでシンタックスハイライトをしていたのですが、CodeRayでシンタックスハイライトをするように変更しました。
~tdiary/clear-code-tdiary/にクリアコードのtDiary関連Subversionリポジトリをチェックアウトしているとします。この状態でtdiary.confに以下のように記述すると、RDスタイルでシンタックスハイライトできるようになります。
1 2 3 |
clear_code_tdiary_base = "/home/tdiary/clear-code-tdiary" require "#{clear_code_tdiary_base}/patches/after-load-styles-hook" require "#{clear_code_tdiary_base}/patches/rd-syntax-highlight" |
事前にgemでCodeRayをインストールしておくことを忘れないでください。
以下のようにverbatimブロックに「# source: ruby(言語名)」というようなヘッダーを入れます。
tdiary.confの設定:(←ここはパラグラフ。) # source: ruby (←ここは表示されない。) @style = "RD" (←ここがRubyプログラムとしてシンタックスハイライトされる。)
GNU Source-highlightからCodeRayに乗り換えたのは以下の理由からです。
ほとんど需要がないはずですが、tDiaryのRDスタイルにシンタックスハイライト機能を追加したので紹介しました。
需要がないためか、Web上にあまり情報がないxml2poというツールについて紹介します。
xml2poはXML内のテキスト情報を他の言語へ翻訳することを支援するツールです。ちなみにPythonで書かれています。
xml2poを使って英語のXML文書を日本語に翻訳する場合の流れは以下のようになります。
図にすると以下のようになります。
xml2poは翻訳のバックエンドにGNU gettextを採用しています*1。そのため、翻訳作業はGNU gettextを用いて翻訳する場合とほとんど同じようになります。GNU gettextを使ったことがある人にはxgettextの代わりにxml2poを使うといえばピンとくるかもしれません。
コマンドでいうと以下のような流れになります。
% xml2po --mode xhtml --output hello.pot index.html % msginit --input hello.pot --output ja.po --locale ja % emacs ja.po % xml2po --mode xhtml --po-file ja.po --language ja --output index.html.ja index.html
それぞれの作業を簡単な具体例を使ってみてみましょう。
まず、翻訳元の英語のXHTMLを用意します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Hello</title> </head> <body> <h1>Hello</h1> <p>This is <em>English</em> XHTML.</p> </body> </html> |
このXHTMLからxml2poを使って翻訳対象のテキストを抽出します。
% xml2po --mode xhtml --output hello.pot index.html
中身は以下のようになります。
msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2011-08-24 23:33+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: index.html:5(title) index.html:9(h1) msgid "Hello" msgstr "" #: index.html:10(p) msgid "This is <em>English</em> XHTML." msgstr ""
このファイルを元に日本語用の翻訳ファイル(POファイル)を作ります。メールアドレスを聞かれるので入力します。
% msginit --input hello.pot --output ja.po --locale ja ユーザが翻訳に関するフィードバックをあなたに送ることができるように, 新しいメッセージカタログにはあなたの email アドレスを含めてください. またこれは, 予期せぬ技術的な問題が発生した場合に管理者があなたに連絡が取れる ようにするという目的もあります. Is the following your email address? kou@localhost Please confirm by pressing Return, or enter your email address. kou@clear-code.com http://translationproject.org/team/index.html を検索中... 完了. A translation team for your language (ja) does not exist yet. If you want to create a new translation team for ja, please visit http://www.iro.umontreal.ca/contrib/po/HTML/teams.html http://www.iro.umontreal.ca/contrib/po/HTML/leaders.html http://www.iro.umontreal.ca/contrib/po/HTML/index.html ja.po を生成. %
これで翻訳準備は完了です。
次は、ja.poファイルを編集して英語のテキストを翻訳します。msginit "..."
のテキストが翻訳対象の英語のテキストです。それに対応する翻訳後の日本語のテキストをmsgstr "..."
のところに入力します。
ja.po(変更前):
... msgid "Hello" msgstr "" ... msgid "This is <em>English</em> XHTML." msgstr ""
ja.po(変更後):
... msgid "Hello" msgstr "こんにちは" ... msgid "This is <em>English</em> XHTML." msgstr "これは<em>日本語</em>のXHTMLです。"
このPOファイルを便利に編集するためのツールがいくつかあるので、それを利用するとよいでしょう。例えば、Emacsにはpo-mode.elがあります。
翻訳ができたら、元の英語のXHTMLと翻訳したテキストを使って日本 語のXHTMLを生成します。
% xml2po --mode xhtml --po-file ja.po --language ja --output index.html.ja index.html
生成されたXHTMLは以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>こんにちは</title> </head> <body> <h1>こんにちは</h1> <p>これは<em>日本語</em>のXHTMLです。</p> </body> </html> |
きちんと翻訳されていますね。
XML文書を国際化するためのツールであるxml2poを紹介しました。xml2poを使えば、ドキュメントツールが国際化に対応していなくても、XHTMLを出力してくれさえすればドキュメントを国際化できます。つまり、YARDをドキュメントシステムとして使いながら国際化したドキュメントを生成できるということです。実際にrroongaのリファレンスマニュアルがこの方法を採用しています。
XML文書を国際化したい場合はxml2poを使ってみてはいかがでしょうか。今回はXHTMLに対して使いましたが、DocBook形式のサポートの方が充実しているので、DocBookのファイルを国際化したい場合は有力な選択肢になるでしょう。
*1 もう少し言うと、GNU gettextのファイルフォーマット仕様と管理ツールとPythonで実装されたGNU gettextの仕様に対応したライブラリを用いる。