/**
 * 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.
 */

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

final messages = new MessageLookup();

class MessageLookup extends MessageLookupByLibrary {

  get localeName => 'es';
  static market() => "MERCADO";

  static portfolio() => "CARTERA";

  static title() => "Acciones";


  final messages = const {
    "market" : market,
    "portfolio" : portfolio,
    "title" : title
  };
}