我使用Java Spring i18n翻译我的网页。我想知道翻译长文本的最佳做法是什么。
实施例: 我有属性文件usermsg_en.properties:
short_text = short line
long_text = post about something with lot of text lines...
和jsp文件:
....
<div id="content"><spring:message code="long_text"/></div>
....
答案 0 :(得分:2)
James Scott Tayler所写的一切都是对的:请听从他的建议。不过,还有两个关于翻译长字符串的内容可能需要考虑:
避免使用源语言字符串中的硬编码换行符。除非译员可以访问实时系统,在那里他们可以看到他们需要在目标语言中放置换行符,他们根本不知道目标语言行需要包装的位置。从理论上讲,对于网站而言,这不应该是一个大问题,但我已经看到在网站的字符串中出现过多\n
的事情而没有提到这一点。
专业翻译人员使用translation memories在翻译环境中工作。翻译记忆库是存储先前翻译的数据库,并且每当翻译者遇到需要翻译的新字符串时,该字符串和先前的翻译将在翻译记忆库中被查找。软件UI文本的典型存储单元是单个字符串,对于文档,它是句子或段落。当翻译器打开用于翻译的属性文件时,翻译记忆库通常会搜索长文本的单个现有翻译(因为它来自属性文件)。如果长文本已逐句处理,则翻译者可能会获得更多匹配,这意味着翻译可以更快更便宜。
当然,第二期不再适用于长篇文章的第一轮翻译。如果您不需要为翻译付费,它也不适用。 : - )
答案 1 :(得分:1)
短文或长篇文章,这并不重要。谈到国际化,真正棘手的问题是字符串的翻译在不同的语言中会有不同的长度,这通常不适合你的用户界面。
您确实需要使用您计划提供的每种语言测试用户界面,以查找不同语言的字符串可能会破坏您的布局的位置。
您的软件对日期/时间/单词订单等做出的许多假设也可以在其他语言/区域设置中完全关闭。
有一篇关于国际化的文章here
我的工作中从我的工作中做了很多国际化的事情,我最重要的事情是:
此外,如果你还没有,你肯定希望将所有字符串存储在.properties文件中