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

问题描述 投票:2回答:3

我从未写过DSL,但我将其视为新项目的功能(假设的)。最终用户将能够使用自然语言表达,例如10到11之间的工作日,每月的第一个星期一除外

[荷兰用户可以写[[weekdagen tussen 10 en 11 behalve op de eerste maandag van de maand]。在这种情况下,单词的位置似乎匹配,但是在某些语言中,动词/名词等的位置可能会有所不同。

我意识到明显的答案(

取决于

)。我是.NET开发人员,我考虑使用Boo,但我愿意接受建议。我需要了解每个翻译是否都需要重写实现的一部分(哪一部分),或者是否有可能进行某种形式的实际翻译,也许是在某种预处理器中进行。
.net localization dsl boo
3个回答
2
投票
您将不会找到能够使用多种语言(例如,一种或两种语言和英语之间的翻译)的翻译器,尤其是考虑到英语本身可能至少具有三种书写方式的翻译器。

如果要编写DSL,则需要首先提出生产规则(您编写的

can内容),然后将其加工成用英语/荷兰语/火星人/等表达的方式。

例如:时间表:=包含帧[Exception]

将是:

    框架:月,年,周,工作日,周末,每月的天数,假期等
  • 包含:介于之间,不在内部,周围,包含等
  • 例外:[时间表]除外,但[时间表]除外,除非[时间表]
  • 然后您可以担心使用词法分析器/解析器来更正特定的语法并将其放入产品形式中。

    这些在我的头顶上,甚至还不靠近,但应该足以开始使用。


  • 1
    投票
    Domain-Specific Language Tools创建的DSL可以被本地化。他们将所有字符串放入.resx文件。

    0
    投票
    看一下openVALIDATION

    https://github.com/openvalidation/openvalidation

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

    © www.soinside.com 2019 - 2024. All rights reserved.