⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transtext.h

📁 C++ web POSIX framewark
💻 H
字号:
#ifndef CPPCMS_TRANSTEXT_H#define CPPCMS_TRANSTEXT_H#include <map>#include <string>#include <vector>#include <boost/shared_ptr.hpp>namespace cppcms {namespace transtext {using namespace std;namespace lambda {	struct plural { // INTERFACE 		virtual int operator()(int n) const = 0;		virtual ~plural(){};	};	plural *compile(char const *expr);}; // END OF NAMESPACE LAMBDAclass trans {public:	trans() {};	virtual ~trans() {};	virtual void load(char const * locale,char const *domain_name, char const * dirname) {};	virtual char const *gettext(char const *s) const { return s; };	virtual char const *ngettext(char const *s,char const *p,int n) const { return n==1 ? s:p; };	char const *operator()(char const *str) const { return gettext(str); };	char const *operator()(char const *single,char const *plural,int n) const { return ngettext(single,plural,n); };};class trans_thread_safe : public trans {	lambda::plural *converter;	void *data;public:	trans_thread_safe();	virtual ~trans_thread_safe();	virtual void load(char const * locale,char const *domain_name, char const * dirname);	virtual char const *gettext(char const *s) const;	virtual char const *ngettext(char const *single,char const *plural,int n) const;	lambda::plural const & num2idx_conv() const { return *converter; };	int num2idx(int n) const { return (*converter)(n); };};class trans_factory {	map<string,map<string,boost::shared_ptr<trans> > > langs;	string default_lang;	string default_domain;public:	trans const &get(string lang,string domain) const;	void load(	string const &locale_dir,			vector<string> const &lang_list,			string const &lang_def,			vector<string> const &domain_list,			string const &domain_def);	~trans_factory();};} // namespace transtext } // namespace cppcms#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -