HEX
Server: Apache/2.4.57 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/3.0.2
System: Linux vmi267337.contaboserver.net 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64
User: ohirex (1008)
PHP: 8.2.8
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,system,passthru,shell_exec
Upload Files
File: /home/ohirex/web/ohirex.com/public_html/join/bases/browser/Language.php
<?php

namespace Sinergi\BrowserDetector;

/**
 * Language Detection.
 */
class Language
{
    /**
     * @var AcceptLanguage
     */
    private $acceptLanguage;

    /**
     * @var array
     */
    private $languages;

    /**
     * @param null|string|AcceptLanguage $acceptLanguage
     *
     * @throws \Sinergi\BrowserDetector\InvalidArgumentException
     */
    public function __construct($acceptLanguage = null)
    {
        if ($acceptLanguage instanceof AcceptLanguage) {
            $this->setAcceptLanguage($acceptLanguage);
        } elseif (null === $acceptLanguage || is_string($acceptLanguage)) {
            $this->setAcceptLanguage(new AcceptLanguage($acceptLanguage));
        } else {
            throw new InvalidArgumentException();
        }
    }

    /**
     * Get all user's languages.
     *
     * @return array
     */
    public function getLanguages()
    {
        if (!is_array($this->languages)) {
            LanguageDetector::detect($this, $this->getAcceptLanguage());
        }

        return $this->languages;
    }

    /**
     * Set languages.
     *
     * @param array $languages
     *
     * @return $this
     */
    public function setLanguages($languages)
    {
        $this->languages = $languages;

        return $this;
    }

    /**
     * Get a user's language.
     *
     * @return string
     */
    public function getLanguage()
    {
        if (!is_array($this->languages)) {
            LanguageDetector::detect($this, $this->getAcceptLanguage());
        }

        return strtolower(substr(reset($this->languages), 0, 2));
    }

    /**
     * Get a user's language and locale.
     *
     * @param string $separator
     *
     * @return string
     */
    public function getLanguageLocale($separator = '-')
    {
        if (!is_array($this->languages)) {
            LanguageDetector::detect($this, $this->getAcceptLanguage());
        }

        $userLanguage = $this->getLanguage();
        foreach ($this->languages as $language) {
            if (strlen($language) === 5 && strpos($language, $userLanguage) === 0) {
                $locale = substr($language, -2);
                break;
            }
        }

        if (!empty($locale)) {
            return $userLanguage . $separator . strtoupper($locale);
        } else {
            return $userLanguage;
        }
    }

    /**
     * @param AcceptLanguage $acceptLanguage
     *
     * @return $this
     */
    public function setAcceptLanguage(AcceptLanguage $acceptLanguage)
    {
        $this->acceptLanguage = $acceptLanguage;

        return $this;
    }

    /**
     * @return AcceptLanguage
     */
    public function getAcceptLanguage()
    {
        return $this->acceptLanguage;
    }
}