Skip to content

Commit

Permalink
Improved Japanese translation
Browse files Browse the repository at this point in the history
  • Loading branch information
seka committed Jul 26, 2015
1 parent 4f5cdf7 commit 770fd46
Show file tree
Hide file tree
Showing 13 changed files with 214 additions and 132 deletions.
26 changes: 19 additions & 7 deletions exercises/baby_steps/problem.ja.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,44 @@
ひとつ、あるいは複数の数を引数として受け取り、それらを足し合わせた値をコンソール(stdout)に出力するコマンドラインアプリを書いてください。
1つ以上の整数をコマンドライン引数として受け取り、それらを足し合わせた値をコンソール(stdout)に出力するコマンドラインアプリを書いてください。

----------------------------------------------------------------------
## ヒント

コマンドライン引数を読むためにはグローバル変数の `process` というオブジェクトが使えます。`process``argv` という `Array` を持っています。その `Array` のなかには全てのコマンドラインが入っています。例: `process.argv`
コマンドライン引数を読むためにはグローバル変数の `process` というオブジェクトが使えます。
`process` には `argv` という `配列` のプロパティがあります。その `配列` の中には全てのコマンドライン引数が入っています。

例: `process.argv`

新しいアプリ `(program.js)` にこれを書いてスタートしてください:

```js
console.log(process.argv)
```

コマンドラインに `node program.js` を入力してアプリを実行します。引数も使えます! 例:
コマンドラインに `node program.js` を入力してアプリを実行します。コマンドライン引数も使えます!
例:

```sh
$ node program.js 1 2 3
```

実行するとこのように出力されるはずです:
実行すると以下のように出力されるはずです:

```js
[ 'node', '/あなた/の/アプリ/フォルダ/program.js', '1', '2', '3' ]
```

次のステップでは数値だけを合計して表示する方法を考えます。`argv` の一つ目の引数はいつでも `node` です。二つ目の引数はいつもあなたのアプリファイルのパスです。なので三つ目の引数からスタートしないといけません。それぞれの要素を最後の要素まで合計してください。
次のステップでは数値だけを合計して表示する方法を考えます。

`argv` の1つ目の引数はいつでも `node` です。2つ目の引数はあなたのアプリファイルのパスです。
そのためコマンドライン引数は3つ目の引数からスタートします。それぞれの要素を最後の要素まで合計してください。

`process.argv` の要素は全て string ですので注意してください。
もしかしたら数字への変換が必要になるかもしれません。変換するには、数字の前に `+` を書きます。`Number()`を使う方法もあります。

例: `+process.argv[2]` または `Number(process.argv[2])`

`process.argv` の要素は全て string ですので注意してください。もしかしたら数字への変換が必要になるかもしれません。変換するには、数字の前に `+` を書きます。`Number()`を使う方法もあります。例: `+process.argv[2]` または `Number(process.argv[2])`
`{appname} verify program.js` で、アプリが正しく動くかどうか確かめられます。{appname} はあなたのアプリの実行時に引数を渡します

`{appname} verify program.js` で、アプリが正しく動くかどうか確かめられます。{appname} はあなたのアプリの実行時に引数を渡します。単純にアプリを実行する方法もあります: `{appname} run program.js``run` を使うと各ステップのためのテスト設定を呼び出して実行することが出来ます。
単純にアプリを実行する方法もあります: `{appname} run program.js``run` を使うと各ステップのためのテスト設定を呼び出して実行することが出来ます。

----------------------------------------------------------------------
23 changes: 14 additions & 9 deletions exercises/filtered_ls/problem.ja.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
拡張子のフィルタを使ってファイルリストをコンソールに出すアプリを書いてください。アプリの一つ目の引数はフォルダーのパスです(例えば `/あなた/の/フォルダー/`)。 二つ目の引数でフィルタしたい拡張子を指定します
拡張子によってフィルタしたファイルリストをコンソールに出力するアプリを書いてください

例えば`"txt"` が二つ目の引数だったら*後ろに `.txt` *がついてあるだけファイルのリストを表示しないといけません。メモ:二つ目の引数は `"."` プレフィックスがありません
1つ目の引数はフォルダのパスです(例えば `/あなた/の/フォルダー/`)。 2つ目の引数でフィルタする拡張子を指定します

コンソールにそのリストを出してください。一つのファイル名は一行。 **非同期**I/O を使ってください。
例えば: 2つ目の引数が `"txt"` のときは*後ろに `.txt` *がついているファイルだけを表示しなければいけません。
メモ:2つ目の引数は `"."` プレフィックスがありません。

コンソールにフィルタリングしたファイルのリストを出力してください。
1行につき1つのファイル名を出力します。 また、**非同期**I/O を使ってください。

----------------------------------------------------------------------
## HINTS
## ヒント

`fs.readdir()` という関数の一つ目の引数はパスです。コールバックは二つ目です。コールバックはこのようになります:
`fs.readdir()` 関数の1つ目の引数はディレクトリへのパスです。2つ目の引数はコールバック関数です。
コールバック関数は以下のようになります:

```js
function callback (err, list) { /* ... */ }
```

`list` はファイル名の `String` `Array` です。
`list` はファイル名の `String` が格納された `Array` です。

`fs` モジュールのドキュメントはブラウザーでこのリンクを見てください:
`fs` モジュールのドキュメントはこのリンクをブラウザで見てください:
{rootdir:/node_apidoc/fs.html}

Node の `path` も役に立つかもしれません。とくに `extname` の関数
Node の `path` も役に立つかもしれません。特に `extname` の関数が使えます

`path` モジュールのドキュメントはブラウザーでこのリンクを見てください:
`path` モジュールのドキュメントはこのリンクをブラウザで見てください:
{rootdir:/node_apidoc/path.html}

----------------------------------------------------------------------
9 changes: 6 additions & 3 deletions exercises/hello_world/problem.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,27 @@
----------------------------------------------------------------------
## ヒント

Node.js のアプリを作るには `.js` のついた新規ファイルを作って JavaScript を書くだけです。書いた後は `node` コマンドを使って実行します。例えば:
Node.js のアプリを作るためには `.js` という拡張子を持つファイルを新規に作って JavaScript を書くだけです。
アプリを書いた後は `node` コマンドを使って実行します。
例:

```sh
$ node program.js
```

ブラウザに出力するときと同じように、コンソールに出力することができます
ブラウザで出力する時と同じようにコンソールに出力することができます

```js
console.log("text")
```

先のステップに進むためには、あなたの書いたプログラムが正しいか、テストをする必要があります。
アプリができたら以下のコマンドを実行してください:

```sh
$ {appname} verify program.js
```

先に進むためには、あなたの書いたプログラムが正しいか、テストを受ける必要があります。テスト結果がレポートされ、合格していれば、ステータスが **Completed** になります
テスト結果がレポートされ、合格していれば、メニュー画面のステータスが **Completed** に変化します

----------------------------------------------------------------------
23 changes: 14 additions & 9 deletions exercises/http_client/problem.ja.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,42 @@
一つ目の引数として指定された URL に、 HTTP で GET を送る (※)アプリを書いてください。
そのリクエストに対するレスポンスを含む全ての`"data"`イベントの文字列を、**一つずつ**改行で区切って、コンソールに書き出してください。
1つ目の引数として指定された URL に、 HTTP で GET を送信する (※)アプリを書いてください。

※これからは「GET リクエスト」と記述します。
そのリクエストに対するレスポンスを含む全ての`"data"`イベントで受け取った文字列を、**1つずつ**改行で区切って、コンソールに書き出してください。

※ これからは「GET リクエスト」と記述します。

----------------------------------------------------------------------
## ヒント

この例題のために `http` の Node.js モジュールが必要になります。

`http` モジュールのドキュメントはブラウザーでこのリンクを見てください:
`http` モジュールのドキュメントはこのリンクをブラウザで見てください:
{rootdir:/node_apidoc/http.html}

`http.get()` という関数は簡単な GET リクエストのショートカットです。解決方法をシンプルするのに役に立つと思います。 `http.get()` の一つ目の引数は GET リクエストの URL です。二つ目はコールバック関数です。
`http.get()` という関数は簡単な GET リクエストのショートカットです。解決方法をシンプルするのに役に立つと思います。
`http.get()` の1つ目の引数は GET リクエストの URL です。2つ目はコールバック関数です。

```js
http.get(url, callback)
```

`http` はよくあるイディオム `(error, result)` と違って以下のようなコールバックになります
`http` はよくあるイディオム `(error, result)` と違って以下のようなコールバック関数となっています

```js
function callback (response) { /* ... */ }
```

`response` のオブジェクトは Node.js の **Stream** です。Stream はイベントを発行するオブジェクトと考えてよいです。 Stream における大切な三つのイベントは: `data``error``end` です。各イベント時にデータを受け取る為には、以下のようにリスナーを設定します。
`response` のオブジェクトは Node.js の **Stream** です。Stream はイベントを発行するオブジェクトと考えてよいです。
Stream における大切な3つのイベントは: `data``error``end` です。
各イベント時にデータを受け取る為には、以下のようにリスナを設定します。

```js
response.on("data", function (data) { /* ... */ })
```

`data` イベントは処理できるデータチャンク(※)が現れた時に発行されます。チャンクのサイズはデータの出元によって変わります
`data` イベントは処理できるデータチャンク(※)が現れた時に発行されます。チャンクのサイズはデータによって変わります
※ データの一部分。Stream ではこれが断続的に提供されます。

`http.get()``response` の Stream オブジェクトには `setEncoding()` という関数があります。それを `utf8` という値を使って呼ぶとデータイベントの `Buffer` の代わりに文字列が渡ってきます。
`http.get()``response` の Stream オブジェクトには `setEncoding()` という関数があります。
それを `utf8` という値を使って呼ぶとデータイベントの `Buffer` の代わりに文字列が渡ってきます。

----------------------------------------------------------------------
30 changes: 15 additions & 15 deletions exercises/http_collect/problem.ja.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,43 @@
一つ目のコマンドラインの引数が URL 文字列である、 HTTP のデーターをロード (※)するアプリを書いてください。サーバからの**全て**(最初のイベントだけではなく)のデータを集めて二行をコンソールに書き出してください
1つ目のコマンドラインの引数は URL 文字列である。 そのURL文字列を使ってHTTP のデーターをロード (※)するアプリを書いてください。

一行目は文字数です。二行目はサーバから受け取った全てのデータを文字列で出力してください。
サーバから**全て**(最初のイベントだけではなく)のデータを集め、次の2行をコンソールに出力して下さい。

1行目は文字数です。2行目はサーバから受け取った全てのデータを文字列で出力してください。

----------------------------------------------------------------------
## ヒント

二つの方法があります
2つの方法があります

**1)** 全ての `data` イベントの結果を集めて `end` イベントの時に書き出してください。
**1)** 全ての `data` イベントの結果をまとめて `end` イベントの時に書き出してください。

**2)** サードパーティのパッケージを使ってもいいです。以下の二つのパッケージはこの問題に関して役に立ちます`bl` (Buffer List) `concat-stream`。いずれかを選んでください
**2)** サードパーティ製のパッケージを使っても良いです。以下の2つのパッケージはこの問題に関して役に立ちます`bl` (Buffer List) `concat-stream`のいずれかを選んでください

<http://npm.im/bl>
<http://npm.im/concat-stream>

Node.js のパッケージをインストールするために Node.js のパッケージ管理ツールである `npm`を使ってください。コマンドラインに以下を書いてください:
Node.js のパッケージをインストールするために Node.js のパッケージ管理ツールである `npm`を使ってください。
コマンドラインに以下を書いてください:

```sh
$ npm install bl
```

上記を実行すると、指定されたパッケージの一番新しいバーションをダウンロードして `node_modules` という新しいフォルダに格納します。そのフォルダにあるパッケージは `require` を使って `.` の接頭辞なしで利用できます:
上記のコマンド実行すると、指定されたパッケージの一番新しいバーションをダウンロードして `node_modules` という新しいフォルダに格納します。
そのフォルダにあるパッケージは `require` を使って `.` の接頭辞なしで利用できます:

```js
var bl = require('bl')
```

メモ: Node.js のロードの優先順位は、まずNode.jsのコア、その後は上述の `node_modules`のフォルダの順です。

インターネットに接続出来ない場合には `node_modules` に{rootdir:/node_modules}のフォルダのパッケージをコピーしてください:
インターネットに接続できない場合には `node_modules` に{rootdir:/node_modules}のフォルダのパッケージをコピーしてください:

{rootdir:/node_modules/bl}
{rootdir:/node_modules/concat-stream}

`bl` にも `concat-stream` にも `Stream` を入力として *pipe* (※) できます。以下の例では`Stream` が終わってからコールバックが呼ばれています:
※ pipe: Stream中に流れるデータが次々と橋渡しされる関数を登録すること
`bl` `concat-stream` `Stream` を入力として *pipe* (※) することができます。以下の例では`Stream` が終わってからコールバックが呼ばれています:
※ pipe: Stream中に流れるデータを次々と橋渡しする関数を登録すること

```js
response.pipe(bl(function (err, data) { /* ... */ }))
Expand All @@ -44,12 +47,9 @@ response.pipe(concatStream(function (data) { /* ... */ }))

メモ:もしかしたら `Buffer` から `data.toString()` をつかって文字列に変換する必要があるかもしれません。

モジュールのドキュメントは `{appname}` と一緒にインストールされているのでブラウザーでこのリンクを見てください:
モジュールのドキュメントは `{appname}` と一緒にインストールされているので、このリンクをブラウザで見てください:

{rootdir:/docs/bl.html}
{rootdir:/docs/concat-stream.html}

----------------------------------------------------------------------



Loading

0 comments on commit 770fd46

Please sign in to comment.