Added boost header
This commit is contained in:
235
test/external/boost/locale/generator.hpp
vendored
Normal file
235
test/external/boost/locale/generator.hpp
vendored
Normal file
@@ -0,0 +1,235 @@
|
||||
//
|
||||
// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
#ifndef BOOST_LOCALE_GENERATOR_HPP
|
||||
#define BOOST_LOCALE_GENERATOR_HPP
|
||||
#include <boost/locale/config.hpp>
|
||||
#include <boost/cstdint.hpp>
|
||||
#ifdef BOOST_MSVC
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable : 4275 4251 4231 4660)
|
||||
#endif
|
||||
#include <string>
|
||||
#include <locale>
|
||||
#include <memory>
|
||||
|
||||
namespace boost {
|
||||
|
||||
template<typename Type>
|
||||
class shared_ptr;
|
||||
|
||||
///
|
||||
/// \brief This is the main namespace that encloses all localization classes
|
||||
///
|
||||
namespace locale {
|
||||
|
||||
class localization_backend;
|
||||
class localization_backend_manager;
|
||||
|
||||
static const uint32_t nochar_facet = 0; ///< Unspecified character category for character independent facets
|
||||
static const uint32_t char_facet = 1 << 0; ///< 8-bit character facets
|
||||
static const uint32_t wchar_t_facet = 1 << 1; ///< wide character facets
|
||||
static const uint32_t char16_t_facet = 1 << 2; ///< C++0x char16_t facets
|
||||
static const uint32_t char32_t_facet = 1 << 3; ///< C++0x char32_t facets
|
||||
|
||||
static const uint32_t character_first_facet = char_facet; ///< First facet specific for character type
|
||||
static const uint32_t character_last_facet = char32_t_facet; ///< Last facet specific for character type
|
||||
static const uint32_t all_characters = 0xFFFF; ///< Special mask -- generate all
|
||||
|
||||
typedef uint32_t character_facet_type; ///<type that specifies the character type that locales can be generated for
|
||||
|
||||
static const uint32_t convert_facet = 1 << 0; ///< Generate conversion facets
|
||||
static const uint32_t collation_facet = 1 << 1; ///< Generate collation facets
|
||||
static const uint32_t formatting_facet= 1 << 2; ///< Generate numbers, currency, date-time formatting facets
|
||||
static const uint32_t parsing_facet = 1 << 3; ///< Generate numbers, currency, date-time formatting facets
|
||||
static const uint32_t message_facet = 1 << 4; ///< Generate message facets
|
||||
static const uint32_t codepage_facet = 1 << 5; ///< Generate character set conversion facets (derived from std::codecvt)
|
||||
static const uint32_t boundary_facet = 1 << 6; ///< Generate boundary analysis facet
|
||||
|
||||
static const uint32_t per_character_facet_first = convert_facet; ///< First facet specific for character
|
||||
static const uint32_t per_character_facet_last = boundary_facet; ///< Last facet specific for character
|
||||
|
||||
static const uint32_t calendar_facet = 1 << 16; ///< Generate boundary analysis facet
|
||||
static const uint32_t information_facet = 1 << 17; ///< Generate general locale information facet
|
||||
|
||||
static const uint32_t non_character_facet_first = calendar_facet; ///< First character independent facet
|
||||
static const uint32_t non_character_facet_last = information_facet;///< Last character independent facet
|
||||
|
||||
|
||||
static const uint32_t all_categories = 0xFFFFFFFFu; ///< Generate all of them
|
||||
|
||||
typedef uint32_t locale_category_type; ///< a type used for more fine grained generation of facets
|
||||
|
||||
///
|
||||
/// \brief the major class used for locale generation
|
||||
///
|
||||
/// This class is used for specification of all parameters required for locale generation and
|
||||
/// caching. This class const member functions are thread safe if locale class implementation is thread safe.
|
||||
///
|
||||
|
||||
class BOOST_LOCALE_DECL generator {
|
||||
public:
|
||||
|
||||
///
|
||||
/// Create new generator using global localization_backend_manager
|
||||
///
|
||||
generator();
|
||||
///
|
||||
/// Create new generator using specific localization_backend_manager
|
||||
///
|
||||
generator(localization_backend_manager const &);
|
||||
|
||||
~generator();
|
||||
|
||||
///
|
||||
/// Set types of facets that should be generated, default all
|
||||
///
|
||||
void categories(locale_category_type cats);
|
||||
///
|
||||
/// Get types of facets that should be generated, default all
|
||||
///
|
||||
locale_category_type categories() const;
|
||||
|
||||
///
|
||||
/// Set the characters type for which the facets should be generated, default all supported
|
||||
///
|
||||
void characters(character_facet_type chars);
|
||||
///
|
||||
/// Get the characters type for which the facets should be generated, default all supported
|
||||
///
|
||||
character_facet_type characters() const;
|
||||
|
||||
///
|
||||
/// Add a new domain of messages that would be generated. It should be set in order to enable
|
||||
/// messages support.
|
||||
///
|
||||
/// Messages domain has following format: "name" or "name/encoding"
|
||||
/// where name is the base name of the "mo" file where the catalog is stored
|
||||
/// without ".mo" extension. For example for file \c /usr/share/locale/he/LC_MESSAGES/blog.mo
|
||||
/// it would be \c blog.
|
||||
///
|
||||
/// You can optionally specify the encoding of the keys in the sources by adding "/encoding_name"
|
||||
/// For example blog/cp1255.
|
||||
///
|
||||
/// If not defined all keys are assumed to be UTF-8 encoded.
|
||||
///
|
||||
/// \note When you select a domain for the program using dgettext or message API, you
|
||||
/// do not specify the encoding part. So for example if the provided
|
||||
/// domain name was "blog/windows-1255" then for translation
|
||||
/// you should use dgettext("blog","Hello")
|
||||
///
|
||||
///
|
||||
void add_messages_domain(std::string const &domain);
|
||||
///
|
||||
/// Set default message domain. If this member was not called, the first added messages domain is used.
|
||||
/// If the domain \a domain is not added yet it is added.
|
||||
///
|
||||
void set_default_messages_domain(std::string const &domain);
|
||||
|
||||
///
|
||||
/// Remove all added domains from the list
|
||||
///
|
||||
void clear_domains();
|
||||
|
||||
///
|
||||
/// Add a search path where dictionaries are looked in.
|
||||
///
|
||||
/// \note
|
||||
///
|
||||
/// - Under the Windows platform the path is treated as a path in the locale's encoding so
|
||||
/// if you create locale "en_US.windows-1251" then path would be treated as cp1255,
|
||||
/// and if it is en_US.UTF-8 it is treated as UTF-8. File name is always opened with
|
||||
/// a wide file name as wide file names are the native file name on Windows.
|
||||
///
|
||||
/// - Under POSIX platforms all paths passed as-is regardless of encoding as narrow
|
||||
/// encodings are the native encodings for POSIX platforms.
|
||||
///
|
||||
///
|
||||
void add_messages_path(std::string const &path);
|
||||
|
||||
///
|
||||
/// Remove all added paths
|
||||
///
|
||||
void clear_paths();
|
||||
|
||||
///
|
||||
/// Remove all cached locales
|
||||
///
|
||||
void clear_cache();
|
||||
|
||||
///
|
||||
/// Turn locale caching ON
|
||||
///
|
||||
void locale_cache_enabled(bool on);
|
||||
|
||||
///
|
||||
/// Get locale cache option
|
||||
///
|
||||
bool locale_cache_enabled() const;
|
||||
|
||||
///
|
||||
/// Check if by default ANSI encoding is selected or UTF-8 onces. The default is false.
|
||||
///
|
||||
bool use_ansi_encoding() const;
|
||||
|
||||
///
|
||||
/// Select ANSI encodings as default system encoding rather then UTF-8 by default
|
||||
/// under Windows.
|
||||
///
|
||||
/// The default is the most portable and most powerful encoding, UTF-8, but the user
|
||||
/// can select "system" one if dealing with legacy applications
|
||||
///
|
||||
void use_ansi_encoding(bool enc);
|
||||
|
||||
///
|
||||
/// Generate a locale with id \a id
|
||||
///
|
||||
std::locale generate(std::string const &id) const;
|
||||
///
|
||||
/// Generate a locale with id \a id. Use \a base as a locale to which all facets are added,
|
||||
/// instead of std::locale::classic().
|
||||
///
|
||||
std::locale generate(std::locale const &base,std::string const &id) const;
|
||||
///
|
||||
/// Shortcut to generate(id)
|
||||
///
|
||||
std::locale operator()(std::string const &id) const
|
||||
{
|
||||
return generate(id);
|
||||
}
|
||||
|
||||
///
|
||||
/// Set backend specific option
|
||||
///
|
||||
void set_option(std::string const &name,std::string const &value);
|
||||
|
||||
///
|
||||
/// Clear backend specific options
|
||||
///
|
||||
void clear_options();
|
||||
|
||||
private:
|
||||
|
||||
void set_all_options(shared_ptr<localization_backend> backend,std::string const &id) const;
|
||||
|
||||
generator(generator const &);
|
||||
void operator=(generator const &);
|
||||
|
||||
struct data;
|
||||
std::auto_ptr<data> d;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
|
||||
|
||||
Reference in New Issue
Block a user