I’m working on an application that uses an approach to localization where they just call a translate function for every piece of text on a page. It leads to a lot of redundant code that looks like this (psuedocode):
function page_load():
translateControlText(control1, language);
translateControlText(control2, language);
translateControlText(control3, language);
translateControlText(control4, language);
translateControlText(control5, language);
translateControlText(control6, language);
translateImageAlt(image1, language);
...100 more lines of this on a single page
The application is massive, so I don’t have the opportunity to rewrite the translation logic. However, I think I could just loop through all of the controls on a page, check their type, and translate the appropriate property. At least then I would just have to call 1 function per page, and then throw it in a base page or master. However, I probably wouldn’t want to translate certain things, such as table cells. Regardless, there is an attribute called Localizable that is on many properties such as Control.Text and Image.Alt. I’d like to be able to get a list of every string on the Page that is stored in a Property marked Localizable. Is this possible? Is this possible without reflection?
Going with this for now, I’m sure there’s something faster out there though…