Question

Je ne l'ai jamais écrit une connexion DSL, mais je considère comme une caractéristique d'un nouveau projet (hypothétique). Il serait pour les utilisateurs finaux pour pouvoir exprimer des concepts de langage naturel comme en semaine entre 10 et 11, sauf le premier lundi du mois .

Les utilisateurs néerlandais pourraient écrire weekdagen tussen 10 en 11 behalve op de eerste maandag van de maand . Dans ce cas, la position des mots semble correspondre, mais il peut y avoir des expressions où la position des verbes / noms etc., pourraient être différentes entre les langues.

Je me rends compte de la réponse évidente ( il dépend ). Je suis un développeur .NET et je considère en utilisant Boo, mais je suis ouvert aux suggestions. Je dois comprendre wether chaque traduction nécessite la réécriture d'une partie de la mise en œuvre (la partie) ou s'il y a un moyen de faire des traductions réelles, peut-être dans une sorte de préprocesseur.

Était-ce utile?

La solution

Votre ne va pas trouver un traducteur qui est capable de faire cela pour plus de quelques langues (disons entre une ou deux langues et l'anglais), en particulier compte tenu de l'anglais qui lui-même pourrait avoir au moins 3 façons de l'écrire.

Si vous voulez écrire un DSL, vous devez venir avec les règles de production d'abord (ce pouvez vous écrire) et ensuite travailler dans une façon de l'exprimer en anglais / néerlandais / martiens /etc.

Par exemple: Horaire: = inclusion de trame [Exception]

qui serait:

  • Cadre: Mois, Année, Semaine, semaine, Week-ends, jours du mois, Vacances, etc
  • Inclusion: Entre, non dans, autour, contenant, etc
  • Exception: Sauf [annexe], mais pas [Calendrier], à moins [annexe]

Vous pouvez alors vous inquiéter lexer / parser qui corrige une grammaire spécifique et met en cette forme de productions.

Ce sont du haut de ma tête et même pas proche, mais devrait être suffisant pour commencer.

Autres conseils

Un DSL créé avec les Outils linguistiques spécifiques au domaine peut être localisée. Ils placent toutes les chaînes dans des fichiers .resx.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top