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