MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-

View on GitHub
src/renderer/generic/translations.js

Summary

Maintainability
A
0 mins
Test Coverage
import TranslationsProvider from '../../_locales/_provider';

global.TranslationProvider = new TranslationsProvider();

if (global.HTMLSpanElement) {
  const createTranslationElement = (originalElement, elementTag) => {
    const TranslationProto = Object.create(originalElement.prototype);

    TranslationProto.createdCallback = function createdCallback() {
      this._key = this.textContent;
      this.innerHTML = TranslationProvider.query(this.textContent);
    };
    TranslationProto.setKey = function setKey(newKey) {
      this._key = newKey;
      this.innerHTML = TranslationProvider.query(newKey);
    };
    TranslationProto.getKey = function getKey() {
      return this._key;
    };

    window.ThumbImage = document.registerElement(`translation-key${elementTag === 'span' ? '' : `-${elementTag}`}`, {
      prototype: TranslationProto,
      extends: elementTag,
    });
  };

  createTranslationElement(HTMLSpanElement, 'span');
  createTranslationElement(HTMLParagraphElement, 'p');
  createTranslationElement(HTMLHeadingElement, 'h4');
}