mirror of
https://github.com/transmission/transmission.git
synced 2025-12-24 12:28:52 +00:00
the last i18n-centric commit for awhile, I hope.
This commit is contained in:
@@ -112,7 +112,7 @@ static GtkActionEntry entries[] =
|
||||
{ "remove-torrent", GTK_STOCK_REMOVE, NULL, "Delete", NULL, G_CALLBACK(action_cb) },
|
||||
{ "delete-torrent", GTK_STOCK_DELETE, N_("_Delete Files and Remove"), "<control>Delete", NULL, G_CALLBACK(action_cb) },
|
||||
{ "new-torrent", GTK_STOCK_NEW, N_("_New..."), NULL,
|
||||
N_("Create a new torrent"),
|
||||
N_("Create a torrent"),
|
||||
G_CALLBACK(action_cb) },
|
||||
{ "close", GTK_STOCK_CLOSE, N_("Close _Window"), "<control>W",
|
||||
N_("Close main window"),
|
||||
@@ -123,7 +123,7 @@ static GtkActionEntry entries[] =
|
||||
N_("Dese_lect All"), "<shift><control>A", NULL, G_CALLBACK(action_cb) },
|
||||
{ "edit-preferences", GTK_STOCK_PREFERENCES, NULL, NULL, NULL, G_CALLBACK(action_cb) },
|
||||
{ "show-torrent-details", GTK_STOCK_INFO,
|
||||
N_("_Details"), "<alt>Return", N_("Torrent Details"), G_CALLBACK(action_cb) },
|
||||
N_("_Details"), "<alt>Return", NULL, G_CALLBACK(action_cb) },
|
||||
{ "show-about-dialog", GTK_STOCK_ABOUT, NULL, NULL, NULL, G_CALLBACK(action_cb) },
|
||||
{ "update-tracker", GTK_STOCK_NETWORK,
|
||||
N_("Ask Tracker for _More Peers"), NULL, NULL, G_CALLBACK(action_cb) }
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
***** PIECES VIEW
|
||||
****/
|
||||
|
||||
/* define SHOW_PIECES */
|
||||
|
||||
#ifdef SHOW_PIECES
|
||||
static int
|
||||
getGridSize (int pieceCount, int * n_rows, int * n_cols)
|
||||
{
|
||||
@@ -220,6 +223,7 @@ refresh_pieces( GtkWidget * da, GdkEventExpose * event UNUSED, gpointer gtor )
|
||||
g_free (completeness);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/****
|
||||
***** PEERS TAB
|
||||
@@ -462,8 +466,10 @@ refresh_peers (GtkWidget * top)
|
||||
|
||||
append_peers_to_model (store, peers, n_peers); /* all these are new */
|
||||
|
||||
#ifdef SHOW_PIECES
|
||||
if (GDK_IS_DRAWABLE (p->completeness->window))
|
||||
refresh_pieces (p->completeness, NULL, p->gtor);
|
||||
#endif
|
||||
|
||||
fmtpeercount (p->seeders_lb, stat->seeders);
|
||||
fmtpeercount (p->leechers_lb, stat->leechers);
|
||||
@@ -476,10 +482,9 @@ static GtkWidget* peer_page_new ( TrTorrent * gtor )
|
||||
{
|
||||
guint i;
|
||||
GtkTreeModel *m;
|
||||
GtkWidget *h, *v, *w, *ret, *da, *sw, *l, *vbox, *hbox;
|
||||
GtkWidget *h, *v, *w, *ret, *sw, *l, *vbox, *hbox;
|
||||
tr_torrent * tor = tr_torrent_handle (gtor);
|
||||
PeerData * p = g_new (PeerData, 1);
|
||||
char name[64];
|
||||
|
||||
/* TODO: make this configurable? */
|
||||
int view_columns[] = { PEER_COL_IS_ENCRYPTED,
|
||||
@@ -584,10 +589,10 @@ static GtkWidget* peer_page_new ( TrTorrent * gtor )
|
||||
vbox = gtk_vbox_new (FALSE, GUI_PAD);
|
||||
gtk_container_set_border_width (GTK_CONTAINER(vbox), GUI_PAD_BIG);
|
||||
|
||||
g_snprintf (name, sizeof(name), "<b>%s</b>", _("Availability"));
|
||||
#ifdef SHOW_PIECES
|
||||
l = gtk_label_new (NULL);
|
||||
gtk_misc_set_alignment (GTK_MISC(l), 0.0f, 0.5f);
|
||||
gtk_label_set_markup (GTK_LABEL(l), name);
|
||||
gtk_label_set_markup (GTK_LABEL(l), _( "<b>Availability</b>" ) );
|
||||
gtk_box_pack_start (GTK_BOX(vbox), l, FALSE, FALSE, 0);
|
||||
|
||||
w = da = p->completeness = gtk_drawing_area_new ();
|
||||
@@ -607,42 +612,33 @@ static GtkWidget* peer_page_new ( TrTorrent * gtor )
|
||||
gtk_widget_set_size_request (w, 0u, GUI_PAD);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), w, FALSE, FALSE, 0);
|
||||
|
||||
g_snprintf (name, sizeof(name), "<b>%s</b>", _("Connected Peers"));
|
||||
l = gtk_label_new (NULL);
|
||||
gtk_misc_set_alignment (GTK_MISC(l), 0.0f, 0.5f);
|
||||
gtk_label_set_markup (GTK_LABEL(l), name);
|
||||
gtk_label_set_markup (GTK_LABEL(l), _( "<b>Connected Peers</b>" ) );
|
||||
gtk_box_pack_start (GTK_BOX(vbox), l, FALSE, FALSE, 0);
|
||||
#endif
|
||||
|
||||
h = gtk_hbox_new (FALSE, GUI_PAD);
|
||||
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
||||
gtk_widget_set_size_request (w, GUI_PAD_BIG, 0);
|
||||
gtk_box_pack_start (GTK_BOX(h), w, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start_defaults (GTK_BOX(h), sw);
|
||||
gtk_box_pack_start_defaults (GTK_BOX(vbox), h);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, GUI_PAD);
|
||||
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
||||
gtk_widget_set_size_request (w, GUI_PAD_BIG, 0);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), w, FALSE, FALSE, 0);
|
||||
g_snprintf (name, sizeof(name), "<b>%s:</b>", _("Seeders"));
|
||||
l = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL(l), name);
|
||||
gtk_label_set_markup (GTK_LABEL(l), _( "<b>Seeders:</b>" ) );
|
||||
gtk_box_pack_start (GTK_BOX(hbox), l, FALSE, FALSE, 0);
|
||||
l = p->seeders_lb = gtk_label_new (NULL);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), l, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start_defaults (GTK_BOX(hbox),
|
||||
gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f));
|
||||
g_snprintf (name, sizeof(name), "<b>%s:</b>", _("Leechers"));
|
||||
l = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL(l), name);
|
||||
gtk_label_set_markup (GTK_LABEL(l), _( "<b>Leechers:</b>" ) );
|
||||
gtk_box_pack_start (GTK_BOX(hbox), l, FALSE, FALSE, 0);
|
||||
l = p->leechers_lb = gtk_label_new (NULL);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), l, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start_defaults (GTK_BOX(hbox),
|
||||
gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f));
|
||||
g_snprintf (name, sizeof(name), "<b>%s:</b>", _("Completed"));
|
||||
l = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL(l), name);
|
||||
gtk_label_set_markup (GTK_LABEL(l), _( "<b>Completed:</b>" ) );
|
||||
gtk_box_pack_start (GTK_BOX(hbox), l, FALSE, FALSE, 0);
|
||||
l = p->completed_lb = gtk_label_new (NULL);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), l, FALSE, FALSE, 0);
|
||||
@@ -669,14 +665,11 @@ info_page_new (tr_torrent * tor)
|
||||
char *pch;
|
||||
char sizeStr[128];
|
||||
char buf[256];
|
||||
char name[128];
|
||||
const char * namefmt = "%s:";
|
||||
GtkTextBuffer * b;
|
||||
const tr_info * info = tr_torrentInfo(tor);
|
||||
|
||||
hig_workarea_add_section_title (t, &row, _("Torrent Information"));
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Pieces"));
|
||||
tr_strlsize( sizeStr, info->pieceSize, sizeof(sizeStr) );
|
||||
g_snprintf( buf, sizeof( buf ),
|
||||
/* %1$s is number of pieces; %2$s is how big each piece is */
|
||||
@@ -685,21 +678,18 @@ info_page_new (tr_torrent * tor)
|
||||
info->pieceCount ),
|
||||
info->pieceCount, sizeStr );
|
||||
l = gtk_label_new (buf);
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _("Pieces:"), l, NULL);
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Hash"));
|
||||
l = gtk_label_new (info->hashString);
|
||||
gtk_label_set_ellipsize( GTK_LABEL( l ), PANGO_ELLIPSIZE_END );
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _("Hash:"), l, NULL);
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Privacy"));
|
||||
pch = (info->isPrivate )
|
||||
? _("Private Torrent: PEX disabled")
|
||||
: _("Public Torrent");
|
||||
l = gtk_label_new (pch);
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _("Privacy:"), l, NULL);
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Comment"));
|
||||
b = gtk_text_buffer_new (NULL);
|
||||
if( info->comment )
|
||||
gtk_text_buffer_set_text (b, info->comment, -1);
|
||||
@@ -710,34 +700,30 @@ info_page_new (tr_torrent * tor)
|
||||
fr = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME(fr), GTK_SHADOW_IN);
|
||||
gtk_container_add (GTK_CONTAINER(fr), w);
|
||||
w = hig_workarea_add_row (t, &row, name, fr, NULL);
|
||||
w = hig_workarea_add_row (t, &row, _("Comment:"), fr, NULL);
|
||||
gtk_misc_set_alignment (GTK_MISC(w), 0.0f, 0.0f);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Origins"));
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Creator"));
|
||||
l = gtk_label_new (*info->creator ? info->creator : _("Unknown"));
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _("Creator:"), l, NULL);
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Date"));
|
||||
pch = rfc822date ((guint64)info->dateCreated * 1000u);
|
||||
l = gtk_label_new (pch);
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _("Date:"), l, NULL);
|
||||
g_free (pch);
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Location"));
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Destination directory"));
|
||||
l = gtk_label_new (tr_torrentGetFolder (tor));
|
||||
gtk_label_set_ellipsize( GTK_LABEL( l ), PANGO_ELLIPSIZE_END );
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _( "Destination folder" ), l, NULL);
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Torrent file"));
|
||||
l = gtk_label_new ( info->torrent );
|
||||
gtk_label_set_ellipsize( GTK_LABEL( l ), PANGO_ELLIPSIZE_END );
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _( "Torrent file" ), l, NULL);
|
||||
|
||||
hig_workarea_finish (t, &row);
|
||||
return t;
|
||||
@@ -780,7 +766,7 @@ refresh_activity (GtkWidget * top)
|
||||
g_free (pch);
|
||||
|
||||
/* %1$.1f is percent of how much of what we want's been downloaded,
|
||||
* %2$.1f is percent of how much of the whole torrent we've downloaded */
|
||||
%2$.1f is percent of how much of the whole torrent we've downloaded */
|
||||
pch = g_strdup_printf( _( "%1$.1f%% (%2$.1f%% selected)" ), stat->percentComplete*100.0, stat->percentDone*100.0 );
|
||||
gtk_label_set_text (GTK_LABEL(a->progress_lb), pch);
|
||||
g_free (pch);
|
||||
@@ -788,7 +774,7 @@ refresh_activity (GtkWidget * top)
|
||||
tr_strlsize( sizeStr, stat->haveValid + stat->haveUnchecked, sizeof(sizeStr) );
|
||||
tr_strlsize( sizeStr2, stat->haveValid, sizeof(sizeStr2) );
|
||||
/* %1$s is total size of what we've saved to disk
|
||||
* %2$s is how much of it's passed the checksum test */
|
||||
%2$s is how much of it's passed the checksum test */
|
||||
g_snprintf( buf, sizeof(buf), _("%1$s (%2$s verified)"), sizeStr, sizeStr2 );
|
||||
gtk_label_set_text( GTK_LABEL( a->have_lb ), buf );
|
||||
|
||||
@@ -810,18 +796,20 @@ refresh_activity (GtkWidget * top)
|
||||
gtk_label_set_text (GTK_LABEL(a->err_lb),
|
||||
*stat->errorString ? stat->errorString : _("None"));
|
||||
|
||||
pch = stat->startDate ? rfc822date (stat->startDate)
|
||||
: g_strdup_printf ("?");
|
||||
pch = stat->startDate ? rfc822date( stat->startDate )
|
||||
: g_strdup_printf( _( "Unknown" ) );
|
||||
gtk_label_set_text (GTK_LABEL(a->date_added_lb), pch);
|
||||
g_free (pch);
|
||||
|
||||
pch = stat->activityDate ? rfc822date (stat->activityDate)
|
||||
: g_strdup_printf ("?");
|
||||
pch = stat->activityDate ? rfc822date( stat->activityDate )
|
||||
: g_strdup_printf( _( "Unknown" ) );
|
||||
gtk_label_set_text (GTK_LABEL(a->last_activity_lb), pch);
|
||||
g_free (pch);
|
||||
|
||||
#ifdef SHOW_PIECES
|
||||
if (GDK_IS_DRAWABLE (a->availability_da->window))
|
||||
refresh_pieces (a->availability_da, NULL, a->gtor);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -831,7 +819,7 @@ activity_page_new (TrTorrent * gtor)
|
||||
Activity * a = g_new (Activity, 1);
|
||||
int row = 0;
|
||||
GtkWidget *t = hig_workarea_create ();
|
||||
GtkWidget *l, *w;
|
||||
GtkWidget *l;
|
||||
|
||||
a->gtor = gtor;
|
||||
|
||||
@@ -866,6 +854,7 @@ activity_page_new (TrTorrent * gtor)
|
||||
l = a->err_lb = gtk_label_new (NULL);
|
||||
hig_workarea_add_row (t, &row, _("Error:"), l, NULL);
|
||||
|
||||
#ifdef SHOW_PIECES
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Completion"));
|
||||
|
||||
@@ -874,6 +863,7 @@ activity_page_new (TrTorrent * gtor)
|
||||
g_object_set_data (G_OBJECT(w), "draw-mode", GINT_TO_POINTER(DRAW_PROG));
|
||||
g_signal_connect (w, "expose-event", G_CALLBACK(refresh_pieces), gtor);
|
||||
hig_workarea_add_wide_control( t, &row, w );
|
||||
#endif
|
||||
|
||||
hig_workarea_add_section_divider (t, &row);
|
||||
hig_workarea_add_section_title (t, &row, _("Dates"));
|
||||
@@ -1065,8 +1055,6 @@ tracker_page_new( TrTorrent * gtor )
|
||||
char * tmp;
|
||||
struct tracker_page * page = g_new0( struct tracker_page, 1 );
|
||||
const tr_tracker_info * track;
|
||||
char name[128];
|
||||
const char * namefmt = "%s:";
|
||||
const tr_info * info = tr_torrent_info (gtor);
|
||||
|
||||
page->gtor = gtor;
|
||||
@@ -1092,14 +1080,13 @@ tracker_page_new( TrTorrent * gtor )
|
||||
hig_workarea_add_section_divider( t, &row );
|
||||
hig_workarea_add_section_title( t, &row, _( "Announce" ) );
|
||||
|
||||
g_snprintf (name, sizeof(name), namefmt, _("Tracker"));
|
||||
track = info->trackerList->list;
|
||||
tmp = track->port==80
|
||||
? g_strdup_printf( "http://%s%s", track->address, track->announce )
|
||||
: g_strdup_printf( "http://%s:%d%s", track->address, track->port, track->announce );
|
||||
l = gtk_label_new( tmp );
|
||||
gtk_label_set_ellipsize( GTK_LABEL( l ), PANGO_ELLIPSIZE_END );
|
||||
hig_workarea_add_row (t, &row, name, l, NULL);
|
||||
hig_workarea_add_row (t, &row, _( "Tracker:" ), l, NULL);
|
||||
g_free( tmp );
|
||||
|
||||
s = _( "Last announce at:" );
|
||||
@@ -1117,8 +1104,8 @@ tracker_page_new( TrTorrent * gtor )
|
||||
page->next_announce_countdown_lb = l;
|
||||
hig_workarea_add_row( t, &row, s, l, NULL );
|
||||
|
||||
/* when tracker will honor user pressing
|
||||
* the "ask for more peers" button */
|
||||
/* how long until the tracker will honor user
|
||||
* pressing the "ask for more peers" button */
|
||||
s = _( "Manual announce allowed in:" );
|
||||
l = gtk_label_new( NULL );
|
||||
page->manual_announce_countdown_lb = l;
|
||||
|
||||
@@ -134,7 +134,7 @@ promptfordir( GtkWindow * parent, TrCore * core, GList * files, tr_ctor * ctor )
|
||||
|
||||
g_object_weak_ref( G_OBJECT( core ), promptdirnocore, stuff );
|
||||
|
||||
wind = gtk_file_chooser_dialog_new( _("Destination directory"), parent,
|
||||
wind = gtk_file_chooser_dialog_new( _("Destination folder"), parent,
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
|
||||
|
||||
@@ -61,11 +61,11 @@ static const char*
|
||||
priorityToString( const int priority )
|
||||
{
|
||||
switch( priority ) {
|
||||
/* Translators: this refers to priority */
|
||||
/* this refers to priority */
|
||||
case TR_PRI_HIGH: return _("High");
|
||||
/* Translators: this refers to priority */
|
||||
/* this refers to priority */
|
||||
case TR_PRI_NORMAL: return _("Normal");
|
||||
/* Translators: this refers to priority */
|
||||
/* this refers to priority */
|
||||
case TR_PRI_LOW: return _("Low");
|
||||
default: return "BUG!";
|
||||
}
|
||||
|
||||
@@ -231,10 +231,10 @@ cli_io_received( GSource * source UNUSED, void * data, size_t len,
|
||||
g_message( _("Bad IPC protocol version") );
|
||||
break;
|
||||
case EINVAL:
|
||||
g_message( _("IPC protocol parse error") );
|
||||
g_message( _("IPC parse error") );
|
||||
break;
|
||||
default:
|
||||
g_message( _("IPC parsing failed: %s"), g_strerror( errno ) );
|
||||
g_message( _("IPC parse error: %s"), g_strerror( errno ) );
|
||||
break;
|
||||
}
|
||||
destroycon( con );
|
||||
|
||||
@@ -929,8 +929,8 @@ about ( GtkWindow * parent )
|
||||
"wrap-license", TRUE,
|
||||
#endif
|
||||
"authors", authors,
|
||||
/* Translators: translate "translator-credits" with your name
|
||||
* to have it appear in the credits in the "About" dialog */
|
||||
/* Translators: translate "translator-credits" as your name
|
||||
to have it appear in the credits in the "About" dialog */
|
||||
"translator-credits", _("translator-credits"),
|
||||
NULL );
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ make_meta_ui( GtkWindow * parent, tr_handle * handle )
|
||||
|
||||
g_snprintf( name, sizeof(name), "%s:", _("File _Type"));
|
||||
h = gtk_hbox_new( FALSE, GUI_PAD_SMALL );
|
||||
w = rb_dir = gtk_radio_button_new_with_mnemonic( NULL, _("Directory"));
|
||||
w = rb_dir = gtk_radio_button_new_with_mnemonic( NULL, _("Folder"));
|
||||
gtk_box_pack_start ( GTK_BOX(h), w, FALSE, FALSE, 0 );
|
||||
w = rb_file = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON(w), _("Single File") );
|
||||
gtk_box_pack_start ( GTK_BOX(h), w, FALSE, FALSE, 0 );
|
||||
@@ -289,7 +289,7 @@ make_meta_ui( GtkWindow * parent, tr_handle * handle )
|
||||
hig_workarea_add_section_divider( t, &row );
|
||||
hig_workarea_add_section_title (t, &row, _("Torrent"));
|
||||
|
||||
g_snprintf( name, sizeof(name), _("Private to this Tracker") );
|
||||
g_snprintf( name, sizeof(name), _("Private to this tracker") );
|
||||
w = ui->private_check = hig_workarea_add_wide_checkbutton( t, &row, name, FALSE );
|
||||
|
||||
g_snprintf( name, sizeof(name), "%s:", _("Announce _URL"));
|
||||
|
||||
@@ -294,7 +294,7 @@ msgwin_create( TrCore * core )
|
||||
|
||||
gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
|
||||
GTK_TOOLBAR_CHILD_WIDGET, levels,
|
||||
NULL, _("Select the debug filter level."),
|
||||
NULL, _("Set the verbosity level"),
|
||||
NULL, NULL, NULL, NULL);
|
||||
|
||||
gtk_box_pack_start( GTK_BOX( vbox ), toolbar, FALSE, FALSE, 0 );
|
||||
|
||||
@@ -195,7 +195,7 @@ makeaddwind( GtkWindow * parent,
|
||||
|
||||
++row;
|
||||
col = 0;
|
||||
l = gtk_label_new_with_mnemonic( _( "Destination _directory:" ) );
|
||||
l = gtk_label_new_with_mnemonic( _( "Destination _folder:" ) );
|
||||
gtk_misc_set_alignment( GTK_MISC( l ), 0.0f, 0.5f );
|
||||
gtk_table_attach( GTK_TABLE( t ), l, col, col+1, row, row+1, GTK_FILL, 0, 0, 0 );
|
||||
++col;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* This exemption does not extend to derived works not owned by
|
||||
* the Transmission project.
|
||||
*
|
||||
* $Id:$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <glib/gi18n.h>
|
||||
@@ -103,7 +103,7 @@ stats_dialog_create( GtkWindow * parent, TrCore * core )
|
||||
l = ui->one_time_lb = gtk_label_new( NULL );
|
||||
hig_workarea_add_row( t, &row, _("Duration:"), l, NULL );
|
||||
hig_workarea_add_section_divider( t, &row );
|
||||
hig_workarea_add_section_title( t, &row, _("Cumulative") );
|
||||
hig_workarea_add_section_title( t, &row, _("Total") );
|
||||
l = ui->all_sessions_lb = gtk_label_new( _("Program started %d times") );
|
||||
hig_workarea_add_label_w( t, row++, l );
|
||||
l = ui->all_up_lb = gtk_label_new( NULL );
|
||||
|
||||
@@ -48,8 +48,8 @@ getProgressString( const tr_info * info, const tr_stat * torStat )
|
||||
if( !isDone )
|
||||
str = g_strdup_printf(
|
||||
/* %1$s is how much we've got,
|
||||
* %2$s is how much we'll have when done,
|
||||
* %3$.2f%% is a percentage of the two */
|
||||
%2$s is how much we'll have when done,
|
||||
%3$.2f%% is a percentage of the two */
|
||||
_("%1$s of %2$s (%3$.2f%%)"),
|
||||
tr_strlsize( buf1, haveTotal, sizeof(buf1) ),
|
||||
tr_strlsize( buf2, torStat->desiredSize, sizeof(buf2) ),
|
||||
@@ -57,10 +57,10 @@ getProgressString( const tr_info * info, const tr_stat * torStat )
|
||||
else if( !isSeed )
|
||||
str = g_strdup_printf(
|
||||
/* %1$s is how much we've got,
|
||||
* %2$s is the torrent's total size,
|
||||
* %3$.2f%% is a percentage of the two,
|
||||
* %4$s is how much we've uploaded,
|
||||
* %5$s is our upload-to-download ratio */
|
||||
%2$s is the torrent's total size,
|
||||
%3$.2f%% is a percentage of the two,
|
||||
%4$s is how much we've uploaded,
|
||||
%5$s is our upload-to-download ratio */
|
||||
_("%1$s of %2$s (%3$.2f%%), uploaded %4$s (Ratio: %5$s)"),
|
||||
tr_strlsize( buf1, haveTotal, sizeof(buf1) ),
|
||||
tr_strlsize( buf2, info->totalSize, sizeof(buf2) ),
|
||||
@@ -70,8 +70,8 @@ getProgressString( const tr_info * info, const tr_stat * torStat )
|
||||
else
|
||||
str = g_strdup_printf(
|
||||
/* %1$s is the torrent's total size,
|
||||
* %2$s is how much we've uploaded,
|
||||
* %3$s is our upload-to-download ratio */
|
||||
%2$s is how much we've uploaded,
|
||||
%3$s is our upload-to-download ratio */
|
||||
_("%1$s, uploaded %2$s (Ratio: %3$s)"),
|
||||
tr_strlsize( buf1, info->totalSize, sizeof(buf1) ),
|
||||
tr_strlsize( buf2, torStat->uploadedEver, sizeof(buf2) ),
|
||||
@@ -88,6 +88,7 @@ getProgressString( const tr_info * info, const tr_stat * torStat )
|
||||
else {
|
||||
char timestr[128];
|
||||
tr_strltime( timestr, eta, sizeof( timestr ) );
|
||||
/* time remaining */
|
||||
g_string_append_printf( gstr, _( "%s remaining" ), timestr );
|
||||
}
|
||||
g_free( str );
|
||||
@@ -111,17 +112,17 @@ getShortTransferString( const tr_stat * torStat, char * buf, size_t buflen )
|
||||
|
||||
if( haveDown && haveUp )
|
||||
/* Translators: do not translate the "speed|" disambiguation prefix.
|
||||
* %1$s is the download speed
|
||||
* %2$s is the upload speed */
|
||||
%1$s is the download speed
|
||||
%2$s is the upload speed */
|
||||
g_snprintf( buf, buflen, Q_( "speed|Down: %1$s, Up: %2$s"), downStr, upStr );
|
||||
else if( haveDown )
|
||||
/* Translators: this refers to download speed */
|
||||
/* download speed */
|
||||
g_snprintf( buf, buflen, _( "Down: %s" ), downStr );
|
||||
else if( haveUp )
|
||||
/* Translators: this refers to upload speed */
|
||||
/* upload speed */
|
||||
g_snprintf( buf, buflen, _( "Up: %s" ), upStr );
|
||||
else
|
||||
/* Translators: the torrent isn't uploading or downloading */
|
||||
/* the torrent isn't uploading or downloading */
|
||||
g_strlcpy( buf, _( "Idle" ), buflen );
|
||||
|
||||
return buf;
|
||||
|
||||
@@ -76,9 +76,9 @@ refresh_tooltip_cb( gpointer data )
|
||||
tr_strlspeed( upStr, stats->clientUploadSpeed, sizeof( upStr ) );
|
||||
g_snprintf( tip, sizeof( tip ),
|
||||
/* %1$d is the number of torrents we're seeding,
|
||||
* %2$d is the number of torrents we're downloading,
|
||||
* %3$s is our download speed,
|
||||
* %4$s is our upload speed */
|
||||
%2$d is the number of torrents we're downloading,
|
||||
%3$s is our download speed,
|
||||
%4$s is our upload speed */
|
||||
_( "%1$d Seeding, %2$d Downloading\nDown: %3$s, Up: %4$s" ),
|
||||
stats->seedingCount,
|
||||
stats->downloadCount,
|
||||
|
||||
@@ -217,7 +217,7 @@ torrentPage( GObject * core )
|
||||
hig_workarea_add_section_title( t, &row, _( "Adding" ) );
|
||||
|
||||
w = new_path_chooser_button( PREF_KEY_DIR_DEFAULT, core );
|
||||
hig_workarea_add_row( t, &row, _( "Default download _location:" ), w, NULL );
|
||||
hig_workarea_add_row( t, &row, _( "Default destination _folder:" ), w, NULL );
|
||||
|
||||
s = _( "Show _options dialog" );
|
||||
w = new_check_button( s, PREF_KEY_OPTIONS_PROMPT, core );
|
||||
|
||||
@@ -215,7 +215,7 @@ tr_torrent_new_ctor( tr_handle * handle,
|
||||
switch( errcode )
|
||||
{
|
||||
case TR_EINVALID:
|
||||
*err = g_strdup_printf( _( "File \"%s\" is not a valid torrent" ), filename );
|
||||
*err = g_strdup_printf( _( "File \"%s\" isn't a valid torrent" ), filename );
|
||||
break;
|
||||
case TR_EDUPLICATE:
|
||||
*err = g_strdup_printf( _( "File \"%s\" is already open" ), filename );
|
||||
@@ -282,7 +282,7 @@ tr_torrent_status_str ( TrTorrent * gtor )
|
||||
char timestr[128];
|
||||
tr_strltime( timestr, eta, sizeof( timestr ) );
|
||||
/* %1$s is # of minutes
|
||||
* %2$.1f is a percentage of how much of the torrent is done */
|
||||
%2$.1f is a percentage of how much of the torrent is done */
|
||||
top = g_strdup_printf( _("%1$s remaining (%2$.1f%%)"), timestr, prog );
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -637,16 +637,16 @@ updateStats( PrivateData * p )
|
||||
tr_strlsize( up, stats.uploadedBytes, sizeof( up ) );
|
||||
tr_strlsize( down, stats.downloadedBytes, sizeof( down ) );
|
||||
/* Translators: do not translate the "size|" disambiguation prefix.
|
||||
* %1$s is the size of the data we've downloaded
|
||||
* %2$s is the size of the data we've uploaded */
|
||||
%1$s is the size of the data we've downloaded
|
||||
%2$s is the size of the data we've uploaded */
|
||||
g_snprintf( buf, sizeof( buf ), Q_( "size|Down: %1$s, Up: %2$s" ), down, up );
|
||||
} else if( !strcmp( pch, "total-transfer" ) ) {
|
||||
tr_getCumulativeSessionStats( handle, &stats );
|
||||
tr_strlsize( up, stats.uploadedBytes, sizeof( up ) );
|
||||
tr_strlsize( down, stats.downloadedBytes, sizeof( down ) );
|
||||
/* Translators: do not translate the "size|" disambiguation prefix.
|
||||
* %1$s is the size of the data we've downloaded
|
||||
* %2$s is the size of the data we've uploaded */
|
||||
%1$s is the size of the data we've downloaded
|
||||
%2$s is the size of the data we've uploaded */
|
||||
g_snprintf( buf, sizeof( buf ), Q_( "size|Down: %1$s, Up: %2$s" ), down, up );
|
||||
} else { /* default is total-ratio */
|
||||
tr_getCumulativeSessionStats( handle, &stats );
|
||||
|
||||
@@ -119,7 +119,7 @@ incomingPeersPulse( tr_shared * s )
|
||||
s->bindSocket = socket;
|
||||
listen( s->bindSocket, 5 );
|
||||
} else {
|
||||
tr_err( _( "%s: Unable to open port %d to listen for incoming peer connections (errno %d - %s)" ),
|
||||
tr_err( _( "%s: Couldn't open port %d to listen for incoming peer connections (errno %d - %s)" ),
|
||||
getKey(), s->publicPort, errno, tr_strerror(errno) );
|
||||
s->bindPort = -1;
|
||||
s->bindSocket = -1;
|
||||
|
||||
@@ -171,9 +171,8 @@ tr_initFull( const char * tag,
|
||||
h->shared = tr_sharedInit( h, isNatEnabled, publicPort );
|
||||
h->isPortSet = publicPort >= 0;
|
||||
|
||||
/* Translators:
|
||||
* first %s is the application name
|
||||
* second %s is the version number */
|
||||
/* first %s is the application name
|
||||
second %s is the version number */
|
||||
snprintf( buf, sizeof( buf ), _( "%s %s started" ),
|
||||
TR_NAME, LONG_VERSION_STRING );
|
||||
tr_inf( "%s", buf );
|
||||
|
||||
@@ -88,12 +88,12 @@ tr_upnpPulse( tr_upnp * handle, int port, int isEnabled )
|
||||
errno = 0;
|
||||
devlist = upnpDiscover( 2000, NULL, NULL );
|
||||
if( devlist == NULL ) {
|
||||
tr_err( _( "%s: upnpDiscover returned NULL (errno %d - %s)" ), getKey(), errno, tr_strerror(errno) );
|
||||
tr_err( _( "%s: upnpDiscover failed (errno %d - %s)" ), getKey(), errno, tr_strerror(errno) );
|
||||
}
|
||||
errno = 0;
|
||||
if( UPNP_GetValidIGD( devlist, &handle->urls, &handle->data, handle->lanaddr, sizeof(handle->lanaddr))) {
|
||||
tr_inf( _( "%s: Found Internet Gateway Device '%s'" ), getKey(), handle->urls.controlURL );
|
||||
tr_inf( _( "%s: Local Address is '%s'" ), getKey(), handle->lanaddr );
|
||||
tr_inf( _( "%s: Found Internet Gateway Device \"%s\"" ), getKey(), handle->urls.controlURL );
|
||||
tr_inf( _( "%s: Local Address is \"%s\"" ), getKey(), handle->lanaddr );
|
||||
handle->state = TR_UPNP_IDLE;
|
||||
handle->hasDiscovered = 1;
|
||||
} else {
|
||||
@@ -117,7 +117,7 @@ tr_upnpPulse( tr_upnp * handle, int port, int isEnabled )
|
||||
UPNP_DeletePortMapping( handle->urls.controlURL,
|
||||
handle->data.servicetype,
|
||||
portStr, "TCP" );
|
||||
tr_dbg( _( "%s: Stopping port forwarding of '%s', service '%s'" ),
|
||||
tr_dbg( _( "%s: Stopping port forwarding of \"%s\", service \"%s\"" ),
|
||||
getKey(), handle->urls.controlURL, handle->data.servicetype );
|
||||
handle->isMapped = 0;
|
||||
handle->state = TR_UPNP_IDLE;
|
||||
@@ -146,7 +146,7 @@ tr_upnpPulse( tr_upnp * handle, int port, int isEnabled )
|
||||
"Transmission", "TCP" );
|
||||
handle->isMapped = !err;
|
||||
}
|
||||
tr_inf( _( "%s: Port forwarding via '%s', service '%s'. (local address: %s:%d)" ),
|
||||
tr_inf( _( "%s: Port forwarding via \"%s\", service \"%s\". (local address: %s:%d)" ),
|
||||
getKey(), handle->urls.controlURL, handle->data.servicetype, handle->lanaddr, port );
|
||||
if( handle->isMapped ) {
|
||||
tr_inf( _( "%s: Port forwarding successful!" ), getKey() );
|
||||
|
||||
@@ -529,7 +529,7 @@ tr_errorString( int code )
|
||||
return _( "Assert error" );
|
||||
|
||||
case TR_ERROR_IO_PARENT:
|
||||
return _( "Download directory doesn't exist" );
|
||||
return _( "Destination folder doesn't exist" );
|
||||
case TR_ERROR_IO_PERMISSIONS:
|
||||
return tr_strerror( EACCES );
|
||||
case TR_ERROR_IO_SPACE:
|
||||
@@ -539,7 +539,7 @@ tr_errorString( int code )
|
||||
case TR_ERROR_IO_OPEN_FILES:
|
||||
return tr_strerror( EMFILE );
|
||||
case TR_ERROR_IO_DUP_DOWNLOAD:
|
||||
return _( "A torrent with this name and destination directory already exists." );
|
||||
return _( "A torrent with this name and destination folder already exists." );
|
||||
case TR_ERROR_IO_OTHER:
|
||||
return _( "Generic I/O error" );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user