dsl-dicts

1.0.4 • Public • Published

dsl-dicts

NPM package to parsing DSL Dictionaries (Dictionary Specification Language, the format of dictionary files that was created by ABBYY company).

Usage:

const dslDicts = require('dsl-dicts');
const dictionary = dslDicts.parse(contentOfFileWithDslDictionary); // Returns promise
 
dictionary
  .then(dict => {
    // Dict meta information
    const dictName = dict.meta.name;
    const sourceLanguage = dict.meta.language.source;
    const targetLanguage = dict.meta.language.target;
 
    // Phrase iteration
    const phraseIterator = dict.phrase;
    
    // You can iterate manually...
    const nextPhrase = phraseIterator.next();
 
    // ...or in the for - of loop
    for (const phrase of phraseIterator) {
      console.log(phrase);
    }
 
    // Each 'phrase' (i.e. language entity) has format descibed below
  })
  .catch(error => {
    console.log('Some error occur', error);
  });

Format of the language entity

const phrase = {
  phrase: "automatic", // the lang entity (the word, header of the card)
  transcription: "ˌɔːtə'mætɪk", // optional
  explanations:[
    {
      translations:
        [
          "автоматический, автоматизированный",
          "машинальный, непроизвольный"
        ],
      examples: // optional
        [
          {
            English: "The winking of the eyes is essentially automatic.",
            Russian: "Глаза моргают непроизвольно."
          }
        ]
    },
    {
      translations:
        [
          "автоматическое устройство; автомат"
        ],
      examples:
        [
          {
            English: "Failures of the automatics may be more dangerous than the human failures they are designed to prevent.",
            Russian: "Ошибки автоматов могут быть более опасными, чем человеческие ошибки, которые эти устройства должны предотвращать."
          }
        ]
      },
    {
      translations:
        [
          "автоматическое оружие",
          "автомобиль с автоматической коробкой передач"
        ]
    }
  ]
};

Limitations

Card header

As for now headers handles "as is", without supporting {}, () or any other [meta]symbols. I.e. the header 'walk(ing)' will be handled just as 'walk(ing)', but not as ['walk', 'walking'].

Card body

As for now only transcription, translation(s) and example(s) supported. References and other advanced features of the DSL format not supported yet.

License

MIT.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.4
    1
    • latest

Version History

Package Sidebar

Install

npm i dsl-dicts

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

31.1 kB

Total Files

12

Last publish

Collaborators

  • borshak