angular6深入理解之css国际化解决方案

问题背景:ngx-translate库实现了语言国际化,但不同语言间css样式的加载方式没有提供解决方案。

解决方案:

1,component文件添加一个变量来获取别当前语言

@Component({
  selector: 'app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component-en.css']
})
export class AppComponent  {
  lang_ = '-en'; // 值为“-”加当前语言(this.translateService.currentLang),假设是为en
}

2,app.component-en.css 代码中的样式均以 -en结尾

.class-name-en {

}

3,app.component.html ,通过[class]=""方式引入动态类名

<div [class]="'class-name'+lang_"></div>

这样编译后"'class-name'+lang_"会变成"class-name-en",从而进行渲染

相关推荐