gpt4 book ai didi

objective-c - 可以在运行时添加.strings 资源文件吗?

转载 作者:技术小花猫 更新时间:2023-10-29 10:45:15 25 4
gpt4 key购买 nike

我知道在 Mac 应用程序中,可以将 .strings 文件添加到项目文件夹以添加本地化。

有什么方法可以将额外的本地化添加到应用程序(iOS 或 Mac OS)中,而无需在编译时从资源包中加载它们。比如,下载额外的本地化版本并将其存储在 iOS 上的/Documents 中?

最佳答案

是的,但这不是你想的那样。

你可以把一个字符串文件加载到一个NSString中,然后使用-[NSString propertyListFromStringsFileFormat]将它转换成一个字典。 .

这将为您提供一种在内存中存储自定义翻译字符串的方法。

至于实际使用它,您必须定义自定义翻译函数。 IE,你不能再使用 NSLocalizedString() 和 friend 了。幸运的是,genstrings(用于生成字符串文件的实用程序)允许您指定 custom function names :

genstrings -s "JPLocalizedString" ...

这意味着在代码中,您可以定义:

NSString* JPLocalizedString(NSString *key, NSString *comment) {
return [myLoadedStrings objectForKey:key];
}

以及 JPLocalizedStringFromTable()JPLocalizedStringFromTableInBundle()JPLocalizedStringWithDefaultValue()genstrings 将获取所有这些。 (换句话说,仅仅因为 NSLocalizedString 是一个宏并不意味着你的版本必须是)

如果您这样做并使用这些 JPLocalizedString 变体,那么 genstrings 仍会为您生成字符串文件(前提是您使用 -s 标志)。

调用这些函数后,您可以使用任何您想要的查找机制,如果找不到任何内容,则默认返回到 NSLocalizedString 版本。

关于objective-c - 可以在运行时添加.strings 资源文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com