diff --git a/README-ko.md b/README-ko.md index bb7684e9d53a..7cabe5ed4564 100644 --- a/README-ko.md +++ b/README-ko.md @@ -7,19 +7,18 @@ ### [Electron](https://github.com/electron/electron/) 한국어 참조 문서 -:zap: *이전까지 Atom Shell로 불렸지만, Electron으로 변경되었습니다* :zap: - Electron 프레임워크는 JavaScript, HTML 그리고 CSS를 사용하여 Cross-Platform 데스크톱 어플리케이션을 개발할 수 있도록 해주는 프레임워크입니다. [Node.js](https://nodejs.org/)와 [Chromium](http://www.chromium.org)을 기반으로 만들어졌으며 [Atom Editor](https://github.com/atom/atom)에 사용되고 있습니다. +더 많은 어플리케이션은 [이곳](http://electron.atom.io/apps)에서 확인하세요. Electron에 대한 중요한 알림을 받고 싶다면 Twitter에서 [@ElectronJS](https://twitter.com/electronjs)를 팔로우 하세요. 이 프로젝트는 기여자 규약인 [행동강령](CODE_OF_CONDUCT.md)을 준수합니다. 따라서 이 프로젝트의 개발에 참여하려면 이 규약을 지켜야 합니다. 받아들일 수 없는 행위를 발견했을 -경우 atom@github.com로 보고하세요. +경우 electron@github.com로 보고하세요. ## 다운로드 diff --git a/docs-translations/ko-KR/api/app.md b/docs-translations/ko-KR/api/app.md index fbf1fcd29378..096cee0a364b 100644 --- a/docs-translations/ko-KR/api/app.md +++ b/docs-translations/ko-KR/api/app.md @@ -280,6 +280,32 @@ GPU가 작동하던 중 크래시가 일어났을 때 발생하는 이벤트입 모든 윈도우는 사용자의 동의 여부에 상관없이 즉시 종료되며 `before-quit` 이벤트와 `will-quit` 이벤트가 발생하지 않습니다. +### `app.relaunch([options])` + +* `options` Object (optional) + * `args` Array (optional) + * `execPath` String (optional) + +현재 인스턴스가 종료되면 어플리케이션을 재시작합니다. + +기본적으로 새 인스턴스는 같은 작업 디렉토리의 것과 함께 현재 인스턴스의 명령줄 인수를 +사용합니다. 만약 `args`가 지정되면, `args`가 기본 명령줄 인수 대신에 전달됩니다. +`execPath`가 지정되면, 현재 어플리케이션 대신 `execPath`가 실행됩니다. + +참고로 이 메서드는 어플리케이션을 종료하지 않으며, 어플리케이션을 다시 시작시키려면 +`app.relaunch`를 호출한 후 `app.quit` 또는 `app.exit`를 실행해주어야 합니다. + +`app.relaunch`가 여러 번 호출되면, 현재 인스턴스가 종료된 후 여러 인스턴스가 +시작됩니다. + +다음은 현재 인스턴스를 즉시 종료시킨 후 새로운 명령줄 인수를 추가하여 새 +인스턴스의 어플리케이션을 실행하는 예시입니다: + +```javascript +app.relaunch({args: process.argv.slice(1) + ['--relaunch']}) +app.exit(0) +``` + ### `app.focus()` Linux에선, 첫 번째로 보여지는 윈도우가 포커스됩니다. OS X에선, 어플리케이션을 활성화 @@ -370,7 +396,7 @@ npm 모듈 규칙에 따라 대부분의 경우 `package.json`의 `name` 필드 **참고:** 패키징된 앱을 배포할 때, `locales` 폴더도 같이 배포해야 합니다. -**참고:** Windows에선 `ready` 이벤트가 발생한 이후에 이 메서드를 사용해야 합니다. +**참고:** Windows에선 `ready` 이벤트가 발생한 이후에 이 메서드를 호출해야 합니다. ### `app.addRecentDocument(path)` _OS X_ _Windows_ @@ -445,16 +471,6 @@ Windows에서 사용할 수 있는 JumpList의 [Tasks][tasks] 카테고리에 `t 아이콘을 가지고 있을 경우, 사용할 아이콘의 인덱스를 이 옵션으로 지정해 주어야 합니다. 단, 아이콘을 하나만 포함하고 있는 경우 0을 지정하면 됩니다. -### `app.allowNTLMCredentialsForAllDomains(allow)` - -* `allow` Boolean - -항상 동적으로 HTTP NTLM 또는 Negotiate 인증에 자격 증명을 보낼 것인지 설정합니다. - -기본적으로 Electron은 "로컬 인터넷" 사이트 URL에서 NTLM/Kerberos 자격 증명만을 -보냅니다. (같은 도메인 내에서) 그러나 기업 네트워크가 잘못 구성된 경우 종종 작업에 -실패할 수 있습니다. 이때 이 메서드를 통해 모든 URL을 허용할 수 있습니다. - ### `app.makeSingleInstance(callback)` * `callback` Function @@ -508,11 +524,18 @@ app.on('ready', () => { }); ``` -### `app.setUserActivity(type, userInfo)` _OS X_ +### `app.releaseSingleInstance()` + +모든 `makeSingleInstance`에 의해 생성된 제한을 해제합니다. 이 메서드는 다시 여러 +인스턴스의 어플리케이션이 나란히 실행될 수 있도록 합니다. + +### `app.setUserActivity(type, userInfo[, webpageURL])` _OS X_ * `type` String - 고유하게 activity를 식별합니다. [`NSUserActivity.activityType`][activity-type]을 맵핑합니다. * `userInfo` Object - 다른 기기에서 사용하기 위해 저장할 앱-특정 상태. +* `webpageURL` String - 적당한 앱이 기기에 설치되지 않았을 때 브라우저에서 로드할 + 웹 페이지. 스킴은 반드시 `http` 또는 `https`가 되어야 합니다. `NSUserActivity`를 만들고 현재 activity에 설정합니다. 이 activity는 이후 다른 기기와 [Handoff][handoff]할 때 자격으로 사용됩니다. diff --git a/docs-translations/ko-KR/api/auto-updater.md b/docs-translations/ko-KR/api/auto-updater.md index d7dc9c18a46a..e7fd24aa658a 100644 --- a/docs-translations/ko-KR/api/auto-updater.md +++ b/docs-translations/ko-KR/api/auto-updater.md @@ -8,6 +8,8 @@ 다음 프로젝트 중 하나를 선택하여, 어플리케이션을 배포하기 위한 멀티-플랫폼 릴리즈 서버를 손쉽게 구축할 수 있습니다: +- [nuts][nuts]: *어플리케이션을 위한 똑똑한 릴리즈 서버이며 GitHub를 백엔드로 + 사용합니다. Squirrel을 통해 자동 업데이트를 지원합니다. (Mac & Windows)* - [electron-release-server][electron-release-server]: *완벽하게 모든 기능을 지원하는 electron 어플리케이션을 위한 자가 호스트 릴리즈 서버입니다. auto-updater와 호환됩니다* @@ -117,3 +119,4 @@ Returns: [app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx [electron-release-server]: https://github.com/ArekSredzki/electron-release-server [squirrel-updates-server]: https://github.com/Aluxian/squirrel-updates-server +[nuts]: https://github.com/GitbookIO/nuts diff --git a/docs-translations/ko-KR/api/browser-window.md b/docs-translations/ko-KR/api/browser-window.md index ff2e7fa72d4c..df098cde877c 100644 --- a/docs-translations/ko-KR/api/browser-window.md +++ b/docs-translations/ko-KR/api/browser-window.md @@ -36,8 +36,10 @@ win.show(); * `width` Integer - 윈도우의 가로 너비. 기본값은 `800`입니다. * `height` Integer - 윈도우의 세로 높이. 기본값은 `600`입니다. -* `x` Integer - 화면을 기준으로 창 좌측을 오프셋 한 위치. 기본값은 `화면중앙`입니다. -* `y` Integer - 화면을 기준으로 창 상단을 오프셋 한 위치. 기본값은 `화면중앙`입니다. +* `x` Integer (**required** y가 사용되면) - 화면을 기준으로 창 좌측을 오프셋 한 위치. + 기본값은 `화면중앙`입니다. +* `y` Integer (**required** x가 사용되면) - 화면을 기준으로 창 상단을 오프셋 한 위치. + 기본값은 `화면중앙`입니다. * `useContentSize` Boolean - `width`와 `height`를 웹 페이지의 크기로 사용합니다. 이 속성을 사용하면 웹 페이지의 크기에 윈도우 프레임 크기가 추가되므로 실제 창은 조금 더 커질 수 있습니다. 기본값은 `false`입니다. @@ -61,14 +63,21 @@ win.show(); * `fullscreen` Boolean - 윈도우의 전체화면 활성화 여부. 이 속성을 명시적으로 `false`로 지정했을 경우, OS X에선 전체화면 버튼이 숨겨지거나 비활성됩니다. 기본값은 `false` 입니다. -* `fullscreenable` Boolean - OS X의 최대화/줌 버튼이 전체화면 모드 또는 윈도우 - 최대화를 토글할 수 있게 할지 여부입니다. 기본값은 `true` 입니다. +* `fullscreenable` Boolean - 윈도우가 전체화면 모드로 전환될 수 있는지 여부입니다. + 또한 OS X에선, 최대화/줌 버튼이 전체화면 모드 또는 윈도우 최대화를 실행할지 여부도 + 포함됩니다. 기본값은 `true`입니다. * `skipTaskbar` Boolean - 작업표시줄 어플리케이션 아이콘 표시 스킵 여부. 기본값은 `false`입니다. * `kiosk` Boolean - Kiosk(키오스크) 모드. 기본값은 `false`입니다. * `title` String - 기본 윈도우 제목. 기본값은 `"Electron"`입니다. * `icon` [NativeImage](native-image.md) - 윈도우 아이콘, 생략하면 실행 파일의 아이콘이 대신 사용됩니다. +* `icon` [NativeImage](native-image.md) - 윈도우 아이콘. Windows에선 가장 좋은 + 시각적 효과를 얻기 위해 `ICO`를 사용하는 것을 권장하며, 또한 undefined로 남겨두면 + 실행 파일의 아이콘이 대신 사용됩니다. +On Windows it is + recommended to use `ICO` icons to get best visual effects, you can also + leave it undefined so the executable's icon will be used. * `show` Boolean - 윈도우가 생성되면 보여줄지 여부. 기본값은 `true`입니다. * `frame` Boolean - `false`로 지정하면 창을 [Frameless Window](frameless-window.md) 형태로 생성합니다. 기본값은 `true`입니다. @@ -209,19 +218,17 @@ Returns: 보통 창을 닫아야 할지 결정하기 위해 `beforeunload` 이벤트를 사용하려고 할 것입니다. 이 이벤트는 윈도우 콘텐츠를 새로고칠 때도 발생합니다. -Electron에선 빈 문자열 또는 `false`를 전달할 경우 윈도우 종료를 취소합니다. - +Electron에선 `undefined`가 아닌 이외의 값을 전달할 경우 윈도우 종료를 취소합니다. 예시는 다음과 같습니다: ```javascript window.onbeforeunload = (e) => { console.log('I do not want to be closed'); - // 반드시 문자열을 반환해야 하고 사용자에게 페이지 언로드에 대한 확인 창을 보여주는 - // 보통의 브라우저와는 달리 Electron은 개발자에게 더 많은 옵션을 제공합니다. - // 빈 문자열을 반환하거나 false를 반환하면 페이지 언로드를 방지합니다. - // 또한 dialog API를 통해 사용자에게 어플리케이션을 종료할지에 대한 확인 창을 - // 보여줄 수도 있습니다. + // 일반적인 브라우저와는 달리 사용자에게 확인 창을 보여주지 않고, non-void 값을 반환하면 + // 조용히 닫기를 취소합니다. + // Dialog API를 통해 사용자가 어플리케이션을 종료할지 정할 수 있도록 확인 창을 표시하는 것을 + // 추천합니다. e.returnValue = false; }; ``` @@ -676,7 +683,7 @@ let win = new BrowserWindow({width: 800, height: 600}); **참고:** 웹 페이지의 제목과 네이티브 윈도우의 제목은 서로 다를 수 있습니다. -### `win.setSheetOffset(offset)` _OS X_ +### `win.setSheetOffset(offsetY[, offsetX])` _OS X_ Mac OS X에서 시트를 부착할 위치를 지정합니다. 기본적으로 시트는 윈도우의 프레임 바로 아래의 위치에 부착됩니다. 아마도 이 기능은 보통 다음과 같이 HTML 렌더링된 툴바 밑에 @@ -861,6 +868,12 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고 페이지의 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다. +### `win.setIcon(icon)` _Windows_ _Linux_ + +* `icon` [NativeImage](native-image.md) + +윈도우 아이콘을 변경합니다. + ### `win.setAutoHideMenuBar(hide)` * `hide` Boolean diff --git a/docs-translations/ko-KR/api/chrome-command-line-switches.md b/docs-translations/ko-KR/api/chrome-command-line-switches.md index 810d9c77e949..930d7511183c 100644 --- a/docs-translations/ko-KR/api/chrome-command-line-switches.md +++ b/docs-translations/ko-KR/api/chrome-command-line-switches.md @@ -22,11 +22,15 @@ app.on('ready', () => { ## --disable-http-cache -HTTP 요청 캐시를 비활성화 합니다. +HTTP 요청 캐시를 비활성화합니다. + +## --disable-http2 + +HTTP/2와 SPDY/3.1 프로토콜을 비활성화합니다. ## --remote-debugging-port=`port` -지정한 `port`에 HTTP 기반의 리모트 디버거를 활성화 시킵니다. (개발자 도구) +지정한 `port`에 HTTP 기반의 리모트 디버거를 활성화합니다. (개발자 도구) ## --js-flags=`flags` @@ -91,6 +95,24 @@ resolver, http 프록시 연결의 `CONNECT`, `SOCKS` 프록시 연결의 endpoi `--host-rules` 플래그와 비슷하지만 이 플래그는 host resolver에만 적용됩니다. +## --auth-server-whitelist=`url` + +통합 인증을 사용하도록 설정할 쉼표로 구분된 서버의 리스트. + +예를 들어: + +``` +--auth-server-whitelist='*example.com, *foobar.com, *baz' +``` + +그리고 모든 `example.com`, `foobar.com`, `baz`로 끝나는 `url`은 통합 인증을 +사용하도록 설정됩니다. `*` 접두어가 없다면 url은 정확히 일치해야 합니다. + +## --auth-negotiate-delegate-whitelist=`url` + +필수적인 사용자 자격 증명을 보내야 할 쉼표로 구분된 서버의 리스트. +`*` 접두어가 없다면 url은 정확히 일치해야 합니다. + ## --ignore-certificate-errors 인증서 에러를 무시합니다. diff --git a/docs-translations/ko-KR/api/environment-variables.md b/docs-translations/ko-KR/api/environment-variables.md index f24532a698bf..2f4103d1bb5e 100644 --- a/docs-translations/ko-KR/api/environment-variables.md +++ b/docs-translations/ko-KR/api/environment-variables.md @@ -2,8 +2,8 @@ > 어플리케이션의 구성과 동작을 코드 변경 없이 제어합니다. -Electron의 몇몇 동작은 명령 줄과 어플리케이션의 코드보다 먼저 초기화되어야 하므로 환경 -변수에 의해 작동합니다. +특정 Electron 동작은 명령줄 플래그와 어플리케이션의 코드보다 먼저 초기화되어야 하므로 +환경 변수에 의해 작동합니다. POSIX 쉘의 예시입니다: @@ -19,35 +19,35 @@ Windows 콘솔의 예시입니다: > electron ``` -## `ELECTRON_RUN_AS_NODE` +### `ELECTRON_RUN_AS_NODE` 프로세스를 일반 Node.js 프로세스처럼 시작합니다. (electron 모듈 제외) -## `ELECTRON_ENABLE_LOGGING` +### `ELECTRON_ENABLE_LOGGING` Chrome의 내부 로그를 콘솔에 출력합니다. -## `ELECTRON_LOG_ASAR_READS` +### `ELECTRON_LOG_ASAR_READS` Electron이 ASAR 파일을 읽을 때, 읽기 오프셋의 로그를 남기고 시스템 `tmpdir`에 파일로 저장합니다. 결과 파일은 ASAR 모듈의 파일 순서를 최적화 하는데 사용할 수 있습니다. -## `ELECTRON_ENABLE_STACK_DUMPING` +### `ELECTRON_ENABLE_STACK_DUMPING` Electron이 크래시되면, 콘솔에 stack trace를 출력합니다. 이 환경 변수는 `crashReporter`가 시작되지 않았을 경우 작동하지 않습니다. -## `ELECTRON_DEFAULT_ERROR_MODE` _Windows_ +### `ELECTRON_DEFAULT_ERROR_MODE` _Windows_ -Electron이 크래시되면, 크래시 정보 창을 표시합니다. +Electron이 크래시되면 스택 출력 정보를 콘솔에 출력합니다. 이 환경 변수는 `crashReporter`가 시작되지 않았을 경우 작동하지 않습니다. -## `ELECTRON_NO_ATTACH_CONSOLE` _Windows_ +### `ELECTRON_NO_ATTACH_CONSOLE` _Windows_ 현재 콘솔 세션에 소속시키지 않습니다. -## `ELECTRON_FORCE_WINDOW_MENU_BAR` _Linux_ +### `ELECTRON_FORCE_WINDOW_MENU_BAR` _Linux_ Linux의 전역 메뉴바를 사용하지 않습니다. diff --git a/docs-translations/ko-KR/api/native-image.md b/docs-translations/ko-KR/api/native-image.md index 8fdb1ccc1941..8c03b78e114b 100644 --- a/docs-translations/ko-KR/api/native-image.md +++ b/docs-translations/ko-KR/api/native-image.md @@ -25,7 +25,13 @@ const appIcon = new Tray(image); 현재 `PNG` 와 `JPEG` 이미지 포맷을 지원하고 있습니다. 손실 없는 이미지 압축과 투명도 지원을 위해 `PNG` 사용을 권장합니다. -그리고 Windows에서는 `ICO` 포맷도 사용할 수 있습니다. +Windows에서는 파일 경로로부터 `ICO` 포맷도 사용할 수 있으며, 가장 좋은 시각적 효과를 +얻기 위해 최소한 아이콘에 다음 사이즈를 포함하는 것을 권장합니다: + +* 16x16 +* 32x32 +* 64x64 +* 256x256 ## 고해상도 이미지 diff --git a/docs-translations/ko-KR/api/process.md b/docs-translations/ko-KR/api/process.md index f605521c404e..946dd92eac50 100644 --- a/docs-translations/ko-KR/api/process.md +++ b/docs-translations/ko-KR/api/process.md @@ -1,21 +1,8 @@ -# process +# process -> 현재 작동중인 어플리케이션의 정보를 가져옵니다. +> process 객체에 대한 확장 기능. -Electron의 `process` 객체는 기존의 node와는 달리 약간의 차이점이 있습니다: - -* `process.type` String - 프로세스의 타입, `browser` (메인 프로세스) 또는 - `renderer`가 됩니다. -* `process.versions.electron` String - Electron의 버전. -* `process.versions.chrome` String - Chromium의 버전. -* `process.resourcesPath` String - JavaScript 소스 코드의 경로. -* `process.mas` Boolean - Mac 앱 스토어용 빌드일 때 `true`로 지정됩니다. 다른 - 빌드일 땐 `undefined`로 지정됩니다. -* `process.windowsStore` Boolean - 만약 앱이 Windows Store 앱 (appx)으로 작동하고 - 있다면, 이 값이 `true`로 지정되며 다른 빌드인 경우엔 `undefined`로 지정됩니다. -* `process.defaultApp` Boolean - 어플리케이션이 기본 어플리케이션 형식으로 전달되는 - 인수와 함께 실행됐을 때, 메인 프로세스에서 이 값이 `true`가 되며 다른 경우엔 - `undefined`가 됩니다. +`process` 객체는 Electron에서 약간 추가적인 기능이 있으며 API는 다음과 같습니다: ## Events @@ -41,6 +28,96 @@ process.once('loaded', () => { ### `process.noAsar` +Setting this to `true` can disable the support for `asar` archives in Node's +built-in modules. + +### `process.type` + +Current process's type, can be `"browser"` (i.e. main process) or `"renderer"`. + +### `process.versions.electron` + +Electron's version string. + +### `process.versions.chrome` + +Chrome's version string. + +### `process.resourcesPath` + +Path to the resources directory. + +### `process.mas` + +For Mac App Store build, this property is `true`, for other builds it is +`undefined`. + +### `process.windowsStore` + +If the app is running as a Windows Store app (appx), this property is `true`, +for otherwise it is `undefined`. + +### `process.defaultApp` + +When app is started by being passed as parameter to the default app, this +property is `true` in the main process, otherwise it is `undefined`. + +## Methods + +The `process` object has the following method: + +### `process.crash()` + +Causes the main thread of the current process crash. + +### `process.hang()` + +Causes the main thread of the current process hang. + +### `process.setFdLimit(maxDescriptors)` _OS X_ _Linux_ + +* `maxDescriptors` Integer + +Sets the file descriptor soft limit to `maxDescriptors` or the OS hard +limit, whichever is lower for the current process. + +### `process.getProcessMemoryInfo()` + +Returns an object giving memory usage statistics about the current process. Note +that all statistics are reported in Kilobytes. + +* `workingSetSize` - The amount of memory currently pinned to actual physical + RAM. +* `peakWorkingSetSize` - The maximum amount of memory that has ever been pinned + to actual physical RAM. +* `privateBytes` - The amount of memory not shared by other processes, such as + JS heap or HTML content. +* `sharedBytes` - The amount of memory shared between processes, typically + memory consumed by the Electron code itself + +### `process.getSystemMemoryInfo()` + +Returns an object giving memory usage statistics about the entire system. Note +that all statistics are reported in Kilobytes. + +* `total` - The total amount of physical memory in Kilobytes available to the + system. +* `free` - The total amount of memory not being used by applications or disk + cache. + +On Windows / Linux: + +* `swapTotal` - The total amount of swap memory in Kilobytes available to the + system. +* `swapFree` - The free amount of swap memory in Kilobytes available to the + system. + +---------------------------------------- + +## Properties + +### `process.noAsar` + 이 속성을 `true`로 지정하면 Node 빌트인 모듈의 `asar` 아카이브 지원을 비활성화 시킬 수 있습니다. diff --git a/docs-translations/ko-KR/api/remote.md b/docs-translations/ko-KR/api/remote.md index e626780a99c6..b8489d119e72 100644 --- a/docs-translations/ko-KR/api/remote.md +++ b/docs-translations/ko-KR/api/remote.md @@ -35,8 +35,9 @@ win.loadURL('https://github.com'); 않습니다. 대신에 이 `BrowserWindow` 객체는 메인 프로세스에서 생성되며 렌더러 프로세스에 `win` 객체와 같이 이에 대응하는 remote 객체를 반환합니다. -참고로 remote를 통해선 [enumerable 속성](https://developer.mozilla.org/ko/docs/Web/JavaScript/Enumerability_and_ownership_of_properties)을 -가진 프로퍼티에만 접근할 수 있습니다. +참고로 remote 객체가 처음 참조될 때 표시되는 +[enumerable 속성](https://developer.mozilla.org/ko/docs/Web/JavaScript/Enumerability_and_ownership_of_properties)은 +remote를 통해서만 접근할 수 있습니다. ## Remote 객체의 생명 주기 diff --git a/docs-translations/ko-KR/api/session.md b/docs-translations/ko-KR/api/session.md index 1d2896b2055e..e21fa3b75bd6 100644 --- a/docs-translations/ko-KR/api/session.md +++ b/docs-translations/ko-KR/api/session.md @@ -136,17 +136,18 @@ session.defaultSession.cookies.set(cookie, (error) => { #### `ses.cookies.set(details, callback)` * `details` Object - * `url` String - `url`에 관련된 쿠키를 가져옵니다. + * `url` String - 쿠키에 대한 `url` 링크. * `name` String - 쿠키의 이름입니다. 기본적으로 비워두면 생략됩니다. * `value` String - 쿠키의 값입니다. 기본적으로 비워두면 생략됩니다. * `domain` String - 쿠키의 도메인입니다. 기본적으로 비워두면 생략됩니다. * `path` String - 쿠키의 경로입니다. 기본적으로 비워두면 생략됩니다. * `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부입니다. 기본값은 false입니다. - * `session` Boolean - 쿠키가 HttpOnly로 표시되는지에 대한 여부입니다. 기본값은 + * `session` Boolean - 쿠키가 Http 전용으로 표시되는지에 대한 여부입니다. 기본값은 false입니다. * `expirationDate` Double (optional) - UNIX 시간으로 표시되는 쿠키의 만료일에 - 대한 초 단위 시간입니다. 세션 쿠키에 제공되지 않습니다. + 대한 초 단위 시간입니다. 생략되면 쿠키가 세션 쿠기가 되며 세션 사이에 유지되지 + 않게 됩니다. * `callback` Function `details` 객체에 따라 쿠키를 설정합니다. 작업이 완료되면 `callback`이 @@ -322,6 +323,22 @@ session.fromPartition(partition).setPermissionRequestHandler((webContents, permi 호스트 리소버(resolver) 캐시를 지웁니다. +#### `ses.allowNTLMCredentialsForDomains(domains)` + +* `domains` String - 통합 인증을 사용하도록 설정할 쉼표로 구분된 서버의 리스트. + +동적으로 HTTP NTML 또는 Negotiate 인증을 위해 언제나 자격 증명을 보낼지 여부를 +설정합니다. + +```javascript +// 통합 인증을 위해 `example.com`, `foobar.com`, `baz`로 끝나는 +// 모든 url을 지정합니다. +session.defaultSession.allowNTLMCredentialsForDomains('*example.com, *foobar.com, *baz') + +// 통합 인증을 위해 모든 url을 지정합니다. +session.defaultSession.allowNTLMCredentialsForDomains('*') +``` + #### `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 8a98dd1d5432..9b53baee35bc 100644 --- a/docs-translations/ko-KR/api/system-preferences.md +++ b/docs-translations/ko-KR/api/system-preferences.md @@ -37,8 +37,8 @@ OS X의 네이티브 알림을 구독하며, 해당하는 `event`가 발생하 ### `systemPreferences.getUserDefault(key, type)` _OS X_ * `key` String -* `type` String - `string`, `boolean`, `integer`, `float`, `double`, `url` 값이 - 될 수 있습니다. +* `type` String - `string`, `boolean`, `integer`, `float`, `double`, `url`, + `array`, `dictionary` 값이 될 수 있습니다. 시스템 설정에서 `key`에 해당하는 값을 가져옵니다. @@ -49,6 +49,9 @@ OS X에선 API가 `NSUserDefaults`를 읽어들입니다. 유명한 `key`와 `ty * `AppleAquaColorVariant: integer` * `AppleHighlightColor: string` * `AppleShowScrollBars: string` +* `NSNavRecentPlaces: array` +* `NSPreferredWebServices: dictionary` +* `NSUserDictionaryReplacementItems: array` ### `systemPreferences.isAeroGlassEnabled()` _Windows_ diff --git a/docs-translations/ko-KR/api/tray.md b/docs-translations/ko-KR/api/tray.md index d208de250201..9d5d8a81bc9e 100644 --- a/docs-translations/ko-KR/api/tray.md +++ b/docs-translations/ko-KR/api/tray.md @@ -27,6 +27,8 @@ __플랫폼별 한계:__ 트레이 아이콘이 작동하도록 만들 수 있습니다. * 앱 알림 표시기는 컨텍스트 메뉴를 가지고 있을 때만 보입니다. * Linux에서 앱 표시기가 사용될 경우, `click` 이벤트는 무시됩니다. +* Windows에선 가장 좋은 시각적 효과를 얻기 위해 `ICO` 아이콘을 사용하는 것을 + 권장합니다. * Linux에서 각각 개별 `MenuItem`의 변경을 적용하려면 `setContextMenu`를 다시 호출해야 합니다. 예를 들면: diff --git a/docs-translations/ko-KR/api/web-contents.md b/docs-translations/ko-KR/api/web-contents.md index 0510f0bd5788..41592011613c 100644 --- a/docs-translations/ko-KR/api/web-contents.md +++ b/docs-translations/ko-KR/api/web-contents.md @@ -360,6 +360,41 @@ Returns: 새로운 컨텍스트 메뉴의 제어가 필요할 때 발생하는 이벤트입니다. +### Event: 'select-bluetooth-device' + +Returns: + +* `event` Event +* `devices` [Objects] + * `deviceName` String + * `deviceId` String +* `callback` Function + * `deviceId` String + +`navigator.bluetooth.requestDevice`의 호출에 의해 블루투스 기기가 선택되어야 할 때 +발생하는 이벤트입니다. `navigator.bluetooth` API를 사용하려면 `webBluetooth`가 +활성화되어 있어야 합니다. 만약 `event.preventDefault`이 호출되지 않으면, 첫 번째로 +사용 가능한 기기가 선택됩니다. `callback`은 반드시 선택될 `deviceId`와 함께 +호출되어야 하며, 빈 문자열을 `callback`에 보내면 요청이 취소됩니다. + +```javascript +app.commandLine.appendSwitch('enable-web-bluetooth') + +app.on('ready', () => { + webContents.on('select-bluetooth-device', (event, deviceList, callback) => { + event.preventDefault() + let result = deviceList.find((device) => { + return device.deviceName === 'test' + }) + if (!result) { + callback('') + } else { + callback(result.deviceId) + } + }) +}) +``` + ## Instance Methods `webContents`객체는 다음과 같은 인스턴스 메서드들을 가지고 있습니다. @@ -634,7 +669,8 @@ print기능을 사용하지 않는 경우 전체 바이너리 크기를 줄이 * `marginsType` Integer - 사용할 마진의 종류를 지정합니다. 0 부터 2 사이 값을 사용할 수 있고 각각 기본 마진, 마진 없음, 최소 마진입니다. * `pageSize` String - 생성되는 PDF의 페이지 크기를 지정합니다. 값은 `A3`, `A4`, - `A5`, `Legal`, `Letter` 와 `Tabloid`가 사용될 수 있습니다. + `A5`, `Legal`, `Letter`, `Tabloid` 또는 마이크론 단위의 `height` & `width`가 + 포함된 객체를 사용할 수 있습니다. * `printBackground` Boolean - CSS 배경을 프린트할지 여부를 정합니다. * `printSelectionOnly` Boolean - 선택된 영역만 프린트할지 여부를 정합니다. * `landscape` Boolean - landscape을 위해선 `true`를, portrait를 위해선 `false`를 @@ -658,6 +694,8 @@ Chromium의 미리보기 프린팅 커스텀 설정을 이용하여 윈도우의 } ``` +다음은 `webContents.printToPDF`의 예시입니다: + ```javascript const {BrowserWindow} = require('electron'); const fs = require('fs'); diff --git a/docs-translations/ko-KR/api/web-view-tag.md b/docs-translations/ko-KR/api/web-view-tag.md index 7adbe5cbd188..71032fcb5732 100644 --- a/docs-translations/ko-KR/api/web-view-tag.md +++ b/docs-translations/ko-KR/api/web-view-tag.md @@ -433,19 +433,19 @@ Service worker에 대한 개발자 도구를 엽니다. * `action` String - [`.findInPage`](web-view-tag.md#webviewtagfindinpage) 요청이 종료되었을 때 일어날 수 있는 작업을 지정합니다. - * `clearSelection` - 선택을 일반 선택으로 변경합니다. - * `keepSelection` - 선택을 취소합니다. + * `clearSelection` - 선택을 취소합니다. + * `keepSelection` - 선택을 일반 선택으로 변경합니다. * `activateSelection` - 포커스한 후 선택된 노드를 클릭합니다. 제공된 `action`에 대한 `webContents`의 모든 `findInPage` 요청을 중지합니다. ### `.print([options])` -Webview 페이지를 인쇄합니다. `webContents.print([options])` 메서드와 같습니다. +`webview` 페이지를 인쇄합니다. `webContents.print([options])` 메서드와 같습니다. ### `.printToPDF(options, callback)` -Webview 페이지를 PDF 형식으로 인쇄합니다. +`webview` 페이지를 PDF 형식으로 인쇄합니다. `webContents.printToPDF(options, callback)` 메서드와 같습니다. ### `.send(channel[, arg1][, arg2][, ...])` @@ -463,7 +463,7 @@ Webview 페이지를 PDF 형식으로 인쇄합니다. * `event` Object -페이지에 input `event`를 보냅니다. +페이지에 입력 `event`를 보냅니다. `event` 객체에 대해 자세히 알아보려면 [webContents.sendInputEvent](web-contents.md##webcontentssendinputeventevent)를 참고하세요. @@ -617,7 +617,7 @@ webview.addEventListener('found-in-page', (e) => { webview.stopFindInPage('keepSelection'); }); -const rquestId = webview.findInPage('test'); +const requestId = webview.findInPage('test'); ``` ### Event: 'new-window' diff --git a/docs-translations/ko-KR/api/window-open.md b/docs-translations/ko-KR/api/window-open.md index ac291283f546..0c4fb7153376 100644 --- a/docs-translations/ko-KR/api/window-open.md +++ b/docs-translations/ko-KR/api/window-open.md @@ -59,6 +59,10 @@ 자식 윈도우에 포커스를 맞춥니다. (창을 맨 앞으로 가져옵니다) +### `BrowserWindowProxy.print()` + +자식 윈도우에 프린트 대화 상자를 호출합니다. + ### `BrowserWindowProxy.postMessage(message, targetOrigin)` * `message` String diff --git a/docs-translations/ko-KR/development/build-instructions-linux.md b/docs-translations/ko-KR/development/build-instructions-linux.md index 3cd410a4bbf5..3fe755313ebb 100644 --- a/docs-translations/ko-KR/development/build-instructions-linux.md +++ b/docs-translations/ko-KR/development/build-instructions-linux.md @@ -8,7 +8,7 @@ * Python 2.7.x. 몇몇 CentOS와 같은 배포판들은 아직도 Python 2.6.x 버전을 사용합니다. 그래서 먼저 `python -V`를 통해 버전을 확인할 필요가 있습니다. * Node.js v0.12.x. Node를 설치하는 방법은 여러 가지가 있습니다. 먼저, - [Node.js](http://nodejs.org) 사이트에서 소스코드를 받아 빌드하는 방법입니다. + [Node.js](http://nodejs.org) 사이트에서 소스 코드를 받아 빌드하는 방법입니다. 이렇게 하면 Node를 일반 유저로 홈 디렉터리에 설치할 수 있습니다. 다른 방법으로는 [NodeSource](https://nodesource.com/blog/nodejs-v012-iojs-and-the-nodesource-linux-repositories)에서 소스 파일을 받아와 설치할 수 있습니다. 자세한 내용은 [Node.js 설치 방법](https://github.com/joyent/node/wiki/Installation)을 @@ -34,7 +34,7 @@ $ sudo yum install clang dbus-devel gtk2-devel libnotify-devel libgnome-keyring- ``` 다른 배포판의 경우 pacman 같은 패키지 매니저를 통해 패키지를 설치 할 수 있습니다. -패키지의 이름은 대부분 위 예시와 비슷할 것입니다. 또는 소스코드를 내려받아 +패키지의 이름은 대부분 위 예시와 비슷할 것입니다. 또는 소스 코드를 내려받아 직접 빌드하는 방법도 있습니다. ## 코드 가져오기 diff --git a/docs-translations/ko-KR/development/build-instructions-windows.md b/docs-translations/ko-KR/development/build-instructions-windows.md index 4e4a9354d92c..525dae2f0143 100644 --- a/docs-translations/ko-KR/development/build-instructions-windows.md +++ b/docs-translations/ko-KR/development/build-instructions-windows.md @@ -21,7 +21,7 @@ Studio를 사용할 수 없습니다. 하지만 여전히 Electron을 개발할 **참고:** Visual Studio가 직접 빌드에 사용되지 않더라도 IDE와 같이 제공된 빌드 툴체인이 빌드에 **반드시** 사용되므로 여전히 필요합니다. -**참고:** Visual Studio 2013는 사용할 수 없습니다 MSVS **2015** 을 사용하고 있는지 +**참고:** Visual Studio 2013은 사용할 수 없습니다 MSVS **2015** 을 사용하고 있는지 확인해주세요. ## 코드 가져오기 @@ -97,7 +97,7 @@ $ python script\test.py -R ### Command xxxx not found 만약 `Command xxxx not found`와 같은 형식의 에러가 발생했다면 -`VS2015 Command Prompt` 콘솔로 빌드 스크립트를 실행해볼 필요가 있습니다. +`VS2015 Command Prompt` 콘솔로 빌드 스크립트를 실행해 보는게 좋습니다. ### Fatal internal compiler error: C1001 diff --git a/docs-translations/ko-KR/development/source-code-directory-structure.md b/docs-translations/ko-KR/development/source-code-directory-structure.md index 003eca596839..aa6d2612df57 100644 --- a/docs-translations/ko-KR/development/source-code-directory-structure.md +++ b/docs-translations/ko-KR/development/source-code-directory-structure.md @@ -10,35 +10,35 @@ Electron의 소스 코드는 몇 개의 파트로 분리되어 있습니다. 그 ``` Electron -├── atom - C++ 소스 코드. -| ├── app - 시스템 엔트리 코드. -| ├── browser - 주 윈도우를 포함한 프론트엔드, UI, 그리고 메인 프로세스에 관련된 +├── atom/ - C++ 소스 코드. +| ├── app/ - 시스템 엔트리 코드. +| ├── browser/ - 주 윈도우를 포함한 프론트엔드, UI, 그리고 메인 프로세스에 관련된 | | 코드와 렌더러 및 웹 페이지 관리 관련 코드. -| | ├── ui - 서로 다른 플랫폼에 대한 UI 관련 구현 코드. -| | | ├── cocoa - Cocoa 특정 소스 코드. -| | | ├── gtk - GTK+ 특정 소스 코드. -| | | └── win - Windows GUI 특정 소스 코드. -| | ├── api - 메인 프로세스 API의 구현. -| | ├── net - 네트워킹 관련 코드. -| | ├── mac - Mac 특정 Objective-C 소스 코드. -| | └── resources - 아이콘들, 플랫폼 종속성 파일들, 기타 등등.. -| ├── renderer - 렌더러 프로세스에서 작동하는 코드. -| | └── api - 렌더러 프로세스 API의 구현. -| └── common - 메인과 렌더러 프로세스에서 모두 사용하는 코드, 몇가지 유틸리티 +| | ├── ui/ - 서로 다른 플랫폼에 대한 UI 관련 구현 코드. +| | | ├── cocoa/ - Cocoa 특정 소스 코드. +| | | ├── win/ - Windows GUI 특정 소스 코드. +| | | └── x/ - X11 특정 소스 코드. +| | ├── api/ - 메인 프로세스 API의 구현. +| | ├── net/ - 네트워킹 관련 코드. +| | ├── mac/ - Mac 특정 Objective-C 소스 코드. +| | └── resources/ - 아이콘들, 플랫폼 종속성 파일들, 기타 등등.. +| ├── renderer/ - 렌더러 프로세스에서 작동하는 코드. +| | └── api/ - 렌더러 프로세스 API의 구현. +| └── common/ - 메인과 렌더러 프로세스에서 모두 사용하는 코드, 몇가지 유틸리티 | 함수들이 포함되어 있고 node의 메시지 루프와 Chromium의 메시지 루프를 통합. -| └── api - 공통 API 구현들, 기초 Electron 빌트-인 모듈들. -├── chromium_src - Chromium에서 복사하여 가져온 소스코드. -├── default_app - Electron에 앱이 제공되지 않았을 때 보여지는 기본 페이지. -├── docs - 참조 문서. -├── lib - JavaScript 소스 코드. -| ├── browser - Javascript 메인 프로세스 초기화 코드. -| | └── api - Javascript API 구현 코드. -| ├── common - 메인과 렌더러 프로세스에서 모두 사용하는 JavaScript -| | └── api - Javascript API 구현 코드. -| └── renderer - Javascript 렌더러 프로세스 초기화 코드. -| └── api - Javascript API 구현 코드. -├── spec - 자동화 테스트. -├── atom.gyp - Electron의 빌드 규칙. +| └── api/ - 공통 API 구현들, 기초 Electron 빌트-인 모듈들. +├── chromium_src/ - Chromium에서 복사하여 가져온 소스 코드. +├── default_app/ - Electron에 앱이 제공되지 않았을 때 보여지는 기본 페이지. +├── docs/ - 참조 문서. +├── lib/ - JavaScript 소스 코드. +| ├── browser/ - Javascript 메인 프로세스 초기화 코드. +| | └── api/ - Javascript API 구현 코드. +| ├── common/ - 메인과 렌더러 프로세스에서 모두 사용하는 JavaScript +| | └── api/ - Javascript API 구현 코드. +| └── renderer/ - Javascript 렌더러 프로세스 초기화 코드. +| └── api/ - Javascript API 구현 코드. +├── spec/ - 자동화 테스트. +├── electron.gyp - Electron의 빌드 규칙. └── common.gypi - 컴파일러 설정 및 `node` 와 `breakpad` 등의 구성요소를 위한 빌드 규칙. ``` @@ -48,7 +48,7 @@ Electron * **script** - 개발목적으로 사용되는 빌드, 패키징, 테스트, 기타등을 실행하는 스크립트. * **tools** - gyp 파일에서 사용되는 헬퍼 스크립트 `script`와는 다르게 유저로부터 직접 실행되지 않는 스크립트들을 이곳에 넣습니다. -* **vendor** - 소스코드의 서드파티 종속성 코드 소스 코드 디렉터리가 겹쳐 혼란을 일으킬 +* **vendor** - 소스 코드의 서드파티 종속성 코드 소스 코드 디렉터리가 겹쳐 혼란을 일으킬 수 있기 때문에 `third_party`와 같은 Chromium 소스 코드 디렉터리에서 사용된 폴더 이름은 사용하지 않았습니다. * **node_modules** - 빌드에 사용되는 node 서드파티 모듈. diff --git a/docs-translations/ko-KR/tutorial/application-distribution.md b/docs-translations/ko-KR/tutorial/application-distribution.md index 445a9dda21d4..fedd613c0f11 100644 --- a/docs-translations/ko-KR/tutorial/application-distribution.md +++ b/docs-translations/ko-KR/tutorial/application-distribution.md @@ -31,7 +31,7 @@ electron/resources/app ## asar로 앱 패키징 하기 소스파일 전체를 복사해서 배포하는 것과는 별개로 [asar](https://github.com/electron/asar) -아카이브를 통해 어플리케이션의 소스코드가 사용자에게 노출되는 것을 방지할 수 있습니다. +아카이브를 통해 어플리케이션의 소스 코드가 사용자에게 노출되는 것을 방지할 수 있습니다. `asar` 아카이브를 사용할 땐 단순히 `app` 폴더 대신에 어플리케이션을 패키징한 `app.asar` 파일로 대체하면됩니다. Electron은 자동으로 `app`폴더 대신 asar 아카이브를 @@ -105,9 +105,17 @@ MyApp.app/Contents 아이콘은 [.desktop](https://developer.gnome.org/integration-guide/stable/desktop-files.html.en) 파일을 사용하여 지정할 수 있습니다. -## Electron 소스코드를 다시 빌드하여 리소스 수정하기 +## 패키징 툴 -또한 Electron 소스코드를 다시 빌드할 때 어플리케이션 이름을 변경할 수 있습니다. +어플리케이션을 일일이 수동으로 패키지로 만드는 대신, 서드 파티 패키징 툴을 사용하며 +이러한 작업을 자동화 시킬 수 있습니다: + +* [electron-packager](https://github.com/maxogden/electron-packager) +* [electron-builder](https://github.com/loopline-systems/electron-builder) + +## Electron 소스 코드를 다시 빌드하여 리소스 수정하기 + +또한 Electron 소스 코드를 다시 빌드할 때 어플리케이션 이름을 변경할 수 있습니다. `GYP_DEFINES` 환경변수를 사용하여 다음과 같이 다시 빌드할 수 있습니다: @@ -131,17 +139,56 @@ $ script/build.py -c Release -t myapp ### grunt-build-atom-shell -Electron의 소스코드를 수정하고 다시 빌드하는 작업은 상당히 복잡합니다. 일일이 -소스코드를 수정하는 대신 [grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell)을 +Electron의 소스 코드를 수정하고 다시 빌드하는 작업은 상당히 복잡합니다. 일일이 +소스 코드를 수정하는 대신 [grunt-build-atom-shell](https://github.com/paulcbetts/grunt-build-atom-shell)을 사용하여 빌드를 자동화 시킬 수 있습니다. 이 툴을 사용하면 자동으로 `.gyp`파일을 수정하고 다시 빌드합니다. 그리고 어플리케이션의 네이티브 Node 모듈 또한 새로운 실행파일 이름으로 일치시킵니다. -## 패키징 툴 +### Electron 커스텀 포크 만들기 -어플리케이션을 일일이 수동으로 패키지로 만드는 대신, 서드 파티 패키징 툴을 사용하며 -이러한 작업을 자동화 시킬 수 있습니다: +Electron의 커스텀 포크를 만드는 것은 거의 확실히 앱을 만드는데 있어서 필요한 작업이 +아닐 수 있으며, 심지어 "제품 등급"의 어플리케이션이라도 필요하지 않습니다. +`electron-packager` 또는 `electron-builder`와 같은 도구를 사용하면 다른 특별한 +과정 없이 Electron을 "Rebrand" 할 수 있습니다. -* [electron-packager](https://github.com/maxogden/electron-packager) -* [electron-builder](https://github.com/loopline-systems/electron-builder) +업스트림 단에서 추가될 수 없는 기능이나 이미 공식 버전에서 거부된 기능을 Electron에 +직접적으로 패치하기 위해 커스텀 C++를 추가해야 한다면 Electron을 포크해야 합니다. +Electron의 개발자로써, Electron을 매우 많은 시나리오에서도 작동하도록 만들려고 +합니다. 따라서 가능한한 변경 사항을 공식 버전의 Electron에 추가할 수 있도록 시도해 +주길 바라며, 당신에겐 아주 아주 쉬운 작업일 것이고 이러한 당신의 도움에 대해 감사하게 +생각합니다. + +#### surf-build와 함께 커스텀 릴리즈 만들기 + +1. npm을 통해 [Surf](https://github.com/surf-build/surf)를 설치합니다: + `npm install -g surf-build@latest` + +2. 새로운 S3 bucket을 만들고 다음과 같은 빈 디렉토리 구조를 만듭니다: + +``` +- atom-shell/ + - symbols/ + - dist/ +``` + +3. 다음의 환경 변수들을 설정합니다: + +* `ELECTRON_GITHUB_TOKEN` - GitHub에 릴리즈를 만들 수 있는 토큰. +* `ELECTRON_S3_ACCESS_KEY`, `ELECTRON_S3_BUCKET`, `ELECTRON_S3_SECRET_KEY` - + node.js 헤더 뿐만 아니라 심볼을 업로드할 장소. +* `ELECTRON_RELEASE` - `true`로 지정하고 업로드 부분이 실행되면, 설정되지 않은 + 부분을 남기고 `surf-build`가 CI-type 확인을 실행합니다. 모든 pull request를 + 실행할 때 적합합니다. +* `CI` - `true` 또는 다른 것을 지정하면 실패합니다. +* `GITHUB_TOKEN` - `ELECTRON_GITHUB_TOKEN`와 같게 설정 +* `SURF_TEMP` - Windows에선 `C:\Temp`로 설정하면 긴 경로 문제를 해결할 수 있습니다. +* `TARGET_ARCH` - `ia32` 또는 `x64`를 지정. + +4. Electron에 기여를 하는 기여자라면, _반드시_ `script/upload.py`에서 포크를 위해 + `ELECTRON_REPO`를 설정해야 합니다. (`MYORG/electron`) + +5. `surf-build -r https://github.com/MYORG/electron -s YOUR_COMMIT -n 'surf-PLATFORM-ARCH'` + +6. 빌드가 완료될 때까지 아주 아주 긴 시간을 기다립니다. diff --git a/docs-translations/ko-KR/tutorial/application-packaging.md b/docs-translations/ko-KR/tutorial/application-packaging.md index 8002350b56b1..6dd52b34ef83 100644 --- a/docs-translations/ko-KR/tutorial/application-packaging.md +++ b/docs-translations/ko-KR/tutorial/application-packaging.md @@ -1,7 +1,7 @@ # 어플리케이션 패키징 Windows에서 일어나는 긴 경로 이름에 대한 [issues](https://github.com/joyent/node/issues/6960)를 -완화하고 `require` 속도를 약간 빠르게 하며 어플리케이션의 리소스와 소스코드를 좋지 않은 +완화하고 `require` 속도를 약간 빠르게 하며 어플리케이션의 리소스와 소스 코드를 좋지 않은 사용자로부터 보호하기 위해 어플리케이션을 [asar][asar] 아카이브로 패키징 할 수 있습니다. ## `asar` 아카이브 생성 diff --git a/docs-translations/ko-KR/tutorial/devtools-extension.md b/docs-translations/ko-KR/tutorial/devtools-extension.md index 07281620ec71..633e23d82683 100644 --- a/docs-translations/ko-KR/tutorial/devtools-extension.md +++ b/docs-translations/ko-KR/tutorial/devtools-extension.md @@ -1,63 +1,59 @@ -# 개발자 도구 확장 기능 +# 개발자 도구 확장 기능 어플리케이션의 디버깅을 쉽게 하기 위해 Electron은 기본적으로 [Chrome DevTools Extension][devtools-extension]을 지원합니다. -개발자 도구 확장 기능은 간단하게 사용할 확장 기능 플러그인의 소스 코드를 다운로드한 후 -`BrowserWindow.addDevToolsExtension` API를 통해 어플리케이션 내에 로드할 수 있습니다. -한가지 주의할 점은 확장 기능 사용시 창이 생성될 때 마다 일일이 해당 API를 호출할 필요는 -없습니다. +Electron은 유명한 웹 프레임워크를 디버깅하기 위해 사용할 수 있는 개발자 도구 확장 +기능을 사용할 수 있도록 [Chrome 개발자 도구 확장 기능][devtools-extension]을 +지원합니다. -**주의: 현재 React DevTools은 작동하지 않습니다. https://github.com/electron/electron/issues/915 이슈를 참고하세요!** +## 개발자 도구는 어떻게 로드하나요 -다음 예시는 [React DevTools Extension](https://github.com/facebook/react-devtools)을 -사용합니다. +Electron에 확장 기능을 로드하려면, Chrome 브라우저에서 다운로드 해야 하며, 파일 시스템 경로를 지정해야 합니다. 그리고 `BrowserWindow.addDevToolsExtension(extension)`를 호출함으로써 기능을 로드할 수 있습니다. -먼저 소스코드를 다운로드 받습니다: +예시로 [React Developer Tools][react-devtools]를 사용한다면: -```bash -$ cd /some-directory -$ git clone --recursive https://github.com/facebook/react-devtools.git -``` +1. Chrome 브라우저를 설치합니다. +2. `chrome://extensions`로 이동한 후 해시된 `fmkadmapgofadopljbjfkapdkoienihi` + 같이 생긴 확장 기능의 ID를 찾습니다. +3. Chrome에서 사용하는 확장 기능을 저장해둔 파일 시스템 경로를 찾습니다: + * Windows에선 `%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions`; + * Linux에선: + * `~/.config/google-chrome/Default/Extensions/` + * `~/.config/google-chrome-beta/Default/Extensions/` + * `~/.config/google-chrome-canary/Default/Extensions/` + * `~/.config/chromium/Default/Extensions/` + * OS X에선 `~/Library/Application Support/Google/Chrome/Default/Extensions`. +4. 확장 기능의 경로를 `BrowserWindow.addDevToolsExtension` API로 전달합니다. + React Developer Tools의 경우 다음과 비슷해야 합니다: + `~/Library/Application Support/Google/Chrome/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/0.14.10_0` -[`react-devtools/shells/chrome/Readme.md`](https://github.com/facebook/react-devtools/blob/master/shells/chrome/Readme.md)를 -통해 확장 기능을 개발하는 방법을 알아볼 수 있습니다. +확장 기능의 이름은 `BrowserWindow.addDevToolsExtension`에서 반환되며, 이 이름을 +`BrowserWindow.removeDevToolsExtension` API로 전달함으로써 해당하는 확장 기능을 +언로드할 수 있습니다. -그리고 개발자 도구에서 다음 코드를 입력하면 확장 기능을 로드할 수 있습니다: +## 지원하는 개발자 도구 확장 기능 -```javascript -const BrowserWindow = require('electron').remote.BrowserWindow; -BrowserWindow.addDevToolsExtension('/some-directory/react-devtools/shells/chrome'); -``` +Electron은 아주 제한적인 `chrome.*` API만을 지원하므로 확장 기능이 지원하지 않는 +`chrome.*` API를 사용한다면 해당 기능은 작동하지 않을 것입니다. 다음 개발자 도구들은 +Electron에서 정상적으로 작동하는 것을 확인했으며 작동 여부를 보장할 수 있는 확장 +기능입니다: -확장 기능을 언로드 하고 콘솔을 다시 열 때 해당 확장 기능이 로드되지 않도록 하려면 -`BrowserWindow.removeDevToolsExtension` API를 사용하면 됩니다: +* [Ember Inspector](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) +* [React Developer Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi) +* [Backbone Debugger](https://chrome.google.com/webstore/detail/backbone-debugger/bhljhndlimiafopmmhjlgfpnnchjjbhd) +* [jQuery Debugger](https://chrome.google.com/webstore/detail/jquery-debugger/dbhhnnnpaeobfddmlalhnehgclcmjimi) +* [AngularJS Batarang](https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk) +* [Vue.js devtools](https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd) -```javascript -BrowserWindow.removeDevToolsExtension('React Developer Tools'); -``` +### 개발자 도구가 작동하지 않을 때 어떻게 해야 하나요? -## 개발자 도구 확장 기능의 구성 형식 +먼저 해당 확장 기능이 확실히 계속 유지되고 있는지를 확인하세요. 몇몇 확장 기능들은 +최신 버전의 Chrome 브라우저에서도 작동하지 않습니다. 그리고 이러한 확장 기능에 대해선 +Electron 개발팀에 해줄 수 있는 것이 아무것도 없습니다. -모든 개발자 도구 확장은 완벽히 Chrome 브라우저를 위해 작성되었기 때문에 Electron에서도 -로드할 수 있습니다. 하지만 반드시 확장 기능은 소스 코드 디렉터리(폴더) 형태여야 합니다. -그래서 `crx` 등의 포맷으로 패키징된 확장 기능의 경우 사용자가 직접 해당 패키지의 압축을 -풀어서 로드하지 않는 이상 Electron에서 해당 확장 기능의 압축을 풀 방법이 없습니다. - -## 백그라운드 페이지 - -현재 Electron은 Chrome에서 지원하는 백그라운드 페이지(background pages)를 지원하지 -않습니다. 몇몇 확장 기능은 이 기능에 의존하는 경우가 있는데, 이 때 해당 확장 기능은 -Electron에서 작동하지 않을 수 있습니다. - -## `chrome.*` API - -몇몇 Chrome 확장 기능은 특정 기능을 사용하기 위해 `chrome.*` API를 사용하는데, 이 -API들을 구현하기 위해 노력했지만 안타깝게도 아직 모든 API가 구현되지는 않았습니다. - -아직 모든 API가 구현되지 않았기 때문에 확장 기능에서 `chrome.devtools.*` 대신 -`chrome.*` API를 사용할 경우 확장 기능이 제대로 작동하지 않을 수 있음을 감안해야 합니다. -만약 문제가 발생할 경우 Electron의 GitHub 저장소에 관련 이슈를 올리면 해당 API를 -추가하는데 많은 도움이 됩니다. +위와 같은 상황이 아니라면 Electron의 이슈 리스트에 버그 보고를 추가한 후 예상한 것과 +달리 확장 기능의 어떤 부분의 정상적으로 작동하지 않았는지 설명하세요. [devtools-extension]: https://developer.chrome.com/extensions/devtools +[react-devtools]: https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi diff --git a/docs-translations/ko-KR/tutorial/mac-app-store-submission-guide.md b/docs-translations/ko-KR/tutorial/mac-app-store-submission-guide.md index c4dd2ca0423a..d163cb5e5c79 100644 --- a/docs-translations/ko-KR/tutorial/mac-app-store-submission-guide.md +++ b/docs-translations/ko-KR/tutorial/mac-app-store-submission-guide.md @@ -85,30 +85,33 @@ ID로 치환해야 합니다. ```bash #!/bin/bash -# 어플리케이션의 이름 +# 어플리케이션의 이름. APP="YourApp" -# 서명할 어플리케이션의 경로 +# 서명할 어플리케이션의 경로. APP_PATH="/path/to/YourApp.app" -# 서명된 패키지의 출력 경로 +# 서명된 패키지의 출력 경로. RESULT_PATH="~/Desktop/$APP.pkg" -# 요청한 인증서의 이름 +# 요청한 인증서의 이름. APP_KEY="3rd Party Mac Developer Application: Company Name (APPIDENTITY)" INSTALLER_KEY="3rd Party Mac Developer Installer: Company Name (APPIDENTITY)" +# plist 파일의 경로. +CHILD_PLIST="/path/to/child.plist" +PARENT_PLIST="/path/to/parent.plist" FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP" -codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/" -codesign -s "$APP_KEY" -f --entitlements child.plist "$APP_PATH/Contents/MacOS/$APP" -codesign -s "$APP_KEY" -f --entitlements parent.plist "$APP_PATH" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper.app/" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper EH.app/" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/$APP Helper NP.app/" +codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$APP_PATH/Contents/MacOS/$APP" +codesign -s "$APP_KEY" -f --entitlements "$PARENT_PLIST" "$APP_PATH" productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH" ```