Pet*_*sey 19 macos cocoa localization xib
我们是一个由志愿者本地化的开源Mac应用程序.这些志愿者将在软件的特殊本地化版本(带有未剥离的笔尖)上完成工作,然后将更改发送给原始的xib和字符串文件.
问题在于,虽然有一种方法可以集成字符串更改而不会消除以前的大小更改,但我看不到集成新字符串和大小更改的方法(就像我们添加或替换视图时一样).
我能看到的唯一方法就是让本地化程序直接使用原始xib并向我们发送差异.这意味着他们必须下载整个源代码,而不仅仅是发布的可本地化版本,在Xcode和IB中工作,并自行运行diff命令(每个xib)或安装并使用Mercurial.
基于xib的应用程序有没有更好的方法?
Wil*_*ley 33
更新 2014年1月:Apple的"自动布局"代码与他们的"基础"本地化内容相结合,充分利用了我的想法并对其进行了改进.我建议不要使用我在这个答案中谈到的旧工具.但是,男人也是我的权利!
我强烈建议强烈反对本地化中的帧更改.我知道这与Apple的建议背道而驰,但允许框架更改有很多问题 - 你最终会遇到十亿个边缘案例.
想象一下,您的应用中有10个XIB,并且您支持12种语言.现在,你有120种不同的布局可以支持.你不能这样做.
更改字符串,将视图保留在原来的位置.如果需要,让所有语言都变得更大.听起来这应该不起作用,但确实如此.(我用一种以10种左右的语言本地化的应用程序赢得了三项Apple设计奖.)
具体细节:
对于收音机和复选框,只需让它们向右延伸,超出最后一个英文字符.这也为不精确的鼠标提供了一个很好的大着陆区域.
对于按钮,它们无论如何都应该是宽的,因为在按钮中间让文本变得狭窄似乎永远不会好看.
对于tableview列上的标题,如果需要,您应该在加载时自动调整大小.
对于解释性文本,您应该在右侧有一些额外的空间,也许还有一个额外的行.它只是让XIB的英文版看起来不那么杂乱.当然,德国人会看到稍微紧张的XIB,但是,嘿,他们是德国人 - 他们可能已经习惯了.甚至可能还有一个德语单词."Deutscheninterfakkenclutterlongen."
如果文本字段居中,则只需在两侧添加相等的空格.没有理由不这样做.
我将这些脚本与我的XIB中的所有字符串混合在一起并将它们放在.strings文件中,然后在运行时动态地放回字符串,这样任何人都可以在没有任何特殊工具的情况下本地化我的应用程序.只需放入一堆.strings文件并运行它!
博客文章包括完整来源:[迷失在翻译]¹.
我承认我不太熟悉本地化 Mac 应用程序的过程。但我确实遇到过一个脚本,它是Three20 iPhone 库的一部分,看起来可能很有用:diffstrings.py是一个 Python 脚本,它“将您的主要语言环境与所有其他语言环境进行比较,以帮助您确定需要哪些新字符串”。已翻译。它输出可以翻译的 XML 文件,然后合并回您的字符串文件中。”
编辑:作为Wil Shipley对这个问题的回答的同伴,我将添加一个指向他刚刚撰写的博客文章的链接,该文章更详细地介绍了本地化,并提供了他为简化该过程而构建的一些工具。
| 归档时间: |
|
| 查看次数: |
3005 次 |
| 最近记录: |