From b73d90094f1eb6d0d661f8d4e16ebb04030ab051 Mon Sep 17 00:00:00 2001 From: Plusb Preco Date: Wed, 29 Jun 2016 22:34:51 +0900 Subject: [PATCH 1/3] :memo: Update Korean docs as upstream [ci skip] --- docs-translations/ko-KR/api/browser-window.md | 9 +- docs-translations/ko-KR/api/clipboard.md | 16 ++++ docs-translations/ko-KR/api/menu-item.md | 9 +- docs-translations/ko-KR/api/menu.md | 39 +-------- docs-translations/ko-KR/api/native-image.md | 4 +- docs-translations/ko-KR/api/session.md | 19 ++++- .../ko-KR/api/system-preferences.md | 16 ++++ docs-translations/ko-KR/api/tray.md | 82 ++++++++++--------- docs-translations/ko-KR/api/web-contents.md | 47 ++++++----- docs-translations/ko-KR/styleguide.md | 24 +++--- .../ko-KR/tutorial/debugging-main-process.md | 23 +++--- .../ko-KR/tutorial/quick-start.md | 2 +- 12 files changed, 168 insertions(+), 122 deletions(-) diff --git a/docs-translations/ko-KR/api/browser-window.md b/docs-translations/ko-KR/api/browser-window.md index b65f50911fbb..e303a0c30851 100644 --- a/docs-translations/ko-KR/api/browser-window.md +++ b/docs-translations/ko-KR/api/browser-window.md @@ -894,7 +894,7 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고 ### `win.setHasShadow(hasShadow)` _macOS_ -* `hasShadow` (Boolean) +* `hasShadow` Boolean 윈도우가 그림자를 가질지 여부를 지정합니다. Windows와 Linux에선 아무 일도 일어나지 않습니다. @@ -995,6 +995,13 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고 이 윈도우에서 일어나는 모든 마우스 이벤트가 이 윈도우 밑의 윈도우로 전달됩니다. 하지만 이 윈도우가 포커스되어 있다면, 여전히 키보드 이벤트는 받을 수 있습니다. +### `win.setContentProtection(enable)` _macOS_ _Windows_ + +Prevents the window contents from being captured by other apps. + +On macOS it sets the NSWindow's sharingType to NSWindowSharingNone. +On Windows it calls SetWindowDisplayAffinity with WDA_MONITOR. + ### `win.setFocusable(focusable)` _Windows_ * `focusable` Boolean diff --git a/docs-translations/ko-KR/api/clipboard.md b/docs-translations/ko-KR/api/clipboard.md index 48b1b21b57c6..de0807cb2049 100644 --- a/docs-translations/ko-KR/api/clipboard.md +++ b/docs-translations/ko-KR/api/clipboard.md @@ -76,6 +76,20 @@ console.log(clipboard.readText('selection')); 클립보드에 `text`를 RTF 형식으로 씁니다. +### `clipboard.readBookmark()` _macOS_ _Windows_ + +Returns an Object containing `title` and `url` keys representing the bookmark in +the clipboard. The `title` and `url` values will be empty strings when the +bookmark is unavailable. + +### `clipboard.writeBookmark(title, url[, type])` _macOS_ _Windows_ + +* `title` String +* `url` String +* `type` String (optional) + +Writes the `title` and `url` into the clipboard as a bookmark. + ### `clipboard.clear([type])` * `type` String (optional) @@ -110,6 +124,8 @@ console.log(clipboard.has('

selection

')); * `text` String * `html` String * `image` [NativeImage](native-image.md) + * `rtf` String + * `bookmark` String - `text`에 있는 URL의 텍스트. * `type` String (optional) ```javascript diff --git a/docs-translations/ko-KR/api/menu-item.md b/docs-translations/ko-KR/api/menu-item.md index 254fec147f1a..3e011630bc8e 100644 --- a/docs-translations/ko-KR/api/menu-item.md +++ b/docs-translations/ko-KR/api/menu-item.md @@ -11,8 +11,8 @@ ### new MenuItem(options) * `options` Object - * `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow)` - 형태로 호출 되는 콜백 함수 + * `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow, + event)` 형태로 호출 되는 콜백 함수 * `role` String - 메뉴 아이템의 액션을 정의합니다; 이 속성을 지정하면 `click` 속성이 무시됩니다. * `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`, @@ -39,6 +39,9 @@ 함수로 일일이 구현하려 시도하는 것 보다 더 좋을 수 있습니다. 빌트-인 `role` 동작은 더 좋은 네이티브 경험을 제공할 것입니다. +`role`을 사용하는 동안에는 `label`과 `accelerator`는 필수가 아니며 각 플랫폼에 대해 +적합한 값이 기본값으로 사용됩니다. + `role` 속성은 다음 값을 가질 수 있습니다: * `undo` @@ -51,6 +54,8 @@ * `delete` * `minimize` - 현재 윈도우를 최소화합니다 * `close` - 현재 윈도우를 닫습니다 +* `quit`- 애플리케이션을 닫습니다 +* `togglefullscreen` - 현재 윈도우에서 전체 화면 모드를 토글합니다 macOS에서의 `role`은 다음 값을 추가로 가질 수 있습니다: diff --git a/docs-translations/ko-KR/api/menu.md b/docs-translations/ko-KR/api/menu.md index 36e6c091c170..c6ba3a6bb908 100644 --- a/docs-translations/ko-KR/api/menu.md +++ b/docs-translations/ko-KR/api/menu.md @@ -38,45 +38,30 @@ const template = [ label: 'Edit', submenu: [ { - label: 'Undo', - accelerator: 'CmdOrCtrl+Z', role: 'undo' }, { - label: 'Redo', - accelerator: 'Shift+CmdOrCtrl+Z', role: 'redo' }, { type: 'separator' }, { - label: 'Cut', - accelerator: 'CmdOrCtrl+X', role: 'cut' }, { - label: 'Copy', - accelerator: 'CmdOrCtrl+C', role: 'copy' }, { - label: 'Paste', - accelerator: 'CmdOrCtrl+V', role: 'paste' }, { - label: 'Paste and Match Style', - accelerator: 'Shift+Command+V', role: 'pasteandmatchstyle' }, { - label: 'Delete', role: 'delete' }, { - label: 'Select All', - accelerator: 'CmdOrCtrl+A', role: 'selectall' }, ] @@ -92,12 +77,7 @@ const template = [ } }, { - label: 'Toggle Full Screen', - accelerator: process.platform === 'darwin' ? 'Ctrl+Command+F' : 'F11', - click(item, focusedWindow) { - if (focusedWindow) - focusedWindow.setFullScreen(!focusedWindow.isFullScreen()); - } + role: 'togglefullscreen' }, { label: 'Toggle Developer Tools', @@ -110,23 +90,17 @@ const template = [ ] }, { - label: 'Window', role: 'window', submenu: [ { - label: 'Minimize', - accelerator: 'CmdOrCtrl+M', role: 'minimize' }, { - label: 'Close', - accelerator: 'CmdOrCtrl+W', role: 'close' }, ] }, { - label: 'Help', role: 'help', submenu: [ { @@ -143,14 +117,12 @@ if (process.platform === 'darwin') { label: name, submenu: [ { - label: 'About ' + name, role: 'about' }, { type: 'separator' }, { - label: 'Services', role: 'services', submenu: [] }, @@ -158,26 +130,19 @@ if (process.platform === 'darwin') { type: 'separator' }, { - label: 'Hide ' + name, - accelerator: 'Command+H', role: 'hide' }, { - label: 'Hide Others', - accelerator: 'Command+Alt+H', role: 'hideothers' }, { - label: 'Show All', role: 'unhide' }, { type: 'separator' }, { - label: 'Quit', - accelerator: 'Command+Q', - click() { app.quit(); } + role: 'quit' }, ] }); diff --git a/docs-translations/ko-KR/api/native-image.md b/docs-translations/ko-KR/api/native-image.md index d44f000a1c90..dfdc180b6c78 100644 --- a/docs-translations/ko-KR/api/native-image.md +++ b/docs-translations/ko-KR/api/native-image.md @@ -125,11 +125,11 @@ let image = nativeImage.createFromPath('/Users/somebody/images/icon.png'); `nativeImage` 인스턴스 객체에서 사용할 수 있는 메서드입니다. -### `image.toPng()` +### `image.toPNG()` `PNG` 이미지를 인코딩한 데이터를 [Buffer][buffer]로 반환합니다. -### `image.toJpeg(quality)` +### `image.toJPEG(quality)` * `quality` Integer (**required**) 0 - 100 사이의 값 diff --git a/docs-translations/ko-KR/api/session.md b/docs-translations/ko-KR/api/session.md index a2dc9b682a6b..d685b6c569ad 100644 --- a/docs-translations/ko-KR/api/session.md +++ b/docs-translations/ko-KR/api/session.md @@ -232,7 +232,7 @@ proxyURL = ["://"][":"] * `http=foopy;socks=foopy2` - http:// URL에 `foopy` HTTP 프록시를 사용합니다. 그리고 `socks4://foopy2` 프록시를 다른 모든 URL에 사용합니다. -### `app.resolveProxy(url, callback)` +#### `ses.resolveProxy(url, callback)` * `url` URL * `callback` Function @@ -339,6 +339,23 @@ session.defaultSession.allowNTLMCredentialsForDomains('*example.com, *foobar.com session.defaultSession.allowNTLMCredentialsForDomains('*') ``` +#### `ses.setUserAgent(userAgent[, acceptLanguages])` + +* `userAgent` String +* `acceptLanguages` String (optional) + +Overrides the `userAgent` and `acceptLanguages` for this session. + +The `acceptLanguages` must a comma separated ordered list of language codes, for +example `"en-US,fr,de,ko,zh-CN,ja"`. + +This doesn't affect existing `WebContents`, and each `WebContents` can use +`webContents.setUserAgent` to override the session-wide user agent. + +#### `ses.getUserAgent()` + +Returns a `String` representing the user agent for this session. + #### `ses.webRequest` `webRequest` API는 생명주기의 다양한 단계에 맞춰 요청 콘텐츠를 가로채거나 변경할 수 diff --git a/docs-translations/ko-KR/api/system-preferences.md b/docs-translations/ko-KR/api/system-preferences.md index 254bd006874d..d8170b73cf3e 100644 --- a/docs-translations/ko-KR/api/system-preferences.md +++ b/docs-translations/ko-KR/api/system-preferences.md @@ -2,6 +2,11 @@ > 시스템 설정을 가져옵니다. +```javascript +const {systemPreferences} = require('electron'); +console.log(systemPreferences.isDarkMode()); +``` + ## Methods ### `systemPreferences.isDarkMode()` _macOS_ @@ -34,6 +39,17 @@ macOS의 네이티브 알림을 구독하며, 해당하는 `event`가 발생하 `id`와 함께 구독자를 제거합니다. +### `systemPreferences.subscribeLocalNotification(event, callback)` _macOS_ + +`subscribeNotification`와 같지만, 로컬 기본값으로 `NSNotificationCenter`를 +사용합니다. 다음과 같은 이벤트에 필수적입니다: + +* `NSUserDefaultsDidChangeNotification` + +### `systemPreferences.unsubscribeLocalNotification(id)` _macOS_ + +`unsubscribeNotification`와 같지만, `NSNotificationCenter`에서 구독자를 제거합니다. + ### `systemPreferences.getUserDefault(key, type)` _macOS_ * `key` String diff --git a/docs-translations/ko-KR/api/tray.md b/docs-translations/ko-KR/api/tray.md index 95fe59fd597b..06862cada2ee 100644 --- a/docs-translations/ko-KR/api/tray.md +++ b/docs-translations/ko-KR/api/tray.md @@ -3,20 +3,20 @@ > 아이콘과 컨텍스트 메뉴를 시스템 알림 영역에 추가합니다. ```javascript -const {app, Menu, Tray} = require('electron'); +const {app, Menu, Tray} = require('electron') -let appIcon = null; +let tray = null app.on('ready', () => { - appIcon = new Tray('/path/to/my/icon'); // 현재 애플리케이션 디렉터리를 기준으로 하려면 `__dirname + '/images/tray.png'` 형식으로 입력해야 합니다. + tray = new Tray('/path/to/my/icon') // 현재 애플리케이션 디렉터리를 기준으로 하려면 `__dirname + '/images/tray.png'` 형식으로 입력해야 합니다. const contextMenu = Menu.buildFromTemplate([ {label: 'Item1', type: 'radio'}, {label: 'Item2', type: 'radio'}, {label: 'Item3', type: 'radio', checked: true}, {label: 'Item4', type: 'radio'} ]); - appIcon.setToolTip('이것은 나의 애플리케이션 입니다!'); - appIcon.setContextMenu(contextMenu); -}); + tray.setToolTip('이것은 나의 애플리케이션 입니다!') + tray.setContextMenu(contextMenu) +}) ``` __플랫폼별 한계:__ @@ -33,8 +33,8 @@ __플랫폼별 한계:__ 호출해야 합니다. 예를 들면: ```javascript -contextMenu.items[2].checked = false; -appIcon.setContextMenu(contextMenu); +contextMenu.items[2].checked = false +appIcon.setContextMenu(contextMenu) ``` 이러한 이유로 Tray API가 모든 플랫폼에서 똑같이 작동하게 하고 싶다면 `click` 이벤트에 @@ -50,20 +50,18 @@ appIcon.setContextMenu(contextMenu); 전달된 `image`를 이용하여 트레이 아이콘을 만듭니다. -## Events +### Instance Events `Tray` 모듈은 다음과 같은 이벤트를 가지고 있습니다: -**참고:** 몇몇 이벤트는 특정한 플랫폼에서만 작동합니다. - -### Event: 'click' +#### Event: 'click' * `event` Event * `altKey` Boolean * `shiftKey` Boolean * `ctrlKey` Boolean * `metaKey` Boolean -* `bounds` Object - 트레이 아이콘의 범위 +* `bounds` Object _macOS_ _Windows_ - 트레이 아이콘의 범위 * `x` Integer * `y` Integer * `width` Integer @@ -71,9 +69,7 @@ appIcon.setContextMenu(contextMenu); 트레이 아이콘이 클릭될 때 발생하는 이벤트입니다. -**참고:** `bounds`는 macOS 와 Windows에서만 작동합니다. - -### Event: 'right-click' _macOS_ _Windows_ +#### Event: 'right-click' _macOS_ _Windows_ * `event` Event * `altKey` Boolean @@ -88,7 +84,7 @@ appIcon.setContextMenu(contextMenu); 트레이 아이콘을 오른쪽 클릭될 때 호출 됩니다. -### Event: 'double-click' _macOS_ _Windows_ +#### Event: 'double-click' _macOS_ _Windows_ * `event` Event * `altKey` Boolean @@ -103,83 +99,81 @@ appIcon.setContextMenu(contextMenu); 트레이 아이콘이 더블 클릭될 때 발생하는 이벤트입니다. -### Event: 'balloon-show' _Windows_ +#### Event: 'balloon-show' _Windows_ 풍선 팝업이 보여질 때 발생하는 이벤트입니다. -### Event: 'balloon-click' _Windows_ +#### Event: 'balloon-click' _Windows_ 풍선 팝업이 클릭될 때 발생하는 이벤트입니다. -### Event: 'balloon-closed' _Windows_ +#### Event: 'balloon-closed' _Windows_ 풍선 팝업이 시간이 지나 사라지거나 유저가 클릭하여 닫을 때 발생하는 이벤트입니다. -### Event: 'drop' _macOS_ +#### Event: 'drop' _macOS_ 드래그 가능한 아이템이 트레이 아이콘에 드롭되면 발생하는 이벤트입니다. -### Event: 'drop-files' _macOS_ +#### Event: 'drop-files' _macOS_ -* `event` +* `event` Event * `files` Array - 드롭된 파일의 경로 트레이 아이콘에 파일이 드롭되면 발생하는 이벤트입니다. -### Event: 'drag-enter' _macOS_ +#### Event: 'drag-enter' _macOS_ 트레이 아이콘에 드래그 작업이 시작될 때 발생하는 이벤트입니다. -### Event: 'drag-leave' _macOS_ +#### Event: 'drag-leave' _macOS_ 트레이 아이콘에 드래그 작업이 종료될 때 발생하는 이벤트입니다. -### Event: 'drag-end' _macOS_ +#### Event: 'drag-end' _macOS_ 트레이 아이콘에 드래그 작업이 종료되거나 다른 위치에서 종료될 때 발생하는 이벤트입니다. -## Methods +### Instance Methods -`Tray` 모듈은 다음과 같은 메서드를 가지고 있습니다: +`Tray` 클래스는 다음과 같은 메서드를 가지고 있습니다: -**참고:** 몇몇 메서드는 특정 플랫폼에서만 작동합니다. - -### `Tray.destroy()` +#### `tray.destroy()` 트레이 아이콘을 즉시 삭제시킵니다. -### `Tray.setImage(image)` +#### `tray.setImage(image)` * `image` [NativeImage](native-image.md) `image`를 사용하여 트레이 아이콘의 이미지를 설정합니다. -### `Tray.setPressedImage(image)` _macOS_ +#### `tray.setPressedImage(image)` _macOS_ * `image` [NativeImage](native-image.md) `image`를 사용하여 트레이 아이콘이 눌렸을 때의 이미지를 설정합니다. -### `Tray.setToolTip(toolTip)` +#### `tray.setToolTip(toolTip)` * `toolTip` String 트레이 아이콘의 툴팁 텍스트를 설정합니다. -### `Tray.setTitle(title)` _macOS_ +#### `tray.setTitle(title)` _macOS_ * `title` String 상태바에서 트레이 아이콘 옆에 표시되는 제목 텍스트를 설정합니다. -### `Tray.setHighlightMode(highlight)` _macOS_ +#### `tray.setHighlightMode(highlight)` _macOS_ * `highlight` Boolean 트레이 아이콘이 클릭됐을 때 아이콘의 배경이 파란색으로 하이라이트 될지 여부를 지정합니다. 기본값은 true입니다. -### `Tray.displayBalloon(options)` _Windows_ +#### `tray.displayBalloon(options)` _Windows_ * `options` Object * `icon` [NativeImage](native-image.md) @@ -188,7 +182,7 @@ appIcon.setContextMenu(contextMenu); 트레이에 풍선 팝업을 생성합니다. -### `Tray.popUpContextMenu([menu, position])` _macOS_ _Windows_ +#### `tray.popUpContextMenu([menu, position])` _macOS_ _Windows_ * `menu` Menu (optional) * `position` Object (optional) - 팝업 메뉴의 위치 @@ -200,10 +194,20 @@ appIcon.setContextMenu(contextMenu); `position`은 Windows에서만 사용할 수 있으며 기본값은 (0, 0)입니다. -### `Tray.setContextMenu(menu)` +### `tray.setContextMenu(menu)` * `menu` Menu 트레이에 컨텍스트 메뉴를 설정합니다. +### `tray.getBounds()` _macOS_ _Windows_ + +Returns the `bounds` of this tray icon as `Object`. + +* `bounds` Object + * `x` Integer + * `y` Integer + * `width` Integer + * `height` Integer + [event-emitter]: http://nodejs.org/api/events.html#events_class_events_eventemitter diff --git a/docs-translations/ko-KR/api/web-contents.md b/docs-translations/ko-KR/api/web-contents.md index e0e5fd777123..87fe9ebd4210 100644 --- a/docs-translations/ko-KR/api/web-contents.md +++ b/docs-translations/ko-KR/api/web-contents.md @@ -349,23 +349,25 @@ Returns: 표시합니다. 자세한 사항은 아래를 참고하세요. `mediaFlags`는 다음과 같은 속성을 가지고 있습니다: - * `inError` Boolean - 미디어 객체가 크래시되었는지 여부. - * `isPaused` Boolean - 미디어 객체가 일시중지되었는지 여부. - * `isMuted` Boolean - 미디어 객체가 음소거되었는지 여부. - * `hasAudio` Boolean - 미디어 객체가 오디오를 가지고 있는지 여부. - * `isLooping` Boolean - 미디어 객체가 루프중인지 여부. - * `isControlsVisible` Boolean - 미디어 객체의 컨트롤이 보이는지 여부. - * `canToggleControls` Boolean - 미디어 객체의 컨트롤을 토글할 수 있는지 여부. - * `canRotate` Boolean - 미디어 객체를 돌릴 수 있는지 여부. + +* `inError` Boolean - 미디어 객체가 크래시되었는지 여부. +* `isPaused` Boolean - 미디어 객체가 일시중지되었는지 여부. +* `isMuted` Boolean - 미디어 객체가 음소거되었는지 여부. +* `hasAudio` Boolean - 미디어 객체가 오디오를 가지고 있는지 여부. +* `isLooping` Boolean - 미디어 객체가 루프중인지 여부. +* `isControlsVisible` Boolean - 미디어 객체의 컨트롤이 보이는지 여부. +* `canToggleControls` Boolean - 미디어 객체의 컨트롤을 토글할 수 있는지 여부. +* `canRotate` Boolean - 미디어 객체를 돌릴 수 있는지 여부. `editFlags`는 다음과 같은 속성을 가지고 있습니다: - * `canUndo` Boolean - 렌더러에서 실행 취소할 수 있는지 여부. - * `canRedo` Boolean - 렌더러에서 다시 실행할 수 있는지 여부. - * `canCut` Boolean - 렌더러에서 잘라내기를 실행할 수 있는지 여부. - * `canCopy` Boolean - 렌더러에서 복사를 실행할 수 있는지 여부. - * `canPaste` Boolean - 렌더러에서 붙여넣기를 실행할 수 있는지 여부. - * `canDelete` Boolean - 렌더러에서 삭제를 실행할 수 있는지 여부. - * `canSelectAll` Boolean - 렌더러에서 모두 선택을 실행할 수 있는지 여부. + +* `canUndo` Boolean - 렌더러에서 실행 취소할 수 있는지 여부. +* `canRedo` Boolean - 렌더러에서 다시 실행할 수 있는지 여부. +* `canCut` Boolean - 렌더러에서 잘라내기를 실행할 수 있는지 여부. +* `canCopy` Boolean - 렌더러에서 복사를 실행할 수 있는지 여부. +* `canPaste` Boolean - 렌더러에서 붙여넣기를 실행할 수 있는지 여부. +* `canDelete` Boolean - 렌더러에서 삭제를 실행할 수 있는지 여부. +* `canSelectAll` Boolean - 렌더러에서 모두 선택을 실행할 수 있는지 여부. 새로운 컨텍스트 메뉴의 제어가 필요할 때 발생하는 이벤트입니다. @@ -904,12 +906,14 @@ Input `event`를 웹 페이지로 전송합니다. * `hasPreciseScrollingDeltas` Boolean * `canScroll` Boolean -### `webContents.beginFrameSubscription(callback)` +### `webContents.beginFrameSubscription([onlyDirty ,]callback)` +* `onlyDirty` Boolean (optional) - 기본값은 `false`입니다. * `callback` Function 캡처된 프레임과 프레젠테이션 이벤트를 구독하기 시작합니다. `callback`은 -프레젠테이션 이벤트가 발생했을 때 `callback(frameBuffer)` 형태로 호출됩니다. +프레젠테이션 이벤트가 발생했을 때 `callback(frameBuffer, dirtyRect)` 형태로 +호출됩니다. `frameBuffer`는 raw 픽셀 데이터를 가지고 있는 `Buffer` 객체입니다. 많은 장치에서 32비트 BGRA 포맷을 사용하여 효율적으로 픽셀 데이터를 저장합니다. 하지만 실질적인 @@ -917,6 +921,11 @@ Input `event`를 웹 페이지로 전송합니다. 프로세서에선 little-endian 방식을 사용하므로 위의 포맷을 그대로 표현합니다. 하지만 몇몇 프로세서는 big-endian 방식을 사용하는데, 이 경우 32비트 ARGB 포맷을 사용합니다) +The `dirtyRect` is an object with `x, y, width, height` properties that +describes which part of the page was repainted. If `onlyDirty` is set to +`true`, `frameBuffer` will only contain the repainted area. `onlyDirty` +defaults to `false`. + ### `webContents.endFrameSubscription()` 프레임 프레젠테이션 이벤트들에 대한 구독을 중지합니다. @@ -1022,7 +1031,7 @@ win.webContents.debugger.sendCommand('Network.enable'); 지정한 커맨드를 디버깅 대상에게 전송합니다. -### Event: 'detach' +#### Event: 'detach' * `event` Event * `reason` String - 디버거 분리 사유. @@ -1030,7 +1039,7 @@ win.webContents.debugger.sendCommand('Network.enable'); 디버깅 세션이 종료될 때 발생하는 이벤트입니다. `webContents`가 닫히거나 개발자 도구가 부착된 `webContents`에 대해 호출될 때 발생합니다. -### Event: 'message' +#### Event: 'message' * `event` Event * `method` String - 메서드 이름. diff --git a/docs-translations/ko-KR/styleguide.md b/docs-translations/ko-KR/styleguide.md index 6fd30bbef10a..cc1e76766b05 100644 --- a/docs-translations/ko-KR/styleguide.md +++ b/docs-translations/ko-KR/styleguide.md @@ -53,14 +53,12 @@ Electron 문서 구조를 이해하는 데 참고할 수 있는 유용한 도움 [Method](https://developer.mozilla.org/ko/docs/Glossary/Method) 문서의 예시입니다: ---- - +``` `methodName(required[, optional]))` -* `require` String (**required**) +* `required` String (**required**) * `optional` Integer - ---- +``` 메서드 이름은 인수가 무엇을 받는지에 따라 결정됩니다. 선택적 인수는 브라켓([, ])으로 묶어 이 인수가 다른 인수뒤에서 선택적으로 사용될 수 있다는 것을 표시합니다. @@ -73,19 +71,25 @@ Electron 문서 구조를 이해하는 데 참고할 수 있는 유용한 도움 와 같은 일반적으로 쓰이는 타입 중 하나를 받거나 Electron의 [`webContent`](api/web-content.md) 같은 커스텀 타입을 받습니다. +If an argument is unique to certain platforms, those platforms are denoted +using a space-delimited italicized list following the datatype. Values can be +`OS X`, `Windows`, or `Linux`. + +``` +* `animate` Boolean (optional) _OS X_ _Windows_ +``` + ### Events [Event](https://developer.mozilla.org/ko/docs/Web/API/Event) 문서의 예시입니다: ---- - +``` Event: 'wake-up' Returns: * `time` String - ---- +``` 이벤트는 `.on` 리스너 메서드로 사용할 수 있습니다. 만약 이벤트에서 값을 반환한다면 문서에서 표시된 대로 일정한 타입의 값을 반환합니다. 이벤트를 처리하거나 응답하려 한다면 @@ -94,5 +98,5 @@ Returns: ```javascript Alarm.on('wake-up', (time) => { console.log(time) -}); +}) ``` diff --git a/docs-translations/ko-KR/tutorial/debugging-main-process.md b/docs-translations/ko-KR/tutorial/debugging-main-process.md index 339c28daab7a..fc6fee619b6d 100644 --- a/docs-translations/ko-KR/tutorial/debugging-main-process.md +++ b/docs-translations/ko-KR/tutorial/debugging-main-process.md @@ -19,11 +19,11 @@ ## node-inspector로 디버깅 하기 -**참고:** Electron은 현재 node-inspector 유틸리티와 호환성 문제가 있습니다. 따라서 -node-inspector 콘솔 내에서 메인 프로세스의 `process` 객체를 탐색할 경우 크래시가 +**참고:** Electron은 현재 node-inspector 유틸리티와 호환성 문제가 있습니다. 이러한 +이유로 node-inspector 콘솔 내에서 메인 프로세스의 `process` 객체를 탐색할 경우 크래시가 발생할 수 있습니다. -### 1. [node-gyp 필수 도구][node-gyp-required-tools]를 설치했는지 확인 +### 1. [node-gyp 필수 도구][node-gyp-required-tools] 설치 ### 2. [node-inspector][node-inspector] 설치 @@ -31,17 +31,19 @@ node-inspector 콘솔 내에서 메인 프로세스의 `process` 객체를 탐 $ npm install node-inspector ``` -### 3. 패치된 버전의 `node-pre-gyp` 설치 +### 3. [node-pre-gyp][node-pre-gyp] 설치 ```bash -$ npm install git+https://git@github.com/enlight/node-pre-gyp.git#detect-electron-runtime-in-find +$ npm install node-pre-gyp ``` -### 4. Electron용 `node-inspector` `v8` 모듈을 재 컴파일 (target을 사용하는 Electron의 버전에 맞춰 변경) +### 4. Electron용 `node-inspector` `v8` 모듈을 재 컴파일 + +**참고:** target 인수를 사용하는 Electron의 버전에 맞춰 변경하세요. ```bash -$ node_modules/.bin/node-pre-gyp --target=0.36.11 --runtime=electron --fallback-to-build --directory node_modules/v8-debug/ --dist-url=https://atom.io/download/atom-shell reinstall -$ node_modules/.bin/node-pre-gyp --target=0.36.11 --runtime=electron --fallback-to-build --directory node_modules/v8-profiler/ --dist-url=https://atom.io/download/atom-shell reinstall +$ node_modules/.bin/node-pre-gyp --target=1.2.5 --runtime=electron --fallback-to-build --directory node_modules/v8-debug/ --dist-url=https://atom.io/download/atom-shell reinstall +$ node_modules/.bin/node-pre-gyp --target=1.2.5 --runtime=electron --fallback-to-build --directory node_modules/v8-profiler/ --dist-url=https://atom.io/download/atom-shell reinstall ``` 또한 [네이티브 모듈을 사용하는 방법][how-to-install-native-modules] 문서도 참고해보세요. @@ -60,7 +62,7 @@ $ electron --debug=5858 your/app $ electron --debug-brk=5858 your/app ``` -### 6. Electron을 사용하는 [node-inspector][node-inspector] 시작 +### 6. Electron을 사용하는 [node-inspector][node-inspector] 시작하기 ```bash $ ELECTRON_RUN_AS_NODE=true path/to/electron.exe node_modules/node-inspector/bin/inspector.js @@ -69,9 +71,10 @@ $ ELECTRON_RUN_AS_NODE=true path/to/electron.exe node_modules/node-inspector/bin ### 7. 디버거 UI 로드 Chrome 브라우저에서 http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 주소에 -접속합니다. (기본 포트 또는 지정한 포트로 접속) 엔트리의 라인이 debug-brk로 시작하는 +접속합니다. (기본 포트 또는 지정한 포트로 접속) 엔트리의 라인이 `debug-brk`로 시작하는 경우 일시정지 버튼을 클릭해야 할 수도 있습니다. [node-inspector]: https://github.com/node-inspector/node-inspector +[node-pre-gyp]: https://github.com/mapbox/node-pre-gyp [node-gyp-required-tools]: https://github.com/nodejs/node-gyp#installation [how-to-install-native-modules]: using-native-node-modules.md#네이티브-모듈을-설치하는-방법 diff --git a/docs-translations/ko-KR/tutorial/quick-start.md b/docs-translations/ko-KR/tutorial/quick-start.md index 37611d319fc1..2f0d89bba30b 100644 --- a/docs-translations/ko-KR/tutorial/quick-start.md +++ b/docs-translations/ko-KR/tutorial/quick-start.md @@ -212,7 +212,7 @@ $ ./Electron.app/Contents/MacOS/Electron your-app/ ### 미리 작성된 앱 실행하기 -[`atom/electron-quick-start`](https://github.com/electron/electron-quick-start) +[`electron/electron-quick-start`](https://github.com/electron/electron-quick-start) 저장소를 클론하면 이 문서에서 작성한 예시 앱을 바로 실행해 볼 수 있습니다. **참고**: 이 예시를 실행시키려면 [Git](https://git-scm.com)과 From 4a40369b6d0e5e80641e6ab9d193dad8e12c7c34 Mon Sep 17 00:00:00 2001 From: Plusb Preco Date: Thu, 30 Jun 2016 02:50:41 +0900 Subject: [PATCH 2/3] :memo: Update Korean docs as upstream [ci skip] --- docs-translations/ko-KR/api/browser-window.md | 6 +++--- docs-translations/ko-KR/api/clipboard.md | 7 +++---- docs-translations/ko-KR/api/session.md | 12 ++++++------ docs-translations/ko-KR/api/tray.md | 2 +- docs-translations/ko-KR/api/web-contents.md | 7 +++---- docs-translations/ko-KR/styleguide.md | 6 +++--- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/docs-translations/ko-KR/api/browser-window.md b/docs-translations/ko-KR/api/browser-window.md index e303a0c30851..7adbc08a72da 100644 --- a/docs-translations/ko-KR/api/browser-window.md +++ b/docs-translations/ko-KR/api/browser-window.md @@ -997,10 +997,10 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고 ### `win.setContentProtection(enable)` _macOS_ _Windows_ -Prevents the window contents from being captured by other apps. +윈도우 콘텐츠가 외부 어플리케이션에 의해 캡쳐되는 것을 막습니다. -On macOS it sets the NSWindow's sharingType to NSWindowSharingNone. -On Windows it calls SetWindowDisplayAffinity with WDA_MONITOR. +macOS에선 NSWindow의 sharingType을 NSWindowSharingNone로 설정합니다. +Windows에선 WDA_MONITOR와 함께 SetWindowDisplayAffinity를 호출합니다. ### `win.setFocusable(focusable)` _Windows_ diff --git a/docs-translations/ko-KR/api/clipboard.md b/docs-translations/ko-KR/api/clipboard.md index de0807cb2049..6536bf922bca 100644 --- a/docs-translations/ko-KR/api/clipboard.md +++ b/docs-translations/ko-KR/api/clipboard.md @@ -78,9 +78,8 @@ console.log(clipboard.readText('selection')); ### `clipboard.readBookmark()` _macOS_ _Windows_ -Returns an Object containing `title` and `url` keys representing the bookmark in -the clipboard. The `title` and `url` values will be empty strings when the -bookmark is unavailable. +클립보드로부터 북마크 형식으로 표현된 `title`와 `url` 키를 담은 객체를 반환합니다. +`title`과 `url` 값들은 북마크를 사용할 수 없을 때 빈 문자열을 포함합니다. ### `clipboard.writeBookmark(title, url[, type])` _macOS_ _Windows_ @@ -88,7 +87,7 @@ bookmark is unavailable. * `url` String * `type` String (optional) -Writes the `title` and `url` into the clipboard as a bookmark. +`title`과 `url`을 클립보드에 북마크 형식으로 씁니다. ### `clipboard.clear([type])` diff --git a/docs-translations/ko-KR/api/session.md b/docs-translations/ko-KR/api/session.md index d685b6c569ad..c2e3ca923dc0 100644 --- a/docs-translations/ko-KR/api/session.md +++ b/docs-translations/ko-KR/api/session.md @@ -344,17 +344,17 @@ session.defaultSession.allowNTLMCredentialsForDomains('*') * `userAgent` String * `acceptLanguages` String (optional) -Overrides the `userAgent` and `acceptLanguages` for this session. +현재 세션에 대해 `userAgent`와 `acceptLanguages`를 덮어씁니다. -The `acceptLanguages` must a comma separated ordered list of language codes, for -example `"en-US,fr,de,ko,zh-CN,ja"`. +`acceptLanguages`는 반드시 쉼표로 구분된 순서에 맞춘 언어 코드의 리스트여야 하며 +예를 들면 `"en-US,fr,de,ko,zh-CN,ja"` 입니다. -This doesn't affect existing `WebContents`, and each `WebContents` can use -`webContents.setUserAgent` to override the session-wide user agent. +이는 현재 존재하는 `WebContents`에 적용되지 않으며 각 `WebContents`는 +`webContents.setUserAgent`를 사용하여 세션 전체의 유저 에이전트를 덮어쓸 수 있습니다. #### `ses.getUserAgent()` -Returns a `String` representing the user agent for this session. +현재 세션에 대한 유저 에이전트를 표현하는 `String`을 반환합니다. #### `ses.webRequest` diff --git a/docs-translations/ko-KR/api/tray.md b/docs-translations/ko-KR/api/tray.md index 06862cada2ee..46f790cd7651 100644 --- a/docs-translations/ko-KR/api/tray.md +++ b/docs-translations/ko-KR/api/tray.md @@ -202,7 +202,7 @@ appIcon.setContextMenu(contextMenu) ### `tray.getBounds()` _macOS_ _Windows_ -Returns the `bounds` of this tray icon as `Object`. +이 트레이 아이콘의 `bounds`를 `Object` 형식으로 반환합니다. * `bounds` Object * `x` Integer diff --git a/docs-translations/ko-KR/api/web-contents.md b/docs-translations/ko-KR/api/web-contents.md index 87fe9ebd4210..ba53f3dbd8ff 100644 --- a/docs-translations/ko-KR/api/web-contents.md +++ b/docs-translations/ko-KR/api/web-contents.md @@ -921,10 +921,9 @@ Input `event`를 웹 페이지로 전송합니다. 프로세서에선 little-endian 방식을 사용하므로 위의 포맷을 그대로 표현합니다. 하지만 몇몇 프로세서는 big-endian 방식을 사용하는데, 이 경우 32비트 ARGB 포맷을 사용합니다) -The `dirtyRect` is an object with `x, y, width, height` properties that -describes which part of the page was repainted. If `onlyDirty` is set to -`true`, `frameBuffer` will only contain the repainted area. `onlyDirty` -defaults to `false`. +`dirtyRect`는 페이지의 어떤 부분이 다시 그려졌는지를 표현하는 `x, y, width, height` +속성을 포함하는 객체입니다. 만약 `onlyDirty`가 `true`로 지정되어 있으면, +`frameBuffer`가 다시 그려진 부분만 포함합니다. `onlyDirty`의 기본값은 `false`입니다. ### `webContents.endFrameSubscription()` diff --git a/docs-translations/ko-KR/styleguide.md b/docs-translations/ko-KR/styleguide.md index cc1e76766b05..584d3245bdb5 100644 --- a/docs-translations/ko-KR/styleguide.md +++ b/docs-translations/ko-KR/styleguide.md @@ -71,9 +71,9 @@ Electron 문서 구조를 이해하는 데 참고할 수 있는 유용한 도움 와 같은 일반적으로 쓰이는 타입 중 하나를 받거나 Electron의 [`webContent`](api/web-content.md) 같은 커스텀 타입을 받습니다. -If an argument is unique to certain platforms, those platforms are denoted -using a space-delimited italicized list following the datatype. Values can be -`OS X`, `Windows`, or `Linux`. +만약 인수가 특정 플랫폼에 대해서만 적용된다면, 해당하는 플랫폼들을 공백-구분된 이텔릭체 +리스트를 데이터 타입 뒤에 표기합니다. 값은 `OS X`, `Windows` 또는 `Linux`가 될 수 +있습니다. ``` * `animate` Boolean (optional) _OS X_ _Windows_ From 21f0e65735c7a20641b22b48fa35a827e09a70d3 Mon Sep 17 00:00:00 2001 From: Plusb Preco Date: Thu, 30 Jun 2016 11:32:14 +0900 Subject: [PATCH 3/3] :memo: Update Korean docs as upstream [ci skip] --- docs-translations/ko-KR/api/app.md | 27 ++ docs-translations/ko-KR/api/browser-window.md | 54 ++++ docs-translations/ko-KR/api/menu-item.md | 38 ++- docs-translations/ko-KR/api/session.md | 285 ++++++++++-------- 4 files changed, 259 insertions(+), 145 deletions(-) diff --git a/docs-translations/ko-KR/api/app.md b/docs-translations/ko-KR/api/app.md index b6695bdf21a6..d8d639c86698 100644 --- a/docs-translations/ko-KR/api/app.md +++ b/docs-translations/ko-KR/api/app.md @@ -647,6 +647,33 @@ dock 아이콘을 표시합니다. dock 아이콘의 `image`를 설정합니다. +### `app.launcher.setBadgeCount(count)` _Linux_ +* `count` Integer + +Unity 런처에서 앱 아이콘 옆에 표시될 숫자를 설정합니다. `0`으로 설정하면 뱃지를 +숨깁니다. + +**참고:** 이 기능은 현재 Ubuntu Unity에서만 사용할 수 있습니다. 다른 환경에서 이 +함수를 호출하는 것은 아무런 효과가 없습니다. + +**참고:** 이 기능을 사용하려면 `package.json`의 `desktopName` 필드에 `.desktop` 파일 이름을 설정해야 합니다. 기본적으로 패키징된 애플리케이션의 `app.getName().desktop`을 사용합니다. + +### `app.launcher.getBadgeCount()` _Linux_ + +런처 아이콘 옆 배지의 카운터에 표시된 현재 값을 반환합니다. + +**참고:** `setBadgeCount`가 Ubuntu Unity에서만 지원하기 때문에, 애플리케이션이 다른 +플랫폼에서 돌아가고 있다면 이 메서드는 `0`을 반환합니다. + +### `app.launcher.isUnityRunning()` _Linux_ + +현재 데스크톱 환경이 Unity인지 여부를 반환합니다. Unity가 맞다면 `true`를 반환합니다. + +### `app.launcher.isCounterBadgeAvailable()` _Linux_ + +현재 데스크톱 환경이 애플리케이션 아이콘 카운터 뱃지를 사용할 수 있는지 여부를 +반환합니다. 사용할 수 있다면 `true`를 반환합니다. + [dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103 [tasks]:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks [app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx diff --git a/docs-translations/ko-KR/api/browser-window.md b/docs-translations/ko-KR/api/browser-window.md index 7adbc08a72da..d214a0270d0b 100644 --- a/docs-translations/ko-KR/api/browser-window.md +++ b/docs-translations/ko-KR/api/browser-window.md @@ -62,6 +62,38 @@ win.loadURL('https://github.com') 참고로 `ready-to-show` 이벤트를 사용하더라도 어플리케이션을 네이티브 느낌이 나도록 하기 위해 `backgroundColor`도 같이 설정하는 것을 권장합니다. +## 부모와 자식 윈도우 + +`parent` 옵션을 사용하면 자식 윈도우를 만들 수 있습니다: + +```javascript +let top = new BrowserWindow() +let child = new BrowserWindow({parent: top}) +``` + +`child` 윈도우는 언제나 `top` 윈도우의 상위에 표시됩니다. + +### 모달 윈도우 + +모달 윈도우는 부모 윈도우를 비활성화 시키는 자식 윈도우입니다. 모달 윈도우를 만드려면 `parent`, `modal` 옵션을 동시에 설정해야 합니다: + +```javascript +let child = new BrowserWindow({parent: top, modal: true, show: false}) +child.loadURL('https://github.com') +child.once('ready-to-show', () => { + child.show() +}) +``` + +### 플랫폼별 특이사항 + +* On macOS the child windows will keep the relative position to parent window + when parent window moves, while on Windows and Linux child windows will not + move. +* On Windows it is not supported to change parent window dynamically. +* On Linux the type of modal windows will be changed to `dialog`. +* On Linux many desktop environments do not support hiding a modal window. + ## Class: BrowserWindow `BrowserWindow`는 [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)를 @@ -125,6 +157,9 @@ On Windows it is * `show` Boolean - 윈도우가 생성되면 보여줄지 여부. 기본값은 `true`입니다. * `frame` Boolean - `false`로 지정하면 창을 [Frameless Window](frameless-window.md) 형태로 생성합니다. 기본값은 `true`입니다. +* `parent` BrowserWindow - 부모 윈도우를 설정합니다. 기본 값은 `null`입니다. +* `modal` Boolean - 이 윈도우가 모달 윈도우인지 여부를 설정합니다. 이 옵션은 자식 + 윈도우에서만 작동합니다. 기본값은 `false`입니다. * `acceptFirstMouse` Boolean - 윈도우가 비활성화 상태일 때 내부 콘텐츠 클릭 시 활성화 되는 동시에 단일 mouse-down 이벤트를 발생시킬지 여부. 기본값은 `false`입니다. * `disableAutoHideCursor` Boolean - 타이핑중 자동으로 커서를 숨길지 여부. 기본값은 @@ -528,6 +563,10 @@ let win = new BrowserWindow({width: 800, height: 600}); 윈도우가 사용자에게 표시되고 있는지 여부를 반환합니다. +### `win.isModal()` + +현재 윈도우가 모달 윈도우인지 여부를 반환합니다. + ### `win.maximize()` 윈도우를 최대화 시킵니다. @@ -1008,4 +1047,19 @@ Windows에선 WDA_MONITOR와 함께 SetWindowDisplayAffinity를 호출합니다. 윈도우가 포커스될 수 있는지 여부를 변경합니다. +### `win.setParentWindow(parent)` _Linux_ _macOS_ + +* `parent` BrowserWindow + +`parent` 인수를 현재 윈도우의 부모 윈도우로 설정합니다. `null`로 설정하면 +현재 윈도우를 상위 윈도우로 전환합니다. + +### `win.getParentWindow()` + +모든 부모 윈도우를 반환합니다. + +### `win.getChildWindows()` + +모든 자식 윈도우를 반환합니다. + [blink-feature-string]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in diff --git a/docs-translations/ko-KR/api/menu-item.md b/docs-translations/ko-KR/api/menu-item.md index 3e011630bc8e..27ad7216c9f8 100644 --- a/docs-translations/ko-KR/api/menu-item.md +++ b/docs-translations/ko-KR/api/menu-item.md @@ -2,7 +2,7 @@ > 네이티브 애플리케이션 메뉴와 컨텍스트 메뉴에 아이템을 추가합니다. -[`menu`](menu.md)에서 예시를 확인할 수 있습니다. +[`Menu`](menu.md)에서 예시를 확인할 수 있습니다. ## Class: MenuItem @@ -12,8 +12,8 @@ * `options` Object * `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow, - event)` 형태로 호출 되는 콜백 함수 - * `role` String - 메뉴 아이템의 액션을 정의합니다; 이 속성을 지정하면 `click` + event)` 형태로 호출 되는 콜백 함수. + * `role` String - 메뉴 아이템의 액션을 정의합니다. 이 속성을 지정하면 `click` 속성이 무시됩니다. * `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`, `checkbox` 또는 `radio`를 사용할 수 있습니다. 만약 값이 `Menu`가 아니면 @@ -72,20 +72,28 @@ macOS에서의 `role`은 다음 값을 추가로 가질 수 있습니다: macOS에서는 `role`을 지정할 때, `label`과 `accelerator`만 MenuItem에 효과가 적용되도록 변경되며, 다른 옵션들은 모두 무시됩니다. -## Instance Properties +### Instance Properties -다음 속성들은 존재하는 `MenuItem`에서 계속 변경될 수 있습니다: +다음은 `MenuItem`의 인스턴스에서 사용할 수 있는 속성입니다: - * `enabled` Boolean - * `visible` Boolean - * `checked` Boolean +#### `menuItem.enabled` -이 속성들의 의미는 위 옵션에서 설명한 것과 같습니다. +아이템이 활성화되어있는지 여부를 표시하는 Boolean 값입니다. 이 속성은 동적으로 변경될 +수 있습니다. -`checkbox` 메뉴 아이템은 선택될 때 해당 아이템의 `checked` 속성을 통해 활성화 그리고 -비활성화 상태인지를 표시합니다. 또한 `click` 함수를 지정하여 추가적인 작업을 할 수도 -있습니다. +#### `menuItem.visible` -`radio` 메뉴 아이템은 클릭되었을 때 `checked` 속성을 활성화 합니다. 그리고 같은 -메뉴의 인접한 모든 다른 아이템은 비활성화됩니다. 또한 `click` 함수를 지정하여 추가적인 -작업을 할 수도 있습니다. +아이템이 보여지고있는지 여부를 표시하는 Boolean 값입니다. 이 속성은 동적으로 변경될 +수 있습니다. + +#### `menuItem.checked` + +아이템이 선택되어있는지 여부를 반환하는 Boolean 값입니다. 이 속성은 동적으로 변경될 +수 있습니다. + +`checkbox` 메뉴 아이템은 선택되면 `checked` 속성을 토글합니다. + +`radio` 메뉴 아이템은 클릭되었을 때 `checked` 속성을 활성화 합니다. 그리고 +같은 메뉴의 모든 인접한 아이템에 대한 속성이 꺼집니다. + +추가적인 작업을 위해 `click` 함수를 추가할 수도 있습니다. diff --git a/docs-translations/ko-KR/api/session.md b/docs-translations/ko-KR/api/session.md index c2e3ca923dc0..626ca240db07 100644 --- a/docs-translations/ko-KR/api/session.md +++ b/docs-translations/ko-KR/api/session.md @@ -4,16 +4,15 @@ `session` 모듈은 새로운 `Session` 객체를 만드는데 사용할 수 있습니다. -또한 존재하는 [`BrowserWindow`](browser-window.md)의 -[`webContents`](web-contents.md)에서 `session` 속성으로 접근할 수도 있습니다. +또한 [`WebContents`](web-contents.md)의 `session` 속성이나 `session` 모듈을 통해 현재 존재하는 페이지의 `session`에 접근할 수 있습니다. ```javascript -const {BrowserWindow} = require('electron'); +const {session, BrowserWindow} = require('electron') -let win = new BrowserWindow({width: 800, height: 600}); -win.loadURL('http://github.com'); +let win = new BrowserWindow({width: 800, height: 600}) +win.loadURL('http://github.com') -let ses = win.webContents.session; +let ses = win.webContents.session ``` ## Methods @@ -75,92 +74,7 @@ session.defaultSession.on('will-download', (event, item, webContents) => { ### Instance Methods -`Session` 객체는 다음과 같은 메서드와 속성을 가지고 있습니다: - -#### `ses.cookies` - -`cookies` 속성은 쿠키를 조작하는 방법을 제공합니다. 예를 들어 다음과 같이 할 수 -있습니다: - -```javascript -// 모든 쿠키를 요청합니다. -session.defaultSession.cookies.get({}, (error, cookies) => { - console.log(cookies); -}); - -// url에 관련된 쿠키를 모두 가져옵니다. -session.defaultSession.cookies.get({url: 'http://www.github.com'}, (error, cookies) => { - console.log(cookies); -}); - -// 지정한 쿠키 데이터를 설정합니다. -// 동일한 쿠키가 있으면 해당 쿠키를 덮어씁니다. -const cookie = {url: 'http://www.github.com', name: 'dummy_name', value: 'dummy'}; -session.defaultSession.cookies.set(cookie, (error) => { - if (error) - console.error(error); -}); -``` - -#### `ses.cookies.get(filter, callback)` - -* `filter` Object - * `url` String (optional) - `url`에 해당하는 쿠키를 취득합니다. 이 속성을 - 생략하면 모든 url에서 찾습니다. - * `name` String (optional) - 쿠키의 이름입니다. - * `domain` String (optional) - 도메인 또는 서브 도메인에 일치하는 쿠키를 - 취득합니다. - * `path` String (optional) - `path`에 일치하는 쿠키를 취득합니다. - * `secure` Boolean (optional) - 보안 속성에 따라 쿠키를 필터링합니다. - * `session` Boolean (optional) - 세션 또는 지속성 쿠키를 필터링합니다. -* `callback` Function - -`details` 객체에서 묘사한 모든 쿠키를 요청합니다. 모든 작업이 끝나면 `callback`이 -`callback(error, cookies)` 형태로 호출됩니다. - -`cookies`는 `cookie` 객체의 배열입니다. - -* `cookie` Object - * `name` String - 쿠키의 이름. - * `value` String - 쿠키의 값. - * `domain` String - 쿠키의 도메인. - * `hostOnly` String - 쿠키가 호스트 전용인가에 대한 여부. - * `path` String - 쿠키의 경로. - * `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부. - * `httpOnly` Boolean - 쿠키가 HTTP로만 표시되는지에 대한 여부. - * `session` Boolean - 쿠키가 세션 쿠키 또는 만료일이 있는 영구 쿠키인지에 대한 - 여부. - * `expirationDate` Double - (Option) UNIX 시간으로 표시되는 쿠키의 만료일에 - 대한 초 단위 시간. 세션 쿠키는 지원되지 않음. - -#### `ses.cookies.set(details, callback)` - -* `details` Object - * `url` String - 쿠키에 대한 `url` 링크. - * `name` String - 쿠키의 이름입니다. 기본적으로 비워두면 생략됩니다. - * `value` String - 쿠키의 값입니다. 기본적으로 비워두면 생략됩니다. - * `domain` String - 쿠키의 도메인입니다. 기본적으로 비워두면 생략됩니다. - * `path` String - 쿠키의 경로입니다. 기본적으로 비워두면 생략됩니다. - * `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부입니다. 기본값은 - false입니다. - * `session` Boolean - 쿠키가 Http 전용으로 표시되는지에 대한 여부입니다. 기본값은 - false입니다. - * `expirationDate` Double (optional) - UNIX 시간으로 표시되는 쿠키의 만료일에 - 대한 초 단위 시간입니다. 생략되면 쿠키가 세션 쿠기가 되며 세션 사이에 유지되지 - 않게 됩니다. -* `callback` Function - -`details` 객체에 따라 쿠키를 설정합니다. 작업이 완료되면 `callback`이 -`callback(error)` 형태로 호출됩니다. - -#### `ses.cookies.remove(url, name, callback)` - -* `url` String - 쿠키와 관련된 URL입니다. -* `name` String - 지울 쿠키의 이름입니다. -* `callback` Function - -`url`과 `name`에 일치하는 쿠키를 삭제합니다. 작업이 완료되면 `callback`이 -`callback()` 형식으로 호출됩니다. +`Session` 객체는 다음과 같은 메서드를 가지고 있습니다: #### `ses.getCacheSize(callback)` @@ -354,16 +268,141 @@ session.defaultSession.allowNTLMCredentialsForDomains('*') #### `ses.getUserAgent()` -현재 세션에 대한 유저 에이전트를 표현하는 `String`을 반환합니다. +현재 세션의 유저 에이전트를 표현하는 `String`을 반환합니다. + +### Instance Properties + +다음은 `Session` 인스턴스에서 사용할 수 있는 속성들입니다: + +#### `ses.cookies` + +현재 세션의 `Cookies` 클래스 인스턴스를 반환합니다. #### `ses.webRequest` -`webRequest` API는 생명주기의 다양한 단계에 맞춰 요청 콘텐츠를 가로채거나 변경할 수 -있도록 합니다. +현재 세션의 `WebRequest` 클래스 인스턴스를 반환합니다. -각 API는 `filter`와 `listener`를 선택적으로 받을 수 있습니다. `listener`는 API의 -이벤트가 발생했을 때 `listener(details)` 형태로 호출되며 `defails`는 요청을 묘사하는 -객체입니다. `listener`에 `null`을 전달하면 이벤트 수신을 중지합니다. +#### `ses.protocol` + +현재 세션의 [protocol](protocol.md) 모듈 인스턴스를 반환합니다. + +```javascript +const {app, session} = require('electron') +const path = require('path') + +app.on('ready', function () { + const protocol = session.fromPartition(partitionName).protocol + protocol.registerFileProtocol('atom', function (request, callback) { + var url = request.url.substr(7) + callback({path: path.normalize(__dirname + '/' + url)}) + }, function (error) { + if (error) + console.error('Failed to register protocol') + }) +}) +``` + +## Class: Cookies + +`Cookies` 클래스는 쿠키를 탐색하고 조작하는 방법을 제공합니다. `Cookies` 클래스의 +인스턴스는 반드시 `Session` 클래스의 `cookies` 속성에서 접근해야 합니다. + +예를 들어: + +```javascript +// 모든 쿠키를 요청합니다. +session.defaultSession.cookies.get({}, (error, cookies) => { + console.log(cookies); +}); + +// url에 관련된 쿠키를 모두 가져옵니다. +session.defaultSession.cookies.get({url: 'http://www.github.com'}, (error, cookies) => { + console.log(cookies); +}); + +// 지정한 쿠키 데이터를 설정합니다. +// 동일한 쿠키가 있으면 해당 쿠키를 덮어씁니다. +const cookie = {url: 'http://www.github.com', name: 'dummy_name', value: 'dummy'}; +session.defaultSession.cookies.set(cookie, (error) => { + if (error) + console.error(error); +}); +``` + +### Instance Methods + +다음은 `Cookies` 객체에서 사용할 수 있는 메서드들입니다: + +#### `ses.cookies.get(filter, callback)` + +* `filter` Object + * `url` String (optional) - `url`에 해당하는 쿠키를 취득합니다. 이 속성을 + 생략하면 모든 url에서 찾습니다. + * `name` String (optional) - 쿠키의 이름입니다. + * `domain` String (optional) - 도메인 또는 서브 도메인에 일치하는 쿠키를 + 취득합니다. + * `path` String (optional) - `path`에 일치하는 쿠키를 취득합니다. + * `secure` Boolean (optional) - 보안 속성에 따라 쿠키를 필터링합니다. + * `session` Boolean (optional) - 세션 또는 지속성 쿠키를 필터링합니다. +* `callback` Function + +`details` 객체에서 묘사한 모든 쿠키를 요청합니다. 모든 작업이 끝나면 `callback`이 +`callback(error, cookies)` 형태로 호출됩니다. + +`cookies`는 `cookie` 객체의 배열입니다. + +* `cookie` Object + * `name` String - 쿠키의 이름. + * `value` String - 쿠키의 값. + * `domain` String - 쿠키의 도메인. + * `hostOnly` String - 쿠키가 호스트 전용인가에 대한 여부. + * `path` String - 쿠키의 경로. + * `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부. + * `httpOnly` Boolean - 쿠키가 HTTP로만 표시되는지에 대한 여부. + * `session` Boolean - 쿠키가 세션 쿠키 또는 만료일이 있는 영구 쿠키인지에 대한 + 여부. + * `expirationDate` Double - (Option) UNIX 시간으로 표시되는 쿠키의 만료일에 + 대한 초 단위 시간. 세션 쿠키는 지원되지 않음. + +#### `ses.cookies.set(details, callback)` + +* `details` Object + * `url` String - 쿠키에 대한 `url` 링크. + * `name` String - 쿠키의 이름입니다. 기본적으로 비워두면 생략됩니다. + * `value` String - 쿠키의 값입니다. 기본적으로 비워두면 생략됩니다. + * `domain` String - 쿠키의 도메인입니다. 기본적으로 비워두면 생략됩니다. + * `path` String - 쿠키의 경로입니다. 기본적으로 비워두면 생략됩니다. + * `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부입니다. 기본값은 + false입니다. + * `httpOnly` Boolean - 쿠키가 Http 전용으로 표시되는지에 대한 여부입니다. 기본값은 + false입니다. + * `expirationDate` Double (optional) - UNIX 시간으로 표시되는 쿠키의 만료일에 + 대한 초 단위 시간입니다. 생략되면 쿠키가 세션 쿠기가 되며 세션 사이에 유지되지 + 않게 됩니다. +* `callback` Function + +`details` 객체에 따라 쿠키를 설정합니다. 작업이 완료되면 `callback`이 +`callback(error)` 형태로 호출됩니다. + +#### `ses.cookies.remove(url, name, callback)` + +* `url` String - 쿠키와 관련된 URL입니다. +* `name` String - 지울 쿠키의 이름입니다. +* `callback` Function + +`url`과 `name`에 일치하는 쿠키를 삭제합니다. 작업이 완료되면 `callback`이 +`callback()` 형식으로 호출됩니다. + +## Class: WebRequest + +`WebRequest` 클래스는 생명 주기의 다양한 단계에서 요청의 콘텐츠를 조작하거나 가로채는 +방법을 제공합니다. `WebRequest` 클래스는 반드시 `Session` 클래스의 `webRequest` +속성에서 접근해야 합니다. + +`WebRequest`의 메서드는 선택적인 `filter`와 `listener` 속성을 허용하며 `listener`는 +API의 이벤트가 발생했을 때 `listener(details)` 형식으로 호출되고, `details`는 요청에 +관한 내용을 표현하는 객체입니다. `listener`에 `null`을 전달하면 이벤트의 구독을 +해제합니다. `filter`는 `urls` 속성을 가진 객체입니다. 이 속성은 URL 규칙의 배열이며 URL 규칙에 일치하지 않는 요청을 모두 거르는데 사용됩니다. 만약 `filter`가 생략되면 모든 요청을 @@ -372,19 +411,25 @@ session.defaultSession.allowNTLMCredentialsForDomains('*') 어떤 `listener`의 이벤트들은 `callback`을 같이 전달하는데, 이벤트 처리시 `listener`의 작업을 완료한 후 `response` 객체를 포함하여 호출해야 합니다. +다음은 요청에 `User-Agent` 헤더를 추가하는 예시입니다: + ```javascript // 다음 url에 대한 User Agent를 조작합니다. const filter = { urls: ['https://*.github.com/*', '*://electron.github.io'] -}; +} session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => { - details.requestHeaders['User-Agent'] = "MyAgent"; - callback({cancel: false, requestHeaders: details.requestHeaders}); -}); + details.requestHeaders['User-Agent'] = "MyAgent" + callback({cancel: false, requestHeaders: details.requestHeaders}) +}) ``` -#### `ses.webRequest.onBeforeRequest([filter, ]listener)` +### Instance Methods + +다음은 `WebRequest` 객체에서 사용할 수 있는 메서드들입니다: + +#### `webRequest.onBeforeRequest([filter, ]listener)` * `filter` Object * `listener` Function @@ -413,7 +458,7 @@ session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback * `redirectURL` String (optional) - 원래 요청은 전송과 완료가 방지되지만 이 속성을 지정하면 해당 URL로 리다이렉트됩니다. -#### `ses.webRequest.onBeforeSendHeaders([filter, ]listener)` +#### `webRequest.onBeforeSendHeaders([filter, ]listener)` * `filter` Object * `listener` Function @@ -438,7 +483,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `requestHeaders` Object (optional) - 이 속성이 제공되면, 요청은 이 헤더로 만들어 집니다. -#### `ses.webRequest.onSendHeaders([filter, ]listener)` +#### `webRequest.onSendHeaders([filter, ]listener)` * `filter` Object * `listener` Function @@ -455,7 +500,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `timestamp` Double * `requestHeaders` Object -#### `ses.webRequest.onHeadersReceived([filter, ]listener)` +#### `webRequest.onHeadersReceived([filter, ]listener)` * `filter` Object * `listener` Function @@ -484,7 +529,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener 변경하기 위해 반드시 지정되어야 합니다. 그렇지 않은 경우, 기존의 응답 헤더의 상태가 사용됩니다. -#### `ses.webRequest.onResponseStarted([filter, ]listener)` +#### `webRequest.onResponseStarted([filter, ]listener)` * `filter` Object * `listener` Function @@ -503,7 +548,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `statusCode` Integer * `statusLine` String -#### `ses.webRequest.onBeforeRedirect([filter, ]listener)` +#### `webRequest.onBeforeRedirect([filter, ]listener)` * `filter` Object * `listener` Function @@ -523,7 +568,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `fromCache` Boolean * `responseHeaders` Object -#### `ses.webRequest.onCompleted([filter, ]listener)` +#### `webRequest.onCompleted([filter, ]listener)` * `filter` Object * `listener` Function @@ -541,7 +586,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `statusCode` Integer * `statusLine` String -#### `ses.webRequest.onErrorOccurred([filter, ]listener)` +#### `webRequest.onErrorOccurred([filter, ]listener)` * `filter` Object * `listener` Function @@ -556,23 +601,3 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener * `timestamp` Double * `fromCache` Boolean * `error` String - 에러 설명. - -#### `ses.protocol` - -현재 세션의 [protocol](protocol.md) 모듈 인스턴스를 반환합니다. - -```javascript -const {app, session} = require('electron') -const path = require('path') - -app.on('ready', function () { - const protocol = session.fromPartition(partitionName).protocol - protocol.registerFileProtocol('atom', function (request, callback) { - var url = request.url.substr(7) - callback({path: path.normalize(__dirname + '/' + url)}) - }, function (error) { - if (error) - console.error('Failed to register protocol') - }) -}) -```