为每个目标创建不同的可本地化文件
Posted
技术标签:
【中文标题】为每个目标创建不同的可本地化文件【英文标题】:Create different Localizable files for every target 【发布时间】:2015-02-10 12:26:56 【问题描述】:我想问你一个与本地化相关的 ios 应用程序的问题。我的应用程序有一些目标,我们使用为每个客户个性化的相同应用程序库,这意味着每个目标都有自己的设计、颜色、字体,并且希望每个目标视图和标签都有不同的文本。
我们有一个参数化来维护应用程序的这种个性化,但我在本地化方面遇到了问题。我希望为不同语言的每个目标提供一组不同的本地化字符串,因为可能在一个目标中,视图必须显示“自行车站”,而在另一个目标中显示“汽车站”(以相应的语言)。
我可以为每种语言创建一个唯一的本地化文件,使用不同的参数为每个目标字符串添加一个前缀,但这并不那么可维护。我试图找到一种方法来保持结构简单,每个应用程序都使用相同的文字,只更改每个客户想要的每个标签上的文本。
我尝试定义两个不同的 Localizable 文件,并将它们中的每一个分配给一个唯一的目标,如下图所示
但是当我打开我的第二个目标时,任何可本地化的字符串都会被识别
您知道我的问题是什么,或者我该如何为每个目标定义多种语言的不同本地化文件?
提前感谢您的帮助:)
【问题讨论】:
【参考方案1】:我有一个 Translation
类,其中我有一个 forKey:NSString
方法。
NSString *text = NSLocalizedStringFromTable(key, @"Localizable_base", nil);
text = NSLocalizedStringWithDefaultValue(key,
@"Localizable_target",
[NSBundle mainBundle],
text,
nil);
if(!text)
text = key;
首先获取默认值。然后将其作为默认值传递给特定的目标。如果您有未在 base 中列出的字符串,请首先获取特定于目标的字符串,检查是否有值,如果没有,请将 text
设置为默认值。
您还可以查看我的旧问题,该问题必须针对目标处理不同的语言: Allow only specific translations for different schemes/targets
【讨论】:
以上是关于为每个目标创建不同的可本地化文件的主要内容,如果未能解决你的问题,请参考以下文章