Reputation: 31627
I learned how to make English and Arabic project from previous question I asked.
Now what I did is added a label in this project and wrote "Welcome".
The problem is the layout. When I have English text it is at left side (obviously), but when the Arabic text comes, it should start from right to left. But it is aligned to left only.
Any idea how to deal with such case?
Below are the screenshots...
Upvotes: 3
Views: 5711
Reputation: 31627
Below is what I did...
Added fonts in projects folder (english.ttf & arabic.ttf) as shown here.
In Localizable.strings
added "myFont"="ACS Zomorrod";
(Arabic) & "myFont"="Armalite Rifle";
(English)
and then had those font in condition
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
}
Also you could have "myLang"="arabic";
& "myLang"="english";
in Localizable.strings
and then have code as
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
}
I will prefer the second option instead of first as tomorrow if I change the font, I would have to do changes at line NSString *cpFont = @"Armalite Rifle";
in all files.
Upvotes: 3
Reputation: 46533
Conditional if-else
Check for your font and change the alignment.
Or,
Make two labels for each of them setting their alignemnt Left-Right and Right-Left and show the text on either by checking the language.
Upvotes: 1