Java IO流 之 国际化 多语言实例

Posted verejava

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO流 之 国际化 多语言实例相关的知识,希望对你有一定的参考价值。

http://www.verejava.com/?id=16994875552823

/**
    题目: 民航飞机票用户登录验证系统
            1. 键盘输入选择英文还是中文系统 (1:中文, 2:英文)
            2. 键盘输入用户名和密码
            3. 对输入的用户名和密码判断不能为空
            4. 对输入的用户名和密码进行登录验证

    思路: 
        1. 抽象出类:
            1.1 用户(User)
            1.2 用户管理类(UserManager)
        2. 找出类关系:
            2.1 User -> UserManager
        3. 找出类属性:
            3.1 User(用户名,密码)
        4. 找出方法:
            4.1 用户登录验证 UserManager{boolean isLogin(User user)}
*/
import java.util.Scanner;
import java.util.Locale;
import java.util.ResourceBundle;
import java.text.MessageFormat;
public class TestLocaleApplication
{
    public static void main(String[] args)
    {
        Scanner in=new Scanner(System.in);
        System.out.println("请选择中文 还是 英文环境 (1:中文, 2:英文)");
        int number=Integer.parseInt(in.nextLine());
        //根据输入的数字创建对应的国家语言
        Locale locale=LocaleFactory.createLocale(number);
        ResourceBundle bundle=ResourceBundle.getBundle("validation",locale);

        System.out.println(bundle.getString("inputUsername"));
        String username=in.nextLine();
        System.out.println(bundle.getString("inputPassword"));
        String password=in.nextLine();
        //输入验证
        if(username==null||username.equals(""))
        {
            System.out.println(bundle.getString("validUsername"));
            return;
        }
        if(password==null||password.equals(""))
        {
            System.out.println(bundle.getString("validPassowrd"));
            return ;
        }

        //验证登录
        User user=new User(username,password);
        UserManager um=new UserManager();
        if(um.isLogin(user))
        {
            System.out.println(MessageFormat.format(bundle.getString("loginSuccess"),username,username));
        }
        else
        {
            System.out.println(bundle.getString("loginFail"));
        }
    }
}
class User
{
    private String username;
    private String password;

    public User(String username,String password)
    {
        this.username=username;
        this.password=password;
    }

    public String getUsername()
    {
        return this.username;
    }
    public void setUsername(String username)
    {
        this.username=username;
    }
    public String getPassword()
    {
        return this.password;
    }
    public void setPassword(String password)
    {
        this.password=password;
    }
}
class UserManager
{
    /**
        用户登录验证
    */
    public boolean isLogin(User user)
    {
        if(user!=null&&user.getUsername().equals("admin")&&user.getPassword().equals("1"))
        {
            return true;
        }
        return false;
    }
}
/**
    创建语言Locale类的工厂
*/
class LocaleFactory
{
    /**
        根据输入 (1:创建中文Locale, 2:英文 创建英文的Locale)
    */
    public static Locale createLocale(int number)
    {
        if(number==1)
            return new Locale("zh","CN");
        if(number==2)
            return new Locale("en","US");
        return null;
    }

}

http://www.verejava.com/?id=16994875552823

以上是关于Java IO流 之 国际化 多语言实例的主要内容,如果未能解决你的问题,请参考以下文章

Qt系列文章之三十九(Qt多语言国际化程序实例设计实现)

java:jsp: ResourceBundle国际化多语言

Flutter之国际化多语言

多语言国际化

Android国际化之多语言(配置及应用内设置)✈️

低代码平台多语言国际化(i18n)技术方案