objective-c – 在plist文件中的Xcode 4.6本地化

objective-c – 在plist文件中的Xcode 4.6本地化,第1张

概述我已经开始在我的项目中添加更多语言并获得了字符串&图形本地化没有太大麻烦. 我有一个最后一个问题,它是一个plist文件. 此plist文件包含应用程序的默认类别名称,并在字典中填充英语字符串. 我的问题是:有没有办法本地化plist文件?我虽然要向plist添加本地化字符串,但无法弄清楚如何. 我不想在代码中决定使用plist文件,因为默认的plist文件在首次使用时被用户覆盖. 本地化的Pli 我已经开始在我的项目中添加更多语言并获得了字符串&图形本地化没有太大麻烦.

我有一个最后一个问题,它是一个pList文件.

此pList文件包含应用程序的默认类别名称,并在字典中填充英语字符串.

我的问题是:有没有办法本地化pList文件?我虽然要向pList添加本地化字符串,但无法弄清楚如何.

我不想在代码中决定使用pList文件,因为默认的pList文件在首次使用时被用户覆盖.

解决方法 本地化的PList文件

这里更容易的解决方案是本地化整个pList.通过这样做,您将为每种受支持的语言使用不同的pList文件.

在项目中选择pList文件,然后在@R_404_6852@ Inspector菜单中选择Localize.

它将为每种支持的语言创建一个包含PList文件的新文件夹.

从:

dummy.pList

至:

> en.lproj>  >  dummy.pList> es.lproj>  >  dummy.pList> de.lproj>  >  dummy.pList

本地化的PList内容

另一种解决方案是在pList中使用本地化字符串,并在打印出提取的字符串之前简单地调用NSLocalizedString.

想象一下,你有一个像这样的PList:

您可以通过将键添加到Localizable.strings文件来简单地本地化其字符串.例如,西班牙语:

"My menu Title" = "Mi título del menú";"My menu description" = "Mi descripción del menú";

或者,我的建议,将您的本地语言字符串从PList移动​​到字符串文件,并用可本地化的键替换PList字符串:

和Engligh的Localizable.strings:

"MY_MENU_Title" = "My menu Title";"MY_MENU_DESCRIPTION" = "My menu description";

和西班牙语:

"MY_MENU_Title" = "Mi título del menú";"MY_MENU_DESCRIPTION" = "Mi descripción del menú";

我发现最新的语言更容易维护,更容易本地化,因为所有必需的字符串都在同一个文件中.

最后更改您的代码以使用NSLocalizableString而不是从PList文件中读取的纯字符串.例如,假设您有代码:

NSDictionary* pListDict = [[NSDictionary alloc] initWithContentsOf@R_404_6852@:[[NSBundle mainBundle] pathForResource:@"menuElements" ofType:@"pList"]];menuTitleLabel.text = pListDict[@"menuTitle"];menuDescriptionLabel.text = pListDict[@"menuDescription"];

只需将其更改为:

NSDictionary* pListDict = [[NSDictionary alloc] initWithContentsOf@R_404_6852@:[[NSBundle mainBundle] pathForResource:@"menuElements" ofType:@"pList"]];menuTitleLabel.text = NSLocalizedString(pListDict[@"menuTitle"],nil);menuDescriptionLabel.text = NSLocalizedString(pListDict[@"menuDescription"],nil);

如果这是你的情况,你可以完全摆脱pList文件:

menuTitleLabel.text = NSLocalizedString(@"MY_MENU_Title",nil);menuDescriptionLabel.text = NSLocalizedString(@"MY_MENU_DESCRIPTION",nil);
@H_301_94@ 总结

以上是内存溢出为你收集整理的objective-c – 在plist文件中的Xcode 4.6本地化全部内容,希望文章能够帮你解决objective-c – 在plist文件中的Xcode 4.6本地化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1061109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存