如何使用ngx翻译来翻译整个html页面

我的隐私政策嵌入为完整的html。我想使用ngx-translate进行翻译,但是如果我按照ngx-translate的建议对每个html标签进行翻译,那么这将是非常昂贵且完全非结构化的。 该政策的设计如下:

<h1>Datenschutzerklärung</h1>
    <p>Verantwortlicher im Sinne der Datenschutzgesetze,insbesondere der EU-Datenschutzgrundverordnung (DSGVO),ist:
    </p>
    <p>Chinaedu Pascal Onwukwe</p>
    <h2 id="betroffenenrechte">Ihre Betroffenenrechte</h2>
    <p>Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten können Sie jederzeit folgende Rechte ausüben:
    </p>
    <ul>
      <li>Auskunft über Ihre bei uns gespeicherten Daten und deren Verarbeitung (Art. 15 DSGVO),</li>
      <li>berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO),</li>
      <li>Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),</li>
      <li>Einschränkung der Datenverarbeitung,sofern wir Ihre Daten aufgrund gesetzlicher Pflichten noch nicht löschen
        dürfen (Art. 18 DSGVO),</li>
      <li>Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 DSGVO) und</li>
      <li>Datenübertragbarkeit,sofern Sie in die Datenverarbeitung eingewilligt haben oder einen Vertrag mit uns
        abgeschlossen haben (Art. 20 DSGVO).</li>
    </ul> ...

我想找到一种在不翻译每个html标签的情况下进行翻译的方法,而更像是替换html文件。有谁知道我会怎么做。预先感谢。

likexiaoshuang 回答:如何使用ngx翻译来翻译整个html页面

您可以使用instant服务的TranslateService的{​​{1}}方法来翻译HTML模板。像这样:

component.ts

DomSanitizer

,您可以constructor( public translate: TranslateService,public sanitizer: DomSanitizer ) {} getTranslatedHtmlSnippet(s: string): SafeHtml { return this.sanitizer.bypassSecurityTrustHtml(this.translate.instant('HOME.TEXT')); } 注入翻译后的HTML。

template.html

innerHtml

为了正常工作,您必须在翻译文件中提供其他模板。

i18n.json

<div [innerHtml]="getTranslatedHtmlSnippet()"></div>

我给您提供了stackbliz的链接,以查看正在运行的示例:

https://stackblitz.com/edit/angular-translation-service-cpupat

但是,我建议您不要使用这种方法,并且始终仅转换字符串/内容,而不转换结构。 如果您确实需要这种翻译并且不限于单个组件,则最好创建管道。

本文链接:https://www.f2er.com/3118590.html

大家都在问