gpt4 book ai didi

objective-c - 在 iOS 中本地化数字

转载 作者:可可西里 更新时间:2023-11-01 03:32:28 24 4
gpt4 key购买 nike

简单地说,我有一个正整数 [9, 393, 3, 993],我想将它本地化为某种语言 [٩, ٣٩٣ ,٣ ,٩٣٩]。

如果我使用 NSNumberFormatter,它会根据用户的语言环境对数字进行本地化。但是,我想覆盖它并选择任何语言环境来将数字翻译成。

我尝试了以下方法,但有效:

// user locale is @"en"
NSNumberFormatter* formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ar"]];


[formatter setMinimumIntegerDigits:padding];
return [formatter stringFromNumber:@(num)];

返回的字符串为英文。


请注意,我有一个与 NSDateFormatter 非常相似的代码片段,但它按预期工作。 NSDateFormatter 对象遵守设置的语言环境。

最佳答案

我似乎遇到了一个非常特殊的情况,应用程序的语言环境会被吓坏。

我正在使用如下方式更改应用程序的默认语言环境:

[[NSUserDefaults standardUserDefaults] setObject:@[@"ar"] forKey:@"AppleLanguages"];

然后,我尝试获取首选语言并使用以下方法从中创建一个语言环境对象:

NSString* langPrefix = [NSLocale preferredLanguages][0];

最后,从返回的对象创建一个新的 NSLocale 对象。测试代码时,我会在应用程序中更改语言,然后通过 Xcode 关闭应用程序。我假设 NSUserDefaults 不会同步,但即使我调用了 synchronize 方法,它仍然会搞砸。

底线是,测试本地化应该通过部署应用程序来完成,并且在设备与 Xcode 断开连接后,应用程序才能正确运行所有生命周期阶段。

关于objective-c - 在 iOS 中本地化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13749961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com