This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I am going to enhance a web app which need i18n in it, all the data is in Oralce 10g to i18nlize, so for that what i need to do, do i need to prefer code point and does the thin jdbc driver OracleDriver supports the UTF-8 character set or i need somthing more.
Often times in Java, i18n for application details (like title bars and button labels) is stored in text files since java has built in support for this. What kind of items do you need to put in the database that need to be internationalized?
Actually database contains simple text (varchar/char) columns that are finally Labels coming in jsp page. As in existing application, it is already working, but just need translation, so we do not want them to get from properties files (ResourceBundles).
Are you saying every text label on a jsp page comes from the database?
Databases aren't as readily designed for I18n as properties files because its rare user data needs to be internationalized. For example, a user's name and address don't change just because the language does. To put it another way, had you used resource bundles to begin with the notion of adding a new translation would be as simple as dropping a properties file into a directory.
Another way to think about this is that internally, data is not internationalized. Internationalization is a client-specific feature. Two users can be view the same data differently depending on their local. Therefore, if you consider the 3-tiered architecture paradigm (raw data, middletier server, display-level), localization is entirely handled by the display-level architecture often assisted by the middletier server. In this model, having a database concerned with i18n is generally bad design since it mixes client-tier code with raw data.