【问题标题】:How to use localized UIImage with specific language?如何使用特定语言的本地化 UIImage?
【发布时间】:2011-11-05 16:06:54
【问题描述】:

我的应用中有设置,并希望让用户能够切换应用的语言。语言可能与设备设置不同。

对于 NSStrings,我找到了解决方案,但如何使用 UIImages 来解决?

我已经本地化了我的所有图片,但现在它们的选择取决于设备语言。我该怎么做才能让它工作?我现在唯一的选择是将名称放在 Localizable.strings 中并从那里加载它们。

有没有更好的方法来做到这一点?

谢谢 ;-)

【问题讨论】:

    标签: objective-c ios localization uiimage


    【解决方案1】:

    类似:

    • - [NSBundle URLForResource:withExtension:subdirectory:localization:]
    • - [NSBundle pathForResource:ofType:inDirectory:forLocalization:]

    应该这样做。

    然后使用类似的东西:

    • -[UIImage initWithContentsOfFile:]
    • -[UIImage initWithData:]

    用于创建UIImage

    【讨论】:

    • 这看起来非常好,我认为它应该可以工作,但它没有。也许我做错了什么,但该方法总是为此返回 nil: [[[NSBundle alloc] init] pathForResource:@"test" ofType:@"png" inDirectory:@"" forLocalization:@"en"];
    • @MoFuRo 您需要使用该类提供的指定初始化程序或便利构造函数。在这种情况下,NSBundle 需要知道路径、url 或 bundle id 才能返回能够定位其资源的有效 bundle 实例。 +[NSBundle mainBundle] 返回您的应用程序包,这通常是您想要的。所以你可以试试这个:[[NSBundle mainBundle] pathForResource:......
    • 看起来好多了,但它没有将 en.proj 添加到路径中。这是调用:'[[NSBundle mainBundle] pathForResource:@"test" ofType:@"png" inDirectory:nil forLocalization:@"en"]'。
    • 也许我会将 .lproj 附加到语言中,如果这不起作用,则将其用作子目录。
    • 是的,如果我发布的解决方案由于某种原因不起作用,您可以从本地化目录创建一个包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2013-09-21
    相关资源
    最近更新 更多