15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/********************************************************************
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * COPYRIGHT:
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 1999-2002, International Business Machines Corporation and
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * others. All Rights Reserved.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ********************************************************************/
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "unicode/unistr.h"
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "unicode/msgfmt.h"
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "unicode/calendar.h"
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include <stdio.h>
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdlib.h>
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "util.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The message format pattern.  It takes a single argument, an integer,
15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// and formats it as "no", "one", or a number, using a NumberFormat.
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)static UnicodeString PATTERN(
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "Received {0,choice,0#no|1#one|1& {0,number,integer}} arguments"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    " on {1,date,long}."
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles));
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main(int argc, char **argv) {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    UErrorCode status = U_ZERO_ERROR;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    UnicodeString str;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FieldPosition pos;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // Create a message format
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    MessageFormat msg(PATTERN, status);
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    check(status, "MessageFormat::ct");
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // Create the argument list
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Formattable msgArgs[2];
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    msgArgs[0].setLong(argc-1);
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    msgArgs[1].setDate(Calendar::getNow());
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // Format the arguments
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    msg.format(msgArgs, 2, str, pos, status);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    check(status, "MessageFormat::format");
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    printf("Message: ");
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    uprintf(str);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    printf("\n");
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    printf("Exiting successfully\n");
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return 0;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)