-
Bug
-
Resolution: Won't Fix
-
P3
-
None
-
1.3.0, 6
-
generic
-
generic
Name: rlT66838 Date: 05/09/2000
java version "1.3beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3beta-O)
Java(TM) HotSpot Client VM (build 1.3beta-O, mixed mode)
When formatting numbers for the Arabic locales, the European digits are used
instead of the Arabic digits. While some Arabic locales might use European
digits as a default this is not the case everyone. The following code uses
NumberFormat to format a number using the default locale.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.util.*;
import java.lang.*;
public class ArabicTest extends JPanel {
static JFrame frame;
public ArabicTest() {
NumberFormat nf = NumberFormat.getInstance();
JLabel label = new JLabel(nf.format(1234567.89));
label.setFont(new Font("Lucida Sans", Font.PLAIN, 22));
add(label);
}
public static void main(String s[]) {
ArabicTest panel = new ArabicTest();
frame = new JFrame("ArabicTest");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.getContentPane().add("Center", panel);
frame.pack();
frame.setVisible(true);
}
}
If we ran this as follows:
java -Duser.language=ar -Duser.region=EG ArabicTest
we should get the number formatted using the Arabic digits. I have tried this
with every Arabic locale and it doesn't work.
(Review ID: 103178)
======================================================================
Same issue reported by a CAP member:
There is an bug for numbers with the arabic locale. The Arab is using
arabic-indic digits. All arabic locales is using the default (english)
number format because there in no entry "NumberElements" in the
LocaleElements_ar.class. You can verify it with:
java.util.Locale locale = new java.util.Locale("ar");
//java.util.Locale locale = new java.util.Locale("th", "TH", "TH");
//java.util.Locale locale = new java.util.Locale("hi", "IN");
java.text.DecimalFormat df = (java.text.DecimalFormat)java.text.DecimalFormat.getNumberInstance(locale);
System.out.println(df.format(12345));
We have find only 2 Locales with other digits "th_TH_TH" and "hi_IN".
###@###.### 2005-04-14 14:50:34 GMT
java version "1.3beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3beta-O)
Java(TM) HotSpot Client VM (build 1.3beta-O, mixed mode)
When formatting numbers for the Arabic locales, the European digits are used
instead of the Arabic digits. While some Arabic locales might use European
digits as a default this is not the case everyone. The following code uses
NumberFormat to format a number using the default locale.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.util.*;
import java.lang.*;
public class ArabicTest extends JPanel {
static JFrame frame;
public ArabicTest() {
NumberFormat nf = NumberFormat.getInstance();
JLabel label = new JLabel(nf.format(1234567.89));
label.setFont(new Font("Lucida Sans", Font.PLAIN, 22));
add(label);
}
public static void main(String s[]) {
ArabicTest panel = new ArabicTest();
frame = new JFrame("ArabicTest");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.getContentPane().add("Center", panel);
frame.pack();
frame.setVisible(true);
}
}
If we ran this as follows:
java -Duser.language=ar -Duser.region=EG ArabicTest
we should get the number formatted using the Arabic digits. I have tried this
with every Arabic locale and it doesn't work.
(Review ID: 103178)
======================================================================
Same issue reported by a CAP member:
There is an bug for numbers with the arabic locale. The Arab is using
arabic-indic digits. All arabic locales is using the default (english)
number format because there in no entry "NumberElements" in the
LocaleElements_ar.class. You can verify it with:
java.util.Locale locale = new java.util.Locale("ar");
//java.util.Locale locale = new java.util.Locale("th", "TH", "TH");
//java.util.Locale locale = new java.util.Locale("hi", "IN");
java.text.DecimalFormat df = (java.text.DecimalFormat)java.text.DecimalFormat.getNumberInstance(locale);
System.out.println(df.format(12345));
We have find only 2 Locales with other digits "th_TH_TH" and "hi_IN".
###@###.### 2005-04-14 14:50:34 GMT
- relates to
-
JDK-4238709 AWT Arabic Windows handling of Arabic and European number contexts
- Open
-
JDK-4263520 Can't compile source with ASCII digits on Arabic Solaris
- Closed
-
JDK-4337267 Arabic Numeral Shaping
- Resolved
-
JDK-5109078 Request support for 8859-6-{i,e} and 8859-8-{i,e} encodings
- Closed