-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
effects/http.md #119
effects/http.md #119
Conversation
book/effects/http.md
Outdated
The new parts extend the core pattern we saw before with some changes in `init` and `update`, and the addition of `subscription`. | ||
--> | ||
新しい部分は、これまで見てきた中核となるパターンの`init`および`update`関数の中の変更に伴う拡張と`subscription`の追加になります。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここが不自然と思いますが良い訳が思いつきませんでした…
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ちょっと途中で切っちゃいましょう
新しい部分は今まで見てきた中核となるパターンを拡張します。
init
がupdate
がいくつか変更されて、subscription
が追加されます
coreの訳し方ちょっと気に入らないですが。"中核となる"って結構重い
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます。
「中心となるパターン」または「コアとなるパターン」とかどうでしょうか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なんか「中心となる」がいい気がしてきました
修正したならpushして欲しいです 何もしてないのにwipだけ外したなって感じでちょっと困ってました |
なんか中途半端な状態で申し訳ありません。直したつもりになっていました(汗 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いったん前半部分だけ見ました。
book/effects/http.md
Outdated
It is often helpful to grab information from elsewhere on the internet. | ||
--> | ||
インターネット上から情報を引き出すということがしばし役に立ちます。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
「情報を引き出す」っていうと、調べものをしていてネットで情報を見つけることなのかなって最初に読んで感じました。
「情報を取得する」とかでしょうか?
あと「アプリケーション内に表示するために」みたいな文言を補足しちゃってもいいのかなって思いました。
"elsewhere" が訳から抜けているのは意図的なものですか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
思い切って意訳してしまうなら
しばしば、インターネット上のどこかにある情報を取得して自分のアプリケーションに表示したいこともあるでしょう。
と自然な日本語にすることもできると思います。
book/effects/http.md
Outdated
For example, say we want to load the full text of _Public Opinion_ by Walter Lippmann. Published in 1922, this book provides a historical perspective on the rise of mass media and its implications for democracy. For our purposes here, we will focus on how to use the [`elm/http`][http] package to get this book into our app! | ||
--> | ||
例えば、1992年に発行されたWalter Lippmann著の_Public Opinion_(この本はマスメディアとそれが示唆する民主主義についての歴史的展望を与えてくれます)の全文を取り込みたいとします。この節での目的は[`elm/http`][http]パッケージを使って、この本の内容を我々のアプリケーションに取り込む方法になります! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
本質じゃないところですが、
the rise of mass media and its implications for democracy.
は「マスメディアの興りとそれが民主主義に与えた影響についての歴史的な視点を与えてくれます」だと思います。
もう一つ細かいですが、"For our purposes here" なので、
(この節の目的はElmにおける非同期HTTP通信の方法を学ぶことなので)この節の目的を果たすために、ここでは[
elm/http
][http] パッケージを使ってこの本の内容を我々のアプリケーションに取り込む方法を中心に見ていきます。
とかなのかなって思いました。
book/effects/http.md
Outdated
The new parts extend the core pattern we saw before with some changes in `init` and `update`, and the addition of `subscription`. | ||
--> | ||
新しい部分は`init`と`update`へのいくつかの変更と`subscription`の追加を伴い、今まで見てきた中心となるパターンを拡張します。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
けっこう日本語として文意がとりにくい気がしていて、たとえばもうちょっと自然な日本語にしてこんな感じはどうでしょうか?
今まで見てきた上記のような基本のパターンに対して、
init
とupdate
にいくつか変更が加えられ、またsubscription
が追加されています。
book/effects/http.md
Outdated
Like always, we have to produce the initial `Model`, but now we are also producing some **command** of what we want to do immediately. That command will eventually produce a `Msg` that gets fed into the `update` function. | ||
--> | ||
これまでどおりに初期値としての`Model`を返す必要がありますが、直ちに実行したいなんらかの**コマンド**も同時に返します。コマンドは最終的には`update`関数に渡される`Msg`を返します。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
初期値としての
Model
この日本語がむずかしくて最初理解できませんでした。
もうちょっと単純に 「Model
の初期値」とかだといかがでしょうか?
また、日本語は一般論なのかここだけの話なのかがわかりにくい言語なので、
直ちに実行したいなんらかのコマンドも同時に返します。
を
ここでは直ちに実行したいなんらかのコマンドも同時に返しています。
コマンドは最終的には
update
関数に渡されるMsg
を返します。
ここだけの話 ("That command" とことわっているから)であることを明示するために
ここで返しているコマンドは最終的には...
みたいにするのはどうでしょうか?
book/effects/http.md
Outdated
Our book website starts in the `Loading` state, and we want to GET the full text of our book. When making a GET request with [`Http.get`][get], we specify the `url` of the data we want to fetch, and we specify what we `expect` that data to be. So in our case, the `url` is pointing at some data on the Project Gutenberg website, and we `expect` it to be a big `String` we can show on screen. | ||
--> | ||
本の内容を表示する我々のウェブサイトは`Loading`の状態から始まり、本の全文を取得(GET)する事を要求します。[`Http.get`][get]によってGETリクエストを構築する際には、取得したい本のデータがある`url`を指定し、そしてどんなデータになることを期待(`expect`)するかを指定します。我々の場合、`url`には Project Gutenberg のウェブサイト上にあるデータを指定し、そのデータが文字列(`String`)であることを`expect`します。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
我々の場合、
url
には Project Gutenberg のウェブサイト上にあるデータを指定し、そのデータが文字列(String
)であることをexpect
します。
- 全体的に「我々」という言葉が多くて、日本語としてはなんだか仰々しいのでやさしくしたい
- url ≠ ウェブサイト上にあるデータ
expect
しますだと2度目だけどちょっと不親切そう- big が訳から抜けている
- we can show on screen が抜けている
の5点を考慮してこんな感じだとどうでしょうか?
今回のケースでは、指定した
url
は Project Gutenberg のウェブサイト上のとあるデータを指し示しており、そのデータが画面に表示できる長い文字列(String
)であることを期待(expect
)しています。
book/effects/http.md
Outdated
The `Http.expectString GotText` line is saying a bit more than that we `expect` a `String` though. It is also saying that when we get a response, it should be turned into a `GotText` message: | ||
--> | ||
ただし、この`Http.expectString GotText`の部分は、`expect`するのは単なる`String`以上の何かであると示しています。また、あるレスポンスを受け取ったときに、`GotText`というメッセージに変換されなければならない事を示しています。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ただし、この`Http.expectString GotText`の部分は、`expect`するのは単なる`String`以上の何かであると示しています。また、あるレスポンスを受け取ったときに、`GotText`というメッセージに変換されなければならない事を示しています。 | |
ただし、この `Http.expectString GotText` の行は単にここでは文字列(`String`)を期待している(`expect`)と言っているだけではありません。なにかレスポンスを受け取った時に、以下のような `GotText` というメッセージに変換されるはずだとも言っているのです。 |
book/effects/http.md
Outdated
Notice that we are using the `Result` type from a couple sections back. This allows us to fully account for the possible failures in our `update` function. Speaking of `update` functions... | ||
--> | ||
いくつか前の節にて`Result`型を使った事を思い出してください。これにより`update`関数の中で失敗の可能性についても完全に捉えることが可能となります。`update`関数といえば... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いくつか前の節にて`Result`型を使った事を思い出してください。これにより`update`関数の中で失敗の可能性についても完全に捉えることが可能となります。`update`関数といえば... | |
いくつか前の節であつかった`Result`型を使っていますね? これにより`update`関数の中でありうる全ての失敗を完全に捉えることが可能となります。 これは`update`関数の話のついでの余談ですが... |
book/effects/http.md
Outdated
> **Note:** If you are wondering why `init` is a function (and why we are ignoring the argument) we will talk about it in the upcoming chapter on JavaScript interop! (Preview: the argument lets us get information from JS on initialization.) | ||
--> | ||
**Note:** もしあなたが、なぜ`init`が関数であるのか(そしてなぜ引数を無視しているのか)という事に疑問を抱いたら、続く JavaScriptとの相互運用 の章にて説明します!(予告: この引数により初期化時にJSから情報を受け取ることができます) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
仮に「あなた」が疑問を抱かないとしても、Interop の章で説明はするので、こんな感じでどうでしょうか?
**Note:** もしあなたが、なぜ`init`が関数であるのか(そしてなぜ引数を無視しているのか)という事に疑問を抱いたら、続く JavaScriptとの相互運用 の章にて説明します!(予告: この引数により初期化時にJSから情報を受け取ることができます) | |
**Note:** なぜ`init`が関数であるのか(そしてなぜ引数を無視しているのか)という事に疑問を抱いたかもしれません。それについては後ほどJavaScriptとの相互運用 の章にて説明します!(予告: この引数により初期化時にJSから情報を受け取ることができます) |
book/effects/http.md
Outdated
Our `update` function is returning a bit more information as well: | ||
--> | ||
我々の`update`関数も同様にもう少しの情報を返します: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
我々の`update`関数も同様にもう少しの情報を返します: | |
今回の例では`update`関数も`init`のようにもう少し追加の情報を返します: |
book/effects/http.md
Outdated
Looking at the type signature, we see that we are not just returning an updated model. We are _also_ producing a **command** of what we want Elm to do. | ||
--> | ||
型シグネチャを見てみると、単に更新されたモデルが返されるだけでないことがわかります。ここでも _やはり_ Elmに実行して欲しい事を指示する**コマンド**を返します。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#157 のissueを作ったので 「型表記」に変更していただけますか?
また、こまか〜い話ですが、「実行して欲しい事」の「欲しい」は形式動詞、「事」は形式名詞だと思うので
「実行してほしいこと」の表記が自然だと思います。
全体的に形式名詞の「こと」が漢字になっているのが気になりました。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
後半もレビュー終了です。
たくさんコメントしちゃってお手数おかけします m(_ _)m
book/effects/http.md
Outdated
Moving on to the implementation, we pattern match on messages like normal. When a `GotText` message comes in, we inspect the `Result` of our HTTP request and update our model depending on whether it was a success or failure. The new part is that we also provide a command. | ||
--> | ||
実装では通常通りにメッセージに対してパターンマッチを行っています。`GotText`メッセージが来たときに、HTTPリクエストの`Result`の値を調べ、その結果が成功か失敗かによって我々のモデルを更新します。新しい部分は、ここでもやはりコマンドを返していることです。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we inspect the
Result
of our HTTP request
これは以下の意味で言っていると思うので
we inspect a
Result
value which represents the reslut of our HTTP request
こんな感じの訳にするのはいかがでしょうか?
HTTPリクエストの結果を示す
Result
型の値を調べ、その結果が成功か失敗かによってモデルを更新します。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new part is that we also provide a command.
新しい部分は、ここでもやはりコマンドを返していることです。
意味的には通るのでそのままでもいいとは思いますが、原文のalsoは厳密には「Modelだけではなくコマンド も 返している」という意味で使っていると思います。
(also ではなく as well だったらこの日本語訳になる気がします)
book/effects/http.md
Outdated
And in the case that there was some error, we also say `Cmd.none` and just give up. The text of the book did not load. If we wanted to get fancier, we could pattern match on the [`Http.Error`][Error] and retry the request if we got a timeout or something. | ||
--> | ||
そしてなんらかのエラーがあった場合には、やはり`Cmd.none`としてギブアップしてしまいます。本の内容を読み込むことができませんでしたので。もしより良い物にしたいのなら[`Http.Error`][Error]に対してパターンマッチを行い、タイムアウトなどのエラーであれば再度トライすることも可能です。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The text of the book did not load.
本の内容を読み込むことができませんでしたので。
- 英語で Because を省くことはかなりまれ
- 画面のステートに Loading があることから load を「画面に表示する」の意味で使っている可能性がある
の2点から、自信はないですが以下の訳のほうが適切かもしれません。
その結果、画面上に本の内容は表示されません。
book/effects/http.md
Outdated
The point here is that however we decide to update our model, we are also free to issue new commands. I need more data! I want a random number! Etc. | ||
--> | ||
この`update`関数で大事なことは、モデルの更新をするかどうかを決めるだけでなく、新しいコマンドを発行する事も自由なのです。もっとデータが必要だ!とか乱数がほしい!だとか。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"however" なので直訳すれば「どのようにモデルを更新したとしても、」みたいになると思いますが、意図的にわかりやすさのためにこの訳にしているのであればそのままでいいと思います!
book/effects/http.md
Outdated
The other new thing in this program is the `subscription` function. It lets you look at the `Model` and decide if you want to subscribe to certain information. In our example, we say `Sub.none` to indicate that we do not need to subscribe to anything, but we will soon see an example of a clock where we want to subscribe to the current time! | ||
--> | ||
このプログラムにおけるもう一つの新しい部分は`subscrption`関数になります。`Model`の情報から判断して何らかの情報に対する待ち受けするかどうかを決めることができます。我々の例では`Sub.none`として何も待ち受けする必要がないことを示していますが、後ほど現在時刻に対する待ち受けをする時計という例を見ることになるでしょう。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2文目がちょっと日本語として不自然かなって思いました。
このプログラムにおけるもう一つの新しい部分は`subscrption`関数になります。`Model`の情報から判断して何らかの情報に対する待ち受けするかどうかを決めることができます。我々の例では`Sub.none`として何も待ち受けする必要がないことを示していますが、後ほど現在時刻に対する待ち受けをする時計という例を見ることになるでしょう。 | |
このプログラムにおけるもう一つの新しい部分は`subscrption`関数になります。`Model`の情報から判断して何らかの情報に対する待ち受けするかどうかを決めることができます。今回の例では`Sub.none`として何も待ち受けする必要がないことを示していますが、後ほど現在時刻を待ち受ける必要がある時計の例を見ていきます。 |
book/effects/http.md
Outdated
We get the ability to issue **commands** from `init` and `update`. This allows us to do things like make HTTP requests whenever we want. We also get the ability to **subscribe** to interesting information. (We will see an example of subscriptions later!) | ||
--> | ||
我々は`init`および`update`関数から**コマンド**を発行する方法を習得しました。これによりHTTPリクエストを送信するといったような事を、必要なときにできるようになりました。また、関心のある情報を**待ち受け**する方法も習得しました(後ほどサブスクリプションに関する例を見るでしょう!)。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
文脈としては Browser.element
を使ってどうなったかを言っているので
We get the ability to issue commands from
init
andupdate
.
たぶんここの "ability" は、Browser.element
を使うことで、Browser.sandbox
には でき なかった init
や update
でコマンドを発行することが できる ようになったっていう機能面での ability を言いたいんだと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We also get the ability to subscribe to interesting information.
また、関心のある情報を待ち受けする方法も習得しました
"interested information" だとこの訳になりますが、"interesting information" なので「興味深い情報を」とかもうちょっと意訳気味に「なにか意味ある情報を」とかになる気がします。
また、ここの "ability" も上記と同じ意味の ability な気がします。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
後ほどサブスクリプションに関する例を見るでしょう!
これも「英語を日本語に訳しました」感がけっこう強いので、
後ほどサブスクリプションに関する例を見ます
後ほどサブスクリプションに関する例をあつかいます
みたいにしてもいいのかなって思いました。
遅くなって申し訳ありません。ひととおり修正してみました。読み直しておかしな部分が多く感じ、自分自身での推敲がきちんとなされてなかったように思います。お手数をかけてすみません:sweat: |
とんでもないです! |
PRを出す時は以下の内容をご確認ください。
できるだけ他の場所で使われている訳語にあわせる
対訳表をご参照ください。
もし対訳表にまだ記載されていない訳語であれば、対訳表に追記していただけると助かります。
原文をコメントアウトしてその直下に訳を記入する
事前に
npm start
で正しくレンダリングできていることを確認するカタカナ語の採用基準にしたがう
This PR closes #34 (対応するissue番号に変えてください)