Boost.Locale
locale_data.hpp
1//
2// 版权所有 (c) 2009-2011 Artyom Beilis (Tonkikh)
3// 版权所有 (c) 2023-2024 Alexander Grund
4//
5// 根据 Boost 软件许可协议 1.0 版本分发。
6// https://boost.ac.cn/LICENSE_1_0.txt
7
8#ifndef BOOST_LOCALE_UTIL_LOCALE_DATA_HPP
9#define BOOST_LOCALE_UTIL_LOCALE_DATA_HPP
10
11#include <boost/locale/config.hpp>
12#include <string>
13
14#ifdef BOOST_MSVC
15# pragma warning(push)
16# pragma warning(disable : 4251)
17#endif
18
19namespace boost { namespace locale { namespace util {
20
22 class BOOST_LOCALE_DECL locale_data {
23 std::string language_;
24 std::string script_;
25 std::string country_;
26 std::string encoding_;
27 std::string variant_;
28 bool utf8_;
29
30 public
36 explicit locale_data(const std::string& locale_name);
37
39 const std::string& language() const { return language_; }
41 const std::string& script() const { return script_; }
43 const std::string& country() const { return country_; }
45 const std::string& encoding() const { return encoding_; }
48 locale_data& encoding(std::string new_encoding, bool uppercase = true);
50 const std::string& variant() const { return variant_; }
52 bool is_utf8() const { return utf8_; }
53
63 bool parse(const std::string& locale_name);
64
67 std::string to_string() const;
68
69 private
70 void reset();
71 bool parse_from_lang(const std::string& input);
72 bool parse_from_script(const std::string& input);
73 bool parse_from_country(const std::string& input);
74 bool parse_from_encoding(const std::string& input);
75 bool parse_from_variant(const std::string& input);
76 };
77
78}}} // namespace boost::locale::util
79
80#ifdef BOOST_MSVC
81# pragma warning(pop)
82#endif
83#endif
区域设置名称/标识符的持有者和解析器。
定义 locale_data.hpp:22
const std::string & encoding() const
返回编码/字符集,例如 ISO8859-1 或 UTF-8。
定义 locale_data.hpp:45
std::string to_string() const
bool parse(const std::string &locale_name)
locale_data()
默认为使用 US-ASCII 编码的 C 区域设置。
locale_data(const std::string &locale_name)
bool is_utf8() const
如果编码为 UTF-8,则返回 true。
定义 locale_data.hpp:52
const std::string & language() const
返回语言(通常为 2 个小写字母,即 ISO-639 或 'C')
定义 locale_data.hpp:39
const std::string & country() const
返回国家/地区(通常为 2 个大写字母,即 ISO-3166)
定义 locale_data.hpp:43
locale_data & encoding(std::string new_encoding, bool uppercase=true)
const std::string & script() const
如果存在,则返回 ISO-15924 缩写脚本代码。
定义 locale_data.hpp:41
const std::string & variant() const
返回变体/修饰符,例如 euro 或 stroke。
定义 locale_data.hpp:50