如何将阿拉伯文本设置为右侧,将英文文本设置为同一标签上的左侧

时间:2013-01-15 10:19:48

标签: objective-c layout ios6 arabic right-to-left

我学会了如何从previous question I asked制作英语和阿拉伯语项目。

Same Project at github

现在我所做的是在这个项目中添加了一个标签并写了“欢迎”

问题在于布局。 当我有英文文本时,它位于左侧(显然),但是当阿拉伯语文本出现时,它应该从右边开始剩下。但它只与左边对齐。

知道怎么处理这种情况吗?

以下是截图...

enter image description here

阿拉伯

enter image description here

2 个答案:

答案 0 :(得分:3)

以下是我的所作所为......

在项目文件夹(english.ttf& arabic.ttf)中添加字体,如here所示。

Localizable.strings添加"myFont"="ACS Zomorrod";(阿拉伯语)& "myFont"="Armalite Rifle";(英文)

然后将这些字体置于条件

NSString *myFont = localize(@"myFont");
NSString *cpFont = @"Armalite Rifle";
if ([myFont isEqualToString:cpFont]) {
    self.myLabel.textAlignment = NSTextAlignmentLeft; // this is for English
} else {
    self.myLabel.textAlignment = NSTextAlignmentRight; // this is for Arabic
}

编辑1

你也可以拥有"myLang"="arabic";& "myLang"="english";中的Localizable.strings,然后将代码设为

NSString *myLang = localize(@"myFont");
NSString *myActualLang = @"english";
if ([myLang isEqualToString:myActualLang]) {
    self.myLabel.textAlignment = NSTextAlignmentLeft; // this is for English
} else {
    self.myLabel.textAlignment = NSTextAlignmentRight; // this is for Arabic
}

如果我更改字体,我会更喜欢第二个选项而不是第一个选项,我必须在所有文件中的第NSString *cpFont = @"Armalite Rifle";行进行更改。

答案 1 :(得分:1)

有条件的if-else

检查字体并更改对齐方式。

或者,

为每个人设置两个标签,设置他们的左右和左右对齐,并通过检查语言显示文本。