textlint

昨日、textlint 4.0をリリースしましたが、textlintはMarkdownなどの文章に対してルールベースでチェックできるツールです。

詳しくは以下の記事を参照してください。

textlint-rule-preset-jtf-style

textlintのプリセット(ルールセット)としてtextlint-rule-preset-jtf-styleを作成しました。

これへ日本翻訳連盟JTF日本語標準スタイルガイド(翻訳用)をtextlintのルールとして実装したものです。

『JTF日本語標準スタイルガイド(翻訳用)』は、実務翻訳において和訳時に使用できる日本語表記ガイドラインです。2012年1月30日に初版を公開しました。『JTF日本語標準スタイルガイド』はどなたでも無償で使用できます。日本語の表記のゆらぎを防いで、スムーズに表記を統一するためのガイドラインとして活用してください

jtf_style_guide.pdfからスタイルガイドの内容を読むことができます。

インストール

詳しくは以下のREADMEに書かれているのでそちらを読んで頂くとして、一応の推奨インストール方法を紹介します。

現在のディレクトリにtextlinttextlint-rule-preset-jtf-styleをインストールして使うと、グローバルにインストールしなくても良くなります。

npm init # package.jsonがないなら
npm install -D textlint textlint-rule-preset-jtf-style

textlintの設定ファイルとなる.textlintrcに次のようにtextlint-rule-preset-jtf-styleを設定します。

textlint-rule-というprefixは省略して設定します。

{
    "rules": {
        "preset-jtf-style": true
    }
}

後は、インストールしたtextlintでチェックしたいファイルを指定して実行します。

node_modules/.bin/textlint /path/to/target.md
# npm binを使っても同じ
$(npm bin)/textlint /path/to/target.md

もしくはpackage.jsonのrun-scriptにtextlintを定義して

  "scripts": {
    "textlint": "textlint -f pretty-error",
  },

npm runコマンド経由で実行すると良さそうです。

npm run textlint -- /path/to/target.md

screenshot

スタイルガイド

日本語に関するスタイルガイドをいくつか調べていたのですが、技術文章は元となる技術が英語圏のものであることが殆どなので、翻訳向けのスタイルガイドは違和感が少なく相性は悪く無いと思います。

ただし、カタカナ表記などはJTFスタイルガイドが参照する外来語(カタカナ)表記ガイドラインは技術文章向けではないのでそこは違和感が出る場所もあるかもしれません。

textlintでは違和感があるルールは個別に無効化することができます。 例えばカタカナに関しては以下のルールを無効化すると抑制することができるようになっています。

{
    "rules": {
        "preset-jtf-style": {
            "1.2.2.ピリオド(.)とカンマ(,)": false
        }
    }
}

JTFスタイルガイドは簡単で小さなルールが60個ほどあって、大体の部分はあまり意識せずにやってる書き方と似ています。

JTF日本語標準スタイルガイド(翻訳用)は例文も載っているので、読み物として見てみると面白いかもしれません。

ルール一覧

最新の実装状況はazu/textlint-rule-preset-jtf-styleを見るのを推奨します。

以下に現在実装されてるルール一覧を載せておきます。

そもそも正否のチェックできないルールが一部存在ありますが、だいたい40/60程度実装してあります。

今のところ全てがデフォルトで有効になっていますが、1.0までにデフォルトは警告だけとするものを追加するかもしれません。

対応ルール ページ(v2.1) 小項目 JTF標準ルール 中項目 大項目
1.1.1.js 10 本文 目的に応じて敬体、常体のどちらかに統一する。 文体 基本文型
1.1.2.js 10 見出し 常体または体言止め。
1.1.3.js 10 箇条書き 「本文」の文体に合わせる。
不可 11 図表内テキスト 「本文」の文体に合わせる。
1.1.5.js 11 図表のキャプション 「本文」の文体に合わせる。
1.2.1.js 11 句点(。)と読点(、) 全角の「、」と「。」を使う。 句読点の使用
1.2.2.js 11 ピリオド(.)とカンマ(,) 和文の句読点として使用しない。
未実装 11 ひらがな 全角。昭和61年7月1日内閣告示第1号の「現代仮名遣い」に準じる。 用字、用語 文字の表記
2.1.2.js (辞書ベース) 11 漢字 常用漢字表にゆるやかに準じる。
未実装 12 漢字の送りがな 昭和48年6月18日内閣告示第2号「送り仮名の付け方」に準じる。
未実装 13 複合語の送りがな 昭和48年6月18日内閣告示第2号「送り仮名の付け方」に準じる。
2.1.5.js (辞書ベース) 14 カタカナ 全角。半角カタカナは特殊用途を除いて使わない。
2.1.6.js (辞書ベース) 14 カタカナの長音 原則として省略しない。
不可 15 カタカナ複合語 中黒または半角スペースで区切る。
2.1.8.js 16 算用数字 半角。
2.1.9.js 16 アルファベット 半角。
2.1.10.js 16 算用数字(位取りの表記) 桁区切りには「カンマ」、小数点には「ピリオド」を使う。ただし桁区切りの「カンマ」は省略する場合がある。
2.2.1.js (辞書ベース) 17 ひらがなと漢字の使い分け 参考文献に従う。 文字の表記と使い分け
2.2.2.js 19 算用数字と漢数字の使い分け 数えられるものは算用数字。慣用句は漢数字。
2.2.3.js 20 一部の助数詞の表記 「〜か月」、「〜か所」
3.1.1.js 20 全角と半角の間 スペースなし 単一文字間のスペースの有無 文字間のスペース
3.1.2.js 20 全角どうし スペースなし
不可 20 半角どうし 和文中に欧文を引用するなど、和文に欧文が含まれる場合は欧文中の半角スペースを維持する。
3.2.js 20 カタカナ語間のスペースの有無 中黒または半角スペースを入れる。 カタカナ語間のスペースの有無
3.3.js 20 かっこ類と隣接する文字の間のスペース スペースなし かっこ類と隣接する文字の間のスペースの有無
4.1.1.js 21 句点(。) 全角 句読点 記号の表記と用途
不可(1.2.2参照) 21 読点(、) 全角
4.1.3.js (1.2.2参照) 21 ピリオド(.)、カンマ(,) 半角
4.2.1.js 21 感嘆符(!) 全角。和文では多用しない。 記号
4.2.2.js 22 疑問符(?) 全角。和文では多用しない。
チェック項目なし 22 スラッシュ(/) 全角または半角
4.2.4.js 22 中黒(・) 全角
4.2.5.js 22 波線(〜または~) 全角
4.2.6.js 22 ハイフン(-) 原則として和文では使用しない。
4.2.7.js 23 コロン(:) 全角。和文では多用しない。
4.2.8.js 23 セミコロン(;) 原則として和文では使用しない。
4.2.9.js 23 ダッシュ(-) 原則として和文では使用しない。
4.3.1.js 23 丸かっこ() 全角 かっこ
4.3.2.js 23 大かっこ[] 全角
4.3.3.js 23 かぎかっこ「」 全角
4.3.4.js 23 二重かぎかっこ『』 全角
4.3.5.js (対の有無) 23 二重引用符\" \" 半角。和文では多用しない。
4.3.6.js (対の有無) 24 中かっこ{} 原則として和文では使用しない。
4.3.7.js (対の有無) 24 山かっこ<> 原則として和文では使用しない。
4.3.8.js (対の有無) 24 一重引用符' ' 原則として和文では使用しない。
不可 24 JIS規格Z8202「量及び単位」、Z8203「国際単位系(SI)及びその使い方」に従う。 単位系 単位の表記
24 主に、英字による表記とカタカナによる表記がある。 単位記号の表記
24 時間、時刻 時間、時、分、秒、ミリ秒 個別の単位
24 長さ mm、km、ミリメートル、センチメートル
24 質量 g、kg、t、グラム、キログラム、トン
24 面積、体積 ㎡、平方メートル、立法メートル
24 電気 A、W、V、アンペア、ワット、ボルト
25 温度
25 周波数 Hz、ヘルツ
25 速度 m/s、キロメートル毎時、分速~km
25 伝送速度 bps、Kbps、バイト/秒
25 割合 %、パーセント
25 角度 90°、90度
25 記憶容量 ビット、バイト、Kb、KB、Mb、MB
25 通貨 円、米ドル、ユーロ、$、USD
25 その他

個人的な感覚では辞書ベースとなる部分は人によって感覚のズレが起きやすいです。 そういう表記揺れを統一するためのスタイルガイドですが、煩わしい場合は個別に無効化するとよさそうです。

追記(2015-12-22): textlint-plugin-jtf-styletextlint-rule-preset-jtf-styleへとリネームされました。

この記事もプラグインではなく、プリセットとしてのインストール方法に変更されています。 移行方法などについては以下を参照して下さい。