1
0
forked from baron/baron-sso
Files
baron-sso/userfront/lib/i18n.dart
2026-02-12 10:39:47 +09:00

37 lines
937 B
Dart

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);
}