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:
Mike Gelfand 2022-10-11 08:39:41 -07:00 committed by GitHub
parent cc5ae321a5
commit f1f55cc3df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
158 changed files with 93791 additions and 89537 deletions

View File

@ -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 },

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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;

View File

@ -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());

View File

@ -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;

View File

@ -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;
}

View File

@ -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,

View File

@ -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:

View File

@ -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),

View File

@ -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)
{

View File

@ -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

View File

@ -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">

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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/af.po

File diff suppressed because it is too large Load Diff

1971
po/an.po

File diff suppressed because it is too large Load Diff

1983
po/ar.po

File diff suppressed because it is too large Load Diff

1989
po/ast.po

File diff suppressed because it is too large Load Diff

1962
po/az.po

File diff suppressed because it is too large Load Diff

1972
po/be.po

File diff suppressed because it is too large Load Diff

1972
po/bg.po

File diff suppressed because it is too large Load Diff

1989
po/bn.po

File diff suppressed because it is too large Load Diff

1963
po/br.po

File diff suppressed because it is too large Load Diff

1967
po/bs.po

File diff suppressed because it is too large Load Diff

1987
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1946
po/ceb.po

File diff suppressed because it is too large Load Diff

1966
po/ckb.po

File diff suppressed because it is too large Load Diff

1989
po/cs.po

File diff suppressed because it is too large Load Diff

1961
po/cy.po

File diff suppressed because it is too large Load Diff

1989
po/da.po

File diff suppressed because it is too large Load Diff

1989
po/de.po

File diff suppressed because it is too large Load Diff

1972
po/el.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1983
po/eo.po

File diff suppressed because it is too large Load Diff

2028
po/es.po

File diff suppressed because it is too large Load Diff

1987
po/et.po

File diff suppressed because it is too large Load Diff

2022
po/eu.po

File diff suppressed because it is too large Load Diff

1987
po/fa.po

File diff suppressed because it is too large Load Diff

2022
po/fi.po

File diff suppressed because it is too large Load Diff

1952
po/fil.po

File diff suppressed because it is too large Load Diff

1983
po/fo.po

File diff suppressed because it is too large Load Diff

2028
po/fr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1952
po/ga.po

File diff suppressed because it is too large Load Diff

1989
po/gl.po

File diff suppressed because it is too large Load Diff

1952
po/gv.po

File diff suppressed because it is too large Load Diff

1984
po/he.po

File diff suppressed because it is too large Load Diff

1984
po/hi.po

File diff suppressed because it is too large Load Diff

1976
po/hr.po

File diff suppressed because it is too large Load Diff

2004
po/hu.po

File diff suppressed because it is too large Load Diff

1955
po/hy.po

File diff suppressed because it is too large Load Diff

1957
po/ia.po

File diff suppressed because it is too large Load Diff

1972
po/id.po

File diff suppressed because it is too large Load Diff

1982
po/is.po

File diff suppressed because it is too large Load Diff

1984
po/it.po

File diff suppressed because it is too large Load Diff

2016
po/ja.po

File diff suppressed because it is too large Load Diff

1948
po/jbo.po

File diff suppressed because it is too large Load Diff

1966
po/ka.po

File diff suppressed because it is too large Load Diff

1989
po/kk.po

File diff suppressed because it is too large Load Diff

1989
po/ko.po

File diff suppressed because it is too large Load Diff

1966
po/ku.po

File diff suppressed because it is too large Load Diff

1989
po/ky.po

File diff suppressed because it is too large Load Diff

1978
po/li.po

File diff suppressed because it is too large Load Diff

1987
po/lt.po

File diff suppressed because it is too large Load Diff

1989
po/lv.po

File diff suppressed because it is too large Load Diff

1960
po/mk.po

File diff suppressed because it is too large Load Diff

1959
po/ml.po

File diff suppressed because it is too large Load Diff

1961
po/mr.po

File diff suppressed because it is too large Load Diff

1989
po/ms.po

File diff suppressed because it is too large Load Diff

1946
po/mt.po

File diff suppressed because it is too large Load Diff

1989
po/nb.po

File diff suppressed because it is too large Load Diff

1972
po/nl.po

File diff suppressed because it is too large Load Diff

1976
po/nn.po

File diff suppressed because it is too large Load Diff

1972
po/oc.po

File diff suppressed because it is too large Load Diff

2034
po/pl.po

File diff suppressed because it is too large Load Diff

1972
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1989
po/ro.po

File diff suppressed because it is too large Load Diff

2034
po/ru.po

File diff suppressed because it is too large Load Diff

1959
po/se.po

File diff suppressed because it is too large Load Diff

1949
po/shn.po

File diff suppressed because it is too large Load Diff

1955
po/si.po

File diff suppressed because it is too large Load Diff

1989
po/sk.po

File diff suppressed because it is too large Load Diff

1989
po/sl.po

File diff suppressed because it is too large Load Diff

1989
po/sq.po

File diff suppressed because it is too large Load Diff

1989
po/sr.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