检查语言环境 - 这很容易吗?

时间:2011-08-12 11:41:05

标签: java internationalization

如何检查JVM支持的语言环境数量?是否有一些方法可以做到这一点或其他什么? 感谢

2 个答案:

答案 0 :(得分:6)

您可以使用Locale.getAvailableLocales();方法检查区域设置。

代码

import java.util.Arrays;
import java.util.Locale;

import javax.swing.table.*;
import javax.swing.*;

class ShowLocales {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Locale[] locales = Locale.getAvailableLocales();
                LocaleTableModel tableModel = new LocaleTableModel(locales);
                JTable localeTable = new JTable(tableModel);
                localeTable.setAutoCreateRowSorter(true);
                JOptionPane.showMessageDialog(
                    null, 
                    new JScrollPane(localeTable));
            }
        });
    }
}

class LocaleTableModel extends AbstractTableModel {

    private Locale[] locales;

    LocaleTableModel(Locale[] locales) {
        this.locales = locales;
    }

    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return "Code";
            case 1:
                return "Language";
            case 2:
                return "Country";
            case 3:
                return "Variant";
        }
        return "";
    }

    public Object getValueAt(int row, int column) {
        switch (column) {
            case 0:
                return locales[row].toString();
            case 1:
                return locales[row].getDisplayLanguage();
            case 2:
                return locales[row].getDisplayCountry();
            case 3:
                return locales[row].getDisplayVariant();
        }
        return null;
    }

    public int getRowCount() {
        return locales.length;
    }

    public int getColumnCount() {
        return 4;
    }
}

E.G。

Some locales known to JVM

答案 1 :(得分:1)

请参阅:http://java.sun.com/developer/technicalArticles/J2SE/locale/

  

Java平台支持哪些语言环境?您可以创建任何您喜欢的区域设置。但是,您的运行时环境可能不完全支持您创建的 Locale 对象。

     

如果您想知道可以创建的 Locale 对象,答案很简单:您可以创建任何您想要的语言环境。构造函数不会抱怨非ISO参数。但是,问题的一个更有用的重述是:对于哪些语言环境,类库提供了更广泛的信息?图书馆可以为哪些区域设置提供整理,时间,日期,数字和货币信息?此外,您可能会询问运行时环境支持哪些脚本或编写系统。