Tag: localizable.strings

有没有办法使无效的NSBundle本地化caching,重新启动应用程序?

让我们假设我们可以改变运行时Localizable.strings,这是放置在NSBundle在当前,即使我们改变它的内容, NSLocalizedString会返回旧的(caching)的值。 运行应用程序 为特定的key1 < – value1获取LocalizableString 更改Localizable.strings key1 = value2 < – 在应用程序中执行某些操作来使本地化caching失效 – > 检查特定key1 == value2的LocalizableString 我已经尝试过了: [[NSBundble mainBundle] invalidateResourceCache] [UIApplication _performMemoryWarning] 试着看,如果有一些字典。 用于caching,在NSBundle的ivars中。 试图看到,在GNUStep实施NSBundle,但它不同于我们在iOS 6.0 我无法做到(按照定义): – 我不能swizzle [NSBundle localizableStringForKey:值:表] – 我不能改变macros – 一般来说,我不能影响任何原始项目代码,只有在第4步添加的东西 这仅用于开发目的。 所以,我不需要在AppStore中发布它,所以任何私有方法或解决scheme都可以。 所以,问题是。 可能是有人知道这样做的方式,或者有人给我另一个想法如何做到这一点? 谢谢。

使用Xcode 4.5本地化Localizable.strings

可能重复: 本地化 – 将其他语言添加到localizable.strings文件 使用Xcode 4.5 SDK iOS 6.0,我无法将本地化添加到Localizable.strings文件。 在Xcode 4.4.1中,在所有添加的语言的列表下添加了其他语言的“+”。 但是在Xcode 4.5中,我看不到它,除了默认的英文外,我不能添加任何其他的语言。 有人解决了这个问题? 谢谢 !

使用Objective-C在iPhone上本地化dynamic复数名词消息(例如,“处理5个项目”)

在我目前的应用程序中,我有显示消息的代码,例如“已处理的5个项目”。 要保持语法正确,即是否应该是“5 Item”或“5 Items”,我使用下面的代码: int numItems = 5; NSString *myString = [[NSString alloc] initWithFormat:@"%d Item%@ Processed", numItems, (numItems == 1 ? @"" : @"s")]; 这现在工作正常。 但是我正在本地化我的应用程序,并且希望确保文本在我正在翻译应用程序的所有语言的文法上是正确的。 我可以做这样的事情: int numItems = 5; NSString *myString = (numItems == 1 ? NSLocalizedStringWithTable(@"%d Item Processed", @"myApp", @"singular version") : NSLocalizedStringWithTable(@"%d Items Processed", @"myApp", @"plural version")); 但是,并不是所有的语言对于复数操作都有相同的规则! 例如(在这里原谅我非常具体的例子),用最后一位数字1(即21,31,但不是 11)的数字进行修饰的名词采用主格,以2-4结尾的数字采用所有格的单数,并且5+采用属格复数的情况。 这将需要更严肃的逻辑来处理如何以语法正确的方式复数化一个特定的名词,而这个逻辑与英语逻辑不相符合。 […]

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

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

iOS本地化:具有“\ uxxxx”格式的Unicode字符转义序列不起作用

我们在Localization.string文件中有键值对。 "spanish-key" = "Espa\u00f1ol"; 当我们获取和分配标签,然后应用程序显示为“Espau00f1ol”。 不起作用。 self.label1.text= NSLocalizedString(@"spanish-key", nil); 它以所需的格式显示。 self.label1.text= @"Espa\u00f1ol"; 当我们使用时,这里可能是什么问题 NSLocalizedString(@"spanish-key", nil)? 如果我们设置了\ u而不是\ u,那么它就起作用了。 "spanish-key" = "Espa\U00f1ol"; 何时使用“\ Uxxxx”和“\ uxxxx”?

NSLocalizedString只检索关键字,而不是Localizable.strings(IOS)中的值

我做了一个名为“Localizable.strings”的string文件,并添加了两种语言,如下所示: "CONNECTIONERROR" = "Check that you have a working internet connection."; "CONNECTIONERRORTITLE" = "Network error"; 我也将文件转换为Unicode UTF-8但是,当我创build一个像这样的UIAlertView: UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"CONNECTIONERRORITLE",nil) message:NSLocalizedString(@"CONNECTIONERROR",nil) delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 警报视图仅显示关键文本,而不显示值。 例如,如果我将UITextviews文本设置为NSLocalizedString(@“CONNECTIONERROR”,nil),但警报视图只显示密钥,则它可以工作。 任何人都知道什么是错的?