您的任务国际化

您是如何在与您合作的实际任务中应用国际化(i18n)的?

在阅读了Joel,绝对最低每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)的着名博客文章之后,我热衷于制作跨文化的软件程序。 尽管如此,我还没有能够在实际任务中利用它,除了看到它我在可行的情况下使用了Unicode字符串。 然而,让你的所有字符串都是Unicode,同时也保证你能够识别出与你合作的每一件小东西的内容,这只是i18n冰山的指针。

我实际上每天使用的每件小事实际上都是由一个受监管的人群英语会说话的人使用,或者在实际按下任务之前我们没有时间处理过的事情。 所以我正在寻找任何关于在现实生活中使软件程序更加局部化的指针或战斗故事。

0
2019-05-04 00:15:14
资源 分享
答案: 4

它实际上已经有一段时间了,所以这并不彻底。

个性集

Unicode是美妙的,但你无法忽视其他各种个性收藏品。 Windows XP(英语)上设置的默认个性是Cp1252。 在互联网上,你不知道浏览器肯定会发送给你什么(虽然运气好,你的容器肯定会照顾很多)。 当你正在使用的任何执行中都有害虫时,也不要被惊呆了。 当个性集合重新定位到设备之间时,它们可以与文件名进行有趣的通信。

转换字符串

翻译人员通常是在谈论,而不是程序员。 如果您将资源文档发送给翻译人员,他们肯定会对其造成损害。 需要将字符串删除到源文档(例如,Java中的建筑文档或Visual C + npls中的源DLL)。 需要为译员提供难以损坏的文件以及不允许他们损坏的设备。

翻译人员无法识别字符串源自项目的位置。 没有上下文很难转换字符串。 如果您不提供建议,翻译的最高质量肯定会持久。

当它出现在上下文中时,您可能会看到很多次出现相同的字符串“foo”,并且假设在UI中的所有情况都指示相同的来源肯定会更加可靠。 这是一个消极的建议。 在一些语言中,单词可能是真实的语境。

转换字符串价格贷款。 如果您发布项目的新变体,那么收回旧变体是很有意义的。 有设备从旧的源文档中恢复字符串。

需要减少字符串连接以及字符串的手动调整。 利用相关的布局。

翻译人员需要能够更换热键。 Ctrl + P是英文版; 德国人使用Ctrl + D

如果你有一个翻译程序,要求一个人手动减少并随时粘贴字符串,你就是在捣乱。

天,时间,日历,货币,数字格式,时区

这些都可能因国家而异。 可以使用逗号来表示小数区域。 时间可能会持续24小时。 并非每个人都使用格里高利时间表。 你也需要与众不同。 如果您确定在您的网站上显示美国的MM / DD / YYYY天数以及英国的DD / MM / YYYY天数,则除非客户认出您已完成,否则日期不明确。

特别是货币

类集合中提供的Locale操作肯定会为您提供邻居钱图标,但您不能简单地在提供一定价格的价值之前添加额外英镑(英镑)或欧元图标。

接口

布局需要充满活力。 不仅字符串在翻译时最有可能翻倍,整个UI可能需要颠倒(希伯来语;阿拉伯语)以确保控件的范围从右到左。 这是在我们到达亚洲之前。

在翻译之前检查

  • 使用代码的固定评估来解决问题。 至少,使用构建在IDE中的设备。 (Eclipse客户最有可能使用Window> Preferences> Java> Compiler> Errors / Warnings,并查找非外化字符串。)
  • 通过模仿翻译进行烟雾检查。 解析源文档并使用伪转换后的变体更改字符串并增加大小并插入时尚个性也不难。 您不需要使用语言来使用国际操作系统。 现代系统需要允许您作为国际客户访问,具有转换字符串和国际地位。 如果您了解自己的操作系统,则无需识别语言的单独一词即可识别出什么是什么。
  • 键盘地图和个性设置推荐非常有价值。
  • 虚拟化在下面肯定是非常有价值的。

非技术问题

有时你需要对社会差异感到微妙(可能导致进攻或不理解)。 您经常看到的一个错误就是利用旗帜作为选择互联网网站语言或位置的美学标志。 除非你希望你的软件程序在国际政治中宣布双方,否则这是一个负面的建议。 如果你是法国人,并且还提供了圣乔治国旗的英语替代品(英格兰国旗是白色区域的红十字会),这可能会导致几位英语音频发言者的复杂化 - 认为可以在国际语言中出现类似的问题还有国家。 符号需要经过审查才能具有社会重要性。 竖起大拇指或环保标记表示什么? 语言需要合理中立 - 以某种方式解决客户可能在一个领域服务,但在另外一个方面考虑无礼。

资源

C + npls以及Java设计人员可能会找到有价值的ICU Internet站点:http://www.icu-project.org/

0
2019-05-08 18:23:54
资源

我今天只是关注来自Scott Hanselman的播客,在那里他讲的是国际化,特别是实际上复杂的点,比如土耳其语(有4个i)和泰语。 另外,Jeff Atwood有一个岗位

0
2019-05-07 17:48:40
资源

一些有趣的观点:

  1. 拥有PHP和MySQL应用程序,与德语和法语一起运作良好,今天需要维持俄语和中文。 我假设我将其重新定位到.NET,因为PHP的Unicode帮助是 - 在我看来 - 实际上并不是很好。 某些,使用utf8_de / inscribe或mbstring函数处理是愉快的。 让FreddyKrüger在夜间见到你真的很愉快......

  2. 意识到某些语言比其他语言更加冗长。 德语通常比英语更加冗长,并且还看到德语版本如何损害用户界面,因为分配不充分的空间并不令人愉快。 使用Oblivion的“Schw.Tr.d.Le.En.W”,有些项目因其富有想象力的手段而广受欢迎。 非凡: - )

  3. 玩一天的布局,哇哦! 是的,事实上全世界都有个人利用白天进入中心的日期布局。 Sooooo非常愉快地寻找07/02/2008的意图,即使有些客户可能会想到7月2日...但是在那之后,你们在鱼塘上的人们可能会认为关于放置的客户也是如此之间的月份: - P,特别是由于英语7月2日出现的情况比7月2日好得多,这种情况与其他各种语言无关(即德语,你绝对不会声称) Juli 2却不断Zweiter Juli)。 我尽可能使用2008-02-07。 很明显它建议2月7日它也有效地打字,但是dd / mm对mm / dd可能是一个实际上复杂的麻烦。

  4. Anoter愉快点,数字格式! 10.000,50 vs 10,000.50 vs. 10 000,50 vs. 10'000,50 ......这是我现在最大的问题,需要维持一个多文化的环​​境,但没有任何方法可以准确地识别出什么数字布局客户肯定会利用。

  5. 官方或非正式的。 在某种语言中,有2种方法可以解决个人问题,这是一种官方手段,也是一种额外的随意手段。 在英语中,你只是声称“你”,但在德语中你需要在官方的“Sie”和偶然的“Du”之间确定,对于法国的Tu / Vous来说也是如此。 选择官方手段通常是肯定的,但这很容易被遗忘。

  6. 时间表。 在欧洲,本周的第一天是星期一,而在美国则是星期天。 Schedule Widgets表现得很好。 周日左翼以及周六右边的欧洲客户展示日历并不是那么精彩,它让他们感到困惑。

0
2019-05-07 17:34:40
资源

我曾为我以前使用过.NET的公司工作过,还有一个我们使用的构建的in.resx布局。 我们主要有一个文件,其中包含.resx文档中的所有翻译,以及之后的大量文档,其中包含各种翻译。 这样做的结果是,您需要非常注意确保应用程序中的所有字符串都保存在.resx中,并且无论何时转换,您都需要升级您支持的所有语言。

如果你粗心大意并且没有提醒个人对翻译负责,或者你没有经历过本地化系统就安装了字符串,那么尝试并在以后修复它肯定是个问题。 以类似的方式,如果本地化是一个事后的想法,它肯定很难建立。 利润,如果你没有在典型区域的表面上保存所有明显的字符串,那么找到所有需要本地化的东西肯定很难。

另一个注意事项,真的是纯粹地保持着直接连接明显的字符串,例如

String message = "The " + item + " is on sale!";

相反,你必须使用类似的东西

String message = String.Format("The {0} is on sale!", item);

这个因素是各种语言通常以不同的方式获得单词,并且直接连接字符串将需要一个新的构造来处理,但如果你使用上面的某种字符串替换设备,你可以改变你的.resx文档(或您使用的任何本地化提交)用于需要重新排序单词的详细信息语言。

0
2019-05-07 16:54:36
资源