Вход Регистрация
Файл: system/vendor/gettext/translator/src/GettextTranslator.php
Строк: 210
<?php
declare(strict_types 1);

namespace 
Gettext;

use 
RuntimeException;

class 
GettextTranslator implements TranslatorInterface
{
    
/**
     * Detects the current language using the environment variables.
     */
    
public function __construct(string $language null)
    {
        if (!
function_exists('gettext')) {
            throw new 
RuntimeException('This class require the gettext extension for PHP');
        }

        
//detects the language environment respecting the priority order
        //http://php.net/manual/en/function.gettext.php#114062
        
if (empty($language)) {
            
$language getenv('LANGUAGE') ?: getenv('LC_ALL') ?: getenv('LC_MESSAGES') ?: getenv('LANG');
        }

        if (!empty(
$language)) {
            
$this->setLanguage($language);
        }
    }

    
/**
     * Define the current locale.
     */
    
public function setLanguage(string $languageint $category null): self
    
{
        if (
$category === null) {
            
$category defined('LC_MESSAGES') ? LC_MESSAGES LC_ALL;
        }

        
setlocale($category$language);
        
putenv('LANGUAGE='.$language);

        return 
$this;
    }

    
/**
     * Loads a gettext domain.
     */
    
public function loadDomain(string $domainstring $path nullbool $default true): self
    
{
        
bindtextdomain($domain$path);
        
bind_textdomain_codeset($domain'UTF-8');

        if (
$default) {
            
textdomain($domain);
        }

        return 
$this;
    }

    public function 
noop(string $original): string
    
{
        return 
$original;
    }

    public function 
gettext(string $original): string
    
{
        return 
gettext($original);
    }

    public function 
ngettext(string $originalstring $pluralint $value): string
    
{
        return 
ngettext($original$plural$value);
    }

    public function 
dngettext(string $domainstring $originalstring $pluralint $value): string
    
{
        return 
dngettext($domain$original$plural$value);
    }

    public function 
npgettext(string $contextstring $originalstring $pluralint $value): string
    
{
        
$message $context."x04".$original;
        
$translation ngettext($message$plural$value);

        return (
$translation === $message) ? $original $translation;
    }

    public function 
pgettext(string $contextstring $original): string
    
{
        
$message $context."x04".$original;
        
$translation gettext($message);

        return (
$translation === $message) ? $original $translation;
    }

    public function 
dgettext(string $domainstring $original): string
    
{
        return 
dgettext($domain$original);
    }

    public function 
dpgettext(string $domainstring $contextstring $original): string
    
{
        
$message $context."x04".$original;
        
$translation dgettext($domain$message);

        return (
$translation === $message) ? $original $translation;
    }

    public function 
dnpgettext(string $domainstring $contextstring $originalstring $pluralint $value): string
    
{
        
$message $context."x04".$original;
        
$translation dngettext($domain$message$plural$value);

        return (
$translation === $message) ? $original $translation;
    }
}
Онлайн: 1
Реклама