Web2py는 파이썬 웹 애플리케이션 프레임워크로, 사용자의 국제화 요구사항을 처리하는 내장된 기능을 제공합니다. 이를 통해 애플리케이션을 다국어로 제공하고 언어에 따라 텍스트 및 메시지를 동적으로 번역할 수 있습니다.
국제화 설정
web2py에서 국제화를 사용하려면 애플리케이션의 기본 세팅을 변경해야 합니다. 이를 위해 routes.py
파일을 열고 다음과 같은 내용을 추가합니다:
routers = dict(
BASE = dict(default_application='myapp', function='index'),
)
위 코드는 기본으로 myapp
애플리케이션을 사용하며, index
함수를 기본으로 설정합니다. myapp
은 본인이 사용하는 애플리케이션 이름으로 변경해야 합니다.
번역 파일 생성
번역할 텍스트 및 메시지를 저장하기 위해, 각 언어에 해당하는 번역 파일을 생성해야 합니다. 이를 위해 다음 단계를 따릅니다:
myapp
폴더 내에languages
폴더를 생성합니다.languages
폴더 내에 언어별 폴더를 생성합니다. 예를 들어, 영어를 위한 폴더 이름은en
, 중국어를 위한 폴더 이름은zh
와 같습니다.- 각 언어별 폴더 내에
*.py
파일을 생성합니다. 이 파일은 언어에 해당하는 번역을 저장하는 파일입니다.
각 언어별 *.py
파일에는 다음과 같이 번역할 텍스트를 정의할 수 있습니다:
# languages/en/default.py
{
'Hello World': 'Hello World',
'Welcome to myapp': 'Welcome to myapp',
'Login': 'Login',
# ...
}
템플릿에서 번역 사용하기
web2py 템플릿에서 번역을 사용하려면, 다음과 같은 코드를 사용합니다:
{{=T('Hello World')}}
위 코드는 Hello World
라는 텍스트를 번역하는 역할을 합니다. T()
함수를 사용하여 번역 텍스트를 지정하고, =
기호를 사용하여 해당 텍스트를 출력합니다.
컨트롤러에서 번역 사용하기
web2py 컨트롤러에서 번역을 사용하려면, 다음과 같은 코드를 사용합니다:
def index():
message = T('Welcome to myapp')
return dict(message=message)
위 코드는 Welcome to myapp
라는 번역된 텍스트를 message
변수에 할당합니다. 이 변수는 템플릿에서 사용될 수 있습니다.
언어 설정
web2py는 브라우저의 Accept-Language 헤더를 자동으로 감지하여 언어를 결정합니다. 하지만, 브라우저에서 전달되는 헤더가 없는 경우 또는 특정 언어를 선택하고 싶은 경우, 다음 단계를 따를 수 있습니다:
languages
폴더 내에서en.py
와 같은 언어 파일을 선택하고 텍스트를 번역합니다.routes.py
파일에 다음과 같이request.set_language
를 추가합니다:
def set_language():
language = request.args(0)
if language:
request.set_language(language)
return redirect(URL('default', 'index'))
위 코드는 URL에 set_language/en
와 같은 경로를 추가하여 해당 언어로 설정하는 역할을 합니다. 주소 경로의 en
부분을 다른 언어로 변경하여 다른 언어로 설정할 수 있습니다.
결론
web2py에서는 국제화 기능을 쉽게 사용할 수 있으며, 다국어 애플리케이션을 구축하는 데 필요한 도구와 지원을 제공합니다. 번역 파일을 생성하고 템플릿 및 컨트롤러에서 번역을 적용하여 다중 언어 지원을 적용할 수 있습니다. 이를 통해 사용자의 언어에 맞춰 텍스트와 메시지를 동적으로 제공할 수 있습니다.