[flutter] 플러터 intl을 사용할 때 다국어 메시지 번역을 어떻게 처리하나요?
다국어 메시지 번역을 처리하기 위해 플러터에서는 intl
패키지를 사용합니다. intl
패키지는 표준화된 다국어 지원을 제공하여 앱의 다국어 지원을 쉽게 구현할 수 있습니다. 아래는 intl
패키지를 사용하여 다국어 메시지 번역을 처리하는 방법의 간단한 예제입니다.
intl
패키지를 프로젝트에 추가합니다.pubspec.yaml
파일의dependencies
섹션에 다음과 같이intl
패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
intl: ^0.17.0
- 번역할 메시지를 정의합니다.
lib/l10n/messages.arb
와 같은 파일을 생성하고, 다국어로 번역할 메시지를 정의합니다. 예를 들어, 다음과 같이hello
라는 키에 대한 영어와 한국어 메시지를 정의할 수 있습니다.
{
"@@locale": "en",
"hello": "Hello",
}
{
"@@locale": "ko",
"hello": "안녕하세요",
}
- 메시지 클래스를 생성합니다.
lib/l10n.dart
파일과 같이Intl.message
를 사용하여 다국어 메시지를 처리하는 클래스를 생성합니다. 예를 들어, 다음과 같이AppLocalization
클래스를 생성할 수 있습니다.
import 'package:intl/intl.dart';
class AppLocalization {
static String _localeName;
static setLocale(String localeName) {
_localeName = localeName;
}
static String hello() {
return Intl.message(
'Hello',
name: 'hello',
desc: 'Hello',
locale: _localeName,
);
}
}
- 번역된 메시지를 사용합니다. 앱의 어느 곳에서든
AppLocalization.hello()
와 같이 번역된 메시지를 사용할 수 있습니다. 예를 들어, 다음과 같이Text
위젯에서 번역된 메시지를 사용할 수 있습니다.
Text(AppLocalization.hello()),
위와 같이 설정하면, 앱의 언어가 변경되면 자동으로 해당 언어로 번역된 메시지를 표시할 수 있습니다.
이외에도 intl
패키지는 다양한 편의 기능을 제공하며, 특수문자, 복수형 처리, 날짜 및 시간 형식 등 다양한 지원을 할 수 있습니다. 자세한 내용은 intl
패키지의 공식 문서를 참조하시기 바랍니다.
참고 자료: