可域特定的语言(DSL)被本地化(即翻译)?
-
20-09-2019 - |
题
我从来没有写过一DSL,但我是考虑到它作为一个特征一个新的项目,(假定的).这将是为最终用户能够表达在自然语言的概念,例如 工作日之间的10和11,除了上个月的第一个星期一.
荷兰的用户可能会写 weekdagen图森10en11behalve op de eerste maandag van de maand.在这种情况下的位置的词语似乎相匹配,但也有可能是表达所在位置的词/名词等。可能是不同的语言。
我知道的明显的答案(这取决于).我一个.NET开发和考虑使用嘘但我开放的建议。我需要了解是否每个翻译需要重写一部分的执行情况(其一部分),或者如果有一个办法做到实际的翻译,也许在某种形式的预处理器。
解决方案
你不会找到一个翻译,是能够做到这一超过几个语言(说之间的一种或两种语言和英语),特别是考虑到其本身的英语能有至少3种方式编写。
如果你想要写一DSL,你需要的生产规则的第(什么 可以 你写的),然后它的工作进入一种方式来表达它英语/荷兰语/火星。
例如:时间表:=框架包含[例外]
这将是:
- 框架:一个月、一年、每周工作日,周末,日本月的假期,等等
- 包容性:之间,不在周围,包含,等等
- 例外:除了[计划],但不[计划],除非[计划]
然后你可以担心的语法分析程序/分析器而纠正特定的语法和把它放到这种形式的作品。
这些都是关闭我的头顶和甚至没有接近,但应该足以开始。
其他提示
与域特定语言工具创建的DSL 可以进行本地化。他们将所有的字符串转换为.resx文件。
不隶属于 StackOverflow