Seems like it's a better idea to tie it to a persistent value and have separate sets of captions for each language, rather than let Renpy's translation function do the work, the captiontool in my game is very buggy regarding the translation function.
I'm taking a look into this myself and trying to find a way, but I'd like your word on it, thanks :D
textbutton "English" action Language(None), SetField(persistent, "lang", "english") textbutton "日本語" action Language("japanese"), SetField(persistent, "lang", "japanese")