Fel*_*lix 9 iphone localization nslocale
我即将本地化一个iPhone应用程序.当用户的语言(iOS系统语言)是德语时,我想使用不同的URL.
我想知道这是否是正确的方法:
NSURL *url = [NSURL URLWithString:@"http://..."]; // english URL
NSString* languageCode = [[NSLocale preferredLanguages] objectAtIndex:0];
if ([languageCode isEqualToString:@"de"]) {
url = [NSURL URLWithString:@"http://..."]; // german URL
}
Run Code Online (Sandbox Code Playgroud)
据我所知,[NSLocale currentLocale]返回基于当前区域的语言,但不是系统语言,也不起作用[NSLocale systemLocale].
(我不想在NSLocalizedString这里使用!)
Ale*_*nte 13
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
你的代码没问题.但我会这样做:
NSString *urlString = nil;
NSString *languageCode = [[NSLocale preferredLanguages] objectAtIndex:0];
if ([languageCode isEqualToString:@"de"]) {
urlString = @"http://...";
}else{
urlString = @"http://...";
}
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)
我只想使用NSLocalizedString来查找本地化的URL,如下所示:
NSString* urlString = NSLocalizedString(@"myUrlKey", nil);
Run Code Online (Sandbox Code Playgroud)
然后在您的Localizable.strings文件中,您可以这样做:
// German
"myUrlKey" = "http://www.example.com/de/myapp";
Run Code Online (Sandbox Code Playgroud)
和
// English
"myUrlKey" = "http://www.example.com/en/myapp";
Run Code Online (Sandbox Code Playgroud)
分别.
| 归档时间: |
|
| 查看次数: |
10237 次 |
| 最近记录: |