setLanguage method

Future<void> setLanguage(
  1. BuildContext context, {
  2. required String language,
  3. bool restart = true,
})

Changes the active language and optionally restarts the app.

Implementation

Future<void> setLanguage(
  BuildContext context, {
  required String language,
  bool restart = true,
}) async {
  if (_assetsDir == null) {
    NyLogger.error("Cannot set language: assets directory not initialized");
    return;
  }

  try {
    _values = await _loadLanguageFile(language);
    _locale = Locale(language);
  } catch (e) {
    NyLogger.error("Failed to load language: $language");
    return;
  }

  if (restart) {
    // ignore: use_build_context_synchronously
    NyApp.restart(context);
  }
}