Your solution seems a lot more complicated than it should be. The following works perfectly for me.
On the page load containing the checkbox run the following JavaScript:
// LOAD LANGUAGE FILE
$(document).i18n();
// SET CHECK BOX LABEL
Appery("checkbox_name").attr("data-i18n","language_translation");
Appery("checkbox_name").attr("data-i18n-target","label.ui-btn");
Leave the language attributes under more properties blank. You don't need them as you will be calling the translations when the page gets loaded.
It seems pointless to actually put the checkbox inside of the html container when you can simply set the label when the page loads; Especially if you are going to be getting and setting local storage variables from the checkbox.
Hopefully this will help some people out.