* [クイックスタート](tutorial/quick-start.md)
* [デスクトップ環境の統合](tutorial/desktop-environment-integration.md)
* [オンライン/オフライン イベントの検知](tutorial/online-offline-events.md)
+
+## API リファレンス
+
+* [概要](api/synopsis.md)
--- /dev/null
+# 概要
+
+Electron では全ての [Node.js のビルトインモジュール](http://nodejs.org/api/) 利用可能です。また、サードパーティの Node モジュール ([ネイティブモジュール](../tutorial/using-native-node-modules.md)も含む) も完全にサポートされています。
+
+Electron はネイティブのデスクトップアプリケーション開発のための幾つかの追加のビルトインモジュールも提供しています。メインプロセスでだけ使えるモジュールもあれば、レンダラプロセス(ウェブページ)でだけ使えるモジュール、あるいはメインプロセス、レンダラプロセスどちらでも使えるモジュールもあります。
+
+基本的なルールは:[GUI][gui]、または低レベルのシステムに関連するモジュールはメインモジュールでだけ利用できるべきです。これらのモジュールを使用できるようにするためには [メインプロセス対レンダラプロセス][main-process] スクリプトの概念を理解する必要があります。
+
+メインプロセススクリプトは普通の Node.js スクリプトのようなものです:
+
+```javascript
+const electron = require('electron');
+const app = electron.app;
+const BrowserWindow = electron.BrowserWindow;
+
+var window = null;
+
+app.on('ready', function() {
+ window = new BrowserWindow({width: 800, height: 600});
+ window.loadURL('https://github.com');
+});
+```
+
+レンダラプロセスは Node モジュールを使うための追加機能を除いて、通常のウェブページとなんら違いはありません:
+
+```html
+<!DOCTYPE html>
+<html>
+<body>
+<script>
+ const remote = require('electron').remote;
+ console.log(remote.app.getVersion());
+</script>
+</body>
+</html>
+```
+
+アプリケーションを実行については、[アプリを実行する](../tutorial/quick-start.md#アプリを実行する)を参照してください。
+
+## 分割代入
+
+CoffeeScript か Babel を使っているなら、[分割代入][desctructuring-assignment]でビルトインモジュールの使用をより簡単にできます:
+
+```javascript
+const {app, BrowserWindow} = require('electron')
+```
+
+しかし、素の JavaScript を使っている場合、Chrome が ES6 を完全サポートするまで待たなければいけません。
+
+## Disable old styles of using built-in modules
+
+v0.35.0 以前は全てのビルトインモジュールは `require('module-name')` の形式で使われなければいけません。この形式は[多くの欠点][issue-387]がありますが、古いアプリケーションとの互換性のためにまだサポートしています。
+
+古い形式を完全に無効にするために、環境変数 `ELECTRON_HIDE_INTERNAL_MODULES` を設定できます:
+
+```javascript
+process.env.ELECTRON_HIDE_INTERNAL_MODULES = 'true'
+```
+
+もしくは `hideInternalModules` API を呼んでください:
+
+```javascript
+require('electron').hideInternalModules()
+```
+
+[gui]: https://en.wikipedia.org/wiki/Graphical_user_interface
+[main-process]: ../tutorial/quick-start.md#メインプロセス
+[desctructuring-assignment]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
+[issue-387]: https://github.com/atom/electron/issues/387
## Electronは、いつ最新のNode.jsにアップグレードされますか?
-Node.jsの新しいバージョンがリリースされたとき、とても頻繁に発生している新しいNode.jsバージョンで取り込まれたバグによる影響を避けるために、ElectronのNode.jsをアップグレードする前に、通常、約1カ月待ちます。
+Node.js の新しいバージョンがリリースされたとき、私たちは Electron の Node.js を更新するのを通常約1か月待ちます。そのようにして、とても頻繁に発生している、新しい Node.js バージョンによって取り込まれたバグによる影響を避けることができます。
-通常、Node.jsの新しい機能はV8のアップグレードによってもたらされ、 ElectronはChromeブラウザーに搭載されているV8を使用しているので、
-新しいNode.jsの重要な新しいJavaScript機能はElectronでは、すでに導入されています。
+通常、Node.js の新しい機能は V8 のアップグレードによってもたらされますが、Electron は Chrome ブラウザーに搭載されている V8 を使用しているので、新しい Node.js に入ったばかりのピカピカに新しい JavaScript 機能は Electron ではたいてい既に導入されています。
-## 数分後、アプリのWindow/trayが表示されなくなります
+## 何分か経つと、アプリの Window/tray が消えてしまいます
-これは、Window/trayを格納するのに使用している変数がガベージ コレクションされたときに発生します。
+これは、Window/trayを格納するのに使用している変数がガベージコレクトされたときに発生します。
この問題に遭遇した時には、次のドキュメントを読むことをお勧めします。
* [Memory Management][memory-management]
* [Variable Scope][variable-scope]
-ã\82\82ã\81\97ç°¡å\8d\98ã\81«ä¿®æ£ã\81\97ã\81\9fã\81\84å ´å\90\88ã\81¯ã\80\81ã\82°ã\83ã\83¼ã\83\90ã\83«å¤\89æ\95°ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\82³ã\83¼ã\83\89ã\82\92å¤\89æ\9b´ã\81\97ã\81¾ã\81\99ã\80\82
+ã\82\82ã\81\97ç°¡å\8d\98ã\81«ä¿®æ£ã\81\97ã\81\9fã\81\84å ´å\90\88ã\81¯ã\80\81ã\82³ã\83¼ã\83\89ã\82\92以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ä¿®æ£ã\81\97ã\81¦å¤\89æ\95°ã\82\92ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81«ã\81\99ã\82\8bã\81¨è\89¯ã\81\84ã\81§ã\81\97ã\82\87ã\81\86ï¼\9a
変更前:
## ElectronでjQuery/RequireJS/Meteor/AngularJSを使用できません
-Electronに組み込まれているNode.jsの影響で, `module`, `exports`, `require`のようなシンボルがDOMに追加されています。いくつかのライブラリで、追加しようとしているシンボルと同じ名前があり、これが原因で問題が発生します。
+Electronに組み込まれているNode.jsの影響で, `module`, `exports`, `require`のようなシンボルがDOMに追加されています。このため、いくつかのライブラリでは同名のシンボルを追加しようとして問題が発生することがあります。
+
これを解決するために、Electronに組み込まれているnodeを無効にすることができます。
```javascript
# オンライン/オフライン イベントの検知
-オンラインとオフラインイベントの検知は、標準のHTML 5 APIを使用して、状況表示を実装できます。次の例を見てみましょう。
+オンラインとオフラインイベントの検知は、以下の例で示すように、標準のHTML 5 APIを使用してレンダラプロセスに実装することができます。
_main.js_
</html>
```
-ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81\9dã\82\8cã\82\89ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\81«å\8f\8då¿\9cã\81\99ã\82\8bã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81\8cã\81\82ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81¾ã\81\9bã\82\93ã\80\82ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81`navigator` ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82\82ã\81\9fã\81\9aã\80\81ç\9b´æ\8e¥ã\81\9dã\82\8cã\82\89ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\82\92æ¤\9cç\9f¥ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82Electronã\81®å\86\85é\83¨ã\83\97ã\83ã\82»ã\82¹ã\82³ã\83\9fã\83¥ã\83\8bã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\84ã\83¼ã\83«ã\82\92使ç\94¨ã\81\97ã\81¦ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\81¯ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81«è»¢é\80\81ã\81\95ã\82\8cã\80\81å¿\85è¦\81ã\81\8cã\81\82ã\82\8cã\81°ã\83\8fã\83³ã\83\89ã\83«できます。次の例を見てみましょう。
+ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\81«å¿\9cç\94ã\81\97ã\81\9fã\81\84ã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81¾ã\81\9bã\82\93ã\80\82ã\81\97ã\81\8bã\81\97ã\80\81ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81¯ `navigator` ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ\8c\81ã\81\9fã\81ªã\81\84ã\81\9fã\82\81ã\80\81ç\9b´æ\8e¥ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\82\92æ¤\9cç\9f¥ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82Electronã\81® inter-process communication ã\83¦ã\83¼ã\83\86ã\82£ã\83ªã\83\86ã\82£ã\82\92使ç\94¨ã\81\97ã\81¦ã\80\81ã\82ªã\83³ã\83©ã\82¤ã\83³ã\83»ã\82ªã\83\95ã\83©ã\82¤ã\83³ã\82¤ã\83\99ã\83³ã\83\88ã\82\92ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81«è»¢é\80\81ã\81\97ã\80\81å¿\85è¦\81ã\81«å¿\9cã\81\98ã\81¦æ\89±ã\81\86ã\81\93ã\81¨ã\81\8cできます。次の例を見てみましょう。
_main.js_