diff --git a/aio/content/guide/api-page-class.md b/aio/content/guide/api-page-class.md index 2a5c03d2e4..55cd6b10be 100644 --- a/aio/content/guide/api-page-class.md +++ b/aio/content/guide/api-page-class.md @@ -17,11 +17,7 @@ -

- -Class description goes here. This is a short and to the point one or two sentence description that easily introduces the reader to the class. - -

+

Class description goes here. This is a short and to the point one or two sentence description that easily introduces the reader to the class.

@@ -45,11 +41,7 @@ Class description goes here. This is a short and to the point one or two sentenc

Description

-

- -The longer class description goes here which can include multiple paragraphs. - -

+

The longer class description goes here which can include multiple paragraphs.

Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball. Ham hock picanha burgdoggen pork belly rump bacon cupim. Bacon kielbasa sirloin shank strip steak ground round. Bresaola cow salami meatloaf pork chop leberkas flank turducken biltong meatball chuck pork tri-tip chicken. Ribeye corned beef shoulder, meatloaf strip steak jerky porchetta capicola alcatra ham.

@@ -112,7 +104,6 @@ The longer class description goes here which can include multiple paragraphs.

Properties

- @@ -144,8 +135,8 @@ The longer class description goes here which can include multiple paragraphs. - + + + +
@@ -167,6 +158,7 @@ The longer class description goes here which can include multiple paragraphs.
@@ -190,6 +182,7 @@ The longer class description goes here which can include multiple paragraphs.
@@ -213,6 +206,7 @@ The longer class description goes here which can include multiple paragraphs.
@@ -221,7 +215,6 @@ The longer class description goes here which can include multiple paragraphs.

Methods

- @@ -235,33 +228,25 @@ The longer class description goes here which can include multiple paragraphs. - + +
-

- -Description goes here - -

+

Description goes here


-

- -Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball. Ham hock picanha burgdoggen pork belly rump bacon cupim. Bacon kielbasa sirloin shank strip steak ground round. Bresaola cow salami meatloaf pork chop leberkas flank turducken biltong meatball chuck pork tri-tip chicken. Ribeye corned beef shoulder, meatloaf strip steak jerky porchetta capicola alcatra ham. - -

+

Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball. Ham hock picanha burgdoggen pork belly rump bacon cupim. Bacon kielbasa sirloin shank strip steak ground round. Bresaola cow salami meatloaf pork chop leberkas flank turducken biltong meatball chuck pork tri-tip chicken. Ribeye corned beef shoulder, meatloaf strip steak jerky porchetta capicola alcatra ham.

- @@ -275,17 +260,13 @@ Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round - + +
-

- -Description goes here - -

+

Description goes here


@@ -303,19 +284,11 @@ Description goes here
Returns
-

- -Returns information and results goes here. - -

+

Returns information and results goes here.

Errors
-

- -Error information goes here - -

+

Error information goes here


@@ -325,6 +298,7 @@ Error information goes here + + +
@@ -346,6 +320,7 @@ Error information goes here
@@ -367,6 +342,7 @@ Error information goes here
@@ -374,15 +350,12 @@ Error information goes here
Example: Descriptive Title of Method Example
-

- -Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball. Ham hock picanha burgdoggen pork belly rump bacon cupim. Bacon kielbasa sirloin shank strip steak ground round. Bresaola cow salami meatloaf pork chop leberkas flank turducken biltong meatball chuck pork tri-tip chicken. Ribeye corned beef shoulder, meatloaf strip steak jerky porchetta capicola alcatra ham. - -

+

Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball. Ham hock picanha burgdoggen pork belly rump bacon cupim. Bacon kielbasa sirloin shank strip steak ground round. Bresaola cow salami meatloaf pork chop leberkas flank turducken biltong meatball chuck pork tri-tip chicken. Ribeye corned beef shoulder, meatloaf strip steak jerky porchetta capicola alcatra ham.

@@ -390,11 +363,7 @@ Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round

Example: Descriptive Title of Combined Example Goes Here

-

- -Intro description text about what the example is and how it can be used. - -

+

Intro description text about what the example is and how it can be used.

@@ -404,11 +373,7 @@ Intro description text about what the example is and how it can be used. }[], duration: number, delay: number, easing: string, previousPlayers: any[]) -

- -Further explanation provided as needed. Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball. - -

+

Further explanation provided as needed. Bacon ipsum dolor amet pork belly capicola sirloin venison alcatra ground round ham hock jowl turkey picanha bresaola pancetta brisket chicken fatback. Burgdoggen kevin salami jowl shoulder jerky leberkas meatball.

diff --git a/aio/content/guide/attribute-directives.md b/aio/content/guide/attribute-directives.md index d996857d5c..404a8ed975 100644 --- a/aio/content/guide/attribute-directives.md +++ b/aio/content/guide/attribute-directives.md @@ -522,12 +522,14 @@ The final source code follows: 最终的源码如下: + + You can also experience and download the . diff --git a/aio/content/guide/browser-support.md b/aio/content/guide/browser-support.md index 346e1c3e46..6b132ebec9 100644 --- a/aio/content/guide/browser-support.md +++ b/aio/content/guide/browser-support.md @@ -81,6 +81,7 @@ Angular 支持大多数常用浏览器,包括下列版本: + @@ -96,7 +97,9 @@ Angular 支持大多数常用浏览器,包括下列版本: + + @@ -112,6 +115,7 @@ Angular 支持大多数常用浏览器,包括下列版本: + @@ -129,6 +133,7 @@ Angular 支持大多数常用浏览器,包括下列版本: + @@ -146,6 +151,7 @@ Angular 支持大多数常用浏览器,包括下列版本: + diff --git a/aio/content/guide/cheatsheet.md b/aio/content/guide/cheatsheet.md index 8fbfcf5fd3..06a90de8bd 100644 --- a/aio/content/guide/cheatsheet.md +++ b/aio/content/guide/cheatsheet.md @@ -12,11 +12,13 @@

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +

+ @@ -30,6 +32,7 @@ + @@ -42,11 +45,13 @@ + +

import { NgModule } from '@angular/core'; +

@@ -121,6 +126,7 @@ is available to declarations of this module.

@@ -139,6 +145,7 @@ is available to declarations of this module.

+ +
@@ -310,6 +317,7 @@ is available to declarations of this module.

@@ -322,11 +330,13 @@ is available to declarations of this module.

+ + +

import { CommonModule } from '@angular/common'; +

@@ -376,6 +386,7 @@ is available to declarations of this module.

@@ -389,6 +400,7 @@ is available to declarations of this module.

@@ -401,11 +413,13 @@ is available to declarations of this module.

+ +

import { FormsModule } from '@angular/forms'; +

@@ -419,6 +433,7 @@ is available to declarations of this module.

@@ -431,11 +446,13 @@ is available to declarations of this module.

+ +

import { Directive, ... } from '@angular/core'; +

@@ -481,11 +498,13 @@ is available to declarations of this module.

Declares that a class has dependencies that should be injected into the constructor when the dependency injector is creating an instance of this class. +

@@ -498,11 +517,13 @@ is available to declarations of this module.

+ @@ -535,6 +552,7 @@ Does not support parent-child relationship selectors. +

@Directive({ property1: value1, ... }) +

@@ -514,11 +535,7 @@ is available to declarations of this module.

Specifies a CSS selector that identifies this directive within a template. Supported selectors include element, [attribute], .class, and :not().

-

- -Does not support parent-child relationship selectors. - -

+

Does not support parent-child relationship selectors.

@@ -553,6 +571,7 @@ so the @Directive configuration applies to components as well

+ +
@@ -602,6 +621,7 @@ so the @Directive configuration applies to components as well

@@ -614,11 +634,13 @@ so the @Directive configuration applies to components as well

+ +

import { Input, ... } from '@angular/core'; +

@@ -717,6 +739,7 @@ so the @Directive configuration applies to components as well

@@ -729,11 +752,13 @@ so the @Directive configuration applies to components as well

+ +

(implemented as class methods) +

@@ -843,6 +868,7 @@ so the @Directive configuration applies to components as well

@@ -859,6 +885,7 @@ so the @Directive configuration applies to components as well

+ +
@@ -896,6 +923,7 @@ so the @Directive configuration applies to components as well

@@ -908,11 +936,13 @@ so the @Directive configuration applies to components as well

+ +

import { Routes, RouterModule, ... } from '@angular/router'; +

@@ -1022,6 +1052,7 @@ so the @Directive configuration applies to components as well

diff --git a/aio/content/guide/comparing-observables.md b/aio/content/guide/comparing-observables.md index cd6f1a32c2..978560e14e 100644 --- a/aio/content/guide/comparing-observables.md +++ b/aio/content/guide/comparing-observables.md @@ -142,6 +142,7 @@ The following code snippets illustrate how the same kind of operation is defined + @@ -163,6 +164,7 @@ The following code snippets illustrate how the same kind of operation is defined + @@ -188,6 +190,7 @@ The following code snippets illustrate how the same kind of operation is defined + @@ -209,6 +212,7 @@ The following code snippets illustrate how the same kind of operation is defined + ## Observables compared to events API @@ -272,6 +276,7 @@ button.removeEventListener(‘click’, handler); + @@ -297,6 +302,7 @@ button.removeEventListener(‘click’, handler); + @@ -321,6 +327,7 @@ button.removeEventListener(‘click’, handler); + ## Observables compared to arrays @@ -368,6 +375,7 @@ An observable produces values over time. An array is created as a static set of + @@ -391,6 +399,7 @@ An observable produces values over time. An array is created as a static set of + @@ -414,6 +423,7 @@ An observable produces values over time. An array is created as a static set of + @@ -437,6 +447,7 @@ An observable produces values over time. An array is created as a static set of + @@ -460,6 +471,7 @@ An observable produces values over time. An array is created as a static set of + @@ -495,6 +507,7 @@ An observable produces values over time. An array is created as a static set of + @@ -518,6 +531,7 @@ An observable produces values over time. An array is created as a static set of + @@ -541,4 +555,5 @@ An observable produces values over time. An array is created as a static set of + diff --git a/aio/content/guide/component-styles.md b/aio/content/guide/component-styles.md index 7982777e93..f03d0a3926 100644 --- a/aio/content/guide/component-styles.md +++ b/aio/content/guide/component-styles.md @@ -290,8 +290,10 @@ to a component's `@Component` decorator: 我们可以通过把外部 CSS 文件添加到 `@Component` 的 `styleUrls` 属性中来加载外部样式。 + +
diff --git a/aio/content/guide/dependency-injection.md b/aio/content/guide/dependency-injection.md index f9963e41d1..e6b8ad247d 100644 --- a/aio/content/guide/dependency-injection.md +++ b/aio/content/guide/dependency-injection.md @@ -16,6 +16,7 @@ Start by reviewing this simplified version of the _heroes_ feature from the [The Tour of Heroes](tutorial/). + @@ -218,11 +219,13 @@ Of course, the `HeroListComponent` should do something with the injected `HeroSe Here's the revised component, making use of the injected service, side-by-side with the previous version for comparison. + + Notice that the `HeroListComponent` doesn't know where the `HeroService` comes from. diff --git a/aio/content/guide/docs-style-guide.md b/aio/content/guide/docs-style-guide.md index cd0ccf8375..ea75074899 100644 --- a/aio/content/guide/docs-style-guide.md +++ b/aio/content/guide/docs-style-guide.md @@ -125,8 +125,11 @@ All section heading text should be in "Sentence case", which means the first wor **Always follow the section heading with at least one blank line.**

+ Main section heading +

+ There are usually one or more main sections that may be further divided into secondary sections. Begin a main section heading with the markdown `##` characters. Alternatively, you can write the equivalent `

` HTML tag. @@ -142,7 +145,9 @@ The main section heading should be followed by a blank line and then the content ```

+ Secondary section heading +

A secondary section heading is related to a main heading and _falls textually within_ the bounds of that main heading. @@ -214,7 +219,9 @@ To exclude a heading from the TOC, create the heading as an `

` or `

` ele ```html

+ This heading is not displayed in the TOC +

``` @@ -224,7 +231,9 @@ You can turn off TOC generation for the _entire_ page by writing the title with ```html

+ A guide without a TOC +

``` @@ -510,6 +519,7 @@ The next example displays multiple code tabs, each with its own title. It demonstrates control over display of line numbers at both the `` and `` levels. + @@ -528,6 +538,7 @@ It demonstrates control over display of line numbers at both the `` a title="package.json (scripts)" path="docs-style-guide/package.1.json"> + Here's the markup for that example. @@ -538,6 +549,7 @@ The `linenums` attribute in the second pane restores line numbering for _itself ```html + @@ -556,6 +568,7 @@ The `linenums` attribute in the second pane restores line numbering for _itself title="package.json (scripts)" path="docs-style-guide/package.1.json"> + ``` @@ -710,6 +723,7 @@ export class AppComponent { Here's are the two corresponding code snippets displayed side-by-side. + + Some observations: @@ -1259,6 +1274,7 @@ Use HTML tables to present tabular data. + + + + +
@@ -1280,6 +1296,7 @@ Use HTML tables to present tabular data.
@@ -1301,6 +1318,7 @@ Use HTML tables to present tabular data.
@@ -1324,6 +1342,7 @@ Use HTML tables to present tabular data.
@@ -1345,6 +1364,7 @@ Use HTML tables to present tabular data.
Here is the markup for this table. @@ -1356,6 +1376,7 @@ Here is the markup for this table. + + + + +
@@ -1377,6 +1398,7 @@ Here is the markup for this table.
@@ -1398,6 +1420,7 @@ Here is the markup for this table.
@@ -1421,6 +1444,7 @@ Here is the markup for this table.
@@ -1442,6 +1466,7 @@ Here is the markup for this table.
``` diff --git a/aio/content/guide/i18n.md b/aio/content/guide/i18n.md index 3cd4137b5d..bfa151d7ed 100644 --- a/aio/content/guide/i18n.md +++ b/aio/content/guide/i18n.md @@ -418,9 +418,7 @@ the number of minutes.
This syntax conforms to the - ICU Message Format - as specified in the CLDR pluralization rules. @@ -854,6 +852,7 @@ The sample app and its translation file are now as follows: 下面是例子应用及其翻译文件: + @@ -864,6 +863,7 @@ The sample app and its translation file are now as follows: + {@a merge} diff --git a/aio/content/guide/lifecycle-hooks.md b/aio/content/guide/lifecycle-hooks.md index f01666dacc..fb0039e670 100644 --- a/aio/content/guide/lifecycle-hooks.md +++ b/aio/content/guide/lifecycle-hooks.md @@ -62,6 +62,7 @@ calls the lifecycle hook methods in the following sequence at specific moments: + + + + + + + + + +
@@ -77,6 +78,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -100,6 +102,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -122,6 +125,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -143,6 +147,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -164,6 +169,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -185,6 +191,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -206,6 +213,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -227,6 +235,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
@@ -250,6 +259,7 @@ calls the lifecycle hook methods in the following sequence at specific moments:
{@a interface-optional} @@ -321,6 +331,7 @@ Here's a brief description of each exercise: + + + + + + + + +
@@ -338,6 +349,7 @@ Here's a brief description of each exercise:
@@ -356,6 +368,7 @@ Here's a brief description of each exercise:
@@ -380,6 +393,7 @@ Here's a brief description of each exercise:
@@ -400,6 +414,7 @@ Here's a brief description of each exercise:
@@ -419,6 +434,7 @@ Here's a brief description of each exercise:
@@ -438,6 +454,7 @@ Here's a brief description of each exercise:
@@ -458,6 +475,7 @@ Here's a brief description of each exercise:
@@ -486,6 +504,7 @@ Here's a brief description of each exercise:
The remainder of this page discusses selected exercises in further detail. diff --git a/aio/content/guide/module-types.md b/aio/content/guide/module-types.md index a7d39a8d6e..9e9f2012cd 100644 --- a/aio/content/guide/module-types.md +++ b/aio/content/guide/module-types.md @@ -73,6 +73,7 @@ typical characteristics, in real world apps, you may see hybrids. + @@ -202,6 +203,7 @@ typical characteristics, in real world apps, you may see hybrids. The following table summarizes the key characteristics of each feature module group. + +
@@ -407,6 +409,7 @@ The following table summarizes the key characteristics of each feature module gr

diff --git a/aio/content/guide/quickstart.md b/aio/content/guide/quickstart.md index c53d02e077..35bdfa1433 100644 --- a/aio/content/guide/quickstart.md +++ b/aio/content/guide/quickstart.md @@ -298,6 +298,7 @@ Any files outside of this folder are meant to support building your app. + @@ -317,6 +318,7 @@ Any files outside of this folder are meant to support building your app. + @@ -337,6 +339,7 @@ Any files outside of this folder are meant to support building your app. + @@ -358,6 +361,7 @@ Any files outside of this folder are meant to support building your app. + @@ -376,6 +380,7 @@ Any files outside of this folder are meant to support building your app. + @@ -403,6 +408,7 @@ Any files outside of this folder are meant to support building your app. + @@ -422,6 +428,7 @@ Any files outside of this folder are meant to support building your app. + @@ -444,6 +451,7 @@ Any files outside of this folder are meant to support building your app. + @@ -467,6 +475,7 @@ Any files outside of this folder are meant to support building your app. + @@ -489,6 +498,7 @@ Any files outside of this folder are meant to support building your app. + @@ -509,6 +519,7 @@ Any files outside of this folder are meant to support building your app. + @@ -529,6 +540,7 @@ Any files outside of this folder are meant to support building your app. + @@ -547,6 +559,7 @@ Any files outside of this folder are meant to support building your app. + ### The root folder @@ -613,6 +626,7 @@ These files go in the root folder next to `src/`. + @@ -632,6 +646,7 @@ These files go in the root folder next to `src/`. + @@ -654,6 +669,7 @@ These files go in the root folder next to `src/`. + @@ -672,6 +688,7 @@ These files go in the root folder next to `src/`. + @@ -694,6 +711,7 @@ These files go in the root folder next to `src/`. + @@ -715,6 +733,7 @@ These files go in the root folder next to `src/`. + @@ -732,6 +751,7 @@ These files go in the root folder next to `src/`. + @@ -750,6 +770,7 @@ These files go in the root folder next to `src/`. + @@ -769,6 +790,7 @@ These files go in the root folder next to `src/`. + @@ -787,6 +809,7 @@ These files go in the root folder next to `src/`. + @@ -807,6 +830,7 @@ These files go in the root folder next to `src/`. + @@ -824,6 +848,7 @@ These files go in the root folder next to `src/`. + @@ -844,6 +869,7 @@ These files go in the root folder next to `src/`. +
diff --git a/aio/content/guide/router.md b/aio/content/guide/router.md index 3801196047..db5d45574f 100644 --- a/aio/content/guide/router.md +++ b/aio/content/guide/router.md @@ -294,6 +294,7 @@ It has a great deal of useful information including: 它有一大堆有用的信息,包括: + +
@@ -493,6 +494,7 @@ It has a great deal of useful information including:
@@ -521,6 +523,7 @@ During each navigation, the `Router` emits navigation events through the `Router 在每次导航中,`Router`都会通过`Router.events`属性发布一些导航事件。这些事件的范围涵盖了从开始导航到结束导航之间的很多时间点。下表中列出了全部导航事件: + +
@@ -669,6 +672,7 @@ During each navigation, the `Router` emits navigation events through the `Router
These events are logged to the console when the `enableTracing` option is enabled also. Since the events are provided as an `Observable`, you can `filter()` for events of interest and `subscribe()` to them to make decisions based on the sequence of events in the navigation process. @@ -2488,6 +2492,7 @@ to handle parameter access for both route parameters (`paramMap`) and query para `ParamMap` API 是参照[URLSearchParams 接口](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)来设计的。它提供了一些方法来处理对路由参数(`paramMap`)和查询参数(`queryParamMap`)中的参数访问。 + +
@@ -2579,6 +2584,7 @@ to handle parameter access for both route parameters (`paramMap`) and query para
{@a reuse} diff --git a/aio/content/guide/set-document-title.md b/aio/content/guide/set-document-title.md index f067f5bb60..4e992dfbfa 100644 --- a/aio/content/guide/set-document-title.md +++ b/aio/content/guide/set-document-title.md @@ -89,9 +89,11 @@ Here's the complete solution: 这里是完整的方案(代码)。 + + ## Why provide the `Title` service in `bootstrap` diff --git a/aio/content/guide/singleton-services.md b/aio/content/guide/singleton-services.md index dc317f9ebb..dc0e033e3b 100644 --- a/aio/content/guide/singleton-services.md +++ b/aio/content/guide/singleton-services.md @@ -166,6 +166,7 @@ Now `parentModule` exists and the constructor throws the error. Here are the two files in their entirety for reference: + @@ -175,6 +176,7 @@ Here are the two files in their entirety for reference: region="whole-core-module" path="ngmodules/src/app/core/core.module.ts"> +
diff --git a/aio/content/guide/template-syntax.md b/aio/content/guide/template-syntax.md index 19b1348501..c20537bdac 100644 --- a/aio/content/guide/template-syntax.md +++ b/aio/content/guide/template-syntax.md @@ -518,6 +518,7 @@ from the _source-to-view_, from _view-to-source_, and in the two-way sequence: _ + @@ -545,6 +546,7 @@ from the _source-to-view_, from _view-to-source_, and in the two-way sequence: _ + @@ -611,6 +613,7 @@ from the _source-to-view_, from _view-to-source_, and in the two-way sequence: _ + @@ -641,7 +644,9 @@ from the _source-to-view_, from _view-to-source_, and in the two-way sequence: _ + + @@ -877,6 +882,7 @@ The following table summarizes: + @@ -904,6 +910,7 @@ The following table summarizes: + @@ -935,6 +942,7 @@ The following table summarizes: + @@ -966,6 +974,7 @@ The following table summarizes: + @@ -993,6 +1002,7 @@ The following table summarizes: + @@ -1019,6 +1029,7 @@ The following table summarizes: + @@ -1044,6 +1055,7 @@ The following table summarizes: + @@ -1069,6 +1081,7 @@ The following table summarizes: + With this broad view in mind, you're ready to look at binding types in detail. diff --git a/aio/content/guide/testing.md b/aio/content/guide/testing.md index 1694000833..1cbab6e140 100644 --- a/aio/content/guide/testing.md +++ b/aio/content/guide/testing.md @@ -1609,9 +1609,7 @@ in a helper such as the `click()` function below: The first parameter is the _element-to-click_. If you wish, you can pass a custom event object as the second parameter. The default is a (partial) - left-button mouse event object - accepted by many handlers including the `RouterLink` directive.
@@ -2701,6 +2699,7 @@ The [_TestBed_](#testbed-api-summary) and [_ComponentFixture_](#component-fixtur Here's a summary of the stand-alone functions, in order of likely utility: + +
@@ -2876,6 +2875,7 @@ Here's a summary of the stand-alone functions, in order of likely utility:

@@ -2933,6 +2933,7 @@ Call `TestBed` methods _within_ a `beforeEach()` to ensure a fresh start before Here are the most important static methods, in order of likely utility. + +
@@ -3153,6 +3154,7 @@ Here are the most important static methods, in order of likely utility.
+ @@ -3264,6 +3267,7 @@ Here are the most important properties for testers, in order of likely utility. + {@a component-fixture-methods} @@ -3276,6 +3280,7 @@ Call these method to trigger Angular behavior in response to simulated user acti Here are the most useful methods for testers. + +
@@ -3412,6 +3417,7 @@ Here are the most useful methods for testers.
{@a debug-element-details} @@ -3426,6 +3432,7 @@ you can walk (and query) the fixture's entire element and component subtrees. Here are the most useful `DebugElement` members for testers, in approximate order of utility: + +
@@ -3693,6 +3700,7 @@ Here are the most useful `DebugElement` members for testers, in approximate orde
{@a query-predicate} diff --git a/aio/content/guide/upgrade.md b/aio/content/guide/upgrade.md index e1ee180901..9d28c27891 100644 --- a/aio/content/guide/upgrade.md +++ b/aio/content/guide/upgrade.md @@ -373,6 +373,7 @@ frameworks in how it actually works. 无论是在AngularJS中还是在Angular中,依赖注入都位于前沿和中心的位置,但在两个框架的工作原理上,却存在着一些关键的不同之处。 + + + +
@@ -388,6 +389,7 @@ frameworks in how it actually works.
@@ -409,6 +411,7 @@ frameworks in how it actually works.
@@ -430,6 +433,7 @@ frameworks in how it actually works.
Even accounting for these differences you can still have dependency injection @@ -992,6 +996,7 @@ observing the following rules: 当我们从Angular模板中使用该组件时,我们要使用**Angular模板语法**来提供这些输入属性和输出属性,但要遵循下列规则: + + + + + +
@@ -1015,6 +1020,7 @@ observing the following rules:
@@ -1038,6 +1044,7 @@ observing the following rules:
@@ -1061,6 +1068,7 @@ observing the following rules:
@@ -1084,6 +1092,7 @@ observing the following rules:
@@ -1112,6 +1121,7 @@ observing the following rules:
For example, imagine a hero detail AngularJS component directive @@ -2883,6 +2893,7 @@ For PhoneCat you need to make the following changes in order to make things work 这是因为E2E测试有一些匹配器是AngularJS中特有的。对于PhoneCat来说,为了让它能在Angular下工作,我们得做下列修改: + + + + + + +
@@ -2910,6 +2921,7 @@ For PhoneCat you need to make the following changes in order to make things work
@@ -2933,6 +2945,7 @@ For PhoneCat you need to make the following changes in order to make things work
@@ -2956,6 +2969,7 @@ For PhoneCat you need to make the following changes in order to make things work
@@ -2979,6 +2993,7 @@ For PhoneCat you need to make the following changes in order to make things work
@@ -3002,6 +3017,7 @@ For PhoneCat you need to make the following changes in order to make things work
@@ -3025,6 +3041,7 @@ For PhoneCat you need to make the following changes in order to make things work
When the bootstrap method is switched from that of `UpgradeModule` to diff --git a/aio/content/guide/visual-studio-2015.md b/aio/content/guide/visual-studio-2015.md index 75e54766e2..e9233defaf 100644 --- a/aio/content/guide/visual-studio-2015.md +++ b/aio/content/guide/visual-studio-2015.md @@ -132,7 +132,7 @@ Visual Studio将优先在当前的工作区查找外部工具,如果没有找

Prerequisite: Install TypeScript 2.2 for Visual Studio 2015 - + 前提条件: 安装TypeScript 2.2 for Visual Studio 2015

diff --git a/aio/content/tutorial/toh-pt0.md b/aio/content/tutorial/toh-pt0.md index 6e250252cd..c26514e3d6 100644 --- a/aio/content/tutorial/toh-pt0.md +++ b/aio/content/tutorial/toh-pt0.md @@ -118,6 +118,7 @@ Here are the code files discussed on this page. title="src/styles.css (excerpt)" path="toh-pt0/src/styles.1.css"> + ## Summary diff --git a/aio/content/tutorial/toh-pt2.md b/aio/content/tutorial/toh-pt2.md index c04ca544c9..23f67517eb 100644 --- a/aio/content/tutorial/toh-pt2.md +++ b/aio/content/tutorial/toh-pt2.md @@ -254,6 +254,7 @@ Your app should look like this . Here are the code files discussed on this page, including the `HeroesComponent` styles. + @@ -262,6 +263,7 @@ Here are the code files discussed on this page, including the `HeroesComponent` + ## Summary diff --git a/aio/content/tutorial/toh-pt5.md b/aio/content/tutorial/toh-pt5.md index 9274ed8af7..39b32c42d6 100644 --- a/aio/content/tutorial/toh-pt5.md +++ b/aio/content/tutorial/toh-pt5.md @@ -205,6 +205,7 @@ The CLI generates the files for the `DashboardComponent` and declares it in `App Replace the default file content in these three files as follows and then return for a little discussion: + @@ -216,6 +217,7 @@ Replace the default file content in these three files as follows and then return + The _template_ presents a grid of hero name links. @@ -567,6 +569,7 @@ Here are the code files discussed on this page and your app should look like thi #### _AppRoutingModule_ and _AppModule_ + @@ -575,6 +578,7 @@ Here are the code files discussed on this page and your app should look like thi title="src/app/app.module.ts" path="toh-pt5/src/app/app.module.ts"> + {@a appcomponent} @@ -582,6 +586,7 @@ Here are the code files discussed on this page and your app should look like thi #### _AppComponent_ + @@ -591,6 +596,7 @@ Here are the code files discussed on this page and your app should look like thi title="src/app/app.component.css" path="toh-pt5/src/app/app.component.css"> + {@a dashboardcomponent} @@ -598,6 +604,7 @@ Here are the code files discussed on this page and your app should look like thi #### _DashboardComponent_ + @@ -609,6 +616,7 @@ Here are the code files discussed on this page and your app should look like thi + {@a heroescomponent} @@ -616,6 +624,7 @@ Here are the code files discussed on this page and your app should look like thi #### _HeroesComponent_ + @@ -629,6 +638,7 @@ Here are the code files discussed on this page and your app should look like thi title="src/app/heroes/heroes.component.css" path="toh-pt5/src/app/heroes/heroes.component.css"> + {@a herodetailcomponent} @@ -636,6 +646,7 @@ Here are the code files discussed on this page and your app should look like thi #### _HeroDetailComponent_ + @@ -647,6 +658,7 @@ Here are the code files discussed on this page and your app should look like thi + ## Summary diff --git a/aio/content/tutorial/toh-pt6.md b/aio/content/tutorial/toh-pt6.md index d3416bb5b8..1d733f2e9a 100644 --- a/aio/content/tutorial/toh-pt6.md +++ b/aio/content/tutorial/toh-pt6.md @@ -610,6 +610,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). #### _HeroService_, _InMemoryDataService_, _AppModule_ + @@ -622,6 +623,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). title="app.module.ts" path="toh-pt6/src/app/app.module.ts"> + {@a heroescomponent} @@ -629,6 +631,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). #### _HeroesComponent_ + @@ -641,6 +644,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). title="heroes/heroes.component.css" path="toh-pt6/src/app/heroes/heroes.component.css"> + {@a herodetailcomponent} @@ -648,6 +652,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). #### _HeroDetailComponent_ + @@ -656,6 +661,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). title="hero-detail/hero-detail.component.ts" path="toh-pt6/src/app/hero-detail/hero-detail.component.ts"> + {@a herosearchcomponent} @@ -663,6 +669,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). #### _HeroSearchComponent_ + @@ -675,6 +682,7 @@ Here are the code files discussed on this page (all in the `src/app/` folder). title="hero-search/hero-search.component.css" path="toh-pt6/src/app/hero-search/hero-search.component.css"> + ## Summary diff --git a/aio/tools/translator/bin/translate-one.ts b/aio/tools/translator/bin/translate-one.ts index 6baaa94546..ee6b2252d4 100644 --- a/aio/tools/translator/bin/translate-one.ts +++ b/aio/tools/translator/bin/translate-one.ts @@ -3,5 +3,5 @@ import { dirs } from '../dirs'; import { translateFile } from '../translate'; -const filename = 'guide/i18n.md'; +const filename = 'guide/router.md'; translateFile(__dirname + '/../../../../../content-en/' + filename, dirs.content + filename); diff --git a/aio/tools/translator/dict-1.json b/aio/tools/translator/dict-1.json index 5e2e2ed484..df1831d8c9 100644 --- a/aio/tools/translator/dict-1.json +++ b/aio/tools/translator/dict-1.json @@ -1929,11 +1929,6 @@ "translation": "当然,这只是冰山一角。后面我们将学习更多的细节。不过,目前我们还是先关注全景图吧。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/architecture.md" }, - { - "original": "The code referenced on this page is available as a .", - "translation": "

\n 本章所引用的代码见。\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/architecture.md" - }, { "original": "## Modules", "translation": "## 模块", @@ -3420,13 +3415,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n latest\n

", - "translation": "

\n 最新版\n

", + "original": "latest", + "translation": "最新版", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n latest\n

", - "translation": "

\n 最新版\n

", + "original": "latest", + "translation": "最新版", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { @@ -3475,13 +3470,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n Browsers (Desktop & Mobile)\n

", - "translation": "

\n 浏览器(桌面和移动)\n

", + "original": "Browsers (Desktop & Mobile)", + "translation": "浏览器(桌面和移动)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n Polyfills Required\n

", - "translation": "

\n 需要的填充库\n

", + "original": "Polyfills Required", + "translation": "需要的填充库", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { @@ -3565,23 +3560,23 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n Polyfill\n

", - "translation": "

\n 填充库\n

", + "original": "Polyfill", + "translation": "填充库", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n Licence\n

", - "translation": "

\n 授权方式\n

", + "original": "Licence", + "translation": "授权方式", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n Size*\n

", - "translation": "

\n 大小*\n

", + "original": "Size*", + "translation": "大小*", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { - "original": "

\n Public domain\n

", - "translation": "

\n 公共域\n

", + "original": "Public domain", + "translation": "公共域", "sourceFile": "/Users/twer/private/GDE/content-1/guide/browser-support.md" }, { @@ -4185,7 +4180,7 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/cheatsheet.md" }, { - "original": "

Declares that a class has dependencies that should be injected into the constructor when the dependency injector is creating an instance of this class.\n

", + "original": "

", "translation": "

声明一个类具有一些依赖,当依赖注入器试图创建该类的实例时,应该把这些依赖注入到该类的构造函数中。

", "sourceFile": "/Users/twer/private/GDE/content-1/guide/cheatsheet.md" }, @@ -4290,7 +4285,7 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/cheatsheet.md" }, { - "original": "

(implemented as class methods)\n

", + "original": "

", "translation": "

由类的方法实现。

", "sourceFile": "/Users/twer/private/GDE/content-1/guide/cheatsheet.md" }, @@ -6910,13 +6905,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/dependency-injection.md" }, { - "original": "

\n Future proofing: No need to remember @Injectable() when you add a dependency later.\n

", - "translation": "

\n 面向未来: 没有必要记得在后来添加依赖的时候添加 @Injectable()。\n

", + "original": "Future proofing: No need to remember @Injectable() when you add a dependency later.", + "translation": "面向未来: 没有必要记得在后来添加依赖的时候添加 @Injectable()。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/dependency-injection.md" }, { - "original": "

\n Consistency: All services follow the same rules, and you don't have to wonder why a decorator is missing.\n

", - "translation": "

\n 一致性:所有的服务都遵循同样的规则,不需要考虑为什么某个地方少了一个。\n

", + "original": "Consistency: All services follow the same rules, and you don't have to wonder why a decorator is missing.", + "translation": "一致性:所有的服务都遵循同样的规则,不需要考虑为什么某个地方少了一个。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/dependency-injection.md" }, { @@ -7250,13 +7245,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/dependency-injection.md" }, { - "original": "

\n What if the dependency value isn't a class? Sometimes the thing you want to inject is a\n string, function, or object.\n

", - "translation": "

\n 如果依赖值不是一个类呢?有时候想要注入的东西是一个字符串,函数或者对象。\n

", + "original": "What if the dependency value isn't a class? Sometimes the thing you want to inject is a\n string, function, or object.", + "translation": "如果依赖值不是一个类呢?有时候想要注入的东西是一个字符串,函数或者对象。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/dependency-injection.md" }, { - "original": "

\n Applications often define configuration objects with lots of small facts\n (like the title of the application or the address of a web API endpoint)\n but these configuration objects aren't always instances of a class.\n They can be object literals such as this one:\n

", - "translation": "

\n 应用程序经常为很多很小的因素定义配置对象(例如应用程序的标题或网络API终点的地址)。\n 但是这些配置对象不总是类的实例,它们可能是对象,如下面这个:\n

", + "original": "Applications often define configuration objects with lots of small facts\n (like the title of the application or the address of a web API endpoint)\n but these configuration objects aren't always instances of a class.\n They can be object literals such as this one:", + "translation": "应用程序经常为很多很小的因素定义配置对象(例如应用程序的标题或网络API终点的地址)。\n 但是这些配置对象不总是类的实例,它们可能是对象,如下面这个:", "sourceFile": "/Users/twer/private/GDE/content-1/guide/dependency-injection.md" }, { @@ -9605,33 +9600,33 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { - "original": "

\n State\n

", - "translation": "

\n 状态\n

", + "original": "State", + "translation": "状态", "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { - "original": "

\n Class if true\n

", - "translation": "

\n 为真时的 CSS 类\n

", + "original": "Class if true", + "translation": "为真时的 CSS 类", "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { - "original": "

\n Class if false\n

", - "translation": "

\n 为假时的 CSS 类\n

", + "original": "Class if false", + "translation": "为假时的 CSS 类", "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { - "original": "

\n The control has been visited.\n

", - "translation": "

\n 控件被访问过。\n

", + "original": "The control has been visited.", + "translation": "控件被访问过。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { - "original": "

\n The control's value has changed.\n

", - "translation": "

\n 控件的值变化了。\n

", + "original": "The control's value has changed.", + "translation": "控件的值变化了。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { - "original": "

\n The control's value is valid.\n

", - "translation": "

\n 控件的值有效。\n

", + "original": "The control's value is valid.", + "translation": "控件的值有效。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/forms.md" }, { @@ -12994,16 +12989,6 @@ "translation": "当Angular使用构造函数新建一个组件或指令后,就会按下面的顺序在特定时刻调用这些生命周期钩子方法:", "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" }, - { - "original": "

Hook\n

", - "translation": "

\n 钩子\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" - }, - { - "original": "

Purpose and Timing\n

", - "translation": "

\n 目的和时机\n

\n \n ", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" - }, { "original": "Respond when Angular (re)sets data-bound input properties.\n The method receives a `SimpleChanges` object of current and previous property values.", "translation": "当Angular(重新)设置数据绑定输入属性时响应。\n 该方法接受当前和上一属性值的`SimpleChanges`对象", @@ -13169,16 +13154,6 @@ "translation": "下面是每个练习简短的描述:", "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" }, - { - "original": "

Component\n

", - "translation": "

\n 组件\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" - }, - { - "original": "

Description\n

", - "translation": "

\n 描述\n

\n \n ", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" - }, { "original": "Demonstrates every lifecycle hook.\n Each hook method writes to the on-screen log.", "translation": "展示每个生命周期钩子,每个钩子方法都会在屏幕上显示一条日志。", @@ -13215,8 +13190,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" }, { - "original": "

\n Counter\n

", - "translation": "

\n 计数器\n

", + "original": "Counter", + "translation": "计数器", "sourceFile": "/Users/twer/private/GDE/content-1/guide/lifecycle-hooks.md" }, { @@ -14595,18 +14570,18 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Feature Module\n

", - "translation": "

\n 特性模块\n

", + "original": "Feature Module", + "translation": "特性模块", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Guidelines\n

", - "translation": "

\n 指导原则\n

", + "original": "Guidelines", + "translation": "指导原则", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Domain\n

", - "translation": "

\n 领域\n

", + "original": "Domain", + "translation": "领域", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -14650,8 +14625,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Routed\n

", - "translation": "

\n 路由特性模块\n

", + "original": "Routed", + "translation": "路由特性模块", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -14695,8 +14670,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Routing\n

", - "translation": "

\n 路由模块\n

", + "original": "Routing", + "translation": "路由模块", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -14770,8 +14745,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Service\n

", - "translation": "

\n 服务\n

", + "original": "Service", + "translation": "服务", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -14795,8 +14770,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Widget\n

", - "translation": "

\n 窗口部件\n

", + "original": "Widget", + "translation": "窗口部件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -14835,173 +14810,173 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Feature Module\n

", - "translation": "

\n 特性模块\n

", + "original": "Feature Module", + "translation": "特性模块", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Declarations\n

", - "translation": "

\n 声明`declarations`\n

", + "original": "Declarations", + "translation": "声明`declarations`", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Providers\n

", - "translation": "

\n 提供商`providers`\n

", + "original": "Providers", + "translation": "提供商`providers`", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Exports\n

", - "translation": "

\n 导出什么\n

", + "original": "Exports", + "translation": "导出什么", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Imported By\n

", - "translation": "

\n 被谁导入\n

", + "original": "Imported By", + "translation": "被谁导入", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Examples\n

", - "translation": "

\n 范例\n

", + "original": "Examples", + "translation": "范例", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Domain\n

", - "translation": "

\n 领域\n

", + "original": "Domain", + "translation": "领域", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Rare\n

", - "translation": "

\n 罕见\n

", + "original": "Rare", + "translation": "罕见", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Top component\n

", - "translation": "

\n 顶级组件\n

", + "original": "Top component", + "translation": "顶级组件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Feature, AppModule\n

", - "translation": "

\n 特性模块和AppModule\n

", + "original": "Feature, AppModule", + "translation": "特性模块和AppModule", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n ContactModule (before routing)\n

", - "translation": "

\n ContactModule(路由之前的那个例子)\n

", + "original": "ContactModule (before routing)", + "translation": "ContactModule(路由之前的那个例子)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Routed\n

", - "translation": "

\n 路由\n

", + "original": "Routed", + "translation": "路由", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Rare\n

", - "translation": "

\n 罕见\n

", + "original": "Rare", + "translation": "罕见", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Nobody\n

", - "translation": "

\n 无\n

", + "original": "Nobody", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n ContactModule, HeroModule, CrisisModule\n

", - "translation": "

\n ContactModuleHeroModuleCrisisModule\n

", + "original": "ContactModule, HeroModule, CrisisModule", + "translation": "ContactModuleHeroModuleCrisisModule", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Routing\n

", - "translation": "

\n 路由\n

", + "original": "Routing", + "translation": "路由", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n HttpModule, CoreModule\n

", - "translation": "

\n HttpModuleCoreModule\n

", + "original": "HttpModule, CoreModule", + "translation": "HttpModuleCoreModule", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Service\n

", - "translation": "

\n 服务\n

", + "original": "Service", + "translation": "服务", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n HttpModule, CoreModule\n

", - "translation": "

\n HttpModuleCoreModule\n

", + "original": "HttpModule, CoreModule", + "translation": "HttpModuleCoreModule", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Widget\n

", - "translation": "

\n 窗口部件\n

", + "original": "Widget", + "translation": "窗口部件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Rare\n

", - "translation": "

\n 罕见\n

", + "original": "Rare", + "translation": "罕见", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Feature\n

", - "translation": "

\n 特性模块\n

", + "original": "Feature", + "translation": "特性模块", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n CommonModule, SharedModule\n

", - "translation": "

\n CommonModuleSharedModule\n

", + "original": "CommonModule, SharedModule", + "translation": "CommonModuleSharedModule", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -15155,13 +15130,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Property\n

", - "translation": "

\n 属性\n

", + "original": "Property", + "translation": "属性", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule-faq.md" }, { @@ -15345,7 +15320,7 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, { - "original": "**NgModules** help organize an application into cohesive blocks of functionality.\n", + "original": "", "translation": "**Angular 模块**能帮你把应用组织成多个内聚的功能块。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, @@ -16130,7 +16105,7 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, { - "original": "While you can do everything within the root module,\nfeature modules help you partition the app into areas of specific interest and purpose.\n", + "original": "", "translation": "虽然这些都能在根模块中做,但特性模块可以帮助我们把应用切分成具有特定关注点和目标的不同区域。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, @@ -16680,7 +16655,7 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, { - "original": "`UserService` is an application-wide singleton.\nYou don't want each module to have its own separate instance.\nYet there is [a real danger](guide/ngmodule-faq#q-why-bad) of that happening\n\nif the `SharedModule` provides the `UserService`.", + "original": "if the `SharedModule` provides the `UserService`.", "translation": "`UserService`是全应用级单例。\n我们不希望每个模块都各自有它的实例。\n而如果由`SharedModule`提供`UserService`,就会导致[铁板钉钉的危险](guide/ngmodule-faq#q-why-bad)。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, @@ -16935,7 +16910,7 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, { - "original": "Only the root `AppModule` should import the `CoreModule`.\n[Bad things happen](guide/ngmodule-faq#q-why-bad) if a lazy-loaded module imports it.\n", + "original": "", "translation": "只有根模块`AppModule`才能导入`CoreModule`。\n 如果惰性加载模块导入了它,就会[出问题](guide/ngmodule-faq#q-why-bad)。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/ngmodule.md" }, @@ -17725,8 +17700,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/pipes.md" }, { - "original": "

The impure AsyncPipe

", - "translation": "

\n 非纯 AsyncPipe\n

", + "original": "

", + "translation": "非纯 AsyncPipe", "sourceFile": "/Users/twer/private/GDE/content-1/guide/pipes.md" }, { @@ -17925,8 +17900,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { - "original": "

\n Step 1. Set up the Development Environment\n

", - "translation": "

\n 步骤1. 设置开发环境\n

", + "original": "

", + "translation": "步骤1. 设置开发环境", "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { @@ -17950,8 +17925,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { - "original": "

\n Step 2. Create a new project\n

", - "translation": "

\n 步骤2. 创建新项目\n

", + "original": "

", + "translation": "步骤2. 创建新项目", "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { @@ -17970,8 +17945,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { - "original": "

\n Step 3: Serve the application\n

", - "translation": "

\n 步骤3. 启动开发服务器\n

", + "original": "

", + "translation": "步骤3. 启动开发服务器", "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { @@ -17995,8 +17970,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { - "original": "

\n Step 4: Edit your first Angular component\n

", - "translation": "

\n 步骤4. 编辑我们的第一个Angular组件\n

", + "original": "

", + "translation": "步骤4. 编辑我们的第一个Angular组件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/quickstart.md" }, { @@ -18850,13 +18825,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/reactive-forms.md" }, { - "original": "

\n Property\n

", - "translation": "

\n 属性\n

", + "original": "Property", + "translation": "属性", "sourceFile": "/Users/twer/private/GDE/content-1/guide/reactive-forms.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 说明\n

", + "original": "Description", + "translation": "说明", "sourceFile": "/Users/twer/private/GDE/content-1/guide/reactive-forms.md" }, { @@ -19885,123 +19860,118 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Router Part\n

", - "translation": "

\n 路由器部件\n

", + "original": "Router Part", + "translation": "路由器部件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Meaning\n

", - "translation": "

\n 含义\n

", + "original": "Meaning", + "translation": "含义", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Router\n

", - "translation": "

\n Router(路由器)\n

", + "original": "Router", + "translation": "Router(路由器)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Displays the application component for the active URL.\n Manages navigation from one component to the next.\n

", - "translation": "

\n 为激活的URL显示应用组件。管理从一个组件到另一个组件的导航\n

", + "original": "Displays the application component for the active URL.\n Manages navigation from one component to the next.", + "translation": "为激活的URL显示应用组件。管理从一个组件到另一个组件的导航", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n RouterModule\n

", - "translation": "

\n RouterModule(路由器模块)\n

", + "original": "RouterModule", + "translation": "RouterModule(路由器模块)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n A separate NgModule that provides the necessary service providers\n and directives for navigating through application views.\n

", - "translation": "

\n 一个独立的Angular模块,用于提供所需的服务提供商,以及用来在应用视图之间进行导航的指令。\n

", + "original": "A separate NgModule that provides the necessary service providers\n and directives for navigating through application views.", + "translation": "一个独立的Angular模块,用于提供所需的服务提供商,以及用来在应用视图之间进行导航的指令。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Routes\n

", - "translation": "

\n Routes(路由数组)\n

", + "original": "Routes", + "translation": "Routes(路由数组)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Defines an array of Routes, each mapping a URL path to a component.\n

", - "translation": "

\n 定义了一个路由数组,每一个都会把一个URL路径映射到一个组件。\n

", + "original": "Defines an array of Routes, each mapping a URL path to a component.", + "translation": "定义了一个路由数组,每一个都会把一个URL路径映射到一个组件。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Route\n

", - "translation": "

\n Route(路由)\n

", + "original": "Route", + "translation": "Route(路由)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Defines how the router should navigate to a component based on a URL pattern.\n Most routes consist of a path and a component type.\n

", - "translation": "

\n 定义路由器该如何根据URL模式(pattern)来导航到组件。大多数路由都由路径和组件类构成。\n

", + "original": "Defines how the router should navigate to a component based on a URL pattern.\n Most routes consist of a path and a component type.", + "translation": "定义路由器该如何根据URL模式(pattern)来导航到组件。大多数路由都由路径和组件类构成。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n RouterOutlet\n

", - "translation": "

\n RouterOutlet(路由出口)\n

", + "original": "RouterOutlet", + "translation": "RouterOutlet(路由出口)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n The directive (<router-outlet>) that marks where the router displays a view.\n

", - "translation": "

\n 该指令(<router-outlet>)用来标记出路由器该在哪里显示视图。\n

", + "original": "The directive (<router-outlet>) that marks where the router displays a view.", + "translation": "该指令(<router-outlet>)用来标记出路由器该在哪里显示视图。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n RouterLink\n

", - "translation": "

\n RouterLink(路由链接)\n

", + "original": "RouterLink", + "translation": "RouterLink(路由链接)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n The directive for binding a clickable HTML element to\n a route. Clicking an element with a routerLink directive\n that is bound to a link parameters array triggers a navigation.\n

", - "translation": "

\n 该指令用来把一个可点击的HTML元素绑定到路由。\n 点击带有绑定到字符串链接参数数组routerLink指令的元素就会触发一次导航。\n

", + "original": "The directive for binding a clickable HTML element to\n a route. Clicking an element with a routerLink directive\n that is bound to a link parameters array triggers a navigation.", + "translation": "该指令用来把一个可点击的HTML元素绑定到路由。\n 点击带有绑定到字符串链接参数数组routerLink指令的元素就会触发一次导航。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n RouterLinkActive\n

", - "translation": "

\n RouterLinkActive(活动路由链接)\n

", + "original": "RouterLinkActive", + "translation": "RouterLinkActive(活动路由链接)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n The directive for adding/removing classes from an HTML element when an associated\n routerLink contained on or inside the element becomes active/inactive.\n

", - "translation": "

\n 当HTML元素上或元素内的routerLink变为激活或非激活状态时,该指令为这个HTML元素添加或移除CSS类。\n

", + "original": "The directive for adding/removing classes from an HTML element when an associated\n routerLink contained on or inside the element becomes active/inactive.", + "translation": "当HTML元素上或元素内的routerLink变为激活或非激活状态时,该指令为这个HTML元素添加或移除CSS类。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n ActivatedRoute\n

", - "translation": "

\n ActivatedRoute(激活的路由)\n

", + "original": "ActivatedRoute", + "translation": "ActivatedRoute(激活的路由)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n A service that is provided to each route component that contains route specific\n information such as route parameters, static data, resolve data, global query params, and the global fragment.\n

", - "translation": "

\n 为每个路由组件提供提供的一个服务,它包含特定于路由的信息,比如路由参数、静态数据、解析数据、全局查询参数和全局碎片(fragment)。\n

", + "original": "A service that is provided to each route component that contains route specific\n information such as route parameters, static data, resolve data, global query params, and the global fragment.", + "translation": "为每个路由组件提供提供的一个服务,它包含特定于路由的信息,比如路由参数、静态数据、解析数据、全局查询参数和全局碎片(fragment)。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n RouterState\n

", - "translation": "

\n RouterState(路由器状态)\n

", + "original": "RouterState", + "translation": "RouterState(路由器状态)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n The current state of the router including a tree of the currently activated\n routes together with convenience methods for traversing the route tree.\n

", - "translation": "

\n 路由器的当前状态包含了一棵由程序中激活的路由构成的树。它包含一些用于遍历路由树的快捷方法。\n

", + "original": "The current state of the router including a tree of the currently activated\n routes together with convenience methods for traversing the route tree.", + "translation": "路由器的当前状态包含了一棵由程序中激活的路由构成的树。它包含一些用于遍历路由树的快捷方法。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Link parameters array\n

", - "translation": "

\n 链接参数数组\n

", + "original": "Link parameters array", + "translation": "链接参数数组", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n An array that the router interprets as a routing instruction.\n You can bind that array toa RouterLink or pass the array as an argument to\n the Router.navigate method.\n

", - "translation": "

\n 这个数组会被路由器解释成一个路由操作指南。我们可以把一个RouterLink绑定到该数组,或者把它作为参数传给Router.navigate方法。\n

", + "original": "An array that the router interprets as a routing instruction.\n You can bind that array toa RouterLink or pass the array as an argument to\n the Router.navigate method.", + "translation": "这个数组会被路由器解释成一个路由操作指南。我们可以把一个RouterLink绑定到该数组,或者把它作为参数传给Router.navigate方法。", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { - "original": "

\n Routing component\n

", - "translation": "

\n 路由组件\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" - }, - { - "original": "

An Angular component with a RouterOutlet that displays views based on router navigations.\n

", - "translation": "

\n 一个带有RouterOutlet的Angular组件,它根据路由器的导航来显示相应的视图。\n

", + "original": "Routing component", + "translation": "路由组件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/router.md" }, { @@ -23435,8 +23405,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\nReporting vulnerabilities\n

", - "translation": "

\n举报漏洞\n

", + "original": "

", + "translation": "举报漏洞", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -23450,8 +23420,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\nBest practices\n

", - "translation": "

\n最佳实践\n

", + "original": "

", + "translation": "最佳实践", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -23605,8 +23575,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\n Trusting safe values\n

", - "translation": "

\n 信任安全值\n

", + "original": "

", + "translation": "信任安全值", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -23635,8 +23605,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\n HTTP-level vulnerabilities\n

", - "translation": "

\n HTTP级别的漏洞\n

", + "original": "

", + "translation": "HTTP级别的漏洞", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -23645,8 +23615,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\n Cross-site request forgery\n

", - "translation": "

\n 跨站请求伪造(XSRF)\n

", + "original": "

", + "translation": "跨站请求伪造(XSRF)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -23695,8 +23665,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\n Cross-site script inclusion (XSSI)\n

", - "translation": "

\n 跨站脚本包含(XSSI)\n

", + "original": "

", + "translation": "跨站脚本包含(XSSI)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -23720,8 +23690,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { - "original": "

\n Auditing Angular applications\n

", - "translation": "

\n 审计Angular应用程序\n

", + "original": "

", + "translation": "审计Angular应用程序", "sourceFile": "/Users/twer/private/GDE/content-1/guide/security.md" }, { @@ -24115,13 +24085,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/setup.md" }, { - "original": "

\n File\n

", - "translation": "

\n 文件\n

", + "original": "File", + "translation": "文件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/setup.md" }, { - "original": "

\n Purpose\n

", - "translation": "

\n 用途\n

", + "original": "Purpose", + "translation": "用途", "sourceFile": "/Users/twer/private/GDE/content-1/guide/setup.md" }, { @@ -25250,13 +25220,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { - "original": "

\n Symbol Name\n

", - "translation": "

\n 符号名\n

", + "original": "Symbol Name", + "translation": "符号名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { - "original": "

\n File Name\n

", - "translation": "

\n 文件名\n

", + "original": "File Name", + "translation": "文件名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { @@ -25305,13 +25275,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { - "original": "

\n Symbol Name\n

", - "translation": "

\n 符号名\n

", + "original": "Symbol Name", + "translation": "符号名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { - "original": "

\n File Name\n

", - "translation": "

\n 文件名\n

", + "original": "File Name", + "translation": "文件名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { @@ -25485,13 +25455,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { - "original": "

\n Symbol Name\n

", - "translation": "

\n 符号名\n

", + "original": "Symbol Name", + "translation": "符号名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { - "original": "

\n File Name\n

", - "translation": "

\n 文件名\n

", + "original": "File Name", + "translation": "文件名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/styleguide.md" }, { @@ -27665,78 +27635,48 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Data direction\n

", - "translation": "

\n 数据方向\n

", + "original": "Data direction", + "translation": "数据方向", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Syntax\n

", - "translation": "

\n 语法\n

", + "original": "Syntax", + "translation": "语法", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Type\n

", - "translation": "

\n 绑定类型\n

", + "original": "Type", + "translation": "绑定类型", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n One-way\n

", - "translation": "

\n 单向\n

", + "original": "One-way", + "translation": "单向", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n from data source\n

", - "translation": "

\n 从数据源\n

", + "original": "from data source", + "translation": "从数据源", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n to view target\n

", - "translation": "

\n 到视图目标\n

", + "original": "to view target", + "translation": "到视图目标", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Interpolation\n

", - "translation": "

\n 插值表达式\n

", + "original": "Interpolation", + "translation": "插值表达式", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Class\n

", - "translation": "

\n 类\n

", + "original": "Class", + "translation": "类", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Style\n

", - "translation": "

\n 样式\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" - }, - { - "original": "

One-way

", - "translation": "

\n 单向\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" - }, - { - "original": "

from view target

", - "translation": "

\n 从视图目标\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" - }, - { - "original": "

to data source\n

", - "translation": "

\n 到数据源\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" - }, - { - "original": "

\n Event\n

", - "translation": "

\n 事件\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" - }, - { - "original": "

\n Two-way\n

", - "translation": "

\n 双向\n

", - "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" - }, - { - "original": "

\n Two-way\n

", - "translation": "

\n 双向\n

", + "original": "Style", + "translation": "样式", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { @@ -27920,78 +27860,78 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Type\n

", - "translation": "

\n 绑定类型\n

", + "original": "Type", + "translation": "绑定类型", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Target\n

", - "translation": "

\n 目标\n

", + "original": "Target", + "translation": "目标", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Examples\n

", - "translation": "

\n 范例\n

", + "original": "Examples", + "translation": "范例", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Element property\n

", - "translation": "

\n 元素的 property\n

", + "original": "Element property", + "translation": "元素的 property", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Component property\n

", - "translation": "

\n 组件的 property\n

", + "original": "Component property", + "translation": "组件的 property", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Directive property\n

", - "translation": "

\n 指令的 property\n

", + "original": "Directive property", + "translation": "指令的 property", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Event\n

", - "translation": "

\n 事件\n

", + "original": "Event", + "translation": "事件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Element event\n

", - "translation": "

\n 元素的事件\n

", + "original": "Element event", + "translation": "元素的事件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Component event\n

", - "translation": "

\n 组件的事件\n

", + "original": "Component event", + "translation": "组件的事件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Directive event\n

", - "translation": "

\n 指令的事件\n

", + "original": "Directive event", + "translation": "指令的事件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Two-way\n

", - "translation": "

\n 双向\n

", + "original": "Two-way", + "translation": "双向", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Event and property\n

", - "translation": "

\n 事件与 property\n

", + "original": "Event and property", + "translation": "事件与 property", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Attribute (the exception)\n

", - "translation": "

\n attribute(例外情况)\n

", + "original": "Attribute (the exception)", + "translation": "attribute(例外情况)", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Class\n

", - "translation": "

\n CSS 类\n

", + "original": "Class", + "translation": "CSS 类", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Style\n

", - "translation": "

\n 样式\n

", + "original": "Style", + "translation": "样式", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { @@ -29345,8 +29285,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { - "original": "

\n Aliasing input/output properties\n

", - "translation": "

\n 给输入/输出属性起别名\n

", + "original": "Aliasing input/output properties", + "translation": "给输入/输出属性起别名", "sourceFile": "/Users/twer/private/GDE/content-1/guide/template-syntax.md" }, { @@ -29665,13 +29605,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Technology\n

", - "translation": "

\n 技术\n

", + "original": "Technology", + "translation": "技术", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Purpose\n

", - "translation": "

\n 目的\n

", + "original": "Purpose", + "translation": "目的", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -29680,8 +29620,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Angular testing utilities\n

", - "translation": "

\n Angular测试工具\n

", + "original": "Angular testing utilities", + "translation": "Angular测试工具", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -31895,13 +31835,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Function\n

", - "translation": "

\n 函数\n

", + "original": "Function", + "translation": "函数", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -32000,13 +31940,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Methods\n

", - "translation": "

\n 方法\n

", + "original": "Methods", + "translation": "方法", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -32130,13 +32070,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Properties\n

", - "translation": "

\n 属性\n

", + "original": "Properties", + "translation": "属性", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -32185,13 +32125,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Methods\n

", - "translation": "

\n 方法\n

", + "original": "Methods", + "translation": "方法", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -32270,13 +32210,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Member\n

", - "translation": "

\n 成员\n

", + "original": "Member", + "translation": "成员", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -32410,13 +32350,13 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n File\n

", - "translation": "

\n 文件\n

", + "original": "File", + "translation": "文件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-1/guide/testing.md" }, { @@ -33335,33 +33275,33 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Binding definition\n

", - "translation": "

\n 绑定定义\n

", + "original": "Binding definition", + "translation": "绑定定义", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Template syntax\n

", - "translation": "

\n 模板语法\n

", + "original": "Template syntax", + "translation": "模板语法", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Attribute binding\n

", - "translation": "

\n 属性(Attribute)绑定\n

", + "original": "Attribute binding", + "translation": "属性(Attribute)绑定", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Expression binding\n

", - "translation": "

\n 表达式绑定\n

", + "original": "Expression binding", + "translation": "表达式绑定", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n One-way binding\n

", - "translation": "

\n 单向绑定\n

", + "original": "One-way binding", + "translation": "单向绑定", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Two-way binding\n

", - "translation": "

\n 双向绑定\n

", + "original": "Two-way binding", + "translation": "双向绑定", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { @@ -34320,18 +34260,18 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Previous code\n

", - "translation": "

\n 老代码\n

", + "original": "Previous code", + "translation": "老代码", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n New code\n

", - "translation": "

\n 新代码\n

", + "original": "New code", + "translation": "新代码", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { - "original": "

\n Notes\n

", - "translation": "

\n 说明\n

", + "original": "Notes", + "translation": "说明", "sourceFile": "/Users/twer/private/GDE/content-1/guide/upgrade.md" }, { @@ -34770,8 +34710,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Node.js\n

", - "translation": "

\n前提条件: Node.js\n

", + "original": "

", + "translation": "前提条件: Node.js", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34785,8 +34725,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Visual Studio 2015 Update 3\n

", - "translation": "

\n前提条件: Visual Studio 2015 Update 3\n

", + "original": "

", + "translation": "前提条件: Visual Studio 2015 Update 3", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34800,8 +34740,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Configure External Web tools\n

", - "translation": "

\n前提条件: 配置External Web tools\n

", + "original": "

", + "translation": "前提条件: 配置External Web tools", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34840,8 +34780,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Install TypeScript 2.2 for Visual Studio 2015\n

", - "translation": "

\n前提条件: 安装TypeScript 2.2 for Visual Studio 2015\n

", + "original": "

", + "translation": "前提条件: 安装TypeScript 2.2 for Visual Studio 2015", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34875,8 +34815,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\nStep 1: Download the QuickStart files\n

", - "translation": "

\n第一步: 现在“快速上手”文件\n

", + "original": "

", + "translation": "第一步: 现在“快速上手”文件", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34885,8 +34825,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\nStep 2: Create the Visual Studio ASP.NET project\n

", - "translation": "

\n第二步:创建Visual Studio ASP.net项目\n

", + "original": "

", + "translation": "第二步:创建Visual Studio ASP.net项目", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34920,8 +34860,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\n Step 3: Copy the QuickStart files into the ASP.NET project folder\n

", - "translation": "

\n 第三步: 把“快速上手”的文件复制到ASP.NET项目所在的目录\n

", + "original": "

", + "translation": "第三步: 把“快速上手”的文件复制到ASP.NET项目所在的目录", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { @@ -34985,8 +34925,8 @@ "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { - "original": "

\n Step 5: Build and run the app\n

", - "translation": "

\n 第五步:构建和运行应用\n

", + "original": "

", + "translation": "第五步:构建和运行应用", "sourceFile": "/Users/twer/private/GDE/content-1/guide/visual-studio-2015.md" }, { diff --git a/aio/tools/translator/dict-2.json b/aio/tools/translator/dict-2.json index 81cebd539f..d97b752e4b 100644 --- a/aio/tools/translator/dict-2.json +++ b/aio/tools/translator/dict-2.json @@ -1504,11 +1504,6 @@ "translation": "当然,这只是冰山一角。后面我们将学习更多的细节。不过,目前我们还是先关注全景图吧。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/architecture.md" }, - { - "original": "The code referenced on this page is available as a .", - "translation": "

\n 本章所引用的代码见。\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/architecture.md" - }, { "original": "## Modules", "translation": "## 模块", @@ -2985,13 +2980,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n latest\n

", - "translation": "

\n 最新版\n

", + "original": "latest", + "translation": "最新版", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n latest\n

", - "translation": "

\n 最新版\n

", + "original": "latest", + "translation": "最新版", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { @@ -3080,13 +3075,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n Browsers (Desktop & Mobile)\n

", - "translation": "

\n 浏览器(桌面和移动)\n

", + "original": "Browsers (Desktop & Mobile)", + "translation": "浏览器(桌面和移动)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n Polyfills Required\n

", - "translation": "

\n 需要的填充库\n

", + "original": "Polyfills Required", + "translation": "需要的填充库", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { @@ -3180,23 +3175,23 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n Polyfill\n

", - "translation": "

\n 填充库\n

", + "original": "Polyfill", + "translation": "填充库", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n Licence\n

", - "translation": "

\n 授权方式\n

", + "original": "Licence", + "translation": "授权方式", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n Size*\n

", - "translation": "

\n 大小*\n

", + "original": "Size*", + "translation": "大小*", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { - "original": "

\n Public domain\n

", - "translation": "

\n 公共域\n

", + "original": "Public domain", + "translation": "公共域", "sourceFile": "/Users/twer/private/GDE/content-2/guide/browser-support.md" }, { @@ -3805,7 +3800,7 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/cheatsheet.md" }, { - "original": "

Declares that a class has dependencies that should be injected into the constructor when the dependency injector is creating an instance of this class.\n

", + "original": "

", "translation": "

声明一个类具有一些依赖,当依赖注入器试图创建该类的实例时,应该把这些依赖注入到该类的构造函数中。

", "sourceFile": "/Users/twer/private/GDE/content-2/guide/cheatsheet.md" }, @@ -3910,7 +3905,7 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/cheatsheet.md" }, { - "original": "

(implemented as class methods)\n

", + "original": "

", "translation": "

由类的方法实现。

", "sourceFile": "/Users/twer/private/GDE/content-2/guide/cheatsheet.md" }, @@ -8165,33 +8160,33 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { - "original": "

\n State\n

", - "translation": "

\n 状态\n

", + "original": "State", + "translation": "状态", "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { - "original": "

\n Class if true\n

", - "translation": "

\n 为真时的 CSS 类\n

", + "original": "Class if true", + "translation": "为真时的 CSS 类", "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { - "original": "

\n Class if false\n

", - "translation": "

\n 为假时的 CSS 类\n

", + "original": "Class if false", + "translation": "为假时的 CSS 类", "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { - "original": "

\n The control has been visited.\n

", - "translation": "

\n 控件被访问过。\n

", + "original": "The control has been visited.", + "translation": "控件被访问过。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { - "original": "

\n The control's value has changed.\n

", - "translation": "

\n 控件的值变化了。\n

", + "original": "The control's value has changed.", + "translation": "控件的值变化了。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { - "original": "

\n The control's value is valid.\n

", - "translation": "

\n 控件的值有效。\n

", + "original": "The control's value is valid.", + "translation": "控件的值有效。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/forms.md" }, { @@ -10999,16 +10994,6 @@ "translation": "当Angular使用构造函数新建一个组件或指令后,就会按下面的顺序在特定时刻调用这些生命周期钩子方法:", "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" }, - { - "original": "

Hook\n

", - "translation": "

\n 钩子\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" - }, - { - "original": "

Purpose and Timing\n

", - "translation": "

\n 目的和时机\n

\n \n ", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" - }, { "original": "Respond when Angular (re)sets data-bound input properties.\n The method receives a `SimpleChanges` object of current and previous property values.", "translation": "当Angular(重新)设置数据绑定输入属性时响应。\n 该方法接受当前和上一属性值的`SimpleChanges`对象", @@ -11174,16 +11159,6 @@ "translation": "下面是每个练习简短的描述:", "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" }, - { - "original": "

Component\n

", - "translation": "

\n 组件\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" - }, - { - "original": "

Description\n

", - "translation": "

\n 描述\n

\n \n ", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" - }, { "original": "Demonstrates every lifecycle hook.\n Each hook method writes to the on-screen log.", "translation": "展示每个生命周期钩子,每个钩子方法都会在屏幕上显示一条日志。", @@ -11220,8 +11195,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" }, { - "original": "

\n Counter\n

", - "translation": "

\n 计数器\n

", + "original": "Counter", + "translation": "计数器", "sourceFile": "/Users/twer/private/GDE/content-2/guide/lifecycle-hooks.md" }, { @@ -12580,18 +12555,18 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Feature Module\n

", - "translation": "

\n 特性模块\n

", + "original": "Feature Module", + "translation": "特性模块", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Guidelines\n

", - "translation": "

\n 指导原则\n

", + "original": "Guidelines", + "translation": "指导原则", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Domain\n

", - "translation": "

\n 领域\n

", + "original": "Domain", + "translation": "领域", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -12635,8 +12610,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Routed\n

", - "translation": "

\n 路由特性模块\n

", + "original": "Routed", + "translation": "路由特性模块", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -12680,8 +12655,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Routing\n

", - "translation": "

\n 路由模块\n

", + "original": "Routing", + "translation": "路由模块", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -12755,8 +12730,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Service\n

", - "translation": "

\n 服务\n

", + "original": "Service", + "translation": "服务", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -12780,8 +12755,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Widget\n

", - "translation": "

\n 窗口部件\n

", + "original": "Widget", + "translation": "窗口部件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -12820,173 +12795,173 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Feature Module\n

", - "translation": "

\n 特性模块\n

", + "original": "Feature Module", + "translation": "特性模块", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Declarations\n

", - "translation": "

\n 声明`declarations`\n

", + "original": "Declarations", + "translation": "声明`declarations`", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Providers\n

", - "translation": "

\n 提供商`providers`\n

", + "original": "Providers", + "translation": "提供商`providers`", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Exports\n

", - "translation": "

\n 导出什么\n

", + "original": "Exports", + "translation": "导出什么", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Imported By\n

", - "translation": "

\n 被谁导入\n

", + "original": "Imported By", + "translation": "被谁导入", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Examples\n

", - "translation": "

\n 范例\n

", + "original": "Examples", + "translation": "范例", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Domain\n

", - "translation": "

\n 领域\n

", + "original": "Domain", + "translation": "领域", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Rare\n

", - "translation": "

\n 罕见\n

", + "original": "Rare", + "translation": "罕见", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Top component\n

", - "translation": "

\n 顶级组件\n

", + "original": "Top component", + "translation": "顶级组件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Feature, AppModule\n

", - "translation": "

\n 特性模块和AppModule\n

", + "original": "Feature, AppModule", + "translation": "特性模块和AppModule", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n ContactModule (before routing)\n

", - "translation": "

\n ContactModule(路由之前的那个例子)\n

", + "original": "ContactModule (before routing)", + "translation": "ContactModule(路由之前的那个例子)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Routed\n

", - "translation": "

\n 路由\n

", + "original": "Routed", + "translation": "路由", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Rare\n

", - "translation": "

\n 罕见\n

", + "original": "Rare", + "translation": "罕见", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Nobody\n

", - "translation": "

\n 无\n

", + "original": "Nobody", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n ContactModule, HeroModule, CrisisModule\n

", - "translation": "

\n ContactModuleHeroModuleCrisisModule\n

", + "original": "ContactModule, HeroModule, CrisisModule", + "translation": "ContactModuleHeroModuleCrisisModule", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Routing\n

", - "translation": "

\n 路由\n

", + "original": "Routing", + "translation": "路由", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n HttpModule, CoreModule\n

", - "translation": "

\n HttpModuleCoreModule\n

", + "original": "HttpModule, CoreModule", + "translation": "HttpModuleCoreModule", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Service\n

", - "translation": "

\n 服务\n

", + "original": "Service", + "translation": "服务", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n No\n

", - "translation": "

\n 无\n

", + "original": "No", + "translation": "无", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n HttpModule, CoreModule\n

", - "translation": "

\n HttpModuleCoreModule\n

", + "original": "HttpModule, CoreModule", + "translation": "HttpModuleCoreModule", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Widget\n

", - "translation": "

\n 窗口部件\n

", + "original": "Widget", + "translation": "窗口部件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Rare\n

", - "translation": "

\n 罕见\n

", + "original": "Rare", + "translation": "罕见", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Yes\n

", - "translation": "

\n 有\n

", + "original": "Yes", + "translation": "有", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Feature\n

", - "translation": "

\n 特性模块\n

", + "original": "Feature", + "translation": "特性模块", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n CommonModule, SharedModule\n

", - "translation": "

\n CommonModuleSharedModule\n

", + "original": "CommonModule, SharedModule", + "translation": "CommonModuleSharedModule", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -13130,13 +13105,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Property\n

", - "translation": "

\n 属性\n

", + "original": "Property", + "translation": "属性", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule-faq.md" }, { @@ -13320,7 +13295,7 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule.md" }, { - "original": "**NgModules** help organize an application into cohesive blocks of functionality.\n", + "original": "", "translation": "**Angular 模块**能帮你把应用组织成多个内聚的功能块。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/ngmodule.md" }, @@ -14835,8 +14810,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/pipes.md" }, { - "original": "

The impure AsyncPipe

", - "translation": "

\n 非纯 AsyncPipe\n

", + "original": "

", + "translation": "非纯 AsyncPipe", "sourceFile": "/Users/twer/private/GDE/content-2/guide/pipes.md" }, { @@ -15035,8 +15010,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { - "original": "

\n Step 1. Set up the Development Environment\n

", - "translation": "

\n 步骤1. 设置开发环境\n

", + "original": "

", + "translation": "步骤1. 设置开发环境", "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { @@ -15060,8 +15035,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { - "original": "

\n Step 2. Create a new project\n

", - "translation": "

\n 步骤2. 创建新项目\n

", + "original": "

", + "translation": "步骤2. 创建新项目", "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { @@ -15080,8 +15055,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { - "original": "

\n Step 3: Serve the application\n

", - "translation": "

\n 步骤3. 启动开发服务器\n

", + "original": "

", + "translation": "步骤3. 启动开发服务器", "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { @@ -15105,8 +15080,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { - "original": "

\n Step 4: Edit your first Angular component\n

", - "translation": "

\n 步骤4. 编辑我们的第一个Angular组件\n

", + "original": "

", + "translation": "步骤4. 编辑我们的第一个Angular组件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/quickstart.md" }, { @@ -15965,13 +15940,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/reactive-forms.md" }, { - "original": "

\n Property\n

", - "translation": "

\n 属性\n

", + "original": "Property", + "translation": "属性", "sourceFile": "/Users/twer/private/GDE/content-2/guide/reactive-forms.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 说明\n

", + "original": "Description", + "translation": "说明", "sourceFile": "/Users/twer/private/GDE/content-2/guide/reactive-forms.md" }, { @@ -16995,123 +16970,118 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Router Part\n

", - "translation": "

\n 路由器部件\n

", + "original": "Router Part", + "translation": "路由器部件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Meaning\n

", - "translation": "

\n 含义\n

", + "original": "Meaning", + "translation": "含义", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Router\n

", - "translation": "

\n Router(路由器)\n

", + "original": "Router", + "translation": "Router(路由器)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Displays the application component for the active URL.\n Manages navigation from one component to the next.\n

", - "translation": "

\n 为激活的URL显示应用组件。管理从一个组件到另一个组件的导航\n

", + "original": "Displays the application component for the active URL.\n Manages navigation from one component to the next.", + "translation": "为激活的URL显示应用组件。管理从一个组件到另一个组件的导航", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n RouterModule\n

", - "translation": "

\n RouterModule(路由器模块)\n

", + "original": "RouterModule", + "translation": "RouterModule(路由器模块)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n A separate NgModule that provides the necessary service providers\n and directives for navigating through application views.\n

", - "translation": "

\n 一个独立的Angular模块,用于提供所需的服务提供商,以及用来在应用视图之间进行导航的指令。\n

", + "original": "A separate NgModule that provides the necessary service providers\n and directives for navigating through application views.", + "translation": "一个独立的Angular模块,用于提供所需的服务提供商,以及用来在应用视图之间进行导航的指令。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Routes\n

", - "translation": "

\n Routes(路由数组)\n

", + "original": "Routes", + "translation": "Routes(路由数组)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Defines an array of Routes, each mapping a URL path to a component.\n

", - "translation": "

\n 定义了一个路由数组,每一个都会把一个URL路径映射到一个组件。\n

", + "original": "Defines an array of Routes, each mapping a URL path to a component.", + "translation": "定义了一个路由数组,每一个都会把一个URL路径映射到一个组件。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Route\n

", - "translation": "

\n Route(路由)\n

", + "original": "Route", + "translation": "Route(路由)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Defines how the router should navigate to a component based on a URL pattern.\n Most routes consist of a path and a component type.\n

", - "translation": "

\n 定义路由器该如何根据URL模式(pattern)来导航到组件。大多数路由都由路径和组件类构成。\n

", + "original": "Defines how the router should navigate to a component based on a URL pattern.\n Most routes consist of a path and a component type.", + "translation": "定义路由器该如何根据URL模式(pattern)来导航到组件。大多数路由都由路径和组件类构成。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n RouterOutlet\n

", - "translation": "

\n RouterOutlet(路由出口)\n

", + "original": "RouterOutlet", + "translation": "RouterOutlet(路由出口)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n The directive (<router-outlet>) that marks where the router displays a view.\n

", - "translation": "

\n 该指令(<router-outlet>)用来标记出路由器该在哪里显示视图。\n

", + "original": "The directive (<router-outlet>) that marks where the router displays a view.", + "translation": "该指令(<router-outlet>)用来标记出路由器该在哪里显示视图。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n RouterLink\n

", - "translation": "

\n RouterLink(路由链接)\n

", + "original": "RouterLink", + "translation": "RouterLink(路由链接)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n The directive for binding a clickable HTML element to\n a route. Clicking an element with a routerLink directive\n that is bound to a link parameters array triggers a navigation.\n

", - "translation": "

\n 该指令用来把一个可点击的HTML元素绑定到路由。\n 点击带有绑定到字符串链接参数数组routerLink指令的元素就会触发一次导航。\n

", + "original": "The directive for binding a clickable HTML element to\n a route. Clicking an element with a routerLink directive\n that is bound to a link parameters array triggers a navigation.", + "translation": "该指令用来把一个可点击的HTML元素绑定到路由。\n 点击带有绑定到字符串链接参数数组routerLink指令的元素就会触发一次导航。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n RouterLinkActive\n

", - "translation": "

\n RouterLinkActive(活动路由链接)\n

", + "original": "RouterLinkActive", + "translation": "RouterLinkActive(活动路由链接)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n The directive for adding/removing classes from an HTML element when an associated\n routerLink contained on or inside the element becomes active/inactive.\n

", - "translation": "

\n 当HTML元素上或元素内的routerLink变为激活或非激活状态时,该指令为这个HTML元素添加或移除CSS类。\n

", + "original": "The directive for adding/removing classes from an HTML element when an associated\n routerLink contained on or inside the element becomes active/inactive.", + "translation": "当HTML元素上或元素内的routerLink变为激活或非激活状态时,该指令为这个HTML元素添加或移除CSS类。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n ActivatedRoute\n

", - "translation": "

\n ActivatedRoute(激活的路由)\n

", + "original": "ActivatedRoute", + "translation": "ActivatedRoute(激活的路由)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n A service that is provided to each route component that contains route specific\n information such as route parameters, static data, resolve data, global query params, and the global fragment.\n

", - "translation": "

\n 为每个路由组件提供提供的一个服务,它包含特定于路由的信息,比如路由参数、静态数据、解析数据、全局查询参数和全局碎片(fragment)。\n

", + "original": "A service that is provided to each route component that contains route specific\n information such as route parameters, static data, resolve data, global query params, and the global fragment.", + "translation": "为每个路由组件提供提供的一个服务,它包含特定于路由的信息,比如路由参数、静态数据、解析数据、全局查询参数和全局碎片(fragment)。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n RouterState\n

", - "translation": "

\n RouterState(路由器状态)\n

", + "original": "RouterState", + "translation": "RouterState(路由器状态)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n The current state of the router including a tree of the currently activated\n routes together with convenience methods for traversing the route tree.\n

", - "translation": "

\n 路由器的当前状态包含了一棵由程序中激活的路由构成的树。它包含一些用于遍历路由树的快捷方法。\n

", + "original": "The current state of the router including a tree of the currently activated\n routes together with convenience methods for traversing the route tree.", + "translation": "路由器的当前状态包含了一棵由程序中激活的路由构成的树。它包含一些用于遍历路由树的快捷方法。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Link parameters array\n

", - "translation": "

\n 链接参数数组\n

", + "original": "Link parameters array", + "translation": "链接参数数组", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n An array that the router interprets as a routing instruction.\n You can bind that array toa RouterLink or pass the array as an argument to\n the Router.navigate method.\n

", - "translation": "

\n 这个数组会被路由器解释成一个路由操作指南。我们可以把一个RouterLink绑定到该数组,或者把它作为参数传给Router.navigate方法。\n

", + "original": "An array that the router interprets as a routing instruction.\n You can bind that array toa RouterLink or pass the array as an argument to\n the Router.navigate method.", + "translation": "这个数组会被路由器解释成一个路由操作指南。我们可以把一个RouterLink绑定到该数组,或者把它作为参数传给Router.navigate方法。", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { - "original": "

\n Routing component\n

", - "translation": "

\n 路由组件\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" - }, - { - "original": "

An Angular component with a RouterOutlet that displays views based on router navigations.\n

", - "translation": "

\n 一个带有RouterOutlet的Angular组件,它根据路由器的导航来显示相应的视图。\n

", + "original": "Routing component", + "translation": "路由组件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/router.md" }, { @@ -20545,8 +20515,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\nReporting vulnerabilities\n

", - "translation": "

\n举报漏洞\n

", + "original": "

", + "translation": "举报漏洞", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -20560,8 +20530,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\nBest practices\n

", - "translation": "

\n最佳实践\n

", + "original": "

", + "translation": "最佳实践", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -20715,8 +20685,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\n Trusting safe values\n

", - "translation": "

\n 信任安全值\n

", + "original": "

", + "translation": "信任安全值", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -20745,8 +20715,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\n HTTP-level vulnerabilities\n

", - "translation": "

\n HTTP级别的漏洞\n

", + "original": "

", + "translation": "HTTP级别的漏洞", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -20755,8 +20725,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\n Cross-site request forgery\n

", - "translation": "

\n 跨站请求伪造(XSRF)\n

", + "original": "

", + "translation": "跨站请求伪造(XSRF)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -20805,8 +20775,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\n Cross-site script inclusion (XSSI)\n

", - "translation": "

\n 跨站脚本包含(XSSI)\n

", + "original": "

", + "translation": "跨站脚本包含(XSSI)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -20830,8 +20800,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { - "original": "

\n Auditing Angular applications\n

", - "translation": "

\n 审计Angular应用程序\n

", + "original": "

", + "translation": "审计Angular应用程序", "sourceFile": "/Users/twer/private/GDE/content-2/guide/security.md" }, { @@ -21225,13 +21195,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/setup.md" }, { - "original": "

\n File\n

", - "translation": "

\n 文件\n

", + "original": "File", + "translation": "文件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/setup.md" }, { - "original": "

\n Purpose\n

", - "translation": "

\n 用途\n

", + "original": "Purpose", + "translation": "用途", "sourceFile": "/Users/twer/private/GDE/content-2/guide/setup.md" }, { @@ -22360,13 +22330,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { - "original": "

\n Symbol Name\n

", - "translation": "

\n 符号名\n

", + "original": "Symbol Name", + "translation": "符号名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { - "original": "

\n File Name\n

", - "translation": "

\n 文件名\n

", + "original": "File Name", + "translation": "文件名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { @@ -22415,13 +22385,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { - "original": "

\n Symbol Name\n

", - "translation": "

\n 符号名\n

", + "original": "Symbol Name", + "translation": "符号名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { - "original": "

\n File Name\n

", - "translation": "

\n 文件名\n

", + "original": "File Name", + "translation": "文件名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { @@ -22595,13 +22565,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { - "original": "

\n Symbol Name\n

", - "translation": "

\n 符号名\n

", + "original": "Symbol Name", + "translation": "符号名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { - "original": "

\n File Name\n

", - "translation": "

\n 文件名\n

", + "original": "File Name", + "translation": "文件名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/styleguide.md" }, { @@ -24775,78 +24745,48 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Data direction\n

", - "translation": "

\n 数据方向\n

", + "original": "Data direction", + "translation": "数据方向", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Syntax\n

", - "translation": "

\n 语法\n

", + "original": "Syntax", + "translation": "语法", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Type\n

", - "translation": "

\n 绑定类型\n

", + "original": "Type", + "translation": "绑定类型", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n One-way\n

", - "translation": "

\n 单向\n

", + "original": "One-way", + "translation": "单向", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n from data source\n

", - "translation": "

\n 从数据源\n

", + "original": "from data source", + "translation": "从数据源", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n to view target\n

", - "translation": "

\n 到视图目标\n

", + "original": "to view target", + "translation": "到视图目标", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Interpolation\n

", - "translation": "

\n 插值表达式\n

", + "original": "Interpolation", + "translation": "插值表达式", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Class\n

", - "translation": "

\n 类\n

", + "original": "Class", + "translation": "类", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Style\n

", - "translation": "

\n 样式\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" - }, - { - "original": "

One-way

", - "translation": "

\n 单向\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" - }, - { - "original": "

from view target

", - "translation": "

\n 从视图目标\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" - }, - { - "original": "

to data source\n

", - "translation": "

\n 到数据源\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" - }, - { - "original": "

\n Event\n

", - "translation": "

\n 事件\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" - }, - { - "original": "

\n Two-way\n

", - "translation": "

\n 双向\n

", - "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" - }, - { - "original": "

\n Two-way\n

", - "translation": "

\n 双向\n

", + "original": "Style", + "translation": "样式", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { @@ -25030,78 +24970,78 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Type\n

", - "translation": "

\n 绑定类型\n

", + "original": "Type", + "translation": "绑定类型", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Target\n

", - "translation": "

\n 目标\n

", + "original": "Target", + "translation": "目标", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Examples\n

", - "translation": "

\n 范例\n

", + "original": "Examples", + "translation": "范例", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Element property\n

", - "translation": "

\n 元素的 property\n

", + "original": "Element property", + "translation": "元素的 property", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Component property\n

", - "translation": "

\n 组件的 property\n

", + "original": "Component property", + "translation": "组件的 property", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Directive property\n

", - "translation": "

\n 指令的 property\n

", + "original": "Directive property", + "translation": "指令的 property", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Event\n

", - "translation": "

\n 事件\n

", + "original": "Event", + "translation": "事件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Element event\n

", - "translation": "

\n 元素的事件\n

", + "original": "Element event", + "translation": "元素的事件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Component event\n

", - "translation": "

\n 组件的事件\n

", + "original": "Component event", + "translation": "组件的事件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Directive event\n

", - "translation": "

\n 指令的事件\n

", + "original": "Directive event", + "translation": "指令的事件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Two-way\n

", - "translation": "

\n 双向\n

", + "original": "Two-way", + "translation": "双向", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Event and property\n

", - "translation": "

\n 事件与 property\n

", + "original": "Event and property", + "translation": "事件与 property", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Attribute (the exception)\n

", - "translation": "

\n attribute(例外情况)\n

", + "original": "Attribute (the exception)", + "translation": "attribute(例外情况)", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Class\n

", - "translation": "

\n CSS 类\n

", + "original": "Class", + "translation": "CSS 类", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Style\n

", - "translation": "

\n 样式\n

", + "original": "Style", + "translation": "样式", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { @@ -26405,8 +26345,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { - "original": "

\n Aliasing input/output properties\n

", - "translation": "

\n 给输入/输出属性起别名\n

", + "original": "Aliasing input/output properties", + "translation": "给输入/输出属性起别名", "sourceFile": "/Users/twer/private/GDE/content-2/guide/template-syntax.md" }, { @@ -26725,13 +26665,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Technology\n

", - "translation": "

\n 技术\n

", + "original": "Technology", + "translation": "技术", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Purpose\n

", - "translation": "

\n 目的\n

", + "original": "Purpose", + "translation": "目的", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -26740,8 +26680,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Angular testing utilities\n

", - "translation": "

\n Angular测试工具\n

", + "original": "Angular testing utilities", + "translation": "Angular测试工具", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -28955,13 +28895,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Function\n

", - "translation": "

\n 函数\n

", + "original": "Function", + "translation": "函数", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -29060,13 +29000,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Methods\n

", - "translation": "

\n 方法\n

", + "original": "Methods", + "translation": "方法", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -29190,13 +29130,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Properties\n

", - "translation": "

\n 属性\n

", + "original": "Properties", + "translation": "属性", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -29245,13 +29185,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Methods\n

", - "translation": "

\n 方法\n

", + "original": "Methods", + "translation": "方法", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -29330,13 +29270,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Member\n

", - "translation": "

\n 成员\n

", + "original": "Member", + "translation": "成员", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -29470,13 +29410,13 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n File\n

", - "translation": "

\n 文件\n

", + "original": "File", + "translation": "文件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { - "original": "

\n Description\n

", - "translation": "

\n 描述\n

", + "original": "Description", + "translation": "描述", "sourceFile": "/Users/twer/private/GDE/content-2/guide/testing.md" }, { @@ -30395,33 +30335,33 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Binding definition\n

", - "translation": "

\n 绑定定义\n

", + "original": "Binding definition", + "translation": "绑定定义", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Template syntax\n

", - "translation": "

\n 模板语法\n

", + "original": "Template syntax", + "translation": "模板语法", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Attribute binding\n

", - "translation": "

\n 属性(Attribute)绑定\n

", + "original": "Attribute binding", + "translation": "属性(Attribute)绑定", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Expression binding\n

", - "translation": "

\n 表达式绑定\n

", + "original": "Expression binding", + "translation": "表达式绑定", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n One-way binding\n

", - "translation": "

\n 单向绑定\n

", + "original": "One-way binding", + "translation": "单向绑定", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Two-way binding\n

", - "translation": "

\n 双向绑定\n

", + "original": "Two-way binding", + "translation": "双向绑定", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { @@ -31380,18 +31320,18 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Previous code\n

", - "translation": "

\n 老代码\n

", + "original": "Previous code", + "translation": "老代码", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n New code\n

", - "translation": "

\n 新代码\n

", + "original": "New code", + "translation": "新代码", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { - "original": "

\n Notes\n

", - "translation": "

\n 说明\n

", + "original": "Notes", + "translation": "说明", "sourceFile": "/Users/twer/private/GDE/content-2/guide/upgrade.md" }, { @@ -31830,8 +31770,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Node.js\n

", - "translation": "

\n前提条件: Node.js\n

", + "original": "

", + "translation": "前提条件: Node.js", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -31845,8 +31785,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Visual Studio 2015 Update 3\n

", - "translation": "

\n前提条件: Visual Studio 2015 Update 3\n

", + "original": "

", + "translation": "前提条件: Visual Studio 2015 Update 3", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -31860,8 +31800,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Configure External Web tools\n

", - "translation": "

\n前提条件: 配置External Web tools\n

", + "original": "

", + "translation": "前提条件: 配置External Web tools", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -31900,8 +31840,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\nPrerequisite: Install TypeScript 2.2 for Visual Studio 2015\n

", - "translation": "

\n前提条件: 安装TypeScript 2.2 for Visual Studio 2015\n

", + "original": "

", + "translation": "前提条件: 安装TypeScript 2.2 for Visual Studio 2015", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -31935,8 +31875,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\nStep 1: Download the QuickStart files\n

", - "translation": "

\n第一步: 现在“快速上手”文件\n

", + "original": "

", + "translation": "第一步: 现在“快速上手”文件", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -31945,8 +31885,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\nStep 2: Create the Visual Studio ASP.NET project\n

", - "translation": "

\n第二步:创建Visual Studio ASP.net项目\n

", + "original": "

", + "translation": "第二步:创建Visual Studio ASP.net项目", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -31980,8 +31920,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\n Step 3: Copy the QuickStart files into the ASP.NET project folder\n

", - "translation": "

\n 第三步: 把“快速上手”的文件复制到ASP.NET项目所在的目录\n

", + "original": "

", + "translation": "第三步: 把“快速上手”的文件复制到ASP.NET项目所在的目录", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { @@ -32045,8 +31985,8 @@ "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { - "original": "

\n Step 5: Build and run the app\n

", - "translation": "

\n 第五步:构建和运行应用\n

", + "original": "

", + "translation": "第五步:构建和运行应用", "sourceFile": "/Users/twer/private/GDE/content-2/guide/visual-studio-2015.md" }, { diff --git a/aio/tools/translator/utils.spec.ts b/aio/tools/translator/utils.spec.ts index 3811392c4f..9955dfe413 100644 --- a/aio/tools/translator/utils.spec.ts +++ b/aio/tools/translator/utils.spec.ts @@ -89,6 +89,27 @@ def `); }); + it('拆解多行的 h\\d 标签', function () { + const lines = normalizeLines(` + a +

+ line +

+ b +`); + expect(lines).eql(` + a + +

+ + line + +

+ + b +`); + }); + it('拆解单行的 th 标签', function () { const lines = normalizeLines(` a @@ -123,6 +144,23 @@ def `); }); + it('拆解多行注释', function () { + const lines = normalizeLines(` + a + + b +`); + expect(lines).eql(` + a + + + + b +`); + }); + it('拆解单行br', function () { const lines = normalizeLines(` a diff --git a/aio/tools/translator/utils.ts b/aio/tools/translator/utils.ts index 629382c346..c1d729049c 100644 --- a/aio/tools/translator/utils.ts +++ b/aio/tools/translator/utils.ts @@ -56,7 +56,7 @@ export function normalizeLines(text: string): string { text = text.replace(oneLinePairedTagPattern, '\n\n$1<$2$3>$4$5\n'); const oneLineThTdTagPattern = /\n( *)<(th|td|li)( ?[^>\n]*)>(.*)<\/\2>( *)(?=\n)/g; text = text.replace(oneLineThTdTagPattern, '\n\n$1<$2$3>\n\n$1 $4\n\n$1$5\n'); - const oneLineCommentPattern = /\n( *)()( *)(?=\n)/g; + const oneLineCommentPattern = /\n( *)()( *)(?=\n)/g; text = text.replace(oneLineCommentPattern, '\n\n$1$2$3\n'); const oneLineBrTagPattern = /\n( *)(
)( *)(?=\n)/g; text = text.replace(oneLineBrTagPattern, '\n\n$1$2$3\n'); @@ -67,7 +67,7 @@ export function normalizeLines(text: string): string { const multiLinePairedTagPattern = /\n( *)<(header)( *[^>\n]*)>\n*(.*?)\n*( *)<\/\2>( *)(?=\n)/g; text = text.replace(multiLinePairedTagPattern, '\n\n$1<$2$3>\n\n$4\n\n$5$6\n'); - const blockTagPattern = /\n( *)<(\/?)(td|th|div|code-example|code-tabs)( *[^>\n]*)>( *)(?=\n)/g; + const blockTagPattern = /\n( *)<(\/?)(td|th|div|code-example|code-tabs|h\d+|p|tr)\b( *[^>\n]*)>( *)(?=\n)/g; text = text.replace(blockTagPattern, '\n\n$1<$2$3$4>$5\n'); const multiLineCodePattern = /\n( *)```(\w*)( *)(?=\n)/g;