└── index.html
```
-`Electron.app` (または Linux上では、`electron`、Windows上では、 `electron.exe`)を実行すると、Electronはアプリケーションを開始します。The `electron` ディレクトリを最終的なユーザーに提供するために配布します。
+`Electron.app` (または Linux上では、`electron`、Windows上では、 `electron.exe`)を実行すると、Electronはアプリケーションを開始します。`electron` ディレクトリを最終的なユーザーに提供するために配布します。
## ファイルにアプリケーションをパッケージングする
すべてのソースコードをコピーすることでアプリケーションを提供する方法とは別に、アプリケーションのソースコードをユーザーに見えるのを避けるために、[asar](https://github.com/atom/asar) にアーカイブしてアプリケーションをパッケージ化することができます。
-`asar`アーカイブを使用するために、`app`フォルダーと置き換え、アーカイブファイルを`app.asar`という名前に変更する必要があり、Electronのリソースディレクトリの下に置くと、Electronはアーカイブを読み込もうとし、それを開始します。
+`app` フォルダの代わりに `asar` アーカイブを使用するためには、アーカイブファイルを `app.asar` という名前に変更し、Electron のリソースディレクトリに以下のように配置する必要があります。すると、Electron はアーカイブを読み込もうとし、それを開始します。
OS X:
[Application packaging](application-packaging.md)で、詳細を確認できます。
-## ダウンローするバイナリのブランド名の変更
+## ã\83\80ã\82¦ã\83³ã\83ã\83¼ã\83\89ã\81\99ã\82\8bã\83\90ã\82¤ã\83\8aã\83ªã\81®ã\83\96ã\83©ã\83³ã\83\89å\90\8dã\81®å¤\89æ\9b´
Electronにバンドルした後、ユーザーに配布する前に、 Electron名を変更したいでしょう。
### OS X
- `Electron.app` を任意の名前に変更でき、次のファイルの `CFBundleDisplayName`と `CFBundleIdentifier`、 `CFBundleName`のフィールドの名前を変更する必要があります。
+`Electron.app` を任意の名前に変更でき、次のファイルの `CFBundleDisplayName`と `CFBundleIdentifier`、 `CFBundleName`のフィールドの名前を変更する必要があります。
* `Electron.app/Contents/Info.plist`
* `Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist`
-Activity Monitorで、`Electron Helper`と表示されるのを避けるために、helper appの名前を変更でき、 helper appの実行ファイルの名前を確認します。
+ヘルパーアプリケーションの名前を変更して、アクティビティモニタに `Electron Helper` と表示されないようにすることもできますが、その際はヘルパーアプリケーションの実行可能ファイルの名前を変更したことを確認してください。
-次のようなappの変更する名前の構造
+名前変更後のアプリケーションの構成は以下の通りです:
```
MyApp.app/Contents
### grunt-build-atom-shell
-マニュアルでは、Electronのコードをダウンロードし、リビルドさせます。一方で、面倒なタスクはこれで自動化できます:
+Electron のコードを手動チェックアウトして再構築するのには複雑な手順が必要ですが、これを自動的に扱うための Grunt タスクが作られています:
[grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell).
-This task will automatically handle editing the 自動処理を管理するのに、`.gyp`ファイルを編集し、ソースからビルドし、新しい実行名に一致したときにはNativeのNodeモジュールをリビルドするようにできます。
+このタスクは自動的に `.gyp` ファイルの編集、ソースからのビルド、そして新しい実行可能ファイル名に一致するようにネイティブの Node モジュールを再構築します。
## パッケージングツール
-マニュアルでパッケージ化するのとは別に、サードパーティのパッケジングツールを選ぶこともできます。
+手動でアプリケーションをパッケージ化する以外の方法として、サードパーティのパッケジングツールを選ぶこともできます。
* [electron-packager](https://github.com/maxogden/electron-packager)
* [electron-builder](https://github.com/loopline-systems/electron-builder)
# アプリケーションのパッケージ化
-Windows上の長いパス名周りの[issues](https://github.com/joyent/node/issues/6960) を軽減させるたり、`require`を若干スピードアップさせたり、 簡単な調査からソースコードを隠したりするために、ソースコードの少しの変更で、[asar][asar]にアーカイブし、パッケージ化を選択することもできます。
+Windows上の長いパス名周りの[問題](https://github.com/joyent/node/issues/6960) を軽減したり、`require`を若干スピードアップしたり、簡単な調査からソースコードを隠したりするために、ソースコードを少々変更して、アプリケーションを [asar][asar] アーカイブとしてパッケージ化することもできます。
## `asar` アーカイブの生成
-[asar][asar] アーカイブは、1つのファイルに連結されたtarライクのシンプルなフォーマットです。Electronは、すべてのファイルをアンパッキングせずに、任意のファイルを読み込めます。
+[asar][asar] アーカイブは、1つのファイルに連結されたtarライクのシンプルなフォーマットです。Electron はファイル全体をアンパックしなくても任意のファイルを読み込めます。
-アプリを `asar` アーカイブにパッケージ化する手順
+アプリを `asar` アーカイブにパッケージ化する手順:
-### 1. asar ã\83\84ã\83¼ã\83«のインストール
+### 1. asar ã\83¦ã\83¼ã\83\86ã\82£ã\83ªã\83\86ã\82£のインストール
```bash
$ npm install -g asar
## `asar` アーカイブを使用する
-Electronには、2組のAPIがあります。Node APIは、Node.jsで提供されており、Web APIは、Chromiumで提供されています。両方のAPIは、 `asar` アーカイブからのファイル読み込みに対応しています。
+Electronには、2組のAPIがあります。Node.js により提供される Node API、そして Chromium により提供される Web API です。どちらの API も `asar` アーカイブからのファイル読み込みに対応しています。
### Node API
-Electronでは特定のパッチで、`fs.readFile` や `require` のようなNode APIは、`asar` アーカイブを仮想ディレクトリのように扱い、ファイルをファイルシステムで通常のファイルのように扱います。
+Electronでは特定のパッチで、`fs.readFile` や `require` のようなNode APIは、`asar` アーカイブを仮想ディレクトリのように扱い、ファイルをファイルシステム上の通常のファイルのように扱います。
例えば、`/path/to` 配下に、`example.asar` アーカイブがあると仮定します:
/static/jquery.min.js
```
-`asar` アーカイブでファイルを読み込む:
+`asar` アーカイブ内のファイルを読み込む:
```javascript
const fs = require('fs');
require('/path/to/example.asar/dir/module.js');
```
- `BrowserWindow`で、`asar`アーカイブで、Webページを表示することができます:
+`BrowserWindow` を使って `asar` アーカイブ内の Web ページを表示することもできます:
```javascript
const BrowserWindow = require('electron').BrowserWindow;
### Web API
Webページで、アーカイブ内のファイルを `file:` プロトコルでリクエストできます。
-Node APIのように、`asar` アーカイブはディレクトリのように扱われます。
+Node API と同様、`asar` アーカイブはディレクトリのように扱われます。
例えば、 `$.get` でファイルを取得できます:
### `asar` アーカイブを通常のファイルのように扱う
-For some cases like verifying the `asar` アーカイブのチェックサムを検証するようなケースで、 `asar` アーカイブのコンテンツをファイルのように扱う必要があります。この目的のために、 `asar` サポートしないオリジナルの `fs` API が提供する ビルトインの `original-fs` モジュールを使用できます。
+アーカイブのチェックサムを検証する等の幾つかのケースでは、`asar` アーカイブをファイルとして読み込む必要があります。この目的のために、 `asar` サポートしないオリジナルの `fs` API を提供するビルトインの `original-fs` モジュールを使用できます。
```javascript
var originalFs = require('original-fs');
originalFs.readFileSync('/path/to/example.asar');
```
-`fs` モジュールで、`asar` サポートを無効化するために、`process.noAsar` を `true` に設定します:
+`process.noAssar` に `true` をセットしても `fs` モジュールの `asar` サポートを無効にすることができます:
```javascript
process.noAsar = true;
## Node API の制限
-Node APIで、`asar` アーカイブが可能な限りディレクトリのように動作するよう懸命に試してますが、Node APIの低レベル性質の影響で、まだ制限があります。
+Node APIで、`asar` アーカイブが可能な限りディレクトリのように動作するよう懸命に試してますが、低レベル環境での Node API に起因した制限が幾つかあります。
### アーカイブは読み取り専用です
-ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bå\85¨ã\81¦ã\81®Node APIã\81¯ã\80\81 `asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81«å¯¾ã\81\97ã\81¦å\8b\95ä½\9cã\81\97ã\81ªã\81\84ã\81®ã\81§ã\80\81ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cません。
+ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81¯ä¿®æ£ã\81§ã\81\8dã\81ªã\81\84ã\81\9fã\82\81ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bå¤\89æ\9b´ã\81§ã\81\8dã\82\8bå\85¨ã\81¦ã\81® Node API ã\81¯ `asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81«å¯¾ã\81\97ã\81¦å\8b\95ä½\9cã\81\97ません。
### 作業ディレクトリは、アーカイブ内のディレクトリに設定できません
-`asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\82\88ã\81\86ã\81«æ\89±ã\82\8fã\82\8cã\82\8bã\81«ã\82\82é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81§ã\81¯å®\9fé\9a\9bã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81§ã\81¯ã\81ªã\81\8fã\80\81`asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96å\86\85ã\81«æ±ºã\81\97ã\81¦ä½\9cæ¥ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯è¨å®\9aã\81\95ã\82\8cã\81¾ã\81\9bã\82\93ã\80\82ã\81\84ã\81\8fã\81¤ã\81\8bã\81®APIã\81®`cwd`ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92è¨å®\9aã\81\97ã\81¦ã\81\84ã\81¦ã\80\81ã\81\9dã\82\8cã\81\8cã\82¨ã\83©ã\83¼原因になります。
+`asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\82\88ã\81\86ã\81«æ\89±ã\82\8fã\82\8cã\82\8bã\81«ã\82\82é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ã\81¯å®\9fé\9a\9bã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\81\9fã\82\81ã\80\81`asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96å\86\85ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92ä½\9cæ¥ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¨ã\81\97ã\81¦è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82å¹¾ã\81¤ã\81\8bã\81® API ã\81® `cwd` ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81«ã\82¢ã\83¼ã\82«ã\82¤ã\83\96å\86\85ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92渡ã\81\99ã\81®ã\82\82å\90\8cæ§\98ã\81«ã\82¨ã\83©ã\83¼ã\81®原因になります。
### いくつかのAPIで追加のアンパッキングがされます
-たいていの `fs` APIは、アンパッキングせずに、 `asar` アーカイブからファイルを読み込んだり、ファイル情報を取得できます。しかし、実際のファイルパスを通してシステムコールに依存するAPIもあり、Electronは必要なファイルを一時ファイルに解凍し、一時ファイルのパスを通して、APIが動作します。これは、APIに多少のオーバーヘッドがあります。
+たいていの `fs` APIは、アンパッキングせずに、 `asar` アーカイブからファイルを読み込んだり、ファイル情報を取得できます。しかし、システムコールに実際のファイルパスを渡すようになっている幾つかの API では、Electron は必要なファイルを一時ファイルとして抽出し、API に一時ファイルのパスを渡して、API が動作するようにします。このため、当該 API には多少のオーバーヘッドがあります。
-追加のアンパッキングに必要なAPIです。:
+追加のアンパッキングに必要なAPIです:
* `child_process.execFile`
* `child_process.execFileSync`
### `fs.stat` の偽の統計情報
-ファイルシステム上にファイルが存在しないので、`fs.stat` および `asar` アーカイブ内のファイルへの関連情報によって返される`Stats` オブジェクトは、推測して生成されます。ファイルサイズの取得とファイルタイプのチェックを除いて、 `Stats` オブジェクトを信頼すべきではありません。
+`asar` アーカイブ内のファイルはファイルシステム上に存在しないので、`fs.stat` および `asar` アーカイブ内のファイルへの関連情報によって返される`Stats` オブジェクトは、推測して生成されます。ファイルサイズの取得とファイルタイプのチェックを除いて、 `Stats` オブジェクトを信頼すべきではありません。
-### `asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96å\86\85ã\81§ã\83\90ã\82¤ã\83\8aã\83ªã\82\92å®\9fè¡\8cã\81\97ã\81¾ã\81\99
+### `asar` ã\82¢ã\83¼ã\82«ã\82¤ã\83\96å\86\85ã\81®ã\83\90ã\82¤ã\83\8aã\83ªã\81®å®\9fè¡\8c
`child_process.exec` と `child_process.spawn` 、 `child_process.execFile` のようなバイナリを実行できるNode APIがあります。しかし、`execFile` だけが、`asar` アーカイブ内でのバイナリ実行をサポートしています。
-`exec` と `spawn` は、インプットを `file` の代わりに `command` を受け取り、`command` はシェル配下で実行されます。コマンドがasar アーカイブ内のファイルを使うかどうかを決定するための信頼できる方法はありません。影響なしで、コマンドでパスを置き換えることができるかどうかを確認することはできません。
+なぜならば、`exec` と `spawn` は入力として `file` の代わりに `command` を受け取り、`command` はシェル配下で実行されるからです。コマンドが asar アーカイブ内のファイルを使うかどうかを決定するための信頼できる方法はありませんし、そうするとしてもコマンドで使うファイルパスを副作用なしに置き換えることができるかどうかを確認することはできません。
-## アンパッキングする `asar` アーカイブ内のファイルを追加する
+## `asar` アーカイブ内のファイルをアンパックして追加
-ä¸\8aè¨\98ã\81®ã\82\88ã\81\86ã\81«ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®Node APIã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\95ã\81\99ã\81¨ã\81\8dã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\83\91ã\82¹ã\81¸ã\82¢ã\83³ã\83\91ã\83\83ã\82¯ã\81\97ã\81¾ã\81\99ã\80\82パフォーマンス問題は別として、ウィルススキャナーのアラートにつながる可能性があります。
+ä¸\8aè¨\98ã\81®ã\82\88ã\81\86ã\81«ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®Node APIã\81\8cå\91¼ã\81°ã\82\8cã\82\8bã\81¨ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¢ã\83³ã\83\91ã\83\83ã\82¯ã\81\97ã\81¾ã\81\99ã\81\8cï¼\8cパフォーマンス問題は別として、ウィルススキャナーのアラートにつながる可能性があります。
-これに対する対応として、`--unpack` オプションを使用して、アーカイブを作成する際に、いくつかのファイルをアンパックできます。例えば、ネイティブモジュールの共有ライブラリを除きます。
+これに対応するために、`--unpack` オプションを使用して、アーカイブを作成する際に、いくつかのファイルをアンパックできます。例えば、ネイティブモジュールの共有ライブラリを除く場合:
```bash
$ asar pack app app.asar --unpack *.node
```
-ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\81\9få¾\8cã\80\81`app.asar` ã\81¨ã\81¯å\88¥ã\81«ã\80\81ã\82¢ã\83³ã\83\91ã\83\83ã\82¯ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\93ã\81 `app.asar.unpacked` ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81\8cç\94\9fæ\88\90ã\81\95ã\82\8cã\80\81ユーザーに提供するときには、`app.asar` と一緒にコピーしなければなりません。
+ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\81\9få¾\8cã\80\81`app.asar` ã\81¨ã\81¯å\88¥ã\81«ã\80\81ã\82¢ã\83³ã\83\91ã\83\83ã\82¯ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\93ã\81 `app.asar.unpacked` ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81\8cç\94\9fæ\88\90ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82ユーザーに提供するときには、`app.asar` と一緒にコピーしなければなりません。
[asar]: https://github.com/atom/asar