localizationServiceTemplate function
Implementation
String localizationServiceTemplate(List<String> languages) {
// Generate imports
final imports = languages.map((lang) => "import 'package:example/$lang.dart';").join('\n');
// Generate keys map
final keysMap = languages.map((lang) => ' Language.$lang.code : $lang,').join('\n');
// Generate enum values
final enumValues = languages.asMap().entries.map((entry) {
final comma = entry.key == languages.length - 1 ? ';' : ',';
return ' ${entry.value}(\'${entry.value}\')$comma';
}).join('\n');
return """
${ProjectUtils.fileGenerationString}
import 'dart:ui';
$imports
import 'package:get/get.dart';
class LocalizationService extends Translations {
/// Default language
static final defaultLocale = Locale(Language.${languages.first}.code, 'IN');
/// Fallback language
static final fallBackLanguage = Locale(Language.${languages.first}.code, 'US');
@override
Map<String, Map<String, String>> get keys => {
$keysMap
};
/// Change the locale dynamically
static void changeLocale(Language language) {
Get.updateLocale(Locale(language.code));
}
}
enum Language {
$enumValues
final String code;
const Language(this.code);
}
""";
}