【问题标题】:StoryBoard Localization with IBInspectable setter in Objective C Extensions在 Objective C 扩展中使用 IBInspectable setter 进行 StoryBoard 本地化
【发布时间】:2015-09-09 10:12:52
【问题描述】:

根据this blog post,您可以使用 IBInspectable 扩展快速本地化故事板。我们可以单独依赖 Localizable.strings 文件,而不用本地化故事板并担心字符串的多个文件。

所以我的问题是如何用目标 c 实现相同的目标?如果答案是不可能的,那么将所有面向 UI 的字符串保存在一个文件中并获取它的最佳方法是什么。

【问题讨论】:

  • 重新表述我的问题:我不想使用两个不同的字符串文件,比如一个用于情节提要,一个用于 .m 文件。那么有没有办法只使用一个字符串文件进行本地化。
  • .strings 文件的数量无关紧要,因为从技术上讲,您应该通过在 Xcode 中选择项目文件来导出 Xliff 文件(其中包含所有 .strings 文件中的所有内容),然后编辑器 -> 本地化导出

标签: ios objective-c uistoryboard xcode-storyboard localizable.strings


【解决方案1】:

您知道您可以像在 Swift 中一样使用来自 Objective-C 的这些扩展,对吗? 无论如何,要在 Objective-C 中做同样的事情,您只需使用 IBInspectable 属性创建类别。

@interface UILabel(LocalizationUtils)
@property (nonatomic, weak) IBInspectable NSString *localizedText;
@end

@implementation UILabel(LocalizationUtils)

- (void)setLocalizedText:(NSString*)localizedText {
    self.text = NSLocalizedString(localizedText, @"");
}

- (NSString*)localizedText {
    return @"";
}

@end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    相关资源
    最近更新 更多