HEX
Server: Apache
System: Linux srv-plesk28.ps.kz 5.14.0-284.18.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 29 17:06:27 EDT 2023 x86_64
User: greencl1 (10085)
PHP: 8.1.33
Disabled: apache_setenv,dl,eval,exec,openlog,passthru,pcntl_exec,pcntl_fork,popen,posix_getpwuid,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,socket_create,socket_create_listen,socket_create_pair,syslog,system,socket_listen,stream_socket_server
Upload Files
File: /var/www/vhosts/greenclinic.kz/newsite/wp-content/plugins/wp-multilang/assets/scripts/translator.js
String.prototype.xsplit = function (_regEx) {
  // Most browsers can do this properly, so let them work, they'll do it faster
  if ('a~b'.split(/(~)/).length === 3) {
    return this.split(_regEx);
  }

  if (!_regEx.global) {
    _regEx = new RegExp(_regEx.source, 'g' + (_regEx.ignoreCase ? 'i' : ''));
  }

  // IE (and any other browser that can't capture the delimiter)
  // will, unfortunately, have to be slowed down
  var start = 0, arr = [];
  var result;
  while ((result = _regEx.exec(this)) !== null) {
    arr.push(this.slice(start, result.index));
    if (result.length > 1) arr.push(result[1]);
    start = _regEx.lastIndex;
  }
  if (start < this.length) arr.push(this.slice(start));
  if (start === this.length) arr.push(''); //delim at the end
  return arr;
};

var wpm_translator = {

  string_to_ml_array: function (text) {

    if (Object.prototype.toString.call(text) !== '[object String]') {
      return text;
    }

    var split_regex = /(\[:[a-z-]+\]|\[:\])/gi;
    var blocks = text.xsplit(split_regex);

    if (typeof blocks !== 'object' || !Object.keys(blocks).length)
      return text;

    if (Object.keys(blocks).length === 1) {
      return blocks[0];
    }

    var results = {},
      languages = wpm_translator_params.languages;

    languages.forEach(function(item){
      results[item] = '';
    });

    var lang = blocks.length === 1 ? wpm_translator_params.default_language : '';

    blocks.forEach(function(block, index) {
      if (index % 2 === 1) {
        lang = block;
      } else if (!!results[lang]) {
        results[lang] += block.trim();
      }
    });

    return results;
  },


  translate_string: function (string, language) {

    var strings = wpm_translator.string_to_ml_array(string);

    if (typeof strings !== 'object' || !Object.keys(strings).length) {
      return string;
    }

    var languages = wpm_translator_params.languages;

    if (language) {
      if (!!languages[language]) {
        return strings[language];
      }

      return '';
    }

    language = wpm_translator_params.language;

    if (!strings[language].length && wpm_translator_params.show_untranslated_strings === "yes") {
      return strings[wpm_translator_params.default_language];
    }

    if (!!strings[language]) {
      return strings[language];
    }

    return '';
  }
};