Weird behavior with the default value of a json field while using the i18n plugin

System Information
  • Strapi Version: 4.6.0
  • Operating System: macOS Big Sur Version 11.6.2
  • Database: SQLite
  • Node Version: v16.16.0
  • NPM Version: 8.11.0
  • Yarn Version:

Hi,

I want to develop a language system which has the JSON key/value pairs filled in the strapi cms which later I can retrieve from my front-end for the input labels, placeholders, button texts… for each locale.

I want to have a default fallback value of the JSON field in each locale, something like this:
src/api/translation/content-types/translation/schema.json

{
  "attributes": {
    "translations": {
      "pluginOptions": {
        "i18n": {
          "localized": true
        }
      },
      "type": "json",
      "required": false,
      "default": {
        "header": {
          "button_sign_up": "Join Now",
          "button_sign_in": "Login",
          "button_deposit": "Deposit",
          "user_dropdown": {
            "text_my_balance": "My Balance",
            "text_withdrawable": "Withdrawable",
            "text_bonus": "Bonus"
          }
        }
      }
    }
  }
}

What’s weird about this, is that sometimes when I modify the JSON field in any of the locales in the cms panel, the value of the JSON is saved as a string instead of a JSON object:

In my opinion it kind of looks like it’s modifying the default value of the JSON field.

I would gladly accept any suggestions on how to maybe handle this a little better :slight_smile: