はじめに
プログラマのみなさんはコードを書くときによく英語を使うと思います。
だけど、英語って難しいですよね。
僕自身もそうですが、クラスの名前やメソッドの名前、テーブルのカラムの名前を考えたりするときは「これ、英語でなんて言うんだろう??」と頭を抱えることが多いはずです。
他にも、トラブルが発生したときにWebサービスのサポートに英語でメールを書いたりする場合もあります。
そんなとき、安易に頼ってしまいがちなのが、オンラインの和英辞典や自動翻訳の類いです。
ですが、和英辞典や自動翻訳だけが適切な英語を探す唯一の方法ではありません。
むしろ、僕に言わせれば和英辞典や自動翻訳は質の悪い英語を作り出してしまう原因になりやすいです。
なので、僕はできるだけ和英辞典や自動翻訳には頼らないようにしています。
でも、こんなふうに言うと「えー、そんな!じゃあ和英辞典や自動翻訳以外にどんな方法があるの!?」って思ってしまいますよね。
そんなみなさんのために、もっといい英語名を見つけるためのTips(と、英語力アップのノウハウ)を紹介します。
和英辞典の英単語がしっくりこない → シソーラスを使う
(あなた)「統合する」って英語で何ていうの?
(Google翻訳)"integrate"です
(あなた)integrate?本当に?なんか難しくない??
・・・と思ったときはシソーラス(類語辞典)で似たような意味の単語を調べてみましょう。
シソーラスを使うと、「こっちの方がわかりやすくてしっくりくるな」という単語が見つかったりします。
逆に、和英辞典や自動翻訳を使うと、「その英単語ならこれ」と変に選択の余地のない回答が返ってきてしまい、結果としておかしな英語を使ってしまうことになりがちです。
ニュアンス的に正しいか確信がない → 英英辞典で意味を調べる
(あなた)「料金」って英語で何ていうの?
(サイトA)"fee"です。
(サイトB)"fare"です。
(あなた)どっちやねん!!
英語と日本語は必ずしも1対1で結びつきません。
別の言い方をすると、日本語=>英語=>日本語と訳したときに、元の日本語にきれいに戻ってくる可能性はそう高くないです。(つまり英語と日本語はラウンドトリップしません)
「料金」と一口で言っても、何の料金を指すのかによって英単語も変わってきます。
そんなときは英英辞典を調べてみましょう。
英英辞典で英単語の意味を調べると、英和辞典や和英辞典には現れないその単語が持つニュアンスがわかったりします。
http://www.dictionary.com/browse/fee
http://www.dictionary.com/browse/fare
上記サイトによると、次のような説明が書いてあります。
- fee: プロフェッショナルなサービス(医者など)に対する報酬、費用
- fare: バス、列車、飛行機といった乗り物の運賃
このように対象によって英単語が変わってくるため、あなたの「料金って英語でなんていうねん?」という質問に対しては、「その前にそれは何の料金やねん!?」とツッコミが返ってくることになります。
もちろん、今回の例で挙げた「料金」のような「日本人が迷いやすい英単語」であれば、丁寧に説明してくれる日本語のサイトが多数見つかります。
しかし、すべての英単語について、日本語でその使い分けを教えてもらえるわけではありません。
なので、日本語のサイトに頼らず、自力で英英辞典を調べられるようになっておく方が良いでしょう。
もしかしたらこれって和製英語かもしれない → その単語で画像検索する
(あなた)キャッチボールって英語でも"catch ball"でいいの?
(同僚)たぶんそうでしょ。
(あなた)絶対に?絶対の絶対に!?それって和製英語じゃないって言い切れる???
日本人が何気なく使っているカタカナ語は和製英語だったりすることがよくあります。
あと、英語だと思ってたらフランス語やスペイン語の単語だったりすることもあります。
そんなときはその単語を使って画像検索してみると良いです。
たとえば"catch ball"で検索するとこんな検索結果になりました。
むむむ、なんか変なおもちゃが出てきましたね。。。
これはちょっと外してる気がします。
こちらの情報によると、日本語でいうところのキャッチボールは"play catch"と呼ぶことが多いようです。
というわけで、今度は"play catch"で画像検索してみます。
おお、こっちの方がキャッチボールっぽいですね!
今回はあまり良い例が思いつかなかったので「キャッチボール」を出しましたが、クラスやメソッドの名前を検討するときも同様です。
画像検索の結果を参考にして、自分のイメージと大きくかけ離れていないかチェックしてみましょう。
自分で書いた英文が信頼できない → 英文チェックサービスを使う
(先輩)あー、このトラブルはもうこっちではお手上げだね。ちょっとHerokuのサポートにメール送っといてくれる?
(あなた)あ、はい、わかりました・・。
(あなたの内心)でも英語のメールなんて書いたことがないぞ?仕方ない、自動翻訳様の力を借りるか!
英語のメールを書いたことがないと、ものすごくハードルが高い気がして、つい自動翻訳に頼りたくなる気持ちはわかります。
ですが、自動翻訳にはあまり頼らない方がいいと僕は思います。
もしあなたが自動翻訳で出力された英文の意味を理解できないのであれば、ネイティブにとってちんぷんかんぷんな英文を送りつけることになるかもしれません。
たとえばこんなふうに!
件名: あなたは7日間の無料トライアルの対象
あなたは非常に特別な価格設定をしたい場合は私に通知
非常に良い取引
ありがとう
これはその昔、海外サイトの営業担当者が送ってきた、自動翻訳を使って書いたと思われる日本語メールの内容です。
このメールを受け取っても、僕には何の話なのかさっぱりわかりませんでした。
そもそも、自動翻訳に頼っていると、いつまで経っても英語のライティング力が身に付きません。
なんとか自分の力で英文を書きましょう。
ただ、そうはいっても、自分が書いた英文が正しいかどうかなんて自信が持てないですよね。
そんなときは自分の書いた英文を英文チェックサービスにかけてみるとよいです。
僕はGingerという英文チェックサービスをよく使っています。
以下はGingerを使って、自分の書いた英文をチェックしたときの実行例です。
英文チェックサービスを使ったからといって、完璧な英文になるわけではありませんが、しょうもないタイポや文法の間違いはある程度防ぐことができます。
なお、Ginger以外にもGrammarlyという英文チェックサービスも人気があるようです。
日常的に英語に触れていたい → OSやWebサービスの言語設定を英語にする
(英会話学校のCM)英語を身につけるためには、毎日英語を使わなければいけません!
(あなた)たしかに!でもなー、英会話学校に通うお金と時間はないんだよなあ。。。
英語を学ぶためにはできるだけ日常的に英語に触れるのが有効です。
システム開発でよく使う英単語は、実は目の前のPCにたくさん隠れています。
しかし、日本語表示にしていると、そうした英単語はあなたの目に触れることがありません。
そこで、OSの言語設定を英語に変更しましょう。
こうすれば、システム開発でよく使う英語に日常的に触れることができます。
FacebookやTwitterのようなWebサービスも英語表示にしておけば、英語に触れる機会がさらに増えます。
(ただし日本製のWebサービスは怪しい英語が混じっていることも多いので、それは日本語のままにしておきましょう)
英語表示にしておけば、こんなふうに警告のポップアップも英文で出てくるので、自然に英語を読む機会が増えます。
そして自分がクラスやメソッドの名前を付けるときにも、それっぽい英語が出てきやすくなるはずです。
まとめ
というわけで、この記事では和英辞典や自動翻訳を使わずに実現する、もっといい英語名を見つけるためのTips(と、英語力アップのノウハウ)を紹介しました。
和英辞典や自動翻訳はイージーですが、それしか使わない(または、それしか使えない)と微妙に的を外した英語名や英文を作ってしまう恐れがあります。
ここで紹介したようなテクニックも併用して、いろんな角度から英語名や英訳を検討できるようになりましょう!
あわせて読みたい
モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
=> 英単語を単純にくっつけるだけではダメですよ、ちゃんと品詞を意識しましょう!という記事です。
英語力をアップさせる知見がいっぱい!「Rubyistのための英語勉強会」を開催しました - give IT a try
=> 英語が苦手なRubyプログラマのために開催した英語勉強会の内容をレポートしました。
短い時間で十分伝わるレベルの英文を書くための5つのポイント - give IT a try
=> サポートセンターやプルリクエスト用に書く英文をさくっと書くためのノウハウを紹介しています。