2004-08-21 13:45:01 +02:00
|
|
|
#ifndef I18N_DATATYPES_H
|
|
|
|
#define I18N_DATATYPES_H
|
|
|
|
|
|
|
|
#include "StrImmutable.h"
|
|
|
|
|
|
|
|
namespace I18n
|
|
|
|
{
|
2004-09-01 21:48:03 +02:00
|
|
|
// Use for names of objects that should be translated, e.g.
|
|
|
|
// translate("Construct $obj")<<I18n::Noun(selectedobject.name)
|
|
|
|
struct Noun
|
|
|
|
{
|
|
|
|
template<typename T> Noun(T d) : value(d) {}
|
|
|
|
StrImW value;
|
|
|
|
};
|
|
|
|
|
2004-08-21 13:45:01 +02:00
|
|
|
// Allow translate("Hello $you")<<I18n::Name(playername), which
|
2004-09-01 21:48:03 +02:00
|
|
|
// won't attempt to translate the player's name.
|
2004-08-21 13:45:01 +02:00
|
|
|
// Templated to allow char* and wchar_t*
|
|
|
|
struct Name
|
|
|
|
{
|
|
|
|
template<typename T> Name(T d) : value(d) {}
|
|
|
|
StrImW value;
|
|
|
|
};
|
2004-08-24 13:28:18 +02:00
|
|
|
|
|
|
|
// Also allow I18n::Raw("english message"), which does the same
|
|
|
|
// non-translation but makes more sense when writing e.g. error messages
|
|
|
|
typedef Name Raw;
|
2004-08-21 13:45:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-08-21 14:57:10 +02:00
|
|
|
#endif // I18N_DATATYPES_H
|