2016-04-30 70 views
3

我有一个网站支持所有语言,包括RTL(希伯来语,阿拉伯语,波斯语等)。这些应用程序是使用AngularJS,Bootstrap和JavaScript开发的。html根据DIRECTION设置改变元素的水平对齐

通过设置dir="auto"我得到正确显示的文本(LTR for ENGLISH,RTL for ARABIC)。我的问题是与元素的对齐。

假设您需要显示一个列表。当语言,说英语,列表看起来:

- Entry 1; this is with a short tail, 
- Entry 2; no tail, 
- Entry 3; this is with a tail that is longer than the one of the 1st entry 

如果这个名单将是,说阿拉伯语,它看起来如下:

دخول 1؛ هذا هو الحال مع ذيل قصير - 
دخول 2؛ بلا ذيل، - 
دخول 3؛ هذا هو الحال مع ذيل أطول من واحد من دخول 1ST - 

,显然不应该是正确的对齐,如:

      دخول 1؛ هذا هو الحال مع ذيل قصير - 
              دخول 2؛ بلا ذيل، - 
    دخول 3؛ هذا هو الحال مع ذيل أطول من واحد من دخول 1ST - 

(我向大家致歉阿拉伯音箱,但我不是你们中的一个,并使用谷歌翻译,所以我不知道翻译的质量是什么)。

那么,有没有办法测试内容的字符集并设置horizontal-align:lefthorizontal-align:right

希望我的问题很明确...

在此先感谢。

回答

1

我找到了解决方案。有关收到数据的语言的指示。然后我设置div为:

<div .... style="text-align:{{User_This_Align}}"> 
... 

内的控制器,被设置变量$scope.User_This_Align等于“左”或取决于数据的语言“正确的”。

(这依赖于Angular的数据绑定功能)。

希望这个解决方案对任何有相同或相似需求的人都有帮助。

感谢那些发送了他们的意见。

0

这很简单。所有你需要做的是把如下放入一个css文件:

text-align:right; --------------将其对齐到右侧

text-align:left; --------------将它对齐到左边

text-align:center; --------------把它排在中心

+0

那么,'text-align'的选项对我来说并不陌生。我的观点是如何根据要在列表中部署的数据内容动态地改变它(从“左”到“右”,反之亦然)。 – FDavidov

+0

你可以使用php,并根据它是什么语言来创建一个变量。然后你可以有一个if语句来检查变量是什么。 –

+0

感谢您的意见。我找到了如下所示的解决方案。 – FDavidov

0

首先尝试在课堂上给予指导。 (请参阅W3学校的CSS方向属性)然后根据所选语言使用ng-class更改方向。

+0

问题是:我从数据库中获取文本,我不知道它是英文,阿拉伯文,中文还是其他。我需要找出哪种语言,然后将列表的对齐方式设置为右侧或左侧。这是挑战。 – FDavidov

+0

当用户选择特定的语言选项时,你会得到文本吗? –

+0

如果用户选择阿拉伯语或中文,你会传递一些代码或ID到数据库以获取相关的语言数据。 –