Estamos desenvolvendo um sistema que precisa ser multi-idioma e gostaria de saber qual a melhor opção para implementar isso, visto que o usuário escolhe o idioma antes de acessar o sistema.
Eu já vi 2 maneiras:
ter um aquivo .properties para cada idioma que guardaria todas as Strings do sistema (Labels, ToolTips etc.)
ter um arquivos .xml para cada idioma. (Não entendi bem como funciona dessa forma).
O pessoal aqui deu uma idéia de termos uma tabela no BD que conteria o Atributo (qual o Label, ToolTip etc.) e uma coluna para cada texto nas diversas línguas.
O XML ou arquivo properties no fim das contas tem o mesmo resultado. Só são formas diferentes de definir o recurso.
Eu particularmente gosto mais do properties por sua simplicidade, mas se você quiser um pouco mais de recursos (não sei quais seriam) o XML pode ser uma saída.
A idéia do banco de dados é boa e quase essencial se você for permitir que os usuários criem widgets, campos e/ou mensagens na sua aplicação, caso contrário eu acho um overhead desnecessário (tanto na programação quanto no desempenho).