代码之家  ›  专栏  ›  技术社区  ›  M4N

本地化基本规则

  •  1
  • M4N  · 技术社区  · 5 年前

    前几天我刚把我的第一个本地化应用程序提交到iPhone应用商店。我决定这样做是为了了解应用程序的本地化,因为我的应用程序非常简单,很容易用我平庸的法语进行本地化。我知道我并没有“正确”地做每件事,但我从一次做中学到了很多。我想继续为我未来的所有应用程序做这个。

    首先,我学会了在代码中考虑本地化,但在应用程序准备发布之前不要开始本地化。我花了太多时间在2个UI文件中做一些小的调整。

    您最喜欢的本地化基础、基本规则和最佳实践是什么? 我想的主要是像我这样的小爱好开发人员,尽管来自大联盟的东西也会很有趣。

    3 回复  |  直到 12 年前
        1
  •  4
  •   Mike Sickler    14 年前

    对我来说最大的是 不连接字符串 :

    坏的:

    "You have " + messageCount + " messages"; 
    

    好:

    "You have {0} messages" 
    

    单词顺序因语言而异,因此您不能假定动态数据可能出现在句子中的什么位置。

        2
  •  3
  •   Richard Schwartz    12 年前

    在您的用户界面中,允许从英语扩展大约30-50%的翻译。我在职业生涯早期学到的一种方法是生成“pig-latin”本地化版的UI。

    如果您的用户界面仍然可以用生猪拉丁语阅读,那么它很可能在真正的语言中是可以阅读的。

    如果你的用户的接口是可以保持注册的,请在网上支付。 伊特威,伊特威,奥巴利,易趣,易趣,易趣 安加格雷雷

        3
  •  1
  •   Jonathan    12 年前
    • 对所有字符串使用unicode-utf-16或utf-8。如果读/写任何程序/格式,默认情况下都不假定,请确保显式指定utf-16或utf-8。

    • 正如迈克·希克尔所说,不要连接字符串。更好的是,不要有插入的句子,因为你不知道插入是如何影响句子的其余部分的-不同的语言在复数等方面有不同的规则。

    坏: "You have " + messageCount + " messages"

    更好: "You have {0} messages" (但是如果0=1怎么办?你写信息吗?希伯来语呢,“一”在名词后面,其他数字在前面?

    最好的: "Messages: {0}"

    • 如Rhsatrhs所说,允许30-50%的扩张。在我的(大联盟)公司里,我们通常认为德语是最长的,尽管我发现有时俄语比德语大100%。我怀疑有时是翻译人员不知道确切的术语,所以他们使用封闭术语(例如:symbol==>源代码引用标记)编写较长的描述。