make gettext.hpp return std::string.

in 99% of cases the returned value was moved into a std::string anyway. We do this becasue the boost gettext functions also return std::string so it makes replacing them easier.
This commit is contained in:
gfgtdf 2014-10-24 23:39:07 +02:00
parent c5cf699210
commit 9742c9cb54
10 changed files with 40 additions and 32 deletions

View file

@ -890,8 +890,8 @@ void show_addons_manager_dialog(display& disp, addons_client& client, addons_lis
}
}
const char* msg_title = NULL;
const char* msg_text = NULL;
std::string msg_title;
std::string msg_text;
// Use the Update terminology when using Update All or working with the
// Upgradable add-ons view.

View file

@ -870,7 +870,7 @@ void context_manager::load_map(const std::string& filename, bool new_context)
replace_map_context(mc.release());
}
if (get_map_context().is_embedded()) {
const char* msg = _("Loaded embedded map data");
std::string msg = _("Loaded embedded map data");
gui2::show_transient_message(gui_.video(), _("Map loaded from scenario"), msg);
} else {
if (get_map_context().get_filename() != filename) {
@ -881,12 +881,13 @@ void context_manager::load_map(const std::string& filename, bool new_context)
} else {
utils::string_map symbols;
symbols["old"] = filename;
const char* msg = _("Loaded referenced map file:\n"
std::string msg = _("Loaded referenced map file:\n"
"$new");
symbols["new"] = get_map_context().get_filename();
symbols["map_data"] = get_map_context().get_map_data_key();
gui2::show_transient_message(gui_.video(), _("Map loaded from scenario"),
vgettext(msg, symbols));
//TODO: msg is already translated does vgettext make sense ?
vgettext(msg.c_str(), symbols));
}
}
}

View file

@ -37,7 +37,7 @@ std::string format_time_summary(time_t t) {
const struct tm save_time = *timeptr;
const char* format_string = NULL;
std::string format_string;
if(current_time.tm_year == save_time.tm_year) {
const int days_apart = current_time.tm_yday - save_time.tm_yday;
@ -65,10 +65,10 @@ std::string format_time_summary(time_t t) {
// save is from a different year
format_string = _("%b %d %Y");
}
assert(format_string);
assert(!format_string.empty());
char buf[40];
const size_t res = util::strftime(buf,sizeof(buf),format_string,&save_time);
const size_t res = util::strftime(buf, sizeof(buf), format_string, &save_time);
if(res == 0) {
buf[0] = 0;
}

View file

@ -21,19 +21,19 @@
#include <cstring>
namespace translation
{
const char* dgettext(const char* domain, const char* msgid)
std::string dgettext(const char* domain, const char* msgid)
{
return ::dgettext(domain, msgid);
}
char const *egettext(char const *msgid)
std::string egettext(char const *msgid)
{
return msgid[0] == '\0' ? msgid : (::gettext)(msgid);
}
const char* dsgettext (const char * domainname, const char *msgid)
std::string dsgettext (const char * domainname, const char *msgid)
{
bind_textdomain_codeset(domainname, "UTF-8");
const char *msgval = dgettext (domainname, msgid);
const char *msgval = ::dgettext (domainname, msgid);
if (msgval == msgid) {
msgval = std::strrchr (msgid, '^');
if (msgval == NULL)
@ -73,10 +73,10 @@ const char* sngettext (const char *singular, const char *plural, int n)
}
#endif
const char* dsngettext (const char * domainname, const char *singular, const char *plural, int n)
std::string dsngettext (const char * domainname, const char *singular, const char *plural, int n)
{
bind_textdomain_codeset(domainname, "UTF-8");
const char *msgval = dngettext (domainname, singular, plural, n);
const char *msgval = ::dngettext (domainname, singular, plural, n);
if (msgval == singular) {
msgval = std::strrchr (singular, '^');
if (msgval == NULL)

View file

@ -35,37 +35,44 @@
// gettext-related declarations
#include "wesconfig.h"
#include <string>
//A Hack to make the eclipse-cdt parser happy.
#ifndef GETTEXT_DOMAIN
# define GETTEXT_DOMAIN PACKAGE
#endif
//A Hack to make the eclipse-cdt parser happy.
#ifdef __CDT_PARSER__
# define GETTEXT_DOMAIN ""
#endif
namespace translation
{
const char* dgettext(const char* domain, const char* msgid);
const char* egettext(const char*);
const char* dsgettext(const char * domainname, const char *msgid);
std::string dgettext(const char* domain, const char* msgid);
std::string egettext(const char*);
std::string dsgettext(const char * domainname, const char *msgid);
//const char* sngettext(const char *singular, const char *plural, int n);
const char* dsngettext(const char * domainname, const char *singular, const char *plural, int n);
static const char* gettext(const char* str)
std::string dsngettext(const char * domainname, const char *singular, const char *plural, int n);
static std::string gettext(const char* str)
{ return translation::dgettext(GETTEXT_DOMAIN, str); }
static const char* sgettext(const char* str)
static std::string sgettext(const char* str)
{ return translation::dsgettext(GETTEXT_DOMAIN, str); }
static const char* sngettext(const char* str1, const char* str2, int n)
static std::string sngettext(const char* str1, const char* str2, int n)
{ return translation::dsngettext(GETTEXT_DOMAIN, str1, str2 , n); }
void bind_textdomain(const char* domain, const char* direcory, const char* encoding);
void set_default_textdomain(const char* domain);
}
#define _(String) translation::dsgettext(GETTEXT_DOMAIN,String)
#define _n(String1, String2, Int) translation::dsngettext(GETTEXT_DOMAIN, String1,String2,Int)
//#define _(String) translation::dsgettext(GETTEXT_DOMAIN,String)
inline static std::string _(const char* str)
{ return translation::dsgettext(GETTEXT_DOMAIN, str); }
//#define _n(String1, String2, Int) translation::dsngettext(GETTEXT_DOMAIN, String1,String2,Int)
inline static std::string _n(const char* str1, const char* str2, int n)
{ return translation::dsngettext(GETTEXT_DOMAIN, str1, str2, n); }
#define gettext_noop(String) String
#define N_(String) gettext_noop (String)

View file

@ -128,7 +128,7 @@ std::string describe_addon_state_info(const addon_tracking_info& state)
}
break;
case ADDON_INSTALLED_UPGRADABLE: {
const char* const vstr
const std::string vstr
= !state.can_publish
? _("addon_state^Installed ($local_version|), "
"upgradable")
@ -137,7 +137,7 @@ std::string describe_addon_state_info(const addon_tracking_info& state)
s = utils::interpolate_variables_into_string(vstr, &i18n_symbols);
} break;
case ADDON_INSTALLED_OUTDATED: {
const char* const vstr
const std::string vstr
= !state.can_publish
? _("addon_state^Installed ($local_version|), "
"outdated on server")

View file

@ -1621,7 +1621,7 @@ class unit_topic_generator: public topic_generator
const unit_type& type_;
const std::string variation_;
typedef std::pair< std::string, unsigned > item;
void push_header(std::vector< item > &row, char const *name) const {
void push_header(std::vector< item > &row, const std::string& name) const {
row.push_back(item(bold(name), font::line_width(name, normal_font_size, TTF_STYLE_BOLD)));
}
public:

View file

@ -265,9 +265,9 @@ std::string save_info::format_time_local() const
char time_buf[256] = {0};
tm* tm_l = localtime(&modified());
if (tm_l) {
std::string format = preferences::use_twelve_hour_clock_format() ? _("%a %b %d %I:%M %p %Y") : _("%a %b %d %H:%M %Y");
const size_t res = strftime(time_buf,sizeof(time_buf),
(preferences::use_twelve_hour_clock_format() ? _("%a %b %d %I:%M %p %Y") : _("%a %b %d %H:%M %Y")),
tm_l);
format.c_str(), tm_l);
if(res == 0) {
time_buf[0] = 0;
}

View file

@ -124,7 +124,7 @@ static bool locale_supports_ampm(const std::tm* time)
namespace util {
size_t strftime(char* str, size_t count, const char* format,
size_t strftime(char* str, size_t count, const std::string& format,
const std::tm* time)
{
bool ampm_supported = locale_supports_ampm(time);

View file

@ -24,7 +24,7 @@ namespace util {
* std::strftime wrapper to support date translations and
* add missing am/pm designations.
*/
size_t strftime(char* str, size_t count, const char* format,
size_t strftime(char* str, size_t count, const std::string& format,
const std::tm* time);
}