Giter VIP home page Giter VIP logo

Comments (1)

brianegan avatar brianegan commented on June 12, 2024

I think in this case you might be accidentally mixing two paradigms:

  • The Localization classes from Flutter will use the LocalizationDelegate to load the correct language when the Locale changes automatically.
  • In this case, it seems like you want this class to sort of act as it's own LocalizationDelegate -- loading the correct strings when the Locale changes.

Therefore, rather than using the Translations.of methods, in my head, it almost makes more sense to me to have something like this:

/// Model that holds the localizations
class ModelWithLocalizedStrings extends Model {
  AppLocalizations _localizations;

  // The getters just delegate to the appropriate localizations class
  String get greeting => _localizations.greeting;

  // When the Locale changes, we'll instantiate the correct localizations and notify listeners
  void changeLocale(String languageCode) {
    switch (languageCode) {
      case 'de':
        _localizations = GermanLocalizations();
      case 'en':
      default:
        _localizations = AppLocalizations();
    };

    notifyListeners();
  }
}

/// This class defines the Strings in the base language
class AppLocalizations {
  String get greeting => Intl.message('Hello!');
}

/// Additional Languages implement the AppLocalizations class.
class GermanLocalizations implements AppLocalizations {
  String get greeting => Intl.message('Willkommen');
}

from scoped_model.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.