Tag: 国际化

如何比较英文环境中的中文string?

我想比较中文string与NSString – (NSComparisonResult)localizedStandardCompare:(NSString *)string方法。 如果系统语言设置为中文,它可以正常工作。 但是在英文环境下,string是通过unicode数字来比较的。 我怎样才能比较英文环境中的中国风格的string?

有没有一个选项可以隐式地在Interfacebuilder中定位标签

在博客文章的某处,我偶然发现了一个如下所示的string文件: // de.lproj/Localizable.strings "This is the title" = "Das ist der Titel" 对我来说,这看起来像是在编译器中处理的“接口”构build器中的实际标签,以便不使用NSLocalizedString(@"SOME_IDENTIFIER", @""); 将是必要的。 我现在的问题是,是否有某种快捷方式,或者我需要本地化我的视图上的所有我的个人标签,例如在awakeFromNib方法。

本地化UITextView

如何本地化UITextView? 我看到了很多UITextField的例子,但是没有UITextView的例子。 我需要在about部分本地化我的应用程序的描述。

构build设置:我应该在构build设置中做什么更改,以便在发布应用程序时,它将在App Store上显示为仅英语的语言?

我在上传iOS应用程序时犯了一些错误,这使得我的应用程序在AppStore上显示英文和德文的语言。 情景是,我已经在德国的(info.plist of target)中设置了“本地化本地开发区域”键,而我的应用程序实际上是一个英文应用程序(适用于所有地区)。 但是我没有确认把这个键换成美国,可以把应用程序的Appstore语言只改为英文。 除此之外,我还在(项目信息)中的本地化语言中设置了以下语言:1.英语 – 发展语言2.德语 应该在设置中做什么修改,以便在发布应用程序时,它将在App Store上仅显示英语的语言?

如何login俄文文本或非拉丁文?

在以前版本的XCode中一切正常。 但今天在XCode 4.3.2我有一个问题。 如何login俄文文本或非拉丁文? NSLog(@"russian text: русский текст"); NSString *text = @"russian text: русский текст"; const char *textC = [text UTF8String]; NSString *getText = [NSString stringWithCString:textC encoding:NSUTF8StringEncoding]; NSLog(@"___text: %@", getText); 我的日志 russian text: —Ä—É—Å—Å–∫–∏–π —Ç–µ–∫—Å—Ç ___text: russian text: —Ä—É—Å—Å–∫–∏–π —Ç–µ–∫—Å—Ç 更新: 该错误只发生在真实的设备上(ipod touch 5.1)。 它在iPhone模拟器上正常工作。

界面生成器本地化如何

我正在深入研究Apple开发人员的文档,以了解应用程序的本地化/国际化应该如何完成,并且我想了解Interface Builder如何帮助您pipe理多种语言的多个NIB文件…文档指向我的“本地化”部分界面生成器用户指南 ,但我找不到它..我应该find它在Xcode 4文档? 有人能给我一个文档,告诉你如何在Interface Builder / XCode中实现本地化吗? “Interface Builder用户指南”在哪里? 提前致谢。 PS:我应该从一开始就使用本地化的string/捆绑包开始实施我的应用程序,即使我只从一种语言开始? 将“多国语言”支持下的应用程序“国际化”是一种痛苦吗?

iOS本地化/设置的国际化使用Xcode 6 XLIFF导出的笨拙

背景: Xcode 6添加了一个快速导出function,为每种语言创build一个XLIFF文件(只需从文件导航器中select您的项目,然后select菜单项编辑器→导出为本地化 )。 问题: 它工作得很好,在XML中包含了一切…除了设置捆绑string 。 有没有人有这方面的经验? 编辑: 经过深入的研究,看起来没有办法强制Xcode(版本6.1)将Settings Bundle Strings包含到XLIFF文件中。 所以它必须单独翻译。

UITextInputMode currentInputMode已弃用。 build议更换?

在我们的应用程序中,我们希望检测当前的键盘语言。 例如,如果用户在“设置” – >“常规” – >“键盘” – >“键盘”下设置了多个语言键盘,我们希望知道它们正在input什么语言,并在发生更改时从NSNotificationCenter获取通知。 – (void)viewDidLoad { [super viewDidLoad]; NSNotificationCenter *nCenter = [NSNotificationCenter defaultCenter]; [nCenter addObserver:self selector:@selector(languageChanged:) name:UITextInputCurrentInputModeDidChangeNotification object:nil]; [self languageChanged:nil]; } -(void)languageChanged:(NSNotification*)notification { for(UITextInputMode *mode in [UITextInputMode activeInputModes]) { NSLog(@"Input mode: %@", mode); NSLog(@"Input language: %@", mode.primaryLanguage); } NSLog(@"Notification: %@", notification); UITextInputMode *current = [UITextInputMode currentInputMode]; NSLog(@"Current: %@", current.primaryLanguage); } […]

我的Base Internationalization storyboard是否必须对应所有非本地化语言和string的后备语言?

我已经浏览了苹果开发者的一些国际化文档和video,但是我从来没有find明确的答案。 在Apple的教程中,我看到了与en.lproj和zh.lproj一起的Base.lproj文件夹 – 示例翻译(本地化)是从英文到中文。 但他们告诉我,有一个文件en.lproj/myStoryboard.strings ,这是令人困惑的。 我无法看到为故事板创build英文本地化(已经是英文版)。 所以我的问题是,如果用户会看到Base.lproj/myStoryboard.storyboard的string? 如果系统在我的包中找不到用户的首选语言文件夹,那么该文件中的string是否必须是显示给用户的默认string? 我可以明确地说“永远不要使用Base.lproj/myStoryboard.storyboard ,总是回落在en.lproj/myStoryboard.strings ”? 换一种说法: 比方说,我希望我的应用程序用英文显示,只要用户的语言不可用,但我的Base.lproj/myStoryboard.storyboard是瑞典语。 然后,我必须将基础情节提要板本地化为sv.lproj/myStoryboard.strings ,并将基础情节提要中的所有string翻译为英语来完成此任务?

在运行时更改iOS模拟器的当前区域设置

当开发一组date计算和语言规则来将数值和date转换为string时,我正在编写testing来断言string格式化方法的结果。 一个假想的断言可能看起来像这样: NSAssert([dateString isEqualToString:@"Three days, until 6:00 PM"], @"Date string should match expectation"); 但是,由于该应用程序已针对多种语言进行了本地化,而且我的开发人员也来自不同的语言环境,因此可能会发生这样的情况,即您的设备或模拟器被设置为与正在编写testing的语言环境不同的语言环境。 在这样的情况下, dateString的内容可能是这样的: @"Drie dagen, tot 18:00" // the assertion fails @"Drei Tage, bis 18 Uhr" // the assertion also fails 这可能是也可能不是这些语言环境的正确date符号,但是我的问题的一部分是如何能够运行testing到特定的语言环境,当底层代码使用Apple API如下所示: [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterNoStyle timeStyle:NSDateFormatterShortStyle]; 我很想在我的断言中用两种或更多种语言来覆盖,就像这样: [NSSomething actionToSetTheLocaleTo:@"en_US"]; dateString = …; // the formatting NSAssert([dateString isEqualToString:@"Three days, until 6:00 PM"], […]