0Pricing
Angular Academy · 课时

标记待翻译文本

使用 i18n 属性标记可翻译文本

标记待翻译文本 是 CoddyKit 上的免费 Angular Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Angular Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Angular Academy 课程共包含 4 节课。

国际化解决了什么问题

国际化(i18n) 是对应用进行准备,使其中的文本能够翻译成其他语言,而无需修改代码。Angular 内置了 i18n 系统,可通过在模板中使用 i18n 属性标记可翻译文本。

i18n 属性

将 i18n 属性添加到任何需要翻译其文本的元素上。Angular 会在构建时收集这些文本,并根据区域设置替换相应内容。

<h1 i18n>Welcome to our store</h1>
<p i18n>Choose a product to begin.</p>

翻译属性

要翻译 HTML 属性(例如 title 或 placeholder),请在属性名前加上 i18n- 前缀。

<input placeholder="Search" i18n-placeholder />
<img src="logo.png" alt="Company logo" i18n-alt />

含义与说明

您可以使用 i18n="meaning|description" 语法为翻译人员提供上下文。含义用于归类应共用同一翻译的相同短语;说明则用于解释使用场景。

<button i18n="cta|The main call to action on the home page">Get started</button>

自定义 ID

在 @@ 后添加稳定的自定义 ID,使翻译不受文本编辑影响。如果没有自定义 ID,修改源文本会生成新的 ID,并丢失现有翻译。

<h1 i18n="@@homeTitle">Welcome to our store</h1>

已翻译文本中的插值

已翻译文本中的绑定会变成占位符。翻译人员会看到一个命名标记,并可以根据目标语言的语序重新调整其位置。

<p i18n>Hello, {{ name }}! You have {{ count }} new messages.</p>

使用 $localize 标记组件中的文本

对于 TypeScript 中的字符串(而不是模板中的字符串),请使用 $localize 为其添加标记。它会像 i18n 属性标记模板一样,将该字符串标记为待提取内容。

const greeting = $localize('Welcome back'); // tagged-template form, marked for extraction

为什么不能直接拼接字符串

硬编码并拼接文本('You have ' + n + ' items')会破坏翻译:不同语言的语序不同,复数规则也各不相同。使用 i18n 标记完整短语,可以让翻译人员保持正确的语法结构。

翻译嵌套标记

当可翻译文本包含子元素时,Angular 会将这些子元素保留为占位符,避免翻译人员意外删除标记。

<p i18n>Read our <a href="/terms">terms of service</a> before continuing.</p>

保持源文本整洁

请以最合理的最小单位标记文本,通常是完整句子或标签。避免将一个句子拆分到多个 i18n 块中,因为每个片段都会成为单独的字符串,从而更难翻译。

构建时会发生什么

i18n 属性本身不会产生运行时开销:Angular 会在针对每个区域设置进行编译时替换已标记的文本,并生成单独的优化构建包。我们将在接下来的课程中提取并翻译这些字符串。

快速检查

如何翻译 placeholder 属性?

回顾

使用 i18n 属性标记模板文本,使用 i18n-attr 标记属性。添加 meaning|description 提供上下文,并使用 @@customId 创建稳定的 ID。绑定会变成占位符,TypeScript 字符串使用 $localize。标记过程不会产生任何运行时开销。

常见问题解答

「标记待翻译文本」课时是免费的吗?

是的 — 「标记待翻译文本」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Angular Academy 课程的其余内容,请升级到 CoddyKit PRO。 Angular Academy 课程共包含 4 节课。

「标记待翻译文本」这节课中我会学到什么?

使用 i18n 属性标记可翻译文本 你通过在浏览器中直接运行的动手代码来练习 Angular Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Angular Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Angular Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「标记待翻译文本」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Angular Academy 课中编写并运行代码吗?

能。每节 Angular Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 标记待翻译文本
  2. 提取并翻译消息
  3. 复数与选择(ICU)
  4. 构建本地化构建版本
← 返回 Angular Academy