       )
     for dictionary in @dictionaries
       if not dictionary.canBeUsed(from, to) then continue
+
+      numberOfUsedApis += 1
       kind = {
         name: dictionary.name()
         type: "Dictionary"

    @emitter?.dispose()

  translate: (text, from, to, succeeded, failed) ->
    # TODO Deal with only **one** translation at the same time.
    @emitter.emit("Started")
    for translator in @translators
      if not translator.canBeUsed(from, to) then continue
      kind = {
        name: translator.name()
        type: "Translator"

            failed(kind, error)
        )(kind)
      )

    if numberOfUsedApis == 0
      @emitter.emit("Failed", {
        kind: {
          name: "Translator Plus Dictionary"
          type: "General"
        },
        error: {
          message: "There are no APIs that translates from #{from.name} to #{to.name}."
        }
      })

    @emitter.emit("Finished")

  onStarted: (callback) -> @emitter.on("Started", callback)
