在Angular 7中如何从英语(LTR)加载阿拉伯语(RTL)的CSS

时间:2020-01-06 07:30:50

标签: javascript html css angular typescript

我正在使用ngx-translate在Angular 7中开发应用程序以实现国际化和基于引导的AdminLTE 3。 我有两个CSS:

  1. 一种用于基于LTR的语言
  2. 另一个用于基于RTL的语言。

当我选择阿拉伯语作为RTL方向时,如何加载bootstrap_rtl.css和如何卸载bootstrap_ltr.css。

<div class="dropdown-menu dropdown-menu-sm dropdown-menu-right">
    <a class="dropdown-item" (click)="useLanguage('en')">
      English
    </a>
    <div class="dropdown-divider"></div>
    <a class="dropdown-item" (click)="useLanguage('ar')">
      Arabic
    </a>
    <div class="dropdown-divider"></div>
    <a class="dropdown-item" (click)="useLanguage('ta')">
      Russian
    </a>
</div>

export class NavbarComponent implements OnInit {
  constructor(private translate: TranslateService) { }
  ngOnInit() {
  }

  useLanguage(language: string) {
    this.translate.use(language);
  }
}

1 个答案:

答案 0 :(得分:2)

如果是rtlltr,则可以在翻译文件中创建一个作为当前主题标志的键,并且该值将更改您选择的语言的基础

style.scss

.ltr {
  @import 'themes/_en';
}

.rtl {
    @import 'themes/_ar';
}

_ar.json

{
  "currentTheme":"rtl"
}

_en.json

{
  "currentTheme":"ltr"
}

app.template

<div  [ngClass]="'currentTheme' | translate">  // ?
{{'currentTheme' | translate}}
<p class="base-align">
<hello name="{{ name }}"></hello>
  Start editing to see some magic happen :)
</p>

theme <button (click)="useLanguage('en')">English</button>
<button (click)="useLanguage('ar')">Arabic</button>
</div>

当languae改变currentTheme的值时,样式会改变并且样式也会改变

demo ??

相关问题