Author: radu
Date: Mon Feb 29 16:20:56 2016
New Revision: 1732914

URL: http://svn.apache.org/viewvc?rev=1732914&view=rev
Log:
SLING-5137 - Locale in Sightly I18N RuntimeExtension is not used correctly

* updated io.sightly.tck to 1.2.2 - this version provides a test for different 
localised languages
* switched to using org.apache.commons.lang.LocaleUtils for detecting the 
correct locale when the
locale string contains variants

Added:
    
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/
    
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de.json
      - copied, changed from r1732913, 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json
    
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de_ch.json
Removed:
    
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json
Modified:
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
    sling/trunk/bundles/scripting/sightly/testing-content/pom.xml
    sling/trunk/bundles/scripting/sightly/testing/pom.xml

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java?rev=1732914&r1=1732913&r2=1732914&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
 Mon Feb 29 16:20:56 2016
@@ -22,9 +22,9 @@ import java.util.Enumeration;
 import java.util.Locale;
 import java.util.Map;
 import java.util.ResourceBundle;
-
 import javax.script.Bindings;
 
+import org.apache.commons.lang.LocaleUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Properties;
@@ -81,11 +81,17 @@ public class I18nRuntimeExtension implem
                     }
                 }
             } else {
-                Locale l = new Locale(locale);
-                ResourceBundle resourceBundle = 
resourceBundleProvider.getResourceBundle(l);
-                if (resourceBundle != null && resourceBundle.containsKey(key)) 
{
-                    return resourceBundle.getString(key);
+                try {
+                    Locale l = LocaleUtils.toLocale(locale);
+                    ResourceBundle resourceBundle = 
resourceBundleProvider.getResourceBundle(l);
+                    if (resourceBundle != null && 
resourceBundle.containsKey(key)) {
+                        return resourceBundle.getString(key);
+                    }
+                } catch (IllegalArgumentException e) {
+                    LOG.warn("Invalid locale detected: {}.", locale);
+                    return text;
                 }
+
             }
         }
         LOG.warn("No translation found for string '{}' using expression 
provided locale '{}' or default locale '{}'",

Modified: sling/trunk/bundles/scripting/sightly/testing-content/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing-content/pom.xml?rev=1732914&r1=1732913&r2=1732914&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/testing-content/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/testing-content/pom.xml Mon Feb 29 
16:20:56 2016
@@ -100,7 +100,7 @@
                                 <artifactItem>
                                     <groupId>io.sightly</groupId>
                                     <artifactId>io.sightly.tck</artifactId>
-                                    <version>1.2.1</version>
+                                    <version>1.2.2</version>
                                     <type>jar</type>
                                     
<outputDirectory>${project.build.directory}/sightlytck/</outputDirectory>
                                     
<includes>**/*.html,**/*.js,**/*.java</includes>

Copied: 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de.json
 (from r1732913, 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json)
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de.json?p2=sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de.json&p1=sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json&r1=1732913&r2=1732914&rev=1732914&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de.json
 Mon Feb 29 16:20:56 2016
@@ -16,6 +16,11 @@
         "jcr:primaryType" : "sling:MessageEntry",
         "sling:key" : "world",
         "sling:message" : "Welt"
+    },
+    "bun" : {
+        "jcr:primaryType" : "sling:MessageEntry",
+        "sling:key" : "bun",
+        "sling:message" : "Brötchen"
     }
 
 }

Added: 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de_ch.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de_ch.json?rev=1732914&view=auto
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de_ch.json
 (added)
+++ 
sling/trunk/bundles/scripting/sightly/testing-content/src/main/resources/SLING-INF/apps/sightly/locales/de_ch.json
 Mon Feb 29 16:20:56 2016
@@ -0,0 +1,11 @@
+{
+    "jcr:primaryType" : "nt:unstructured",
+    "jcr:mixinTypes" : ["mix:language"],
+    "jcr:language" : "de_ch",
+    "bun" : {
+        "jcr:primaryType" : "sling:MessageEntry",
+        "sling:key" : "bun",
+        "sling:message" : "Brötli"
+    }
+
+}

Modified: sling/trunk/bundles/scripting/sightly/testing/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing/pom.xml?rev=1732914&r1=1732913&r2=1732914&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/testing/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/testing/pom.xml Mon Feb 29 16:20:56 
2016
@@ -203,7 +203,7 @@
         <dependency>
             <groupId>io.sightly</groupId>
             <artifactId>io.sightly.tck</artifactId>
-            <version>1.2.1</version>
+            <version>1.2.2</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>


Reply via email to