Sorry, we don't support your browser.  Install a modern browser

Different page structure for different languages.#150

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.

4 years ago

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

4 years ago

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.

4 years ago

I don’t see why V2 shouldn’t be possible with Kirby, even without a multisite setup?

4 years ago

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.

4 years ago

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.

4 years ago

Thanks for explanation, but this is actually not what I suggested. I would love to keep all this functions of course.

4 years ago