段落の最初の行頭の字下げ

WordPress.org の日本語フォーラムでの「日本語字下げをいつまで無視し続けるのか」という投稿に答えるなかで改めて調べてみて、いくつかを知ることになったのでここに記しておく。

多くの言語で使われることが想定される WordPress に、日本語の一つのスタイルである「全角アキ」を実装するよう求めるのは現実的ではない。利用者(サイト運営者)が style.css なりカスタマイズの「追加CSS」で対応するしかないだろうと思う。もっとも英語使用者にも似たような要望を持つ人はいるようで、たとえば英語のフォーラムにも Indent first line of most paragraphs, not all のトピックがあるし、そこからたどってみると #37462 の要望も出されている。

まず、英語をはじめとする多くの欧文で、段落整形は

  • 段落間は大きくあけず、段落の最初の行頭を字下げする
  • 字下げせず、段落間の行間をあける

のどちらかである。それぞれ「インデントスタイル」「ブロックスタイル」のように呼ばれるようだ。どうやら前者は伝統的なスタイルで、後者はウェブページなど電子テキストに多く見られる。

日本語の横書きもこれに準じる。ただし欧文の場合に字下げ幅が3–5文字であるのに対し、日本語の場合は全角アキである。

スタイルシート

私自身も、まとまった文章では伝統的な「インデントスタイル」が望ましいと考えているので、このサイトではスタイルシートで次のように設定している。

.entry-content p {
  margin-bottom:.25em;
  text-indent:1em
}

つまり、段落ブロックの下のアキは少しだけにして、最初の行頭の字下げ幅は 1em にしている。

見出し直後の段落

「インデントスタイル」の場合でも、最初の段落(見出し直後の段落)のみは字下げしない、という流儀もある。たとえば CSS のプロパティ text-indent の解説にもこのことが書かれている。まさにそこにあるように書くことで実現できる。

このサイトではこの流儀は採用していない。

日本語組版処理の要件

日本語については「日本語組版処理の要件」が重要な参考資料となる。「段落整形」の章でこの件について書かれている。

そこに、これまでどうしようか迷って自分でも揺らいでいた部分についての言及があった。

改行にして始めかぎ括弧[「] (LEFT CORNER BRACKET)及び終わりかぎ括弧[」] (RIGHT CORNER BRACKET)でくくった会話などを“といった……”などと受けて続く場合は,文節が連続していると考え,段落の先頭行の字下げは行わないで天付きとする(Figure 151).横組の別行にした数式を受けて,改行で“となるので……”などと受ける場合も,同様に段落の先頭行の字下げは行わない.ただし,小説などでは,すべて段落の先頭行の字下げは行うという処理方法も行われている(Figure 152).

「日本語組版処理の要件」3.5.1 段落先頭行の字下げ

要は、カギカッコの会話文や独立行の数式を挟んで文が続いているとき、それらの会話文や数式の後の段落は字下げしない。ここまで明確に書いてある説明をこれまで見ていなかった。

この記事でいうと、上のほうにある箇条書きに続く「のどちらかである。」のところは字下げしない、ということになる。これまでどうしたものかと思いっていたことの答がはっきりと示されていて、すっきりした。

内容に依存するため、さすがに一律に設定はできない。ここだけは字下げしないという場合にその CSS を適用する。WordPress のブロックエディターなら、右のほうのメニューの「ブロック」→「高度な設定」→「追加CSSクラス」で、前もって style.css か「追加CSS」に用意しておいた .noindent {text-indent: 0em} を指定するようにする。

「かけられる数」「かける数」ってわかりやすい言葉なのだろうか

そうこうしているあいだに、小学2年生のスウちゃん(仮名)の冬休みが終わり3学期になりました。2学期末は学校でかけ算をやっていましたが、宿題で持ち帰るプリントやドリルでは、かの有名な「かけ算順序問題」が繰り返し繰り返し出されます。延べ10回は超えているでしょう。しかしスウちゃんはちっとも引っかからず、求められているとおりに答えるので、親としてはやや拍子抜けです。「かけ算順序問題」そのものについては、ここでは深入りしません。既にあちこちで語られているでしょうから。

さて、「6×4 の式でかけられる数はどちらですか」のような設問も見られます。この「かけられる数」という言葉(言い回し)は、どうにも分かりにくいと感じます。大人でも混乱しそうです。少なくとも私はそうです。たぶん「受け身」(受動態)という形が普通ではないからでしょう。私はしばらくあるフリーソフトの翻訳に関わっていましたが、そこでも日本語の訳文は「できるだけ受け身にしない」という指針でした。

毎年数万人、延べ何百万人の先生方は疑問に思わないのでしょうか? まあ先生ほど普段から使っているから身についてしまって何とも思わないのかもしれません。百歩譲って、「かけられる数」「かける数」の区別が重要だとしても(それは教える側の問題であって、子どもたちがそれを意識する必要はないというのが私の考えです)、たとえば「はじめの数」や「もとになる数」、もっと簡単に「もとの数」とかいう語ではだめなのでしょうか。だいぶましだと思うのですが。そういう語だと加減乗除のどの場合にも左側の数をそう呼べるので、統一的な理解にもつながりそうにも思います。そうしない理由がどこかにあるのでしょうか。

ところで、念のために「かけ算順序問題」についての私の考えをさらっと書いておきます。

  • 教室で子どもたちに順序つきで教えること自体に異論はない。逆順も教えなければならないとも思わない。
  • ただし、子どもが逆順で答えてきたものを☓にしてはならない。したがって順序を問うような問題はナンセンス。

Hubot で docomo 「雑談対話」API を使う — “敬称”を Hubot コマンドに

これは Hubot Advent Calendar 2014 の 5 日目の記事です。が、その流れにうまく乗れているのかいないのか。1週間ほど前に自分の書いた「Hubot ping の日本語化」に引き続き、Hubot を日本語で楽しく使おうという話です。Advent Calendar の前日(4日)の記事の最後のほうでも、メッセージを日本語化するとより親しみがわく(あるいは腹が立つ)というお話でしたね。

さてさて、存在確認(ping)以外にもう少し会話的なものを楽しみたいのですが、大量の質問と答を仕込むのは労力の割に楽しくなさそうだし、人口無能みたいなものを組み込むのはこちらの技量からして難しいし……と考えあぐねていたところに、docomo Developer support 提供のAPI「雑談対話」というものを見つけました。しかもちょうど開発用APIキー有効期間の制限が廃止され、特に本申請をせずともよくなりました。

hubot-docomo-dialogue をつくった」を参考にしました。そこでは、すべての発言に反応するよう

...
  robot.hear /.*/, (res) ->
...

となっていました。しかし、これではまじめな話をしているところに割り込んできてうっとうしいので robot.respond にしたいところです。さりとて、コマンドを日本語化したとしても

user> わぷー 雑談 今日は寒かったね。

というのも無粋というか興ざめです(「わぷー」というのは bot の名前です。hubot の起動時に bin/hubot --name wapuu --alias わぷー として起動して、日本語名を与えています)。

“敬称”をコマンドに

ちょっと思案して、敬称の「さん」をコマンドにしてみました。

...
  robot.respond /さん(?:、)?\s*(.*)/, (res) ->
...

使用する時は、bot名とコマンドのあいだの空白は実はなくても大丈夫なので、

user> わぷーさん、今日は寒かったね。

と、ずいぶん自然な文体にすることができます。「わぷー」がbot名、「さん、」がコマンド、「今日は寒かったね。」が処理に渡されるパラメータと解釈されます。

Hubot のほかのちゃんとしたコマンドのときは呼び捨て、雑談したいときは「さん」付け、と使い分けることになります。

Wikipedia「敬称」にあるものを適当に詰め込み、読点をつけてもつけなくてもいい(ただし呼び捨てに読点を付けると雑談になる)ようにしました。

雑談対話 API

雑談対話と知識Q&A雑談対話 API には“会話の継続”というものがあります。いったん言葉(リクエスト)を投げかけ、返答に含まれる「コンテキストID」を次のリクエストにつければ継続的な対話になるというものです。この機能も組み込むことにしました。これでしりとりもできるようになりました(「わぷー、りんご」みたいにいちいち呼びかけなければなりませんが)。そして、2分あいだをあけると継続としないことにしました。

できた script は

です。

試してみましたが、しりとりは確かに上手にできます。しかし継続対話は期待ほどではなく、的外れなものになりがちでした。API の向こう側の対話能力は今後バージョンアップされるのでしょうか。

同様の docomo API 「知識Q&A」を利用するための docomo-knowledge.coffee も作ってみました。

こちらも試してみましたが、うーん、あんまり実用的な答は返ってきませんね。

user> わぷー教えて、ロスはいま何時?
wapuu> ロサンゼルスの今の時刻は15時35分です。

がちょっと便利なくらいです。

Hubot ping の日本語化 — 「いるのか?」の正規表現

Hubot の ping コマンド

hubot_wapuuSlack というコミュニケーションツールを利用することになって、そこでこれは便利かもということで Hubot をいじってみています。

現時点での安定版 Debian Wheezy に Hubot をインストールするにはどうすればいいんだとか、Slack に連携させるときに Heroku を使う方法ならすぐに見つかるが、自前ホストのHubotとSlackを連携させるにはどうするんだとか、いくつか引っかかりながらも、ここにリンクした情報が既にあったのでうまくいきました。

この bot がちゃんと作動しているかどうか反応を見るのに、ping というコマンドがはじめからサンプルとして付属しています。bot の名前に ping と付けて問いかけると、PONG と答えるというものです。

user> hubot ping
hubot> PONG

さて、「HubotのScriptを翻訳するとかわいい」にありますように、日本語化すると愛着がわきます。ping の Script はとても簡単で、肝は

  robot.respond /PING$/i, (msg) ->
    msg.send "PONG"

です。使用目的はとにかく存在確認ですから、日本語にすると

  robot.respond /いるのか\?$/i, (msg) ->
    msg.send "はい、ここにいます!"

です。

また、Hubot を起動するときに bot 自身の名前と別名を付けることができます。そこでこれを日本語で

bin/hubot --name wapuu --alias わぷー

と付けてやると、ますます親しみがわきます。これで応答は

user> わぷー いるのか?
wapuu> はい、ここにいます!

となりました。

「いるのか?」のバリエーションの正規表現

このままですと、script の質問文のところは正規表現で書けるのに、ただ「いるのか?」に正確にマッチしないと返答しないということになっています。

「いるのか?」の分解存在確認の日本文「いるのか?」を考察してみます。これを4つ(疑問符を入れると5つ)に分けて、それぞれのバリエーションとその組み合わせを思いつくまま挙げてみました(図)。ありえない組み合わせ—たとえば、2段目が「ります」のとき、その前に「い」はありえない—の制限を付け加えながら、正規表現にして書いてみると、次のようになりました。

/(((い|ゐ|居)(て?))(?!り)|(お|を|居)|((い|居)(て?)は)(?!ま))((る|ん(?=の))|((り?)ます)(?!ん))((の?ん?)(です)?|(んだ)(?!か))?(か(い?な?|よ|ね)?|(よ?)(ね|な))?\s?(\?|?)/

これで、質問文は「いる?」から「いてはりますのんかいな?」(いや、これが現実にありうる表現かどうか確証は持てないのですが)まで対応できます。

ping の目的は存在確認なので、日本語では「生きてる?」とも言いそうです。1段目の前に「生きて」を付けて、元の1段目を必須から任意に変更すればよさそうです。さらに、「調子どう?」「元気?」というフレーズもよく使いそうですね。これはもうそのままということにします。だんだん手抜きになってきました。

結局、日本語版 ping はこうなりました。

  robot.respond /(((い|ゐ|居)(て?))(?!り)|(お|を|居)|((い|居)(て?)は)(?!ま))((る|ん(?=の))|((り?)ます)(?!ん))((の?ん?)(です)?|(んだ)(?!か))?(か(い?な?|よ|ね)?|(よ?)(ね|な))?\s?(\?|?)/i, (msg) ->
    msg.send "はい、ここにいます!"

  robot.respond /(い|生|活)きて(((い|ゐ|居)(て?))(?!り)|(お|を|居)|)?((る|ん(?=の))|((り?)ます)(?!ん))((の?ん?)(です)?|(んだ)(?!か))?(か(い?な?|よ|ね)?|(よ?)(ね|な))?/i, (msg) ->
    msg.send "はい、ここにいます。"

  robot.respond /(調子どう|元気)/i, (msg) ->
    msg.send "はい、元気です。"

wapuu_pingちゃんと数えていませんが、これで「いるのか?」を意味する数十種類の表現に答えることができるようになりました。

このWapuu bot は、WordPress の日本語コミュニティがこれから活用していこうとしている Slack にいます。WordPress 本体の開発元でこの Slack を使っていくことになったことに触発され、そこに収まりきれない話題—日本語圏特有の話題、日本語で話したほうが楽な話題など—を扱っていこうという場所です(たぶん)。単に「WordPressの使い方」を尋ねるような場所ではありませんが、何かちょっとでも手助けしたい(日本語圏で最も求められているのはたぶん翻訳です。本体のみならず多くのドキュメントやニュースなどが翻訳されるのを待っています。もちろんほかにも何かがあります。たとえばこの記事のように、どうでもいいような冗談を仕込むとかもきっと)と思っている方があればぜひ参加してみてください。参加資格などなく、参加方法の手続きを踏めさえすれば誰でも参加できます。Wapuu bot はそこで待っています。

PDF の校正作業

出版前の本のレビューの依頼を受けるという機会に恵まれました。

著者からは PDF で原稿を受け取りました。作業の参考にしたのはテクニカルコミュニケーター協会が公開している「PDF 電子校正ガイドライン 第3版」 (PDF) です。端的に言うと、Adobe Acrobat Pro または Adobe Reader の「注釈」機能を使って、テキストの修正やコメントを付けていきます。

ところが、こちらの環境は Linux です。Linux には Adobe Acrobat Pro は存在しません。Adobe Reader も Mac/Win ではバージョンが XI (11) なのに、Linux 版は 9 のままであり、それ以降のバージョンは計画もない状況です。Linux 版の Adobe Reader 9 の注釈機能は、既に付けてある注釈を見ることはできても、あらたに注釈を付ける機能はなく、まったく話になりません。

Okular というソフトが注釈を扱えるようですが、その注釈は Okular でしか読めないらしいのです。なぜ Linux での環境がこれほど貧弱なことになってしまっているのか、愕然としました。

結局、このためだけに Windows XP を起動し、そこで Adobe Reader XI を使って作業したのでした。残念無念。

こうして作業して、注釈だけを別に保存します。はじめに受け取った原稿の PDF が 数十MB だったのに対して注釈はたったの 100KB ほどで、メールに添付してもたいしたことはありません。元の原稿は著者の手元には当然あるので、送る必要はありません。著者のほうでは送られてきた注釈ファイルを Acrobat 上で元の原稿に取り込んで確認できるというわけです。

受け取ったのは組版されて割付が終わっている段階です。著者校正の段階に相当し、それを第三者の目で内容的に誤りがないかを確認するということを求められているのかなと判断しました。プロの校正者ではないので、その人たちのようなチェックはできないはずなのですが、自分の性格からかつい細かな用字や読点に目がいってしまって、どっちつかずの「レビュー」になってしまいました。

そんなこんなが、いくらかでも役に立っていればうれしいのですが。

WordPress 翻訳祭り—今さら注意してもらえない「日本語」について

今週末、全国各地で WordPress 翻訳祭りが開催されるようです。WordPressの各言語版がどのような仕組みで実現されているか、とか、実際に翻訳作業をするアプリケーションの説明などが、あちこちに見られるようになりました。(【追記】このあと WordCamp Kansai 2014 コントリビューターデイもありますし、今後も参照されるかもしれないので若干手直ししました。)

でも、もっとも根っこのところにある「日本語」については、日本語の話者ならもう今さら言うことはないという感じで、なかなか誰も注意してくれません。

ふだん自分が書く日本語と違う点は、これが協調作業だということです。WordPress 本体と、テーマやプラグイン、Codex で、書き手によって文体や表現がバラバラだと、読み手に対していらぬストレスを与えることになります。ここは自分が気持ちよく書くことよりも、自分だけ外れた書き方になっていないか、に注意することが必要です。

日本語スタイルガイド

WordPress 本体の翻訳にあたっては、ガイドラインを定めています

まず基本となる「日本語スタイルガイド」(簡易版の PDF) があって、そこに書かれているルールから外れる WordPress 日本語版独自のルールという形で決めています。翻訳祭りに参加される方は、ぜひ事前に目を通して、もちろん全部覚えておくことは難しいでしょうが、「あれ、どうだったっけ?」と引っかかる程度にはしておくといいでしょう。

  • 日本語の句点は全角の「。」を、読点は全角の「、」を使う。
  • 日本語には全角文字 (2 バイト文字) を使う。
  • 英数字、符号には半角文字 (1 バイト文字) を使う。(例外は句読点、鍵括弧、中黒。これらは全角文字を使う)
  • 数字は、慣習的に使われている場合を除いて、算用数字 (1、2、3) を使う。

このあたりまでは、特に気をつけなくても大丈夫だと思います。

以下、気をつけないと自分の癖が出てしまいそうなところを挙げてみます。

文字間のスペース

  • 半角文字と全角文字の間には、半角文字 1 字分のスペースを入れる。ただし例外は
    • 半角文字の前後が『』 「 」 。、の場合は半角スペースを入れない。
    • 丸括弧 ( ) の外側には、全角文字がきても半角文字がきても半角文字 1 字分のスペースを入れる。
    • 丸括弧 ( ) の内側には、全角文字がきても半角文字がきてもスペースを入れない。
    • コロン : の前には半角スペースを入れない[1]
    • 半角数字の前後には半角スペースを入れない(日時など。例: 2009年5月10日12時30分48秒、1件のコメント、150ピクセル)

です。これははじめに意識しておかないと、うっかり適当にやってしまいがちです。

外来語カタカナ末尾の長音表記

基本的には内閣告示第二号「外来語の表記」に従います。

ざっくり言うと原則として、英語の語末が -er、-or、-ar のときは長音記号を付け、-y のときは長音記号を付けません。ただし例外も多くあります。

漢字かな表記

漢字にするかかな書きするかは

  • 原則として名詞と動詞には漢字を使い、接続詞、連体詞、助動詞、補助動詞、助詞、連語、形式名詞、接頭語、接尾語はかな書きにする。

です。「日本語スタイルガイド」 (長いほうの PDF) の付録に一覧表があります。「してください」「すでに」「すべて」「だれも」などはかな書きです[2]

ここまで、WordPress 本体のガイドラインを紹介しました。テーマやプラグインもぜひこれに準拠してほしいと思います。

Codex もほぼ準拠していると思いますが(どこかにガイドラインが示されていましたっけ?)、外れているものもけっこう見られます。括弧が全角になっていたり、和文-欧文間のスペースがあったりなかったり……。今回のような催しをきっかけにこのあたりのルールも整備されればいいなと思います。

ところで、「用語」は、WordPress 本体やテーマ・プラグインを参照して、合わせる必要があります。WordPress 本体で見かけた語が Codex では別の訳語になっていた、ではたいへん困ります。手間ではありますが、すでにある訳語を探して、合わせましょう。どうしてもそれらが間違った訳と思える場合には、それぞれの作者・翻訳者、日本語版作成チームに連絡して、連携して全体をよくしていきましょう。

それでは、Happy translating!

  1. 「日本語スタイルガイド」に明記はされていませんが、例文によるとこうなっています。
  2. 「すべて」「だれ」がかな書きなのは、この日本語スタイルガイドが作られた時点では常用漢字にそれらが含まれていなかったからだと思います。2010年の改定で「全て」の読み「すべて」、「誰」という漢字が含まれたので、今後はこれらは漢字書きでもいいかもしれません。しかしいま勝手にそう判断しても統一がとれませんので、全体の合意が形成されるまで当面はかな書きのままとしましょう。

Share the LOVE 分かちあい

今年6月に開催予定の WordCamp Kansai 2014 のキーワードは「分かちあい」だそうです。

WordCamp Kansai 2014のコピーにそっと入っている「Share the LOVE」の文字。これはWordPressのreadme.htmlにある一節で日本語版作成チームの方が「分かちあい」と訳してくださっています。(Makoさんが提案されたと聞いています)

「分かちあい」。WordCamp Kansai 2014では、この分かちあいをテーマにしています。
灯りをわけあうように知識を経験を、そしてこれからの未来をわかちあう。

WordCamp Kansai 2014 開催します!

ここに名前を挙げてもらって光栄に思うのと同時に、日本語版作成チームの皆さんの同意があってはじめてこうなっているのであって、私としては大いに照れているところです。とは言え、実は自分でも自分の案ということを何度か言ったことがあったのでした。

この際なので、もっとじっくり掘り出してみました。

まず大元の英語版の readme.html を見てみると、changeset 2338 で Share the Love が現れています。2005年2月のことです。これが日本語では、どういう経緯かわからないけれど「WordPress 愛用者の皆さんへ」と訳されていました。

日本語版作成チームのメーリングリストを探してみると、2008年2月24日に、確かに私が「分かち合い」を提案していました[1]このときの変更点の一番下のあたりです。漢字かかな書きかはその後2回ほど変えて、現在の「分かちあい」にしました。

いやあ、どんな変更があってどんな話をしていたかすっかりオープンな状態で、いつでも誰でも見られるんですね。オープンであること、自由であることが「WordPressってすごい」ところです。

もう少しなにか気の利いたことを書けたらいいのでしょうが、WordCamp Kansai 2014 実行委員長の挨拶を読むと「WordPressってすごい」「分かちあい」に書かれていることにまったく同感なので、そちらをぜひ見てみてください。

どこか自慢話のようになってしまったかもしれません。たかが一単語の日本語訳ですから、誰がやってもそう違いはありません。もし私がやらなくても誰かがやってくれたでしょう。でも逆に考えれば、たかがそのくらいを、たいして力のない私がやることができて、こうして WordCamp サイトオープンの挨拶で取り上げてもらえました。ああ自分じゃない誰かにいくらかでも何かを届けることができたんだな、と感じさせてもらえてとても幸せです。次は、これを目にしているあなたの番かもしれませんよ。「自分がやらなくても誰かがやってくれる」からほんの一歩だけでも踏み出してみませんか。

ところで、share は、この界隈では「共有」という訳で広まっています。しかし私はどうもしっくりこないと感じています。ということをどこかに書いたことがあったのでした。「共有」だと「(他人と一緒ではあるけれど)自分も持つ」という意味合いが強いような気がして、それよりむしろ「配る、分け与える、ほかの人にも持たせる」というニュアンスを出せないものかと考えています。最近、Twitter も share に、というニュースも見ました。「共有」なんて訳語にならなきゃいいなと思っています。

  1. なお、ここで署名に出てくる URL はすでに手放しており、現在表示されるのはまったく無関係です。それについては「迂濶にドメイン名を手放すのはよくない」に書きました。