gpt4 book ai didi

objective-c - 使用 Nibs 进行国际化。这真的是个好主意吗?

转载 作者:太空狗 更新时间:2023-10-30 03:35:09 26 4
gpt4 key购买 nike

在 Apple Docs 中,他们说 Nib 通过将 Nib 翻译成多种语言来实现国际化。我现在正在考虑一个更糟糕但更现实的场景:你制作了一个巨大的用户界面。然后你把它翻译成 25 种语言。所以你会得到 25 个不同的 Nib 。您还会在样式和定义 UI 方面获得巨大的冗余:相同内容的 25 倍。相同的绑定(bind),相同的一切。只是文本不同。

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

现在,请告诉我我错了。 Apple 不会假设我们做了如此疯狂的事情?

最佳答案

本地化情况并不理想。虽然 Cocoa UI 元素在调整大小方面支持一些动态灵 active (调整标志),但很难在 View 中安排它们以适应任何大小的文本。

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

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

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

最后,一些开发人员甚至将他们自己的重新布局应用于 nib 中的元素,针对已在其上设置的字符串的大小优化它们。这将是上述策略的改进,其中使用单个 Nib 并在运行时对其进行操作以实现所需的效果。

关于objective-c - 使用 Nibs 进行国际化。这真的是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/598020/

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