Until now i always had the translations be empty strings if some columns did not have the full translation, but this is going too far on the non-NULL policy: surely they have a translations, but we do not know it yet; this is the exact type of situations NULL values are for. Besides the philosophical distinction, having empty strings instead of NULLs is less practical, because i no longer can user coalesce() to retrieve the default language text in case the translation for that particular field is not available, even if the row for a locale exists. In time i will change all _i18n relations, but for now only these from campsite follow the “new policy”.
Languages
PLpgSQL
69.3%
Go
25.1%
CSS
4.3%
JavaScript
0.8%
Scheme
0.4%