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",从而进行渲染