Provide interface translations for custom modules on Drupal 8
I feel that the answers when you search on the web for this problem are not clear enough so I want to make a compilation of the steps I follow to achieve this.
Drupal\Core\Entity\EntityType->hasLinkTemplate() (Line: 144)
Drupal\Core\Field\Plugin\Field\FieldFormatter\StringFormatter->viewElements() (Line: 69)
Drupal\manage_display\Plugin\Field\FieldFormatter\TitleFormatter->viewElements() (Line: 100)
Drupal\Core\Field\FormatterBase->view() (Line: 277)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple() (Line: 296)
Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay->buildMultiple() (Line: 356)
Drupal\Core\Entity\EntityViewBuilder->buildComponents() (Line: 29)
Drupal\node\NodeViewBuilder->buildComponents() (Line: 298)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple() (Line: 255)
Drupal\Core\Entity\EntityViewBuilder->build()
call_user_func_array() (Line: 107)
Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 914)
Drupal\Core\Render\Renderer->doCallback() (Line: 447)
Drupal\Core\Render\Renderer->doRender() (Line: 230)
Drupal\Core\Render\Renderer->render() (Line: 501)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 64)
__TwigTemplate_f94783f3d930bace1a3a24c8a167bc9b->doDisplay() (Line: 411)
Twig\Template->yield() (Line: 394)
Twig\Template->render() (Line: 51)
Twig\TemplateWrapper->render() (Line: 35)
Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
Drupal\Core\Theme\ThemeManager->render() (Line: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 517)
Drupal\Core\Render\Renderer->doRender() (Line: 230)
Drupal\Core\Render\Renderer->render() (Line: 501)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 89)
__TwigTemplate_136eeb743c88e61323b381d9eb071d8e->doDisplay() (Line: 411)
Twig\Template->yield() (Line: 394)
Twig\Template->render() (Line: 51)
Twig\TemplateWrapper->render() (Line: 35)
Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
Drupal\Core\Theme\ThemeManager->render() (Line: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 517)
Drupal\Core\Render\Renderer->doRender() (Line: 230)
Drupal\Core\Render\Renderer->render() (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->{closure:Drupal\Core\Render\MainContent\HtmlRenderer::prepare():235}() (Line: 638)
Drupal\Core\Render\Renderer::{closure:Drupal\Core\Render\Renderer::executeInRenderContext():638}()
Fiber->resume() (Line: 653)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 131)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 69)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() (Line: 246)
Symfony\Component\EventDispatcher\EventDispatcher::{closure:Symfony\Component\EventDispatcher\EventDispatcher::optimizeListeners():241}() (Line: 206)
Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 56)
Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 188)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
Drupal\Core\StackMiddleware\Session->handle() (Line: 30)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 203)
Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 140)
Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 89)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 61)
Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 54)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 753)
Drupal\Core\DrupalKernel->handle() (Line: 34)
Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run() (Line: 32)
require() (Line: 22)
require_once() (Line: 13)
Drupal\Core\Entity\EntityType->hasLinkTemplate() (Line: 144)
Drupal\Core\Field\Plugin\Field\FieldFormatter\StringFormatter->viewElements() (Line: 69)
Drupal\manage_display\Plugin\Field\FieldFormatter\TitleFormatter->viewElements() (Line: 100)
Drupal\Core\Field\FormatterBase->view() (Line: 277)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple() (Line: 296)
Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay->buildMultiple() (Line: 356)
Drupal\Core\Entity\EntityViewBuilder->buildComponents() (Line: 29)
Drupal\node\NodeViewBuilder->buildComponents() (Line: 298)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple() (Line: 255)
Drupal\Core\Entity\EntityViewBuilder->build()
call_user_func_array() (Line: 107)
Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 914)
Drupal\Core\Render\Renderer->doCallback() (Line: 447)
Drupal\Core\Render\Renderer->doRender() (Line: 230)
Drupal\Core\Render\Renderer->render() (Line: 501)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 64)
__TwigTemplate_f94783f3d930bace1a3a24c8a167bc9b->doDisplay() (Line: 411)
Twig\Template->yield() (Line: 394)
Twig\Template->render() (Line: 51)
Twig\TemplateWrapper->render() (Line: 35)
Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
Drupal\Core\Theme\ThemeManager->render() (Line: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 517)
Drupal\Core\Render\Renderer->doRender() (Line: 230)
Drupal\Core\Render\Renderer->render() (Line: 501)
Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 89)
__TwigTemplate_136eeb743c88e61323b381d9eb071d8e->doDisplay() (Line: 411)
Twig\Template->yield() (Line: 394)
Twig\Template->render() (Line: 51)
Twig\TemplateWrapper->render() (Line: 35)
Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
Drupal\Core\Theme\ThemeManager->render() (Line: 504)
Drupal\Core\Render\Renderer->doRender() (Line: 517)
Drupal\Core\Render\Renderer->doRender() (Line: 230)
Drupal\Core\Render\Renderer->render() (Line: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->{closure:Drupal\Core\Render\MainContent\HtmlRenderer::prepare():235}() (Line: 638)
Drupal\Core\Render\Renderer::{closure:Drupal\Core\Render\Renderer::executeInRenderContext():638}()
Fiber->resume() (Line: 653)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 235)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 131)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 69)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() (Line: 246)
Symfony\Component\EventDispatcher\EventDispatcher::{closure:Symfony\Component\EventDispatcher\EventDispatcher::optimizeListeners():241}() (Line: 206)
Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 56)
Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 188)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
Drupal\Core\StackMiddleware\Session->handle() (Line: 30)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 203)
Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 140)
Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 89)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 61)
Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 54)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 753)
Drupal\Core\DrupalKernel->handle() (Line: 34)
Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run() (Line: 32)
require() (Line: 22)
require_once() (Line: 13)
I feel that the answers when you search on the web for this problem are not clear enough so I want to make a compilation of the steps I follow to achieve this.
During Drupalcon Vienna the people from Drupal Moldova association invited me to be a featured speaker at Moldcamp 2017. I felt honored so reserved that weekend to go to the beautiful city of Chișinău.
Despite missing the whole Friday night and Saturday flying due to technical problems with my scheduled flight I got the chance to enjoy the Sunday with the blooming Moldovan Drupal community.