E ai galera, como estão todos?
:arrow: Na verdade não estou exatamente com um problema, seria mais uma dúvida mais relacionada a conceito.
Estou fazendo um framework, e neste há um módulo que trata a internacionalização. Neste módulo tenho um arquivo de configuração que irá carregar determinados atributos (idioma default, path do arquivo de resource, etc...) e quando o desenvolvedor chamar um determinado método informando a chave este trará uma msg internacionalizada...
:arrow: Bem ai que está minha dúvida. Como vou fazer para armazenar estes parâmetros. No momento estou criando uma classe com atributos estáticos onde deixarei as configurações carregadas. Esta seria a melhor solução ou teria outra forma :?: Pensei em carregar o arquivo de configuraçào em um VO qualquer e serializar o kra, mas não sei se isso ficaria legal... :?
Qualquer sugestão é bem vinda...
Vou transcrever a classe com os métodos staticos que eu criei pra receber as configurações.
Um grande abraço pra todos...
package br.com.ultra.i18n.config;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Hashtable;
import java.util.Locale;
/**
* Armazena os valores de configuração da
* internacionalização.<br>
* Quando o conjunto idioma atual e país atual forem iguais aos valores
* padrão será utilizado o arquivo de recursos que não possui
* informação da localidade
* <p>
* <b>ex:</b><br>
* <b>Padrão:</b> Protuguês (PT) / Brasil (br)<br>
* <b>Atual:</b> Protuguês (PT) / Brasil (br)<br>
* <b>Arquivo de Recurso:</b> nomeArquivo.properties<br>
* ----------------------<br>
* Padrão: Protuguês (PT) / Brasil (br)<br>
* Atual: Inglês (EN) / Estados Unidos (us)<br>
* Arquivo de Recurso: nomeArquivo_EN_us.properties
* <p>
* Se uma determinada chave não for localizada no arquivo referente ao idioma
* atual, automáticamente esta chave será localizada no arquivo padrão
*
* @author Rodrigo Souza
* @version 1.0
*/
public class ConfigValues implements Serializable {
private static final long serialVersionUID = 1L;
/**
* Preenche os valores de configuração
*/
public static synchronized void fillConfigValues() {
}
public static synchronized void changeLocale(Locale locale) {
}
public static synchronized String getCurrentCountry() {
return currentCountry;
}
public static synchronized String getCurrentLanguage() {
return currentLanguage;
}
public static synchronized String getDefaultCountry() {
return defaultCountry;
}
public static synchronized String getDefaultLanguage() {
return defaultLanguage;
}
public static synchronized Hashtable<String, InputStream> getResourceFiles() {
return resourceFiles;
}
/**
* Armazena o idioma padrão informada no arquivo de configuração.
*/
private static volatile String defaultLanguage = null;
/**
* Armazena o país padrão informado no arquivo de configuração.
*/
private static volatile String defaultCountry = null;
/**
* Armazena o idioma atual.
*/
private static volatile String currentLanguage = null;
/**
* Armazena o país atual.
*/
private static volatile String currentCountry = null;
/**
* Arquivos de recurso carregados
*/
private static volatile Hashtable<String, InputStream> resourceFiles = null;
}