iOS本地化在Xcode中不适用于Objective-C中的自定义标签[关闭]

Posted

技术标签:

【中文标题】iOS本地化在Xcode中不适用于Objective-C中的自定义标签[关闭]【英文标题】:iOS localization does not work in Xcode for custom labels in objective-C [closed] 【发布时间】:2013-12-27 19:52:41 【问题描述】:

我实现了一个继承自 UILabel 的自定义视图

@interface SPLabel : UILabel

因为我想在我的应用程序中使用特定字体设置所有标签,因此我对这个新类所做的唯一事情就是在构造函数和 awakeFromNib 方法中设置我喜欢的字体.

然后,我在代码和情节提要中将这个 SPLabel 用作普通 UILabel(在情节提要中,我从检查器中修改 UILabel 对象的自定义类,或者我手动修改带有属性 customClass= 的标签“SMFLabel”)。

就我决定本地化应用程序并翻译它而言,一切正常。

故事板本地化过程运行良好,因为它为我创建了带有标签文本的所有字符串文件,并且它实际上在所有情况下都应用了翻译,但在 SPLabel 上。

是我遗漏了什么还是只是 Xcode 和 ios 无法处理?

我确定问题出在标签自定义上,因为只要我将自定义类删除到情节提要中的一个标签,翻译就会起作用。

感谢您的帮助

【问题讨论】:

使用外观代理设置所有标签的字体。如需进一步帮助,您必须向我们提供所有相关代码。 如果您还没有,您可能想在“AskDifferent”讨论中提出这个问题。 @Eric,这是一个编程问题。 *** 是正确的地方。 显示代码。你如何设置/创建标签? 【参考方案1】:

为了本地化您的自定义标签标题,您可以使用localizable.strings 文件,并通过代码设置其标题

NSString *NSLocalizedString(NSString *key, NSString *comment)

故事板本地化似乎不适用于某些元素,例如自定义标签或属性字符串。不知道是不是bug。

【讨论】:

感谢您的回答。这是您已经意识到的一些行为吗?不幸的是,我想我会按照您的建议动态设置情节提要中所有 UILabel 中的文本。但这真的需要我很长时间。 是的,我在今年早些时候遇到了这类问题,特别是属性字符串。但是 se 有许多其他示例,例如***.com/questions/15075165/… 关于 UISegmentedControl 和 UISearchBar。看来,至少目前,Apple 希望您以某种方式本地化某些组件,而通过 IB 的本地化(与 XCode 5 相比早期版本的改进)还不适用于所有内容。 好的,看来唯一的解决方案是使用动态本地化字符串。谢谢。 任何人请提供上面的swift代码:(

以上是关于iOS本地化在Xcode中不适用于Objective-C中的自定义标签[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

UITextView - 在 XCode 5 上设置字体不适用于 iOS 6

UITextView - 在 XCode 5 上设置字体不适用于 iOS 6

iOS 7.1 模拟器不适用于 Xcode 7.1

在 App Purchase 中不适用于 Xcode 5、iOS 7 模拟器

FCM 自定义声音通知不适用于 IOS Xcode

CCCrypt 不适用于 iOS 7 的 xcode 5