如何使用 ngx-translateservice 翻译打字稿中的方法

2023-12-13

我尝试用这个问题中的所有这些例子来解决我的任务Angular ngx-translate 在打字稿中的用法我不知道如何将 TranslateService 连接到我的方法。

瑞典语翻译文件se.json(无钥匙)

{
    NAME: Namn
}

英文翻译文件en.json(无钥匙)

{
    NAME: Name
}

打字稿:

从“@ngx-translate/core”导入{TranslateService};

constructor {
 private translate: TranslateService
} {
    this.translate.use(localStorage.getItem("language")); // Get selected language
}

我要翻译的方法:

setColumns(): void {
  this.loggedInUserType = Meteor.user().profile.user_type;
  if (this.type === "history") {
    this.columns = [
      { header: "NAME" },
      { header: "TOTALSUM" },
      { header: "VAT" },
      { header: "INVOICES" },
    ];
  } else if (this.type === "clients") {
    this.columns = [
      { header: "NAME" },
      { header: "ORGANIZATIONNUMBER" },
      { header: "CITY" },
      { header: "COUNTRY" },
      { header: "ACTIONS" },
   ];
    this.getClients();
  }
}

  1. 应用程序模块.ts

    export function HttpLoaderFactory(httpClient: HttpClient) {
      return new TranslateHttpLoader(httpClient, 'assets/i18n/', '.json');
    }
    
    export class TranslateHandler implements MissingTranslationHandler {
      handle(params: MissingTranslationHandlerParams) {
        /* some logic */
      }
    }
    
    export function appInitializerFactory(translateService: TranslateService, injector: Injector): () => Promise<any> {
      // tslint:disable-next-line:no-any
      return () => new Promise<any>((resolve: any) => {
        const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));
        locationInitialized.then(() => {
          translateService.use(localStorage.getItem("language") || window.navigator.language) // here u can change language loaded before reander enything
            .pipe(take(1))
            .subscribe(() => {},
            err => console.error(err), () => resolve(null));
        });
      });
    }
    
    @NgModule({
        imports: [
            ...,
            TranslateModule.forRoot({
                loader: {
                    provide: TranslateLoader,
                    useFactory: (HttpLoaderFactory),
                    deps: [HttpClient]
                },
                isolate: false,
                missingTranslationHandler: [{provide: MissingTranslationHandler, useClass: TranslateHandler}]
            }),
        ]
        providers: [
            ...,
            {
                provide: APP_INITIALIZER,
                useFactory: appInitializerFactory,
                deps: [TranslateService, Injector],
                multi: true
            }
        ]
    })
    export class AppModule {}
    
  2. 在组件的模块中添加TranslationModule

  3. 在组件构造函数中public ts: TranslateService) {}

  4. 现在你可以使用:

    this.ts.instant('YOUR_KEY'); // return translated string or your key if translation not founded, but u can change logic in TranslateHandler
    
  5. 所有翻译都存储在资产/i18n/。例如en.json

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ngx-translateservice 翻译打字稿中的方法 的相关文章

随机推荐

  • 更新后无法同时运行多个Android模拟器

    在 SDK Manager 中安装更新之前 它运行良好 但是我无法同时运行两个模拟器 这个问题有什么解决办法吗 我也遇到过同样的问题 为了解决这个问题 我创建了新的 AVD 并尝试运行它 OR emulator arm avd
  • Spring Security 6 CustomAuthenticationFilter(打算替换UsernamePasswordAuthenticationFilter)不起作用

    引用https www baeldung com spring security extra login fields 我打算自定义 Spring security Authentication UsernamePasswordAuthen
  • 为什么应用程序模块不需要提供服务的模块?

    ServiceLoader java 文档指出 强烈建议应用程序模块不需要包含服务提供者的模块 为什么强烈建议这样做 如果不遵循建议会发生什么 上下文 这间接意味着定义服务的模块不应该导出该服务的提供者 我认为在同一模块中提供服务的默认实现
  • 如何使用 EPPlus 从 Excel 文件 (xlsx) 获取/读取图片

    假设我有一个名为sheet1其中包含一张名为pic 001我怎样才能得到这张图片System Drawing Image object 好的 我找到了如何 public static Image GetImage string sheetn
  • Angularjs:预览净化后的 html

    请找到plnkr 我想显示一些 html 预览 html 已经在服务器上进行了清理 例如 lt b gt HELLO lt b gt 我怎样才能显示html表单 在示例中 我想显示myHtml2显示为myHtml 第一次预览 html di
  • 在单选按钮选择上显示元素

    我想展示input text场上radio button普通 JavaScript 中的选择 我缺少什么 const form document querySelector form const size form elements siz
  • 在 Objective-C 中,什么时候应该使用属性,什么时候应该使用实例变量?

    我不熟悉同时具有属性和实例变量的程序语言 所以我不知道使用属性和实例变量的好方法 现在 我在 Objective C 代码中仅使用属性 并且不使用任何实例变量 我需要使用实例变量吗 或者仅使用属性是 Objective C 的最佳实践 in
  • iPhone 上的二进制短信

    我正在寻找有关如何在 iPhone 上实现二进制 SMS 的信息 我特别想知道你需要在 iOS 应用程序中做什么 如果可能的话 监听特定的 SMS 端口并 然后收到专用的二进制短信通知 当然 我正在寻找基于官方 公共 API 的解决方案 没
  • 如何处理多种日期格式?

    当我到达下面的 df date 行时 当具有此格式的日期时应用程序崩溃2016 12 27 14 40 46 0000用来 致命错误 在解包可选值时意外发现 nil 我也看到了这一点 错误 执行被中断 原因 EXC BAD INSTRUCT
  • 使用 CImg 加载 PNG

    我无法使用 CImg 加载 PNG 我听说您需要先获取 libpng zlib 才能开始工作 但我不确定如何设置 我在Ubuntu上 我的来源 include
  • Firefox 上的 Polymer 1.0 ReferenceError:Polymer 未定义

    您好 我在 Chrome 和 Opera 上有一个可用的 Polymer 1 0 网页 现在我需要该页面在 Firefox 和 Safari 中运行 我有以下测试
  • Iframe 下的 IE11 怪异模式 - javascript 错误

    我几天来一直在阅读和寻找答案 但找不到答案 希望这篇文章能带来救赎 在我的公司 我们有一个在 IE8 上运行的网络应用程序 我们正在尝试迁移到 IE11 我们快到了但是 我们有一个旧模块 它是在旧框架中编写的 该框架托管在 iframe 中
  • 如何在 django-cms 中使用 iframe

    我正在寻找一个好的解决方案 使最终用户能够在模板占位符中插入 iframe Soundcloud 我考虑过使用 djangocms text ckeditor 插件 在里面文档它说使用可配置的清理程序来完成此操作 djangocms tex
  • ClassCastException 在 scala 中使用 ArgumentCapture for Double

    我使用时遇到问题ArgumentCapture for a Double在斯卡拉 我正在尝试捕捉一个Double对被嘲笑的特质的论证 当尝试捕获时 相同的语法可以正常工作Int 这是一个测试示例 import org scalatest F
  • 如何使用go模板通过FuncMap解析html文件

    我使用以下代码来解析 html 模板 效果很好 func test w http ResponseWriter req http Request data struct A int B int A 2 B 3 t template New
  • ubuntu 中不支持 Major.minor 版本 52.0

    我在用jdk1 8 0 25 当我使用以下命令检查 Java 版本时 java version 它输出以下内容 java version 1 7 0 65 OpenJDK Runtime Environment IcedTea 2 5 3
  • 如何自动将 MySQL 列转换为小写

    是否有一个属性可以添加到列中 以便将其值转换为小写 而不是通过 PHP 对每个值执行此操作 你也许可以通过trigger在插入或更新时触发 我自己 我宁愿创建一个view具有相关列的小写版本 视图的 SQL 可能类似于 SELECT ID
  • 使用列表理解进行素因数分解

    我想仅使用列表理解方法和 或找到给定数字的所有素因数 Haskell 中的 函数组合运算符 我特别想避免递归解决方案 例如 pfactors 120必须产生 2 2 2 3 5 output I tried pfactors n p p l
  • Bash for 循环设置一个变量、它的值并评估它?

    如何使用 for 循环来定义变量 and它的价值 and能够评价一下吗 我无法弄清楚评估部分 但使用 for 循环来定义变量and它的价值似乎有效 具体来说 for i in 1 4 do export my i var path i to
  • 如何使用 ngx-translateservice 翻译打字稿中的方法

    我尝试用这个问题中的所有这些例子来解决我的任务Angular ngx translate 在打字稿中的用法我不知道如何将 TranslateService 连接到我的方法 瑞典语翻译文件se json 无钥匙 NAME Namn 英文翻译文