translateFragment(frag) {
    const requests = [
      super.translateFragment(frag)
    ].concat(
      Array.from(
        this.delegates.values(),
        delegate => delegate.translateFragment(frag)
      )
    );

    return Promise.all(requests);
  }
Translate a DOM element or fragment asynchronously using this
`DocumentLocalization` and any `DOMLocalization` objects which it can
delegate to.

Manually trigger the translation (or re-translation) of a DOM fragment.
Use the `data-l10n-id` and `data-l10n-args` attributes to mark up the DOM
with information about which translations to use.  Only elements with
`data-l10n-with` attribute matching this `DOMLocalization`'s name will be
translated.

If `frag` or its descendants use `data-l10n-with`, the specific named
`DOMLocalization` will be used to translate it.  As a special case,
elements without `data-l10n-with` will be localized using this
`DocumentLocalization` (as if they had `data-l10n-with="main"`).

Returns a `Promise` that gets resolved once the translation is complete.

@param   {DOMFragment} frag - Element or DocumentFragment to be translated
@returns {Promise}