> Java > java지도 시간 > Java Servlet은 어떻게 국제화를 지원합니까?

Java Servlet은 어떻게 국제화를 지원합니까?

PHPz
풀어 주다: 2024-04-16 14:06:02
원래의
618명이 탐색했습니다.

Java Servlet에서는 국제화된 리소스 번들과 Locale 클래스를 사용하여 국제화를 수행합니다. 구체적인 단계는 다음과 같습니다. 국제화된 리소스 번들(.properties 파일)을 생성하여 각각 다른 언어(_언어 코드) 및 국가(_국가 코드)를 저장합니다. . 번역된 텍스트입니다. 현재 로케일 설정을 얻으려면 Locale 클래스를 사용하십시오. ResourceBundle.getBundle을 통해 올바른 리소스 번들을 로드합니다. 해당 키에 대해 번역된 텍스트를 가져오려면 Bundle.getString을 사용하세요. Locale.setDefault를 통해 기본 로캘을 설정합니다. 요청된 로캘을 가져오려면 request.getLocale을 사용하세요. EL 표현식을 사용하여 뷰에 번역된 텍스트를 표시합니다.

Java Servlet如何支持国际化?

Java Servlets에서 국제화를 지원하는 방법

소개

국제화는 애플리케이션이 여러 언어와 문화를 지원하도록 만드는 프로세스입니다. Java 서블릿에서 국제화는 국제화된 리소스 번들과 Locale 클래스를 사용하여 구현됩니다. Locale 类来实现。

国际化资源束

国际化资源束是一组翻译好的字符串,用于不同语言的文本。它们以 .properties 文件的形式存储,文件名遵循以下格式:[基本文件名]_[语言代码]_[国家代码].properties。例如,一个包含英文文本的资源束可以命名为 messages_en_GB.properties

创建资源束

要创建一个资源束,请按照以下步骤操作:

  1. 创建一个 .properties 文件。
  2. 使用以下语法为每个字符串添加键值对:
KEY=VALUE
로그인 후 복사
  1. 为不同的语言和国家创建额外的资源束,使用适当的文件名。

实例

下面是一个包含英语和西班牙语文本的资源束示例:

// messages_en_GB.properties
welcome=Welcome
username=Username

// messages_es_ES.properties
welcome=Bienvenido
username=Nombre de usuario
로그인 후 복사

使用 Locale

Locale 类表示特定语言和国家的设置。它用于从资源束中获取正确翻译的字符串。

读取资源束

要读取资源束,请使用以下代码:

ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.getDefault());
로그인 후 복사

这将加载与当前 Locale 匹配的资源束。

获取翻译的字符串

要获取翻译的字符串,请使用以下代码:

String welcomeText = bundle.getString("welcome");
로그인 후 복사

这将检索与指定键对应的翻译的字符串。

实战案例

1. Servlet 初始化

在 Servlet 初始化方法中,我们可以设置默认 Locale

@Override
public void init() {
    Locale defaultLocale = Locale.getDefault();
    Locale.setDefault(defaultLocale);
}
로그인 후 복사

2. 响应请求

在响应请求时,我们可以根据请求的 Locale

국제화 리소스 번들

국제화 리소스 번들은 다양한 언어로 번역된 텍스트 문자열 세트입니다. 파일 이름은 [기본 파일 이름]_[언어 코드]_[국가 코드].properties 형식을 따르는 .properties 파일로 저장됩니다. 예를 들어 영어 텍스트가 포함된 리소스 번들의 이름은 messages_en_GB.properties로 지정할 수 있습니다.

리소스 번들 생성

🎜🎜리소스 번들을 생성하려면 다음 단계를 따르세요. 🎜
  1. .properties 파일을 생성합니다.
  2. 다음 구문을 사용하여 각 문자열에 키-값 쌍을 추가합니다:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    ResourceBundle bundle = ResourceBundle.getBundle("messages", request.getLocale());
    request.setAttribute("welcomeText", bundle.getString("welcome"));
}
로그인 후 복사
  1. 다양한 언어 및 국가에 대한 추가 리소스 생성 적절한 파일 이름을 사용하여 번들로 묶습니다.
🎜🎜Instances🎜🎜🎜다음은 영어 및 스페인어 텍스트가 포함된 리소스 번들의 예입니다. 🎜
<h1>${welcomeText}</h1>
로그인 후 복사
🎜🎜 Locale 클래스 사용 🎜🎜🎜Locale 클래스는 언어 및 국가별 설정을 나타냅니다. 리소스 번들에서 올바르게 번역된 문자열을 가져오는 데 사용됩니다. 🎜🎜🎜리소스 번들 읽기🎜🎜🎜리소스 번들을 읽으려면 다음 코드를 사용하세요. 🎜rrreee🎜이렇게 하면 현재 <code>로캘과 일치하는 리소스 번들을 로드합니다. 🎜🎜🎜번역된 문자열 가져오기🎜🎜🎜번역된 문자열을 가져오려면 다음 코드를 사용하세요. 🎜rrreee🎜이렇게 하면 지정된 키에 해당하는 번역된 문자열이 검색됩니다. 🎜🎜🎜실제 사례🎜🎜🎜🎜1. 서블릿 초기화🎜🎜🎜서블릿 초기화 방법에서 기본 로캘을 설정할 수 있습니다: 🎜rrreee🎜🎜2. 요청에 응답하면 요청된 Locale에 따라 번역된 문자열을 얻을 수 있습니다. 🎜rrreee🎜🎜3. 표시 보기 🎜🎜🎜JSP 보기에서 EL 표현식을 사용하여 번역된 문자열을 표시할 수 있습니다. : 🎜rrreee 🎜이렇게 하면 "환영합니다" 텍스트가 다른 언어로 표시됩니다. 🎜

위 내용은 Java Servlet은 어떻게 국제화를 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿