Revert "Update APIs, check grammars"
This reverts commit d1eb971263f72deae84541d12b3bdd6d5972365a.
This commit is contained in:
parent
3b2f3c3152
commit
eb81810a52
19 changed files with 232 additions and 235 deletions
|
@ -67,6 +67,5 @@
|
||||||
* [빌드 설명서 (Linux)](development/build-instructions-linux-ko.md)
|
* [빌드 설명서 (Linux)](development/build-instructions-linux-ko.md)
|
||||||
* [디버거에서 디버그 심볼 서버 설정](development/setting-up-symbol-server-ko.md)
|
* [디버거에서 디버그 심볼 서버 설정](development/setting-up-symbol-server-ko.md)
|
||||||
|
|
||||||
이 참조문서는 [@preco21](https://github.com/preco21)에 의해 번역되었습니다.
|
이 문서는 [@preco21](https://github.com/preco21) 에 의해 번역되었습니다.
|
||||||
문서내에서 오타나 잘못된 번역을 발견하면 `plusb21@gmail.com` 이메일로 알려주시면 감사하겠습니다.
|
문서내에서 오타나 잘못된 번역이 발견될 경우 해당 repo를 fork한 후 수정하여 PR을 올리거나 `plusb21@gmail.com` 이메일로 알려주시면 감사하겠습니다.
|
||||||
원본과는 달리 항시 최신버전을 유지할 수 없으므로 원본을 같이 참고하는 것을 권장합니다.
|
|
||||||
|
|
|
@ -139,10 +139,6 @@ This method guarantees all `beforeunload` and `unload` handlers are correctly
|
||||||
executed. It is possible that a window cancels the quitting by returning
|
executed. It is possible that a window cancels the quitting by returning
|
||||||
`false` in `beforeunload` handler.
|
`false` in `beforeunload` handler.
|
||||||
|
|
||||||
## app.getAppPath()
|
|
||||||
|
|
||||||
Returns the current application directory.
|
|
||||||
|
|
||||||
## app.getPath(name)
|
## app.getPath(name)
|
||||||
|
|
||||||
* `name` String
|
* `name` String
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# auto-updater
|
# auto-updater
|
||||||
|
|
||||||
**이 모듈은 현재 OS X에서만 사용할 수 있습니다.**
|
**This module has only been implemented for OS X.**
|
||||||
|
|
||||||
Check out [atom/grunt-electron-installer](https://github.com/atom/grunt-electron-installer)
|
Check out [atom/grunt-electron-installer](https://github.com/atom/grunt-electron-installer)
|
||||||
for building a Windows installer for your app.
|
for building a Windows installer for your app.
|
||||||
|
|
|
@ -51,8 +51,10 @@ Hostname 맵핑 규칙을 설정합니다. (`,`로 분리)
|
||||||
also force the port of the resulting socket address to be 77.
|
also force the port of the resulting socket address to be 77.
|
||||||
* `MAP * baz, EXCLUDE www.google.com` Remaps everything to "baz", except for
|
* `MAP * baz, EXCLUDE www.google.com` Remaps everything to "baz", except for
|
||||||
"www.google.com".
|
"www.google.com".
|
||||||
|
|
||||||
이 맵핑은 네트워크 요청시의 endpoint를 지정합니다. (TCP 연결과 직접 연결의 호스트 resolver, http 프록시 연결의 `CONNECT`, `SOCKS` 프록시 연결의 endpoint 호스트)
|
These mappings apply to the endpoint host in a net request (the TCP connect
|
||||||
|
and host resolver in a direct connection, and the `CONNECT` in an http proxy
|
||||||
|
connection, and the endpoint host in a `SOCKS` proxy connection).
|
||||||
|
|
||||||
## --host-resolver-rules=`rules`
|
## --host-resolver-rules=`rules`
|
||||||
|
|
||||||
|
@ -86,14 +88,16 @@ Net log 이벤트를 지정한 `path`에 로그로 기록합니다.
|
||||||
|
|
||||||
## --vmodule=`pattern`
|
## --vmodule=`pattern`
|
||||||
|
|
||||||
`--v` 옵션에 전달된 값을 덮어쓰고 모듈당 최대 V-logging 레벨을 지정합니다.
|
Gives the per-module maximal V-logging levels to override the value given by
|
||||||
예를 들어 `my_module=2,foo*=3`는 `my_module.*`, `foo*.*`와 같은 파일 이름 패턴을 가진 모든 소스 코드들의 로깅 레벨을 각각 2와 3으로 설정합니다.
|
`--v`. E.g. `my_module=2,foo*=3` would change the logging level for all code in
|
||||||
|
source files `my_module.*` and `foo*.*`.
|
||||||
|
|
||||||
슬래시(`/`), 백슬래시(`\`)를 포함하는 모든 패턴은 모듈뿐만 아니라 모든 경로명에 대해서도 테스트 됩니다.
|
Any pattern containing a forward or backward slash will be tested against the
|
||||||
예를 들어 `*/foo/bar/*=2` 표현식은 `foo/bar` 디렉터리 안의 모든 소스 코드의 로깅 레벨을 2로 지정합니다.
|
whole pathname and not just the module. E.g. `*/foo/bar/*=2` would change the
|
||||||
|
logging level for all code in source files under a `foo/bar` directory.
|
||||||
모든 크로미움과 관련된 로그를 비활성화하고 어플리케이션의 로그만 활성화 하려면 다음과 같이 코드를 작성하면 됩니다:
|
|
||||||
|
|
||||||
|
To disable all chromium related logs and only enable your application logs you
|
||||||
|
can do:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
app.commandLine.appendSwitch('v', -1);
|
app.commandLine.appendSwitch('v', -1);
|
||||||
|
|
|
@ -86,18 +86,3 @@ console.log(clipboard.has('<p>selection</p>'));
|
||||||
클립보드로부터 `data`를 읽어들입니다.
|
클립보드로부터 `data`를 읽어들입니다.
|
||||||
|
|
||||||
**알림:** 이 API는 실험적인 기능이며 차후 최신버전에서 제외될 수 있습니다.
|
**알림:** 이 API는 실험적인 기능이며 차후 최신버전에서 제외될 수 있습니다.
|
||||||
|
|
||||||
## clipboard.write(data[, type])
|
|
||||||
|
|
||||||
* `data` Object
|
|
||||||
* `text` String
|
|
||||||
* `html` String
|
|
||||||
* `image` [NativeImage](native-image.md)
|
|
||||||
* `type` String
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var clipboard = require('clipboard');
|
|
||||||
clipboard.write({text: 'test', html: "<b>test</b>"});
|
|
||||||
```
|
|
||||||
|
|
||||||
`data`를 클립보드에 씁니다.
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# content-tracing
|
# content-tracing
|
||||||
|
|
||||||
`content-trace` 모듈은 Chromium 컨텐츠 모듈단에서 생성된 데이터를 수집하고 추적하는데 사용됩니다.
|
The `content-trace` module is used to collect tracing data generated by the
|
||||||
이 모듈은 웹 인터페이스를 포함하고 있지 않으며 크롬 브라우저에서 `chrome://tracing/` 페이지를 열어 생성된 파일을 로드하면 결과를 볼 수 있습니다.
|
underlying Chromium content module. This module does not include a web interface
|
||||||
|
so you need to open `chrome://tracing/` in a Chrome browser and load the generated
|
||||||
|
file to view the result.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var tracing = require('content-tracing');
|
var tracing = require('content-tracing');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# crash-reporter
|
# crash-reporter
|
||||||
|
|
||||||
다음 예제는 윈격 서버에 어플리케이션 오류 정보를 자동으로 보고하는 예제입니다:
|
An example of automatically submitting crash reporters to remote server:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
crashReporter = require('crash-reporter');
|
crashReporter = require('crash-reporter');
|
||||||
|
@ -15,46 +15,47 @@ crashReporter.start({
|
||||||
## crashReporter.start(options)
|
## crashReporter.start(options)
|
||||||
|
|
||||||
* `options` Object
|
* `options` Object
|
||||||
* `productName` String, 기본값: Electron
|
* `productName` String, default: Electron
|
||||||
* `companyName` String, 기본값: GitHub, Inc
|
* `companyName` String, default: GitHub, Inc
|
||||||
* `submitUrl` String, 기본값: http://54.249.141.255:1127/post
|
* `submitUrl` String, default: http://54.249.141.255:1127/post
|
||||||
* Crash Reporter는 POST 방식으로 해당 URL에 전송됩니다.
|
* URL that crash reports would be sent to as POST
|
||||||
* `autoSubmit` Boolean, 기본값: true
|
* `autoSubmit` Boolean, default: true
|
||||||
* true로 지정할 경우 유저의 승인 없이 자동으로 오류를 보고합니다.
|
* Send the crash report without user interaction
|
||||||
* `ignoreSystemCrashHandler` Boolean, 기본값: false
|
* `ignoreSystemCrashHandler` Boolean, default: false
|
||||||
* `extra` Object
|
* `extra` Object
|
||||||
* 오류보고 시 같이 보낼 추가 정보를 지정하는 객체입니다.
|
* An object you can define which content will be send along with the report.
|
||||||
* 문자열로 된 속성만 정상적으로 보내집니다.
|
* Only string properties are send correctly.
|
||||||
* 중첩 객체는 지원되지 않습니다. (Nested objects are not supported)
|
* Nested objects are not supported.
|
||||||
|
|
||||||
다른 crashReporter API들을 사용하기 전에 이 함수를 먼저 호출해야 합니다.
|
Developers are required to call the API before using other crashReporter APIs.
|
||||||
|
|
||||||
|
|
||||||
**알림:** OS X에선 Windows와 Linux의 `breakpad`와 달리 새로운 `crashpad` 클라이언트를 사용합니다.
|
**Note:** On OS X, electron uses a new `crashpad` client, which is different
|
||||||
오류 수집 기능을 활성화 시키려면 오류를 수집하고 싶은 메인 프로세스나 랜더러 프로세스에서
|
with the `breakpad` on Windows and Linux. To enable crash collection feature,
|
||||||
`crashReporter.start` 함수를 호출하여 `crashpad`를 초기화 해야합니다.
|
you are required to call `crashReporter.start` API to initiliaze `crashpad` in
|
||||||
|
main process, even you only collect crash report in renderer process.
|
||||||
|
|
||||||
## crashReporter.getLastCrashReport()
|
## crashReporter.getLastCrashReport()
|
||||||
|
|
||||||
마지막 오류보고의 날짜와 ID를 반환합니다.
|
Returns the date and ID of last crash report, when there was no crash report
|
||||||
이전 오류보고가 없거나 Crash Reporter가 시작되지 않았을 경우 `null`이 반환됩니다.
|
sent or the crash reporter is not started, `null` will be returned.
|
||||||
|
|
||||||
## crashReporter.getUploadedReports()
|
## crashReporter.getUploadedReports()
|
||||||
|
|
||||||
모든 업로드된 오류보고를 반환합니다. 각 보고는 날짜와 업로드 ID를 포함하고 있습니다.
|
Returns all uploaded crash reports, each report contains date and uploaded ID.
|
||||||
|
|
||||||
# crash-reporter 오류보고 형식
|
# crash-reporter payload
|
||||||
|
|
||||||
Crash Reporter는 다음과 같은 데이터를 `submitUrl`에 `POST` 방식으로 전송합니다:
|
The crash reporter will send the following data to the `submitUrl` as `POST`:
|
||||||
|
|
||||||
* `rept` String - 예시 'electron-crash-service'
|
* `rept` String - e.g. 'electron-crash-service'
|
||||||
* `ver` String - Electron의 버전
|
* `ver` String - The version of Electron
|
||||||
* `platform` String - 예시 'win32'
|
* `platform` String - e.g. 'win32'
|
||||||
* `process_type` String - 예시 'renderer'
|
* `process_type` String - e.g. 'renderer'
|
||||||
* `ptime` Number
|
* `ptime` Number
|
||||||
* `_version` String - `package.json`내의 `version` 필드
|
* `_version` String - The version in `package.json`
|
||||||
* `_productName` String - Crash Reporter의 `options` 객체에서 정의한 제품명.
|
* `_productName` String - The product name in the crashReporter `options` object
|
||||||
* `prod` String - 기본 제품의 이름. 이 경우 Electron으로 표시됩니다.
|
* `prod` String - Name of the underlying product. In this case Electron
|
||||||
* `_companyName` String - Crash Reporter의 `options` 객체에서 정의한 회사명.
|
* `_companyName` String - The company name in the crashReporter `options` object
|
||||||
* `upload_file_minidump` File - 오류보고 파일
|
* `upload_file_minidump` File - The crashreport as file
|
||||||
* Crash Reporter의 `options` 객체에서 정의한 `extra` 객체의 속성들.
|
* All level one properties of the `extra` object in the crashReporter `options` object
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
# dialog
|
# dialog
|
||||||
|
|
||||||
`dialog` 모듈은 네이티브 시스템의 대화 상자를 조작할 때 사용할 수 있는 API입니다.
|
The `dialog` module provides APIs to show native system dialogs, so web
|
||||||
웹 어플리케이션에서 일반 네이티브 어플리케이션과 같은 사용자 경험을 제공할 수 있습니다.
|
applications can deliver the same user experience as native applications.
|
||||||
|
|
||||||
다음 예제는 파일과 디렉터리를 다중으로 선택하는 대화 상자를 표시하는 예제입니다:
|
An example of showing a dialog to select multiple files and directories:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var win = ...; // 대화 상자를 사용할 창 객체
|
var win = ...; // window in which to show the dialog
|
||||||
var dialog = require('dialog');
|
var dialog = require('dialog');
|
||||||
console.log(dialog.showOpenDialog({ properties: [ 'openFile', 'openDirectory', 'multiSelections' ]}));
|
console.log(dialog.showOpenDialog({ properties: [ 'openFile', 'openDirectory', 'multiSelections' ]}));
|
||||||
```
|
```
|
||||||
|
|
||||||
**OS X 주의**: 대화 상자를 시트처럼 보여지게 하려면 `browserWindow` 인자에 `BrowserWindow` 객체의 참조를 제공하면 됩니다.
|
**Note for OS X**: If you want to present dialogs as sheets, the only thing you have to do is provide a `BrowserWindow` reference in the `browserWindow` parameter.
|
||||||
|
|
||||||
## dialog.showOpenDialog([browserWindow], [options], [callback])
|
## dialog.showOpenDialog([browserWindow], [options], [callback])
|
||||||
|
|
||||||
|
@ -20,15 +20,16 @@ console.log(dialog.showOpenDialog({ properties: [ 'openFile', 'openDirectory', '
|
||||||
* `title` String
|
* `title` String
|
||||||
* `defaultPath` String
|
* `defaultPath` String
|
||||||
* `filters` Array
|
* `filters` Array
|
||||||
* `properties` Array - 대화 상자가 사용할 기능(모드)이 담긴 배열입니다.
|
* `properties` Array - Contains which features the dialog should use, can
|
||||||
다음을 포함할 수 있습니다: `openFile`, `openDirectory`, `multiSelections`, `createDirectory`
|
contain `openFile`, `openDirectory`, `multiSelections` and
|
||||||
|
`createDirectory`
|
||||||
* `callback` Function
|
* `callback` Function
|
||||||
|
|
||||||
사용할 대화 상자의 기능이 담긴 배열입니다. 다음을 포함할 수 있습니다: `openFile`, `openDirectory`, `multiSelections`, `createDirectory`
|
On success, returns an array of file paths chosen by the user, otherwise
|
||||||
|
returns `undefined`.
|
||||||
|
|
||||||
작업에 성공하면 유저가 선택한 파일의 경로를 포함한 배열을 반환합니다. 그 외의 경우엔 `undefined`를 반환합니다.
|
The `filters` specifies an array of file types that can be displayed or
|
||||||
|
selected, an example is:
|
||||||
`filters`를 지정하면 유저가 선택 가능한 파일 형식을 지정할 수 있습니다. 예제는 다음과 같습니다:
|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
{
|
{
|
||||||
|
@ -40,10 +41,12 @@ console.log(dialog.showOpenDialog({ properties: [ 'openFile', 'openDirectory', '
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
`callback`이 전달되면 메소드가 비동기로 작동되며 결과는 `callback(filenames)`을 통해 전달됩니다.
|
If a `callback` is passed, the API call would be asynchronous and the result
|
||||||
|
would be passed via `callback(filenames)`
|
||||||
|
|
||||||
Windows와 Linux에선 파일 선택 모드, 디렉터리 선택 모드를 동시에 사용할 수 없습니다.
|
**Note:** On Windows and Linux, an open dialog can not be both a file selector
|
||||||
그래서 이 두 플랫폼에선 `properties`를 `['openFile', 'openDirectory']`로 설정하면 디렉터리 선택 대화 상자가 표시됩니다.
|
and a directory selector, so if you set `properties` to
|
||||||
|
`['openFile', 'openDirectory']` on these platforms, a directory selector will be shown.
|
||||||
|
|
||||||
## dialog.showSaveDialog([browserWindow], [options], [callback])
|
## dialog.showSaveDialog([browserWindow], [options], [callback])
|
||||||
|
|
||||||
|
@ -54,41 +57,36 @@ Windows와 Linux에선 파일 선택 모드, 디렉터리 선택 모드를 동
|
||||||
* `filters` Array
|
* `filters` Array
|
||||||
* `callback` Function
|
* `callback` Function
|
||||||
|
|
||||||
작업에 성공하면
|
On success, returns the path of the file chosen by the user, otherwise returns
|
||||||
|
`undefined`.
|
||||||
|
|
||||||
작업에 성공하면 유저가 선택한 파일의 경로를 포함한 배열을 반환합니다. 그 외의 경우엔 `undefined`를 반환합니다.
|
The `filters` specifies an array of file types that can be displayed, see
|
||||||
|
`dialog.showOpenDialog` for an example.
|
||||||
|
|
||||||
`filters`를 지정하면 유저가 저장 가능한 파일 형식을 지정할 수 있습니다. 사용 방법은 `dialog.showOpenDialog`의 `filters` 속성과 같습니다.
|
If a `callback` is passed, the API call will be asynchronous and the result
|
||||||
|
will be passed via `callback(filename)`
|
||||||
`callback`이 전달되면 메소드가 비동기로 작동되며 결과는 `callback(filename)`을 통해 전달됩니다.
|
|
||||||
|
|
||||||
## dialog.showMessageBox([browserWindow], options, [callback])
|
## dialog.showMessageBox([browserWindow], options, [callback])
|
||||||
|
|
||||||
* `browserWindow` BrowserWindow
|
* `browserWindow` BrowserWindow
|
||||||
* `options` Object
|
* `options` Object
|
||||||
** `type` String - `"none"`, `"info"`, `"error"`, `"question"`, `"warning"` 중 하나를 사용할 수 있습니다.
|
* `type` String - Can be `"none"`, `"info"` or `"warning"`
|
||||||
* `buttons` Array - 버튼들의 라벨을 포함한 배열입니다.
|
* `buttons` Array - Array of texts for buttons
|
||||||
* `title` String - 메시지 상자의 제목입니다. 몇몇 플랫폼에선 보이지 않을 수 있습니다.
|
* `title` String - Title of the message box, some platforms will not show it
|
||||||
* `message` String - 메시지 상자의 본문 내용입니다.
|
* `message` String - Content of the message box
|
||||||
* `detail` String - 메시지의 추가 정보입니다.
|
* `detail` String - Extra information of the message
|
||||||
* `icon` [NativeImage](native-image-ko.md)
|
* `icon` [NativeImage](native-image-ko.md)
|
||||||
* `cancelId` Integer - 유저가 대화 상자의 버튼을 클릭하지 않고 대화 상자를 취소했을 때 반환되는 버튼의 index입니다.
|
|
||||||
기본적으로 버튼 리스트가 "cancel" 또는 "no" 라벨을 가지고 있을 때 해당 버튼의 index를 반환합니다. 따로 두 라벨이 지정되지 않은 경우 0을 반환합니다.
|
|
||||||
OS X와 Windows에선 `cancelId` 지정 여부에 상관없이 "Cancel" 버튼이 언제나 `cancelId`로 지정됩니다.
|
|
||||||
* `callback` Function
|
* `callback` Function
|
||||||
|
|
||||||
메시지 상자를 표시합니다. `browserWindow`를 지정하면 메시지 상자가 완전히 닫힐 때까지는 창을 사용할 수 없습니다.
|
Shows a message box, it will block until the message box is closed. It returns
|
||||||
완료시 유저가 선택한 버튼의 index를 반환합니다.
|
the index of the clicked button.
|
||||||
|
|
||||||
역주: 부정을 표현하는 "아니오", "취소"와 같은 한글 단어는 지원되지 않습니다.
|
If a `callback` is passed, the API call will be asynchronous and the result
|
||||||
만약 OS X 또는 Windows에서 "확인", "취소"와 같은 순서로 버튼을 지정하게 될 때 Alt + f4로 해당 대화 상자를 끄게 되면 "확인"을 누른걸로 판단되어 버립니다.
|
will be passed via `callback(response)`
|
||||||
이를 해결하려면 "Cancel"을 대신 사용하거나 BrowserWindow API를 사용하여 메시지 상자를 직접 구현해야합니다.
|
|
||||||
|
|
||||||
`callback`이 전달되면 메소드가 비동기로 작동되며 결과는 `callback(response)`을 통해 전달됩니다.
|
|
||||||
|
|
||||||
## dialog.showErrorBox(title, content)
|
## dialog.showErrorBox(title, content)
|
||||||
|
|
||||||
에러 메시지를 보여주는 모달 대화 상자를 표시합니다.
|
Runs a modal dialog that shows an error message.
|
||||||
|
|
||||||
이 API는 `app` 모듈의 `ready` 이벤트가 발생하기 전에 사용할 수 있습니다.
|
This API can be called safely before the `ready` event of `app` module emits, it
|
||||||
이 메소드는 보통 어플리케이션이 시작되기 전에 특정한 에러를 표시하기 위해 사용됩니다.
|
is usually used to report errors in early stage of startup.
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
# Frameless 윈도우
|
# Frameless window
|
||||||
|
|
||||||
Frameless 윈도우는 테두리가 없는 윈도우 창을 말합니다.
|
frameless window는 테두리가 없는 윈도우 창을 말합니다.
|
||||||
|
|
||||||
## Frameless 윈도우 만들기
|
## Frameless window 만들기
|
||||||
|
|
||||||
Frameless 윈도우를 만드려면 [BrowserWindow](browser-window-ko.md) 객체의 `options`에서 `frame` 옵션을 `false`로 지정하기만 하면됩니다:
|
Frameless window를 만드려면 [BrowserWindow](browser-window-ko.md) 객체의 `options`에서 `frame` 옵션을 `false`로 지정하기만 하면됩니다:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var BrowserWindow = require('browser-window');
|
var BrowserWindow = require('browser-window');
|
||||||
var win = new BrowserWindow({ width: 800, height: 600, frame: false });
|
var win = new BrowserWindow({ width: 800, height: 600, frame: false });
|
||||||
```
|
```
|
||||||
|
|
||||||
## 투명한 창 만들기
|
## 투명한 윈도우
|
||||||
|
|
||||||
Frameless 윈도우의 창의 배경을 투명하게 만들고 싶다면 `transparent` 옵션을 `true`로 바꿔주기만 하면됩니다:
|
By setting the `transparent` option to `true`, you can also make the frameless
|
||||||
|
window transparent:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var win = new BrowserWindow({ transparent: true, frame: false });
|
var win = new BrowserWindow({ transparent: true, frame: false });
|
||||||
|
@ -21,32 +22,39 @@ var win = new BrowserWindow({ transparent: true, frame: false });
|
||||||
|
|
||||||
### API의 한계
|
### API의 한계
|
||||||
|
|
||||||
|
* You can not click through the transparent area, we are going to introduce an
|
||||||
|
API to set window shape to solve this, but currently blocked at an
|
||||||
* 투명한 영역을 통과하여 클릭할 수 없습니다. 우리는 이 문제를 해결하기 위해 API를 제공할 예정이지만 현재로써는
|
[upstream bug](https://code.google.com/p/chromium/issues/detail?id=387234).
|
||||||
[upstream 버그](https://code.google.com/p/chromium/issues/detail?id=387234)로 인해 중단된 상태입니다.
|
* Transparent window is not resizable, setting `resizable` to `true` may make
|
||||||
* 투명한 창은 크기를 조절할 수 없습니다. `resizable` 속성을 `true`로 할 경우 몇몇 플랫폼에선 윈도우 크래시가 일어납니다.
|
transparent window stop working on some platforms.
|
||||||
* `blur` 필터는 웹 페이지에서만 적용됩니다. 윈도우 아래 컨텐츠에는 블러 효과를 적용할 방법이 없습니다.
|
* The `blur` filter only applies to the web page, so there is no way to apply
|
||||||
* Windows에선 DWM(데스크톱 창 관리자)가 비활성화되어 있을 경우 작동하지 않습니다.
|
blur effect to the content below the window.
|
||||||
* Linux를 사용할 경우 [alpha channel doesn't work on some NVidia drivers](https://code.google.com/p/chromium/issues/detail?id=369209)
|
* On Windows transparent window will not work when DWM is disabled.
|
||||||
upstream 버그가 있으므로 CLI 옵션에 `--enable-transparent-visuals --disable-gpu`을 추가해야 합니다.
|
* On Linux users have to put `--enable-transparent-visuals --disable-gpu` in
|
||||||
이 옵션은 GPU의 사용을 중단하고 윈도우를 생성하는데 ARGB를 사용할 수 있도록 해줍니다.
|
command line to disable GPU and allow ARGB to make transparent window, this is
|
||||||
* OS X(Mac)에선 네이티브 윈도우의 그림자가 투명한 창에선 보이지 않습니다.
|
caused by an upstream bug that [alpha channel doesn't work on some NVidia
|
||||||
|
drivers](https://code.google.com/p/chromium/issues/detail?id=369209) on Linux.
|
||||||
|
* On Mac the native window shadow will not show for transparent window.
|
||||||
|
|
||||||
## 드래그 가능 위치 지정
|
## 드래그 가능 위치 지정
|
||||||
|
|
||||||
기본적으로 Frameless 윈도우는 드래그 할 수 없습니다.
|
By default, the frameless window is non-draggable. Apps need to specify
|
||||||
어플리케이션의 CSS에서 특정 범위를 `-webkit-app-region: drag`로 지정하면 OS의 기본 타이틀바 처럼 드래그 되도록 할 수 있습니다.
|
`-webkit-app-region: drag` in CSS to tell Electron which regions are draggable
|
||||||
그리고 `-webkit-app-region: no-drag`를 지정해서 드래그 불가능 영역을 만들 수도 있습니다. 현재 사각형 형태의 범위만 지원합니다.
|
(like the OS's standard titlebar), and apps can also use
|
||||||
|
`-webkit-app-region: no-drag` to exclude the non-draggable area from the
|
||||||
|
draggable region. Note that only rectangular shape is currently supported.
|
||||||
|
|
||||||
창 전체를 드래그 가능하게 만드려면 `-webkit-app-region: drag`을 `body`의 스타일에 지정하면 됩니다:
|
To make the whole window draggable, you can add `-webkit-app-region: drag` as
|
||||||
|
`body`'s style:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<body style="-webkit-app-region: drag">
|
<body style="-webkit-app-region: drag">
|
||||||
</body>
|
</body>
|
||||||
```
|
```
|
||||||
|
|
||||||
참고로 창 전체를 드래그 영역으로 지정할 경우 사용자가 버튼을 클릭할 수 없게 되므로 버튼은 드래그 불가능 영역으로 지정해야 합니다:
|
And note that if you have made the whole window draggable, you must also mark
|
||||||
|
buttons as non-draggable, otherwise it would be impossible for users to click on
|
||||||
|
them:
|
||||||
|
|
||||||
```css
|
```css
|
||||||
button {
|
button {
|
||||||
|
@ -54,13 +62,15 @@ button {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
또한 커스텀 타이틀바를 만들어 사용할 때 타이틀바 내부의 버튼도 드래그 불가능 영역으로 지정해야 합니다.
|
If you're only using a custom titlebar, you also need to make buttons in
|
||||||
|
titlebar non-draggable.
|
||||||
|
|
||||||
## 텍스트 선택
|
## 텍스트 선택
|
||||||
|
|
||||||
한가지, Frameless 윈도우에서 텍스트가 선택되는 드래그 동작은 혼란을 야기할 수 있습니다.
|
One thing on frameless window is that the dragging behaviour may conflict with
|
||||||
예를 들어 타이틀바를 드래그 할 때 타이틀바의 텍스트를 실수로 선택할 수 있습니다.
|
selecting text, for example, when you drag the titlebar, you may accidentally
|
||||||
이를 방지하기 위해선 다음과 같이 드래그 영역의 텍스트 선택 동작을 비활성화해야 할 필요가 있습니다:
|
select the text on titlebar. To prevent this, you need to disable text
|
||||||
|
selection on dragging area like this:
|
||||||
|
|
||||||
```css
|
```css
|
||||||
.titlebar {
|
.titlebar {
|
||||||
|
@ -71,5 +81,7 @@ button {
|
||||||
|
|
||||||
## 컨텍스트 메뉴
|
## 컨텍스트 메뉴
|
||||||
|
|
||||||
몇몇 플랫폼에선 드래그 가능 영역이 non-client 프레임으로 처리됩니다. 그래서 이 영역에서 오른쪽 클릭을 할 경우 시스템 메뉴가 팝업 됩니다.
|
On some platforms, the draggable area would be treated as non-client frame, so
|
||||||
그래서 컨텍스트 메뉴 지정이 모든 플랫폼에서 정상적으로 작동하게 하려면 커스텀 컨텍스트 메뉴를 드래그 영역 내에 만들어선 안됩니다.
|
when you right click on it a system menu would be popuped. To make context menu
|
||||||
|
behave correctly on all platforms, you should never custom context menu on
|
||||||
|
draggable areas.
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
# menu
|
# menu
|
||||||
|
|
||||||
`Menu` 클래스는 어플리케이션 메뉴와 컨텍스트 메뉴를 만들 때 사용할 수 있습니다.
|
The `Menu` class is used to create native menus that can be used as
|
||||||
각 메뉴는 여러 개의 메뉴 아이템으로 구성되어 있으며 서브 메뉴를 가질 수도 있습니다.
|
application menus and context menus. Each menu consists of multiple menu
|
||||||
|
items, and each menu item can have a submenu.
|
||||||
|
|
||||||
다음 예제는 웹 페이지 내에서 [remote](remote-ko.md) 모듈을 활용하여 동적으로 메뉴를 생성하는 예제입니다.
|
Below is an example of creating a menu dynamically in a web page by using
|
||||||
그리고 이 예제에서 만들어진 메뉴는 유저가 페이지에서 오른쪽 클릭을 할 때 마우스 위치에 팝업으로 표시됩니다:
|
the [remote](remote-ko.md) module, and showing it when the user right clicks
|
||||||
|
the page:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!-- index.html -->
|
<!-- index.html -->
|
||||||
|
@ -25,7 +27,7 @@ window.addEventListener('contextmenu', function (e) {
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
다음 예제는 template API를 활용하여 어플리케이션 메뉴를 만드는 간단한 예제입니다:
|
Another example of creating the application menu with the simple template API:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!-- index.html -->
|
<!-- index.html -->
|
||||||
|
@ -165,30 +167,34 @@ Menu.setApplicationMenu(menu);
|
||||||
|
|
||||||
### new Menu()
|
### new Menu()
|
||||||
|
|
||||||
새로운 메뉴를 생성합니다.
|
Creates a new menu.
|
||||||
|
|
||||||
### Class Method: Menu.setApplicationMenu(menu)
|
### Class Method: Menu.setApplicationMenu(menu)
|
||||||
|
|
||||||
* `menu` Menu
|
* `menu` Menu
|
||||||
|
|
||||||
지정한 `menu`를 이용하여 어플리케이션 메뉴를 만듭니다. OS X에선 상단바에 표시되며 Windows와 Linux에선 각 창의 상단에 표시됩니다.
|
Sets `menu` as the application menu on OS X. On Windows and Linux, the `menu`
|
||||||
|
will be set as each window's top menu.
|
||||||
|
|
||||||
### Class Method: Menu.sendActionToFirstResponder(action)
|
### Class Method: Menu.sendActionToFirstResponder(action)
|
||||||
|
|
||||||
* `action` String
|
* `action` String
|
||||||
|
|
||||||
`action`을 어플리케이션의 first responder에 전달합니다.
|
Sends the `action` to the first responder of application, this is used for
|
||||||
이 함수는 Cocoa 메뉴 동작을 에뮬레이트 하는데 사용되며 보통 `MenuItem`의 `selector` 속성에 사용됩니다.
|
emulating default Cocoa menu behaviors, usually you would just use the
|
||||||
|
`selector` property of `MenuItem`.
|
||||||
|
|
||||||
**알림:** 이 함수는 OS X에서만 사용할 수 있습니다.
|
**Note:** This method is OS X only.
|
||||||
|
|
||||||
### Class Method: Menu.buildFromTemplate(template)
|
### Class Method: Menu.buildFromTemplate(template)
|
||||||
|
|
||||||
* `template` Array
|
* `template` Array
|
||||||
|
|
||||||
기본적으로 `template`는 [MenuItem](menu-item-ko.md)을 생성할 때 사용하는 `options`의 배열입니다. 사용법은 위에서 설명한 것과 같습니다.
|
Generally, the `template` is just an array of `options` for constructing
|
||||||
|
[MenuItem](menu-item-ko.md), the usage can be referenced above.
|
||||||
|
|
||||||
또한 `template`에는 다른 속성도 추가할 수 있으며 메뉴가 만들어질 때 해당 메뉴 아이템의 프로퍼티로 변환됩니다.
|
You can also attach other fields to element of the `template`, and they will
|
||||||
|
become properties of the constructed menu items.
|
||||||
|
|
||||||
### Menu.popup(browserWindow, [x, y])
|
### Menu.popup(browserWindow, [x, y])
|
||||||
|
|
||||||
|
@ -196,70 +202,86 @@ Menu.setApplicationMenu(menu);
|
||||||
* `x` Number
|
* `x` Number
|
||||||
* `y` Number
|
* `y` Number
|
||||||
|
|
||||||
메뉴를 `browserWindow` 안에서 팝업으로 표시합니다.
|
Popups this menu as a context menu in the `browserWindow`. You can optionally
|
||||||
옵션으로 메뉴를 표시할 `(x,y)` 좌표를 임의로 지정할 수 있습니다. 따로 지정하지 않은 경우 마우스 커서 위치에 표시됩니다.
|
provide a `(x,y)` coordinate to place the menu at, otherwise it will be placed
|
||||||
|
at the current mouse cursor position.
|
||||||
|
|
||||||
### Menu.append(menuItem)
|
### Menu.append(menuItem)
|
||||||
|
|
||||||
* `menuItem` MenuItem
|
* `menuItem` MenuItem
|
||||||
|
|
||||||
메뉴의 리스트 끝에 `menuItem`을 삽입합니다.
|
Appends the `menuItem` to the menu.
|
||||||
|
|
||||||
### Menu.insert(pos, menuItem)
|
### Menu.insert(pos, menuItem)
|
||||||
|
|
||||||
* `pos` Integer
|
* `pos` Integer
|
||||||
* `menuItem` MenuItem
|
* `menuItem` MenuItem
|
||||||
|
|
||||||
`pos` 위치에 `menuItem`을 삽입합니다.
|
Inserts the `menuItem` to the `pos` position of the menu.
|
||||||
|
|
||||||
### Menu.items
|
### Menu.items
|
||||||
|
|
||||||
메뉴가 가지고 있는 메뉴 아이템들의 배열입니다.
|
Get the array containing the menu's items.
|
||||||
|
|
||||||
## OS X 어플리케이션 메뉴에 대해 알아 둬야 할 것들
|
## Notes on OS X application menu
|
||||||
|
|
||||||
OS X에선 Windows, Linux와 달리 완전히 다른 어플리케이션 메뉴 스타일을 가지고 있습니다.
|
OS X has a completely different style of application menu from Windows and
|
||||||
어플리케이션을 네이티브처럼 작동할 수 있도록 하기 위해선 다음의 몇 가지 유의 사항을 숙지해야 합니다.
|
Linux, and here are some notes on making your app's menu more native-like.
|
||||||
|
|
||||||
### 기본 메뉴
|
### Standard menus
|
||||||
|
|
||||||
OS X엔 `Services`나 `Windows`와 같은 많은 시스템 지정 기본 메뉴가 있습니다.
|
On OS X there are many system defined standard menus, like the `Services` and
|
||||||
기본 메뉴를 만들려면 다음 중 하나를 메뉴의 라벨로 지정하기만 하면 됩니다.
|
`Windows` menus. To make your menu a standard menu, you can just set your menu's
|
||||||
그러면 Electron이 자동으로 인식하여 해당 메뉴를 기본 메뉴로 만듭니다:
|
label to one of followings, and Electron will recognize them and make them
|
||||||
|
become standard menus:
|
||||||
|
|
||||||
* `Window`
|
* `Window`
|
||||||
* `Help`
|
* `Help`
|
||||||
* `Services`
|
* `Services`
|
||||||
|
|
||||||
### 기본 메뉴 아이템 동작
|
### Standard menu item actions
|
||||||
|
|
||||||
OS X는 몇몇의 메뉴 아이템에 대해 `About xxx`, `Hide xxx`, `Hide Others`와 같은 기본 동작을 제공하고 있습니다. (`selector`라고 불립니다)
|
OS X has provided standard actions for some menu items (which are called
|
||||||
메뉴 아이템의 기본 동작을 지정하려면 메뉴 아이템의 `selector` 속성을 사용하면 됩니다.
|
`selector`s), like `About xxx`, `Hide xxx`, and `Hide Others`. To set the action
|
||||||
|
of a menu item to a standard action, you can set the `selector` attribute of the
|
||||||
|
menu item.
|
||||||
|
|
||||||
### 메인 메뉴의 이름
|
### Main menu's name
|
||||||
|
|
||||||
OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번째 라벨은 언제나 어플리케이션의 이름이 됩니다.
|
On OS X the label of application menu's first item is always your app's name,
|
||||||
어플리케이션 이름을 변경하려면 앱 번들내의 `Info.plist` 파일을 수정해야합니다.
|
no matter what label you set. To change it you have to change your app's name
|
||||||
자세한 내용은 [About Information Property List Files](https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html)을 참고하세요.
|
by modifying your app bundle's `Info.plist` file. See
|
||||||
|
[About Information Property List Files](https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html)
|
||||||
|
for more.
|
||||||
|
|
||||||
## 메뉴 아이템 위치
|
|
||||||
|
|
||||||
`Menu.buildFromTemplate`로 메뉴를 만들 때 `position`과 `id`를 사용해서 아이템의 위치를 지정할 수 있습니다.
|
## Menu item position
|
||||||
|
|
||||||
`MenuItem`의 `position` 속성은 `[placement]=[id]`와 같은 형식을 가지며 `placement`는
|
You can make use of `position` and `id` to control how the item would be placed
|
||||||
`before`, `after`, `endof` 속성 중 한가지를 사용할 수 있고 `id`는 메뉴 아이템이 가지는 유일 ID 입니다:
|
when building a menu with `Menu.buildFromTemplate`.
|
||||||
|
|
||||||
* `before` - 이 아이템을 지정한 id 이전의 위치에 삽입합니다. 만약 참조된 아이템이 없을 경우 메뉴의 맨 뒤에 삽입됩니다.
|
The `position` attribute of `MenuItem` has the form `[placement]=[id]` where
|
||||||
* `after` - 이 아이템을 지정한 id 다음의 위치에 삽입합니다. 만약 참조된 아이템이 없을 경우 메뉴의 맨 뒤에 삽입됩니다.
|
placement is one of `before`, `after`, or `endof` and `id` is the unique ID of
|
||||||
* `endof` - 이 아이템을 id의 논리 그룹에 맞춰서 각 그룹의 항목 뒤에 삽입합니다. (그룹은 분리자 아이템에 의해 만들어집니다)
|
an existing item in the menu:
|
||||||
만약 참조된 아이템의 분리자 그룹이 존재하지 않을 경우 지정된 id로 새로운 분리자 그룹을 만든 후 해당 그룹의 뒤에 삽입됩니다.
|
|
||||||
|
|
||||||
위치를 지정한 아이템의 뒤에 위치가 지정되지 않은 아이템이 있을 경우 해당 아이템의 위치가 지정되기 전까지 이전에 위치가 지정된 아이템의 위치 지정을 따릅니다.
|
* `before` - Inserts this item before the id referenced item. If the
|
||||||
이에 따라 위치를 이동하고 싶은 특정 그룹의 아이템들이 있을 경우 해당 그룹의 맨 첫번째 메뉴 아이템의 위치만을 지정하면 됩니다.
|
referenced item doesn't exist the item will be inserted at the end of
|
||||||
|
the menu.
|
||||||
|
* `after` - Inserts this item after id referenced item. If the referenced
|
||||||
|
item doesn't exist the item will be inserted at the end of the menu.
|
||||||
|
* `endof` - Inserts this item at the end of the logical group containing
|
||||||
|
the id referenced item. (Groups are created by separator items). If
|
||||||
|
the referenced item doesn't exist a new separator group is created with
|
||||||
|
the given id and this item is inserted after that separator.
|
||||||
|
|
||||||
### 예제
|
When an item is positioned following unpositioned items are inserted after
|
||||||
|
it, until a new item is positioned. So if you want to position a group of
|
||||||
|
menu items in the same location you only need to specify a position for
|
||||||
|
the first item.
|
||||||
|
|
||||||
메뉴 템플릿:
|
### Examples
|
||||||
|
|
||||||
|
Template:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
[
|
[
|
||||||
|
@ -271,7 +293,7 @@ OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
메뉴:
|
Menu:
|
||||||
|
|
||||||
```
|
```
|
||||||
- 1
|
- 1
|
||||||
|
@ -281,7 +303,7 @@ OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번
|
||||||
- 5
|
- 5
|
||||||
```
|
```
|
||||||
|
|
||||||
메뉴 템플릿:
|
Template:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
[
|
[
|
||||||
|
@ -294,7 +316,7 @@ OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
메뉴:
|
Menu:
|
||||||
|
|
||||||
```
|
```
|
||||||
- ---
|
- ---
|
||||||
|
|
|
@ -19,20 +19,18 @@ app.on('ready', function() {
|
||||||
|
|
||||||
**알림:** 이 모듈은 app의 `ready` 이벤트가 발생한 이후에만 사용할 수 있습니다.
|
**알림:** 이 모듈은 app의 `ready` 이벤트가 발생한 이후에만 사용할 수 있습니다.
|
||||||
|
|
||||||
## protocol.registerProtocol(scheme, handler, callback)
|
## protocol.registerProtocol(scheme, handler)
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
* `handler` Function
|
* `handler` Function
|
||||||
* `callback` Function
|
|
||||||
|
|
||||||
지정한 `scheme`을 기반으로 커스텀 프로토콜을 등록합니다. `handler`는 등록한 `scheme` 프로토콜에 요청이 들어올 경우 `request` 인자와 함께 `handler(request)` 형식으로 호출됩니다.
|
지정한 `scheme`을 기반으로 커스텀 프로토콜을 등록합니다. 등록한 `scheme` 프로토콜에 요청이 들어올 경우 `request` 인자와 함께 `handler` 함수가 호출됩니다.
|
||||||
|
|
||||||
`handler` 함수에선 요청에 대한 해당 프로토콜의 작업 결과를 응답(반환) 해야 합니다.
|
호출된 `handler` 함수에선 요청에 대한 해당 프로토콜의 작업 결과를 응답(반환) 해야 할 필요가 있습니다.
|
||||||
|
|
||||||
## protocol.unregisterProtocol(scheme, callback)
|
## protocol.unregisterProtocol(scheme)
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
* `callback` Function
|
|
||||||
|
|
||||||
지정한 `scheme` 프로토콜을 등록 해제합니다.
|
지정한 `scheme` 프로토콜을 등록 해제합니다.
|
||||||
|
|
||||||
|
@ -42,27 +40,23 @@ app.on('ready', function() {
|
||||||
|
|
||||||
지정한 `value` 배열을 사용하여 미리 지정된 스킴으로 등록합니다.
|
지정한 `value` 배열을 사용하여 미리 지정된 스킴으로 등록합니다.
|
||||||
|
|
||||||
## protocol.isHandledProtocol(scheme, callback)
|
## protocol.isHandledProtocol(scheme)
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
* `callback` Function
|
|
||||||
|
|
||||||
해당 `scheme`에 처리자(handler)가 등록되었는지 확인합니다.
|
해당 `scheme`에 처리자(handler)가 등록되었는지 확인합니다.
|
||||||
지정한 `callback`에 결과가 boolean 값으로 반환됩니다.
|
|
||||||
|
|
||||||
## protocol.interceptProtocol(scheme, handler, callback)
|
## protocol.interceptProtocol(scheme, handler)
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
* `handler` Function
|
* `handler` Function
|
||||||
* `callback` Function
|
|
||||||
|
|
||||||
지정한 `scheme`의 작업을 `handler`로 변경합니다.
|
지정한 `scheme`의 작업을 `handler`로 변경합니다.
|
||||||
`handler`에서 `null` 또는 `undefined`를 반환 할 경우 해당 프로토콜의 기본 동작(응답)으로 대체 됩니다.
|
`handler`에서 `null` 또는 `undefined`를 반환 할 경우 해당 프로토콜의 기본 동작(응답)으로 대체 됩니다.
|
||||||
|
|
||||||
## protocol.uninterceptProtocol(scheme, callback)
|
## protocol.uninterceptProtocol(scheme)
|
||||||
|
|
||||||
* `scheme` String
|
* `scheme` String
|
||||||
* `callback` Function
|
|
||||||
|
|
||||||
변경된 프로토콜의 작업을 해제합니다.
|
변경된 프로토콜의 작업을 해제합니다.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# remote
|
# remote
|
||||||
|
|
||||||
`remote` 모듈은 메인 프로세스와 랜더러 프로세스 사이에 inter-process 통신을 하기 위한 가장 간단한 방법입니다.
|
The `remote` module provides a simple way to do inter-process communication
|
||||||
|
between the renderer process and the main process.
|
||||||
|
|
||||||
In Electron, only GUI-unrelated modules are available in the renderer process.
|
In Electron, only GUI-unrelated modules are available in the renderer process.
|
||||||
Without the `remote` module, users who wanted to call a main process API in
|
Without the `remote` module, users who wanted to call a main process API in
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
# screen
|
# screen
|
||||||
|
|
||||||
`screen` 모듈은 화면 크기, 디스플레이, 커서 위치 등등의 다양한 정보를 가져옵니다.
|
Gets various info about screen size, displays, cursor position, etc. You should
|
||||||
이 모듈은 `app` 모듈의 `ready` 이벤트가 발생하기 전까지 사용할 수 없습니다.
|
not use this module until the `ready` event of `app` module gets emitted.
|
||||||
|
|
||||||
`screen`은 [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)를 상속 받았습니다.
|
`screen` is an [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter).
|
||||||
|
|
||||||
한가지 주의할 점은 랜더러 / DevTools에선 이 모듈의 이름인 `screen`은 이미 DOM 속성에 `window.screen`로 존재 하므로 `screen = require('screen')`를
|
Make sure to note that in the renderer / DevTools, `window.screen` is a reserved DOM property, so writing `screen = require('screen')` won't work. In our examples below, we use `atomScreen` as the variable name instead.
|
||||||
사용할 수 없습니다. 밑의 예제와 같이 `atomScreen`등의 이름으로 변수 이름을 대체하여 사용해야 합니다.
|
|
||||||
|
|
||||||
다음 예제는 화면 전체를 채우는 윈도우 창을 생성합니다:
|
An example of creating a window that fills the whole screen:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var app = require('app');
|
var app = require('app');
|
||||||
|
@ -23,7 +22,7 @@ app.on('ready', function() {
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
다음 예제는 확장 디스플레이에 윈도우를 생성합니다:
|
Another example of creating a window in the external display:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var app = require('app');
|
var app = require('app');
|
||||||
|
@ -56,14 +55,14 @@ app.on('ready', function() {
|
||||||
* `event` Event
|
* `event` Event
|
||||||
* `newDisplay` Object
|
* `newDisplay` Object
|
||||||
|
|
||||||
새로운 디스플레이가 추가되면 발생합니다.
|
Emitted when `newDisplay` has been added.
|
||||||
|
|
||||||
## Event: display-removed
|
## Event: display-removed
|
||||||
|
|
||||||
* `event` Event
|
* `event` Event
|
||||||
* `oldDisplay` Object
|
* `oldDisplay` Object
|
||||||
|
|
||||||
기존의 디스플레이가 제거되면 발생합니다.
|
Emitted when `oldDisplay` has been removed.
|
||||||
|
|
||||||
## Event: display-metrics-changed
|
## Event: display-metrics-changed
|
||||||
|
|
||||||
|
@ -71,21 +70,21 @@ app.on('ready', function() {
|
||||||
* `display` Object
|
* `display` Object
|
||||||
* `changedMetrics` Array
|
* `changedMetrics` Array
|
||||||
|
|
||||||
`display`의 하나 또는 다수의 매트릭스가 변경될 경우 발생합니다.
|
Emitted when a `display` has one or more metrics changed, `changedMetrics` is
|
||||||
`changedMetrics`는 변경에 대한 정보를 담은 문자열의 배열입니다.
|
an array of strings that describe the changes. Possible changes are `bounds`,
|
||||||
`bounds`, `workArea`, `scaleFactor`, `rotation`등이 변경될 수 있습니다.
|
`workArea`, `scaleFactor` and `rotation`.
|
||||||
|
|
||||||
## screen.getCursorScreenPoint()
|
## screen.getCursorScreenPoint()
|
||||||
|
|
||||||
현재 마우스 포인터의 절대 위치를 반환합니다.
|
Returns the current absolute position of the mouse pointer.
|
||||||
|
|
||||||
## screen.getPrimaryDisplay()
|
## screen.getPrimaryDisplay()
|
||||||
|
|
||||||
기본 디스플레이를 반환합니다.
|
Returns the primary display.
|
||||||
|
|
||||||
## screen.getAllDisplays()
|
## screen.getAllDisplays()
|
||||||
|
|
||||||
사용 가능한 모든 디스플레이를 배열로 반환합니다.
|
Returns an array of displays that are currently available.
|
||||||
|
|
||||||
## screen.getDisplayNearestPoint(point)
|
## screen.getDisplayNearestPoint(point)
|
||||||
|
|
||||||
|
@ -93,7 +92,7 @@ app.on('ready', function() {
|
||||||
* `x` Integer
|
* `x` Integer
|
||||||
* `y` Integer
|
* `y` Integer
|
||||||
|
|
||||||
지정한 좌표에 가까운 디스플레이를 반환합니다.
|
Returns the display nearest the specified point.
|
||||||
|
|
||||||
## screen.getDisplayMatching(rect)
|
## screen.getDisplayMatching(rect)
|
||||||
|
|
||||||
|
@ -103,4 +102,4 @@ app.on('ready', function() {
|
||||||
* `width` Integer
|
* `width` Integer
|
||||||
* `height` Integer
|
* `height` Integer
|
||||||
|
|
||||||
지정한 범위에 가장 가깝게 교차한 디스플레이를 반환합니다.
|
Returns the display that most closely intersects the provided bounds.
|
||||||
|
|
|
@ -26,7 +26,7 @@ shell.openExternal('https://github.com');
|
||||||
* `url` String
|
* `url` String
|
||||||
|
|
||||||
제공된 외부 프로토콜 URL을 기반으로 데스크톱의 기본 프로그램으로 엽니다. (예를 들어 mailto: URL은 해당 URL을 기본 메일 에이전트로 엽니다.)
|
제공된 외부 프로토콜 URL을 기반으로 데스크톱의 기본 프로그램으로 엽니다. (예를 들어 mailto: URL은 해당 URL을 기본 메일 에이전트로 엽니다.)
|
||||||
역주: 폴더는 'file:\\\\C:\\'와 같이 지정하여 열 수 있습니다. (`\\`로 경로를 표현한 이유는 Escape 문자열을 참고하세요.)
|
역자주: 폴더는 'file:\\\\C:\\'와 같이 지정하여 열 수 있습니다. (`\\`로 경로를 표현한 이유는 Escape 문자열을 참고하세요.)
|
||||||
|
|
||||||
## shell.moveItemToTrash(fullPath)
|
## shell.moveItemToTrash(fullPath)
|
||||||
|
|
||||||
|
|
|
@ -89,16 +89,7 @@ $ ./script/clean.py
|
||||||
|
|
||||||
## 문제 해결
|
## 문제 해결
|
||||||
|
|
||||||
개발 종속성 라이브러리들을 제대로 설치했는지 확인하세요.
|
개발 종속성 라이브러리들을 제대로 설치했는지 확인하세요.
|
||||||
|
|
||||||
## libtinfo.so.5 동적 링크 라이브러리를 로드하는 도중 에러가 발생할 경우
|
|
||||||
|
|
||||||
미리 빌드된 `clang`은 `libtinfo.so.5`로 링크를 시도합니다.
|
|
||||||
플랫폼에 따라 적당한 `libncurses` symlink를 추가하세요.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5
|
|
||||||
```
|
|
||||||
|
|
||||||
## 테스트
|
## 테스트
|
||||||
|
|
||||||
|
|
|
@ -25,14 +25,9 @@ Electron도 상당히 비슷한 접근을 했습니다:
|
||||||
|
|
||||||
## 부트스트랩 최소화
|
## 부트스트랩 최소화
|
||||||
|
|
||||||
Prebuilt된 모든 Chromium 바이너리들은 부트스트랩 스크립트가 실행될 때 다운로드됩니다.
|
모든 사전 빌드 된 Chromium 바이너리들은 부트스트랩 스크립트가 실행될 때 다운로드됩니다.
|
||||||
기본적으로 공유 라이브러리와 정적 라이브러리 모두 다운로드되며 최종 전체 파일 크기는 플랫폼에 따라 800MB에서 2GB까지 차지합니다.
|
기본적으로 공유 라이브러리와 정적 라이브러리 모두 다운로드되며 최종 전체 파일 크기는 플랫폼에 따라 800MB에서 2GB까지 차지합니다.
|
||||||
|
|
||||||
기본적으로 libchromiumcontent는 Amazon Web Service를 통해 다운로드 됩니다.
|
|
||||||
만약 `LIBCHROMIUMCONTENT_MIRROR` 환경 변수가 설정되어 있으면 부트스트랩은 해당 링크를 사용하여 바이너리를 다운로드 합니다.
|
|
||||||
[libchromiumcontent-qiniu-mirror](https://github.com/hokein/libchromiumcontent-qiniu-mirror)는 libchromiumcontent의 미러입니다.
|
|
||||||
만약 AWS에 접근할 수 없다면 `export LIBCHROMIUMCONTENT_MIRROR=http://7xk3d2.dl1.z0.glb.clouddn.com/`를 통해 다운로드 할 수 있습니다.
|
|
||||||
|
|
||||||
만약 빠르게 Electron의 개발 또는 테스트만 하고 싶다면 `--dev` 플래그를 추가하여 공유 라이브러리만 다운로드할 수 있습니다:
|
만약 빠르게 Electron의 개발 또는 테스트만 하고 싶다면 `--dev` 플래그를 추가하여 공유 라이브러리만 다운로드할 수 있습니다:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
@ -99,7 +99,7 @@ MyApp.app/Contents
|
||||||
실행파일 `electron`의 이름을 원하는 대로 바꿀 수 있습니다.
|
실행파일 `electron`의 이름을 원하는 대로 바꿀 수 있습니다.
|
||||||
리눅스 어플리케이션의 아이콘은 [.desktop](https://developer.gnome.org/integration-guide/stable/desktop-files.html.en) 파일을 사용하여 지정할 수 있습니다.
|
리눅스 어플리케이션의 아이콘은 [.desktop](https://developer.gnome.org/integration-guide/stable/desktop-files.html.en) 파일을 사용하여 지정할 수 있습니다.
|
||||||
|
|
||||||
### 역주-자동화
|
### 역자주-자동화
|
||||||
|
|
||||||
배포시에 Electron의 리소스를 일일이 수정하는 것은 매우 귀찮고 복잡합니다.
|
배포시에 Electron의 리소스를 일일이 수정하는 것은 매우 귀찮고 복잡합니다.
|
||||||
하지만 이 작업을 자동화 시킬 수 있는 몇가지 방법이 있습니다:
|
하지만 이 작업을 자동화 시킬 수 있는 몇가지 방법이 있습니다:
|
||||||
|
|
|
@ -75,8 +75,6 @@ var mainWindow = null;
|
||||||
|
|
||||||
// 모든 창이 닫히면 어플리케이션 종료.
|
// 모든 창이 닫히면 어플리케이션 종료.
|
||||||
app.on('window-all-closed', function() {
|
app.on('window-all-closed', function() {
|
||||||
// OSX의 대부분의 어플리케이션에선 유저가 Cmd + Q 커맨드로 확실하게 종료하기 전까지는
|
|
||||||
// 어플리케이션이 메뉴바에 남아 계속 실행됩니다.
|
|
||||||
if (process.platform != 'darwin') {
|
if (process.platform != 'darwin') {
|
||||||
app.quit();
|
app.quit();
|
||||||
}
|
}
|
||||||
|
@ -114,16 +112,16 @@ app.on('ready', function() {
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>헬로 월드!</h1>
|
<h1>헬로 월드!</h1>
|
||||||
이 어플리케이션은 io.js <script>document.write(process.version)</script> 과
|
우리는 io.js <script>document.write(process.version)</script> 버전과
|
||||||
Electron <script>document.write(process.versions['electron'])</script>을 사용합니다.
|
Electron <script>document.write(process.versions['electron'])</script> 버전을 사용합니다.
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
|
|
||||||
## 앱 실행하기
|
## 앱 실행하기
|
||||||
|
|
||||||
앱을 작성한 후 [어플리케이션 배포](./application-distribution-ko.md) 가이드를 따라 앱을 패키징 하고 패키징한 앱을 실행할 수 있습니다.
|
앱을 작성한 후 [어플리케이션 배포](./application-distribution-ko.md) 가이드를 따라 앱을 패키징 하고
|
||||||
또는 Electron 실행파일을 다운로드 받아 바로 실행해 볼 수도 있습니다.
|
패키징한 앱을 실행해 볼 수 있습니다. 또한 Electron 실행파일을 다운로드 받아 바로 실행해 볼 수도 있습니다.
|
||||||
|
|
||||||
Windows의 경우:
|
Windows의 경우:
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# 네이티브 node 모듈 사용하기
|
# 네이티브 node 모듈 사용하기
|
||||||
|
|
||||||
__역주: 현재 Electron은 node.js대신 io.js를 사용합니다. 문서에 기재된 버전과 다를 수 있습니다__
|
__역자주: 현재 Electron은 node.js대신 io.js를 사용합니다. 문서에 기재된 버전과 다를 수 있습니다__
|
||||||
|
|
||||||
Electron에선 node.js 네이티브 모듈이 지원됩니다. 하지만 Electron은 공식 node.js의 V8 엔진과는 달리 다른 V8 버전을 사용합니다.
|
Electron에선 node.js 네이티브 모듈이 지원됩니다. 하지만 Electron은 공식 node.js의 V8 엔진과는 달리 다른 V8 버전을 사용합니다.
|
||||||
그런 이유로 네이티브 모듈을 사용하기 위해선 Electron의 V8 버전에 맞춰 네이티브 모듈을 다시 빌드하고 헤더를 변경해야 합니다.
|
그런 이유로 네이티브 모듈을 사용하기 위해선 Electron의 V8 버전에 맞춰 네이티브 모듈을 다시 빌드하고 헤더를 변경해야 합니다.
|
||||||
|
@ -34,11 +34,11 @@ Node 모듈을 `node-gyp`를 사용하여 Electron을 타겟으로 빌드할 땐
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cd /path-to-module/
|
$ cd /path-to-module/
|
||||||
$ HOME=~/.electron-gyp node-gyp rebuild --target=0.29.1 --arch=x64 --dist-url=https://atom.io/download/atom-shell
|
$ HOME=~/.electron-gyp node-gyp rebuild --target=0.25.0 --arch=ia64 --dist-url=https://atom.io/download/atom-shell
|
||||||
```
|
```
|
||||||
|
|
||||||
`HOME=~/.electron-gyp`은 변경할 헤더의 위치를 찾습니다. `--target=0.29.1`은 Electron의 버전입니다.
|
`HOME=~/.electron-gyp`은 변경할 헤더의 위치를 찾습니다. `--target=0.25.0`은 Electron의 버전입니다.
|
||||||
`--dist-url=...`은 헤더를 다운로드 하는 주소입니다. `--arch=x64`는 64비트 시스템을 타겟으로 빌드 한다는 것을 `node-gyp`에게 알려줍니다.
|
`--dist-url=...`은 헤더를 다운로드 하는 주소입니다. `--arch=ia64`는 64비트 시스템을 타겟으로 빌드 한다는 것을 `node-gyp`에게 알려줍니다.
|
||||||
|
|
||||||
### npm을 이용한 방법
|
### npm을 이용한 방법
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ $ HOME=~/.electron-gyp node-gyp rebuild --target=0.29.1 --arch=x64 --dist-url=ht
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export npm_config_disturl=https://atom.io/download/atom-shell
|
export npm_config_disturl=https://atom.io/download/atom-shell
|
||||||
export npm_config_target=0.29.1
|
export npm_config_target=0.25.0
|
||||||
export npm_config_arch=x64
|
export npm_config_arch=x64
|
||||||
HOME=~/.electron-gyp npm install module-name
|
HOME=~/.electron-gyp npm install module-name
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue