NSLocalizedString的自定义宏

时间:2012-03-23 18:03:25

标签: iphone localization

这个问题是关于应用内部的本地化。

有几个博客/教程真的有帮助,并展示了这样做的方法。 我提到的那些实现它如下:

http://learning-ios.blogspot.in/2011/04/advance-localization-in-ios-apps.html

http://www.pastie.org/1976594

我能够实现它(在这些博客的帮助下......感谢他们)。

但我正在尝试一件事,我对下面的内容有点怀疑

我正在尝试创建与NSLocalizedString相同的宏 [即NSString * NSLocalizedString(String * key,String * value)]

但使用不同的宏名称 就像是 [NSString * getLocalizedString(String * key,String * value)]在我的类中尝试用我自己的宏替换NSLocalizedString方法。

但我有一个严重的疑问/担忧,这种技术/方式是否得到了APPLE的认可?

我的意思是......可以/这会违反不使用私有API的苹果条款或者覆盖相同的那种吗?

因为我已尝试在各种博客中检查相同的内容..但无法找到相同的具体答案。

您能否确认这是否会违反APPLE的T& C或者我可以继续使用自定义宏方法吗?

如果可能,你还可以提供我能更好理解的链接/博客/教程吗?

提前多多感谢。

2 个答案:

答案 0 :(得分:1)

我不知道这是如何使用任何类型的私有API。 -[NSBundle localizedStringForKey:]是一个公共API。您可以编写所需的任何宏或函数来调用它。如果需要,你甚至可以#undef NSLocalizedString并用你自己的定义替换它,它只是一个C宏。

答案 1 :(得分:1)

这不违反苹果条款。实际上,他们建议您这样做来测试您的应用并确保您翻译了所有字符串。他们在2012年WWDC视频,会议244国际化技巧和诀窍23:50的时候演示了如何做到这一点。

enter image description here

https://deimos.apple.com/WebObjects/Core.woa/BrowsePrivately/adc.apple.com.16351493766.016351493772.16495242617?i=1461522491