Title tag in layout is not translated
I don't know if this a bug, but title tag in layout is not translated.
For example,
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>Forgot Your Password</title>
</head>
<body>....</body>
</page>
Can you confirm if this a bug or not?
magento2 layout localisation page-layouts
add a comment |
I don't know if this a bug, but title tag in layout is not translated.
For example,
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>Forgot Your Password</title>
</head>
<body>....</body>
</page>
Can you confirm if this a bug or not?
magento2 layout localisation page-layouts
add a comment |
I don't know if this a bug, but title tag in layout is not translated.
For example,
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>Forgot Your Password</title>
</head>
<body>....</body>
</page>
Can you confirm if this a bug or not?
magento2 layout localisation page-layouts
I don't know if this a bug, but title tag in layout is not translated.
For example,
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>Forgot Your Password</title>
</head>
<body>....</body>
</page>
Can you confirm if this a bug or not?
magento2 layout localisation page-layouts
magento2 layout localisation page-layouts
edited Jan 8 '18 at 9:01
Teja Bhagavan Kollepara
2,94841847
2,94841847
asked Mar 10 '16 at 18:23
jstuardojstuardo
342719
342719
add a comment |
add a comment |
6 Answers
6
active
oldest
votes
Here is the code for @zzpaul comment above
<referenceBlock name="page.main.title">
<arguments>
<argument name="title" xsi:type="string" translate="true">Forgot Your Password</argument>
</arguments>
</referenceBlock>
Just use it in your custom customer_account_forgotpassword.xml
add a comment |
currently it still does not seem possible to set a title in the head section and translate it. There is still an open issue for this bug: https://github.com/magento/magento2/issues/2951
you can actually execute the method setTitle via Layout or in code to set a translated title (like mentioned in the issue):
in Layout:
<referenceBlock name="page.main.title">
<action method="setPageTitle">
<argument translate="true" name="title" xsi:type="string">My Dashboard</argument>
</action>
</referenceBlock>
in code:
$this->pageConfig->getTitle()->set(__('Create New Customer Account'));
1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
add a comment |
You can also use Factory class
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
/** @var MagentoFrameworkViewResultPage $resultPage */
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('My Title'));
return $resultPage;
}
add a comment |
Magento bug. Add a question mark to match the corresponding entry in your translation file.
'Forgot Your Password'
'Forgot Your Password?'
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
In my case it worked just like that.
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
<head>
<title>Shared products</title>
</head>
<body>
...
translation csv file:
"Shared products","Translated title"
Flushed the cache and the translated title showed up immediately. Tested on Magento 2.2.0 in development mode.
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
Need add translate to your theme locale file in i18n.
Seeems bug is in main translate file,
where added -
"Contact Us","Kontaktieren Sie uns",module,Magento_Contact
so, will translated in Magento_Contact module.
But header with title - is Magento_Theme module :D
Easy fix - in your theme create directory i18n , file de_DE.csv
and put
"Contact Us","Kontaktieren Sie uns"
after run
php bin/magento setup:upgrade AND
php bin/magento cache:flush
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f105683%2ftitle-tag-in-layout-is-not-translated%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
6 Answers
6
active
oldest
votes
6 Answers
6
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here is the code for @zzpaul comment above
<referenceBlock name="page.main.title">
<arguments>
<argument name="title" xsi:type="string" translate="true">Forgot Your Password</argument>
</arguments>
</referenceBlock>
Just use it in your custom customer_account_forgotpassword.xml
add a comment |
Here is the code for @zzpaul comment above
<referenceBlock name="page.main.title">
<arguments>
<argument name="title" xsi:type="string" translate="true">Forgot Your Password</argument>
</arguments>
</referenceBlock>
Just use it in your custom customer_account_forgotpassword.xml
add a comment |
Here is the code for @zzpaul comment above
<referenceBlock name="page.main.title">
<arguments>
<argument name="title" xsi:type="string" translate="true">Forgot Your Password</argument>
</arguments>
</referenceBlock>
Just use it in your custom customer_account_forgotpassword.xml
Here is the code for @zzpaul comment above
<referenceBlock name="page.main.title">
<arguments>
<argument name="title" xsi:type="string" translate="true">Forgot Your Password</argument>
</arguments>
</referenceBlock>
Just use it in your custom customer_account_forgotpassword.xml
edited Dec 21 '17 at 9:40
Maarten Wolfsen
601730
601730
answered Sep 6 '16 at 9:20
LucScuLucScu
1,177928
1,177928
add a comment |
add a comment |
currently it still does not seem possible to set a title in the head section and translate it. There is still an open issue for this bug: https://github.com/magento/magento2/issues/2951
you can actually execute the method setTitle via Layout or in code to set a translated title (like mentioned in the issue):
in Layout:
<referenceBlock name="page.main.title">
<action method="setPageTitle">
<argument translate="true" name="title" xsi:type="string">My Dashboard</argument>
</action>
</referenceBlock>
in code:
$this->pageConfig->getTitle()->set(__('Create New Customer Account'));
1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
add a comment |
currently it still does not seem possible to set a title in the head section and translate it. There is still an open issue for this bug: https://github.com/magento/magento2/issues/2951
you can actually execute the method setTitle via Layout or in code to set a translated title (like mentioned in the issue):
in Layout:
<referenceBlock name="page.main.title">
<action method="setPageTitle">
<argument translate="true" name="title" xsi:type="string">My Dashboard</argument>
</action>
</referenceBlock>
in code:
$this->pageConfig->getTitle()->set(__('Create New Customer Account'));
1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
add a comment |
currently it still does not seem possible to set a title in the head section and translate it. There is still an open issue for this bug: https://github.com/magento/magento2/issues/2951
you can actually execute the method setTitle via Layout or in code to set a translated title (like mentioned in the issue):
in Layout:
<referenceBlock name="page.main.title">
<action method="setPageTitle">
<argument translate="true" name="title" xsi:type="string">My Dashboard</argument>
</action>
</referenceBlock>
in code:
$this->pageConfig->getTitle()->set(__('Create New Customer Account'));
currently it still does not seem possible to set a title in the head section and translate it. There is still an open issue for this bug: https://github.com/magento/magento2/issues/2951
you can actually execute the method setTitle via Layout or in code to set a translated title (like mentioned in the issue):
in Layout:
<referenceBlock name="page.main.title">
<action method="setPageTitle">
<argument translate="true" name="title" xsi:type="string">My Dashboard</argument>
</action>
</referenceBlock>
in code:
$this->pageConfig->getTitle()->set(__('Create New Customer Account'));
answered Mar 10 '16 at 19:13
David VerholenDavid Verholen
5,28611130
5,28611130
1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
add a comment |
1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
1
1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
– Paul
Aug 3 '16 at 14:09
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
see my answer, it is the right way magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:44
add a comment |
You can also use Factory class
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
/** @var MagentoFrameworkViewResultPage $resultPage */
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('My Title'));
return $resultPage;
}
add a comment |
You can also use Factory class
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
/** @var MagentoFrameworkViewResultPage $resultPage */
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('My Title'));
return $resultPage;
}
add a comment |
You can also use Factory class
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
/** @var MagentoFrameworkViewResultPage $resultPage */
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('My Title'));
return $resultPage;
}
You can also use Factory class
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
PageFactory $resultPageFactory
) {
$this->resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
/** @var MagentoFrameworkViewResultPage $resultPage */
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('My Title'));
return $resultPage;
}
answered Oct 18 '16 at 20:41
Xenocide8998Xenocide8998
926725
926725
add a comment |
add a comment |
Magento bug. Add a question mark to match the corresponding entry in your translation file.
'Forgot Your Password'
'Forgot Your Password?'
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
Magento bug. Add a question mark to match the corresponding entry in your translation file.
'Forgot Your Password'
'Forgot Your Password?'
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
Magento bug. Add a question mark to match the corresponding entry in your translation file.
'Forgot Your Password'
'Forgot Your Password?'
Magento bug. Add a question mark to match the corresponding entry in your translation file.
'Forgot Your Password'
'Forgot Your Password?'
answered Jul 7 '17 at 10:47
anonomousanonomous
211
211
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
In my case it worked just like that.
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
<head>
<title>Shared products</title>
</head>
<body>
...
translation csv file:
"Shared products","Translated title"
Flushed the cache and the translated title showed up immediately. Tested on Magento 2.2.0 in development mode.
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
In my case it worked just like that.
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
<head>
<title>Shared products</title>
</head>
<body>
...
translation csv file:
"Shared products","Translated title"
Flushed the cache and the translated title showed up immediately. Tested on Magento 2.2.0 in development mode.
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
In my case it worked just like that.
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
<head>
<title>Shared products</title>
</head>
<body>
...
translation csv file:
"Shared products","Translated title"
Flushed the cache and the translated title showed up immediately. Tested on Magento 2.2.0 in development mode.
In my case it worked just like that.
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
<head>
<title>Shared products</title>
</head>
<body>
...
translation csv file:
"Shared products","Translated title"
Flushed the cache and the translated title showed up immediately. Tested on Magento 2.2.0 in development mode.
answered Jan 8 '18 at 8:19
ZankarZankar
1216
1216
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
NO, this is wrong, thumb down, see my answer magento.stackexchange.com/a/134903/23344
– LucScu
Feb 23 '18 at 11:43
add a comment |
Need add translate to your theme locale file in i18n.
Seeems bug is in main translate file,
where added -
"Contact Us","Kontaktieren Sie uns",module,Magento_Contact
so, will translated in Magento_Contact module.
But header with title - is Magento_Theme module :D
Easy fix - in your theme create directory i18n , file de_DE.csv
and put
"Contact Us","Kontaktieren Sie uns"
after run
php bin/magento setup:upgrade AND
php bin/magento cache:flush
add a comment |
Need add translate to your theme locale file in i18n.
Seeems bug is in main translate file,
where added -
"Contact Us","Kontaktieren Sie uns",module,Magento_Contact
so, will translated in Magento_Contact module.
But header with title - is Magento_Theme module :D
Easy fix - in your theme create directory i18n , file de_DE.csv
and put
"Contact Us","Kontaktieren Sie uns"
after run
php bin/magento setup:upgrade AND
php bin/magento cache:flush
add a comment |
Need add translate to your theme locale file in i18n.
Seeems bug is in main translate file,
where added -
"Contact Us","Kontaktieren Sie uns",module,Magento_Contact
so, will translated in Magento_Contact module.
But header with title - is Magento_Theme module :D
Easy fix - in your theme create directory i18n , file de_DE.csv
and put
"Contact Us","Kontaktieren Sie uns"
after run
php bin/magento setup:upgrade AND
php bin/magento cache:flush
Need add translate to your theme locale file in i18n.
Seeems bug is in main translate file,
where added -
"Contact Us","Kontaktieren Sie uns",module,Magento_Contact
so, will translated in Magento_Contact module.
But header with title - is Magento_Theme module :D
Easy fix - in your theme create directory i18n , file de_DE.csv
and put
"Contact Us","Kontaktieren Sie uns"
after run
php bin/magento setup:upgrade AND
php bin/magento cache:flush
answered 12 mins ago
AlexAlex
245110
245110
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f105683%2ftitle-tag-in-layout-is-not-translated%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown