Skip to content
This repository was archived by the owner on Mar 20, 2024. It is now read-only.

Trans(cookbook/dynamic-component-loader.jade)#40

Closed
enoxaiming wants to merge 4 commits intoangular:masterfrom
enoxaiming:master
Closed

Trans(cookbook/dynamic-component-loader.jade)#40
enoxaiming wants to merge 4 commits intoangular:masterfrom
enoxaiming:master

Conversation

@enoxaiming
Copy link
Contributor

cookbook/dynamic-component-loader.jade 번역
첫 번역이라 실수가 많을 수도 있는데요, 피드백 부탁드립니다!
감사합니다

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.


  • If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address. Check your existing CLA data and verify that your email is set on your git commits.
  • If you signed the CLA as a corporation, please let us know the company's name.

Copy link
Contributor

@tiratano tiratano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아직 전체 리뷰를 해보지 못했는데요,
로컬에서 한번 돌려보시고 오타와 띄어쓰기 검토 부탁 드리고
잘 이해되지 않는 문장들이 보이고 있습니다.. 다시 한번 확인 부탁 드립니다.

include ../_util-fns

:marked
템플릿의 컴포넌트는 항상 고정되어 있지 않습니다. 애플리케이션은 런타임마다 새로운 컴포넌트를 로딩해야 할지도 모릅니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컴포넌트가 늘 유동적이어서 매번 동적 로딩이 필요한 것은 아니므로
"템플릿의 컴포넌트가 항상 고정되어 있지는 않습니다. 애플리케이션은 런타임시 새로운 컴포넌트를 로딩해야 할지도 모릅니다."
로 하면 좋을 것 같습니다.


Component templates are not always fixed. An application may need to load new components at runtime.

이 요리책은 우리가 컴포넌트를 동적으로 추가하는 `ComponentFactoryResolver` 를 어떻게 사용하는지 보여줍니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

원문에 we 라는 말이 상당히 많이 나오는데요
오히려 제외하면 더 매끄러운 경우가 많으므로
여기서도 "우리가" 라는 말을 제외하면 더 좋을 것 같습니다.

## 컨텐츠 목차
## Table of contents

[동적 컴포넌트 로딩](#dynamic-loading)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

한글과 영문 사이에는 한줄 내려쓰기를 해주셔야 합니다. : )
로컬에서 gulp serve-and-sync로 꼭 화면 테스트를 부탁 드립니다.

## 동적 컴포넌트 로딩
## Dynamic Component Loading

하단의 예시는 어떻게 동적 광고 배너를 빌드할 수 있는지 보여줍니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"하단의" 라는 표현도 전혀 단어는 아니지만 지금까지 "다음의" 라는 용어로 통일하여 쓰고 있으므로
"다음의"로 번역 부탁 드립니다. : )


Before components can be added we have to define an anchor point to mark where components can be inserted dynamically.

광고 배너는 템플릿에서 가능한 삽입 포인트를 표시하기 위해서 `AdDirective` 라고 불리는 방향 지시어를 사용합니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

directive는 "지시자"로 통일하여 쓰고 있고 문맥상 아래 정도로 하면 좋을 것 같습니다.
"광고 배너는 템플릿에 유효한 삽입지점을 표시하기 위해 AdDirective라는 헬퍼 지시자를 사용합니다."


:marked
`AdDirective`
`AdDirective`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

한글과 영문 사이에는 한글 내려쓰기를 해주셔야 됩니다.
그렇지 않으면 AdDirective AdDirective 처럼 동일한 문장이 반복 출력됩니다. ^^;


The next step is to implement the ad banner. Most of the implementation is in `AdBannerComponent`.

우리는`template` 엘리먼트에 `AdDirective` 지시어를 추가하는 것으로 시작합니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"우리는"과 template 사이의 띄어쓰기가 빠졌습니다.
그런데 "우리는"을 빼는 것이 괜찮을 것 같습니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

directive는 "지시자"로 부탁 드립니다.


The `template` element decorated with the `ad-host` directive marks where dynamically loaded components will be added.

`template` 요소를 사용하는 것은 추가 출력을 렌더링하지 않을 때 추천된다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적으로 존칭을 사용하고 있으므로 "추천됩니다." 부탁 드립니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

element는 "엘리먼트로" 부탁 드립니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

문맥상 하필 왜 template 태그를 사용해야 했는지 설명하고 있으므로
since를 이유를 설명하는 접속사로 번역하여
"어떠한 추가 출력도 렌더링하지 않으므로 template 엘리먼트를 사용할 것을 추천합니다."
로 번역하면 좋을 것 같습니다.

### 컴포넌트 해결
### Resolving Components

`AdBanner` 는 `AdItem` 객체의 배열을 입력으로 받습니다. 'AdItem` 객체는 로드 할 컴포넌트의 유형과 컴포넌트에 바인딩 할 데이터를 지정합니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

출력된 화면을 보면 "는" 조사가 주어와 띄어쓰기 되어 있어서
"AdBanner는" 처럼 띄어쓰기를 하지 않아야 할 것 같습니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'AdItem` 따옴표 오타가 있습니다.


The ad components making up the ad campaign are returned from `AdService`.

'AdBannerComponent`에 구성 요소의 배열을 전달하는 것은 템플릿에 정적 요소가 없는 광고의 동적 목록이 허용됩니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'AdBannerComponent` 따옴표 오타가 있습니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

component는 컴포넌트로 통일하여 번역하고 있습니다.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"A하는 것은 B에 C 목록이 허용됩니다." 라는 문장의 의미가 잘 이해되지 않습니다.

@googlebot
Copy link

CLAs look good, thanks!

@enoxaiming enoxaiming closed this Mar 11, 2017
@enoxaiming enoxaiming reopened this Mar 11, 2017
@enoxaiming
Copy link
Contributor Author

리뷰 감사합니다.
실행을 안해봤더니 많은 오류가 있었네요 (..)
작동까지 확인해보았습니다 :)

Copy link
Contributor

@tiratano tiratano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다. 👍
추가 리뷰 몇개 더 했습니다.

통일성은 유지를 해야 하는데 정리된 가이드 문서가 없다보니 애로사항이 많으셨을 것 같습니다.
가이드 문서를 작성 중이니 다음에 참고해주세요. : )

include ../_util-fns

:marked
템플릿의 컴포넌트는 항상 고정되어 있지 않습니다. 애플리케이션은 런타임시 새로운 컴포넌트를 로딩해야 할지도 모릅니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컴포넌트가 항상 동적인 것은 아니므로 다음처럼 수정해야 할 것 같습니다.
이전: "템플릿의 컴포넌트는 항상 고정되어 있지 않습니다."
이후: "템플릿의 컴포넌트가 항상 고정되어 있는 것은 아닙니다."

)

:marked
`ad-host` 지시자로 장식 된 `template` 엘리먼트는 동적으로 추가 될 컴포넌트가 로드될 곳을 표시합니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

중간에 잘못된 공백이 포함되어 있습니다.
"장식 된" > "장식된"


`ComponentFactoryResolver` is used to resolve a `ComponentFactory` for each specific component. The component factory is need to create an instance of the component.

`ComponentFactories`는 앵귤러 컴파일러에 의해 생성됩니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Angular는 번역하지 않고 영문 그대로 사용하고 있으므로 통일하는게 좋을 것 같습니다.
"앵귤러" > "Angular"


Generally the compiler will generate a component factory for any component referenced in a template.

동적으로 로드된 컴포넌트에는 런타임에 컴포넌트가 로드되므로 템플릿에 셀렉터가 없습니다. 컴파일러가 여전히 팩토리를 생성하게 하려면 동적으로 로드된 컴포넌트를 `NgModule` 의 `entryComponents` 배열에 추가해야합니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

띄어쓰기가 빠져있습니다.
"추가해야합니다" > "추가해야 합니다."


Components are added to the template by calling `createComponent` on the `ViewContainerRef` reference.

`createComponent`는 로드 된 컴포넌트에 대한 레퍼런스를 반환합니다. 컴포넌트 레퍼런스는 입력 데이터를 전달하거나 메소드를 호출하여 컴포넌트와 상호 작용하는 데 사용될 수 있습니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

영어라 이상하지만 "로드되다"를 한 단어로 본다면 붙여써야 할 것 같습니다.
다른 곳은 "로드된"으로 되어 있으니 통일하는게 좋을 것 같습니다.
"로드 된" > "로드된"

)

:marked
결과는 아래와 같습니다:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

원문의 느낌이 크게 부자연스럽지 않으므로 원문의 느낌을 살려 번역을 해주면 좋을 것 같습니다.
이전: "결과는 아래와 같습니다:"
이후: "최종 광고 배너는 다음과 같은 모습입니다:"

+makeExample('cb-dynamic-component-loader/ts/src/app/ad-banner.component.ts', 'ad-host' ,'src/app/ad-banner.component.ts (template)')(format='.')

:marked
### 컴포넌트 해결
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

toh-pt6.jade에서도 resolve 번역이 어려워 고민을 하다가 "결정"으로 번역을 했었고,
일부 Mozilla 페이지의 Promise 등에서 "결정"으로 번역을 하고 있는 것 같습니다.
(https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve)

여기서도 "컴포넌트 해결" 이라고 하면 갑자기 무엇을 해결한다는 것인지 잘 느낌이 오지 않으므로,
ComponentFactoryResolver가 여러 ComponentFactory 중에 어떻게 최종 선택하여 확정 짓는지 설명하는 것이므로 "컴포넌트 결정" 이라고 하면 어떨까요?


`AdBannerComponent` cycles through the array of `AdItems` and loads the corresponding components on an interval. Every 3 seconds a new component is loaded.

`ComponentFactoryResolver`는 각각의 특정 컴포넌트에 대한 `ComponentFactory`를 해결하기 위해 사용됩니다. 컴포넌트 팩토리는 컴포넌트의 인스턴스를 생성 할 필요가 있습니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위와 동일한 이유로 "결정"으로 하면 어떨까요?


The following example shows how to build a dynamic ad banner.

Hero Agency는 배너를 통해 여러 광고가 돌아가는 광고 캠페인을 기획하는 중입니다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"돌아가는" 이라고 하여 단순히 광고가 구동되는/실행중인 것이라고 생각했는데
글을 읽어보니 정말 3초마다 rotation 되는 광고 배너이군요!
그렇다면 several different ads cycling의 의도를 좀 더 명확히 번역해줘야 할 것 같습니다.

그리고 이미 페이지에서 Hero를 '히어로'로, Agency를 '에이전시'로 번역해서 통일을 해주면 좋을 것 같습니다.

이전: "Hero Agency는 배너를 통해 여러 광고가 돌아가는 광고 캠페인을 기획하는 중입니다."
이후: "히어로 에이전시는 배너를 통해 여러가지 다른 광고가 순환되는 광고 캠페인을 기획하고 있습니다."

@enoxaiming enoxaiming closed this Mar 13, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants