繁体   English   中英

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

[英]Can a Domain Specific Language (DSL) be localized (i.e. translated)?

我从来没有写过 DSL,但我正在考虑将它作为一个新项目的特性(假设)。 最终用户将能够用自然语言概念来表达,例如10 到 11 之间的工作日(每月的第一个星期一除外)

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

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

您不会找到能够为多种语言(例如在一种或两种语言和英语之间)执行此操作的翻译器,尤其是考虑到英语本身可能至少有 3 种书写方式。

如果你想写一个DSL,你需要先想出产生式规则(你写什么),然后把它变成一种用英语/荷兰语/火星语等表达的方式。

例如:Schedule := Frame Inclusion [Exception]

这将是:

  • 框架:月、年、周、周天、周末、月中的天数、节假日等
  • 包含:介于、不在、周围、包含等
  • 例外:除了[时间表],但不是[时间表],除非[时间表]

然后,您可以担心词法分析器/解析器会纠正特定语法并将其放入该形式的产品中。

这些不在我的脑海中,甚至不接近,但应该足以开始。

可以本地化使用领域特定语言工具创建的 DSL。 他们将所有字符串放入 .resx 文件中。

看看openVALIDATION

https://github.com/openvalidation/openvalidation

这是验证规则的自然语言(当前为英语或德语)dsl / compiler。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM