Sync translations (#3939)
* Sync translations with code * Sync translations with Transifex * Remove Mac menu title that isn't displayed and shouldn't be translated * Add context to logging level strings in GTK client * Use "µTP" consistently in code * Use ellipsis instead of three docs in Qt client strings * Close HTML tags in blocklist-related strings * Remove trailing space from a translatable string in Qt client * Add missing plural forms for English strings in Qt client * Fix spelling: metaInfo -> metainfo
This commit is contained in:
parent
cc5ae321a5
commit
f1f55cc3df
|
@ -114,8 +114,8 @@ static auto constexpr Options = std::array<tr_option, 45>{
|
|||
{ 'O', "no-dht", "Disable distributed hash tables (DHT)", "O", false, nullptr },
|
||||
{ 'y', "lpd", "Enable local peer discovery (LPD)", "y", false, nullptr },
|
||||
{ 'Y', "no-lpd", "Disable local peer discovery (LPD)", "Y", false, nullptr },
|
||||
{ 830, "utp", "Enable uTP for peer connections", nullptr, false, nullptr },
|
||||
{ 831, "no-utp", "Disable uTP for peer connections", nullptr, false, nullptr },
|
||||
{ 830, "utp", "Enable µTP for peer connections", nullptr, false, nullptr },
|
||||
{ 831, "no-utp", "Disable µTP for peer connections", nullptr, false, nullptr },
|
||||
{ 'P', "peerport", "Port for incoming peers (Default: " TR_DEFAULT_PEER_PORT_STR ")", "P", true, "<port>" },
|
||||
{ 'm', "portmap", "Enable portmapping via NAT-PMP or UPnP", "m", false, nullptr },
|
||||
{ 'M', "no-portmap", "Disable portmapping", "M", false, nullptr },
|
||||
|
|
|
@ -446,12 +446,14 @@ MessageLogWindow::Impl::Impl(
|
|||
: window_(window)
|
||||
, core_(core)
|
||||
, view_(gtr_get_widget<Gtk::TreeView>(builder, "messages_view"))
|
||||
, level_names_{ { { TR_LOG_CRITICAL, _("Critical") },
|
||||
{ TR_LOG_ERROR, _("Error") },
|
||||
{ TR_LOG_WARN, _("Warning") },
|
||||
{ TR_LOG_INFO, _("Information") },
|
||||
{ TR_LOG_DEBUG, _("Debug") },
|
||||
{ TR_LOG_TRACE, _("Trace") } } }
|
||||
, level_names_{ {
|
||||
{ TR_LOG_CRITICAL, C_("Logging level", "Critical") },
|
||||
{ TR_LOG_ERROR, C_("Logging level", "Error") },
|
||||
{ TR_LOG_WARN, C_("Logging level", "Warning") },
|
||||
{ TR_LOG_INFO, C_("Logging level", "Information") },
|
||||
{ TR_LOG_DEBUG, C_("Logging level", "Debug") },
|
||||
{ TR_LOG_TRACE, C_("Logging level", "Trace") },
|
||||
} }
|
||||
{
|
||||
/**
|
||||
*** toolbar
|
||||
|
|
|
@ -1418,11 +1418,11 @@
|
|||
<property name="column-spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="enable_utp_check">
|
||||
<property name="label" translatable="yes">Enable _uTP for peer communication</property>
|
||||
<property name="label" translatable="yes">Enable µ_TP for peer communication</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="tooltip-text" translatable="yes">uTP is a tool for reducing network congestion.</property>
|
||||
<property name="tooltip-text" translatable="yes">µTP is a tool for reducing network congestion.</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
|
|
|
@ -975,9 +975,9 @@
|
|||
<property name="column-spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="enable_utp_check">
|
||||
<property name="label" translatable="1">Enable _uTP for peer communication</property>
|
||||
<property name="label" translatable="1">Enable µ_TP for peer communication</property>
|
||||
<property name="focusable">1</property>
|
||||
<property name="tooltip-text" translatable="1">uTP is a tool for reducing network congestion.</property>
|
||||
<property name="tooltip-text" translatable="1">µTP is a tool for reducing network congestion.</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="use-underline">1</property>
|
||||
|
|
|
@ -177,7 +177,7 @@ void tr_bandwidth::phaseOne(std::vector<tr_peerIo*>& peer_array, tr_direction di
|
|||
{
|
||||
int const i = tr_rand_int_weak(n); /* pick a peer at random */
|
||||
|
||||
/* value of 3000 bytes chosen so that when using uTP we'll send a full-size
|
||||
/* value of 3000 bytes chosen so that when using µTP we'll send a full-size
|
||||
* frame right away and leave enough buffered data for the next frame to go
|
||||
* out in a timely manner. */
|
||||
size_t const increment = 3000;
|
||||
|
|
|
@ -1063,12 +1063,12 @@ static void gotError(tr_peerIo* io, short what, void* vhandshake)
|
|||
|
||||
if (io->socket.type == TR_PEER_SOCKET_TYPE_UTP && !io->isIncoming() && handshake->state == AWAITING_YB)
|
||||
{
|
||||
// the peer probably doesn't speak uTP.
|
||||
// the peer probably doesn't speak µTP.
|
||||
|
||||
auto const hash = io->torrentHash();
|
||||
auto const info = hash ? handshake->mediator->torrentInfo(*hash) : std::nullopt;
|
||||
|
||||
/* Don't mark a peer as non-uTP unless it's really a connect failure. */
|
||||
/* Don't mark a peer as non-µTP unless it's really a connect failure. */
|
||||
if ((errcode == ETIMEDOUT || errcode == ECONNREFUSED) && info)
|
||||
{
|
||||
handshake->mediator->setUTPFailed(*hash, io->address());
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#define EPIPE WSAECONNRESET
|
||||
#endif
|
||||
|
||||
/* The amount of read bufferring that we allow for uTP sockets. */
|
||||
/* The amount of read bufferring that we allow for µTP sockets. */
|
||||
|
||||
static constexpr auto UtpReadBufferSize = 256 * 1024;
|
||||
|
||||
|
@ -82,7 +82,7 @@ static void didWriteWrapper(tr_peerIo* io, unsigned int bytes_transferred)
|
|||
auto& [n_bytes_left, is_piece_data] = io->outbuf_info.front();
|
||||
|
||||
unsigned int const payload = std::min(uint64_t{ n_bytes_left }, uint64_t{ bytes_transferred });
|
||||
/* For uTP sockets, the overhead is computed in utp_on_overhead. */
|
||||
/* For µTP sockets, the overhead is computed in utp_on_overhead. */
|
||||
unsigned int const overhead = io->socket.type == TR_PEER_SOCKET_TYPE_TCP ? guessPacketOverhead(payload) : 0;
|
||||
uint64_t const now = tr_time_msec();
|
||||
|
||||
|
@ -319,7 +319,7 @@ static void maybeSetCongestionAlgorithm(tr_socket_t socket, std::string const& a
|
|||
}
|
||||
|
||||
#ifdef WITH_UTP
|
||||
/* UTP callbacks */
|
||||
/* µTP callbacks */
|
||||
|
||||
void tr_peerIo::readBufferAdd(void const* data, size_t n_bytes)
|
||||
{
|
||||
|
@ -414,7 +414,7 @@ static uint64 utp_callback(utp_callback_arguments* args)
|
|||
{
|
||||
fmt::print(
|
||||
stderr,
|
||||
FMT_STRING("[utp] [{}:{}] [{}] io is null! buf={}, len={}, flags={}, send/error_code/state={}, type={}\n"),
|
||||
FMT_STRING("[µTP] [{}:{}] [{}] io is null! buf={}, len={}, flags={}, send/error_code/state={}, type={}\n"),
|
||||
fmt::ptr(args->context),
|
||||
fmt::ptr(args->socket),
|
||||
utp_callback_names[args->callback_type],
|
||||
|
@ -506,7 +506,7 @@ std::shared_ptr<tr_peerIo> tr_peerIo::create(
|
|||
#ifdef WITH_UTP
|
||||
|
||||
case TR_PEER_SOCKET_TYPE_UTP:
|
||||
tr_logAddTraceIo(io, fmt::format("socket (utp) is {}", fmt::ptr(socket.handle.utp)));
|
||||
tr_logAddTraceIo(io, fmt::format("socket (µTP) is {}", fmt::ptr(socket.handle.utp)));
|
||||
utp_set_userdata(socket.handle.utp, io.get());
|
||||
break;
|
||||
|
||||
|
|
|
@ -288,7 +288,7 @@ struct peer_atom
|
|||
uint8_t flags = {}; /* these match the added_f flags */
|
||||
uint8_t flags2 = {}; /* flags that aren't defined in added_f */
|
||||
|
||||
bool utp_failed = false; /* We recently failed to connect over uTP */
|
||||
bool utp_failed = false; /* We recently failed to connect over µTP */
|
||||
bool is_connected = false;
|
||||
|
||||
private:
|
||||
|
@ -1198,8 +1198,8 @@ static bool on_handshake_done(tr_handshake_result const& result)
|
|||
atom->flags2 &= ~MyflagUnreachable;
|
||||
}
|
||||
|
||||
/* In principle, this flag specifies whether the peer groks uTP,
|
||||
not whether it's currently connected over uTP. */
|
||||
/* In principle, this flag specifies whether the peer groks µTP,
|
||||
not whether it's currently connected over µTP. */
|
||||
if (result.io->socket.type == TR_PEER_SOCKET_TYPE_UTP)
|
||||
{
|
||||
atom->flags |= ADDED_F_UTP_FLAGS;
|
||||
|
@ -2819,9 +2819,9 @@ void initiateConnection(tr_peerMgr* mgr, tr_swarm* s, peer_atom& atom)
|
|||
|
||||
if (atom.fromFirst == TR_PEER_FROM_PEX)
|
||||
{
|
||||
/* PEX has explicit signalling for uTP support. If an atom
|
||||
originally came from PEX and doesn't have the uTP flag, skip the
|
||||
uTP connection attempt. Are we being optimistic here? */
|
||||
/* PEX has explicit signalling for µTP support. If an atom
|
||||
originally came from PEX and doesn't have the µTP flag, skip the
|
||||
µTP connection attempt. Are we being optimistic here? */
|
||||
utp = utp && (atom.flags & ADDED_F_UTP_FLAGS) != 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ enum
|
|||
ADDED_F_ENCRYPTION_FLAG = 1,
|
||||
/* true if the peer is a seed or partial seed */
|
||||
ADDED_F_SEED_FLAG = 2,
|
||||
/* true if the peer supports uTP */
|
||||
/* true if the peer supports µTP */
|
||||
ADDED_F_UTP_FLAGS = 4,
|
||||
/* true if the peer has holepunch support */
|
||||
ADDED_F_HOLEPUNCH = 8,
|
||||
|
|
|
@ -485,7 +485,7 @@ public:
|
|||
|
||||
struct tr_event_handle* events = nullptr;
|
||||
|
||||
// UDP connectivity used for the DHT and uTP
|
||||
// UDP connectivity used for the DHT and µTP
|
||||
class tr_udp_core
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -122,7 +122,7 @@ bool tr_torrentSetMetainfoFromFile(tr_torrent* tor, tr_torrent_metainfo const* m
|
|||
if (error != nullptr)
|
||||
{
|
||||
tor->setLocalError(fmt::format(
|
||||
_("Couldn't use metaInfo from '{path}' for '{magnet}': {error} ({error_code})"),
|
||||
_("Couldn't use metainfo from '{path}' for '{magnet}': {error} ({error_code})"),
|
||||
fmt::arg("path", filename),
|
||||
fmt::arg("magnet", tor->magnet()),
|
||||
fmt::arg("error", error->message),
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "utils.h"
|
||||
|
||||
/* Since we use a single UDP socket in order to implement multiple
|
||||
uTP sockets, try to set up huge buffers. */
|
||||
µTP sockets, try to set up huge buffers. */
|
||||
|
||||
static auto constexpr RecvBufferSize = 4 * 1024 * 1024;
|
||||
static auto constexpr SendBufferSize = 1 * 1024 * 1024;
|
||||
|
@ -191,12 +191,12 @@ static void event_callback(evutil_socket_t s, [[maybe_unused]] short type, void*
|
|||
int const
|
||||
rc = recvfrom(s, reinterpret_cast<char*>(std::data(buf)), std::size(buf) - 1, 0, (struct sockaddr*)&from, &fromlen);
|
||||
|
||||
/* Since most packets we receive here are µTP, make quick inline
|
||||
/* Since most packets we receive here are µTP, make quick inline
|
||||
checks for the other protocols. The logic is as follows:
|
||||
- all DHT packets start with 'd'
|
||||
- all UDP tracker packets start with a 32-bit (!) "action", which
|
||||
is between 0 and 3
|
||||
- the above cannot be µTP packets, since these start with a 4-bit
|
||||
- the above cannot be µTP packets, since these start with a 4-bit
|
||||
version number (1). */
|
||||
if (rc > 0)
|
||||
{
|
||||
|
|
|
@ -116,7 +116,7 @@ static void utp_send_to(
|
|||
|
||||
static void utp_log(tr_session* const /*session*/, char const* const msg)
|
||||
{
|
||||
fmt::print(stderr, FMT_STRING("[utp] {}\n"), msg);
|
||||
fmt::print(stderr, FMT_STRING("[µTP] {}\n"), msg);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -164,7 +164,7 @@ static void reset_timer(tr_session* session)
|
|||
}
|
||||
else
|
||||
{
|
||||
/* If somebody has disabled uTP, then we still want to run
|
||||
/* If somebody has disabled µTP, then we still want to run
|
||||
utp_check_timeouts, in order to let closed sockets finish
|
||||
gracefully and so on. However, since we're not particularly
|
||||
interested in that happening in a timely manner, we might as
|
||||
|
|
|
@ -207,7 +207,7 @@
|
|||
</connections>
|
||||
<point key="canvasLocation" x="138.5" y="125"/>
|
||||
</window>
|
||||
<menu title="MainMenu" systemMenu="main" id="29" userLabel="MainMenu">
|
||||
<menu systemMenu="main" id="29" userLabel="MainMenu">
|
||||
<items>
|
||||
<menuItem title="Transmission" id="56">
|
||||
<menu key="submenu" title="Transmission" systemMenu="apple" id="57">
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "MainMenu";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "Главное меню";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
/* Class = "NSWindow"; title = "Transmission"; ObjectID = "21"; */
|
||||
"21.title" = "Transmission";
|
||||
|
||||
/* Class = "NSMenu"; title = "MainMenu"; ObjectID = "29"; */
|
||||
"29.title" = "Ana Menü";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Transmission"; ObjectID = "56"; */
|
||||
"56.title" = "Transmission";
|
||||
|
||||
|
|
|
@ -345,7 +345,7 @@
|
|||
"1931.title" = "Mıknatıs bağlantılar için:";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Set Default Application"; ObjectID = "1933"; */
|
||||
"1933.title" = "Varsayılan Uygulamayı Belirle";
|
||||
"1933.title" = "Saptanmış Uygulamayı Belirle";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Append .part to incomplete files"; ObjectID = "1940"; */
|
||||
"1940.title" = ".part parçacıklarını bitmemiş dosyalara iliştir";
|
||||
|
|
1989
po/ca@valencia.po
1989
po/ca@valencia.po
File diff suppressed because it is too large
Load Diff
1989
po/en_AU.po
1989
po/en_AU.po
File diff suppressed because it is too large
Load Diff
1989
po/en_CA.po
1989
po/en_CA.po
File diff suppressed because it is too large
Load Diff
1989
po/en_GB.po
1989
po/en_GB.po
File diff suppressed because it is too large
Load Diff
1989
po/fr_CA.po
1989
po/fr_CA.po
File diff suppressed because it is too large
Load Diff
1982
po/pt_BR.po
1982
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
1972
po/pt_PT.po
1972
po/pt_PT.po
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue