整装待发-实操程序国际化 | 带你学《Java语言高级特性》之二十九

简介: 在前两节了解了程序国际化的基本内容,并能够实现对相关功能的使用后,现在让我们一起来实操一个程序,使其完成国际化。

上一篇:使用ResourceBundle实现资源的统一调配 | 带你学《Java语言高级特性》之二十八

在前两节了解了程序国际化的基本内容,并能够实现对相关功能的使用后,现在让我们一起来实操一个程序,使其完成国际化。

【本节目标】
通过阅读本节内容,你将整合之前所学,依靠预设的资源文件,使用Locale进行自动调用,或使用ResourceBundle指定一个资源文件,完整完成对一个程序的国际化改造。

实现国际化程序开发

现在国际化程序的实现前期准备已经全部完成了,也就是说依靠资源文件、Locale、ResourceBundle类就可以实现国际化的处理操作,那么下面来进行国际化的程序实现(核心关键:读取资源信息)。
1、在CLASSPATH下建立:cn.mldn.message.Messages_zh_CN.properties(中文资源);
info=欢迎您的访问!

2、在CLASSPATH下建立:cn.mldn.message.Messages_en_US.properties(英文资源);
info=Welcome !
现在加上没有默认区域的资源文件,一共定义了三个资源:

image.png
三个资源文件

3、通过程序进行指定区域的资源信息加载

import java.util.ResourceBundle;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        ResourceBundle resource = ResourceBundle.getBundle("cn.mldn.message.Messages");
        String val = resource.getString("info");
        System.out.println(val);   //欢迎您的访问!
    }
}

此时在利用ResourceBundle类读取资源的时候并没有设置一个明确的Locale对象,但是发现“Messages_zh_CN”文件起作用了,因为这个方法里面默认加载的就是当前本地的Locale的资源:

public static final ResourceBundle getBundle(String baseName) {
    Class<?> caller = Reflection.getCallerClass();
return getBundleImpl(baseName, Locale.getDefault(), 
caller,getDefaultControl(caller,baseName));
}

4、如果现在有需要也可以修改当前的Locale环境,则可以使用ResourceBundle类中的如下方法:

获取ResourceBundle:

public static final ResourceBundle getBundle(String baseName, Locale locale);
import java.util.Locale;
import java.util.ResourceBundle;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Locale loc=new Locale("en","US");
        ResourceBundle resource = ResourceBundle.getBundle("cn.mldn.message.Messages",loc);
        String val = resource.getString("info");
        System.out.println(val);     //Welcome !
    }
}

如果现在有指定区域的资源文件存在的时候,那么没有设置区域的资源文件的信息将不会被读取。
资源文件读取顺序:读取指定区域的资源文件>默认的本地资源>公共的资源(没有区域设置)。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:教你借助占位符定制资源内容 | 带你学《Java语言高级特性》之三十
更多Java面向对象编程文章查看此处

相关文章
|
21天前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
204 1
|
2月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
278 3
|
2月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
527 1
|
2月前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
460 1
|
2月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
342 0
|
2月前
|
Java 测试技术 API
2025 年 Java 开发者必知的最新技术实操指南全览
本指南涵盖Java 21+核心实操,详解虚拟线程、Spring Boot 3.3+GraalVM、Jakarta EE 10+MicroProfile 6微服务开发,并提供现代Java开发最佳实践,助力开发者高效构建高性能应用。
309 4
|
21天前
|
Java API 数据库
2025 年最新 Java 实操学习路线,从入门到高级应用详细指南
2025年Java最新实操学习路线,涵盖从环境搭建到微服务、容器化部署的全流程实战内容,助你掌握Java 21核心特性、Spring Boot 3.2开发、云原生与微服务架构,提升企业级项目开发能力,适合从入门到高级应用的学习需求。
293 0
|
29天前
|
缓存 Java API
2025 年小白也能轻松上手的 Java 最新学习路线与实操指南深度剖析
2025年Java最新学习路线与实操指南,涵盖基础语法、JVM调优、Spring Boot 3.x框架、微服务架构及容器化部署,结合实操案例,助你快速掌握企业级Java开发技能。
201 0
|
2月前
|
JavaScript 安全 前端开发
Java开发:最新技术驱动的病人挂号系统实操指南与全流程操作技巧汇总
本文介绍基于Spring Boot 3.x、Vue 3等最新技术构建现代化病人挂号系统,涵盖技术选型、核心功能实现与部署方案,助力开发者快速搭建高效、安全的医疗挂号平台。
146 3
|
1月前
|
监控 Java API
2025 年全新出炉的 Java 学习路线:从入门起步到实操精通的详细指南
2025年Java学习路线与实操指南,涵盖Java 21核心特性、虚拟线程、Spring Boot 3、微服务、Spring Security、容器化部署等前沿技术,助你从入门到企业级开发进阶。
234 0