我知道如何为iPhone应用程序本地化字符串(通过使用NSLocalizedString和Localizable.strings)如何在日期时间显示中执行相同的操作?现在我正在使用NSDateFormatter作为日期/时间。
答案 0 :(得分:2)
我必须本地化时间并显示有关用户pref的小时数(军事时间,24小时) 这是我的代码:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setLocale: [NSLocale currentLocale]];
[dateFormatter setDateStyle:kCFDateFormatterNoStyle];
[dateFormatter setTimeStyle:kCFDateFormatterShortStyle];
NSLog([dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:currentSong.timestamp]]);
答案 1 :(得分:2)
本地化您的应用程序名称:
在Xcode项目文件夹中创建一个名为en.lproj
的英语,de.lproj
的德语,fr.lproj
的法语等语言文件夹
在每个*.lproj
文件夹中,通过Xcode创建一个名为InfoPlist.strings
的文件:
一个。点击File
菜单,然后选择New File...
湾选择Other
群组,然后点击Strings
℃。在所需的语言环境文件夹
在您的Xcode项目中,导航至InfoPlist.strings
项并打开其显示三角形
点击en
获取英文,然后添加字符串:
CFBundleDisplayName = "AppNameInEnglish";
对于德语,请单击de
并添加字符串:
CFBundleDisplayName = "AppNameAufDeutsch";
等等......
答案 2 :(得分:2)
如果要使用以下方法将日期首次转换日期本地化为double double double_date =(double)[date timeIntervalSince1970]; 之后,您可以使用以下代码
以任何格式转换此双精度值 NSDateFormatter *dateformater =[[NSDateFormatter alloc] init];
[dateformater setLocale:[NSLocale currentLocale]];
[dateformater setDateStyle:NSDateFormatterLongStyle];//set current locale
[dateformater setTimeStyle:NSDateFormatterShortStyle];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:dateinDouble];//it return the the date according to the locale formate
答案 3 :(得分:1)
您无需对本地化日期时间执行任何特殊操作。 NSDateFormatter默认执行此操作。您没有看到所需行为的原因(我认为这就是您提出问题的原因)是您可能没有正确设置区域格式。单单设置语言是不够的。更改测试设备上的“区域格式”,您将看到本地化的日期:设置 - >国际 - >区域格式
答案 4 :(得分:0)
您可能希望查看NSLocale
...查看Locales Programming Guide。使用NSDateFormatter.h
中的常量
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
应该针对用户在系统设置中设置的区域设置做正确的事情。
您可以使用[dateFormatter locale]
检查格式化程序的当前区域设置。
答案 5 :(得分:0)
对于应用标题,您必须查看Localizing Property List Values。简而言之:在本地化目录中使用InfoPlist.strings文件。
答案 6 :(得分:0)
选择“appname”-Info.plist,command-I,然后在窗口中选择“Make File Localizable”。返回“常规”选项卡,使用“添加本地化”按钮添加本地化设置。