/** NSLocale.h Copyright (C) 2010 Free Software Foundation, Inc. Written by: Stefan Bidigaray Written by: Richard Frith-Macdonald Date: June, 2010 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 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, 31 Milk Street #960789 Boston, MA 02196 USA. */ #ifndef __NSLocale_h_GNUSTEP_BASE_INCLUDE #define __NSLocale_h_GNUSTEP_BASE_INCLUDE #import #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) #import #if defined(__cplusplus) extern "C" { #endif @class NSMutableDictionary; @class NSString; @class NSCharacterSet; typedef NSUInteger NSLocaleLanguageDirection; enum { NSLocaleLanguageDirectionUnknown = 0, NSLocaleLanguageDirectionLeftToRight = 1, NSLocaleLanguageDirectionRightToLeft = 2, NSLocaleLanguageDirectionTopToBottom = 3, NSLocaleLanguageDirectionBottomToTop = 4 }; GS_EXPORT NSString * const NSCurrentLocaleDidChangeNotification; // // NSLocale Component Keys // GS_EXPORT NSString * const NSLocaleIdentifier; GS_EXPORT NSString * const NSLocaleLanguageCode; GS_EXPORT NSString * const NSLocaleCountryCode; GS_EXPORT NSString * const NSLocaleScriptCode; GS_EXPORT NSString * const NSLocaleVariantCode; GS_EXPORT NSString * const NSLocaleExemplarCharacterSet; GS_EXPORT NSString * const NSLocaleCalendarIdentifier; GS_EXPORT NSString * const NSLocaleCalendar; GS_EXPORT NSString * const NSLocaleCollationIdentifier; GS_EXPORT NSString * const NSLocaleUsesMetricSystem; GS_EXPORT NSString * const NSLocaleMeasurementSystem; GS_EXPORT NSString * const NSLocaleDecimalSeparator; GS_EXPORT NSString * const NSLocaleGroupingSeparator; GS_EXPORT NSString * const NSLocaleCurrencySymbol; GS_EXPORT NSString * const NSLocaleCurrencyCode; GS_EXPORT NSString * const NSLocaleCollatorIdentifier; #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) GS_EXPORT NSString * const NSLocaleQuotationBeginDelimiterKey; GS_EXPORT NSString * const NSLocaleQuotationEndDelimiterKey; GS_EXPORT NSString * const NSLocaleAlternateQuotationBeginDelimiterKey; GS_EXPORT NSString * const NSLocaleAlternateQuotationEndDelimiterKey; #endif // // NSLocale Calendar Keys // GS_EXPORT NSString * const NSGregorianCalendar; GS_EXPORT NSString * const NSBuddhistCalendar; GS_EXPORT NSString * const NSChineseCalendar; GS_EXPORT NSString * const NSHebrewCalendar; GS_EXPORT NSString * const NSIslamicCalendar; GS_EXPORT NSString * const NSIslamicCivilCalendar; GS_EXPORT NSString * const NSJapaneseCalendar; #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) GS_EXPORT NSString * const NSRepublicOfChinaCalendar; GS_EXPORT NSString * const NSPersianCalendar; GS_EXPORT NSString * const NSIndianCalendar; GS_EXPORT NSString * const NSISO8601Calendar; #endif /** * Provides information describing language, date and time, and currency * information. */ GS_EXPORT_CLASS @interface NSLocale : NSObject { #if GS_EXPOSE(NSLocale) @private NSString *_localeId; NSMutableDictionary *_components; #endif #if GS_NONFRAGILE #else /* Pointer to private additional data used to avoid breaking ABI * when we don't have the non-fragile ABI available. * Use this mechanism rather than changing the instance variable * layout (see Source/GSInternal.h for details). */ @private id _internal GS_UNUSED_IVAR; #endif } #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST) /** Returns a version of the current locale which automatically updates * when locale settngs are changed. */ + (id) autoupdatingCurrentLocale; #endif /** Returns an array of NSStrings with all the available locale identifiers. */ + (NSArray *) availableLocaleIdentifiers; /** Returns the caoninical identifier for a language represented by * the supplied string. */ + (NSString *) canonicalLanguageIdentifierFromString: (NSString *)string; /** Returns the canonical identifier for a locale represented by the * supplied string. */ + (NSString *) canonicalLocaleIdentifierFromString: (NSString *)string; /** Returns the direction in which the language is written. */ + (NSLocaleLanguageDirection) characterDirectionForLanguage: (NSString *)isoLangCode; #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST) /** Returns a list of available ISO currency code strings. */ + (NSArray *) commonISOCurrencyCodes; #endif /** Parses the supplied locale identifier and returns a dictionary containing * its components.
* Components are NSLocaleLanguageCode, NSLocaleCountryCode, NSLocaleCalendar. */ + (NSDictionary *) componentsFromLocaleIdentifier: (NSString *)string; /** Returns the current locale information. */ + (instancetype) currentLocale; /** Returns an array of NSString representing all known country codes. */ + (NSArray *) ISOCountryCodes; /** Returns an array of NSString representing all known currency codes. */ + (NSArray *) ISOCurrencyCodes; /** Returns an array of NSString representing all known language codes. */ + (NSArray *) ISOLanguageCodes; /** Returns the direction in which lines of text in the specified * language are written. */ + (NSLocaleLanguageDirection) lineDirectionForLanguage: (NSString*)isoLangCode; /** Builds and returns a locale idntifier from the individual components * supplied in dict.
* Components are NSLocaleLanguageCode, NSLocaleCountryCode, NSLocaleCalendar. */ + (NSString *) localeIdentifierFromComponents: (NSDictionary*)dict; #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) /** Returns the standard locale identifier for the windows locale code. */ + (NSString *) localeIdentifierFromWindowsLocaleCode: (uint32_t)lcid; #endif #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) /** Returns a locale initialised with the given locale identifier. */ + (instancetype) localeWithLocaleIdentifier:(NSString *)string; #endif #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST) /** Returns an array of preferred languages. Sorted from most preferred to * leave preferred. */ + (NSArray *) preferredLanguages; #endif /** Returns the the system locale. */ + (instancetype) systemLocale; #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST) /** Returns the windows locale code corresponding to the staqndard locale * identifier. */ + (uint32_t) windowsLocaleCodeFromLocaleIdentifier: (NSString *)localeIdentifier; #endif /** Returns the localised representation of the supplied value converted * on the basis that it represents information whose type is specified by * the key. */ - (NSString *) displayNameForKey: (NSString *)key value: (id)value; /** Initialises the receiver to be the locale specified by the identifier. * This may result in replacement of the receiver by an existing locale. */ - (instancetype) initWithLocaleIdentifier: (NSString *)string; /** Returns the canonical identifier for the receiver (which * may differ from the identifgier used to create the receiver * since different identifiers may map to the same locale). */ - (NSString *) localeIdentifier; /** Returns the named object from the receiver locale. */ - (id) objectForKey: (id)key; #if OS_API_VERSION(MAC_OS_X_VERSION_10_12, GS_API_LATEST) - (NSString *) languageCode; - (NSString *) countryCode; - (NSString *) scriptCode; - (NSString *) variantCode; - (NSCharacterSet *) exemplarCharacterSet; - (NSString *) collationIdentifier; - (NSString *) collatorIdentifier; #endif @end #if defined(__cplusplus) } #endif #endif /* OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) */ #endif /* __NSLocale_h_GNUSTEPBASE_INCLUDE */