我从来没有写过DSL,但我认为它是新项目的一个功能(假设)。最终用户能够以自然语言概念表达,例如 工作日10到11之间,除了当月的第一个星期一 。
荷兰用户可能会写 weekdagen tussen 10 en 11 behalve op de eerste maandag van de maand 。在这种情况下,单词的位置似乎匹配,但可能存在表达式,其中动词/名词等的位置在语言之间可能不同。
我意识到明显的答案(取决于)。我是.NET开发人员,我考虑使用Boo,但我愿意接受建议。我需要了解每个翻译是否需要重写实现的一部分(哪个部分),或者是否有办法进行实际翻译,可能在某种预处理器中。
答案 0 :(得分:2)
你不会找到一个能够以超过几种语言(比如一种或两种语言和英语之间)进行此操作的翻译人员,特别是考虑到英语本身至少可以有3种方式来编写它。
如果你想写一个DSL,你需要首先提出制作规则(你写的可以),然后用英语/荷兰语/火星表达它的方式/等等。
例如: 时间表:=框架包含[例外]
将是:
然后你可以担心一个词法分析器/解析器纠正一个特定的语法并把它放到那种形式的作品中。
这些不在我的头顶,甚至没有关闭,但应该足以开始。
答案 1 :(得分:1)
使用Domain-Specific Language Tools创建的DSL可以进行本地化。他们将所有字符串放入.resx文件中。