If you decide for a multilingual CMS it always comes to the question, how the systems handles language versions. There are two ways to do this. Both solutions have advantages and disadvantages.
V1: Same navigation structure for every language (what Kirby currently does)
It means less work and it is easy to maintain. You only need to create, delete and change status of one page and it affects all available languages. But it’s very inflexible. You can’t have different page ordering, different page status and you can’t have different pages at all.
Currently the structure in Kirby looks like this:
content
1_page
default.de.txt
default.en.txt
2_another_page
default.de.txt
default.en.txt
_drafts
example
default.de.txt
default.en.txt
...
V2: Different navigation structure for every language
It means more work, because you have to create every page in every language, but you have much more flexibility. It allows to create a slimmed down language version of a website with just a couple of pages. It allows different page ordering if wanted and different page status as well.
Also you benefit from better permission control for translators, because they stay in their own language and can’t destroy a different language version.
Structure could look like this:
content
de
1_german_page
default.txt
2_another_german_page
default.txt
_drafts
german_example
default.xt
en
1_another_english_page
default.txt
2_english_page
default.txt
_drafts
english_example
default.xt
...
Wouldn’t it be great, if Kirby could offer both solutions via configuration?
Actually I don’t know if it is technically possible, but it would be another absolute unique selling point for a great CMS like Kirby. As far as I know, there are no systems that do this.
If your site has totally different content in other languages, then it’s no longer a multilingual website but an entire different website imho.
But the good news is Kirby has a solution for that too: https://getkirby.com/docs/cookbook/setup/multisite
It’s not just about totally different content, but also about page status, page ordering and the other issues I described. I maintain projects with up to 8 languages, and believe it to me: Not every content is necessary and available in every language after finishing your initial version. This suggestion is based on my experience with multilingual projects.
I already use the multisite setup in a project, which absolutely makes sense for projects on different domains, but not for different language versions on the same domain.
I don’t see why V2 shouldn’t be possible with Kirby, even without a multisite setup?
Is this already possible? I don’t know how. Is it anywhere documented or has it to be realized with a plug-in. Unfortunately I am not able to write own plugins.
Obviously, with such a setup you would loose Kirby’s translation features, in particular the t()
helper, $kirby->languages(), non-translatable fields in the Panel and other stuff in the same way as a multisite. But yes, setting up different pages per language has been possible all the time.
Thanks for explanation, but this is actually not what I suggested. I would love to keep all this functions of course.