【问题标题】:Localized XIB labels本地化的 XIB 标签
【发布时间】:2011-09-19 16:55:29
【问题描述】:

我查看了不同的帖子和文章,当然还有苹果文档,通常足以用于本地化目的。

但是,我是使用 IB 的新手。

为了本地化 XIB 文件,我知道您可以为每种语言创建一个版本……但任何人都知道是否可以从 UIViewController 进行管理。

我更喜欢使用 .strings 文件来管理本地化,从而为每种新语言创建不同的 XIB 文件。

我们可以从 UIViewController (viewDidLoad) 中的 XIB 文件中检索 UILabel 吗?

感谢您的宝贵时间,

伊万

【问题讨论】:

    标签: iphone localization xib localizable.strings


    【解决方案1】:

    我没有测试它,但我们可以只继承 UILabel 并重载

    - (void) setText:(NSString*) theString
    

    方法

    - (void) setText:(NSString*) theString
    {
        [super setText: NSLocalizedString (theSrting);
    }
    

    或者类似的东西?

    【讨论】:

      【解决方案2】:

      您不能更改 XIB 文件,但在调用 viewDidLoad 时,如果 UILabelXIB 文件的一部分,则加载的视图控制器将已经是视图层次结构的一部分。除非您直接为UILabel 实例设置了IBOutlet,否则您将不得不在视图层次结构中搜索特定标记,例如tag。一旦你得到标签,它应该是本地化字符串的直接分配。

      label.text = NSLocalizedString(.., ..);
      

      【讨论】:

      • 我看到了一个之前的答案,完全是解决方案。 mobileorchard.com/… 虽然我还有其他问题...我正在使用最新版本的 XCODE 和接缝进行开发,但清理 nib 生成的文件时出现问题...我已经更改了 XIB 内容,但是当应用程序运行时在模拟器上我总是看到以前的版本:SSS 谢谢!!
      • 你是说虽然你这样做了,但你看到的内容是一样的?您是否尝试过清理您的构建和derived data
      • 我尝试使用 Command + Shift + K 和 Alt + Command + Shift + K 得到相同的结果:SS。我还删除了派生数据...但没有成功。
      • 嗯,很难判断手头的信息有什么问题。如果我能看看这个项目,我可以提供进一步的帮助。还有一件事,你有没有通过设置改变你的语言环境?
      • 完成。非常感谢您的时间。问题出在我所做的一项测试中,我将 xib 配置为本地化文件,尽管我删除了我的 en.lproj 文件夹中存储的 Xcode 版本,但我的 xib 文件的最后一个版本。我移动到主文件夹并开始工作!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2012-02-05
      • 2018-11-22
      • 2013-07-10
      相关资源
      最近更新 更多