0

有没有办法本地化包含分层或分组数据的 plist?

例如,如果 plist 包含:

  • 第一册(字典)
    • 键(字符串)
    • 名称(字符串)
    • 描述(可本地化的字符串)
  • 第 2 册(字典)
    • 键(字符串)
    • 名称(字符串)
    • 描述(可本地化的字符串)
      (等等...)

出于示例的目的KeyName不应翻译 and (并且最好不要在多个本地化属性列表中重复)

是否有一种机制可以在Description不本地化整个属性列表的情况下为可本地化的字段提供本地化?我想到的唯一其他策略是将查找键存储在description字段中,然后使用它通过 NSLocalizedString(...) 检索本地化文本

plist 是静态的,现在与应用程序包一起分发。

谢谢。

4

1 回答 1

0

这是静态 plist 还是动态 plist?您希望从哪里获得本地化字符串?NSLocalizedString()从包中的 Localizable.strings 文件中获取它。NSLocalizedString()如果 plist 是静态的,并且您可以将所有本地化内容与您的应用一起发布,那么您可以使用描述作为键并使用它的变体之一来查找它。

如果 plist 是动态的,那么您可以将每个 Description 转换为dict从语言环境标识符到字符串的映射。您会使用[NSBundle preferredLocalizationsFromArray:[theDict allKeys]]. 这样做的缺点是,如果同一描述用于多本书,则必须重复其本地化。

要解决这个缺点,您可以将本地化放入 plist 的单独部分中。基本上,这将是一本字典。外部字典的键可以是语言环境标识符,内部字典的键可以是英文字符串,内部值可以是本地化字符串。(变体 1:使用查找键而不是英文字符串。变体 2:反转内部和外部字典,因此英文字符串是外部的,区域设置 ID 是内部的。)

于 2012-04-10T00:27:38.597 回答