我怀疑你必须为 iOS 支持的语言环境硬编码这些数据。完全避免对任何语言环境进行硬编码需要付出一些额外的努力。
iOS 大量使用来自CLDR的区域敏感数据,并且支持您的区域设置,您不必本地化这些字符串,因为这些相对日期名称的翻译(这是 CLDR 术语中的类别,涵盖诸如“今天”、“昨天”之类的词, 和“明天”)计划成为语言环境数据的一部分。一个显示德语与英语数据对比的示例:
<fields>
...
<field type='day'>
<displayName>Day</displayName>
<relative type='-1'>Yesterday</relative>
<relative type='0'>Today</relative>
<relative type='1'>Tomorrow</relative>
</field>
...
</fields>
<fields>
...
<field type='day'>
<displayName>Tag</displayName>
<relative type='-2'>Vorgestern</relative>
<relative type='-1'>Gestern</relative>
<relative type='0'>Heute</relative>
<relative type='1'>Morgen</relative>
<relative type='2'>Übermorgen</relative>
</field>
...
</fields>
另外,我发现它NSDateFormatter
有两个称为的属性setDoesRelativeDateFormatting
,doesRelativeDateFormatting
它们很可能为您提供了那些受支持的语言环境所需的东西。我不是 iOS 开发人员,所以我不能肯定地说。
虽然 CLDR 中提供了数据ka-KE
,但由于 iOS 尚不支持此语言环境,因此您必须经过一些步骤才能使其工作;例如,为 iOS 构建ICU,这在此答案中有详细介绍,或者使用此处提供的静态构建。