给定语言环境的单词分隔符

时间:2015-04-10 19:34:51

标签: ios objective-c localization nslocale

我如何知道某种语言NSLocale是否使用空格来区分句子中的单词(如英语或其他罗马语)(如日语)?

我希望在NSLocale Component Keys下找到这些信息......不。任何的想法?我真的需要为此设置自己的字典。我很欣赏任何建议或相关资源。

2 个答案:

答案 0 :(得分:0)

您可以使用NSLocal Components键“NSLocaleExemplarCharacterSet获取该语言中的字符集,然后查看该空间是否属于该语言字符集

NSLocale *jpLocale = [[NSLocal alloc] initWithLocalDentifier: @"ja_JP"];

NSCharacterSet *jpCharSet = (NSCharacterSet *)[jpLocale objectForKey: NSLocaleExemplarCharacterSet]; 

[jpCharSet characterIsMember: ' '] ? NSLog("Yeah it uses space"); : NSLog("Nope"); 

答案 1 :(得分:0)

我还没有找到一个很好的解决方案。作为一种解决方法,我使用NSDateFormatter

从随机日期检查 fullStyle 字符串中的空格
NSDate* exampleDate = [NSDate dateWithTimeIntervalSince1970:0];
NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.locale = [NSLocale currentLocale];
dateFormatter.dateStyle = NSDateFormatterFullStyle;
NSString *testString = [dateFormatter stringFromDate:exampleDate];

BOOL localeLikelyUsesSpaceAsDelimitters = [testString rangeOfString:@" "].location == NSNotFound;

更好的想法?