// Copyright (C) 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
//--------------------------------------------------------------------
// Copyright (c) 2003, International Business Machines
// Corporation and others.  All Rights Reserved.
//--------------------------------------------------------------------
// Author: Alan Liu
// Created: March 20 2003
// Since: ICU 2.6
//--------------------------------------------------------------------

// Test locale file for the fake locale 'mc', used to test the
// ucat.h message catalog API.

mc
{
    1%4  { "Good morning." }
    1%5  { "Good afternoon." }
    1%7  { "Good evening." }
    1%8  { "Good night." }

    4%14 { "Please " }
    4%19 { "Thank you." }
    4%20 { "Sincerely," }
}

//eof
