问题标签 [nslocale]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1343 浏览

ios - NSDateFormatter:仅当应用程序针对该语言进行本地化时才显示本地化日期

我目前正在为 iPhone 编写一个与日期密切相关的应用程序。我NSDateFormatter用来将日期转换为字符串。方便地NSDateFormatter根据区域格式自动创建用户语言的字符串。因为我无法在所有可能的语言和地区本地化我的应用程序,所以该应用程序仅本地化为英语、德语、西班牙语和其他一些语言。

例如,当应用程序为法语用户运行时,应用程序默认为英语。这很好,但日期仍将使用法语进行转换。这会产生像“Month: Juillet”这样的字符串,而不是“Month: July”。

如何使NSDateFormatter始终使用应用程序运行的语言?我知道我可以NSLocalizedString()用来本地化NSLocale标识符,但这会导致不正确的区域设置。

当用户通常使用“en_GB”区域并且我的应用程序通常针对英语进行本地化时,我希望NSDateFormatter使用“en_GB”而不仅仅是“en”或“en_US”。当用户运行法语时,我希望语言环境为“en”,如果他在“de_DE”区域运行应用程序,我也希望日期格式为“de_DE”,因为该应用程序支持德语。

问候, 法比安

0 投票
1 回答
391 浏览

objective-c - 时区支持值-objective-c-cocoa-touch

我一直在寻找一段时间,并进行了大量的研究和试验,但我找不到一种方法来检索存储在 iOS 设备上的时区支持的用户设置中的值。

我研究了 NSTimeZone 便捷方法 +systemTimeZone、+resetSystemTimeZone、+defaultTimeZone、+localTimeZone。我什至完全理解它们之间的区别,以及我们如何为每个应用程序设置自己的默认时区,以及首次调用默认值如何返回 system. 然后系统会被缓存,如果设备更改时区,则需要重置。

问题是,systemTimeZone 始终是设备实际所在的位置,而不是在时区支持下的设备设置中设置的值。

我什至研究过 [[NSCalendar currentCalendar] timeZone] 以及 [[NSCalendar autoupdatingCurrentCalendar] timeZone]]。

我什至试过 [[[NSLocale currentLocale] objectForKey:NSCurrentCalendar] timeZone] 和 [[[NSLocale autoupdatingCurrentLocale] objectForKey:NSCurrentCalendar] timeZone]

没有返回设备的 Settings.app -> Mail, Contacts, Calendars -> Time Zone Support -> Time Zone 的值。

有谁知道如何检索 Settings.app -> Mail, Contacts, Calendars -> Time Zone Support -> Time Zone 设置的值?

谢谢和干杯!

0 投票
1 回答
423 浏览

iphone - 在iphone中显示中文日期

如何用中文显示当前日期。我收到英文日期,但我需要在 iphone 中以中文显示。

0 投票
1 回答
812 浏览

objective-c - 在iOS中找出货币中的小数位数

我使用 NSNumberFormatter 以本地化方式格式化货币,它工作正常。但我想覆盖它并让用户选择覆盖小数分隔符后的位数。

如何找出 NSNumberFormatter 将用于某种货币的位数?我查看了 NSLocale 对象,但没有一个键告诉我这一点。

我怎样才能找出像 NSNumberFormatter 似乎知道的货币的正确小数位数?

0 投票
6 回答
6859 浏览

objective-c - NSLocale 货币符号,显示在金额值之前或之后

我正在使用StoreKit在我的应用程序中实现应用内购买商店。

我有一个定制设计,这意味着价格的价值应该是白色的和大的,货币符号更小、更暗并与价格价值的顶部对齐。

NSLocale通过使用inSKproductpriceLocale属性和属性中的价格值,我可以毫无问题地获取货币符号price

我的问题是知道何时应该将货币符号放在价格之前以及何时将其放在价格之后。

例子:

  • 5,99 美元
  • 0,79€</li>

我可以很容易地使用NSNumberFormatter“开箱即用”来解决这个问题,但是由于我的布局为价值和货币符号定义了不同的样式,我发现自己处于需要更多手动解决方法的位置。

有什么想法吗 ?

0 投票
1 回答
290 浏览

ios - language settings in ios

I have one little trouble. I created a Localizable.string file for a language which is not in the list of available languages in the General settings of the device.

How to force an app to read from it even if language is set to English? I can set Region Format for this country but not the language.

Thanks

Marko

0 投票
1 回答
487 浏览

objective-c - NSLocale - 无效的标识符

如果我尝试使用某个语言环境标识符初始化 NSLocale,我如何判断它是否是合法标识符?无论我传入什么标识符,即使是垃圾标识符,NSLocale 仍然会被初始化为某种东西。

例如,如果您传入“ar_NO”,一个语言为阿拉伯语的语言环境和一个(无效)国家代码 NO,我得到的 NSLocale 对象似乎是合法的。例如,如果我-[NSCalendar firstWeekday]从具有该语言环境的日历调用,它将返回星期一。我的问题是,这是从哪里来的?如果 iOS 不能使用给定的标识符,它是否会退回到另一个语言环境?我认为它会回到基础“ar”,但“ar” firstWeekday 是星期六,所以情况并非如此。

注意:我知道标识符是由 ISO BCP 47 规范指定的,并且我知道该[NSLocale availableLocaleIdentifiers]功能,但这并没有真正帮助我,因为如果我使用不在该列表中的标识符,我仍然会得到一个 NSLocale。

有人有什么想法吗?提前致谢

0 投票
1 回答
290 浏览

ios - 无法在 iOS 中查询当前用户语言

我正在尝试确定 iOS 中的用户语言。StackOverflow 有几个关于这个主题的答案,这对我有很大帮助,比如这个:Getting current device language in iOS?

我可以成功地检索到我在 NSLog 中寻找的值(即“en”或“de”),但每次我用 if/then 语句质疑它时,它似乎都不起作用。我的 viewDidLoad 中有这个用于测试:

无论设备设置为英语还是德语,都只显示最后一个 else 语句。然而,NSLog 正确显示 en 或 de。

我究竟做错了什么?

0 投票
9 回答
34844 浏览

ios - 从IOS中的国家名称获取国家代码

我正在从服务器中检索一个英文国家名称。例如,“西班牙”

我想做的是,假设国家名称要用英文写,得到国家代码。

我应该怎么办?我发现从国家代码中获取国家名称非常容易,但我不知道如何进行相反的操作。

非常感谢。

0 投票
1 回答
210 浏览

ios - 为什么 Apple 使用 NSString 对象而不是枚举作为参数?

例如,为什么要使用这个:

而不是这样的:

似乎它可以防止很多错误,因为在 Xcode 中键入 NSString 时,没有自动更正,而 Xcode 将自动更正/自动填充枚举。此外,我想不出在枚举或常量上使用 NSStrings 的理由。例如,随着新版本 SDK 的发布,Apple 可以添加新的标识符,但他们也可以使用枚举来执行此操作。枚举相对于字符串常量的另一个好处是可以更容易地比较枚举:

此外,对于其他方法,Apple 使用枚举或特定对象作为参数:

如果他们使用字符串作为 localeIdentifier,为什么不这样做:

似乎他们只是不一致。