Lyn*_*nob 1 ngx-translate angular angular6
我正在使用 Angular 6 和 ngx-translate。在不弄乱主题的情况下切换到 rtl 的唯一方法是<html dir="rtl">在 index.html 中。
在component.ts:
switchLanguage(language: string) {
this.translate.use(language);
localStorage.setItem('lang', JSON.stringify(language));
}
Run Code Online (Sandbox Code Playgroud)
如何添加dir="rtl"到<html>if language === "ar",否则将其删除?
我忘了提到从 a 更改为 rtl 是div行不通的,我在提出问题之前对此进行了测试,正确切换主题的唯一方法是将其添加到<html>并且您可以通过在CoreUI Free Angular 2+上尝试进行测试我正在使用的管理模板。
我设法解决了
switchLanguage(language: string) {
this.translate.use(language);
if (language !== 'ar' && document.getElementsByTagName('html')[0].hasAttribute('dir')) {
document.getElementsByTagName('html')[0].removeAttribute('dir');
} else if (language === 'ar' && !document.getElementsByTagName('html')[0].hasAttribute('dir')) {
document.getElementsByTagName('html')[0].setAttribute('dir', 'rtl');
}
localStorage.setItem('lang', language);
}
Run Code Online (Sandbox Code Playgroud)
如果有人有更好的解决方案,请告诉我,我当然会赞成并接受您的解决方案。
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |