Ios7 iOS 7多元化+;阿拉伯语
基本问题是以下几行:Ios7 iOS 7多元化+;阿拉伯语,ios7,string-formatting,arabic,pluralize,Ios7,String Formatting,Arabic,Pluralize,基本问题是以下几行: [NSString stringWithFormat:@"باقي للشراء %d", 3]; 返回格式为“3阿拉伯文”的字符串 当我写一行时: [NSString stringWithFormat:@"%d باقي للشراء "]; 再次返回格式为“3阿拉伯文本”的字符串 当我写一个字符串时,创建如下字符串: NSString *digitThree = @"3"; NSString *expressionString = [NSString stringW
[NSString stringWithFormat:@"باقي للشراء %d", 3];
返回格式为“3阿拉伯文”的字符串
当我写一行时:
[NSString stringWithFormat:@"%d باقي للشراء "];
再次返回格式为“3阿拉伯文本”的字符串
当我写一个字符串时,创建如下字符串:
NSString *digitThree = @"3";
NSString *expressionString = [NSString stringWithFormat:@"باقي للشراء %@", digitThree];
NSString *someChar = @"d";
NSString *expressionString = [NSString stringWithFormat:@"باقي للشراء %@", someChar];
expressionString
的值变成一个具有“3阿拉伯文本”形式的字符串
但当我编写这样的代码时:
NSString *digitThree = @"3";
NSString *expressionString = [NSString stringWithFormat:@"باقي للشراء %@", digitThree];
NSString *someChar = @"d";
NSString *expressionString = [NSString stringWithFormat:@"باقي للشراء %@", someChar];
expressionString
的值变成一个具有“阿拉伯语文本d”形式的字符串
这种行为可能与阿拉伯字母表接受数字有关,但拉丁字母表字符不接受数字有关
我正在使用iOS7本地化的多重化功能(本地化的属性列表文件部分[此处][1])
Localizable.stringsdict文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>%d days</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%1$#@num_days@</string>
<key>num_days</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>يوم %d</string>
<key>other</key>
<string>أيام %d</string>
</dict>
</dict>
</dict>
</plist>
但我无法让这个调用返回“阿拉伯文文本1”,它总是返回“1阿拉伯文文本”
编辑:
谢谢你,霍拉克斯
起初,你的回答似乎没有什么用处。但现在我明白了。
有几件事把我弄糊涂了
1) 在调试期间使用NSLog()并打印NSString值。以这种方式打印带有阿拉伯语内容的NSString值时,其打印方向似乎与作为UILabel内容时的显示方向相反
2) 当文本包含阿拉伯字符和数字组合时,UILabel将内容包装成多行的方式。具体而言,就我而言,我有:
“1234567890128赎回代码”,包装为:
“123456789012
阿拉伯语文本8“通常,在
本地化.string
文件中,您可以播放实际的翻译,如:
e、 g.英文:
然后用另一种语言:
"%d day" = "<expiration in days>: %d"
<key>other</key>
<string>%d أيام</string>