/* Copyright 2012-2017 Jose Robson Mariano Alves This file is part of bgfinancas. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package badernageral.bgfinancas.idioma; import badernageral.bgfinancas.biblioteca.sistema.Janela; import badernageral.bgfinancas.modelo.Configuracao; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; import javafx.collections.FXCollections; import javafx.collections.ObservableList; public final class Linguagem { private static final Linguagem instance = new Linguagem(); private final List<String> listaIdiomas = Arrays.asList("Portugues Brasileiro","English"); private final List<String> listaLocales = Arrays.asList("pt_BR","en_US"); private ResourceBundle resourceBundle; private Locale locale; private String moeda; private Linguagem(){ carregarIdioma(); } public final void carregarIdioma(){ Configuracao.verificar(); try { String[] idioma = Configuracao.getPropriedade("idioma").split("_"); locale = new Locale(idioma[0],idioma[1]); }catch (Exception ex) { Janela.showException(ex); locale = new Locale("en","US"); } resourceBundle = ResourceBundle.getBundle("badernageral/bgfinancas/idioma/Linguagem", locale); moeda = Configuracao.getPropriedade("moeda"); } public String getMensagem(String mensagem){ if(mensagem.equals("moeda")){ return moeda; }else{ try{ return resourceBundle.getString(mensagem); }catch(MissingResourceException ex){ Janela.showException(ex); return "?????"; } } } public ObservableList<String> getListaIdiomas(){ ObservableList<String> idiomas = FXCollections.observableList(listaIdiomas); return idiomas; } public String idiomaToLocale(String idioma){ return listaLocales.get(listaIdiomas.indexOf(idioma)); } public String locateToIdioma(String locale){ return listaIdiomas.get(listaLocales.indexOf(locale)); } public String getIdiomaSistema(){ String idioma = Configuracao.getPropriedade("idioma"); return locateToIdioma(idioma); } public static Linguagem getInstance(){ return instance; } public String getNomeMes(int mes){ switch(mes){ case 1: return getMensagem("janeiro"); case 2: return getMensagem("fevereiro"); case 3: return getMensagem("marco"); case 4: return getMensagem("abril"); case 5: return getMensagem("maio"); case 6: return getMensagem("junho"); case 7: return getMensagem("julho"); case 8: return getMensagem("agosto"); case 9: return getMensagem("setembro"); case 10: return getMensagem("outubro"); case 11: return getMensagem("novembro"); case 12: return getMensagem("dezembro"); default: return getMensagem("inexistente"); } } }