0

我正在尝试制作作为 ASP.NET 应用程序一部分的 rpt 文件,并且目前仅以一种语言显示,以根据用户的本地语言设置以不同的语言显示。

我知道这在我们公司早些时候已经通过将语言环境信息从 C# 传递到主报告,用根据语言返回不同文本的公式字段替换标签,将语言环境信息参数链接到所有子报告,将所有标签替换为它们中的公式字段等等,它确实有效,但我想知道是否有更简单的解决方案可用?每个报告都包含很多子报告,因此如果这是唯一的方法,则需要进行大量手动工作。当然,所有 if 子句也有很多风险,将原始文本从标签复制到公式字段等 - 很容易复制错误然后错过它。

每个报告中也有很多相同的元素,例如所有页脚,因此在每个页脚中分别创建公式字段并用它们替换标签似乎需要做很多工作,而不是可能只做一次并适用于所有报告?

4

1 回答 1

0

数据库中的一个表。列名是语言。主键是您员工的主要语言。使用您的主要语言编写报告,但即时从表格中获取翻译。

维护问题从散布在整个报告库中的短语和单词转变为具有大量重复项,并将它们全部放在一个没有重复项的表中。

随着避免“几乎重复”变得越来越大,挑战越来越大,例如“总收费”与“总账单”或“付款”与“支付金额”还有一些语言有名词变格、动词变位的问题,不同的复数方式等。如果每个实例都不是由精通输出语言的人完成,总会有听起来很奇怪的事情。事实上,一些以母语为母语的人可以翻译成他们自己永远不会说的话。

但是有一些技巧可以减少这些问题。例如,您可以创建一个存储过程来执行 printf 样式替换。这允许词序变化。一种语言可能会将变量放在句子的末尾,而另一种语言可能会将其放在中间。

两种类似的方法是GNU gettext 实用程序或 Mac OS 进行国际化的方式。

于 2013-07-30T12:56:30.667 回答