[flutter] 다국어 지원을 위한 문자열 포매팅 방법
다국어 지원은 모바일 앱을 개발할 때 중요한 요소 중 하나입니다. 사용자들이 다양한 언어로 앱을 사용할 수 있도록 지원하는 것은 사용자 경험을 향상시키는데 도움이 됩니다. Flutter에서 문자열을 다국어로 지원하려면 포매팅 기술을 사용하여 각 언어에 맞게 문자열을 동적으로 표시할 수 있습니다.
1. Flutter 앱 내에서 문자열 리소스 파일 생성
먼저, 각 언어에 해당하는 문자열을 포함하는 리소스 파일을 생성해야 합니다. Flutter는 이를 위해 .arb
포맷을 사용합니다. intl
패키지를 사용하여 .arb
파일을 생성하고 다국어 문자열을 정의합니다.
예를 들어, app_strings_en.arb
파일은 영어 문자열을, app_strings_ko.arb
파일은 한국어 문자열을 포함합니다.
// app_strings_en.arb
{
"@@locale": "en",
"appTitle": "My Flutter App",
"welcomeMessage": "Welcome to my app!"
}
// app_strings_ko.arb
{
"@@locale": "ko",
"appTitle": "내 플러터 앱",
"welcomeMessage": "내 앱에 오신 것을 환영합니다!"
}
2. 문자열 로드 및 포매팅
Flutter 앱 내에서 사용자의 현재 지역에 따라 알맞은 문자열을 로드하려면 Intl
패키지를 사용합니다. 다음은 해당 기능을 구현하는 코드의 예시입니다.
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';
class MyLocalizedApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var langCode = Localizations.localeOf(context).languageCode;
var locale = langCode.isEmpty ? Intl.systemLocale : langCode;
return Scaffold(
appBar: AppBar(
title: Text(Intl.message('appTitle', name: 'appTitle')),
),
body: Center(
child: Text(Intl.message('welcomeMessage', name: 'welcomeMessage')),
),
);
}
}
}
위 코드에서 Intl.message
함수를 통해 로컬라이즈된 문자열을 렌더링할 수 있습니다.
이렇게 하면 언어 설정에 따라 사용자에게 알맞은 문자열이 표시될 것입니다.
이제 Flutter에서 문자열 다국어 지원을 위한 기초적인 포매팅 방법을 배워보았습니다. 앱의 언어 설정에 따라 적절한 문자열을 표시하여 전 세계의 다양한 사용자들에게 더 나은 경험을 제공할 수 있습니다.