ふぁメモ

主に技術系のメモをしたいけどやっぱり適当日記。たまにPHPコード載ってるけどメモ書き程度のスクリプトなのでそのまま使っちゃダメ。

エラーメッセージに特化した翻訳サイトがあればいいと思う件

(※この記事は思ったことをダラダラ呟いてるだけで何の知見も得られないし何も解決していません。増田でもよかったけどすぐ特定されそうなのでこちらに。)

ライブラリの紹介文でよく見かけるけどいまいち意味が分からない英単語 - Qiita

プログラミングに特化した翻訳サイト欲しいな

2020/12/13 16:00
b.hatena.ne.jp

これで思い出したんだけど、エラーメッセージの翻訳サイトってけっこう重宝されそうな気がするんだ。

というのも、仕事柄よく他のコーダー(※おおむね初級者)からPHPのエラーについて相談を受けることがあるのだけど、誰も彼も英語が嫌いすぎてエラーメッセージすら読んでないみたいなのだ。

相談を受けたものの、原因はエラーメッセージに書かれている通りなので、一体全体どこで詰まって相談してきているのかわからない。 エラーメッセージの内容を日本語で言い直してあげればそれで解決してしまうことがほとんどなのだ。

プログラム言語やPC用ソフトウェアが吐き出す英語なんてもう英語の文法の要素なんか全然なくて、ほぼほぼコンピュータ用語なので、文法とかは中学生レベルの知識で十分なのだけど、彼/彼女ら(以下彼ら)は英文のメッセージを見ただけで拒否反応を起こして見なかったことにしてしまう。

自分の観測範囲が狭いだけ(※サンプル数10くらい)と思いたいのだけど、初級プログラマから抜け出せないコーダーには英語嫌いが多い気がする。

彼らはエラーメッセージを確認した時、何をするか。

(全く読まずに相談してくる輩もいるが)

まずそのままググってしまう。

でもだいたいのエラーは汎用的なエラーメッセージだし、メッセージにはそのプログラムで使われている独自の単語が引用されてしまう場合も多い。

そんな単語の羅列でGoogle検索したところで出てくるのは関係ないプログラムの関係ないエラーか、もしくは何もヒットしない、ひどい時には「-」がついたままコピペして検索するせいでNOT検索になってしまっている場合もある。

ググるにしても重要そうなキーワードだけを拾って検索するでしょうよ普通は…、と思うのだけど、彼らにはどれが重要そうなキーワードなのかがわからない。

コーディング上のエラーではなくそのライブラリを使った時によくあるFAQだったりした場合には同じところで引っかかった人のブログが出てくるので、これでも解決は期待出来るのだけど…。

ググっても解決できない、もしくは大量にヒットした検索結果をつまんで解決しないと、彼らは次に翻訳サイトを利用する。

(そういえば彼らは検索結果のつまみ方も間違ってしまう場合が多い。1番目に公式リファレンスが出てきたならそれを見れば解決しそうなもの(特にPHPのマニュアルは親切だ)なのだが、検索結果画面に表示される公式リファレンスのスニペットはだいたい英語っぽい文字列になっているので、避けてしまうのだ。そして誰が書いたかわからない日本語のブログや翻訳された知恵袋系のサイトを見てしまう。質問を投げかけて解決せず止まっているものや、古いバージョンでしか起こらない記述、説明は正しいのにサンプルコードが間違っているもの等、罠は尽きない。)

最近の機械翻訳は優秀なので、特に詳細なリファレンスページなんかはChromeの翻訳機能でかなり読みやすくなった。

でもエラーメッセージは通常かなり短いし、あまり親切な英文ではないことが多く、機械翻訳ではうまく翻訳できないことが多い。

それで詰まってしまうようだった。

たとえばこんなのだ

Warning: fputcsv() expects parameter 1 to be resource, string given

警告。fputcsv()は1番目のパラメータにリソースを期待していますが、文字列が与えられています。

この時点でリソース(ここではファイルハンドル)が何かわからなくても、引数が間違ってることは想像が付くだろう。あとは関数リファレンスを見ればいいだけだ。

これを自分で読み解かずにGoogleの翻訳に掛けるとこうなる。

警告:fputcsv()は、パラメーター1がリソースであり、文字列が指定されていることを想定しています。

1番目のパラメータとしてリソースを文字列で指定してください、という意味になってしまう。

指定しているよ? 何が間違ってるの? という解釈になってしまっても仕方が無い。

DeepL翻訳でも試してみよう。

警告: fputcsv() はパラメータ 1 がリソース、与えられた文字列であることを期待しています。

あまり変わらない。PHPが吐き出しているエラーメッセージの文法がおかしいのではないか?という気さえしてくる。 ちなみにhoweverとかbutとかを付け足してやれば期待通りの日本語になる。

いつしか彼らもベテランになり、似たようなエラーには何度も遭遇することになるので、英語はわからないけどそのエラーの意味するところはわかります、という状態になることは十分に期待できる。 しかしもっと適切な、システムが吐き出したエラーメッセージをわかりやすい日本語に変換してくれるWebサービスがあったら彼らもすこぶる捗るに違いない気がするのだ。

あるいはエラーメッセージの文例集があるといいのだが、スクリプトエンジンが肥大化していることもありエラーメッセージも多岐に渡ることもあり、なかなか良いサイトが見つけられない(特に日本語となると…)

そもそもPHPが多言語対応ついでにエラーを日本語出力してくれてもいいようなものだが、そういったリソースやプロジェクトは聞き及んだことがない。(jperlくらいかな)

(もっとも、PHPだけの問題でもない。彼らはgitの吐いたAbortという文字列を見逃して手順が正常終了したと思い込んで罠に陥ってしまうこともしばしばあるのだ。gitは正常終了でもログがいくらか出るので普段から読み飛ばす癖がついてしまっているらしい…)

Google翻訳は日々進化しているのでそのうち改善されることを期待したほうが早いだろうか…。