Merge branch 'develop' of https://github.com/pierrejoye/grav into pierrejoye-develop

This commit is contained in:
Matias Griese
2021-02-08 12:40:49 +02:00
11 changed files with 49 additions and 3 deletions

View File

@@ -271,7 +271,8 @@ class Page implements PageInterface
if ($exists) {
$aPage = new Page();
$aPage->init(new SplFileInfo($path), $languageExtension);
$aPage->route($this->route());
$aPage->rawRoute($this->rawRoute());
$route = $aPage->header()->routes['default'] ?? $aPage->rawRoute();
if (!$route) {
$route = $aPage->route();

View File

@@ -1196,7 +1196,6 @@ abstract class Utils
if (count($parts) > 0 && in_array($parts[0], $languages_enabled)) {
return $parts[0];
}
return false;
}

View File

@@ -12,6 +12,10 @@ $grav = function () {
$grav = Grav::instance();
$grav['config']->init();
// This must be set first before the other init
$grav['config']->set('system.languages.supported', ['en', 'fr', 'vi']);
$grav['config']->set('system.languages.default_lang', 'en');
foreach (array_keys($grav['setup']->getStreams()) as $stream) {
@stream_wrapper_unregister($stream);
}

View File

@@ -0,0 +1,5 @@
---
title: Simple Page avec traduction
---
Simple Page Content in English

View File

@@ -0,0 +1,5 @@
---
title: Simple Page avec traduction
---
Page Simple FR

View File

@@ -0,0 +1,5 @@
---
title: Simple Page avec traduction
---
Page Simple FR

View File

@@ -236,6 +236,31 @@ class PagesTest extends \Codeception\TestCase\Test
self::assertSame('—-▸ Blog', $list['/blog']);
}
public function testTranslatedLanguages(): void
{
/** @var UniformResourceLocator $locator */
$locator = $this->grav['locator'];
$folder = $locator->findResource('tests://');
$page = $this->pages->get($folder . '/fake/simple-site/user/pages/04.page-translated');
$this->assertInstanceOf(PageInterface::class, $page);
$translatedLanguages = $page->translatedLanguages();
$this->assertIsArray($translatedLanguages);
$this->assertSame(["en" => "/page-translated", "fr" => "/page-translated"], $translatedLanguages);
}
public function testLongPathTranslatedLanguages(): void
{
/** @var UniformResourceLocator $locator */
$locator = $this->grav['locator'];
$folder = $locator->findResource('tests://');
$page = $this->pages->get($folder . '/fake/simple-site/user/pages/05.translatedlong/part2');
$this->assertInstanceOf(PageInterface::class, $page);
$translatedLanguages = $page->translatedLanguages();
$this->assertIsArray($translatedLanguages);
$this->assertSame(["en" => "/translatedlong/part2", "fr" => "/translatedlong/part2"], $translatedLanguages);
}
public function testGetTypes(): void
{
}

View File

@@ -299,7 +299,9 @@ class UtilsTest extends \Codeception\TestCase\Test
$oneLanguageNotEnabled = reset($languagesNotEnabled);
if (count($languagesEnabled)) {
self::assertTrue(Utils::pathPrefixedByLangCode('/' . $languagesEnabled[0] . '/test'));
$languageCodePathPrefix = Utils::pathPrefixedByLangCode('/' . $languagesEnabled[0] . '/test');
$this->assertIsString($languageCodePathPrefix);
$this->assertTrue(in_array($languageCodePathPrefix, $languagesEnabled));
}
self::assertFalse(Utils::pathPrefixedByLangCode('/' . $oneLanguageNotEnabled . '/test'));