diff --git a/libs/Format/HTML/Template.php b/libs/Format/HTML/Template.php
index fa0900b..baa1488 100644
--- a/libs/Format/HTML/Template.php
+++ b/libs/Format/HTML/Template.php
@@ -1,4 +1,6 @@
-registerFunction('translate', function ($key) {
$language = $this->params['language'];
- if (array_key_exists($key, $this->params['strings'][$language])) {
- return $this->params['strings'][$language][$key];
+ if (isset($this->engine->getData('page')['page'])) {
+ $page = $this->engine->getData('page');
+ if (is_array($page['page'])) {
+ $language = $page['page']['language'];
+ }
+ }
+
+ if (array_key_exists($language, $this->params['strings'])) {
+ if (array_key_exists($key, $this->params['strings'][$language])) {
+ return $this->params['strings'][$language][$key];
+ }
}
if (array_key_exists($key, $this->params['strings']['en'])) {
diff --git a/tests/Format/HTML/TableOfContentsTest.php b/tests/Format/HTML/TableOfContentsTest.php
index 78582d4..d2b50c6 100644
--- a/tests/Format/HTML/TableOfContentsTest.php
+++ b/tests/Format/HTML/TableOfContentsTest.php
@@ -1,5 +1,6 @@
[
+ 'Page.md' => 'some text content',
+ ],
+ 'it' => [
+ 'Page.md' => 'another page',
+ ],
+ ];
+ $root = vfsStream::setup('root', null, $structure);
+
+ $config->setDocumentationDirectory($root->url());
+ $config['valid_content_extensions'] = ['md'];
+ $config['mode'] = Daux::STATIC_MODE;
+ $config['index_key'] = 'index.html';
+
+ $tree = new Root($config);
+ Builder::build($tree, []);
+
+ return $tree;
+ }
+
+ public function translateDataProvider()
+ {
+ return [
+ ['Previous', 'en'],
+ ['Pagina precedente', 'it'],
+ ];
+ }
+
+ /**
+ * @dataProvider translateDataProvider
+ *
+ * @param $expectedTranslation
+ * @param $language
+ */
+ public function testTranslate($expectedTranslation, $language)
+ {
+ $current = $language . '/Page.html';
+ $entry = $this->prophesize(Entry::class);
+
+ $config = new Config();
+ $config['tree'] = $this->getTree($config);
+ $config['title'] = '';
+ $config['index'] = $entry->reveal();
+ $config['language'] = $language;
+ $config['base_url'] = '';
+ $config['base_page'] = '';
+ $config['templates'] = '';
+ $config['page']['language'] = $language;
+
+ $config['html'] = [
+ 'search' => '',
+ 'float' => false,
+ 'toggle_code' => false,
+ 'piwik_analytics' => '',
+ 'google_analytics' => '',
+ ];
+ $config['theme'] = [
+ 'js' => [''],
+ 'css' => [''],
+ 'fonts' => [''],
+ 'favicon' => '',
+ 'templates' => 'name',
+ ];
+ $config['strings'] = [
+ 'en' => ['Link_previous' => 'Previous',],
+ 'it' => ['Link_previous' => 'Pagina precedente',],
+ ];
+
+
+ $config->setCurrentPage(DauxHelper::getFile($config['tree'], $current));
+
+ $template = new Template($config);
+ $value = $template->getEngine($config)->getFunction('translate')->call(null, ['Link_previous']);
+
+ $this->assertEquals($expectedTranslation, $value);
+ }
+}