2014-12-04 11:23:10 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* PHPCI - Continuous Integration for PHP
|
|
|
|
*
|
|
|
|
* @copyright Copyright 2014, Block 8 Limited.
|
|
|
|
* @license https://github.com/Block8/PHPCI/blob/master/LICENSE.md
|
|
|
|
* @link https://www.phptesting.org/
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace PHPCI\Helper;
|
|
|
|
|
|
|
|
use b8\Config;
|
|
|
|
use PHPCI\Model\User;
|
|
|
|
|
|
|
|
class Lang
|
|
|
|
{
|
|
|
|
protected static $language = null;
|
|
|
|
protected static $strings = array();
|
|
|
|
|
|
|
|
public static function get($string)
|
|
|
|
{
|
|
|
|
$vars = func_get_args();
|
|
|
|
|
|
|
|
if (array_key_exists($string, self::$strings)) {
|
|
|
|
$vars[0] = self::$strings[$string];
|
|
|
|
return call_user_func_array('sprintf', $vars);
|
|
|
|
}
|
|
|
|
|
|
|
|
return '%%MISSING STRING: ' . $string . '%%';
|
|
|
|
}
|
|
|
|
|
2014-12-04 12:14:04 +01:00
|
|
|
public static function out()
|
|
|
|
{
|
|
|
|
print call_user_func_array(array('PHPCI\Helper\Lang', 'get'), func_get_args());
|
|
|
|
}
|
|
|
|
|
2014-12-04 11:23:10 +01:00
|
|
|
public static function getStrings()
|
|
|
|
{
|
|
|
|
return self::$strings;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function init(Config $config)
|
|
|
|
{
|
2014-12-04 12:14:04 +01:00
|
|
|
// Try user language:
|
|
|
|
$matches = array();
|
|
|
|
|
|
|
|
if (preg_match('/([a-zA-Z]{2}\-[a-zA-Z]{2})/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches)) {
|
|
|
|
self::$language = strtolower($matches[1]);
|
|
|
|
self::$strings = self::loadLanguage();
|
2014-12-04 11:23:10 +01:00
|
|
|
|
2014-12-04 12:14:04 +01:00
|
|
|
if (!is_null(self::$strings)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Try the installation default language:
|
|
|
|
self::$language = $config->get('phpci.default_language', null);
|
|
|
|
|
|
|
|
if (!is_null(self::$language)) {
|
2014-12-04 11:23:10 +01:00
|
|
|
self::$strings = self::loadLanguage();
|
2014-12-04 12:14:04 +01:00
|
|
|
|
|
|
|
if (!is_null(self::$strings)) {
|
|
|
|
return;
|
|
|
|
}
|
2014-12-04 11:23:10 +01:00
|
|
|
}
|
2014-12-04 12:14:04 +01:00
|
|
|
|
|
|
|
// Fall back to en-GB:
|
|
|
|
self::$language = 'en-gb';
|
|
|
|
self::$strings = self::loadLanguage();
|
2014-12-04 11:23:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
protected static function loadLanguage()
|
|
|
|
{
|
|
|
|
$langFile = PHPCI_DIR . 'PHPCI/Languages/lang.' . self::$language . '.php';
|
|
|
|
|
|
|
|
if (!file_exists($langFile)) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
require_once($langFile);
|
|
|
|
|
|
|
|
if (is_null($strings) || !is_array($strings) || !count($strings)) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $strings;
|
|
|
|
}
|
|
|
|
}
|