protected function normaliseMessage($key, $value, $locale)
    {
        if (!is_array($value)) {
            return $value;
        }
        if (isset($value['default'])) {
            return $value['default'];
        }
        // Plurals
        $pluralised = i18n::encode_plurals($value);
        if ($pluralised) {
            return $pluralised;
        }

        // Warn if mismatched plural forms
        trigger_error("Localisation entity {$locale}.{$key} is invalid", E_USER_WARNING);
        return null;
    }