im not sure if the advanced menu makes the use of the same config.ini as mentioned in the wiki or a highly modified one.
technically you need to check for each possible language your game has and set
a) the game language to the language name found in the config
b) activate a condition for each langauge to make use of it in menus, etc
(very simplified)
outside your read/write functions but in the same definition script
local DE_language = getObject("Conditions[config_language]")
local EN_language = getObject("Conditions[config_language]")
inside your read function you could check for a language string (very simplified. the script in the advanced menue maybe does a loop through a table)
if line:find("language = english") then EN_language.ConditionValue = true; DE_language.ConditionValue = false; game.StandardLanguage = Languages["English"] end
if line:find("language = german") then DE_language.ConditionValue = true; EN_language.ConditionValue = false game.StandardLanguage = Languages["German"] end
it sets the standard language to e.g. english or german and sets the condition for the set language to true. You could easily expand this by adding more languages .
Setting it via button you can use normal actions. Therefore set the game language and the conditions with the action parts.
Your images for different languages should have the condition set for which language they should show up.