You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2008/01/02 20:36:14 UTC

svn commit: r608197 - /incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/bidi/BidiHelper.java

Author: jmsnell
Date: Wed Jan  2 11:36:13 2008
New Revision: 608197

URL: http://svn.apache.org/viewvc?rev=608197&view=rev
Log:
Minor improvement to BidiHelper to use the new RFC4646 lang tag impl

Modified:
    incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/bidi/BidiHelper.java

Modified: incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/bidi/BidiHelper.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/bidi/BidiHelper.java?rev=608197&r1=608196&r2=608197&view=diff
==============================================================================
--- incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/bidi/BidiHelper.java (original)
+++ incubator/abdera/java/trunk/extensions/main/src/main/java/org/apache/abdera/ext/bidi/BidiHelper.java Wed Jan  2 11:36:13 2008
@@ -24,7 +24,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.abdera.i18n.lang.Lang;
+import org.apache.abdera.i18n.rfc4646.Lang;
 import org.apache.abdera.i18n.text.CharUtils;
 import org.apache.abdera.model.Base;
 import org.apache.abdera.model.Document;
@@ -184,7 +184,15 @@
   }
   
   private static final String[] RTL_LANGS = {
-    "ar","fa","ur","ps","syr","dv","he","yi"};
+    "ar",
+    "dv",
+    "fa",
+    "he",
+    "ps",
+    "syr",
+    "ur",
+    "yi"};
+  
   private static final String[] RTL_SCRIPTS = {
     "arab","avst","hebr","hung","lydi","mand",
     "mani","mero","mong","nkoo","orkh","phlv",
@@ -226,17 +234,17 @@
    */
   public static <T extends Element>Direction guessDirectionFromLanguage(T element, boolean ignoredir) {
     if (!ignoredir && hasDirection(element)) return getDirection(element);
-    Lang lang = element.getLanguageTag();
-    if (lang == null) {
-      Locale l = Locale.getDefault();
-      lang = new Lang(l.getLanguage());
-    }
-    if (lang.getSubtagCount() > 0) {
-      String script = lang.getSubtag(0);
+    String language = element.getLanguage();
+    Lang lang = 
+      language != null ? 
+        new Lang(language) :
+        new Lang(Locale.getDefault());
+    if (lang.getScript() != null) {
+      String script = lang.getScript().getName();
       if (Arrays.binarySearch(RTL_SCRIPTS, script.toLowerCase()) > -1)
         return Direction.RTL;
     }
-    String primary = lang.getPrimary();
+    String primary = lang.getLanguage().getName();
     if (Arrays.binarySearch(RTL_LANGS, primary.toLowerCase()) > -1) 
           return Direction.RTL;
     return Direction.UNSPECIFIED;