首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何用angular 9测试多语言

在 Angular 9 中测试多语言应用程序通常涉及以下几个步骤:

1. 设置 Angular 项目

确保你已经安装了最新版本的 Angular CLI。如果没有,可以使用以下命令安装:

代码语言:javascript
复制
npm install -g @angular/cli

然后创建一个新的 Angular 项目:

代码语言:javascript
复制
ng new my-app
cd my-app

2. 添加国际化支持

Angular 使用 @angular/localize 包来支持国际化。首先,安装必要的包:

代码语言:javascript
复制
ng add @angular/localize

这将自动配置你的项目以支持国际化,并添加必要的文件和配置。

3. 创建翻译文件

src/assets/i18n 目录下创建不同语言的翻译文件。例如,创建 en.jsonfr.json 文件:

代码语言:javascript
复制
// src/assets/i18n/en.json
{
  "HELLO": "Hello"
}

// src/assets/i18param.json
{
  "HELLO": "Bonjour"
}

4. 在组件中使用翻译

在你的 Angular 组件中,使用 translate 管道来翻译文本:

代码语言:javascript
复制
import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-root',
  template: `
    <h1>{{ 'HELLO' | translate }}</h1>
  `
})
export class AppComponent {
  constructor(private translate: TranslateService) {
    translate.setDefaultLang('en');
    translate.use('en');
  }
}

5. 配置 TranslateModule

在你的 app.module.ts 文件中,配置 TranslateModule

代码语言:javascript
复制
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

import { AppComponent } from './app.component';

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http);
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderController,
        deps: [HttpClient]
      }
    })
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

6. 编写测试

编写测试以验证多语言支持是否正常工作。在你的组件测试文件中,可以使用 TranslateService 来设置不同的语言并检查翻译是否正确。

代码语言:javascript
复制
import { TestBed } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { TranslateService } from '@ngx-translate/core';

describe('AppComponent', () => {
  let component: AppComponent;
  let translateService: TranslateService;

  beforeEach(async () => {
    await TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
      imports: [
        HttpClientModule,
        TranslateModule.forRoot()
      ],
      providers: [TranslateService]
    }).compileComponents();

    translateService = TestBed.inject(TranslateService);
  });

  beforeEach(() => {
    component = TestBed.createComponent(AppComponent).componentInstance;
  });

  it('should create the app', () => {
    expect(component).toBeTruthy();
  });

2));

  it('should display translated text', () => {
    translateService.use('en');
    const compiled = TestBed.createComponent(AppComponent).componentInstance;
    expect(compiled.nativeElement.querySelector('h1').textContent).toContain('Hello');

    translateService.use('fr');
    const compiledFr = TestBed.createComponent(AppControllecomponentInstance;
    expect(compiledFr.nativeElement.querySelector('h1').textContent).toContain('Bonjour');
  });
});

7. 运行测试

使用以下命令运行测试:

代码语言:javascript
复制
ng test

这将启动 Karma 测试运行器,并执行你在组件测试文件中编写的测试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

软件测试必备 - 14个接口与自动化测试练习网站

网站地址: https://www.inmotionhosting.com/ 8、Ultimate QA HTML Elements 一个免费的来练习一些不同自动化场景,测试大型复杂页面、使用简单的HTML...网站地址: https://ultimateqa.com/automation 9、Cypress Real World App Cypress Real World应用程序,一个支付应用程序,用于演示...cypress-io.ghost.io 10、RealWorld example apps Real World App示例,UI交互,这个应用程序可能是有史以来最酷的应用程序之一,可以选择:React / Redux、Angular...网站地址: https://github.com/gothinkster/realworld 11、Telerik Multi Language Demo Site 一个多语言演示网站,可以用来练习自动化测试...例如:Angular components、Angular dropdowns、React conversational UI component、ASP.NET Grid、ASP.NET MVC tree

36510

最受推荐的 9本全栈开发书籍,助web前端开发学习

本书适合具有Java编程经验的Web应用程序开发人员,希望使用强大的前端工具(AngularJS)和Bootstrap以及流行的后端框架(Spring Boot)创建企业级的、可扩展的Java应用程序...5、《Pro MERN Stack》 MongoDB和Express是构建现代Web应用程序的好工具,除了介绍如何用他们构建程序外,本书还将介绍可用于构建Web程序的其他工具,诸如:React Router...学习如何架构、开发、测试、部署和管理RESTful Web服务。...深入覆盖NPM模块,express, async, joi,helmet,jwt-simple, supertest, mongodb等。...9、《MEAN Web Development》 本书推荐给专业的MEAN程序员,不过一些对Node充满热情并希望创建小型webapp的开发者也可能喜欢这本书。

3.9K10
  • 何用 Karma,Jasmine,Webpack 测试 UI 组件系列(一)配置篇

    何用 Karma,Jasmine,Webpack 测试 UI 组件系列 (一) 配置篇为什么要测试 从个人经验来看,测试是防止软件缺陷的最好方法。...这种方法(手工测试)不仅低效,而且会隐藏一些你未发现的缺陷。 我们测试我们软件的目的是验证它是否如我们预期中的一毛一样。...单元测试 单元测试是一种测试你的项目中每个最小单元代码的有效手段,是使你的程序思路清晰的基础。 一旦所有的测试通过,这些零散的单元组合在一起也会运行的很好,因为这些单元的行为已经被独立的验证过了。...Angular 1.X 的版本,所以测试用例的编写也以此为例,需要安装angular angular-mocks。...官方示例 (https://github.com/angular/angular-seed) Angular 官方文档 (https://docs.angularjs.org/guide/unit-testing

    2K150

    Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试

    在文中,我们将会接触到很多Angular 2的重要概念,并附扩展阅读资料和自查小测试,供大家评估自己对Angular的了解程度。 Angular 经典问题及扩展阅读 1. ...扩展阅读: https://www.codeproject.com/Articles/1164813/Angular-Routing  https://vsavkin.com/angular-2-router-d9e30599f9ea...9. ...Observable类似于(在许多语言中的)Stream,当每个事件调用回调函数时,允许传递零个或多个事件。...感兴趣的同学,可以尝试构建一个“答题系统应用程序”,具体要求为: 有三个组成部分:测试视图、审查结果和显示结果 接受json格式的提问问题,你可以以预定义的格式从服务器发送json,Angular2测试应用需要在客户端呈现出答题界面

    17.3K80

    Angular JS】网站使用社会化评论插件,以及过程中碰到的坑

    并且i18n对中文的支持不好,网站上提供了中文版选项(它是依赖网友们的贡献提供多语言版本),但是我试了发现不能起作用。   因此考虑到以上缺点,我放弃了它。 B....但在Angular JS中没有必要,Angular JS提供了Directive,即自定义标签的功能,可定义一个directive,在每个页面引用即可。...= scope.article_id; 7 8 var data_thread_key = 'article_' + article_id; 9...不同插件的产品质量不同,需要测试来发现与选择,有的知名产品但对你来说,效果很差,当然可能有你的问题。   2. 不同插件对不同页面不同评论的支持不同,有的支持好,有的支持不好。...Angular JS和插件组合使用时可能也有坑。在解决问题过程中,也可以加深对Angular JS的理解。   希望对你有帮助。谢谢。

    1.9K80

    Angular JS】网站使用社会化评论插件,以及过程中碰到的坑

    并且i18n对中文的支持不好,网站上提供了中文版选项(它是依赖网友们的贡献提供多语言版本),但是我试了发现不能起作用。     因此考虑到以上缺点,我放弃了它。 B....但在Angular JS中没有必要,Angular JS提供了Directive,即自定义标签的功能,可定义一个directive,在每个页面引用即可。...= scope.article_id; 7 8 var data_thread_key = 'article_' + article_id; 9...不同插件的产品质量不同,需要测试来发现与选择,有的知名产品但对你来说,效果很差,当然可能有你的问题。   2. 不同插件对不同页面不同评论的支持不同,有的支持好,有的支持不好。...Angular JS和插件组合使用时可能也有坑。在解决问题过程中,也可以加深对Angular JS的理解。   希望对你有帮助。谢谢。

    1.6K00

    2K Star牛牛牛!!!全球频道,一键直达,探索IPTV新天地

    它基于Electron和Angular框架构建,不仅支持多种操作系统,包括Linux、macOS和Windows,而且能够满足不同用户的个性化需求。...此外,IPTVnator还支持Xtream Code (XC)和Stalker portal (STB),以及外部播放器mvp和VLC,增强了播放的灵活性。...多语言支持,英语、俄语、德语、韩语、西班牙语、中文、法语和意大利语,满足不同地区用户的需求。...多语言支持: 支持8种语言,满足不同地区用户的需求。 主题切换: 提供浅色和深色两种主题,适应不同使用环境。 怎么使用 使用IPTVnator非常简单。...播放、搜索、收藏、EPG集成、自动更新、多语言支持及主题切换等等等功能就可以用起来了。

    8910

    Python Web开发的完整指南

    前端涉及 html、css、javascript 和由此衍生出的库及框架, Angular、React、Vue,可谓学无止境。...后端可以有很多语言实现,这里就是 Python 了,也有非常丰富的框架,后面会提到。 2、为什么 Python 适合 Web 开发?...该框架允许开发人员选择任何东西:DBMS,URL 结构,模板样式等等。 6、Web2Py Web2Py 允许调试器和代码编辑器通过部署工具来编辑代码和调试代码。...它是用于抓取,数据挖掘,自动化测试等的广泛使用的库。 Zappa 是一个功能强大的库,用于在AWS Lambda 上开发无服务器应用程序。...现在应该对如何用 Python 进行 Web 开发有了一个很好的了解,这种了解,将在 Web 开发学习的道路上不迷茫。

    11.3K42

    2024年JavaScript新潮流:探索5大构建系统,让你的项目更加高效!

    从代码编译、测试执行到创建和更新发布版本,这一系列工作不仅耗时耗力,还需要持续监控以优化构建系统。这不仅分散了我们关注业务价值的精力,也可能使我们在竞争中落后。...测试执行:确保代码的稳定性和可靠性。 发布版本的创建:生成可以部署的应用版本。 更新最新版本:保持应用与最新技术同步。...NX:多框架支持的开发工具包 NX,这是一个基于Angular CLI构建的先进开发工具包。...Bazel:支持多语言的构建系统 简介 Bazel在构建系统中以其对多种编程语言的支持而著称,允许开发者构建和测试用各种语言编写的项目。...可复用的开发环境:Bit提供包含所有必要工具和配置的可复用开发环境,减少配置文件需求,tsconfig.json、ecliptic或prettier,促进开发设置的一致性。

    39310

    2024年JavaScript新潮流:探索5大构建系统,让你的项目更加高效!

    从代码编译、测试执行到创建和更新发布版本,这一系列工作不仅耗时耗力,还需要持续监控以优化构建系统。这不仅分散了我们关注业务价值的精力,也可能使我们在竞争中落后。...测试执行:确保代码的稳定性和可靠性。 发布版本的创建:生成可以部署的应用版本。 更新最新版本:保持应用与最新技术同步。...NX:多框架支持的开发工具包 NX,这是一个基于Angular CLI构建的先进开发工具包。...Bazel:支持多语言的构建系统 简介 Bazel在构建系统中以其对多种编程语言的支持而著称,允许开发者构建和测试用各种语言编写的项目。...可复用的开发环境:Bit提供包含所有必要工具和配置的可复用开发环境,减少配置文件需求,tsconfig.json、ecliptic或prettier,促进开发设置的一致性。

    26110

    【译】.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

    这对连接速度较慢的用户有着更大的影响,2G/3G手机。 它可以让搜索引擎很容易的搜索到你的应用程序。 对于使用更快连接的用户(内网用户),此功能的影响较小,因为无论如何用户界面都应该立即出现。...它旨在支持ASP.NET Core的生产力功能,日志记录,DI,配置等,而不承载任何Web依赖项。 ? 在接下来的几天里,我们将发布一些博客文章,提供更多关于使用Worker模板入门的练习。...Angular模板更新到了Angular 7 Angular模板更新到了Angular 7。在 .NET Core 3.0 发布稳定版本之前,我们预计会更新到Angular 8。...创建新的Angular应用程序 要创建一一个新的支持身份验证的Angular应用程序,我们需要调用以下命令: 1: dotnet new angular -au Individual 这个命令创建一个新的...NET Core中的gRPC服务,以及一个用于测试它的控制台应用程序。 ?

    22.6K10

    前端:开源免费的浏览器端Markdown编辑器——Vditor上手体验

    它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。提供桌面版。支持Windows、Linux、MacOS、浏览器扩展、安卓、IOS版本。...话题等自动补全扩展● 可使用拖拽、剪切板粘贴上传,显示实时上传进度,支持 CORS 跨域上传● 实时保存内容,防止意外丢失● 录音支持,用户可直接发布语音● 粘贴 HTML 自动转换为 Markdown,粘贴中包含外链图片可通过指定接口上传到服务器...● 支持主窗口大小拖拽、字符计数● 多主题支持,内置黑白绿三套主题● 多语言支持,内置中、英、韩文本地化● 支持主流浏览器,对移动端友好三、编辑器模式初始化设定2.1 所见即所得模式即所得模式对不熟悉...preview": { "mode": "both" } }); }// 测试数据填充...function getContent() { vditor.setValue("## 测试 \n ### 二级标题 ");

    32730

    Angular—都2019了,你还对双向数据绑定念念不忘

    Angular中的写法: // component.ts ... name = 'John'; ......你肯定会关心的是,Angular不是明明实现了双向绑定吗,为什么文章开头会说,没有?已经2019了,该忘的东西还是忘了吧,这不是喜新厌旧,应该是与时俱进。...Angular中的’双向数据绑定‘ 没有黑魔法 Angular努力拥抱web标准,不创造新名词,也不使用什么黑魔法,那么双向绑定是如何实现的呢?事实上通过属性绑定和事件,这并不难做到。...肯定是Angular内部帮你做了啊,要不怎么叫简写定法呢?这些小事框架都不帮忙,要框架何用?当然这只是开个玩笑,如果你愿意的话可以看下源码。...自定义双向绑定 按照上面的思路,实现一个双向绑定的步骤: 定义一个输入属性(:name)。 2. 定义一个输出属性,名称就是输入属性名加‘Change’后缀(:nameChange)。 3.

    4.4K30

    「前端架构」React,Angular还是Vue,太难选了?看完秒懂。

    您不必设置复杂的构建过程来使用它,添加头脚本(jQuery)应该可以让您快速入门。 Vue覆盖了MVVM架构模式的ViewModel层。...这就是流行的react-leaflet库如何用react接口包装纯JavaScript单张库。 单向的数据流是一个巨大的好处,在没有经验的人身上会造成很多伤害。清楚的理解是正确使用它的关键。...性能 所有的基准都来自Stefan Krause的综合JS框架基准测试。您可以检查每个框架测试的源代码,甚至可以在本地计算机上运行这些基准测试。所有的说明以及每个测试的详细解释都在存储库中。...DOM操作测试在应用程序完全加载和预热后测量UI性能。 我们这里没有明确的赢家。Vue可能会使用独特的性能优化来加快交换行的速度。...另一方面,Angular和React在highlighting rows测试中的性能都要优于React。 启动时间 ?

    6.3K40

    教你用200行代码写一个爱豆拼拼乐H5小游戏(附源码)

    本文将带大家一步步实现一个H5拼图小游戏,考虑到H5游戏的轻量级和代码体积,我没有使用react或vue这些框架,而采用我自己写的dom库和原生javascript来实现业务功能,具体库代码可见我的文章如何用不到...0, 0, winH); linear.addColorStop(0, '#a1c4fd'); linear.addColorStop(1, '#c2e9fb...let pool = generateMatrix(3, 28, 20); // 洗牌 pieces是拼图的dom集合 shuffle(pieces, pool); 该游戏的核心算法已经交给大家了,想体验真实游戏...公众号后台回复:拼拼乐 体验游戏 更多推荐 基于react/vue生态的前端集成解决方案探索与总结 9012教你如何使用gulp4开发项目脚手架 如何用不到200行代码写一款属于自己的js类库) 让你瞬间提高工作效率的常用...js函数汇总(持续更新) 一张图教你快速玩转vue-cli3 3分钟教你用原生js实现具有进度监听的文件上传预览组件 使用Angular8和百度地图api开发《旅游清单》 js基本搜索算法实现与170万条数据下的性能测试

    1.7K20

    后台管理UI的选择

    缺点: 太大了,真的不知道从那里开始 对IE的兼容不好,虽然官方声称支持IE8,但我测试结果不支持 收费,今天的价格是$28 七、H+ UI 官网的介绍:H+是一个完全响应式,基于Bootstrap3.3.6...CSS3等现代技术,她提供了诸多的强大的可以重新组合的UI组件,并集成了最新的jQuery版本(v2.1.4),当然,也集成了很多功能强大,用途广泛的jQuery插件,她可以用于所有的Web应用程序,网站管理后台...浏览器兼容: IE 9, 10, 11 Latest Chrome Latest Firefox Latest Opera Latest Safari 收费,今天的价格是$18。...Full Version Angular Seed Project Angular Seed Project Grunt Angular Seed Project Gulp Angular Seed...demo.html 特点: 使用简单,轻量级 控件实用性强,功能覆盖面大,可以解决大部分企业信息应用的设计场景 快速开发,使用LigerUI可以比传统开发减少极大的代码量 易扩展,包括默认参数、表单/表格编辑器、多语言支持等等

    5K21

    2020 年的 JavaScript 后起之秀

    另一方面,我们还有更多经典选项只能在服务器( Nest 或 Fastify)中运行。 与 2018 年一样,该类别由 Next.js 领导。...Angular 在 2020 年发布了三个主要版本。 Angular 9 于 2 月发布。主要变化是移至 Ivy 编译器,该编译器带来了更小的捆绑包大小和许多其他构建改进。...Angular 9 即将发布:改进 Ivy 编译和渲染管道 Angular 10 正式发布,不再支持 IE9/10!...Angular 11 正式发布:加入 webpack 5,升级至 TS 4.0,不再支持 IE 9 和 10 下半年,Angular 团队的主要重点是听取社区意见。...它可能是处理编译,测试,整理... 我们也将密切关注全栈框架 Redwood 项目,该项目可以很好地与 GraphQL 配合,并且具有使用其所谓的“单元”来处理数据提取的独特方法。

    2.4K20

    Hoppscotch:开源 API 开发工具,快捷实用 | 开源日报 No.77

    支持多种 HTTP 方法, GET、POST、PUT 等。 提供自定义主题,并支持背景色、前景色和强调颜色组合定制化。...动态凭据:支持为某些系统 ( AWS 或 SQL 数据库) 动态生成凭据。...该课程包括 10 周、20 节的教学内容,每一节都有测试、指导和作业等。通过基于项目的教育方法,让你在构建过程中进行学习,并且能够更好地掌握新技能。...核心优点: 提供丰富、高质量、符合国际化与无障碍要求、可定制化适配不同需求场景、使用情况良好、行为表现一致、性强强大的 UI 组件; 带有清晰易懂 API 接口并经过充分测试保证稳定性; 代码干净规范且文档完善...主要特点: 提供了一套全新、面向未来并富有前瞻性的 React 组件 支持渐进式迁移至最新版 (FluentUI V9) 包含对老版本 ( V8) 已经广泛使用过程中积累下来的较为完善且稳定可靠等的功能

    40810
    领券