Tag: 本地化

重新加载故事板来改变语言环境

我正在为我的应用程序使用一个本地化的Storyboard。 该应用程序必须有一个选项,即时改变语言。 到目前为止,我已经想出了如何更改应用程序启动期间使用的语言: [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; //to make the change immediate 并设法通过删除关键窗口的所有子视图重新加载我的整个应用程序,从故事板重新加载初始视图控制器,并使其成为新的根视图控制器。 (它有一些问题,比如pipe理开放资源,但可以完成。) 我唯一无法弄清楚的是如何强制iOS用新语言重新加载故事板? 看起来故事板是以某种方式caching的,并且-UIStoryboad:stroyboardWithName:fromNib不会完全重新加载它,所以它出现在最后一种语言中。 我已经考虑了另外两个select: 有不同的故事板文件为每种语言(这是不可pipe理的,我不想这样做) 在我的所有视图控制器中使用事件侦听器来响应语言变化,并在UI上设置新的string(每次从故事板实例化时都必须调用这些string)。 这个解决scheme需要更多的时间,比我们想要花费的时间更多,同时也极大地增加了错误的可能性。 有没有更聪明的方法? 我不想保持我的应用程序的当前状态,所以重新启动它,就像它被杀死和实现似乎是一个合理的解决scheme。

“导出为本地化”时出错Xcode 6.3

我想添加一些新的语言到我的项目,但点击Editor -> Export For Localization -> Save ,我得到以下错误: Localization failed reading "/var/folders/rs/_qctp1n15gl81l8s0rm7njnh0000gn/T/Xcode3SourceStringsAdaptor-2E68CCA9-A2EA-4EE4-8ED1-A9250721AFC1/Localizable.strings" Please address the issue at file location 990 我已经在不同的项目中尝试过,有些工作得很好,有些有这个错误。 所有的项目都有相同的语言,并已经本地化,我只需要添加一些其他语言。 我不知道是什么原因或如何解决这个问题。 我很感激任何回应!

iOS:确定设备语言是否是从右到左(RTL)

有没有方法可以轻松确定设备的语言是否是从右到左(RTL)?

如何在应用程序中设置本地化的方向?(RTL,如果用户select阿拉伯语,selectLTR语言是英语)

我的应用程序必须支持阿拉伯语(从右到左的方向)和英语(从左到右的方向)语言,我需要设置用户界面,并根据用户从我的应用程序中select语言。 我将使用NSLayoutConstraint实现UI,以便根据前后约束自动更新UI。 现在我的问题是我怎么能做到这一点? 由于我的设备语言是说英语,从我的应用程序用户select阿拉伯语(仅限于我的应用程序只),所以我的stream量,UI,animation等应该是从右到左。 这里是方向的示例捕捉 谢谢

我可以将一个localizable.strings文件加载到iOS应用程序中吗?

比方说,我的应用程序只能用英文运行。 但我不想每次添加新语言时都要发布一个新版本。 我的build议是将这个localizable.strings文件远程加载到我的应用程序。 我的应用程序有加载文件从FTP站点的设施。 你们认为可以用这种方式加载语言吗? 或者,应用程序是否需要在编译时编译语言文件?

如何本地化初学者的ios标签string

你好,我很困扰在ios本地化的进程。 inheritance人我明白,如何去项目探索和设置不同国家的基地本地化, 如何创build一个string文件并将其设置为本地化到基本本地化中select的特定国家之一 如简体中文 键值对以及如何对应“HELLO WORLD”一词=“某种其他语言”; 在本地化的string文件中 如何编写一个简单的标签与编写你好的世界编写的应用程序不会在中文模拟器中更改为中文。 inheritance人,我认为我会出错。 我想我需要将屏幕上的string连接到我的本地化string文件中包含的string。 和我做每个语言的单独的string文件? 即时通讯寻找一个非常简单的应用程序存根,其中不包含任何东西,只有几个标签被翻译成不同的语言,所以我可以学习如何使它连接和工作,所以我可以用它在别的地方。 有一个中文的故事板,我必须做任何工作到那个? 还是留空了? 在阅读文档几小时之后,我似乎正在围绕着这个问题进行讨论,即使没有在这个问题上的苹果文档印象深刻,

将某些XIB / Storyboardstring标记为不可本地化

我正在使用XIB / Storyboard文件的Base Internationalization和使用XLIFF文件的“导出本地化”方法进行翻译。 我有一些标签,button等应该被翻译的文本,但我也有标签,我们使用一些占位符文本(如全名),所以你可以看到什么样的视图,当填充数据,但是这些标签总是以编程的方式来自sockets。 有没有办法将这个标签的.text属性在XIB中设置为非本地化,这样它不会在XLIFF(或者生成的.strings)文件中结束。 我知道,我可以删除文本 – 我也想过有一个前缀(如@“!DNL!”)意思是翻译者不应该本地化,但我希望只有一个标准的方式来做到这一点。

本地化的电话号码格式

我已经看了NSFormatter , NSNumberFormatter ,和其他格式类,但无法find解决scheme的构build。 我需要根据国家代码格式化电话号码。 例如,对于美国,我得到一个string,如+16313938888 ,我需要格式化为+1(631)393-8888 。 问题是我需要为所有格式做这个。 荷兰,我收到一个string+31641234567这将是+31(6)41 23 45 67 (类似的东西)。 对200多个国家的硬编码太乏味了,我真的不知道所有的格式规则。 在我看到的文档中是否存在某些东西,或者是否有人知道pipe理此类的开放源代码类?

iOS App Bundle中的多个本地化.strings文件

我有一个相当复杂的项目,由几个大型本地化子项目组成。 我的大部分子项目都是通过一个Localizable.strings文件本地化的 。 该文件被复制到一个SubProjectName.bundle目标中,该目标与主项目中的一个SubProjectName.a静态库一起使用。 这工作正常。 但是,我的一个子项目包含许多本地化的.strings文件。 无论设备(或模拟器)如何configuration, 该项目都无法读取除英语以外的任何语言的string 。 例如,这行代码总是返回英文string: [[NSBundle myResourcesBundle] localizedStringForKey:@"MY_TEST_STRING" value:@"" table:@"MyTable"] 其中MyTable对应于本地化为多种语言的MyTable.strings文件。 当我浏览.app包时,所有的本地化都在那里,坐在应用程序中的“MyBundle.bundle”资源中。 但是,以下代码正确地查找了所有本地化中给定string的翻译: for (NSString *language in [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]) { NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle myResourcesBundle] pathForResource:language ofType:@"lproj"]]; NSLog(@"%@: %@", language, NSLocalizedStringFromTableInBundle(@"MY_TEST_STRING", @"MyTable", bundle, nil)); } 所以,当这个包是实际的MyBundle.bundle/<LanguageCode>.lproj文件夹时,string查找工作。 但是显然,这打破了iOS提供的自动查找的目的。 (请注意,上面的[NSBundle myResourcesBundle]只是一个静态方便的方法来获取我的自定义的子项目的包)。 – 编辑 :我一直在试验这一些,如果我从我的子项目的捆绑删除en.lproj文件夹,然后它正确地使用设备或模拟器的区域设置。 例如,我有: MyApp.app/ | – MyResources.bundle/ | […]

如何使iOS应用程序名称本地化?

我试图find最简单的方法来本地化我的应用程序。 我正在使用sqlite,所以我基本上只需要切换我的数据库名称。 问题是应用程序的名称 – 可以从代码本地化,或者我必须为x语言制作x个应用程序,所以任何人都会在他/她的母语中有应用程序名称? 后者似乎已经拒绝了我的应用程序…任何人?