forked from baron/baron-sso
i18n 대대적 변경
This commit is contained in:
40
userfront/lib/i18n.dart
Normal file
40
userfront/lib/i18n.dart
Normal file
@@ -0,0 +1,40 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'i18n_data.dart';
|
||||
|
||||
const _defaultLocale = 'ko';
|
||||
const _supportedLocales = ['ko', 'en'];
|
||||
|
||||
String _resolveLocale() {
|
||||
final locale = PlatformDispatcher.instance.locale;
|
||||
final code = locale.languageCode.toLowerCase();
|
||||
if (_supportedLocales.contains(code)) {
|
||||
return code;
|
||||
}
|
||||
return _defaultLocale;
|
||||
}
|
||||
|
||||
String _formatTemplate(String template, Map<String, String>? params) {
|
||||
if (params == null || params.isEmpty) {
|
||||
return template;
|
||||
}
|
||||
var result = template;
|
||||
params.forEach((key, value) {
|
||||
result = result.replaceAll('{{$key}}', value);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
String tr(
|
||||
String key, {
|
||||
String? fallback,
|
||||
Map<String, String>? params,
|
||||
}) {
|
||||
final locale = _resolveLocale();
|
||||
final map = locale == 'en' ? enStrings : koStrings;
|
||||
final value = map[key];
|
||||
final template = (value != null && value.isNotEmpty)
|
||||
? value
|
||||
: (fallback ?? key);
|
||||
return _formatTemplate(template, params);
|
||||
}
|
||||
Reference in New Issue
Block a user