I do something similar in my projects. All texts are added to a single Texts family. It has a "tag" instance variable defined on it. I can specify unique tags for each text object on the layout, for example "player_score", "game_over" etc.
There is an array containing all these tags with strings translated to different languages.
And I have a single "Texts On Created" event, which looks up the string in the current language for each text by its tag.
I chose to use an array because it's easy to edit, but this can be a dictionary or JSON.
Here is a (paid) template with this and a few other useful mechanics for game localization:
construct.net/en/game-assets/game-templates/multi-language-support-c3-2407