You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2012/08/28 14:01:21 UTC
svn commit: r1378095 -
/sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/I18NFilter.java
Author: cziegeler
Date: Tue Aug 28 12:01:21 2012
New Revision: 1378095
URL: http://svn.apache.org/viewvc?rev=1378095&view=rev
Log:
SLING-2576 : I18n: Allow multiple ResourceBundleProviders, use the first one responding for a given locale
Modified:
sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/I18NFilter.java
Modified: sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/I18NFilter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/I18NFilter.java?rev=1378095&r1=1378094&r2=1378095&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/I18NFilter.java (original)
+++ sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/I18NFilter.java Tue Aug 28 12:01:21 2012
@@ -179,7 +179,9 @@ public class I18NFilter implements Filte
public Locale getDefaultLocale() {
// ask all registered providers, use the first one that returns
- for (final ResourceBundleProvider provider : sortedProviders) {
+ final ResourceBundleProvider[] providers = sortedProviders;
+ for(int i=providers.length-1; i >= 0; i--) {
+ final ResourceBundleProvider provider = providers[i];
final Locale locale = provider.getDefaultLocale();
if (locale != null) {
return locale;
@@ -190,7 +192,9 @@ public class I18NFilter implements Filte
public ResourceBundle getResourceBundle(final Locale locale) {
// ask all registered providers, use the first one that returns
- for (final ResourceBundleProvider provider : sortedProviders) {
+ final ResourceBundleProvider[] providers = sortedProviders;
+ for(int i=providers.length-1; i >= 0; i--) {
+ final ResourceBundleProvider provider = providers[i];
final ResourceBundle bundle = provider.getResourceBundle(locale);
if (bundle != null) {
return bundle;
@@ -201,7 +205,9 @@ public class I18NFilter implements Filte
public ResourceBundle getResourceBundle(final String baseName, final Locale locale) {
// ask all registered providers, use the first one that returns
- for (final ResourceBundleProvider provider : sortedProviders) {
+ final ResourceBundleProvider[] providers = sortedProviders;
+ for(int i=providers.length-1; i >= 0; i--) {
+ final ResourceBundleProvider provider = providers[i];
final ResourceBundle bundle = provider.getResourceBundle(baseName, locale);
if (bundle != null) {
return bundle;