/* CFLocale.h Copyright (C) 2010 Free Software Foundation, Inc. Written by: Stefan Bidigaray Date: March, 2011 This file is part of the GNUstep CoreBase Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; see the file COPYING.LIB. If not, see or write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __COREFOUNDATION_CFLOCALE__ #define __COREFOUNDATION_CFLOCALE__ 1 #include "CFBase.h" #include "CFArray.h" #include "CFDictionary.h" #if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST) CF_EXTERN_C_BEGIN /** \defgroup CFLocaleRef CFLocale Reference \brief CFLocale provides basic functionality for language and/or region specific operations. Locale-sensitive operations, such as collation, calendars and capitalization, may use CFLocale objects to provide language and/or region specific functionality. CFLocale is "toll-free bridged" to NSLocale. \{ */ typedef const struct __CFLocale *CFLocaleRef; /** */ enum { kCFLocaleLanguageDirectionUnknown = 0, kCFLocaleLanguageDirectionLeftToRight = 1, kCFLocaleLanguageDirectionRightToLeft = 2, kCFLocaleLanguageDirectionTopToBottom = 3, kCFLocaleLanguageDirectionBottomToTop = 4 }; typedef CFIndex CFLocaleLanguageDirection; /** \name CFLocale Property Keys \{ */ CF_EXPORT const CFStringRef kCFLocaleMeasurementSystem; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleDecimalSeparator; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleGroupingSeparator; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleCurrencySymbol; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleCurrencyCode; /* CFString */ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) CF_EXPORT const CFStringRef kCFLocaleIdentifier; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleLanguageCode; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleCountryCode; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleScriptCode; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleVariantCode; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleExemplarCharacterSet; /* CFCharacterSet */ CF_EXPORT const CFStringRef kCFLocaleCalendarIdentifier; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleCalendar; /* CFCalendar */ CF_EXPORT const CFStringRef kCFLocaleCollationIdentifier; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleUsesMetricSystem; /* CFBoolean */ #endif #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) CF_EXPORT const CFStringRef kCFLocaleCollatorIdentifier; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleQuotationBeginDelimiterKey; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleQuotationEndDelimiterKey; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleAlternateQuotationBeginDelimiterKey; /* CFString */ CF_EXPORT const CFStringRef kCFLocaleAlternateQuotationEndDelimiterKey; /* CFString */ #endif /** \} */ /** \name CFCalendar Identifiers \{ */ CF_EXPORT const CFStringRef kCFGregorianCalendar; #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) CF_EXPORT const CFStringRef kCFBuddhistCalendar; CF_EXPORT const CFStringRef kCFChineseCalendar; CF_EXPORT const CFStringRef kCFHebrewCalendar; CF_EXPORT const CFStringRef kCFIslamicCalendar; CF_EXPORT const CFStringRef kCFIslamicCivilCalendar; CF_EXPORT const CFStringRef kCFJapaneseCalendar; #endif #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) CF_EXPORT const CFStringRef kCFRepublicOfChinaCalendar; CF_EXPORT const CFStringRef kCFPersianCalendar; CF_EXPORT const CFStringRef kCFIndianCalendar; CF_EXPORT const CFStringRef kCFISO8601Calendar; #endif /** \} */ /** CFLocale Change Notification */ CF_EXPORT const CFStringRef kCFLocaleCurrentLocaleDidChangeNotification; /** \name Creating a Locale \{ */ CF_EXPORT CFLocaleRef CFLocaleCopyCurrent (void); CF_EXPORT CFLocaleRef CFLocaleCreate (CFAllocatorRef allocator, CFStringRef localeIdent); CF_EXPORT CFLocaleRef CFLocaleCreateCopy (CFAllocatorRef allocator, CFLocaleRef locale); CF_EXPORT CFLocaleRef CFLocaleGetSystem (void); /** \} */ /** \name Getting System Locale Information \{ */ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) CF_EXPORT CFArrayRef CFLocaleCopyAvailableLocaleIdentifiers (void); #endif /** \} */ /** \name Getting ISO Information \{ */ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) CF_EXPORT CFArrayRef CFLocaleCopyISOCountryCodes (void); CF_EXPORT CFArrayRef CFLocaleCopyISOLanguageCodes (void); CF_EXPORT CFArrayRef CFLocaleCopyISOCurrencyCodes (void); #endif #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST) CF_EXPORT CFArrayRef CFLocaleCopyCommonISOCurrencyCodes (void); #endif /** \{ */ /** \name Accessing Language Information \{ */ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST) CF_EXPORT CFArrayRef CFLocaleCopyPreferredLanguages (void); #endif #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) CF_EXPORT CFLocaleLanguageDirection CFLocaleGetLanguageCharacterDirection (CFStringRef isoLangCode); CF_EXPORT CFLocaleLanguageDirection CFLocaleGetLanguageLineDirection (CFStringRef isoLangCode); #endif /** \} */ /** \name Getting Information About a Locale \{ */ CF_EXPORT CFStringRef CFLocaleCopyDisplayNameForPropertyValue (CFLocaleRef displayLocale, CFStringRef key, CFStringRef value); CF_EXPORT CFTypeRef CFLocaleGetValue (CFLocaleRef locale, CFStringRef key); CF_EXPORT CFStringRef CFLocaleGetIdentifier (CFLocaleRef locale); /** \} */ /** \name Getting and Creating Locale Identifiers \{ */ CF_EXPORT CFStringRef CFLocaleCreateCanonicalLocaleIdentifierFromString (CFAllocatorRef allocator, CFStringRef localeIdent); #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) CF_EXPORT CFStringRef CFLocaleCreateCanonicalLanguageIdentifierFromString (CFAllocatorRef allocator, CFStringRef localeIdent); CF_EXPORT CFDictionaryRef CFLocaleCreateComponentsFromLocaleIdentifier (CFAllocatorRef allocator, CFStringRef localeIdent); CF_EXPORT CFStringRef CFLocaleCreateLocaleIdentifierFromComponents (CFAllocatorRef allocator, CFDictionaryRef dictionary); #endif /** \} */ /** \name Windows Locale Codes \{ */ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) CF_EXPORT CFStringRef CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode (CFAllocatorRef allocator, UInt32 lcid); CF_EXPORT UInt32 CFLocaleGetWindowsLocaleCodeFromLocaleIdentifier (CFStringRef localeIdent); #endif /** \} */ /** \name Getting the CFLocale Type ID \{ */ CF_EXPORT CFTypeID CFLocaleGetTypeID (void); /** \} */ /** \} */ CF_EXTERN_C_END #endif /* OS_API_VERSION >= MAC_OS_X_VERSION_10_3 */ #endif /* __COREFOUNDATION_CFLOCALE__ */