es.gob.afirma.standalone.SimpleAfirmaMessages Maven / Gradle / Ivy
/* Copyright (C) 2011 [Gobierno de Espana]
* This file is part of "Cliente @Firma".
* "Cliente @Firma" 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 2 of the License, or (at your option) any later version.
* - or The European Software License; either version 1.1 or (at your option) any later version.
* You may contact the copyright holder at: [email protected]
*/
package es.gob.afirma.standalone;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/** Gestión de mensajes del aplicativo. */
public final class SimpleAfirmaMessages {
private static final String BUNDLE_NAME = "properties/simpleafirmamessages"; //$NON-NLS-1$
private static ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_NAME/*, Locale.getDefault()*/);
private SimpleAfirmaMessages() { /* No permitimos la instanciacion */ }
/** Obtiene un mensaje.
* @param key Clave del mensaje
* @return Mensaje correspondiente a la clave */
public static String getString(final String key) {
try {
return bundle.getString(key);
}
catch (final MissingResourceException e) {
return '!' + key + '!';
}
}
/** Recupera el texto identificado con la clave proporcionada y sustituye las
* subcadenas de tipo "%i" por el texto correspondiente segun posicion de los
* parametros indicados despues de la clave. Las posiciones empiezan a contar
* por 0. Así, el texto "%0" se sustituira por el segundo parámetro
* de la función, el texto "%1" por el siguiente,...
* Introducir más de 10 cadenas distintas para sustituir
* conllevará errores en el resultado.
* @param key Clave del texto.
* @param params Parámetros que se desean insertar.
* @return Recurso textual con las subcadenas sustituidas. */
public static String getString(final String key, final String... params) {
String text;
try {
text = bundle.getString(key);
}
catch (final Exception e) {
return '!' + key + '!';
}
if (params != null && params.length > 0) {
for (int i = 0; i < params.length; i++) {
if (params[i] != null) {
text = text.replace("%" + i, params[i]); //$NON-NLS-1$
}
}
}
return text;
}
/** Cambia la localización a la establecida por defecto. */
static void changeLocale() {
bundle = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault());
}
}