00001
00002
00003
00004
00005
00006
00007
00008 #ifndef UPLURALRULES_H
00009 #define UPLURALRULES_H
00010
00011 #include "unicode/utypes.h"
00012
00013 #if !UCONFIG_NO_FORMATTING
00014
00015 #include "unicode/localpointer.h"
00016
00044 enum UPluralType {
00049 UPLURAL_TYPE_CARDINAL,
00054 UPLURAL_TYPE_ORDINAL,
00059 UPLURAL_TYPE_COUNT
00060 };
00064 typedef enum UPluralType UPluralType;
00065
00070 struct UPluralRules;
00071 typedef struct UPluralRules UPluralRules;
00082 U_STABLE UPluralRules* U_EXPORT2
00083 uplrules_open(const char *locale, UErrorCode *status);
00084
00094 U_DRAFT UPluralRules* U_EXPORT2
00095 uplrules_openForType(const char *locale, UPluralType type, UErrorCode *status);
00096
00102 U_STABLE void U_EXPORT2
00103 uplrules_close(UPluralRules *uplrules);
00104
00105
00106 #if U_SHOW_CPLUSPLUS_API
00107
00108 U_NAMESPACE_BEGIN
00109
00119 U_DEFINE_LOCAL_OPEN_POINTER(LocalUPluralRulesPointer, UPluralRules, uplrules_close);
00120
00121 U_NAMESPACE_END
00122
00123 #endif
00124
00125
00137 U_STABLE int32_t U_EXPORT2
00138 uplrules_select(const UPluralRules *uplrules,
00139 double number,
00140 UChar *keyword, int32_t capacity,
00141 UErrorCode *status);
00142
00143 #endif
00144
00145 #endif