Summary
Full Transcript
Sesion 32B Curso Certificación Java 17 (Preparándonos para la versión 21) Código: https://github.com/cursosmrugerio/cursoJava17_21 # 🌍 Java Certification 17: ResourceBundle y Properties - Localización Completa En este video completamos el capítulo 11 de Java Certification 17 con el tema más avanzado: **Carga de Propiedades con ResourceBundle** y manejo de archivos Properties para internacionalización. ## 📋 CONTENIDO DEL VIDEO ### 🔥 PARTE 1: RESOURCEBUNDLE FUNDAMENTALS (00:01 - 18:29) - **Archivos Properties**: Estructura y convención de nombres - **ResourceBundle**: Carga automática según Locale - **Jerarquía de Búsqueda**: Algoritmo de fallback de Java - **MissingResourceException**: Manejo de claves no encontradas - **Orden de Prioridad**: nombre_idioma_país → nombre_idioma → nombre_default ### 🔧 PARTE 2: FORMATEO DINÁMICO DE MENSAJES (18:29 - 26:24) - **MessageFormat**: Parámetros dinámicos en mensajes - **Plantillas Personalizadas**: Uso de {0}, {1} en properties - **Combinación de APIs**: ResourceBundle + MessageFormat - **Ejemplos Prácticos**: Saludos personalizados con nombres ### ⚙️ PARTE 3: CLASE PROPERTIES (26:24 - Final) - **Properties vs ResourceBundle**: Diferencias y casos de uso - **Carga Manual**: Lectura directa de archivos .properties - **Métodos Clave**: getProperty(), setProperty() con defaults - **Configuración Dinámica**: Cambio de valores en tiempo de ejecución ## 🔧 EJEMPLOS PRÁCTICOS INCLUIDOS ✅ Sistema de zoológico multiidioma (español/inglés) ✅ Archivos properties con convención: zoo_es.properties, zoo_en.properties ✅ Búsqueda automática con fallback al archivo base ✅ Mensajes parametrizados: "Hola {0}, bienvenido a {1}" ✅ Configuración de horarios y precios con Properties ✅ Manejo de MissingResourceException ## 📚 CONCEPTOS CLAVE CUBIERTOS ### ResourceBundle: - **Convención de nombres**: `nombre_idioma_país.properties` - **Algoritmo de búsqueda**: específico → idioma → default → excepción - **Carga automática**: `ResourceBundle.getBundle("nombre", locale)` - **Acceso a valores**: `bundle.getString("clave")` ### MessageFormat: - **Plantillas**: `"Hola {0}, bienvenido a {1}"` - **Formateo**: `MessageFormat.format(pattern, param1, param2)` - **Integración**: Combina con ResourceBundle para mensajes dinámicos ### Properties: - **Carga manual**: `properties.load(inputStream)` - **Valores default**: `getProperty("clave", "valorDefault")` - **Configuración runtime**: Modificación durante ejecución ## 🎯 IDEAL PARA: - Desarrolladores trabajando con aplicaciones internacionales - Preparación para Java Certification 17 - Sistemas que requieren soporte multiidioma - Configuración dinámica de aplicaciones ## ⏰ TIMESTAMPS PRINCIPALES: - 00:01 - Introducción a ResourceBundle - 06:06 - Algoritmo de búsqueda de archivos - 10:23 - Jerarquía y orden de prioridad - 15:23 - MessageFormat con parámetros - 19:11 - Clase Properties vs ResourceBundle - 25:13 - Configuración dinámica en runtime - 32:34 - Repaso del libro y ejercicios ## 🔗 RECURSOS ADICIONALES: - Código fuente completo en repositorio - Archivos properties de ejemplo incluidos - Documento PDF con resumen de conceptos - Ejercicios prácticos para el examen ## 🚀 PRÓXIMO VIDEO: **Resolución de 100+ preguntas de práctica** mezclando Exceptions, Localization y ResourceBundle #JavaCertification #Java17 #ResourceBundle #Internationalization #Localization #Properties #MessageFormat #Programming #Tutorial --- 📌 **¿Te gustó el video?** Dale like 👍 y suscríbete para más contenido de Java Certification 17 💬 **¿Tienes dudas sobre ResourceBundle?** Déjamelas en los comentarios, respondo todas las preguntas 🔔 **Activa las notificaciones** para no perderte la próxima sesión de resolución de ejercicios 📁 **Código disponible** en el repositorio - ¡revisa todos los ejemplos prácticos!
