A resource bundle is a Java .properties file that contains locale-specific data. Given this Resource Bundle: [source, properties] .src/main/resources/io/micronaut/docs/i18n/messages_en.properties ---- include::test-suite/src/test/resources/io/micronaut/docs/i18n/messages_en.properties[] ---- [source, properties] .src/main/resources/io/micronaut/docs/i18n/messages_es.properties ---- include::test-suite/src/test/resources/io/micronaut/docs/i18n/messages_es.properties[] ---- You can use api:context.i18n.ResourceBundleMessageSource[], an implementation of api:context.MessageSource[] which eases accessing link:{jdkapi}/java.base/java/util/ResourceBundle.html[Resource Bundles] and provides cache functionality, to access the previous messages. WARNING: Do not instantiate a new `ResourceBundleMessageSource` each time you retrieve a message. Instantiate it once, for example in a factory. snippet::io.micronaut.docs.i18n.MessageSourceFactory[tags="imports,clazz",indent=0,title="MessageSource Factory Example"] Then you can retrieve the messages supplying the locale: snippet::io.micronaut.docs.i18n.I18nSpec[tags="test",indent=0,title="ResourceBundleMessageSource Example"]