From 38ce8174d7940898dd195b22507f5486ed4a1926 Mon Sep 17 00:00:00 2001 From: Chris Frey Date: Fri, 20 Jul 2012 21:27:14 -0400 Subject: [PATCH] desktop: improved translatable strings in os40.cc and osconfig.cc --- desktop/src/os40.cc | 97 +++++++++++++++++++++++-------------------------- desktop/src/osconfig.cc | 37 ++++++++++--------- 2 files changed, 65 insertions(+), 69 deletions(-) diff --git a/desktop/src/os40.cc b/desktop/src/os40.cc index 42a840e3..82cd0e1e 100644 --- a/desktop/src/os40.cc +++ b/desktop/src/os40.cc @@ -798,53 +798,42 @@ void entry_status(OSyncEngineChangeUpdate *status, void *cbdata) CallbackBundle *cb = (CallbackBundle*) cbdata; try { - ostringstream oss; - OSyncChange *change = cb->m_priv->osync_engine_change_update_get_change(status); OSyncMember *member = cb->m_priv->osync_engine_change_update_get_member(status); OSyncError *error = cb->m_priv->osync_engine_change_update_get_error(status); - const char *action = NULL; - const char *direction = NULL; - string msg; + string fmt, msg; bool error_event = false; switch( cb->m_priv->osync_engine_change_update_get_event(status) ) { case OSYNC_ENGINE_CHANGE_EVENT_READ: - action = _C("Received an entry"); - direction = _C("from"); + fmt = _C("Received an entry %s (%s) from member %d (%s): %s"); msg = OSyncChangeType2String(cb->m_priv->osync_change_get_changetype(change)); break; case OSYNC_ENGINE_CHANGE_EVENT_WRITTEN: - action = _C("Sent an entry"); - direction = _C("to"); + fmt = _C("Sent an entry %s (%s) to member %d (%s): %s"); msg = OSyncChangeType2String(cb->m_priv->osync_change_get_changetype(change)); break; case OSYNC_ENGINE_CHANGE_EVENT_ERROR: error_event = true; - action = _C("Error for entry"); - direction = _C("and"); + fmt = _C("Error for entry %s (%s) and member %d (%s): %s"); msg = cb->m_priv->osync_error_print_stack_wrapper(&(error)); break; } - if( action ) { - oss << action << " " - << cb->m_priv->osync_change_get_uid(change) - << "(" - << cb->m_priv->osync_objformat_get_name( cb->m_priv->osync_change_get_objformat(change)) - << ") " << direction << _C(" member ") - << cb->m_priv->osync_member_get_id(member) - << " (" - << cb->m_priv->osync_member_get_pluginname(member) - << "): " - << msg; + if( fmt.size() ) { + string status_msg = string_vprintf(fmt.c_str(), + cb->m_priv->osync_change_get_uid(change), + cb->m_priv->osync_objformat_get_name( cb->m_priv->osync_change_get_objformat(change)), + cb->m_priv->osync_member_get_id(member), + cb->m_priv->osync_member_get_pluginname(member), + msg.c_str()); // call the status handler - cb->m_status->EntryStatus(oss.str(), error_event); + cb->m_status->EntryStatus(status_msg, error_event); } } catch( std::exception &e ) { @@ -974,54 +963,53 @@ void member_status(OSyncEngineMemberUpdate *status, void *cbdata) CallbackBundle *cb = (CallbackBundle*) cbdata; try { - ostringstream oss; bool error_event = false; bool valid = true; + string fmt, sinkmsg, errmsg; + const char *objtype = cb->m_priv->osync_engine_member_update_get_objtype(status); if( objtype == NULL ) - oss << _C("Main sink"); + sinkmsg = _C("Main sink"); else - oss << objtype << _C(" sink"); + sinkmsg = string_vprintf(_C("%s sink"), objtype); OSyncMember *member = cb->m_priv->osync_engine_member_update_get_member(status); - oss << _C(" of member ") - << cb->m_priv->osync_member_get_id(member) - << " (" - << cb->m_priv->osync_member_get_pluginname(member) - << ")"; - OSyncError *error = cb->m_priv->osync_engine_member_update_get_error(status); switch( cb->m_priv->osync_engine_member_update_get_event(status) ) { case OSYNC_ENGINE_MEMBER_EVENT_CONNECTED: - oss << _C(" just connected"); + // TRANSLATORS: resulting message may look like this: + // "Main sink of member 5 (barry-sync) just connected" + // The "Main sink" part is based on the "Main sink" + // string or the "%s sink" string. + fmt = _C("%s of member %d (%s) just connected"); break; case OSYNC_ENGINE_MEMBER_EVENT_CONNECT_DONE: // Special event - but not interesting for // the normal user. break; case OSYNC_ENGINE_MEMBER_EVENT_DISCONNECTED: - oss << _C(" just disconnected"); + fmt = _C("%s of member %d (%s) just disconnected"); break; case OSYNC_ENGINE_MEMBER_EVENT_READ: - oss << _C(" just sent all changes"); + fmt = _C("%s of member %d (%s) just sent all changes"); break; case OSYNC_ENGINE_MEMBER_EVENT_WRITTEN: - oss << _C(" committed all changes"); + fmt = _C("%s of member %d (%s) committed all changes"); break; case OSYNC_ENGINE_MEMBER_EVENT_SYNC_DONE: - oss << _C(" reported sync done"); + fmt = _C("%s of member %d (%s) reported sync done"); break; case OSYNC_ENGINE_MEMBER_EVENT_DISCOVERED: - oss << _C(" discovered its objtypes"); + fmt = _C("%s of member %d (%s) discovered its objtypes"); break; case OSYNC_ENGINE_MEMBER_EVENT_ERROR: - oss << _C(" had an error: ") - << cb->m_priv->osync_error_print_stack_wrapper(&error); + fmt = _C("%s of member %d (%s) had an error: %s"); + errmsg = cb->m_priv->osync_error_print_stack_wrapper(&error); error_event = true; break; default: @@ -1029,12 +1017,19 @@ void member_status(OSyncEngineMemberUpdate *status, void *cbdata) break; } + // construct the msg + string msg = string_vprintf(fmt.c_str(), + sinkmsg.c_str(), + cb->m_priv->osync_member_get_id(member), + cb->m_priv->osync_member_get_pluginname(member), + errmsg.c_str()); + // call the status handler - if( oss.str().size() && valid ) { + if( msg.size() && valid ) { cb->m_status->MemberStatus( cb->m_priv->osync_member_get_id(member), cb->m_priv->osync_member_get_pluginname(member), - oss.str(), error_event); + msg, error_event); } } catch( std::exception &e ) { @@ -2012,9 +2007,9 @@ std::string OpenSync40::GetConfiguration(const std::string &group_name, long member_id) { if( !IsConfigurable(group_name, member_id) ) { - ostringstream oss; - oss << "GetConfiguration(): " << _C("Member ") << member_id << _C(" of group '") << group_name << _C("' does not accept configuration."); - throw std::runtime_error(oss.str()); + throw std::runtime_error(string("GetConfiguration(): ") + string_vprintf(_C("Member %ld of group '%s' does not accept configuration."), + member_id, + group_name.c_str())); } OSyncGroup *group = m_priv->osync_group_env_find_group(m_priv->group_env.get(), group_name.c_str()); @@ -2063,9 +2058,9 @@ OS40PluginConfig OpenSync40::GetConfigurationObj(const std::string &group_name, long member_id) { if( !IsConfigurable(group_name, member_id) ) { - ostringstream oss; - oss << "GetConfigurationObj(): " << _C("Member ") << member_id << _C(" of group '") << group_name << _C("' does not accept configuration."); - throw std::runtime_error(oss.str()); + throw std::runtime_error(string("GetConfigurationObj(): ") + string_vprintf(_C("Member %ld of group '%s' does not accept configuration."), + member_id, + group_name.c_str())); } OSyncGroup *group = m_priv->osync_group_env_find_group(m_priv->group_env.get(), group_name.c_str()); @@ -2096,9 +2091,9 @@ void OpenSync40::SetConfiguration(const std::string &group_name, const std::string &config_data) { if( !IsConfigurable(group_name, member_id) ) { - ostringstream oss; - oss << "SetConfiguration(): " << _C("Member ") << member_id << _C(" of group '") << group_name << _C("' does not accept configuration."); - throw std::runtime_error(oss.str()); + throw std::runtime_error(string("SetConfiguration(): ") + string_vprintf(_C("Member %ld of group '%s' does not accept configuration."), + member_id, + group_name.c_str())); } OSyncGroup *group = m_priv->osync_group_env_find_group(m_priv->group_env.get(), group_name.c_str()); diff --git a/desktop/src/osconfig.cc b/desktop/src/osconfig.cc index 91dccdf0..59fccdb6 100644 --- a/desktop/src/osconfig.cc +++ b/desktop/src/osconfig.cc @@ -109,15 +109,13 @@ void Group::BarryCheck(OpenSync::API &api, } if( found == 0 && (throw_mask & OSCG_THROW_ON_NO_BARRY) ) { - ostringstream oss; - oss << _C("No Barry plugins found in group '") << group_name << _C("' and OSCG_THROW_ON_NO_BARRY is set."); - throw LoadError(oss.str()); + throw LoadError( + string_vprintf(_C("No Barry plugins found in group '%s' and OSCG_THROW_ON_NO_BARRY is set."), group_name.c_str())); } if( found > 1 && (throw_mask & OSCG_THROW_ON_MULTIPLE_BARRIES) ) { - ostringstream oss; - oss << _C("Found ") << found << _C(" Barry plugins in group '") << group_name << _C("' and OSCG_THROW_ON_MULTIPLE_BARRIES is set."); - throw LoadError(oss.str()); + throw LoadError( + string_vprintf(_C("Found %d Barry plugins in group '%s' and OSCG_THROW_ON_MULTIPLE_BARRIES is set."), found, group_name.c_str())); } } @@ -304,9 +302,10 @@ void Group::Load(const std::string &src_group_name, p->SetMemberId(b->id); if( p->IsUnsupported() && (throw_mask & OSCG_THROW_ON_UNSUPPORTED) ) { - ostringstream oss; - oss << _C("Unsupported plugin '") << b->plugin_name << _C("' in group '") << src_group_name << _C("' and OSCG_THROW_ON_UNSUPPORTED is set."); - throw LoadError(oss.str()); + throw LoadError( + string_vprintf(_C("Unsupported plugin '%s' in group '%s' and OSCG_THROW_ON_UNSUPPORTED is set."), + b->plugin_name.c_str(), + src_group_name.c_str())); } // everything looks ok, add the plugin to our list @@ -346,15 +345,18 @@ void Group::DeletePlugin(iterator i, OpenSync::API &api) Member *m = members.Find( (*i)->GetMemberId() ); if( !m ) { - ostringstream oss; - oss << _C("Tried to delete non-existent member ID ") << (*i)->GetMemberId() << " (" << (*i)->GetPluginName(api) << ") " << _C("from group") << "'" << m_group_name << "'"; - throw DeleteError(oss.str()); + throw DeleteError(string_vprintf(_C("Tried to delete non-existent member ID %ld (%s) from group '%s'"), + (*i)->GetMemberId(), + (*i)->GetPluginName(api).c_str(), + m_group_name.c_str())); } if( m->plugin_name != (*i)->GetPluginName(api) ) { - ostringstream oss; - oss << _C("Tried to delete member ID ") << (*i)->GetMemberId() << _C(" using plugin '") << (*i)->GetPluginName(api) << _C("' from group '") << m_group_name << _C("', but the existing member uses plugin") << "'" << m->plugin_name << "'"; - throw DeleteError(oss.str()); + throw DeleteError(string_vprintf(_C("Tried to delete member ID %ld using plugin '%s' from group '%s', but the existing member uses plugin '%s'"), + (*i)->GetMemberId(), + (*i)->GetPluginName(api).c_str(), + m_group_name.c_str(), + m->plugin_name.c_str())); } // so far so good... try deleting it @@ -372,9 +374,8 @@ void Group::Save(OpenSync::API &api) // connected plugins match the existing member_ids and // plugin names in the group's member list if( !GroupMatchesExistingConfig(api) ) { - ostringstream oss; - oss << _C("Tried to overwrite group '") << m_group_name << _C("' with a Group set that did not match in ID's and plugin names."); - throw SaveError(oss.str()); + throw SaveError(string_vprintf(_C("Tried to overwrite group '%s' with a Group set that did not match in ID's and plugin names."), + m_group_name.c_str())); } } else { -- 2.11.4.GIT