Merge pull request #4165 from yamatoya/master

Add Japanes translated docs.
This commit is contained in:
Cheng Zhao 2016-01-20 15:28:17 -07:00
commit ee2d2cc532
5 changed files with 457 additions and 0 deletions

View file

@ -0,0 +1,65 @@
# desktopCapturer
`desktopCapturer`モジュールは`getUserMedia`でキャプチャーするのに使える利用可能なソースを取得するのに使われます。
```javascript
// In the renderer process.
var desktopCapturer = require('electron').desktopCapturer;
desktopCapturer.getSources({types: ['window', 'screen']}, function(error, sources) {
if (error) throw error;
for (var i = 0; i < sources.length; ++i) {
if (sources[i].name == "Electron") {
navigator.webkitGetUserMedia({
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: sources[i].id,
minWidth: 1280,
maxWidth: 1280,
minHeight: 720,
maxHeight: 720
}
}
}, gotStream, getUserMediaError);
return;
}
}
});
function gotStream(stream) {
document.querySelector('video').src = URL.createObjectURL(stream);
}
function getUserMediaError(e) {
console.log('getUserMediaError');
}
```
`navigator.webkitGetUserMedia`用の制限されたオブジェクトコールを作成し、`desktopCapturer`からソースを使用するのなら、`chromeMediaSource`は`"desktop"`を設定し、`audio`は`false`を設定しなければなりません。
全てのデスクトップから音とビデオをキャプチャーしたいなら、`chromeMediaSource``"screen"`、`audio` に `true`.を設定します。このメソッドを使うとき、`chromeMediaSourceId`は指定できません。
## メソッド
`desktopCapturer`モジュールは次のメソッドを持ちます。
### `desktopCapturer.getSources(options, callback)`
* `options` Object
* `types` Array - キャプチャーされるデスクトップソースの種類一覧の文字列配列で、 提供される種類は`screen` と `window`です。
* `thumbnailSize` Object (オプション) - サムネイルがスケールすべきサイズの指定で、既定では`{width: 150, height: 150}` です。
* `callback` Function
全てのデスクトップソールを取得するためのリクエストを開始し、リクエストが完了すると、`callback`は`callback(error, sources)` でコールされます。
`sources`は、`Source`オブジェクトの配列で、それぞれの`Source`はキャプチャーしたスクリーンか、1つのウィンドウを示し、次のプロパティを持ちます。
* `id` String - The id of the captured window or screen used in
`navigator.webkitGetUserMedia`で使われるキャプチャーしたウィンドウか画面のidです。`window:XX` か`screen:XX`のようなフォーマットで、`XX`はランダムに生成された数字です。
* `name` String - キャプチャーする画面かウィンドウの説明名ソースが画面なら名前は`Entire Screen`で、`Screen <index>`はウィンドウで、名前はウィンドウのタイトルです。
* `thumbnail` [NativeImage](NativeImage.md) - サムネイル画像
**Note:** `source.thumbnail`のサイズはいつも`options`の`thumnbailSize`と同じ保証はありません。画面またはウィンドウのサイズに依存します。

View file

@ -0,0 +1,79 @@
# ipcMain
`ipcMain`モジュールは[EventEmitter](https://nodejs.org/api/events.html)クラスのインスタンスです。メインプロセスで使うと、レンダラ―プロセス(ウェブページ)から非同期、同期敵にメッセージ送信できます。レンダラ―から送信されたメッセージはこのモジュールに出力されます。
## メッセージ送信
メインプロレスからレンダラ―プロセスへメッセージ送信を可能にします。さらなる情報は、[webContents.send](web-contents.md#webcontentssendchannel-arg1-arg2-) を参照してください。
* メッセージを送信するとき、イベント名は`channel`です。
* 同期的にメッセージを返信するために、`event.returnValue`を設定する必要があります。
* 送信者に非同期に戻して送信するために、 `event.sender.send(...)`を使えます。
レンダラーとメインプロセス間でメッセージの送信とハンドリングをする例です:
```javascript
// In main process.
const ipcMain = require('electron').ipcMain;
ipcMain.on('asynchronous-message', function(event, arg) {
console.log(arg); // prints "ping"
event.sender.send('asynchronous-reply', 'pong');
});
ipcMain.on('synchronous-message', function(event, arg) {
console.log(arg); // prints "ping"
event.returnValue = 'pong';
});
```
```javascript
// In renderer process (web page).
const ipcRenderer = require('electron').ipcRenderer;
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong"
ipcRenderer.on('asynchronous-reply', function(event, arg) {
console.log(arg); // prints "pong"
});
ipcRenderer.send('asynchronous-message', 'ping');
```
## メッセージ受信
`ipcMain`モジュールが持つイベント受信用のメソッドです。
### `ipcMain.on(channel, callback)`
* `channel` String - イベント名
* `callback` Function
イベントが発生すると、`callback`が`event`と任意の引数でコールされます。
### `ipcMain.removeListener(channel, callback)`
* `channel` String - イベント名
* `callback` Function - 使用したのと同じ関数への参照です
`ipcMain.on(channel, callback)`
一度メッセージを受信すると、もうコールバックをアクティブにしたくなく、何らかの理由でメッセージ送信を単に止めるには、この関数が指定したチャンネルのコールバックハンドラーを削除します。
### `ipcMain.removeAllListeners(channel)`
* `channel` String - The event name.
このipcチャンネルの *全ての* ハンドラーを削除します。
### `ipcMain.once(channel, callback)`
ハンドラーの実行のために`ipcMain.on()`の代わりにこれを使うと、一度だけ発生することを意味し、`callback`の一回のコールの後にアクティブにしないのと同じです。
## IPC Event
`callback`に渡される`event`オブジェクトには次のメソッドがあります。
### `event.returnValue`
値にこれを設定すると同期メッセージを返します。
### `event.sender`
送信したメッセージ`webContents`を返すと、非同期にメッセージを返信するために`event.sender.send`をコールできます。さらなる情報は、[webContents.send](web-contents.md#webcontentssendchannel-arg1-arg2-) を見てください。

View file

@ -0,0 +1,66 @@
# ipcRenderer
`ipcRenderer`モジュールは[EventEmitter](https://nodejs.org/api/events.html) クラスのインスタンスです。レンダープロセス(ウェブページ)からメインプロセスに同期、非同期にメッセージを送信できるメソッドを提供します。メインプロセスから返答を受け取ることもできます。
コード例は [ipcMain](ipc-main.md) をみてください。
## メッセージの受信
`ipcRenderer`モジュールは、イベントを受信するための次のメソッドを持ちます:
### `ipcRenderer.on(channel, callback)`
* `channel` String - イベント名
* `callback` Function
イベントが発生したとき、任意の引数と `event`オブジェクトで`callback`をコールします。
### `ipcRenderer.removeListener(channel, callback)`
* `channel` String - イベント名
* `callback` Function - 使用したのと同じ関数への参照
`ipcRenderer.on(channel, callback)`
一度メッセージを受信すると、もうコールバックをアクティブにしたくなく、何らかの理由でメッセージ送信を単に止めるには、この関数が指定したチャンネルのコールバックハンドラーを削除します。
### `ipcRenderer.removeAllListeners(channel)`
* `channel` String - The event name.
このipcチャンネルの *全ての* ハンドラーを削除します。
### `ipcMain.once(channel, callback)`
ハンドラーの実行のために`ipcMain.on()`の代わりにこれを使うと、一度だけ発生することを意味し、`callback`の一回のコールの後にアクティブにしないのと同じです。
## メッセージ送信
`ipcRenderer`モジュールは、イベントを送信するための次のメソッドを持ちます:
### `ipcRenderer.send(channel[, arg1][, arg2][, ...])`
* `channel` String - イベント名
* `arg` (optional)
`channel`
`channel`経由でメインプロセスに非同期にイベントを送信し、任意の引数を送信できます。メインプロセスは`ipcMain`で`channel`を受信することでハンドルします。
### `ipcRenderer.sendSync(channel[, arg1][, arg2][, ...])`
* `channel` String - イベント名
* `arg` (optional)
`channel`経由でメインプロセスに非同期にイベントを送信し、任意の引数を送信できます。
メインプロセスは`ipcMain`で`channel`を受信することでハンドルし、 `event.returnValue`を設定してリプライします。
__Note:__ 同期的なメッセージ送信をすると全てのレンダラ―プロセスがブロックされるので、何をしているか理解できない限り、これを使うべきではありません。
### `ipcRenderer.sendToHost(channel[, arg1][, arg2][, ...])`
* `channel` String - イベント名.
* `arg` (optional)
`ipcRenderer.send`のようですが、メインプロセスの代わりにホストに`<webview>`エレメントにイベントを送信します。

View file

@ -0,0 +1,147 @@
# nativeImage
Electronでは、画像を取得するAPI用に、ファイルパスまたは`nativeImage`インスタンスを渡します。`null`を渡すと、空のイメージが使われます。
例えば、トレイを作成したり、ウィンドウアイコンを設定する時、`String`としてイメージファイルパスを渡します:
```javascript
var appIcon = new Tray('/Users/somebody/images/icon.png');
var window = new BrowserWindow({icon: '/Users/somebody/images/window.png'});
```
もしくは、`nativeImage`を返すクリップボードからイメージを読み込みます:
```javascript
var image = clipboard.readImage();
var appIcon = new Tray(image);
```
## 対応しているフォーマット
今のところ、`PNG` と `JPEG`の画像フォーマットに対応しています。透明や可逆圧縮に対応しているので、`PNG` を推奨します。
Windowsでは、ファイルパスから`ICO`アイコンをロードできます。
## 高解像度画像
高DPIに対応しているプラットフォームで、高解像度としてマークするためにイメージの基本ファイル名の後に`@2x`を追加できます。
例えば、`icon.png`は一般的な解像度の通常の画像で、`icon@2x.png`は、倍のDPI密度を持つ高解像度画像として扱われます。
同時に異なるDPI密度をディスプレイで対応したい場合、同じフォルダーに異なるサイズの画像を置き、DPIサフィックスなしでファイル名を使用します。
例:
```text
images/
├── icon.png
├── icon@2x.png
└── icon@3x.png
```
```javascript
var appIcon = new Tray('/Users/somebody/images/icon.png');
```
次のDPIサフィックスに対応しています:
* `@1x`
* `@1.25x`
* `@1.33x`
* `@1.4x`
* `@1.5x`
* `@1.8x`
* `@2x`
* `@2.5x`
* `@3x`
* `@4x`
* `@5x`
## テンプレート画像
テンプレート画像は、黒とクリアな色(とアルファチャンネル)で成り立ちます。テンプレート画像は画像単体での使用は想定しておらず、通常は最終的にほしい画像を生成するためにほかのコンテンツと合成します。
もっとも一般的なケースは、ライトとダークなメニュバー両方に切り替え可能なメニュバーアイコン用にテンプレート画像を使います。
**Note:** テンプレート画像は、OS Xでのみサポートしています。
テンプレート画像として画像をマークするために、ファイル名の最後に`Template`をつけます。
例:
* `xxxTemplate.png`
* `xxxTemplate@2x.png`
## メソッド
`nativeImage`クラスは次のメソッドを持ちます:
### `nativeImage.createEmpty()`
空の`nativeImage` インスタンスを生成します。
### `nativeImage.createFromPath(path)`
* `path` String
`path`で指定したファイルから新しい`nativeImage`を生成します。
### `nativeImage.createFromBuffer(buffer[, scaleFactor])`
* `buffer` [Buffer][buffer]
* `scaleFactor` Double (optional)
`buffer`から新しい`nativeImage`インスタンスを生成します。既定では、`scaleFactor`は1.0です。
### `nativeImage.createFromDataURL(dataURL)`
* `dataURL` String
`dataURL`から新しい `nativeImage`インスタンスを生成します。
## インスタンスメソッド
`nativeImage`のインスタンス上で提供されるメソッド:
```javascript
const nativeImage = require('electron').nativeImage;
var image = nativeImage.createFromPath('/Users/somebody/images/icon.png');
```
### `image.toPng()`
`PNG`エンコードされた画像を含む[Buffer][buffer]を返します。
### `image.toJpeg(quality)`
* `quality` Integer (**required**) - Between 0 - 100.
`JPEG`エンコードされた画像を含む[Buffer][buffer]を返します。
### `image.toDataURL()`
画像のURLデータを返します。
### `image.isEmpty()`
画像が空かどうかをブーリアン値で返します。
### `image.getSize()`
画像サイズを返します。
[buffer]: https://nodejs.org/api/buffer.html#buffer_class_buffer
### `image.setTemplateImage(option)`
* `option` Boolean
テンプレート画像としてマークします。
### `image.isTemplateImage()`
イメージがテンプレート画像かどうかをブーリアン値で返します。

View file

@ -0,0 +1,100 @@
# webFrame
`web-frame`モジュールは現在のウェブページンのレンダリングのカスタマイズをできるようにします。
現在のページの倍率を200%にする例です。
```javascript
var webFrame = require('electron').webFrame;
webFrame.setZoomFactor(2);
```
## メソッド
`web-frame`モジュールは次のメソッドを持ちます:
### `webFrame.setZoomFactor(factor)`
* `factor` Number - 拡大倍数
指定した倍数に拡大倍数を変更します。拡大倍数は、拡大率を100で割った数字なので、300%だと3.0です。
### `webFrame.getZoomFactor()`
現在の拡大倍数を返します。
### `webFrame.setZoomLevel(level)`
* `level` Number - 拡大レベル
指定したレベルに拡大レベルを変更します。オリジナルサイズは0で、1 つ上下させると20%拡大か縮小になり、既定の制限ではオリジナルサイズの300%と50%です。
### `webFrame.getZoomLevel()`
返事あの拡大レベルを返します。
### `webFrame.setZoomLevelLimits(minimumLevel, maximumLevel)`
* `minimumLevel` Number
* `maximumLevel` Number
最大と最小の拡大レベルを設定します。
### `webFrame.setSpellCheckProvider(language, autoCorrectWord, provider)`
* `language` String
* `autoCorrectWord` Boolean
* `provider` Object
inputフィールドやtextエリアでスペルチェックの提供を設定します。
`provider`は、単語が正しいスペルかどうかを返す`spellCheck`メソッドを持つオブジェクトでなければなりません。
プロバイダーとして[node-spellchecker][spellchecker]を使用する例です:
```javascript
webFrame.setSpellCheckProvider("en-US", true, {
spellCheck: function(text) {
return !(require('spellchecker').isMisspelled(text));
}
});
```
### `webFrame.registerURLSchemeAsSecure(scheme)`
* `scheme` String
セキュアなスキーマーとして`scheme`を登録します。
セキュアなスキーマーは、今テンスの混在警告をトリガーしません。例えば、アクティブなネットワーク攻撃では破壊できないので`https`と`data`はセキュアなスキーマーです。
### `webFrame.registerURLSchemeAsBypassingCSP(scheme)`
* `scheme` String
リソースは現在のページのコンテンツセキュリティポリシーにかかわらず `scheme`からロードします。
### `webFrame.registerURLSchemeAsPrivileged(scheme)`
* `scheme` String
セキュアとして`scheme`を登録し、リソースの今テンスセキュリティポリシーを回避して、ServiceWorkerの登録とAPIのフェッチをサポートします。
### `webFrame.insertText(text)`
* `text` String
フォーカスが当たっているエレメントに`text`を挿入します。
### `webFrame.executeJavaScript(code[, userGesture])`
* `code` String
* `userGesture` Boolean (オプション) - 既定では`false`です。
ページで`code`を評価します。
ブラウザウィンドウで、 `requestFullScreen`のようないくつかのHTML APIは、ユーザージェスチャーによってのみ起動できます。`userGesture`を`true` に設定すると、この制限は削除されます。
[spellchecker]: https://github.com/atom/node-spellchecker