>백엔드 개발 >Golang >Golang 학습 웹 애플리케이션 국제화 구현

Golang 학습 웹 애플리케이션 국제화 구현

WBOY
WBOY원래의
2023-06-24 12:15:32862검색

세계화 추세에 따라 국제화가 점점 더 중요해지고 있으며 웹 애플리케이션도 예외는 아닙니다. 웹 애플리케이션을 개발할 때 다양한 언어와 문화를 지원하도록 애플리케이션을 설계해야 합니다. 이것이 바로 국제화입니다. 특히, 애플리케이션이 서로 다른 지역과 문화에서 동일한 코드 기반을 사용하는 경우 다양한 사용자 요구에 더 잘 적응할 수 있도록 텍스트와 언어를 자동으로 변환할 수 있습니다.

매우 인기 있는 프로그래밍 언어인 Golang은 웹 애플리케이션의 국제화를 구현하는 데에도 사용할 수 있습니다. 이번 글에서는 Golang을 사용하여 웹 애플리케이션의 국제화 기능을 구현하는 방법을 소개하겠습니다.

1단계: 필요한 Golang 패키지 설치

웹 애플리케이션의 국제화를 달성하려면 몇 가지 필수 Golang 패키지를 설치해야 합니다. 가장 중요한 패키지는 국제화의 핵심인 "i18n" 패키지이다. 다음 명령을 사용하여 이 패키지를 설치할 수 있습니다.

go get github.com/astaxie/beego/i18n

2단계: i18n 패키지 구성

다음으로 애플리케이션에서 i18n 패키지를 구성해야 합니다. 이 애플리케이션에서는 텍스트와 언어를 다른 언어로 올바르게 변환할 수 있도록 i18n 패키지를 구성해야 합니다. 다음 코드를 사용하여 i18n 패키지를 구성할 수 있습니다:

import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/i18n"
)
var LangTypes []string //支持的语言列表const (
    LANG_ENGLISH = "en-US"
    LANG_CHINA   = "zh-CN"
)
func SetUpI18n() {
    langs := beego.AppConfig.String("langs")
    LangTypes = strings.Split(langs, "|")
    for _, lang := range LangTypes {
        if lang == "en-US" {
            err := i18n.SetMessage(lang, "conf/locale_en-US.ini")
            if err != nil {
                beego.Error(err)
                continue
            }
            continue
        }
        if lang == "zh-CN" {
            err := i18n.SetMessage(lang, "conf/locale_zh-CN.ini")
            if err != nil {
                beego.Error(err)
                continue
            }
            continue
        }
    }
}

이 코드에서는 먼저 beego.AppConfig를 통해 시스템에서 지원되는 언어 목록을 가져옵니다. 그런 다음 모든 언어를 반복하고 각 언어에 해당하는 언어 파일을 로드합니다. 이 예에서는 "en-US" 및 "zh-CN" 언어만 제공합니다.

3단계: 템플릿 작성

i18n 패키지와 언어 파일을 사용하여 웹 애플리케이션 작성을 시작할 수 있습니다. 이 애플리케이션에서는 다른 언어 간에 쉽게 전환할 수 있도록 템플릿을 작성해야 합니다. 다음은 샘플 템플릿입니다.

{{.i18n "welcome"}}, {{.i18n "userName"}}!

위 템플릿 코드에서 {{.i18n "welcome"}} 및 {{.i18n "userName"}}은 번역하려는 텍스트입니다. 다음은 i18n 패키지에서 제공하는 번역 기능의 구현입니다.

func (c *LangController) Lang() {
    lang := c.Ctx.Input.Param(":lang")
    if lang == "" {
        lang = "en-US"
    }
    c.SetLang(lang)
    c.Redirect("/", 302)
}
func (c *LangController) SetLang(lang string) {
    beego.Trace(lang)
    if lang != "" {
        c.Ctx.SetCookie("lang", lang, 1<<31-1, "/")
    } else {
        c.Ctx.SetCookie("lang", "", -1, "/")
    }
    c.Data["Lang"] = lang
}
func (c *BaseController) Prepare() {
    lang := c.Ctx.GetCookie("lang")

    if lang == "" {
        lang = LANG_ENGLISH
        c.SetLang(lang)
    }

    c.Data["Lang"] = lang
    trans := i18n.GetLangByType(lang)
    c.Data["i18n"] = trans
}

위 코드에서는 언어 전환을 위한 LangController, 언어 설정을 위한 SetLang 함수, 로케일 설정을 위한 BaseController를 정의합니다. 이러한 기능을 통해 로케일을 쉽게 전환하고 설정할 수 있습니다.

4단계: 웹 애플리케이션 실행

마지막으로 다양한 언어를 올바르게 지원할 수 있도록 웹 애플리케이션을 실행해야 합니다. 다음 명령을 사용하여 웹 애플리케이션을 실행할 수 있습니다.

bee run

이 명령은 웹 애플리케이션을 시작하고 기본적으로 포트 8080에서 HTTP 요청을 수신합니다. 브라우저에서 http://localhost:8080/en-US/welcome 또는 http://localhost:8080/zh-CN/welcome을 방문하여 애플리케이션이 텍스트를 올바르게 번역했는지 테스트할 수 있습니다.

결론

이 글에서는 Golang을 사용하여 웹 애플리케이션의 국제화 기능을 구현하는 방법을 소개했습니다. i18n 패키지와 언어 파일을 통해 다양한 사용자 요구에 더 잘 적응할 수 있도록 국제화를 쉽게 구현할 수 있습니다. 웹 애플리케이션을 개발하는 경우 Golang을 사용하여 국제화 기능을 구현하여 애플리케이션의 사용자 경험을 향상시키는 것이 좋습니다.

위 내용은 Golang 학습 웹 애플리케이션 국제화 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.