序
英語でそれっぽいエラーメッセージを書けるようになりたいので、OSSのソースを読むとき、ついでにいろんなエラーメッセージやコメントを収集しています。自分が書くときの参考用に、今までに集めたものから記事を書いてみることにしました。
-
英語が得意じゃないにしても、それなりに伝わるようにメッセージを書けるようになりたいという意図です
-
引用してるものと、私がそれっぽく書いたものが混在しています
- 誤りを見つけたら、ぜひ編集リクエストをください。よろしくお願いします
-
主にJavaScript/TypeScript製のフレームワークやライブラリから拾っています
以下には「よく見る」、「あまり見ない」、「多い」など頻度についての言及がありますが、あくまでも私の主観に基づく記述であり、統計など具体的な根拠に基づくものではありません。
エラーが発生しました系
- エラーが発生したことを示したい時に
- 具体的な対応策を追加で提示することが望ましいでしょう
- 異常系が雑に作られてるとトラブル対応で死にます
- 具体的な対応策を追加で提示することが望ましいでしょう
An error has occurred ~
An error has occurred while resizing images.
画像のリサイズ中にエラーが発生しました。
-
while 〜
やwhen 〜
でエラーが起こったタイミングなどを示すことが多いです
失敗しました系
- 処理が失敗した時に
- これも「なぜ失敗したのか」を提示しないとユーザーが途方に暮れます
Failed to ~
Failed to deliver email. Expected at least 1 recipient.
メール配信に失敗しました。少なくとも一人の受信者が必要です。1
-
to
もcc
もbcc
もない状態でメールを送ろうとしたときに出るエラーメッセージの例です - すごくよく見る形だとおもいますが、地味に主語が省略(省略せずに書くなら、
The program failed~
とかThe application faild〜
)されています- この辺の匙加減が、いざ書く段になると難しかったりします
○○することができません系
- ユーザーの指示や操作に対して、失敗したことを示す時に
- 「やれと言われたけどダメでした」のニュアンスがある(と思う)
unable to ~
Unable to find a valid app.
有効なアプリを見つけることができません。2
-
unable to
は、(必ずしも物理的・論理的にではなく、それをするための能力が欠如していたり、状況が適していないために)できない、というニュアンス
cannot
/ can't
value cannot be made reactive
値をリアクティブにすることはできません。3
-
cannot
やcan't
は、物理的・論理的にできない、というニュアンス -
You cannot make value reactive
のvalue
を主語に持ってきて受動態(cannot be made
)にした形- 主語を省略するパターンで、
Cannot make value reactive
と書いてもいいと思うのですが、英語話者は微妙な気持ち悪さなどを感じるのでしょうか…
- 主語を省略するパターンで、
Cannot read properties of undefined
undefinedのプロパティを読み取ることはできません。
- JavaScripterがその生涯で星の数4ほど見るエラー
○○がありません系
- 処理に必要なものが無いときに
~ does not exist
Component ${componentClassName} does not exist.
コンポーネント${componentClassName}
は存在しません。5
Missing A in B
Missing parameter '${name}' in route ${id}
ルート${id}
にパラメータ${name}
がありません。7
-
Missing A in B
は単に無いというよりは、ある集合(B)の中にあるはずもの(A)が欠如している、というニュアンス
no ~ are/is passed
If no arguments are passed, the default password rule configuration will be returned.
もし引数が渡されない場合、デフォルトのパスワード設定ルールが返されます。8
-
no ~ are passed
で~が渡されませんでした
となるパターン- 必要な引数が一つの時は
no argument is passed
と単数系になったりします
- 必要な引数が一つの時は
A has no B
Route for [{$uri}] has no action.
[{$uri}]のルートにはアクションがありません9
- これも
has no ~
で~を持っていません
という表現- この
no ~
の形の否定文は短くて済むからか、よく見ます -
does not
を使って書き表すと、Route for uri does not have any actions.
という感じでしょうか- 確かに、ちょっと冗長な気がします
- この
○○でなければいけません系
-
must
やshould
をよく見ます-
must
は日常会話だと意味が強すぎてあまり使われないようですが、エラーメッセージやドキュメントだとhave to
よりよく見ます-
must
は主観的な義務、have to
は客観的に見てそうしなければならない、という状況による必要性のニュアンス10があるので、ライブラリ視点でhave to
はあまりそぐわないのかもしれません
-
- 日本語でも、特に口語で
~してあげないといけない
と言うことがありますが、英語でも受動態でmust be ~
やshould be 〜
の形をよく見ます
-
must
Adjacent JSX elements must be wrapped in an enclosing tag.
隣接する複数のJSX要素は、単一の囲みタグで囲まれなければなりません。
- Reactやり始めたころよく見たやつ
should
Each child in a list should have a unique "key" prop.
リスト内の各子要素は、固有のkey
propを持つべきです。
- Reactやり始めて結構経つけど、いまだにたまに見るやつ
-
should have
はshould have + 過去分詞
というイディオムがあるのですが、これはshould + 動詞の原形
で、単に持つ(have)べき(should) でよいです
-
○○してください系
- 命令形か、それに
please
を付けた形をよく見ます
please ~
Invalid URI: please reconfigure with a valid SMTP connection URI
無効なURI:有効なSMTP接続URIを再設定してください。 11
-
invalid
、valid
もエラーメッセージでよく見る単語ですね
命令形
# exa is unmaintained, use the fork eza instead.
exaはメンテナンスされていません。代わりにフォークのezaを使ってください 12
- ezaを使いましょう
-
use
のところをyou should use
とすれば(選択の余地はあるものの)強い推奨、you must use
とすればほとんど選択の余地のない義務、という表現になります
○○が必要です系
- 必要なものが無いときに
Expected ~
Failed to deliver email. Expected at least 1 recipient.
メール配信に失敗しました。少なくとも一人の受信者が必要です。1
- 再登場
- 「必要」としてしまうと、ちょっと意訳っぽいでしょうか
- 関連して、
Unexpected ~
(予期しない〜)もよく見る表現です
~ is/are required
At least one recipient is required.
少なくとも一人の受信者が必要です
-
required
はプログラマー的には必須のニュアンスが強い(気がする)
非文系
- メモリの制約などの要因により完全な文章ではないもの
- 受動態のbe動詞を省略した形が多い
- 歴史的遺物という気もしますが、端的に表せるので現代でも結構見ます
- エラーメッセージ書く上で参考になるかは微妙なところ
File not found
ファイルが見つかりません(でした)
-
The file could not be found
が省略された形13 -
The file was not found
でもよさそう- いずれにしても、ファイルが見つからなかったということはわかります
- 非文系に限りませんが、エラーメッセージは割と時制を無視して書かれることが多いと感じます
- 日本語に訳すと過去形っぽくしたくなるのが変なのかもしれませんが
Access denied.
アクセスが拒否されました
-
Access is denied.
のbe動詞が省略された形-
403 forbidden
と一緒に帰ってくることがある
-
終わりに
元々は自分のリファレンス用にと思って書き始めましたが、読み物として楽しんでもらえたら幸いです。今後もちょくちょく書き足すかもしれません。
ちなみに、エラーメッセージを収集するときは、Webフレームワーク(Express.jsとかLaravelとか)のリポジトリを参照すると、いろんな種類のメッセージに出会えるのでおすすめです。throw
で検索するといろいろ出てきます。
-
英文法上は不自然 ↩