1 #ifndef _LOCALE_ROSTER_H_ 2 #define _LOCALE_ROSTER_H_ 3 4 #include <String.h> 5 6 class BLanguage; 7 class BLocale; 8 class BCollator; 9 class BCountry; 10 class BCatalog; 11 class BCatalogAddOn; 12 13 namespace BPrivate { 14 class EditableCatalog; 15 }; 16 17 enum { 18 B_LOCALE_CHANGED = '_LCC', 19 }; 20 21 class BLocaleRoster { 22 23 public: 24 BLocaleRoster(); 25 ~BLocaleRoster(); 26 27 // status_t GetCatalog(BLocale *,const char *mimeType, BCatalog *catalog); 28 // status_t GetCatalog(const char *mimeType, BCatalog *catalog); 29 // status_t SetCatalog(BLocale *,const char *mimeType, BCatalog *catalog); 30 31 // status_t GetLocaleFor(const char *langCode,const char *countryCode); 32 33 status_t GetDefaultCollator(BCollator **) const; 34 status_t GetDefaultLanguage(BLanguage **) const; 35 status_t GetDefaultCountry(BCountry **) const; 36 37 status_t GetPreferredLanguages(BMessage *) const; 38 status_t SetPreferredLanguages(BMessage *); 39 // the message contains one or more 'language'-string-fields 40 // which contain the language-name(s) 41 42 status_t GetInstalledLanguages(BMessage *) const; 43 // the message contains one or more 'language'-string-fields 44 // which contain the language-name(s) 45 46 status_t GetInstalledCatalogs(BMessage *, 47 const char* sigPattern = NULL, 48 const char* langPattern = NULL, 49 int32 fingerprint = 0) const; 50 // the message contains... 51 52 // status_t GetDefaultLanguage(BLanguage *); 53 // status_t SetDefaultLanguage(BLanguage *); 54 55 static const char *kCatLangAttr; 56 static const char *kCatSigAttr; 57 static const char *kCatFingerprintAttr; 58 // 59 static const char *kCatManagerMimeType; 60 static const char *kCatEditorMimeType; 61 // 62 static const char *kEmbeddedCatAttr; 63 static int32 kEmbeddedCatResId; 64 65 private: 66 67 BCatalogAddOn* LoadCatalog(const char *signature, 68 const char *language = NULL, 69 int32 fingerprint = 0); 70 BCatalogAddOn* LoadEmbeddedCatalog(entry_ref *appOrAddOnRef); 71 status_t UnloadCatalog(BCatalogAddOn *addOn); 72 // 73 BCatalogAddOn* CreateCatalog(const char *type, 74 const char *signature, 75 const char *language); 76 77 friend class BCatalog; 78 friend class BPrivate::EditableCatalog; 79 friend status_t get_add_on_catalog(BCatalog*, const char *); 80 }; 81 82 #endif /* _LOCALE_ROSTER_H_ */ 83