(+) Application Layer - l10n
๊ธฐ์กด์ ์ฌ์ฉํ๋ ํจํค์ง์์ ์ด๊ฒ์ผ๋ก ๋ฐ๊พธ์๋ค. ๋ ๋ง์ด ์ฐ์ด๋ ๊ฒ์ผ๋ก ๋ณด์ด๊ณ ์ฌ์ฉ์ด ๋ ํธ๋ฆฌํ๋ค.
usage
๊ฑฐ์ ๊ณต์ ๋ํ๋จผํธ์ ์ ๋ฆฌ๋์ด ์๋ ๋ด์ฉ๊ณผ ๋๊ฐ์์ ๋ณ๋ฌ๋ฆฌ ์ ๋ฆฌํ ๊ฒ ์๊ธด ํ๋ค. ๋ํ๋จผํธ์์ ์ง์ํ๋๋๋ก ๋๊ฐ์ด ํ๋ฉด ๋๊ธด ํ๋๋ฐ ์ฃผ์ํ ์ ์ EasyLocalization ์์ ฏ์ MaterialApp ๊ณผ ๋์ผ ๊ณ์ธต(์๋ ์ฝ๋์์ ๋ณด๋ฉด Application ๋ด) ์ ์ค์ ํ๋๊น ์๋ฌ๊ฐ ๋ฌ๋ค.
๊ทธ๋์ ์๋์ ๊ฐ์ด runApp ๋ด์ ์์น์์ผฐ๋ค. ๋ํ๋จผํธ์ ๋์จ๋๋ก await EasyLocalization.ensureInitialized(); ์ฒ๋ฆฌ๋ ๋ฐ๋์ ํด์ฃผ์ด์ผํ๋ค.
void run() async {
WidgetsFlutterBinding.ensureInitialized();
await EasyLocalization.ensureInitialized();
await Injector.prepareDependencies();
runApp(
EasyLocalization(
supportedLocales: const [
LocaleManager.koLocale,
LocaleManager.enLocale,
],
path: 'assets/translations',
fallbackLocale: LocaleManager.koLocale,
child: Application(),
),
);
}
LocalManager ๋ผ๊ณ ํด๋ ๊ฒ์ ๋ณ ๊ฒ์ด ์๋ค. ์๋์ ๊ฐ๋ค. Locale ์์ฑ์ ๋ฃ์ ์ธ์ด์ ๋ํ ํ๋ผ๋ฏธํฐ ๊ฐ๊ณผ ํ์ผ๋ช .json ์์ ํ์ผ๋ช ์ด ์ผ์นํด์ผํ๋ค.
class LocaleManager {
static const Locale enLocale = Locale('en');
static const Locale koLocale = Locale('ko');
}
๊ทธ ์ธ์ ์๋์ ๊ฐ์ด json ํ์ผ์ ๋ง๋ค์ด์ค์ผ ํ๊ณ , ํ์ผ ๋ด์ ์๋ฌด๊ฒ๋ ์์ผ๋ฉด launch ์ ์๋ฌ๊ฐ ๋๋ค. ํ์ผ์ด ์๊ฑฐ๋ ํ์ผ ๋ด์ฉ์ด empty ๋ผ๋ ๋ฉ์ธ์ง๊ฐ ๋ฌ๋ค. ๋น์ฅ ๋ญ๊ฐ ์ธ ์ผ์ด ์์ด๋ ๋ด์ฉ์ ์ฑ์๋ฌ์ผํ๋ค.

๋ค์ํ ์ฌ์ฉ๋ฒ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์. ๋ฐ๋ก ์ฐ์ตํ ์ํ ํ๋ก์ ํธ๋ ์ฌ๊ธฐ์ ์๋ค.
Last updated