Tackling translations

Ok we are doing a lot of dual language sites. Maybe someone has figured out better system than us so i ask.

Kirby https://getkirby.com/docs/cheatsheet/field-methods/isTranslated is nice addition but there is case where this is problematic.

Doing blog posts that have two translations is fine. Usually you have one main language and when you start to translate it is mostly cut and paste from translator. This might mean 5 minutes window where blogpost will show up as translated but content might be messed (the page is live while you are editing).

The problem is people don’t understand that invisible button is global for whole page and its translations.

This gets much worse when we are talking about pages not blogposts (meaning example.com/pricing). Many translated pages have different content. You might have different pricing or whole new sections of the page added (especialy if you are using modules or builder to make site). The process might take some time - corrections from translators, approving etc.

What happens then is that users tend to make page invisible so nobody can see this working version. Of course while they do that they also unknowingly hide the original page.

Solutions we have used so far:

  1. Staging area - this is good thing to have overall but it is also overkill sometimes. It is also more demanding because users have to save page and then publish the new version of a site.
  2. Custom checkbox on every page - This is sort of OK but introduces need to filter every page and have the check in panel. Most importantly people get confused what the hell invisible then means. I guess this could be better if you ditch kirbys visible altogether, hide the button and basicaly roll your own implementation of invisible.
  3. Your own languages in content - Basically doing structure like /en /de. This is sometimes desireable when pages greatly differ. You might have just default language and then some minimal translations with completely different content.

Any other ideas?

Yes, I think that is the best option if you have real translations and a staging site doesn’t make sense. There is a plugin that helps with that as well: GitHub - flokosiol/kirby-translations: Translations field for Kirby 2

The you can still use visible/invisible flags to publish/unpublish pages (in all languages), provided that you really make these pages inaccessible (because an invisible page is still accessible via its URL unless you do something to prevent this).

didnt know that plugin as well. i have been using pretty basic bool checkboxes such as

$page->translationfinished()->bool()

to decide if content was translated, so i am happy to try out that plugin as well it seems helpful because being able to delete a language version is a feature i could’ve required a couple of times already.

+1