当前位置: 首页 > 网络应用技术

春季系列的国际化

时间:2023-03-06 18:23:46 网络应用技术

  两天前,我去了一家电子商务公司接受采访:

  访调员:您在春季使用过这个东西吗?您可以介绍吗?

  我:春天对国际化有很好的支持,并且相对简单。您只需要根据该语言配置一些涂鸦文件,然后注册国际相关的bean。同时,您需要指定配置文件的位置。

  访调员:如果配置文件的内容更改?您是如何求解的?

  我:这是春季国际化的实施班。您可以检测到配置文件中的更改,这可以解决您的问题

  访调员:我们可以将这些国际配置投入到DB中吗?

  我:我还没有做这个地方。基本上,我们都将国际配置文件放在项目中的属性文件中。但是,鉴于我对春季的理解,春季扩张非常好。

  访调员:预期的薪水是多少?

  我:20,000

  访调员:恭喜,下周上班!

  为了促进所有人,准备完善这些知识,以便每个人面试和使用。

  简单的理解是对不同语言做出不同的响应。

  例如,有一个表格填写页面上的用户信息,并且有一个带有名称的输入框

  您可以在浏览器中选择一种语言

  选择中文时,将显示:

  选择英语时,将显示:

  国际化正在这样做,根据不同的语言显示不同的信息。

  因此,您需要支持国际化。您必须首先知道您选择的语言。Java用来指示包含国家和语言信息的区域语言的对象。

  语言环境中有一种更常用的施工方法

  2个参数:

  语言:语言

  国家:国家

  语言和国家的两个参数的值并不凌乱,在国际上有统一的标准:

  例如,语言的价值:zh表示中文,恩表示英语和中文可能在许多地区,例如在大陆地区:CN,新加坡:SG;许多国家也使用英语。

  民族语言缩写格式:语言国家,例如:ZH-CN(中国[中国]),ZH-SG(中国[新加坡]),EN-GB(英语[英国]),

  en-CA(英语[加拿大])。

  还有更多,我们不要在这里谈论它。《国家语言法典》为您提供:http://www.itsoku.com/article/282

  许多常用的语言环境对象是在该语言环境类中创建的。您可以直接使用它并随便列出它们:

  回顾上一个问题:与名称相对应的标签显示在页面上。我们需要根据密钥和本地信息获得相应的国际信息。春季提供了实施的这一部分。让我们看看下面的详细信息。

  春季中国通过Messageource支持了此界面

  内部有3种常用的方法来获取国际信息。让我们看一下

  ResourceBundleMessagesource这是基于Java的ResourceBundle基本类,该类允许仅通过资源名称加载国际资源来加载国际资源

  ReloadableReSorceBundleMessarce函数与第一类的功能相似。它具有更及时的刷新功能,允许在不重新启动系统的情况下提供资源信息

  StaticMessagesource允许其通过编程提供国际信息。一段时间以来,我们可以使用它来实施将国际信息存储在数据库中的功能。

  通常,当我们使用Spring时,我们将Spring容器与单词ApplicationContext一起使用。这些容器通常继承AbstractApplicationContext接口。该界面实现了上面的国际接口消息程序,因此通常使用具有国际功能的ApplicationContext容器。

  通常我们在应用程序容器中使用国际化的三个步骤

  步骤1:创建国际化文件

  步骤2:在容器中注册Messages程序键入BEAN。

  步骤3:致电AccractActactantex中的GetMessage获取国际信息。

  创建国际文档国际文档命名格式:name_ne语言_ region.properties

  我们有3个文件,这些文件放在以下目录中

  Message.Properties

  该文件的名称未指定本地信息。当系统找不到它时,它将使用此默认

  消息_zh_cn.properties:中文[中国]

  消息_en_gb.properties:英语[英国]

  在春季注册的Bean注册国际化必须是Messageource类型。bean名称必须为messageource。在这里,我们使用ResourceBundleMessagesOurcesourcesourcesourcesourcesourcesourceource

  @1:您需要注意这个地方的写作。您可以指定国际配置文件的位置。格式:路径/文件名,请注意,它不包括[语言_国家。属性]

  让我们服用测试案例

  运行输出

  第一行未指定语言环境。此时,系统将采用默认的语言环境对象。本地默认值中文[中国],即:zh_cn,因此您将获得媒介的内容。

  后两行指定语言环境对象以查找相应的国际文件并获取值。

  动态参数注意配置文件。个人介绍更为特别,包括内容的一部分。这是动态参数。打电话时,将其通过第二个参数以查看用法:

  运行输出

  在此类中,该功能与上述情况相似,但是有一个函数可以监视国际资源文档中的更改。有一种设置缓存时间的方法:

  -1:永远指示缓存

  0:每次获得国际化信息时,您都会再次阅读国际文件

  大于0:配置文件的最后读取时间超过了当前时间,并再次读取国际文档

  还有一种将缓存时间设置为几秒钟的方法,类似于类似

  让我们来这里示例

  message_zh_cn.properties

  相应的测试用例

  上面有一个周期。第一个输出后,修改中的地址如下,最终操作结果如下:

  使用注意:在线环境,最好设置缓存时间,并且性能会更好。

  我们介绍了上面的课程:此类允许通过编程进行国际信息,我们使用此类来实现从数据库获得国际信息的功能。

  该课程中有两种方法更重要:

  通过这两种方法添加国际配置信息。

  让我们看下面的案例

  自定义staticmessagesource类

  上类实现了Spring的初始化接口,并在接口中重写了AfterPropertiesset方法。此方法将在当前BEAN初始化后调用。在此方法中,模拟来自DB的国际信息,然后致电AddMessage配置国际信息信息

  参加Spring配置类,注册MessageFromDB到Spring Container

  测试示例

  运行输出

  当我的容器上方启动时,将调用该方法。该过程如下:

  如果您想使用国际化,则要使用国际化,这相对简单。只要实现以下接口,弹簧容器将自动调用此方法,注入它,然后我们可以使用国际化信息。

  本文介绍了国际化的使用,并涉及Java的语言环境类。该课程用于表示语言状态信息。在获取国际信息时,您需要带上此参数。常用的实施类需要了解,支持硬编码,配置国际信息。

  如果需要弹簧以支持国际化,则需要在MessageRece注册MessageRece的BEAN名称。这必须注意。

  在这一点上,每个人都可以轻松地应对上面的采访中的三个问题。