本技能套件为 Angular 7 项目提供完整的国际化解决方案,包含核心配置、翻译管理、NG-ZORRO 适配、老项目改造四个子技能。
重要: 在执行任何命令前,必须先检查并切换 Node.js 版本到所需版本。
# 1. 检查当前 node 版本
node -v
# 2. 检查项目所需版本 (查看 package.json 中的 engines 字段)
cat package.json | grep -A 2 '"engines"'
# 3. 如果版本不匹配,使用 nvm 切换到所需版本
nvm list # 查看已安装的 node 版本
nvm install 10.16.2 # 安装所需版本 (如果未安装)
nvm use 10.16.2 # 切换到所需版本
本项目要求: Node.js 10.16.2
# 1. 切换 node 版本到 10.16.2 (如需要)
nvm use 10.16.2
# 2. 配置核心依赖和模块
/angular7-i18n-core
# 3. 配置 NG-ZORRO 国际化
/angular7-i18n-ng-zorro
# 4. 生成翻译文件
/angular7-i18n-translate
# 1. 切换 node 版本到 10.16.2 (如需要)
nvm use 10.16.2
# 2. 一键改造老项目国际化
/angular7-i18n-migration
| 子技能 | 触发命令 | 功能描述 |
|---|---|---|
| -------- | ---------- | ---------- |
| i18n-core | /angular7-i18n-core | 核心配置:依赖安装、language.service.ts、app.module.ts |
| i18n-translate | /angular7-i18n-translate | 翻译文件管理:Python 脚本自动生成 zh.json 和 en.json |
| i18n-ng-zorro | /angular7-i18n-ng-zorro | NG-ZORRO 适配:shared.module.ts 配置 |
| i18n-migration | /angular7-i18n-migration | 老项目改造:isop-design 替换、硬编码中文替换 |
translate 字段projects/
└── complianceManager/
└── src/
├── app/
│ ├── app.module.ts # 根模块配置(含 APP_INITIALIZER)
│ └── common-ui/
│ └── shared/
│ └── service/
│ └── language/
│ └── language.service.ts # 语言管理服务
└── assets/
└── i18n/
├── zh.json # 中文翻译文件
└── en.json # 英文翻译文件
注意: translate.json 仅存在于技能目录中,作为翻译字典模板供 Python 脚本读取,不需要复制到项目中。
使用本技能后,请确认以下项目:
所有模板中的中文文本必须使用 {{ 'key' | translate }} 语法:
替换前:
<button>确定</button>
<h1>安全态势</h1>
替换后:
<button>{{ 'que_ding' | translate }}</button>
<h1>{{ 'an_quan_tai_shi' | translate }}</h1>
在需要切换语言的组件中调用 LanguageService:
import { Component } from '@angular/core';
import { LanguageService } from './common-ui/shared/service/language/language.service';
@Component({
selector: 'app-language-switch',
template: `
<button (click)="setChinese()">中文</button>
<button (click)="setEnglish()">EN</button>
`
})
export class LanguageSwitchComponent {
constructor(private languageService: LanguageService) {}
setChinese(): void {
this.languageService.setLanguage('zh');
}
setEnglish(): void {
this.languageService.setLanguage('en');
}
}
功能: 依赖安装、目录结构、language.service.ts、app.module.ts 配置
使用场景: 新项目初始化国际化配置
核心步骤:
功能: translate.json 管理、Python 脚本生成翻译文件
使用场景: 自动生成 zh.json 和 en.json,优先使用本地翻译字典
核心步骤:
功能: shared.module.ts 配置、NG-ZORRO 组件国际化
使用场景: 配置 NG-ZORRO 7.x 国际化
核心步骤:
{ provide: NZ_I18N, useValue: zh_CN }功能: 老项目改造步骤、isop-design 替换、硬编码中文替换
使用场景: 老项目无痛改造国际化
核心步骤:
i18n-core.md - 核心配置详细文档i18n-translate.md - 翻译文件管理详细文档(含 Python 脚本)i18n-ng-zorro.md - NG-ZORRO 适配详细文档i18n-migration.md - 老项目改造详细文档translate.json - 本地翻译字典模板(仅技能目录)| 依赖 | Angular 7 版本 |
|---|---|
| ------ | --------------- |
| @ngx-translate/core | 11.0.1 |
| @ngx-translate/http-loader | 4.0.0 |
| ng-zorro-antd | 7.2.0 |
NG-ZORRO 7.x(本项目使用):
providers: [{ provide: NZ_I18N, useValue: zh_CN }]
NG-ZORRO 8.x+:
providers: [provideNzI18n(zh_CN)]
问题:NG-ZORRO 组件未切换语言
NzI18nService.setLocale() 已正确调用问题:翻译文件 key 不对应
共 1 个版本