Short Description: I have a multi-language setup (de, en). Right now, Kirby gives default content of de back if no translation .txt-file in en is available.
I was reading these old posts and also documentation to solve it on my own first
- Language fallback trouble - #4 by mauricehh
- Check if text is translated
- Multilanguage content synchronisation
- also found
I have a solution with that piece of code:
$page->content($kirby->language('en')->code())->get('text')->toBlocks()->isEmpty() It works good if a .txt in en is available with a field text:.
With the return value of
isEmpty() in an If-statement, I can handle a redirect to 404-page with
go('error') if no translation is existing.
I was wondering if there is a better way to do that with $ContentTranslation or another way? Because if no translation txt-file is given, then default language de is placed and no redirect to 404-page is happening. That means the English site is placing german content. That’s shouldn’t be like that. It could provoke a logic error provoked by human…
Here are some code of experiment with $contentTranslation: But I can’t get a value back…
echo("ContentTranslation: "); echo($page->contenttranslation()->exists()); echo($page->contenttranslation()->isDefault()); echo($page->contenttranslation()->content()); echo($page->contenttranslation()->id());