Domanda

Non ho mai scritto una connessione DSL, ma sto considerando come una caratteristica per un nuovo progetto (ipotetica). Sarebbe per gli utenti finali siano in grado di esprimere in concetti linguaggio naturale come nei giorni feriali compresi tra 10 e 11, tranne il primo lunedi del mese .

Gli utenti olandesi potrebbero scrivere weekdagen tussen 10 it 11 behalve op de eerste maandag van de maand . In questo caso la posizione delle parole sembra corrispondere, ma ci possono essere le espressioni in cui la posizione di verbi / sostantivi ecc potrebbe essere diverso tra le lingue.

Mi rendo conto che la risposta ovvia ( Dipende ). Sono uno sviluppatore .NET e considero usando Boo ma sono aperto a suggerimenti. Ho bisogno di capire wether ogni traduzione richiede riscrivere una parte della realizzazione (che parte) o se c'è un modo per fare traduzioni attuali, forse in una sorta di preprocessore.

È stato utile?

Soluzione

Il vostro non andare a trovare un traduttore che è capace di fare questo per più di un paio di lingue (diciamo tra uno o due lingue e inglese), soprattutto se si considera inglese che si potrebbe avere almeno 3 modi per scrivere esso.

Se si vuole scrivere un DSL, è necessario venire con le norme di produzione prima (ciò che può si scrive) e poi lavorare in un modo per esprimere in inglese / olandese / marziano /eccetera.

Per esempio: Programma: = inclusione Telaio [Eccezione]

, che sarebbe:

  • Telaio: mese, anno, settimana, nei giorni feriali, nei fine settimana, giorni del mese, vacanze, ecc
  • Inclusione: Between, non dentro, intorno, contenenti, etc
  • Eccezione: Tranne [Programma], ma non [Programma], a meno che [Schedule]

È possibile quindi preoccuparsi di una lexer / parser che corregge una grammatica specifica e la mette in quella forma di produzione.

Questi sono fuori dalla parte superiore della mia testa e non è nemmeno vicino, ma dovrebbe essere sufficiente per iniziare.

Altri suggerimenti

Un DSL per i nostri Domain-Specific Strumenti per le lingue può essere localizzato. Hanno posto tutte le stringhe in file resx.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top