域特定语言(DSL)是否可以本地化(即翻译)?

时间:2010-03-16 19:39:56

标签: .net localization dsl boo

我从来没有写过DSL,但我认为它是新项目的一个功能(假设)。最终用户能够以自然语言概念表达,例如 工作日10到11之间,除了当月的第一个星期一

荷兰用户可能会写 weekdagen tussen 10 en 11 behalve op de eerste maandag van de maand 。在这种情况下,单词的位置似乎匹配,但可能存在表达式,其中动词/名词等的位置在语言之间可能不同。

我意识到明显的答案(取决于)。我是.NET开发人员,我考虑使用Boo,但我愿意接受建议。我需要了解每个翻译是否需要重写实现的一部分(哪个部分),或者是否有办法进行实际翻译,可能在某种预处理器中。

2 个答案:

答案 0 :(得分:2)

你不会找到一个能够以超过几种语言(比如一种或两种语言和英语之间)进行此操作的翻译人员,特别是考虑到英语本身至少可以有3种方式来编写它。

如果你想写一个DSL,你需要首先提出制作规则(你写的可以),然后用英语/荷兰语/火星表达它的方式/等等。

例如: 时间表:=框架包含[例外]

将是:

  • 框架:月,年,周,周日,周末,每月,节假日等
  • 包含:在,不在,在,包含等,
  • 例外:除了[时间表],但不是[时间表],除非[时间表]

然后你可以担心一个词法分析器/解析器纠正一个特定的语法并把它放到那种形式的作品中。

这些不在我的头顶,甚至没有关闭,但应该足以开始。

答案 1 :(得分:1)

使用Domain-Specific Language Tools创建的DSL可以进行本地化。他们将所有字符串放入.resx文件中。