objective-c – 与Nibs的国际化.这真的是个好主意吗?

objective-c – 与Nibs的国际化.这真的是个好主意吗?,第1张

概述在Apple Docs中,他们说Nib只需将Nib翻译成多种语言即可实现国际化.我现在想的是一个更糟糕但更现实的场景:你已经建立了一个庞大的用户界面.然后你将其翻译成25种语言.所以你得到25个不同的笔尖.您还可以在样式和定义UI方面获得巨大的冗余:相同的东西的25倍.相同的绑定,同样的一切.只是文字是不同的. 所以,我真的认为这是一个非常糟糕的方法.相反,我宁愿只链接资源包中的所有文本或类似的东 在Apple Docs中,他们说Nib只需将Nib翻译成多种语言即可实现国际化.我现在想的是一个更糟糕但更现实的场景:你已经建立了一个庞大的用户界面.然后你将其翻译成25种语言.所以你得到25个不同的笔尖.您还可以在样式和定义UI方面获得巨大的冗余:相同的东西的25倍.相同的绑定,同样的一切.只是文字是不同的.

所以,我真的认为这是一个非常糟糕的方法.相反,我宁愿只链接资源包中的所有文本或类似的东西.只是一个带有文本字符串的文件,它在运行时从相应的语言资源链接.然后你只在文本中有“麻烦”链接,这真的没有任何乐趣.但是,您可以对UI ONCE进行更改,而无需一遍又一遍地执行相同的步骤25次.每个笔尖都有一个新的绑定.那会太可怕了!

现在,请告诉我,我错了. Apple不假设我们做了一些如此狡猾的事情吗?

解决方法 本地化情况并不理想.尽管 Cocoa UI元素在其大小调整(ausosizing标志)中支持一些动态灵活性,但是很难将它们安排在视图中,以便它们可以容纳任何大小的文本.

正如Heng-Cheong所指出的,这通常意味着在每个本地化的基础上需要对布局进行一些调整. Apple支持一个名为增量本地化的流程,该工具名为“ibtool”,与您的开发人员工具捆绑在一起.这个过程远非直观,似乎有一些微妙的错误,但它有助于使过程更容易,比如,分别手动维护25个不同的笔尖.该过程主要涉及将您对主笔尖所做的更改映射到其他本地化的笔尖. Apple更详细地描述了该过程:

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html

为了避免这种痛苦的过程,有些人采取了不同的方法.如果您在视图布局上妥协,则可以实现每个UI元素都适应最大本地化字符串的情况.使用文本字段等的对齐功能,您可以因此安排可接受的布局,尽管使用最大字符串进行本地化所需的额外间距通常会导致字符串最短的语言的布局不太理想.如果采用这种方法,则需要设计nib,以便控制器类在运行时使用正确的本地化字符串填充nib的UI元素.

最后,一些开发人员甚至将自己的重新布局应用于笔尖中的元素,并根据已设置的字符串大小对其进行优化.这将是上述策略的改进,其中在运行时使用并 *** 纵单个笔尖以实现期望的效果.

总结

以上是内存溢出为你收集整理的objective-c – 与Nibs的国际化.这真的是个好主意吗?全部内容,希望文章能够帮你解决objective-c – 与Nibs的国际化.这真的是个好主意吗?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1021721.html

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

发表评论

登录后才能评论

评论列表(0条)

保存