docs: function setCultureList(list){
      if (typeof list == 'string')
        list = list.trim().split(' ');
  
      if (!list.length)
      {
        /** @cut */ basis.dev.warn('basis.l10n.setCultureList: culture list can\'t be empty, the culture list isn\'t changed');
        return;
      }
  
      var cultures = {};
      var cultureRow;
      var baseCulture;
  
      cultureFallback = {};
  
      // process list
      for (var i = 0, culture, cultureName; culture = list[i]; i++)
      {
        cultureRow = culture.split('/');
  
        if (cultureRow.length > 2)
        {
          /** @cut */ basis.dev.warn('basis.l10n.setCultureList: only one fallback culture can be set for certain culture, try to set `' + culture + '`; other cultures except first one was ignored');
          cultureRow = [cultureRow[0], cultureRow[1]];
        }
  
        cultureName = cultureRow[0];
  
        if (!baseCulture)
          baseCulture = cultureName;
  
        cultures[cultureName] = resolveCulture(cultureName);
        cultureFallback[cultureName] = cultureRow;
      }
  
      // normalize fallback
      for (var cultureName in cultureFallback)
        cultureFallback[cultureName] = basis.array.flatten(
          cultureFallback[cultureName]
            .map(function(name){
              return cultureFallback[name];
            }))
            .concat(baseCulture)
            .filter(function(item, idx, array){
              return !idx || array.lastIndexOf(item, idx - 1) == -1;
            }
        );
  
      // update current culture list
      cultureList = basis.object.keys(cultures);
  
      // if current culture not in culture list, change it for base culture
      if (currentCulture in cultures == false)
        setCulture(baseCulture);
    }