[typescript] 열거형(Enum)을 활용한 유저 인터페이스(UI) 로컬라이제이션(Localization)
유저 인터페이스 (UI) 로컬라이제이션은 어플리케이션의 다국어 지원을 위한 중요한 요소 중 하나입니다. 타입스크립트의 열거형을 활용하면 UI 요소의 다국어 지원을 간단하게 구현할 수 있습니다.
열거형(Enum) 소개
열거형은 특정 값의 집합에 이름을 부여할 수 있는 타입으로, 관련 있는 값들을 모아서 사용할 때 유용합니다.
예를 들어, 다국어 지원을 위해 UI에서 사용되는 메시지들을 열거형으로 정의할 수 있습니다.
enum Message {
GREETING = 'Hello',
WARNING = 'Warning',
ERROR = 'Error'
}
UI 메시지 로컬라이제이션 구현
다국어 지원을 위해 UI 메시지를 열거형으로 정의한 후, 각 언어에 맞는 메시지를 객체로 정의할 수 있습니다.
interface LocalizedMessages {
[key: string]: {
[key: string]: string
}
}
const messages: LocalizedMessages = {
en: {
[Message.GREETING]: 'Hello',
[Message.WARNING]: 'Warning',
[Message.ERROR]: 'Error'
},
ko: {
[Message.GREETING]: '안녕하세요',
[Message.WARNING]: '주의',
[Message.ERROR]: '에러'
}
}
위 예제에서 en
은 영어, ko
는 한국어를 나타내며, 각 언어에 맞는 UI 메시지를 정의하는 것을 볼 수 있습니다.
다국어 지원을 위한 유틸리티 함수
마지막으로, getMessage
와 같은 유틸리티 함수를 작성하여 현재 언어에 맞는 UI 메시지를 동적으로 가져올 수 있습니다.
function getMessage(lang: string, message: Message): string {
return messages[lang][message];
}
// Usage
const lang = 'en';
console.log(getMessage(lang, Message.GREETING)); // Output: Hello
결론
타입스크립트의 열거형을 활용하면 UI 로컬라이제이션을 간편하게 구현할 수 있습니다. 열거형으로 UI 메시지를 정의하고, 각 언어에 따른 메시지를 객체로 정의하여 언어에 맞는 UI 메시지를 동적으로 가져올 수 있습니다.
이를 통해 다국어 지원 기능을 가진 어플리케이션을 쉽게 개발할 수 있으며, 사용자 경험을 향상시킬 수 있습니다.