Use separate table cell for each control. Allows text to wrap independently and ensures correct alignment when text flows in alternative directions. Don't enable NoWrap on tables as other languages may require more space and so not display correctly Don't use Align attribute in tables as can override layout in cultures using right-to-left text. Decouple check boxes and radio boxes from their text. Placing descriptive text in separate cell allows wrapping to take place for longer translations.
Use browser settings as default, but allow user to override.
Use two page properties to set language and culture:
- Culture - dictates result of culture-dependent functions, e.g. date, number, currency formatting. Can only define specific cultures, e.g. es-MX, fr-FR, etc. not neutral cultures.
- UICulture - which global or local resources to be loaded. Accepts both neutral and specific cultures.
Define by overriding page's InitializeCulture method.
Typically done in base page from which other pages derive.
Specify culture decoratively at Page or Site level
To define for entire website add
<globalization> section to Web.config:
<globalization uiculture="es" culture="es-MX" />
To declare for page set in page directive:
<%@ Page uiculture="es" culture="es-MX" %>