[Java中实现国际化] - 配合thymeleaf实现中英文自动切换(多语言)

MOOC该链接第三章第二节

尚硅谷SpringBoot全集 web开发国际化 xjbo  (7天,过期可以留言索取)

resources下建立文件

上到下为: 默认的,英语(美国),中文(中国)

en

login.btn=Sign In
login.password=PassWord
login.remember=Remember Me
login.tip=Please sign in
login.username=UserName

zh

login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名

页面:

<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>登录页面</title>

    <!-- Bootstrap Core CSS -->
    <link href="/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">

    <!-- MetisMenu CSS -->
    <link href="/vendor/metisMenu/metisMenu.min.css" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="/dist/css/sb-admin-2.css" rel="stylesheet">

    <!-- Custom Fonts -->
    <link href="/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn‘t work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

</head>

<body>

    <div class="container">
        <div class="row">
            <div class="col-md-4 col-md-offset-4">
                <div class="login-panel panel panel-default">
                    <div class="panel-heading">
                        <h3 class="panel-title" th:text="#{login.tip}">Please sign in</h3>
                    </div>
                    <div class="panel-body">
                        <form role="form">
                            <fieldset>
                                <div class="form-group">
                                    <input class="form-control" placeholder="UserName" name="UserName" type="text"
                                            th:placeholder="#{login.username}" autofocus>
                                </div>
                                <div class="form-group">
                                    <input class="form-control" placeholder="PassWord" name="PassWord" type="password"
                                            th:placeholder="#{login.password}">
                                </div>
                                <div class="checkbox">
                                    <label>
                                        <input name="remember" type="checkbox" value="Remember Me">[[#{login.remember}]]
                                    </label>
                                </div>
                                <!-- Change this to a button or input when using this as a form -->
                                <a href="index.html" class="btn btn-lg btn-success btn-block" th:text="#{login.btn}">Login</a>
                            </fieldset>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- jQuery -->
    <script src="/vendor/jquery/jquery.min.js"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="/vendor/bootstrap/js/bootstrap.min.js"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="/vendor/metisMenu/metisMenu.min.js"></script>

    <!-- Custom Theme JavaScript -->
    <script src="../dist/js/sb-admin-2.js"></script>

</body>

</html>

别忘记引入thymeleaf依赖以及配置它

pom

        <!--thymeleaf依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

properties

#thymeleaf
spring.thymeleaf.prefix=/views/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

spring.messages.basename=i18n.login
spring.messages.basename=i18n.register
spring.messages.basename=i18n.other

待加入非thymeleaf的html. jsp使用方式

原文地址:https://www.cnblogs.com/ukzq/p/10280559.html

时间: 2024-08-28 08:17:49

[Java中实现国际化] - 配合thymeleaf实现中英文自动切换(多语言)的相关文章

[Java 进阶]Java中的国际化

背景知识 现代软件开发,往往做出的应用程序不止给一个国家的人去使用.不同国家的人往往存在语言文字不通的问题.由此产生了国际化(internationalization).多语言(multi-language).本地化(locale)这些词,它们其实都是一个意思,支持多种语言,提供给不同国家的用户使用. 语言编码.国家/地区编码 做web 开发的朋友可能多多少少接触过类似 zh-cn, en-us 这样的编码字样. 这些编码是用来表示指定的国家地区的语言类型的.那么,这些含有特殊含义的编码是如何产

Vue国际化处理 vue-i18n 以及项目自动切换中英文

1. 环境搭建 命令进入项目目录,执行以下命令安装vue 国际化插件vue-i18n npm install vue-i18n --save 2. 项目增加国际化翻译文件 在项目的src下添加lang文件夹增加中文翻译文件(zh_CN.js)以及英文翻译文件(EN.js),里面分别存储项目中需要翻译的信息. lang文件获取地址 3. 项目引入 在项目的main.js中引入vue-i18n插件,引入对应的翻译文件(zh_CN.js/EN.js)引入并结合Element-UI 国际化. 入下图 4

基于eclipse软件中英文自由切换设定 --- 语言代码简表

创建快捷方式放到桌面上,在桌面的快捷路径后加上常用的参数即可,如: 英文-> -nl en_US 繁體-> -nl zh_TW 简体-> -nl zh_CN 下面给出其他"区域语言代码",只要在-nl 后面即可实现界面语言切换 繁体中文是 -nl "zh_TW" 简体中文是 -nl "zh_CN". (其它语言以此类推) 这里我在网上查了一个表,给出其他语言代码的简表:en 英文en_US 英文 (美国)ar 阿拉伯文ar_AE

Spring学习系列(四)——Spring中的国际化

1.Java中的国际化国际化(Internationalization)简称 i18n,简单来说就是不同国家/地区/语言的用户,访问同一个程序,得到对应的本地化资源. 首先要确定国家/地区/语言(Locale类) 然后根据不同的Locale获取对应的本地化资源(locale敏感的). 而本地化资源相关的主要有两种:ResourceBundle和Format抽象类的子类.①Jdk为ResourceBundle抽象类提供了两个子类(ListResourceBundle和PropertyResourc

Android UI中英文自动显示问题

最近做了一个项目,其中有个视频和图片需要添加各种水印(日期,地点,经纬度,用户ID,产品ID等)问题,而且水印还要支持中英文自动切换显示.功能设计和实现算是比较顺利.昨天测试部给了一个小Bug,那就是在英文环境下,视频预览界面水印能正常显示英文,但通过拍照所获得的图片上的水印却显示为中文!而添加水印这一块代码是完全一样的啊?问题出在哪呢? 经过反复测试,没有发现代码有明显问题.于是凭直觉,就想难道是context上下文不同有关?于是检查代码发现context确实不同,在Activity View

java基础----&gt;java中国际化的实现

应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产.开发这样的程序的过程,就称为国际化.今天,我们就开始学习java中国际化的代码实现. Java国际化主要通过如下3个类完成 java.util.ResourceBundle:用于加载一个资源包 java.util.Locale:对应一个特定的国家/区域.语言环境. java.text.MessageFormat:用于将消息格式化 为实现程序的国际化,必须提供程序所需要的资源文件.资源文件的内容由key-value对

JAVA中框架总结

Struts2 Struts2本质可以分为三个部分? 答:核心控制层(FilterDispatcher),业务控制层(Action)和用户实现企业业务逻辑组件. Struts2的基本流程? (1)客户端初始化一个指向Servlet容器的请求:(2)这个请求经过一系列过滤去(Filter):(3)接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action:(4)如果要调用某个Action,FilterDispa

Java中SSM框架全面知识点,业务时间的精神食粮

------------------异常问题 :出现重复定义了访问路径java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'userController' bean method 406 请求头和响应头不匹配做ajax注册的时候 出现的问题 ClassNotFindException说明缺少jar包 或者名字写错 NoSuchBeanDefinitionException 如果BeanFactory在Sprin

开发人员建议阅读:Spring Boot 架构中的国际化支持实践

pring Boot 主要通过 Maven 或 Gradle 这样的构建系统以继承方式添加依赖,同时继承了 Spring 框架中的优秀元素,减少了 Spring MVC 架构中的复杂配置,内置 Tomcat,Jetty 容器,使用 Java application 运行程序,而不是传统地把 WAR 包置于 Tomcat 等容器中运行,从而简化加速开发流程.此外,Spring Boot 学习简单.轻量级.容易扩展.基于这些优秀的特点,Spring Boot 成为了蓬勃发展的快速应用开发领域的领导者