// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that provides messages for a es locale. All the
// messages from the main program should be duplicated here with the same
// function name.

import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';

final messages = new MessageLookup();

final _keepAnalysisHappy = Intl.defaultLocale;

class MessageLookup extends MessageLookupByLibrary {
  get localeName => 'es';

  final messages = _notInlinedMessages(_notInlinedMessages);
  static _notInlinedMessages(_) => {
    "market" : MessageLookupByLibrary.simpleMessage("MERCADO"),
    "portfolio" : MessageLookupByLibrary.simpleMessage("CARTERA"),
    "title" : MessageLookupByLibrary.simpleMessage("Acciones")
  };
}
