diff options
Diffstat (limited to 'include/swlocale.h')
-rw-r--r-- | include/swlocale.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/include/swlocale.h b/include/swlocale.h new file mode 100644 index 0000000..94ee17a --- /dev/null +++ b/include/swlocale.h @@ -0,0 +1,78 @@ +/****************************************************************************** + * + * swlocale.h - definition of Class SWLocale used for retrieval + * of locale lookups + * + * $Id: swlocale.h 2833 2013-06-29 06:40:28Z chrislit $ + * + * Copyright 2000-2013 CrossWire Bible Society (http://www.crosswire.org) + * CrossWire Bible Society + * P. O. Box 2528 + * Tempe, AZ 85280-2528 + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation version 2. + * + * This program 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 + * General Public License for more details. + * + */ + +#ifndef SWLOCALE_H +#define SWLOCALE_H + +#include <defs.h> + +SWORD_NAMESPACE_START + +class SWConfig; +static const int ENDOFABBREVS = -2; + +/** SWLocale is used for the localisation of the booknames +* The SWLocale is a class which holds the information of one language. +* Every language supported by SWORD has one SWLocale object, +* get the name of the Language using @see getname of this class. +* Another functions useful for frontend developers is @see getDescription. +*/ +class SWDLLEXPORT SWLocale { + +class Private; + + Private *p; + + SWConfig *localeSource; + + char *name; + char *description; + char *encoding; + struct abbrev *bookAbbrevs; + int abbrevsCnt; + const char **bookLongNames; + const char **bookPrefAbbrev; + +public: + SWLocale(const char *ifilename); + virtual ~SWLocale(); + + /** + * This function is used to get the name of the languages which this object is handling. + * @return The name of the managed language. A possible example is "de". + */ + virtual const char *getName(); + /** + * @return The description. A possible example is "German". + */ + virtual const char *getDescription(); + virtual const char *getEncoding(); + virtual const char *translate(const char *text); + virtual void augment(SWLocale &addFrom); + virtual SWLocale & operator +=(SWLocale &addFrom) { augment(addFrom); return *this; } + virtual const struct abbrev *getBookAbbrevs(int *retSize); + static const char *DEFAULT_LOCALE_NAME; +}; + +SWORD_NAMESPACE_END +#endif |