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

如何使用ngx translate翻译angular material snackbar中的文本

ngx-translate 是一个用于 Angular 应用的国际化(i18n)库,它可以帮助你在应用中轻松地切换不同语言的文本。Angular Material 的 Snackbar 是一种用于向用户显示简短消息的 UI 组件。结合这两者,你可以实现 Snackbar 文本的国际化。

以下是如何使用 ngx-translate 翻译 Angular Material Snackbar 中文本的步骤:

1. 安装 ngx-translate 和相关依赖

首先,你需要在你的 Angular 项目中安装 ngx-translate 及其核心包:

代码语言:txt
复制
npm install @ngx-translate/core @ngx-translate/http-loader --save

同时,确保你已经安装了 Angular Material:

代码语言:txt
复制
ng add @angular/material

2. 配置 ngx-translate

在你的 Angular 项目的根模块(通常是 app.module.ts)中,配置 ngx-translate

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

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

@NgModule({
  declarations: [
    // ... your components here
  ],
  imports: [
    // ... other modules here
    HttpClientModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient],
      },
    }),
    // ... Angular Material modules here
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

3. 创建翻译文件

在你的项目中创建一个 assets/i18n/ 目录,并在其中为每种支持的语言创建一个 JSON 文件。例如,创建 en.jsonzh.json 文件:

en.json:

代码语言:txt
复制
{
  "SNACKBAR_MESSAGES": {
    "SUCCESS": "Operation successful!",
    "ERROR": "An error occurred."
  }
}

zh.json:

代码语言:txt
复制
{
  "SNACKBAR_MESSAGES": {
    "SUCCESS": "操作成功!",
    "ERROR": "发生错误。"
  }
}

4. 在组件中使用 ngx-translate

在你的 Angular 组件中,你可以使用 TranslateService 来获取翻译后的文本,并将其传递给 Snackbar:

代码语言:txt
复制
import { Component } from '@angular/core';
import { MatSnackBar } from '@angular/material/snack-bar';
import { TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  constructor(private snackBar: MatSnackBar, private translate: TranslateService) {}

  showSnackbar(messageKey: string) {
    this.translate.get(messageKey).subscribe((translatedMessage) => {
      this.snackBar.open(translatedMessage, 'Close', {
        duration: 3000,
      });
    });
  }
}

5. 调用 Snackbar

在你的模板或组件逻辑中,你可以调用 showSnackbar 方法来显示 Snackbar:

代码语言:txt
复制
// 在某个事件处理函数中
this.showSnackbar('SNACKBAR_MESSAGES.SUCCESS');

总结

通过以上步骤,你可以在 Angular Material 的 Snackbar 中使用 ngx-translate 来实现文本的国际化。这种方法不仅适用于 Snackbar,还可以应用于应用中的其他文本元素。

参考链接

希望这些信息能帮助你解决问题!

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

相关·内容

Ng-Matero V10 正式发布!

Angular v10 在六月下旬就悄无声息的发布了,虽然 v9 的发布延期了两个月,但是 v10 并没有受影响,仍然如期而至。...通过 ng new 生成的项目目录稍有不同,不过不用担心,使用 ng update 直接升级即可,CLI 会自动帮你替换这些文件,没有任何阻碍。...再来说一下 Angular Material, v10 有一个非常大的变化,就是增加了 datepicker 的区间选择功能,不用多说,这是一个极其实用的功能。...其实 v10 版本除了将 Angular 和 Angular Material 升级之外,主要是调整了 schematics ng add 的兼容问题,其它代码和 v9 最新版是一样的。...最终参考了 ngx-formly 的设计方案,每个文本都支持传入响应式数据流,以 ngx-translate 为例,通过 translate.stream 监听语言变化即可。

1.5K10
  • Angular 项目多国语言设置

    React 和 Vue 项目同理~ 这里我们仅考虑简体中文和美国英文两种语言,使用的框架版本为 @angular/core: "~12.1.0" 在日常开发中,我们难免会引入第三方 UI 框架,那么这就涉及了第三方...NG-ZORRO 中 Empty 组件的提示成功更改为英文: 设置自定义多国语言 那么,对于我们自定义的页面内容,怎么翻译呢?...这个有点麻烦,但是我们依然可以使用依赖库,比如 ngx-translate 实现,喜大奔普~ 安装依赖 npm install @ngx-translate/core --save npm install...这里的路径也方便我们在部署的过程中 url 的调整,比如添加个前缀 /jimmy/ 。详见 Angular 项目路径添加指定的访问前缀。...我们在 app.component.ts 中对翻译服务初始化: import { Component, OnInit } from '@angular/core'; import { TranslateService

    2K20

    Angular Material 的设计之美

    但是在编写 ng-matero 的过程中,随着对 Angular Material 的深入了解,我发现这种说法稍显狭隘甚至产生了一定的误导,所以我希望这篇文章可以让大家对 Angular Material...接下来我会从相对宏观的角度介绍 Angular Material 设计的一些亮点,并且简单介绍 Angular Material 的一些使用技巧。...我在以前写 helper 库 的时候,曾写过颜色集群,文本色处理都是一刀切,非常不严谨,所以感触非常深。更惊喜的的是 Angular Material 甚至给出了灰色值的别名。...$mat-gray: $mat-grey; 灵活的主题定制 Angular Material 的样式几乎全部写在了 mixin 中,定制起来非常容易。...在此推荐一些优秀的第三方组件。 ng-select ngx-formly ngx-progressbar ngx-translate ngx-toastr photoviewer

    5K30

    Angular 工具篇之国际化处理

    对于使用 Angular 框架的项目来说,我们可以利用以下第三方库,快速支持国际化: ngx-translate/core ngx-translate/http-loader ngx-translate-extract...首先我们来使用 Angular CLI 创建一个新的项目: $ ng new ngx-translate-demo 当前环境: Angular CLI: 6.1.4、Node: 9.11.0、OS: darwin...{ this.translate.use("en"); } ngx-translate-extract 这个库,除了能自动抽取模板中的使用 TranslatePipe 的字段之外,也可以抽取项目中应用...接着我们需要分别更新 zh-cn.json、zh-hk.json 和 en.json 文件: { "hello": "hello {{value}}", "home": "首页" } 最后我们在介绍如何在懒加载的模块中启用国际化...这三个库的使用,在实际的开发中还会遇到很多其他的问题,这时就需要大家认真阅读上述库相关的说明文档。

    2.1K20

    【玩转腾讯云】2021 年最值得推荐的 7 个 Angular 前端组件库 - DevUI

    Material Design for Angular [Material.png] 首先要推荐的,当然是 Angular 官方的 Material 组件库,Material Design 是 Google...不过 Material Design for Angular 却不是最早的 Angular 组件库,后面我们将要介绍的 PrimeNG 比它更早诞生,但 Material 毫无疑问是最流行和最受欢迎的。...,它们都可以只使用Bootstrap无需使用jQuery就可以在Angular中使用。...如果你的项目是一个使用Angular 5+和Bootstrap 4+的新项目,建议使用NG Bootstrap,否则就使用NGX Bootstrap。 3....DevUI 是从华为云 DevCloud 研发工具体系孵化出来的,最适合做 ToB 的工具类产品,因为这类产品不追求酷炫的样式,而更在意工具是否稳定、使用起来是否高效,是否能真正让用户忘记工具,在使用工具的过程中达到心流状态

    1.8K30

    翻译:如何使用CSS实现多行文本的省略号显示

    : ellipsis;则表示超出盒子的部分使用省略号表示。...3rd 优化定位模型 在第二节中,我们针对end元素设置了相对定位,对realend元素设置绝对定位。但是我们可以采用更为简单的代码来实现,即只使用相对定位。...4th 削窄prop元素 目前,最左侧的prop元素的作用在于让realend元素在文本溢出时处在其正下方,在前几节的示例代码中为了直观的演示,设置prop元素的宽度为100px,那么现在为了更好的模拟实际的效果...同时,prop元素和realend元素可以采用伪元素来实现,减少额外标签的使用。...6th 隐藏 之前的实现中在文本未溢出的情况下,realend元素会出现在父元素的右侧,正如 ? 。

    2.8K60

    Android Material Design系列之FloatingActionButton和Snackbar

    今天主讲的Material Design系列的两个控件都不难,所以一起讲了,分别是FloatingActionButton和Snackbar。...这个系列都是主讲的Material Design风格的控件,所以都是控件的一些基本使用,也会扩展讲一些与这个控件相关的东西和效果,如果都会了的同学,可以不看这个系列。...它的使用方式也是非常的简单,跟Toast差不多,代码如下: final Snackbar snackbar = Snackbar.make(view, "关注非著名程序员公众号了吗?"...添加icon和改变Snackbar的位置 修改了背景色,文字按钮颜色,是不是还不过瘾?看看我们如何在Snackbar上添加上一个icon图片。其实也非常简单,和修改样式的过程差不多。...Material Design系列一发出去的时候,有人私下发消息要源码,前期我感觉没必要,以为都是控件的基本使用嘛,挡不住我心好啊,这个系列我都写在了一个demo里,我会慢慢完善,直到更新完。

    1.8K60

    Flutter 构建完整应用手册-设计基础知识 顶

    这本食谱包含演示如何在写Flutter应用程序时解决常见问题的食谱。 每个配方都是独立的,可以作为参考帮助您构建应用程序。...例如,当用户在列表中删除消息时,我们可能想通知他们消息已被删除。 我们甚至可能想给他们一个撤消行为的选择! 在Material Design中,这是SnackBar的工作。...使用选项卡 使用选项卡是遵循Material Design指南的应用程序中的常见模式。 Flutter包含创建选项卡布局作为材料库的一部分的便捷方式。...这些值对应于FontStyle,可用于TextStyle对象的fontStyle属性。 3.将字体设置为默认值 对于如何将字体应用于文本,我们有两种选择:作为默认字体或仅在特定的小部件中。...我们可以使用TextStyle来改变文本的外观。

    7.1K10

    Material Design —Snackbars &Toasts

    自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后在使用的时候完全不虚...Snackbars & Toasts Snackbars是通过屏幕底部的消息对操作进行的简短反馈。 Snackbar包含与所执行的操作直接相关的单行文本。 它们可能包含操作文本,但不包含icon。...它们也显示在屏幕的底部,但不能从屏幕中滑走。 用法 一次只能显示一个snackbar。 每个snackbar可能包含一个单独的操作,但不会是“关闭”或“取消”。...消失方式:1、向下滑动;2、一段时间后自动消失;3、用户在别处进行新交互时(例如打开了新的页面) 非常短的文本字符串 Snackbars应包含与所执行的操作直接相关的单行文本。 它们可能包含操作文本。...如果Snackbar中描述的操作重要到需要阻止用户使用屏幕,则应该使用Dialog。 ?

    1.1K60

    使用.net core ABP和Angular模板构建博客管理系统(实现编辑页面功能)

    编辑模块 我们看看作者的新建页面用到了什么, 用到了ngx-bootstrap的弹出层。...width: 70%; float: right; } footer .u-menu *{ float: right; } 引用编辑功能 在note.component.ts中如下使用...返回列表后也没有自动更新 预览处也没实现实时预览 自动更新也没有实现 发布功能还没有实现 界面不够美观 返回列表更新 这个就要用到angular的父子页面传值。...预览有了,但是没有实时同步 要实现实时同步,我们使用angular的FormControl来帮忙 import { FormControl } from '@angular/forms'; import...this.active = true; this.modal.show(); this.term.valueChanges // 监测输入文本框的变化同步更新预览

    1K30

    输入和选择

    在前面的文章中我们学习了Flutter中事件的处理,包括组件的单击、双击、长按、滑动等。想必大家多其已经有了一定的认识。 那么,这节我们主要介绍下Flutter中输入和选择组件的用法。...TextField 顾名思义文本输入框,类似于Ios中的UITextField和Android中的EditText。主要是为用户提供输入文本提供方便。...在这里,我们需要简单介绍下SnackBar 使用 Scaffold.of(context).showSnackBar()即可显示SnackBar,大家在这里不需要了解太多,以后会具体介绍的。...Switch Switch翻译过来就是开关的意思,就是控制开关。...RadioListTile和SwitchListTile的用法基本相同,这里就不在具体介绍了,大家可以在下面试一下如何使用。

    2.4K20

    Android CameraX NDK OpenCV(三)-- 人脸贴图替换

    按钮的事件中写实现方式,上面定义的itype类型,每点击一次就+1然后再除List的集合数取余,这样就实现了点击循环的方式,showtvStatus就是让文本显示出当前的状态。 ?...调用的setTypeId的方式里面,重点说一下,这里用的是mView.postDelayed的方式,后面有50毫秒的延时,主要是如果直接用post在测试的过程中点击有的时候并没有切换,而且存入到的缓存中...上面的分析处理中,把原来的if else改为了when的写法,处理的流程比较简单,还是用的人脸检测,返回的矩形,只不过在画矩形时不能再调用原来人脸检测的那个红框了,需要改为指定位置画图片的方式。...,定义的这两个主要为了drawBitmap中的函数用到。...let { Snackbar.make(this, it, Snackbar.LENGTH_SHORT).show() } } }

    1.3K10

    再不迁移到Material Design Components 就out啦

    翻译自国外文档加自己理解 原文 我们最近宣布了 Material Design Components(MDC)1.1.0 ,这是一个库更新,为您的 Android 应用程序带来了 Material Theming...本指南将向您展示如何迁移代码库,以便您可以使用新的属性,样式和小部件。 精简的主题示例 本指南使用了精简的应用程序来演示迁移过程。...但是,升级后,您可能会注意到某些控件颜色和其他属性的某些意外更改。 ? 在上面的示例中,按钮发生了变化、文本和图标的颜色发生了变化。FAB 现在变成了蓝绿色,并且文本字段看起来完全不同。不用担心。...要恢复为旧的文本字段可以在布局中添加样式 material.textfield.TextInputLayout ... + style="@style...MDC窗口小部件使用这些属性来为其背景,文本,图标等着色。要了解哪些小部件使用哪种颜色,需要检查源代码中的默认小部件样式。 AppCompat和框架中还存在一些颜色,但不再适用于此新系统。

    3.2K30

    Android 关于 Snackbar 基本使用

    Snackbar 呢,是 Android 官方的一个控件,它可以说跟 Toast 类似,在应用交互中给用户以友好提示的控件。 它通常出现屏幕底部,给予用户简短的提示消息。...一、Snackbar 基本使用 先在app build.gradle 中添加依赖: implementation "com.google.android.material:$latest_version..." 然后在代码中使用(简单使用跟Toast是类似的): Snackbar.make(binding.root, "This is a snackbar message", Snackbar.LENGTH_SHORT...666~ 二、给 Snackbar 添加点花样 上述只是最最最简单的使用 Snackbar,如果只是弹出提示,那显然 Toast 已经够了,它肯定是提供了 Toast 不具备的功能的,接下来开始实践一下吧...Snackbar Material Design 规范: https://m2.material.io/components/snackbars 我们在设计之初也应该参考下它的规范,避免一些不恰当设计使用

    2.3K10
    领券