I know that this is improper: esc_attr_e( $options[$input['Input']] );
Can anyone lend me a hand on how to make this proper?
It is not possible to make that proper, because what you're doing makes no sense in the first place.
Translation is meant to happen on fixed strings. So a string like "yes" becomes "sí", or "oui", or "ja". This is done by replacing the fixed text in your code with text from some translation file that literally has "yes" = "ja", for the German case.
$options[$input['Input']] is some string that is coming from user input in some way? In which case, it cannot be translated. Why? Because it isn't running things through Google Translate here. It's doing a lookup in the MO file and finding the appropriate pre-translated string.
But, what is in
$options[$input['Input']]? It's an array of something, and you're using
$input['Input'] as an index to that array. If, somewhere, there are strings of text, then they need to be translated there, where they are defined, probably using the
__() function. And here, where you have the
esc_attr_e() function call, you need to be using
echo esc_attr() instead. Translation belongs where the strings of text are.