localizationServiceTemplate function

String localizationServiceTemplate(
  1. List<String> languages
)

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