Ngx-translateを使用しています。
翻訳する文字列に改行を入れるにはどうすればよいですか?
私のテンプレートでは:
{{'STRING_TO_TRANSLATE' | translate}}
私のen.jsonでは:
{
"STRING_TO_TRANSLATE": "text on first line. <br> or \n don't work. Text on second line"
}
できます!しかし、代わりに
{{'STRING_TO_TRANSLATE' | translate}}
やったほうがいい
<div [innerHTML]="'STRING_TO_TRANSLATE' | translate"></div>
<br/>s
は問題なく動作しますが、他の場合には、追加の「安全なHTMLパイプ」が必要になる場合があります。
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({name: 'mySafeHtmlPipe'})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {
}
public transform(htmlContent) {
return this.sanitizer.bypassSecurityTrustHtml(htmlContent);
}
}
\ nを使用できますが、スタイルを設定する必要があります。
テンプレートでこれを使用してください:
<div class="my-translated-paragraph">
{{'STRING_TO_TRANSLATE' | translate}}
</div>
あなたのen.json:
{
"STRING_TO_TRANSLATE": "text on first line.\nText on second line"
}
(s)CSSファイル:
.my-translated-paragraph{
white-space: pre-wrap;
}
ホワイトスペースの背後にある魔法の詳細: https://stackoverflow.com/a/42354356/375711
これに関するgithubの問題も参照してください: https://github.com/angular-translate/angular-translate/issues/595
お望みならば <p></p>
ために \n\n
および<br />
ために \n
、これが私の解決策です:
<div [innerHTML]="'YOUR_TRANSLATE_WITH_\n_OR_\n\n_GOES_HERE' | translate | nl2pbr"></div>
パイプのチェーンの詳細については、こちらをご覧ください: https://angular.io/guide/pipes#chaining-pipes