Do not load translations from a relative path
When the application is installed outside of the document root, loading translations will not work.
This commit is contained in:
parent
ebb6b2827d
commit
94cd5869bf
|
|
@ -10,13 +10,6 @@ namespace Kanboard\Core;
|
|||
*/
|
||||
class Translator
|
||||
{
|
||||
/**
|
||||
* Locale path
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const PATH = 'app/Locale';
|
||||
|
||||
/**
|
||||
* Locale
|
||||
*
|
||||
|
|
@ -171,9 +164,13 @@ class Translator
|
|||
* @param string $language Locale code: fr_FR
|
||||
* @param string $path Locale folder
|
||||
*/
|
||||
public static function load($language, $path = self::PATH)
|
||||
public static function load($language, $path = '')
|
||||
{
|
||||
$filename = $path.DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.'translations.php';
|
||||
if ($path === '') {
|
||||
$path = self::getDefaultFolder();
|
||||
}
|
||||
|
||||
$filename = implode(DIRECTORY_SEPARATOR, array($path, $language, 'translations.php'));
|
||||
|
||||
if (file_exists($filename)) {
|
||||
self::$locales = array_merge(self::$locales, require($filename));
|
||||
|
|
@ -190,4 +187,15 @@ class Translator
|
|||
{
|
||||
self::$locales = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get default locales folder
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function getDefaultFolder()
|
||||
{
|
||||
return implode(DIRECTORY_SEPARATOR, array(__DIR__, '..', 'Locale'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/../Base.php';
|
||||
|
||||
use Kanboard\Core\Translator;
|
||||
|
||||
class TranslatorTest extends Base
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
Translator::unload();
|
||||
}
|
||||
|
||||
public function testLoading()
|
||||
{
|
||||
$translator = new Translator();
|
||||
$this->assertSame('Yes', $translator->translate('Yes'));
|
||||
|
||||
Translator::load('fr_FR');
|
||||
$this->assertSame('Oui', $translator->translate('Yes'));
|
||||
|
||||
Translator::unload();
|
||||
$this->assertSame('Yes', $translator->translate('Yes'));
|
||||
|
||||
Translator::load('de_DE', Translator::getDefaultFolder());
|
||||
$this->assertSame('Ja', $translator->translate('Yes'));
|
||||
}
|
||||
|
||||
public function testNumberFormatting()
|
||||
{
|
||||
$translator = new Translator();
|
||||
$this->assertSame('1,024.42', $translator->number(1024.42));
|
||||
|
||||
Translator::load('fr_FR');
|
||||
$this->assertSame('1 024,42', $translator->number(1024.42));
|
||||
}
|
||||
|
||||
public function testTranslateEscaping()
|
||||
{
|
||||
$translator = new Translator();
|
||||
$this->assertSame('<b>', $translator->translate('<b>'));
|
||||
$this->assertSame('<b>', $translator->translateNoEscaping('<b>'));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue