mirror of
https://github.com/znc/znc.git
synced 2026-08-10 02:43:05 +02:00
Merge branch 'master' into sasl
Conflicts: include/znc/Client.h src/Client.cpp src/Modules.cpp test/integration/tests/modules.cpp
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+10
-27
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
# Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -14,11 +14,6 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS 3.2)
|
||||
# Since 3.2 it does this automatically from BYPRODUCTS
|
||||
set_source_files_properties("versionc.cpp" PROPERTIES GENERATED true)
|
||||
endif()
|
||||
|
||||
set(znc_cpp "ZNCString.cpp" "znc.cpp" "IRCNetwork.cpp" "Translation.cpp"
|
||||
"IRCSock.cpp" "Client.cpp" "Chan.cpp" "Nick.cpp" "Server.cpp"
|
||||
"Modules.cpp" "MD5.cpp" "Buffer.cpp" "Utils.cpp" "FileUtils.cpp"
|
||||
@@ -61,27 +56,20 @@ add_custom_target(version
|
||||
add_dependencies(znclib copy_csocket_h copy_csocket_cc version)
|
||||
|
||||
set(znc_include_dirs
|
||||
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/third_party/bpstd>"
|
||||
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_FULL_INCLUDEDIR}>")
|
||||
target_link_libraries(znclib PRIVATE ${CMAKE_DL_LIBS} Threads::Threads)
|
||||
if(OPENSSL_FOUND)
|
||||
target_link_libraries(znclib PUBLIC ${OPENSSL_LIBRARIES})
|
||||
list(APPEND znc_include_dirs "${OPENSSL_INCLUDE_DIR}")
|
||||
endif()
|
||||
if(ZLIB_FOUND)
|
||||
target_link_libraries(znclib PRIVATE ${ZLIB_LIBRARIES})
|
||||
list(APPEND znc_include_dirs ${ZLIB_INCLUDE_DIRS})
|
||||
endif()
|
||||
if(ICU_FOUND)
|
||||
target_link_libraries(znclib PUBLIC ${ICU_LDFLAGS})
|
||||
list(APPEND znc_include_dirs ${ICU_INCLUDE_DIRS})
|
||||
target_link_libraries(znclib PRIVATE ZLIB::ZLIB)
|
||||
endif()
|
||||
if(Boost_FOUND)
|
||||
target_link_libraries(znclib PRIVATE ${Boost_LIBRARIES})
|
||||
list(APPEND znc_include_dirs ${Boost_INCLUDE_DIRS})
|
||||
target_link_libraries(znclib PRIVATE Boost::locale)
|
||||
endif()
|
||||
if(ZNC_HAVE_ARGON)
|
||||
target_link_libraries(znclib PRIVATE PkgConfig::ARGON)
|
||||
endif()
|
||||
target_link_libraries(znclib PUBLIC ${zncpubdeps})
|
||||
target_link_libraries(znclib PRIVATE cctz::cctz)
|
||||
target_include_directories(znc PUBLIC ${znc_include_dirs})
|
||||
target_include_directories(znclib PUBLIC ${znc_include_dirs})
|
||||
@@ -98,16 +86,11 @@ set_target_properties(znclib PROPERTIES
|
||||
OUTPUT_NAME "znc"
|
||||
SOVERSION "${ZNC_VERSION}")
|
||||
|
||||
# CMake started supporting metafeature cxx_std_11 only in 3.8
|
||||
set(required_cxx11_features
|
||||
cxx_range_for cxx_nullptr cxx_override
|
||||
cxx_lambdas cxx_auto_type)
|
||||
target_compile_features(znc PUBLIC ${required_cxx11_features})
|
||||
target_compile_features(znclib PUBLIC ${required_cxx11_features})
|
||||
|
||||
add_library(ZNC INTERFACE)
|
||||
target_link_libraries(ZNC INTERFACE ${znc_link})
|
||||
target_link_libraries(ZNC INTERFACE ${znc_link} ${zncpubdeps})
|
||||
target_compile_definitions(ZNC INTERFACE "znc_export_lib_EXPORTS")
|
||||
target_compile_features(ZNC INTERFACE cxx_std_17)
|
||||
target_compile_features(znclib PUBLIC cxx_std_17)
|
||||
|
||||
if(HAVE_I18N)
|
||||
add_subdirectory(po)
|
||||
|
||||
+8
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -156,11 +156,13 @@ void CChan::AttachUser(CClient* pClient) {
|
||||
m_pNetwork->GetIRCNick().GetNick() + " " +
|
||||
GetName() + " :" + GetTopic(),
|
||||
pClient);
|
||||
m_pNetwork->PutUser(":" + m_pNetwork->GetIRCServer() + " 333 " +
|
||||
m_pNetwork->GetIRCNick().GetNick() + " " +
|
||||
GetName() + " " + GetTopicOwner() + " " +
|
||||
CString(GetTopicDate()),
|
||||
pClient);
|
||||
if (!GetTopicOwner().empty()) {
|
||||
m_pNetwork->PutUser(":" + m_pNetwork->GetIRCServer() + " 333 " +
|
||||
m_pNetwork->GetIRCNick().GetNick() + " " +
|
||||
GetName() + " " + GetTopicOwner() + " " +
|
||||
CString(GetTopicDate()),
|
||||
pClient);
|
||||
}
|
||||
}
|
||||
|
||||
CString sPre = ":" + m_pNetwork->GetIRCServer() + " 353 " +
|
||||
|
||||
+151
-72
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -75,6 +75,47 @@ using std::vector;
|
||||
} \
|
||||
}
|
||||
|
||||
CClient::CClient()
|
||||
: CIRCSocket(),
|
||||
m_bGotPass(false),
|
||||
m_bGotNick(false),
|
||||
m_bGotUser(false),
|
||||
m_uCapVersion(0),
|
||||
m_bInCap(false),
|
||||
m_bCapNotify(false),
|
||||
m_bAwayNotify(false),
|
||||
m_bAccountNotify(false),
|
||||
m_bExtendedJoin(false),
|
||||
m_bNamesx(false),
|
||||
m_bUHNames(false),
|
||||
m_bChgHost(false),
|
||||
m_bAway(false),
|
||||
m_bServerTime(false),
|
||||
m_bBatch(false),
|
||||
m_bEchoMessage(false),
|
||||
m_bSelfMessage(false),
|
||||
m_bSASL(false),
|
||||
m_bSASLAuthenticating(false),
|
||||
m_bPlaybackActive(false),
|
||||
m_pUser(nullptr),
|
||||
m_pNetwork(nullptr),
|
||||
m_sNick("unknown-nick"),
|
||||
m_sPass(""),
|
||||
m_sUser(""),
|
||||
m_sNetwork(""),
|
||||
m_sIdentifier(""),
|
||||
m_sSASLBuffer(""),
|
||||
m_sSASLMechanism(""),
|
||||
m_sSASLUser(""),
|
||||
m_spAuth(),
|
||||
m_ssAcceptedCaps(),
|
||||
m_ssSupportedTags() {
|
||||
EnableReadLine();
|
||||
// RFC says a line can have 512 chars max, but we are
|
||||
// a little more gentle ;)
|
||||
SetMaxBufferThreshold(1024);
|
||||
}
|
||||
|
||||
CClient::~CClient() {
|
||||
if (m_spAuth) {
|
||||
CClientAuth* pAuth = (CClientAuth*)&(*m_spAuth);
|
||||
@@ -242,7 +283,7 @@ void CClient::SetNetwork(CIRCNetwork* pNetwork, bool bDisconnect,
|
||||
m_pNetwork->ClientDisconnected(this);
|
||||
|
||||
if (bDisconnect) {
|
||||
ClearServerDependentCaps();
|
||||
NETWORKMODULECALL(OnClientDetached(), m_pUser, m_pNetwork, this, NOTHING);
|
||||
// Tell the client they are no longer in these channels.
|
||||
const vector<CChan*>& vChans = m_pNetwork->GetChans();
|
||||
for (const CChan* pChan : vChans) {
|
||||
@@ -264,6 +305,7 @@ void CClient::SetNetwork(CIRCNetwork* pNetwork, bool bDisconnect,
|
||||
} else if (m_pUser) {
|
||||
m_pUser->UserConnected(this);
|
||||
}
|
||||
NETWORKMODULECALL(OnClientAttached(), m_pUser, m_pNetwork, this, NOTHING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -624,11 +666,13 @@ void CClient::PutModNotice(const CString& sModule, const CString& sLine) {
|
||||
|
||||
DEBUG("(" << GetFullName()
|
||||
<< ") ZNC -> CLI [:" + m_pUser->GetStatusPrefix() +
|
||||
((sModule.empty()) ? "status" : sModule) + "!" +
|
||||
((sModule.empty()) ? "status" : sModule) +
|
||||
"!znc@znc.in NOTICE " << GetNick() << " :" << sLine
|
||||
<< "]");
|
||||
"@znc.in NOTICE "
|
||||
<< GetNick() << " :" << sLine << "]");
|
||||
Write(":" + m_pUser->GetStatusPrefix() +
|
||||
((sModule.empty()) ? "status" : sModule) + "!znc@znc.in NOTICE " +
|
||||
((sModule.empty()) ? "status" : sModule) + "!" +
|
||||
((sModule.empty()) ? "status" : sModule) + "@znc.in NOTICE " +
|
||||
GetNick() + " :" + sLine + "\r\n");
|
||||
}
|
||||
|
||||
@@ -639,16 +683,18 @@ void CClient::PutModule(const CString& sModule, const CString& sLine) {
|
||||
|
||||
DEBUG("(" << GetFullName()
|
||||
<< ") ZNC -> CLI [:" + m_pUser->GetStatusPrefix() +
|
||||
((sModule.empty()) ? "status" : sModule) + "!" +
|
||||
((sModule.empty()) ? "status" : sModule) +
|
||||
"!znc@znc.in PRIVMSG " << GetNick() << " :" << sLine
|
||||
<< "]");
|
||||
"@znc.in PRIVMSG "
|
||||
<< GetNick() << " :" << sLine << "]");
|
||||
|
||||
VCString vsLines;
|
||||
sLine.Split("\n", vsLines);
|
||||
for (const CString& s : vsLines) {
|
||||
Write(":" + m_pUser->GetStatusPrefix() +
|
||||
((sModule.empty()) ? "status" : sModule) +
|
||||
"!znc@znc.in PRIVMSG " + GetNick() + " :" + s + "\r\n");
|
||||
((sModule.empty()) ? "status" : sModule) + "!" +
|
||||
((sModule.empty()) ? "status" : sModule) + "@znc.in PRIVMSG " +
|
||||
GetNick() + " :" + s + "\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,32 +748,79 @@ void CClient::RespondCap(const CString& sResponse) {
|
||||
PutClient(":irc.znc.in CAP " + GetNick() + " " + sResponse);
|
||||
}
|
||||
|
||||
static VCString MultiLine(const SCString& ssCaps) {
|
||||
VCString vsRes = {""};
|
||||
for (const CString& sCap : ssCaps) {
|
||||
if (vsRes.back().length() + sCap.length() > 400) {
|
||||
vsRes.push_back(sCap);
|
||||
} else {
|
||||
if (!vsRes.back().empty()) {
|
||||
vsRes.back() += " ";
|
||||
}
|
||||
vsRes.back() += sCap;
|
||||
}
|
||||
}
|
||||
return vsRes;
|
||||
}
|
||||
|
||||
const std::map<CString, std::function<void(CClient*, bool bVal)>>&
|
||||
CClient::CoreCaps() {
|
||||
static const std::map<CString, std::function<void(CClient*, bool bVal)>> mCoreCaps = []{
|
||||
std::map<CString, std::function<void(CClient*, bool bVal)>> mCoreCaps = {
|
||||
{"multi-prefix",
|
||||
[](CClient* pClient, bool bVal) { pClient->m_bNamesx = bVal; }},
|
||||
{"userhost-in-names",
|
||||
[](CClient* pClient, bool bVal) { pClient->m_bUHNames = bVal; }},
|
||||
{"echo-message",
|
||||
[](CClient* pClient, bool bVal) { pClient->m_bEchoMessage = bVal; }},
|
||||
{"server-time",
|
||||
[](CClient* pClient, bool bVal) {
|
||||
pClient->m_bServerTime = bVal;
|
||||
pClient->SetTagSupport("time", bVal);
|
||||
}},
|
||||
{"batch", [](CClient* pClient, bool bVal) {
|
||||
pClient->m_bBatch = bVal;
|
||||
pClient->SetTagSupport("batch", bVal);
|
||||
}},
|
||||
{"cap-notify",
|
||||
[](CClient* pClient, bool bVal) { pClient->m_bCapNotify = bVal; }},
|
||||
{"chghost", [](CClient* pClient, bool bVal) { pClient->m_bChgHost = bVal; }},
|
||||
};
|
||||
|
||||
// For compatibility with older clients
|
||||
mCoreCaps["znc.in/server-time-iso"] = mCoreCaps["server-time"];
|
||||
mCoreCaps["znc.in/batch"] = mCoreCaps["batch"];
|
||||
mCoreCaps["znc.in/self-message"] = [](CClient* pClient, bool bVal) {
|
||||
pClient->m_bSelfMessage = bVal;
|
||||
};
|
||||
|
||||
return mCoreCaps;
|
||||
}();
|
||||
return mCoreCaps;
|
||||
}
|
||||
|
||||
void CClient::HandleCap(const CMessage& Message) {
|
||||
CString sSubCmd = Message.GetParam(0);
|
||||
|
||||
if (sSubCmd.Equals("LS")) {
|
||||
int iCapVersion = Message.GetParam(1).ToInt();
|
||||
m_uCapVersion = std::max(m_uCapVersion, Message.GetParam(1).ToUShort());
|
||||
SCString ssOfferCaps;
|
||||
for (const auto& it : m_mCoreCaps) {
|
||||
bool bServerDependent = std::get<0>(it.second);
|
||||
if (!bServerDependent ||
|
||||
m_ssServerDependentCaps.count(it.first) > 0) {
|
||||
if (it.first.Equals("sasl") && iCapVersion >= 302) {
|
||||
SCString ssMechanisms;
|
||||
ssOfferCaps.insert(it.first + "=" +
|
||||
EnumerateSASLMechanisms(ssMechanisms));
|
||||
} else {
|
||||
ssOfferCaps.insert(it.first);
|
||||
for (const auto& it : CoreCaps()) {
|
||||
// TODO sasl value enumerating mechanisms
|
||||
ssOfferCaps.insert(it.first);
|
||||
}
|
||||
}
|
||||
}
|
||||
GLOBALMODULECALL(OnClientCapLs(this, ssOfferCaps), NOTHING);
|
||||
CString sRes =
|
||||
CString(" ").Join(ssOfferCaps.begin(), ssOfferCaps.end());
|
||||
RespondCap("LS :" + sRes);
|
||||
NETWORKMODULECALL(OnClientCapLs(this, ssOfferCaps), GetUser(), GetNetwork(), this, NOTHING);
|
||||
VCString vsCaps = MultiLine(ssOfferCaps);
|
||||
m_bInCap = true;
|
||||
if (iCapVersion >= 302) {
|
||||
if (HasCap302()) {
|
||||
m_bCapNotify = true;
|
||||
for (int i = 0; i < vsCaps.size() - 1; ++i) {
|
||||
RespondCap("LS * :" + vsCaps[i]);
|
||||
}
|
||||
RespondCap("LS :" + vsCaps.back());
|
||||
} else {
|
||||
// Can't send more than one line of caps :(
|
||||
RespondCap("LS :" + vsCaps.front());
|
||||
}
|
||||
} else if (sSubCmd.Equals("END")) {
|
||||
m_bInCap = false;
|
||||
@@ -747,6 +840,7 @@ void CClient::HandleCap(const CMessage& Message) {
|
||||
}
|
||||
}
|
||||
} else if (sSubCmd.Equals("REQ")) {
|
||||
m_bInCap = true;
|
||||
VCString vsTokens;
|
||||
Message.GetParam(1).Split(" ", vsTokens, false);
|
||||
|
||||
@@ -756,13 +850,11 @@ void CClient::HandleCap(const CMessage& Message) {
|
||||
if (sCap.TrimPrefix("-")) bVal = false;
|
||||
|
||||
bool bAccepted = false;
|
||||
const auto& it = m_mCoreCaps.find(sCap);
|
||||
if (m_mCoreCaps.end() != it) {
|
||||
bool bServerDependent = std::get<0>(it->second);
|
||||
bAccepted = !bServerDependent ||
|
||||
m_ssServerDependentCaps.count(sCap) > 0;
|
||||
auto it = CoreCaps().find(sCap);
|
||||
if (CoreCaps().end() != it) {
|
||||
bAccepted = true;
|
||||
}
|
||||
GLOBALMODULECALL(IsClientCapSupported(this, sCap, bVal),
|
||||
NETWORKMODULECALL(IsClientCapSupported(this, sCap, bVal), GetUser(), GetNetwork(), this,
|
||||
&bAccepted);
|
||||
|
||||
if (!bAccepted) {
|
||||
@@ -778,12 +870,12 @@ void CClient::HandleCap(const CMessage& Message) {
|
||||
CString sCap = sToken;
|
||||
if (sCap.TrimPrefix("-")) bVal = false;
|
||||
|
||||
auto handler_it = m_mCoreCaps.find(sCap);
|
||||
if (m_mCoreCaps.end() != handler_it) {
|
||||
const auto& handler = std::get<1>(handler_it->second);
|
||||
handler(bVal);
|
||||
auto handler_it = CoreCaps().find(sCap);
|
||||
if (CoreCaps().end() != handler_it) {
|
||||
const auto& handler = handler_it->second;
|
||||
handler(this, bVal);
|
||||
}
|
||||
GLOBALMODULECALL(OnClientCapRequest(this, sCap, bVal), NOTHING);
|
||||
NETWORKMODULECALL(OnClientCapRequest(this, sCap, bVal), GetUser(), GetNetwork(), this, NOTHING);
|
||||
|
||||
if (bVal) {
|
||||
m_ssAcceptedCaps.insert(sCap);
|
||||
@@ -794,9 +886,16 @@ void CClient::HandleCap(const CMessage& Message) {
|
||||
|
||||
RespondCap("ACK :" + Message.GetParam(1));
|
||||
} else if (sSubCmd.Equals("LIST")) {
|
||||
CString sList =
|
||||
CString(" ").Join(m_ssAcceptedCaps.begin(), m_ssAcceptedCaps.end());
|
||||
RespondCap("LIST :" + sList);
|
||||
VCString vsCaps = MultiLine(m_ssAcceptedCaps);
|
||||
if (HasCap302()) {
|
||||
for (int i = 0; i < vsCaps.size() - 1; ++i) {
|
||||
RespondCap("LIST * :" + vsCaps[i]);
|
||||
}
|
||||
RespondCap("LIST :" + vsCaps.back());
|
||||
} else {
|
||||
// Can't send more than one line of caps :(
|
||||
RespondCap("LISTS :" + vsCaps.front());
|
||||
}
|
||||
} else {
|
||||
PutClient(":irc.znc.in 410 " + GetNick() + " " + sSubCmd +
|
||||
" :Invalid CAP subcommand");
|
||||
@@ -855,41 +954,21 @@ void CClient::SetTagSupport(const CString& sTag, bool bState) {
|
||||
}
|
||||
}
|
||||
|
||||
void CClient::NotifyServerDependentCaps(const SCString& ssCaps) {
|
||||
for (const CString& sCap : ssCaps) {
|
||||
const auto& it = m_mCoreCaps.find(sCap);
|
||||
if (m_mCoreCaps.end() != it) {
|
||||
bool bServerDependent = std::get<0>(it->second);
|
||||
if (bServerDependent) {
|
||||
m_ssServerDependentCaps.insert(sCap);
|
||||
void CClient::NotifyServerDependentCap(const CString& sCap, bool bValue, const CString& sValue) {
|
||||
if (bValue) {
|
||||
if (HasCapNotify()) {
|
||||
if (HasCap302() && !sValue.empty()) {
|
||||
PutClient(":irc.znc.in CAP " + GetNick() + " NEW :" + sCap + "=" + sValue);
|
||||
} else {
|
||||
PutClient(":irc.znc.in CAP " + GetNick() + " NEW :" + sCap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (HasCapNotify() && !m_ssServerDependentCaps.empty()) {
|
||||
CString sCaps = CString(" ").Join(m_ssServerDependentCaps.begin(),
|
||||
m_ssServerDependentCaps.end());
|
||||
PutClient(":irc.znc.in CAP " + GetNick() + " NEW :" + sCaps);
|
||||
}
|
||||
}
|
||||
|
||||
void CClient::ClearServerDependentCaps() {
|
||||
if (HasCapNotify() && !m_ssServerDependentCaps.empty()) {
|
||||
CString sCaps = CString(" ").Join(m_ssServerDependentCaps.begin(),
|
||||
m_ssServerDependentCaps.end());
|
||||
PutClient(":irc.znc.in CAP " + GetNick() + " DEL :" + sCaps);
|
||||
|
||||
for (const CString& sCap : m_ssServerDependentCaps) {
|
||||
const auto& it = m_mCoreCaps.find(sCap);
|
||||
if (m_mCoreCaps.end() != it) {
|
||||
const auto& handler = std::get<1>(it->second);
|
||||
handler(false);
|
||||
}
|
||||
m_ssAcceptedCaps.erase(sCap);
|
||||
} else {
|
||||
if (HasCapNotify()) {
|
||||
PutClient(":irc.znc.in CAP " + GetNick() + " DEL :" + sCap);
|
||||
}
|
||||
m_ssAcceptedCaps.erase(sCap);
|
||||
}
|
||||
|
||||
m_ssServerDependentCaps.clear();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+12
-12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -660,10 +660,6 @@ void CIRCNetwork::ClientConnected(CClient* pClient) {
|
||||
|
||||
size_t uIdx, uSize;
|
||||
|
||||
if (m_pIRCSock) {
|
||||
pClient->NotifyServerDependentCaps(m_pIRCSock->GetAcceptedCaps());
|
||||
}
|
||||
|
||||
pClient->SetPlaybackActive(true);
|
||||
|
||||
if (m_RawBuffer.IsEmpty()) {
|
||||
@@ -1393,10 +1389,6 @@ bool CIRCNetwork::IsIRCConnected() const {
|
||||
void CIRCNetwork::SetIRCSocket(CIRCSock* pIRCSock) { m_pIRCSock = pIRCSock; }
|
||||
|
||||
void CIRCNetwork::IRCConnected() {
|
||||
const SCString& ssCaps = m_pIRCSock->GetAcceptedCaps();
|
||||
for (CClient* pClient : m_vClients) {
|
||||
pClient->NotifyServerDependentCaps(ssCaps);
|
||||
}
|
||||
if (m_uJoinDelay > 0) {
|
||||
m_pJoinTimer->Delay(m_uJoinDelay);
|
||||
} else {
|
||||
@@ -1405,9 +1397,6 @@ void CIRCNetwork::IRCConnected() {
|
||||
}
|
||||
|
||||
void CIRCNetwork::IRCDisconnected() {
|
||||
for (CClient* pClient : m_vClients) {
|
||||
pClient->ClearServerDependentCaps();
|
||||
}
|
||||
m_pIRCSock = nullptr;
|
||||
|
||||
SetIRCServer("");
|
||||
@@ -1417,6 +1406,17 @@ void CIRCNetwork::IRCDisconnected() {
|
||||
CheckIRCConnect();
|
||||
}
|
||||
|
||||
void CIRCNetwork::NotifyClientsAboutServerDependentCap(const CString& sCap, bool bValue) {
|
||||
CString sValue = GetIRCSock() ? GetIRCSock()->GetCapLsValue(sCap) : "";
|
||||
for (CClient* pClient : m_vClients) {
|
||||
pClient->NotifyServerDependentCap(sCap, bValue, sValue);
|
||||
}
|
||||
}
|
||||
|
||||
bool CIRCNetwork::IsServerCapAccepted(const CString& sCap) const {
|
||||
return m_pIRCSock && m_pIRCSock->IsCapAccepted(sCap);
|
||||
}
|
||||
|
||||
void CIRCNetwork::SetIRCConnectEnabled(bool b) {
|
||||
m_bIRCConnectEnabled = b;
|
||||
|
||||
|
||||
+179
-59
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -67,7 +67,6 @@ CIRCSock::CIRCSock(CIRCNetwork* pNetwork)
|
||||
m_bUHNames(false),
|
||||
m_bAwayNotify(false),
|
||||
m_bAccountNotify(false),
|
||||
m_bAccountTag(false),
|
||||
m_bExtendedJoin(false),
|
||||
m_bServerTime(false),
|
||||
m_sPerms("*!@%+"),
|
||||
@@ -186,6 +185,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
case CMessage::Type::Capability:
|
||||
bReturn = OnCapabilityMessage(Message);
|
||||
break;
|
||||
case CMessage::Type::ChgHost:
|
||||
bReturn = OnChgHostMessage(Message);
|
||||
break;
|
||||
case CMessage::Type::CTCP:
|
||||
bReturn = OnCTCPMessage(Message);
|
||||
break;
|
||||
@@ -246,7 +248,9 @@ void CIRCSock::SendNextCap() {
|
||||
if (!m_uCapPaused) {
|
||||
if (m_ssPendingCaps.empty()) {
|
||||
// We already got all needed ACK/NAK replies.
|
||||
PutIRC("CAP END");
|
||||
if (!m_bAuthed) {
|
||||
PutIRC("CAP END");
|
||||
}
|
||||
} else {
|
||||
CString sCap = *m_ssPendingCaps.begin();
|
||||
m_ssPendingCaps.erase(m_ssPendingCaps.begin());
|
||||
@@ -262,9 +266,9 @@ void CIRCSock::ResumeCap() {
|
||||
SendNextCap();
|
||||
}
|
||||
|
||||
bool CIRCSock::OnServerCapAvailable(const CString& sCap) {
|
||||
bool CIRCSock::OnServerCapAvailable(const CString& sCap, const CString& sValue) {
|
||||
bool bResult = false;
|
||||
IRCSOCKMODULECALL(OnServerCapAvailable(sCap), &bResult);
|
||||
IRCSOCKMODULECALL(OnServerCapAvailable(sCap, sValue), &bResult);
|
||||
return bResult;
|
||||
}
|
||||
|
||||
@@ -347,67 +351,94 @@ bool CIRCSock::OnAwayMessage(CMessage& Message) {
|
||||
}
|
||||
|
||||
bool CIRCSock::OnCapabilityMessage(CMessage& Message) {
|
||||
// CAPs are supported only before authorization.
|
||||
if (!m_bAuthed) {
|
||||
// The first parameter is most likely "*". No idea why, the
|
||||
// CAP spec don't mention this, but all implementations
|
||||
// I've seen add this extra asterisk
|
||||
CString sSubCmd = Message.GetParam(1);
|
||||
// The first parameter is most likely "*". No idea why, the
|
||||
// CAP spec don't mention this, but all implementations
|
||||
// I've seen add this extra asterisk
|
||||
CString sSubCmd = Message.GetParam(1);
|
||||
|
||||
// If the caplist of a reply is too long, it's split
|
||||
// into multiple replies. A "*" is prepended to show
|
||||
// that the list was split into multiple replies.
|
||||
// This is useful mainly for LS. For ACK and NAK
|
||||
// replies, there's no real need for this, because
|
||||
// we request only 1 capability per line.
|
||||
// If we will need to support broken servers or will
|
||||
// send several requests per line, need to delay ACK
|
||||
// actions until all ACK lines are received and
|
||||
// to recognize past request of NAK by 100 chars
|
||||
// of this reply.
|
||||
CString sArgs;
|
||||
if (Message.GetParam(2) == "*") {
|
||||
sArgs = Message.GetParam(3);
|
||||
} else {
|
||||
sArgs = Message.GetParam(2);
|
||||
// If the caplist of a reply is too long, it's split
|
||||
// into multiple replies. A "*" is prepended to show
|
||||
// that the list was split into multiple replies.
|
||||
// This is useful mainly for LS. For ACK and NAK
|
||||
// replies, there's no real need for this, because
|
||||
// we request only 1 capability per line.
|
||||
// If we will need to support broken servers or will
|
||||
// send several requests per line, need to delay ACK
|
||||
// actions until all ACK lines are received and
|
||||
// to recognize past request of NAK by 100 chars
|
||||
// of this reply.
|
||||
// As for LS, we shouldn't don't send END after receiving first line,
|
||||
// because interesting caps can be on next line.
|
||||
CString sArgs;
|
||||
bool bSendNext = true;
|
||||
if (Message.GetParam(2) == "*") {
|
||||
bSendNext = false;
|
||||
sArgs = Message.GetParam(3);
|
||||
} else {
|
||||
sArgs = Message.GetParam(2);
|
||||
}
|
||||
|
||||
static std::map<CString, std::function<void(bool bVal)>> mSupportedCaps = {
|
||||
{"multi-prefix", [this](bool bVal) { m_bNamesx = bVal; }},
|
||||
{"userhost-in-names", [this](bool bVal) { m_bUHNames = bVal; }},
|
||||
{"cap-notify", [](bool bVal) {}},
|
||||
{"server-time", [this](bool bVal) { m_bServerTime = bVal; }},
|
||||
{"znc.in/server-time-iso", [this](bool bVal) { m_bServerTime = bVal; }},
|
||||
{"chghost", [](bool) {}},
|
||||
};
|
||||
|
||||
auto RemoveCap = [&](const CString& sCap) {
|
||||
IRCSOCKMODULECALL(OnServerCapResult(sCap, false), NOTHING);
|
||||
auto it = mSupportedCaps.find(sCap);
|
||||
if (it != mSupportedCaps.end()) {
|
||||
it->second(false);
|
||||
}
|
||||
m_ssAcceptedCaps.erase(sCap);
|
||||
m_ssPendingCaps.erase(sCap);
|
||||
};
|
||||
|
||||
std::map<CString, std::function<void(bool bVal)>> mSupportedCaps = {
|
||||
{"multi-prefix", [this](bool bVal) { m_bNamesx = bVal; }},
|
||||
{"userhost-in-names", [this](bool bVal) { m_bUHNames = bVal; }},
|
||||
{"away-notify", [this](bool bVal) { m_bAwayNotify = bVal; }},
|
||||
{"account-notify", [this](bool bVal) { m_bAccountNotify = bVal; }},
|
||||
{"account-tag", [this](bool bVal) { m_bAccountTag = bVal; }},
|
||||
{"extended-join", [this](bool bVal) { m_bExtendedJoin = bVal; }},
|
||||
{"server-time", [this](bool bVal) { m_bServerTime = bVal; }},
|
||||
{"znc.in/server-time-iso",
|
||||
[this](bool bVal) { m_bServerTime = bVal; }},
|
||||
};
|
||||
if (sSubCmd == "LS" || sSubCmd == "NEW") {
|
||||
VCString vsTokens;
|
||||
sArgs.Split(" ", vsTokens, false);
|
||||
|
||||
if (sSubCmd == "LS") {
|
||||
VCString vsTokens;
|
||||
sArgs.Split(" ", vsTokens, false);
|
||||
|
||||
for (const CString& sCap : vsTokens) {
|
||||
if (OnServerCapAvailable(sCap) || mSupportedCaps.count(sCap)) {
|
||||
m_ssPendingCaps.insert(sCap);
|
||||
}
|
||||
for (const CString& sToken : vsTokens) {
|
||||
CString sCap, sValue;
|
||||
int eq = sToken.find('=');
|
||||
if (eq == std::string::npos) {
|
||||
sCap = sToken;
|
||||
} else {
|
||||
sCap = sToken.substr(0, eq);
|
||||
sValue = sToken.substr(eq + 1);
|
||||
}
|
||||
} else if (sSubCmd == "ACK") {
|
||||
sArgs.Trim();
|
||||
IRCSOCKMODULECALL(OnServerCapResult(sArgs, true), NOTHING);
|
||||
const auto& it = mSupportedCaps.find(sArgs);
|
||||
if (it != mSupportedCaps.end()) {
|
||||
it->second(true);
|
||||
m_msCapLsValues[sCap] = sValue;
|
||||
if (OnServerCapAvailable(sCap, sValue) || mSupportedCaps.count(sCap)) {
|
||||
m_ssPendingCaps.insert(sCap);
|
||||
}
|
||||
m_ssAcceptedCaps.insert(sArgs);
|
||||
} else if (sSubCmd == "NAK") {
|
||||
// This should work because there's no [known]
|
||||
// capability with length of name more than 100 characters.
|
||||
sArgs.Trim();
|
||||
IRCSOCKMODULECALL(OnServerCapResult(sArgs, false), NOTHING);
|
||||
}
|
||||
} else if (sSubCmd == "ACK") {
|
||||
sArgs.Trim();
|
||||
IRCSOCKMODULECALL(OnServerCapResult(sArgs, true), NOTHING);
|
||||
auto it = mSupportedCaps.find(sArgs);
|
||||
if (it != mSupportedCaps.end()) {
|
||||
it->second(true);
|
||||
}
|
||||
m_ssAcceptedCaps.insert(sArgs);
|
||||
} else if (sSubCmd == "NAK") {
|
||||
// This should work because there's no [known]
|
||||
// capability with length of name more than 100 characters.
|
||||
sArgs.Trim();
|
||||
RemoveCap(sArgs);
|
||||
} else if (sSubCmd == "DEL") {
|
||||
VCString vsTokens;
|
||||
sArgs.Split(" ", vsTokens, false);
|
||||
|
||||
for (const CString& sCap : vsTokens) {
|
||||
RemoveCap(sCap);
|
||||
m_msCapLsValues.erase(sCap);
|
||||
}
|
||||
}
|
||||
|
||||
if (bSendNext) {
|
||||
SendNextCap();
|
||||
}
|
||||
// Don't forward any CAP stuff to the client
|
||||
@@ -486,6 +517,73 @@ bool CIRCSock::OnCTCPMessage(CCTCPMessage& Message) {
|
||||
return (pChan && pChan->IsDetached());
|
||||
}
|
||||
|
||||
bool CIRCSock::OnChgHostMessage(CChgHostMessage& Message) {
|
||||
// The emulation of QUIT+JOIN would be cleaner inside CClient::PutClient()
|
||||
// but computation of new modes is difficult enough so that I don't want to
|
||||
// repeat it for every client
|
||||
//
|
||||
// TODO: make CNick store modes (v, o) instead of perm chars (+, @), that
|
||||
// would simplify this
|
||||
bool bNeedEmulate = false;
|
||||
for (CClient* pClient : m_pNetwork->GetClients()) {
|
||||
if (pClient->HasChgHost()) {
|
||||
pClient->PutClient(Message);
|
||||
} else {
|
||||
bNeedEmulate = true;
|
||||
pClient->PutClient(CMessage(Message.GetNick(), "QUIT",
|
||||
{"Changing hostname"},
|
||||
Message.GetTags()));
|
||||
}
|
||||
}
|
||||
|
||||
CNick NewNick = Message.GetNick();
|
||||
NewNick.SetIdent(Message.GetNewIdent());
|
||||
NewNick.SetHost(Message.GetNewHost());
|
||||
|
||||
for (CChan* pChan : m_pNetwork->GetChans()) {
|
||||
if (CNick* pNick = pChan->FindNick(Message.GetNick().GetNick())) {
|
||||
pNick->SetIdent(Message.GetNewIdent());
|
||||
pNick->SetHost(Message.GetNewHost());
|
||||
}
|
||||
|
||||
if (!bNeedEmulate) continue;
|
||||
if (pChan->IsDisabled()) continue;
|
||||
if (pChan->IsDetached()) continue;
|
||||
|
||||
if (CNick* pNick = pChan->FindNick(NewNick.GetNick())) {
|
||||
VCString vsModeParams = {pChan->GetName(), "+"};
|
||||
for (char cPerm : pNick->GetPermStr()) {
|
||||
char cMode = GetModeFromPerm(cPerm);
|
||||
if (cMode) {
|
||||
vsModeParams[1].append(1, cMode);
|
||||
vsModeParams.push_back(NewNick.GetNick());
|
||||
}
|
||||
}
|
||||
|
||||
CTargetMessage ModeMsg;
|
||||
ModeMsg.SetNick(CNick(":irc.znc.in"));
|
||||
ModeMsg.SetTags(Message.GetTags());
|
||||
ModeMsg.SetCommand("MODE");
|
||||
ModeMsg.SetParams(std::move(vsModeParams));
|
||||
|
||||
for (CClient* pClient : m_pNetwork->GetClients()) {
|
||||
if (!pClient->HasChgHost()) {
|
||||
// TODO: send account name and real name too, for
|
||||
// extended-join
|
||||
pClient->PutClient(CMessage(NewNick, "JOIN",
|
||||
{pChan->GetName()},
|
||||
Message.GetTags()));
|
||||
if (ModeMsg.GetParams().size() > 2) {
|
||||
pClient->PutClient(ModeMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CIRCSock::OnErrorMessage(CMessage& Message) {
|
||||
// ERROR :Closing Link: nick[24.24.24.24] (Excess Flood)
|
||||
CString sError = Message.GetParam(0);
|
||||
@@ -1222,7 +1320,7 @@ void CIRCSock::Connected() {
|
||||
&bReturn);
|
||||
if (bReturn) return;
|
||||
|
||||
PutIRC("CAP LS");
|
||||
PutIRC("CAP LS 302");
|
||||
|
||||
if (!sPass.empty()) {
|
||||
PutIRC("PASS " + sPass);
|
||||
@@ -1411,6 +1509,16 @@ CString CIRCSock::GetISupport(const CString& sKey,
|
||||
}
|
||||
}
|
||||
|
||||
CString CIRCSock::GetCapLsValue(const CString& sKey,
|
||||
const CString& sDefault) const {
|
||||
MCString::const_iterator i = m_msCapLsValues.find(sKey);
|
||||
if (i == m_msCapLsValues.end()) {
|
||||
return sDefault;
|
||||
} else {
|
||||
return i->second;
|
||||
}
|
||||
}
|
||||
|
||||
void CIRCSock::SendAltNick(const CString& sBadNick) {
|
||||
const CString& sLastNick = m_Nick.GetNick();
|
||||
|
||||
@@ -1479,6 +1587,18 @@ char CIRCSock::GetPermFromMode(char cMode) const {
|
||||
return 0;
|
||||
}
|
||||
|
||||
char CIRCSock::GetModeFromPerm(char cPerm) const {
|
||||
if (m_sPermModes.size() == m_sPerms.size()) {
|
||||
for (unsigned int a = 0; a < m_sPermModes.size(); a++) {
|
||||
if (m_sPerms[a] == cPerm) {
|
||||
return m_sPermModes[a];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
CIRCSock::EChanModeArgs CIRCSock::GetModeType(char cMode) const {
|
||||
map<char, EChanModeArgs>::const_iterator it =
|
||||
m_mceChanModes.find(cMode);
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+22
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,9 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <string_view>
|
||||
|
||||
#include <znc/Message.h>
|
||||
#include <znc/Utils.h>
|
||||
#include "bpstd/string_view.hpp"
|
||||
|
||||
CMessage::CMessage(const CString& sMessage) {
|
||||
Parse(sMessage);
|
||||
@@ -80,6 +81,16 @@ void CMessage::SetParams(const VCString& vsParams) {
|
||||
}
|
||||
}
|
||||
|
||||
void CMessage::SetParams(VCString&& vsParams) {
|
||||
m_vsParams = std::move(vsParams);
|
||||
m_bColon = false;
|
||||
|
||||
if (m_eType == Type::Text || m_eType == Type::Notice ||
|
||||
m_eType == Type::Action || m_eType == Type::CTCP) {
|
||||
InitType();
|
||||
}
|
||||
}
|
||||
|
||||
CString CMessage::GetParam(unsigned int uIdx) const {
|
||||
if (uIdx >= m_vsParams.size()) {
|
||||
return "";
|
||||
@@ -165,7 +176,7 @@ void CMessage::Parse(const CString& sMessage) {
|
||||
// Find the end of the first word
|
||||
const char* p = begin;
|
||||
while (p < end && *p != ' ') ++p;
|
||||
bpstd::string_view result(begin, p - begin);
|
||||
std::string_view result(begin, p - begin);
|
||||
begin = p;
|
||||
// Prepare for the following word
|
||||
while (begin < end && *begin == ' ') ++begin;
|
||||
@@ -175,12 +186,12 @@ void CMessage::Parse(const CString& sMessage) {
|
||||
// <tags>
|
||||
m_mssTags.clear();
|
||||
if (begin < end && *begin == '@') {
|
||||
bpstd::string_view svTags = next_word().substr(1);
|
||||
std::vector<bpstd::string_view> vsTags;
|
||||
std::string_view svTags = next_word().substr(1);
|
||||
std::vector<std::string_view> vsTags;
|
||||
// Split by ';'
|
||||
while (true) {
|
||||
auto delim = svTags.find_first_of(';');
|
||||
if (delim == bpstd::string_view::npos) {
|
||||
if (delim == std::string_view::npos) {
|
||||
vsTags.push_back(svTags);
|
||||
break;
|
||||
}
|
||||
@@ -188,10 +199,10 @@ void CMessage::Parse(const CString& sMessage) {
|
||||
svTags = svTags.substr(delim + 1);
|
||||
}
|
||||
// Save key and value
|
||||
for (bpstd::string_view svTag : vsTags) {
|
||||
for (std::string_view svTag : vsTags) {
|
||||
auto delim = svTag.find_first_of('=');
|
||||
CString sKey = std::string(delim == bpstd::string_view::npos ? svTag : svTag.substr(0, delim));
|
||||
CString sValue = delim == bpstd::string_view::npos ? std::string() : std::string(svTag.substr(delim + 1));
|
||||
CString sKey = std::string(delim == std::string_view::npos ? svTag : svTag.substr(0, delim));
|
||||
CString sValue = delim == std::string_view::npos ? std::string() : std::string(svTag.substr(delim + 1));
|
||||
m_mssTags[sKey] =
|
||||
sValue.Escape(CString::EMSGTAG, CString::CString::EASCII);
|
||||
}
|
||||
@@ -265,11 +276,12 @@ void CMessage::InitType() {
|
||||
m_eType = Type::Notice;
|
||||
}
|
||||
} else {
|
||||
std::map<CString, Type> mTypes = {
|
||||
static std::map<CString, Type> mTypes = {
|
||||
{"ACCOUNT", Type::Account},
|
||||
{"AUTHENTICATE", Type::Authenticate},
|
||||
{"AWAY", Type::Away},
|
||||
{"CAP", Type::Capability},
|
||||
{"CHGHOST", Type::ChgHost},
|
||||
{"ERROR", Type::Error},
|
||||
{"INVITE", Type::Invite},
|
||||
{"JOIN", Type::Join},
|
||||
|
||||
+171
-18
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,6 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <znc/IRCSock.h>
|
||||
#include <znc/Modules.h>
|
||||
#include <znc/FileUtils.h>
|
||||
#include <znc/Template.h>
|
||||
@@ -160,6 +161,31 @@ CModule::CModule(ModHandle pDLL, CUser* pUser, CIRCNetwork* pNetwork,
|
||||
}
|
||||
|
||||
CModule::~CModule() {
|
||||
for (const auto& [sName, pCap] : m_mServerDependentCaps) {
|
||||
// pCap->OnClientChangedSupport is useless (and even dangerous) to call
|
||||
// from the destructor, since the derived CModule class is gone already.
|
||||
// But still need to tell clients via cap-notify that the cap is gone.
|
||||
switch (GetType()) {
|
||||
case CModInfo::NetworkModule:
|
||||
GetNetwork()->NotifyClientsAboutServerDependentCap(sName,
|
||||
false);
|
||||
break;
|
||||
case CModInfo::UserModule:
|
||||
for (CIRCNetwork* pNetwork : GetUser()->GetNetworks()) {
|
||||
pNetwork->NotifyClientsAboutServerDependentCap(sName,
|
||||
false);
|
||||
}
|
||||
break;
|
||||
case CModInfo::GlobalModule:
|
||||
for (auto& [_, pUser] : CZNC::Get().GetUserMap()) {
|
||||
for (CIRCNetwork* pNetwork : pUser->GetNetworks()) {
|
||||
pNetwork->NotifyClientsAboutServerDependentCap(sName,
|
||||
false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while (!m_sTimers.empty()) {
|
||||
RemTimer(*m_sTimers.begin());
|
||||
}
|
||||
@@ -606,7 +632,24 @@ bool CModule::OnBoot() { return true; }
|
||||
void CModule::OnPreRehash() {}
|
||||
void CModule::OnPostRehash() {}
|
||||
void CModule::OnIRCDisconnected() {}
|
||||
void CModule::InternalServerDependentCapsOnIRCDisconnected() {
|
||||
OnIRCDisconnected();
|
||||
for (const auto& [sName, pCap] : m_mServerDependentCaps) {
|
||||
GetNetwork()->NotifyClientsAboutServerDependentCap(sName, false);
|
||||
for (CClient* pClient : GetNetwork()->GetClients()) {
|
||||
pCap->OnClientChangedSupport(pClient, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
void CModule::OnIRCConnected() {}
|
||||
void CModule::InternalServerDependentCapsOnIRCConnected() {
|
||||
OnIRCConnected();
|
||||
for (const auto& [sName, pCap] : m_mServerDependentCaps) {
|
||||
if (GetNetwork()->IsServerCapAccepted(sName)) {
|
||||
GetNetwork()->NotifyClientsAboutServerDependentCap(sName, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
CModule::EModRet CModule::OnIRCConnecting(CIRCSock* IRCSock) {
|
||||
return CONTINUE;
|
||||
}
|
||||
@@ -997,9 +1040,59 @@ CModule::EModRet CModule::OnSendToIRC(CString& sLine) { return CONTINUE; }
|
||||
CModule::EModRet CModule::OnSendToIRCMessage(CMessage& Message) {
|
||||
return CONTINUE;
|
||||
}
|
||||
void CModule::OnClientAttached() {}
|
||||
void CModule::InternalServerDependentCapsOnClientAttached() {
|
||||
OnClientAttached();
|
||||
if (!GetNetwork()) return;
|
||||
for (const auto& [sName, pCap] : m_mServerDependentCaps) {
|
||||
if (GetNetwork()->IsServerCapAccepted(sName)) {
|
||||
GetClient()->NotifyServerDependentCap(sName, true, GetNetwork()->GetIRCSock()->GetCapLsValue(sName));
|
||||
}
|
||||
}
|
||||
}
|
||||
void CModule::OnClientDetached() {}
|
||||
void CModule::InternalServerDependentCapsOnClientDetached() {
|
||||
OnClientDetached();
|
||||
for (const auto& [sName, pCap] : m_mServerDependentCaps) {
|
||||
GetClient()->NotifyServerDependentCap(sName, false, "");
|
||||
pCap->OnClientChangedSupport(GetClient(), false);
|
||||
}
|
||||
}
|
||||
|
||||
bool CModule::OnServerCapAvailable(const CString& sCap) { return false; }
|
||||
bool CModule::OnServerCap302Available(const CString& sCap,
|
||||
const CString& sValue) {
|
||||
return OnServerCapAvailable(sCap);
|
||||
}
|
||||
bool CModule::InternalServerDependentCapsOnServerCap302Available(const CString& sCap,
|
||||
const CString& sValue) {
|
||||
auto it = m_mServerDependentCaps.find(sCap);
|
||||
if (it == m_mServerDependentCaps.end())
|
||||
return OnServerCap302Available(sCap, sValue);
|
||||
if (GetNetwork()->IsServerCapAccepted(sCap)) {
|
||||
// This can happen when server sent CAP NEW with another value.
|
||||
GetNetwork()->NotifyClientsAboutServerDependentCap(sCap, true);
|
||||
// It's enabled already, no need to REQ it again.
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
void CModule::OnServerCapResult(const CString& sCap, bool bSuccess) {}
|
||||
void CModule::InternalServerDependentCapsOnServerCapResult(const CString& sCap,
|
||||
bool bSuccess) {
|
||||
OnServerCapResult(sCap, bSuccess);
|
||||
auto it = m_mServerDependentCaps.find(sCap);
|
||||
if (it == m_mServerDependentCaps.end()) return;
|
||||
it->second->OnServerChangedSupport(GetNetwork(), bSuccess);
|
||||
if (GetNetwork()->GetIRCSock()->IsAuthed()) {
|
||||
GetNetwork()->NotifyClientsAboutServerDependentCap(sCap, bSuccess);
|
||||
if (!bSuccess) {
|
||||
for (CClient* pClient : GetNetwork()->GetClients()) {
|
||||
it->second->OnClientChangedSupport(pClient, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CModule::PutIRC(const CString& sLine) {
|
||||
return m_pNetwork ? m_pNetwork->PutIRC(sLine) : false;
|
||||
@@ -1069,18 +1162,49 @@ CModule::EModRet CModule::OnUnknownUserRawMessage(CMessage& Message) {
|
||||
return CONTINUE;
|
||||
}
|
||||
void CModule::OnClientCapLs(CClient* pClient, SCString& ssCaps) {}
|
||||
void CModule::InternalServerDependentCapsOnClientCapLs(CClient* pClient, SCString& ssCaps) {
|
||||
for (const auto& [sName, pCap] : m_mServerDependentCaps) {
|
||||
if (GetNetwork() && GetNetwork()->IsServerCapAccepted(sName)) {
|
||||
if (pClient->HasCap302()) {
|
||||
CString sValue =
|
||||
GetNetwork()->GetIRCSock()->GetCapLsValue(sName);
|
||||
if (!sValue.empty()) {
|
||||
ssCaps.insert(sName + '=' + sValue);
|
||||
} else {
|
||||
ssCaps.insert(sName);
|
||||
}
|
||||
} else {
|
||||
ssCaps.insert(sName);
|
||||
}
|
||||
}
|
||||
}
|
||||
OnClientCapLs(pClient, ssCaps);
|
||||
}
|
||||
bool CModule::IsClientCapSupported(CClient* pClient, const CString& sCap,
|
||||
bool bState) {
|
||||
return false;
|
||||
bool bState) { return false; }
|
||||
bool CModule::InternalServerDependentCapsIsClientCapSupported(
|
||||
CClient* pClient, const CString& sCap, bool bState) {
|
||||
auto it = m_mServerDependentCaps.find(sCap);
|
||||
if (it == m_mServerDependentCaps.end())
|
||||
return IsClientCapSupported(pClient, sCap, bState);
|
||||
if (!bState) return true;
|
||||
return GetNetwork() && GetNetwork()->IsServerCapAccepted(sCap);
|
||||
}
|
||||
void CModule::OnClientCapRequest(CClient* pClient, const CString& sCap,
|
||||
bool bState) {}
|
||||
|
||||
CModule::EModRet CModule::OnClientSASLAuthenticate(const CString& sMechanism,
|
||||
const CString& sBuffer,
|
||||
CString& sUser,
|
||||
CString& sMechanismResponse,
|
||||
bool& bAuthenticationSuccess) {
|
||||
void CModule::InternalServerDependentCapsOnClientCapRequest(CClient* pClient,
|
||||
const CString& sCap,
|
||||
bool bState) {
|
||||
OnClientCapRequest(pClient, sCap, bState);
|
||||
auto it = m_mServerDependentCaps.find(sCap);
|
||||
if (it == m_mServerDependentCaps.end()) return;
|
||||
it->second->OnClientChangedSupport(pClient, bState);
|
||||
}
|
||||
|
||||
CModule::EModRet CModule::OnClientSASLAuthenticate(
|
||||
const CString& sMechanism, const CString& sBuffer, CString& sUser,
|
||||
CString& sMechanismResponse, bool& bAuthenticationSuccess) {
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
@@ -1108,6 +1232,11 @@ CModule::EModRet CModule::OnGetModInfo(CModInfo& ModInfo,
|
||||
}
|
||||
void CModule::OnGetAvailableMods(set<CModInfo>& ssMods,
|
||||
CModInfo::EModuleType eType) {}
|
||||
void CModule::AddServerDependentCapability(const CString& sName,
|
||||
std::unique_ptr<CCapability> pCap) {
|
||||
pCap->SetModule(this);
|
||||
m_mServerDependentCaps[sName] = std::move(pCap);
|
||||
}
|
||||
|
||||
CModules::CModules()
|
||||
: m_pUser(nullptr), m_pNetwork(nullptr), m_pClient(nullptr) {}
|
||||
@@ -1147,7 +1276,7 @@ bool CModules::OnPostRehash() {
|
||||
return false;
|
||||
}
|
||||
bool CModules::OnIRCConnected() {
|
||||
MODUNLOADCHK(OnIRCConnected());
|
||||
MODUNLOADCHK(InternalServerDependentCapsOnIRCConnected());
|
||||
return false;
|
||||
}
|
||||
bool CModules::OnIRCConnecting(CIRCSock* pIRCSock) {
|
||||
@@ -1165,7 +1294,7 @@ bool CModules::OnBroadcast(CString& sMessage) {
|
||||
MODHALTCHK(OnBroadcast(sMessage));
|
||||
}
|
||||
bool CModules::OnIRCDisconnected() {
|
||||
MODUNLOADCHK(OnIRCDisconnected());
|
||||
MODUNLOADCHK(InternalServerDependentCapsOnIRCDisconnected());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1505,9 +1634,17 @@ bool CModules::OnModCTCP(const CString& sMessage) {
|
||||
MODUNLOADCHK(OnModCTCP(sMessage));
|
||||
return false;
|
||||
}
|
||||
bool CModules::OnClientAttached() {
|
||||
MODUNLOADCHK(InternalServerDependentCapsOnClientAttached());
|
||||
return false;
|
||||
}
|
||||
bool CModules::OnClientDetached() {
|
||||
MODUNLOADCHK(InternalServerDependentCapsOnClientDetached());
|
||||
return false;
|
||||
}
|
||||
|
||||
// Why MODHALTCHK works only with functions returning EModRet ? :(
|
||||
bool CModules::OnServerCapAvailable(const CString& sCap) {
|
||||
bool CModules::OnServerCapAvailable(const CString& sCap, const CString& sValue) {
|
||||
bool bResult = false;
|
||||
for (CModule* pMod : *this) {
|
||||
try {
|
||||
@@ -1515,12 +1652,19 @@ bool CModules::OnServerCapAvailable(const CString& sCap) {
|
||||
pMod->SetClient(m_pClient);
|
||||
if (m_pUser) {
|
||||
CUser* pOldUser = pMod->GetUser();
|
||||
CIRCNetwork* pOldNetwork = pMod->GetNetwork();
|
||||
pMod->SetUser(m_pUser);
|
||||
bResult |= pMod->OnServerCapAvailable(sCap);
|
||||
pMod->SetNetwork(m_pNetwork);
|
||||
bResult |=
|
||||
pMod->InternalServerDependentCapsOnServerCap302Available(
|
||||
sCap, sValue);
|
||||
pMod->SetUser(pOldUser);
|
||||
pMod->SetNetwork(pOldNetwork);
|
||||
} else {
|
||||
// WTF? Is that possible?
|
||||
bResult |= pMod->OnServerCapAvailable(sCap);
|
||||
bResult |=
|
||||
pMod->InternalServerDependentCapsOnServerCap302Available(
|
||||
sCap, sValue);
|
||||
}
|
||||
pMod->SetClient(pOldClient);
|
||||
} catch (const CModule::EModException& e) {
|
||||
@@ -1533,7 +1677,7 @@ bool CModules::OnServerCapAvailable(const CString& sCap) {
|
||||
}
|
||||
|
||||
bool CModules::OnServerCapResult(const CString& sCap, bool bSuccess) {
|
||||
MODUNLOADCHK(OnServerCapResult(sCap, bSuccess));
|
||||
MODUNLOADCHK(InternalServerDependentCapsOnServerCapResult(sCap, bSuccess));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1571,7 +1715,7 @@ bool CModules::OnUnknownUserRawMessage(CMessage& Message) {
|
||||
}
|
||||
|
||||
bool CModules::OnClientCapLs(CClient* pClient, SCString& ssCaps) {
|
||||
MODUNLOADCHK(OnClientCapLs(pClient, ssCaps));
|
||||
MODUNLOADCHK(InternalServerDependentCapsOnClientCapLs(pClient, ssCaps));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1585,12 +1729,19 @@ bool CModules::IsClientCapSupported(CClient* pClient, const CString& sCap,
|
||||
pMod->SetClient(m_pClient);
|
||||
if (m_pUser) {
|
||||
CUser* pOldUser = pMod->GetUser();
|
||||
CIRCNetwork* pOldNetwork = pMod->GetNetwork();
|
||||
pMod->SetUser(m_pUser);
|
||||
bResult |= pMod->IsClientCapSupported(pClient, sCap, bState);
|
||||
pMod->SetNetwork(m_pNetwork);
|
||||
bResult |=
|
||||
pMod->InternalServerDependentCapsIsClientCapSupported(
|
||||
pClient, sCap, bState);
|
||||
pMod->SetUser(pOldUser);
|
||||
pMod->SetNetwork(pOldNetwork);
|
||||
} else {
|
||||
// WTF? Is that possible?
|
||||
bResult |= pMod->IsClientCapSupported(pClient, sCap, bState);
|
||||
bResult |=
|
||||
pMod->InternalServerDependentCapsIsClientCapSupported(
|
||||
pClient, sCap, bState);
|
||||
}
|
||||
pMod->SetClient(pOldClient);
|
||||
} catch (const CModule::EModException& e) {
|
||||
@@ -1604,7 +1755,8 @@ bool CModules::IsClientCapSupported(CClient* pClient, const CString& sCap,
|
||||
|
||||
bool CModules::OnClientCapRequest(CClient* pClient, const CString& sCap,
|
||||
bool bState) {
|
||||
MODUNLOADCHK(OnClientCapRequest(pClient, sCap, bState));
|
||||
MODUNLOADCHK(
|
||||
InternalServerDependentCapsOnClientCapRequest(pClient, sCap, bState));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1911,6 +2063,7 @@ void CModules::GetDefaultMods(set<CModInfo>& ssMods,
|
||||
const map<CString, CModInfo::EModuleType> ns = {
|
||||
{"chansaver", CModInfo::UserModule},
|
||||
{"controlpanel", CModInfo::UserModule},
|
||||
{"corecaps", CModInfo::GlobalModule},
|
||||
{"simple_away", CModInfo::NetworkModule},
|
||||
{"webadmin", CModInfo::GlobalModule}};
|
||||
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -118,7 +118,7 @@ bool CNick::RemPerm(char cPerm) {
|
||||
|
||||
char CNick::GetPermChar() const {
|
||||
CIRCSock* pIRCSock = (!m_pNetwork) ? nullptr : m_pNetwork->GetIRCSock();
|
||||
const CString& sChanPerms = (!pIRCSock) ? "@+" : pIRCSock->GetPerms();
|
||||
const CString sChanPerms = (!pIRCSock) ? "@+" : pIRCSock->GetPerms();
|
||||
|
||||
for (unsigned int a = 0; a < sChanPerms.size(); a++) {
|
||||
const char& c = sChanPerms[a];
|
||||
@@ -132,7 +132,7 @@ char CNick::GetPermChar() const {
|
||||
|
||||
CString CNick::GetPermStr() const {
|
||||
CIRCSock* pIRCSock = (!m_pNetwork) ? nullptr : m_pNetwork->GetIRCSock();
|
||||
const CString& sChanPerms = (!pIRCSock) ? "@+" : pIRCSock->GetPerms();
|
||||
const CString sChanPerms = (!pIRCSock) ? "@+" : pIRCSock->GetPerms();
|
||||
CString sRet;
|
||||
|
||||
for (unsigned int a = 0; a < sChanPerms.size(); a++) {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -30,13 +30,13 @@
|
||||
#ifdef HAVE_LIBSSL
|
||||
// Copypasted from
|
||||
// https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29
|
||||
// at 2020-09-24
|
||||
// at 2024-02-08 (version 5.7)
|
||||
static CString ZNC_DefaultCipher() {
|
||||
// This is TLS1.2 only, because TLS1.3 ciphers are probably not configurable here yet
|
||||
return "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:"
|
||||
"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:"
|
||||
"ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:"
|
||||
"DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
|
||||
"DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305";
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+52
-7
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -25,6 +25,10 @@
|
||||
#include <time.h>
|
||||
#include <algorithm>
|
||||
|
||||
#ifdef ZNC_HAVE_ARGON
|
||||
#include <argon2.h>
|
||||
#endif
|
||||
|
||||
using std::vector;
|
||||
using std::set;
|
||||
|
||||
@@ -346,7 +350,12 @@ bool CUser::ParseConfig(CConfig* pConfig, CString& sError) {
|
||||
method = CUser::HASH_MD5;
|
||||
else if (sMethod.Equals("sha256"))
|
||||
method = CUser::HASH_SHA256;
|
||||
else {
|
||||
else if (sMethod.Equals("Argon2id")) {
|
||||
method = CUser::HASH_ARGON2ID;
|
||||
#ifndef ZNC_HAVE_ARGON
|
||||
CUtils::PrintError("ZNC is built without Argon2 support, " + GetUsername() + " won't be able to authenticate");
|
||||
#endif
|
||||
} else {
|
||||
sError = "Invalid hash method";
|
||||
CUtils::PrintError(sError);
|
||||
return false;
|
||||
@@ -958,6 +967,9 @@ CConfig CUser::ToConfig() const {
|
||||
case HASH_SHA256:
|
||||
sHash = "SHA256";
|
||||
break;
|
||||
case HASH_ARGON2ID:
|
||||
sHash = "Argon2id";
|
||||
break;
|
||||
}
|
||||
passConfig.AddKeyValuePair("Salt", m_sPassSalt);
|
||||
passConfig.AddKeyValuePair("Method", sHash);
|
||||
@@ -1042,20 +1054,43 @@ CConfig CUser::ToConfig() const {
|
||||
return config;
|
||||
}
|
||||
|
||||
bool CUser::CheckPass(const CString& sPass) const {
|
||||
bool CUser::CheckPass(const CString& sPass) {
|
||||
if(AuthOnlyViaModule() || CZNC::Get().GetAuthOnlyViaModule()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool bResult = false;
|
||||
bool bUpgrade = false;
|
||||
switch (m_eHashType) {
|
||||
case HASH_MD5:
|
||||
return m_sPass.Equals(CUtils::SaltedMD5Hash(sPass, m_sPassSalt));
|
||||
bResult = m_sPass.Equals(CUtils::SaltedMD5Hash(sPass, m_sPassSalt));
|
||||
bUpgrade = true;
|
||||
break;
|
||||
case HASH_SHA256:
|
||||
return m_sPass.Equals(CUtils::SaltedSHA256Hash(sPass, m_sPassSalt));
|
||||
bResult = m_sPass.Equals(CUtils::SaltedSHA256Hash(sPass, m_sPassSalt));
|
||||
#if ZNC_HAVE_ARGON
|
||||
bUpgrade = true;
|
||||
#endif
|
||||
break;
|
||||
case HASH_ARGON2ID:
|
||||
#if ZNC_HAVE_ARGON
|
||||
return argon2id_verify(m_sPass.c_str(), sPass.data(), sPass.length()) == ARGON2_OK;
|
||||
#else
|
||||
CUtils::PrintError("ZNC is built without Argon2 support, " + GetUsername() + " cannot authenticate");
|
||||
return false;
|
||||
#endif
|
||||
case HASH_NONE:
|
||||
default:
|
||||
// Don't upgrade hash, since the only valid use case for plain are
|
||||
// manual tests, where it's simpler this way
|
||||
return (sPass == m_sPass);
|
||||
}
|
||||
|
||||
if (bResult && bUpgrade) {
|
||||
CString sSalt = CUtils::GetSalt();
|
||||
CString sHash = CUser::SaltedHash(sPass, sSalt);
|
||||
SetPass(sHash, CUser::HASH_DEFAULT, sSalt);
|
||||
}
|
||||
return bResult;
|
||||
}
|
||||
|
||||
/*CClient* CUser::GetClient() {
|
||||
@@ -1271,7 +1306,17 @@ void CUser::SetDCCBindHost(const CString& s) { m_sDCCBindHost = s; }
|
||||
void CUser::SetPass(const CString& s, eHashType eHash, const CString& sSalt) {
|
||||
m_sPass = s;
|
||||
m_eHashType = eHash;
|
||||
m_sPassSalt = sSalt;
|
||||
switch (eHash) {
|
||||
case HASH_NONE:
|
||||
case HASH_ARGON2ID:
|
||||
// Salt is embedded in the encoded "hash" in argon
|
||||
m_sPassSalt = "";
|
||||
break;
|
||||
case HASH_MD5:
|
||||
case HASH_SHA256:
|
||||
m_sPassSalt = sSalt;
|
||||
break;
|
||||
}
|
||||
}
|
||||
void CUser::SetMultiClients(bool b) { m_bMultiClients = b; }
|
||||
void CUser::SetDenyLoadMod(bool b) { m_bDenyLoadMod = b; }
|
||||
|
||||
+43
-8
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -52,6 +52,10 @@
|
||||
#include <unicode/errorcode.h>
|
||||
#endif
|
||||
|
||||
#ifdef ZNC_HAVE_ARGON
|
||||
#include <argon2.h>
|
||||
#endif
|
||||
|
||||
// Required with GCC 4.3+ if openssl is disabled
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
@@ -176,12 +180,24 @@ unsigned long CUtils::GetLongIP(const CString& sIP) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
// If you change this here and in GetSaltedHashPass(),
|
||||
// don't forget CUser::HASH_DEFAULT!
|
||||
// TODO refactor this
|
||||
const CString CUtils::sDefaultHash = "sha256";
|
||||
CString CUtils::GetSaltedHashPass(CString& sSalt) {
|
||||
sSalt = GetSalt();
|
||||
#ifdef ZNC_HAVE_ARGON
|
||||
static CString SaltedArgonHash(const CString& sPass, const CString& sSalt) {
|
||||
#define ZNC_ARGON_PARAMS /* iterations */ 6, /* memory */ 6144, /* parallelism */ 1
|
||||
constexpr int iHashLen = 32;
|
||||
CString sOut;
|
||||
sOut.resize(argon2_encodedlen(ZNC_ARGON_PARAMS, sSalt.length(), iHashLen, Argon2_id) + 1);
|
||||
int err = argon2id_hash_encoded(ZNC_ARGON_PARAMS, sPass.data(), sPass.length(), sSalt.data(), sSalt.length(), iHashLen, &sOut[0], sOut.length());
|
||||
if (err) {
|
||||
CUtils::PrintError(argon2_error_message(err));
|
||||
sOut.clear();
|
||||
}
|
||||
return sOut;
|
||||
}
|
||||
#undef ZNC_ARGON_PARAMS
|
||||
#endif
|
||||
|
||||
CString CUtils::AskSaltedHashPassForConfig() {
|
||||
CString sSalt = GetSalt();
|
||||
|
||||
while (true) {
|
||||
CString pass1;
|
||||
@@ -195,7 +211,18 @@ CString CUtils::GetSaltedHashPass(CString& sSalt) {
|
||||
CUtils::PrintError("The supplied passwords did not match");
|
||||
} else {
|
||||
// Construct the salted pass
|
||||
return SaltedSHA256Hash(pass1, sSalt);
|
||||
VCString vsLines;
|
||||
vsLines.push_back("<Pass password>");
|
||||
#if ZNC_HAVE_ARGON
|
||||
vsLines.push_back("\tMethod = Argon2id");
|
||||
vsLines.push_back("\tHash = " + SaltedArgonHash(pass1, sSalt));
|
||||
#else
|
||||
vsLines.push_back("\tMethod = SHA256");
|
||||
vsLines.push_back("\tHash = " + SaltedSHA256Hash(pass1, sSalt));
|
||||
vsLines.push_back("\tSalt = " + sSalt);
|
||||
#endif
|
||||
vsLines.push_back("</Pass>");
|
||||
return CString("\n").Join(vsLines.begin(), vsLines.end());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,6 +237,14 @@ CString CUtils::SaltedSHA256Hash(const CString& sPass, const CString& sSalt) {
|
||||
return CString(sPass + sSalt).SHA256();
|
||||
}
|
||||
|
||||
CString CUtils::SaltedHash(const CString& sPass, const CString& sSalt) {
|
||||
#ifdef ZNC_HAVE_ARGON
|
||||
return SaltedArgonHash(sPass, sSalt);
|
||||
#else
|
||||
return SaltedSHA256Hash(sPass, sSalt);
|
||||
#endif
|
||||
}
|
||||
|
||||
CString CUtils::GetPass(const CString& sPrompt) {
|
||||
#ifdef HAVE_TCSETATTR
|
||||
// Disable echo
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+3
-8
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -383,20 +383,15 @@ int main(int argc, char** argv) {
|
||||
#endif /* HAVE_LIBSSL */
|
||||
|
||||
if (bMakePass) {
|
||||
CString sSalt;
|
||||
CUtils::PrintMessage("Type your new password.");
|
||||
CString sHash = CUtils::GetSaltedHashPass(sSalt);
|
||||
CString sPass = CUtils::AskSaltedHashPassForConfig();
|
||||
CUtils::PrintMessage("Kill ZNC process, if it's running.");
|
||||
CUtils::PrintMessage(
|
||||
"Then replace password in the <User> section of your config with "
|
||||
"this:");
|
||||
// Not PrintMessage(), to remove [**] from the beginning, to ease
|
||||
// copypasting
|
||||
std::cout << "<Pass password>" << std::endl;
|
||||
std::cout << "\tMethod = " << CUtils::sDefaultHash << std::endl;
|
||||
std::cout << "\tHash = " << sHash << std::endl;
|
||||
std::cout << "\tSalt = " << sSalt << std::endl;
|
||||
std::cout << "</Pass>" << std::endl;
|
||||
std::cout << sPass << std::endl;
|
||||
CUtils::PrintMessage(
|
||||
"After that start ZNC again, and you should be able to login with "
|
||||
"the new password.");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
# Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
||||
+85
-85
@@ -51,27 +51,27 @@ msgid ""
|
||||
"code>”). Once you have loaded some Web-enabled modules, the menu will expand."
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr ""
|
||||
|
||||
@@ -79,104 +79,104 @@ msgstr ""
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Сървъра{1} ни пренасочва към {2}:{3} с причина: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr ""
|
||||
|
||||
@@ -184,215 +184,215 @@ msgstr ""
|
||||
msgid "No such module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr ""
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
@@ -1904,34 +1904,34 @@ msgstr ""
|
||||
msgid "hostname verification error"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
+85
-85
@@ -51,27 +51,27 @@ msgid ""
|
||||
"code>”). Once you have loaded some Web-enabled modules, the menu will expand."
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Brugeren eksisterer allerede"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 er ikke aktiveret"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL er ikke aktiveret"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Ugyldig port"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr ""
|
||||
|
||||
@@ -79,104 +79,104 @@ msgstr ""
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Velkommen til ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr ""
|
||||
|
||||
@@ -184,215 +184,215 @@ msgstr ""
|
||||
msgid "No such module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr ""
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
@@ -1904,34 +1904,34 @@ msgstr ""
|
||||
msgid "hostname verification error"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
+85
-85
@@ -55,27 +55,27 @@ msgstr ""
|
||||
"code>\"). Sobald einige Web-fähige Module geladen wurden, wird das Menü "
|
||||
"größer."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Benutzer existiert bereits"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 ist nicht aktiviert"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL ist nicht aktiviert"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Kann PEM-Datei nicht finden: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Ungültiger Port"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Kann nicht horchen: {1}"
|
||||
|
||||
@@ -84,111 +84,111 @@ msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
"Springe zu einem Server, da dieser Server nicht länger in der Liste ist"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Willkommen bei ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Du bist zur Zeit nicht mit dem IRC verbunden. Verwende 'connect' zum "
|
||||
"Verbinden."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
"Dieses Netzwerk wird gelöscht oder zu einem anderen Benutzer verschoben."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr "Ungültiger Index"
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Du bist nicht in {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Der Kanal {1} konnte nicht betreten werden und wird deaktiviert."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "Dein aktueller Server wurde entfernt, springe..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Kann nicht zu {1} verbinden, da ZNC ohne SSL-Unterstützung gebaut wurde."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Ein Modul hat den Verbindungsversuch abgebrochen"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Fehler vom Server: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr "ZNC scheint zu sich selbst verbunden zu sein, trenne die Verbindung..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Der Server {1} hat uns zu {2}:{3} umgeleitet mit der Begründung: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Vielleicht möchtest du dies als einen neuen Server hinzufügen."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
"Kanal {1} ist mit einem anderen Kanal verbunden und wurde daher deaktiviert."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Zu SSL gewechselt (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Du hast die Verbindung getrennt: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "IRC-Verbindung getrennt. Verbinde erneut..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Kann nicht mit IRC verbinden ({1}). Versuche es erneut..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "IRC-Verbindung getrennt ({1}). Verbinde erneut..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Falls du diesem Zertifikat vertraust, mache /znc AddTrustedServerFingerprint "
|
||||
"{1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "Zeitüberschreitung der IRC-Verbindung. Verbinde erneut..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Verbindung abgelehnt. Verbinde erneut..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Eine zu lange Zeile wurde vom IRC-Server empfangen!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Kein freier Nick verfügbar"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Kein freier Nick gefunden"
|
||||
|
||||
@@ -196,17 +196,17 @@ msgstr "Kein freier Nick gefunden"
|
||||
msgid "No such module {1}"
|
||||
msgstr "Kein solches Modul {1}"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
"Ein Client hat versucht sich von {1} aus als dich anzumelden, aber wurde "
|
||||
"abgelehnt: {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "Netzwerk {1} existiert nicht."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -214,7 +214,7 @@ msgstr ""
|
||||
"Du hast mehrere Netzwerke, aber kein Netzwerk wurde für die Verbindung "
|
||||
"ausgewählt."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -222,7 +222,7 @@ msgstr ""
|
||||
"Wähle Netzwerk {1}. Um eine Liste aller konfigurierten Netzwerke zu sehen, "
|
||||
"verwende /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -231,109 +231,109 @@ msgstr ""
|
||||
"<Netzwerk>, oder verbinde dich zu ZNC mit dem Benutzernamen {1}/<Netzwerk> "
|
||||
"(statt einfach nur {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Du hast keine Netzwerke konfiguriert. Verwende /znc AddNetwork <Netzwerk> um "
|
||||
"eines hinzuzufügen."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Schließe Verbindung: Zeitüberschreitung"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Schließe Verbindung: Überlange Rohzeile"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Deine Verbindung wird getrennt, da ein anderen Benutzer sich als dich "
|
||||
"angemeldet hat."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Dein CTCP an {1} wurde verloren, du bist nicht mit dem IRC verbunden!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"Deine Benachrichtigung an {1} wurde verloren, du bist nicht mit dem IRC "
|
||||
"verbunden!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Entferne Kanal {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"Deine Nachricht an {1} wurde verloren, du bist nicht mit dem IRC verbunden!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Hallo. Wie kann ich dir helfen?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Verwendung: /attach <#Kanal>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Es gibt einen Kanal, der auf [{2}] passt"
|
||||
msgstr[1] "Es gibt {1} Kanäle, die auf [{2}] passen"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Zu {1} Kanal verbunden"
|
||||
msgstr[1] "Zu {1} Kanälen verbunden"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Verwendung: /detach <#Kanäle>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Von {1} Kanal getrennt"
|
||||
msgstr[1] "Von {1} Kanälen getrennt"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Pufferwiedergabe..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Wiedergabe beendet."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<Suche>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Erzeuge diese Ausgabe"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Keine Treffer für '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Dieses Modul implementiert keine Befehle."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr "Unbekannter Befehl!"
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -341,71 +341,71 @@ msgstr ""
|
||||
"Modulnamen können nur Buchstaben, Zahlen und Unterstriche enthalten, [{1}] "
|
||||
"ist ungültig"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "Modul {1} bereits geladen."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "Kann Modul {1} nicht finden"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "Modul {1} unterstützt den Modultyp {2} nicht."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "Modul {1} benötigt einen Benutzer."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "Modul {1} benötigt ein Netzwerk."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "Eine Ausnahme wurde gefangen"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "Modul {1} abgebrochen: {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "Modul {1} abgebrochen."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "Modul [{1}] ist nicht geladen."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Modul {1} entladen."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Kann Modul {1} nicht entladen."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "Module {1} neu geladen."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Kann Modul {1} nicht finden."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Unbekannter Fehler"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Konnte Modul {1} nicht öffnen: {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Konnte ZNCModuleEntry im Modul {1} nicht finden"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -413,7 +413,7 @@ msgstr ""
|
||||
"Versionsfehler für Modul {1}: Kern ist {2}, Modul ist für {3} gebaut. "
|
||||
"Rekompiliere dieses Modul."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -421,12 +421,12 @@ msgstr ""
|
||||
"Modul {1} ist inkompatibel gebaut: Kern ist '{2}', Modul ist '{3}'. Baue das "
|
||||
"Modul neu."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Befehl"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
@@ -1984,7 +1984,7 @@ msgstr "fehlerhafter Hostname im Zertifikat"
|
||||
msgid "hostname verification error"
|
||||
msgstr "hostnamen-Überprüfung fehlgeschlagen"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -1992,11 +1992,11 @@ msgstr ""
|
||||
"Ungültiger Netzwerkname. Er sollte alpha-numerisch sein. Nicht mit Server-"
|
||||
"Namen verwechseln"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "Netzwerk {1} existiert bereits"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -2004,18 +2004,18 @@ msgstr ""
|
||||
"Deine Verbindung wird geschlossen da deine IP sich nicht länger zu diesem "
|
||||
"Benutzer verbinden darf"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "Passwort ist leer"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "Benutzername ist leer"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "Benutzername ist ungültig"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Kann Modulinformationen für {1} nicht finden: {2}"
|
||||
|
||||
+85
-85
@@ -51,27 +51,27 @@ msgid ""
|
||||
"code>”). Once you have loaded some Web-enabled modules, the menu will expand."
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr ""
|
||||
|
||||
@@ -79,104 +79,104 @@ msgstr ""
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr ""
|
||||
|
||||
@@ -184,215 +184,215 @@ msgstr ""
|
||||
msgid "No such module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr ""
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
@@ -1904,34 +1904,34 @@ msgstr ""
|
||||
msgid "hostname verification error"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
+10
-10
@@ -244,48 +244,48 @@ msgid ""
|
||||
msgstr ""
|
||||
"Estás siendo desconectado porque otro usuario se ha autenticado por ti."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1026
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Tu CTCP a {1} se ha perdido, ¡no estás conectado al IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1152
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Tu notice a {1} se ha perdido, ¡no estás conectado al IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1191
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Eliminando canal {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1269
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Tu mensaje a {1} se ha perdido, ¡no estás conectado al IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1322 Client.cpp:1328
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Hola. ¿En qué te puedo ayudar?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1342
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Uso: /attach <#canales>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1349 Client.cpp:1371 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Hay {1} canal que coincide con [{2}]"
|
||||
msgstr[1] "Hay {1} canales que coinciden con [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1352 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Vinculado a {1} canal"
|
||||
msgstr[1] "Unido a {1} canales"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1364
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Uso: /detach <#canales>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1374 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Desvinculado {1} canal"
|
||||
|
||||
+89
-89
@@ -55,27 +55,27 @@ msgstr ""
|
||||
"loadmod <module></code>”). Les modules avec des capacités web "
|
||||
"apparaîtront ci-dessous."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Cet utilisateur existe déjà"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 n'est pas activé"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL n'est pas activé"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Impossible de trouver le fichier pem : {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Port invalide"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Impossible d'utiliser le port : {1}"
|
||||
|
||||
@@ -84,111 +84,111 @@ msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
"Connexion au serveur suivant, le serveur actuel n'est plus dans la liste"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Bienvenue sur ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Vous êtes actuellement déconnecté d'IRC. Utilisez 'connect' pour vous "
|
||||
"reconnecter."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
"Ce réseau est en train d'être supprimé ou déplacé vers un autre utilisateur."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr "Index non valide"
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Vous n'êtes pas sur {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Impossible de rejoindre le salon {1}, il est désormais désactivé."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "Le serveur actuel a été supprimé. Changement en cours..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Impossible de se connecter à {1}, car ZNC n'a pas été compilé avec le "
|
||||
"support SSL."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Un module a annulé la tentative de connexion"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Erreur du serveur : {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr "ZNC semble s'être connecté à lui-même, déconnexion..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Le serveur {1} redirige vers {2}:{3} avec pour motif : {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Vous souhaitez peut-être l'ajouter comme un nouveau server."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr "Le salon {1} est lié à un autre salon et est par conséquent désactivé."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Passage à SSL (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Vous avez quitté : {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Déconnecté d'IRC. Reconnexion..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Échec de la connexion à IRC ({1}). Nouvel essai..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "Déconnecté de IRC ({1}). Reconnexion..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Si vous avez confiance en ce certificat, tapez /znc "
|
||||
"AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "La connexion à IRC a expiré. Reconnexion..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Connexion refusée. Reconnexion..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Le serveur IRC a envoyé une ligne trop longue !"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Aucun pseudonyme n'est disponible"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Aucun pseudonyme disponible n'a été trouvé"
|
||||
|
||||
@@ -196,24 +196,24 @@ msgstr "Aucun pseudonyme disponible n'a été trouvé"
|
||||
msgid "No such module {1}"
|
||||
msgstr "Le module {1} n'existe pas"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
"Un client {1} a tenté de se connecter sous votre identifiant, mais a été "
|
||||
"refusé : {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "Le réseau {1} n'existe pas."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
msgstr ""
|
||||
"Plusieurs réseaux sont configurés, mais aucun n'a spécifié pour la connexion."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -221,7 +221,7 @@ msgstr ""
|
||||
"Sélection du réseau {1}. Pour consulter la liste des réseaux configurés, "
|
||||
"tapez /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -230,107 +230,107 @@ msgstr ""
|
||||
"connectez-vous à ZNC avec l'identifiant {1}/<network> (à la place de "
|
||||
"seulement {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Vous n'avez configuré aucun réseau. Tapez /znc AddNetwork <network> pour en "
|
||||
"ajouter un."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Fermeture de la connexion : expirée"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Fermeture de la connexion : ligne trop longue"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Vous avez été déconnecté car un autre utilisateur s'est authentifié avec le "
|
||||
"même identifiant."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"Votre connexion CTCP vers {1} a été perdue, vous n'êtes plus connecté à IRC !"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Votre notice vers {1} a été perdue, vous n'êtes plus connecté à IRC !"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Suppression du salon {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Votre message à {1} a été perdu, vous n'êtes pas connecté à IRC !"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Bonjour. Comment puis-je vous aider ?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Utilisation : /attach <#salons>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Il y avait {1} salon correspondant [{2}]"
|
||||
msgstr[1] "Il y avait {1} salons correspondant [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "A attaché {1} salon"
|
||||
msgstr[1] "A attaché {1} salons"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Utilisation : /detach <#salons>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "A détaché {1} salon"
|
||||
msgstr[1] "A détaché {1} salons"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Répétition du tampon..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Répétition terminée."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<recherche>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Générer cette sortie"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Aucune correspondance pour '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Ce module n'implémente aucune commande."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr "Commande inconnue !"
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -338,71 +338,71 @@ msgstr ""
|
||||
"Les noms de module ne peuvent contenir que des lettres, des chiffres et des "
|
||||
"underscores, [{1}] est invalide"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "Le module {1} est déjà chargé."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "Impossible de trouver le module {1}"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "Le module {1} le supporte pas le type {2}."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "Le module {1} requiert un utilisateur."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "Le module {1} requiert un réseau."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "Une exception a été reçue"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "Le module {1} a annulé : {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "Module {1} stoppé."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "Le module [{1}] n'est pas chargé."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Le module {1} a été déchargé."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Impossible de décharger le module {1}."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "Le module {1} a été rechargé."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Impossible de trouver le module {1}."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Erreur inconnue"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Impossible d'ouvrir le module {1} : {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Impossible de trouver ZNCModuleEntry dans le module {1}"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -410,7 +410,7 @@ msgstr ""
|
||||
"Les versions ne correspondent pas pour le module {1} : le cœur est {2}, le "
|
||||
"module est conçu pour {3}. Recompilez ce module."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -418,12 +418,12 @@ msgstr ""
|
||||
"Le module {1} a été compilé de façon incompatible : le cœur est '{2}', le "
|
||||
"module est '{3}'. Recompilez ce module."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Commande"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
@@ -762,7 +762,7 @@ msgstr "Total : {1}, Rejoint : {2}, Détaché : {3}, Désactivé : {4}"
|
||||
#: ClientCommand.cpp:600 ClientCommand.cpp:636 ClientCommand.cpp:816
|
||||
#: ClientCommand.cpp:842
|
||||
msgid "Access denied!"
|
||||
msgstr ""
|
||||
msgstr "Accès refusé !"
|
||||
|
||||
#: ClientCommand.cpp:606
|
||||
msgid ""
|
||||
@@ -1626,17 +1626,17 @@ msgstr "<#chan> <index>"
|
||||
#: ClientCommand.cpp:1850
|
||||
msgctxt "helpcmd|MoveChan|desc"
|
||||
msgid "Move channel in sort order"
|
||||
msgstr ""
|
||||
msgstr "Déplacer le canal dans l'ordre de tri"
|
||||
|
||||
#: ClientCommand.cpp:1852
|
||||
msgctxt "helpcmd|SwapChans|args"
|
||||
msgid "<#chan1> <#chan2>"
|
||||
msgstr ""
|
||||
msgstr "<#chan1> <#chan2>"
|
||||
|
||||
#: ClientCommand.cpp:1853
|
||||
msgctxt "helpcmd|SwapChans|desc"
|
||||
msgid "Swap channels in sort order"
|
||||
msgstr ""
|
||||
msgstr "Échanger les canaux dans l'ordre de tri"
|
||||
|
||||
#: ClientCommand.cpp:1854
|
||||
msgctxt "helpcmd|Attach|args"
|
||||
@@ -1977,7 +1977,7 @@ msgstr "le nom d'hôte du certificat est incorrect"
|
||||
msgid "hostname verification error"
|
||||
msgstr "erreur de vérification du nom d'hôte"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -1985,11 +1985,11 @@ msgstr ""
|
||||
"Nom de réseau invalide. Il devrait être alphanumérique. Ne pas confondre "
|
||||
"avec le nom du serveur"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "Le réseau {1} existe déjà"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -1997,18 +1997,18 @@ msgstr ""
|
||||
"Vous avez été déconnecté car votre adresse IP n'est plus autorisée à se "
|
||||
"connecter à cet utilisateur"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "Le mot de passe est vide"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "L'identifiant est vide"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "L'identifiant est invalide"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Impossible de trouver d'information sur le module {1} : {2}"
|
||||
|
||||
+85
-85
@@ -54,27 +54,27 @@ msgstr ""
|
||||
"status help </code>\" dan \"<code>/msg * status loadmod <module></code>"
|
||||
"\"). Setelah anda memuat beberapa modul Web-enabled, menu ini akan diperluas."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Pengguna sudah ada"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 tidak diaktifkan"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL tidak diaktifkan"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Tidak dapat menemukan berkas pem: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Port tidak valid"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Tidak dapat mengikat: {1}"
|
||||
|
||||
@@ -82,109 +82,109 @@ msgstr "Tidak dapat mengikat: {1}"
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr "Melompati server karena server ini tidak lagi dalam daftar"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Selamat datang di ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Anda saat ini terputus dari IRC. Gunakan 'connect' untuk terhubung kembali."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr "Jaringan ini sedang dihapus atau dipindahkan ke pengguna lain."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Tidak dapat join ke channel {1}. menonaktifkan."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "Server anda saat ini dihapus, melompati..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Tidak dapat terhubung ke {1}, karena ZNC tidak dikompilasi dengan dukungan "
|
||||
"SSL."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Beberapa modul membatalkan upaya koneksi"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Kesalahan dari server: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr "ZNC tampaknya terhubung dengan sendiri, memutuskan..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Server {1} mengalihkan ke {2}: {3} dengan alasan: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Mungkin anda ingin menambahkannya sebagai server baru."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr "Channel {1} terhubung ke channel lain dan karenanya dinonaktifkan."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Beralih ke SSL (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Anda keluar: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Terputus dari IRC. Menghubungkan..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Tidak dapat terhubung ke IRC ({1}). Mencoba lagi..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "Terputus dari IRC ({1}). Menghubungkan..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Jika anda mempercayai sertifikat ini, lakukan /znc "
|
||||
"AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "Koneksi IRC kehabisan waktu. Menghubungkan..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Koneksi tertolak. Menguhungkan..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Menerima baris terlalu panjang dari server IRC!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Tidak ada nick tersedia"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Tidak ada nick ditemukan"
|
||||
|
||||
@@ -192,15 +192,15 @@ msgstr "Tidak ada nick ditemukan"
|
||||
msgid "No such module {1}"
|
||||
msgstr "Modul tidak ada {1}"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr "Klien dari {1} berusaha masuk seperti anda, namun ditolak: {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "Jaringan {1} tidak ada."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -208,7 +208,7 @@ msgstr ""
|
||||
"Anda memiliki beberapa jaringan terkonfigurasi, tetapi tidak ada jaringan "
|
||||
"ditentukan untuk sambungan."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -216,7 +216,7 @@ msgstr ""
|
||||
"Memilih jaringan {1}. Untuk melihat daftar semua jaringan terkonfigurasi, "
|
||||
"gunakan /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -224,188 +224,188 @@ msgstr ""
|
||||
"Jika anda ingin memilih jaringan lain, gunakan /znc JumpNetwork <network>, "
|
||||
"atau hubungkan ke ZNC dengan nama pengguna {1}/<network> (bukan hanya {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Anda tidak memiliki jaringan terkonfigurasi. Gunakan /znc AddNetwork "
|
||||
"<network> untuk menambahkannya."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Menutup link: Waktu habis"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Menutup link: Baris raw terlalu panjang"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr "Anda terputus karena pengguna lain hanya diautentikasi sebagai anda."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "CTCP anda untuk {1} tersesat, anda tidak terhubung ke IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Notice anda untuk {1} tersesat, anda tidak terhubung ke IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Menghapus channel {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Pesan anda untuk {1} tersesat, anda tidak terhubung ke IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Halo. Bagaimana saya bisa membantu anda?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Gunakan: /attach <#chan>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Ada {1} pencocokan saluran [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] ""
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] ""
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr ""
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
@@ -1913,34 +1913,34 @@ msgstr ""
|
||||
msgid "hostname verification error"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
+85
-85
@@ -55,27 +55,27 @@ msgstr ""
|
||||
"loadmod <nome del modulo></code>”). Dopo aver caricato alcuni moduli "
|
||||
"abilitati per il web, il menù si espanderà."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Utente già esistente"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 non è abilitato"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL non è abilitata"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Impossibile localizzare il file pem: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Porta non valida"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Impossibile associare: {1}"
|
||||
|
||||
@@ -83,110 +83,110 @@ msgstr "Impossibile associare: {1}"
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr "Salta il server perché non è più in elenco"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Benvenuti nello ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr "Sei attualmente disconnesso da IRC. Usa 'connect' per riconnetterti."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr "Questo network può essere eliminato o spostato ad un altro utente."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr "Indice non valido"
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Non sei su {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Disabilitandolo, il canale {1} potrebbe non essere più accessibile."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "Il server attuale è stato rimosso, salta..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Non posso collegarmi a {1}, perché lo ZNC non è compilato con il supporto "
|
||||
"SSL."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Qualche modulo ha annullato il tentativo di connessione"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Errore dal server: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr ""
|
||||
"Lo ZNC sembra essere collegato a se stesso. La connessione verrà "
|
||||
"interrotta..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Il server {1} reindirizza a {2}:{3} con motivazione: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Forse vuoi aggiungerlo come nuovo server."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
"Il canale {1} è collegato ad un altro canale ed è quindi stato disabilitato."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Passato ad una connessione SSL protetta (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Il tuo quit: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Disconnesso da IRC. Riconnessione..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Impossibile connettersi a IRC ({1}). Riprovo..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "Disconnesso da IRC ({1}). Riconnessione..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Se ti fidi di questo certificato, scrivi /znc AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "La connessione ad IRC è scaduta (timed out). Tento la riconnessione..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Connessione rifiutata. Riconnessione..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Ricevuta una linea troppo lunga dal server IRC!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Nessun nickname disponibile"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Nessun nick trovato"
|
||||
|
||||
@@ -194,17 +194,17 @@ msgstr "Nessun nick trovato"
|
||||
msgid "No such module {1}"
|
||||
msgstr "Modulo non trovato {1}"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
"Un client da {1} ha tentato di accedere al posto tuo, ma è stato rifiutato: "
|
||||
"{2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "Il network {1} non esiste."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -212,7 +212,7 @@ msgstr ""
|
||||
"Hai configurato alcuni networks, ma nessuno è stato specificato per la "
|
||||
"connessione."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -220,7 +220,7 @@ msgstr ""
|
||||
"Selezione del network {1}. Per visualizzare l'elenco di tutte le reti "
|
||||
"configurate, scrivi /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -228,116 +228,116 @@ msgstr ""
|
||||
"Se vuoi scegliere un altro network, usa /znc JumpNetwork <nome del network>, "
|
||||
"o collegati allo ZNC con username {1}/<nome del network> (al posto di {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"ATTENZIONE: Non hai ancora configurato nessun networks. Usa /znc AddNetwork "
|
||||
"<nome del network> per aggiungerne uno."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Connessione persa: Timeout"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Connessione persa: Linea raw troppo lunga"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Stai per essere disconnesso perché un altro utente si è appena autenticato "
|
||||
"come te."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"ATTENZIONE: La richiesta di CTCP verso {1} è andata persa. Ora non sei "
|
||||
"connesso ad IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"ATTENZIONE: L'invio del tuo NOTICE verso {1} è andato perso. Ora non sei "
|
||||
"connesso ad IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Rimozione del canale {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"ATTENZIONE: L'invio del tuo messaggio verso {1} è andato perso. Ora non sei "
|
||||
"connesso ad IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr ""
|
||||
"Ciao! Per ottenere aiuto su questo e tutti i moduli della ZNC digita help "
|
||||
"(da questa finestra) oppure /znc help (in qualsiasi altra finestra)."
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Usa: /attach <#canali>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Trovato {1} canale corrispondente a [{2}]"
|
||||
msgstr[1] "Ho trovato {1} canali corrispondenti a [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Agganciato {1} canale (Attached)"
|
||||
msgstr[1] "Ho agganciato {1} canali (Attached)"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Usa: /detach <#canali>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Scollegato {1} canale (Detached)"
|
||||
msgstr[1] "Ho scollegato {1} canali (Detached)"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Riproduzione del Buffer avviata..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Riproduzione del Buffer completata."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<ricerca>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Mostra questo elenco"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Nessuna corrispondenza per '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Questo modulo non implementa nessun comando."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr ""
|
||||
"ATTENZIONE: Comando non riconosciuto! (Suggerimento: controlla la sintassi e "
|
||||
"di averlo digitato correttamente)."
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -345,71 +345,71 @@ msgstr ""
|
||||
"I nomi dei moduli possono contenere solo lettere, numeri e underscore. [{1}] "
|
||||
"non è valido"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "Il modulo {1} è già stato caricato."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "ATTENZIONE: Impossibile trovare il modulo {1}"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "Il modulo {1} non supporta il tipo di modulo {2}."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "Il modulo {1} richiede un utente."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "Il modulo {1} richiede un network."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "È stata rilevata un'eccezione"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "Modulo {1} interrotto: {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "Modulo {1} interrotto."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "Modulo [{1}] non caricato."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Modulo {1} rimosso."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Impossibile scaricare il modulo {1}."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "Ricaricato il modulo {1}."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Impossibile trovare il modulo {1}."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Errore sconosciuto"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Impossibile aprire il modulo {1}: {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Impossibile trovare ZNCModuleEntry nel modulo {1}"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -417,7 +417,7 @@ msgstr ""
|
||||
"Versione non corrispondente per il modulo {1}: il cuore è {2}, il modulo è "
|
||||
"creato per {3}. Ricompila questo modulo."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -425,12 +425,12 @@ msgstr ""
|
||||
"Modulo {1} è costruito in modo incompatibile: il nucleo è '{2}', modulo è "
|
||||
"'{3}'. Ricompilare questo modulo."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Comando"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Descrizione"
|
||||
@@ -1996,7 +1996,7 @@ msgstr "hostname malformato nel certificato"
|
||||
msgid "hostname verification error"
|
||||
msgstr "errore di verifica dell'hostname"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -2004,11 +2004,11 @@ msgstr ""
|
||||
"Nome del network non valido. Deve essere alfanumerico. Da non confondere con "
|
||||
"il nome del server"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "Network {1} già esistente"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -2016,18 +2016,18 @@ msgstr ""
|
||||
"Sei stato disconnesso perché il tuo indirizzo IP non è più autorizzato a "
|
||||
"connettersi a questo utente"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "Password è vuota"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "Username è vuoto"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "Username non è valido"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Impossibile trovare modinfo {1}: {2}"
|
||||
|
||||
+85
-85
@@ -54,27 +54,27 @@ msgstr ""
|
||||
"msg *status help</code>” en “<code>/msg *status loadmod <module></"
|
||||
"code>”). Zodra je deze geladen hebt zal dit menu zich uitbreiden."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Gebruiker bestaat al"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 is niet ingeschakeld"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL is niet ingeschakeld"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Kan PEM bestand niet vinden: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Ongeldige poort"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Kan niet binden: {1}"
|
||||
|
||||
@@ -84,116 +84,116 @@ msgstr ""
|
||||
"We schakelen over naar een andere server omdat deze server niet langer in de "
|
||||
"lijst staat"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Welkom bij ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Op dit moment ben je niet verbonden met IRC. Gebruik 'connect' om opnieuw "
|
||||
"verbinding te maken."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
"Dit netwerk wordt op dit moment verwijderd of verplaatst door een andere "
|
||||
"gebruiker."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr "Ongeldige index"
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Je bent niet in {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Het kanaal {1} kan niet toegetreden worden, deze wordt uitgeschakeld."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr ""
|
||||
"Je huidige server was verwijderd, we schakelen over naar een andere server..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Kan niet verbinden naar {1} omdat ZNC niet gecompileerd is met SSL "
|
||||
"ondersteuning."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Een module heeft de verbindingspoging afgebroken"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Fout van server: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr ""
|
||||
"ZNC blijkt verbonden te zijn met zichzelf... De verbinding zal verbroken "
|
||||
"worden..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Server {1} stuurt ons door naar {2}:{3} met reden: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Misschien wil je het toevoegen als nieuwe server."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
"Kanaal {1} is verbonden naar een andere kanaal en is daarom uitgeschakeld."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Omgeschakeld naar een veilige verbinding (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Je hebt het netwerk verlaten: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Verbinding met IRC verbroken. We proberen opnieuw te verbinden..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Kan niet verbinden met IRC ({1}). We proberen opnieuw te verbinden..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr ""
|
||||
"Verbinding met IRC verbroken ({1}). We proberen opnieuw te verbinden..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Als je dit certificaat vertrouwt, doe: /znc AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "IRC verbinding time-out. We proberen opnieuw te verbinden..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Verbinding geweigerd. We proberen opnieuw te verbinden..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Een te lange regel ontvangen van de IRC server!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Geen beschikbare bijnaam"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Geen beschikbare bijnaam gevonden"
|
||||
|
||||
@@ -201,17 +201,17 @@ msgstr "Geen beschikbare bijnaam gevonden"
|
||||
msgid "No such module {1}"
|
||||
msgstr "Geen dergelijke module {1}"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
"Een client van {1} heeft geprobeerd als jou in te loggen maar werd "
|
||||
"geweigerd: {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "Netwerk {1} bestaat niet."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -219,7 +219,7 @@ msgstr ""
|
||||
"Je hebt meerdere netwerken geconfigureerd maar je hebt er geen gekozen om "
|
||||
"verbinding mee te maken."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -227,7 +227,7 @@ msgstr ""
|
||||
"Netwerk {1} geselecteerd. Om een lijst te tonen van alle geconfigureerde "
|
||||
"netwerken, gebruik /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -235,108 +235,108 @@ msgstr ""
|
||||
"Als je een ander netwerk wilt kiezen, gebruik /znc JumpNetwork <netwerk>, of "
|
||||
"verbind naar ZNC met gebruikersnaam {1}/<netwerk> (in plaats van alleen {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Je hebt geen netwerken geconfigureerd. Gebruiker /znc AddNetwork <netwerk> "
|
||||
"om er een toe te voegen."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Verbinding verbroken: Time-out"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Verbinding verbroken: Te lange onbewerkte regel"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Je verbinding wordt verbroken omdat een andere gebruiker zich net aangemeld "
|
||||
"heeft als jou."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Je CTCP naar {1} is verloren geraakt, je bent niet verbonden met IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"Je notice naar {1} is verloren geraakt, je bent niet verbonden met IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Kanaal verwijderen: {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"Je bericht naar {1} is verloren geraakt, je bent niet verbonden met IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Hallo. Hoe kan ik je helpen?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Gebruik: /attach <#kanalen>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Er was {1} kanaal overeenkomend met [{2}]"
|
||||
msgstr[1] "Er waren {1} kanalen overeenkomend met [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Gekoppeld aan {1} kanaal"
|
||||
msgstr[1] "Gekoppeld aan {1} kanalen"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Gebruik: /detach <#kanalen>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Losgekoppeld van {1} kanaal"
|
||||
msgstr[1] "Losgekoppeld van {1} kanalen"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Buffer afspelen..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Afspelen compleet."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<zoek>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Genereer deze output"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Geen overeenkomsten voor '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Deze module heeft geen commando's geimplementeerd."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr "Onbekend commando!"
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -344,71 +344,71 @@ msgstr ""
|
||||
"Module namen kunnen alleen letters, nummers en lage streepts bevatten, [{1}] "
|
||||
"is ongeldig"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "Module {1} is al geladen."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "Kon module {1} niet vinden"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "Module {1} ondersteund het type {2} niet."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "Module {1} vereist een gebruiker."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "Module {1} vereist een netwerk."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "Uitzondering geconstateerd"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "Module {1} afgebroken: {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "Module {1} afgebroken."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "Module [{1}] niet geladen."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Module {1} gestopt."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Niet mogelijk om module {1} te stoppen."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "Module {1} hergeladen."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Module {1} niet gevonden."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Onbekende fout"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Niet mogelijk om module te openen, {1}: {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Kon ZNCModuleEntry niet vinden in module {1}"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -416,7 +416,7 @@ msgstr ""
|
||||
"Verkeerde versie voor module {1}, kern is {2}, module is gecompileerd voor "
|
||||
"{3}. Hercompileer deze module."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -424,12 +424,12 @@ msgstr ""
|
||||
"Module {1} is niet compatible gecompileerd: kern is '{2}', module is '{3}'. "
|
||||
"Hercompileer deze module."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Commando"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Beschrijving"
|
||||
@@ -1979,7 +1979,7 @@ msgstr "misvormde hostnaam in certificaat"
|
||||
msgid "hostname verification error"
|
||||
msgstr "hostnaam verificatiefout"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -1987,11 +1987,11 @@ msgstr ""
|
||||
"Ongeldige netwerknaam. Deze moet alfanumeriek zijn. Niet te verwarren met "
|
||||
"server naam"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "Netwerk {1} bestaat al"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -1999,18 +1999,18 @@ msgstr ""
|
||||
"Je verbinding wordt verbroken omdat het niet meer toegestaan is om met jouw "
|
||||
"IP-adres naar deze gebruiker te verbinden"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "Wachtwoord is leeg"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "Gebruikersnaam is leeg"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "Gebruikersnaam is ongeldig"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Kan modinfo niet vinden {1}: {2}"
|
||||
|
||||
+85
-85
@@ -56,27 +56,27 @@ msgstr ""
|
||||
"msg *status help</code>” i “<code>/msg *status loadmod <moduł></"
|
||||
"code>”). Jak już załadujesz jakieś moduły WWW to menu się rozwinie."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "Użytkownik już istnieje"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "IPv6 nie jest włączone"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "SSL nie jest włączone"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Nie udało się odnaleźć pliku pem: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Nieprawidłowy port"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Nie udało się przypiąć: {1}"
|
||||
|
||||
@@ -85,109 +85,109 @@ msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
"Przeskakiwanie na inne serwery, ponieważ tego serwera nie ma już na liście"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Witamy w ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Jesteś aktualnie rozłączony/a z IRC. Użyj 'connect' aby połączyć się "
|
||||
"ponownie."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr "Ta sieć jest usuwana lub przenoszona do innego użytkownika."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Nie jesteś na {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Nie można dołączyć do kanału {1} , wyłączanie go."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "Twój obecny serwer został usunięty, przeskakiwanie..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Nie można połączyć się z {1}, ponieważ ZNC nie jest skompilowany z obsługą "
|
||||
"SSL."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Jakiś moduł przerwał próbę połączenia"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Błąd z serwera: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr "Wygląda na to że ZNC jest połączony sam do siebie, rozłączanie..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "Serwer {1} przekierowuje nas do {2}:{3} z powodu: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Być może chcesz dodać go jako nowy serwer."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr "Kanał {1} jest połączony z innym kanałem i dlatego został zablokowany."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Przełączono na SSL (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Opuszczono sieć: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Rozłączono z IRC. Łączenie się ponownie..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Nie można połączyć się z IRC ({1}). Próbowanie ponownie..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "Rołączono z IRC ({1}). Łączenie się ponownie..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Jeżeli ufasz temu certyfikatowi, wykonaj /znc AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "Przekroczono limit czasu połączenia IRC. Łączenie się ponownie..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Połączenie odrzucone. Łączenie się ponownie..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Otrzymano zbyt długą linię z serwera IRC!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Brak dostępnego wolnego pseudonimu"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Nie znaleziono wolnego pseudonimu"
|
||||
|
||||
@@ -195,15 +195,15 @@ msgstr "Nie znaleziono wolnego pseudonimu"
|
||||
msgid "No such module {1}"
|
||||
msgstr "Nie ma takiego modułu {1}"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr "Klient z {1} próbował się zalogować jako Ty, ale został odrzucony: {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "Sieć {1} nie istnieje."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -211,7 +211,7 @@ msgstr ""
|
||||
"Masz skonfigurowanych kilka sieci, ale nie określiłeś z którą chcesz się "
|
||||
"połączyć."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -219,7 +219,7 @@ msgstr ""
|
||||
"Wybieranie sieci {1}. Aby zobaczyć listę wszystkich skonfigurowanych sieci, "
|
||||
"użyj /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -228,53 +228,53 @@ msgstr ""
|
||||
"z ZNC za pomocą zmodyfikowanej nazwy użytkownika {1}/<sieć> (zamiast tylko "
|
||||
"{1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Nie masz skonfigurowanych sieci. Użyj /znc AddNetwork <sieć>, aby dodać "
|
||||
"pierwszą."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Zamknięcie połączenia: przedawnienie"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Zamknięcie połączenia: za długa surowa linia"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Trwa rozłączanie, ponieważ inny użytkownik właśnie uwierzytelnił się jako Ty."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Twoje CTCP do {1} zostało zgubione, nie jesteś połączony z IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
"Twoje powiadomienie do {1} zostało zgubione, nie jesteś połączony z IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Usuwanie kanału {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Twoja wiadomość do {1} została zgubiona, nie jesteś połączony z IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Witaj. Jak mogę ci pomóc?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Użycie: /attach <#kanały>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
@@ -283,7 +283,7 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Podłączony {1} kanał"
|
||||
@@ -291,11 +291,11 @@ msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Użycie: /detach <#kanały>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Odpięto kanał {1}"
|
||||
@@ -303,37 +303,37 @@ msgstr[1] "Odpięto {1} kanały"
|
||||
msgstr[2] "Odpięto {1} kanałów"
|
||||
msgstr[3] "Odpięto {1} kanały/ów"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Odtwarzanie bufora..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Odtwarzanie zakończone."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<szukaj>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Tworzy ten wynik"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Brak dopasowań dla '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Ten moduł nie implementuje żadnych poleceń."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr "Nieznane polecenie!"
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -341,71 +341,71 @@ msgstr ""
|
||||
"Nazwy modułów mogą zawierać tylko litery, cyfry i znaki podkreślenia, [{1}] "
|
||||
"jest nieprawidłowa"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "Moduł {1} już jest załadowany."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "Nie udało się odnaleźć modułu {1}"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "Moduł {1} nie wspiera modułów typu {2}."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "Moduł {1} wymaga użytkownika."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "Moduł {1} wymaga sieci."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "Napotkano wyjątek"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "Moduł {1} przerwany: {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "Przerwano moduł {1}."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "Moduł [{1}] nie został załadowany."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Moduł {1} został wyładowany."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Nie można wyładować modułu {1}."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "Przeładowano moduł {1}."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Nie można znaleźć modułu {1}."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Nieznany błąd"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Nie można otworzyć modułu {1}: {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Nie można znaleźć ZNCModuleEntry w module {1}"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -413,7 +413,7 @@ msgstr ""
|
||||
"Niezgodność wersji dla modułu {1}: jądro to {2}, moduł jest zbudowany dla "
|
||||
"{3}. Ponownie skompiluj ten moduł."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -421,12 +421,12 @@ msgstr ""
|
||||
"Moduł {1} jest zbudowany niekompatybilnie: jądro to „{2}”, moduł to „{3}”. "
|
||||
"Ponownie skompiluj ten moduł."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Polecenie"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
@@ -1985,7 +1985,7 @@ msgstr "zniekształcona nazwa hosta w certyfikacie"
|
||||
msgid "hostname verification error"
|
||||
msgstr "błąd weryfikacji hosta"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -1993,11 +1993,11 @@ msgstr ""
|
||||
"Nieprawidłowa nazwa sieci. Powinna być alfanumeryczna. Nie należy mylić jej "
|
||||
"z nazwą serwera"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "Sieć {1} już istnieje"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -2005,18 +2005,18 @@ msgstr ""
|
||||
"Jesteś rozłączany, ponieważ Twój adres IP nie może już łączyć się z tym "
|
||||
"użytkownikiem"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "Nie podano hasła"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "Nazwa użytkownika jest pusta"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "Nazwa użytkownika jest niepoprawna"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Nie można znaleźć modinfo {1}: {2}"
|
||||
|
||||
+85
-85
@@ -42,27 +42,27 @@ msgid ""
|
||||
"code>”). Once you have loaded some Web-enabled modules, the menu will expand."
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr ""
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr ""
|
||||
|
||||
@@ -70,104 +70,104 @@ msgstr ""
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr ""
|
||||
|
||||
@@ -175,215 +175,215 @@ msgstr ""
|
||||
msgid "No such module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr ""
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
@@ -1895,34 +1895,34 @@ msgstr ""
|
||||
msgid "hostname verification error"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
+96
-96
@@ -55,27 +55,27 @@ msgstr ""
|
||||
"module></code>”). Depois de carregar alguns módulos habilitados para a "
|
||||
"Web, o menu será expandido."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "O usuário já existe"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "O IPv6 não está habilitado"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "O SSL não está habilitado"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Falha ao localizar o arquivo PEM: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Porta inválida"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Não foi possível vincular: {1}"
|
||||
|
||||
@@ -83,108 +83,108 @@ msgstr "Não foi possível vincular: {1}"
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr "Trocando de servidor, pois este servidor não está mais na lista"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Bem-vindo(a) ao ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Você está desconectado do IRC no momento. Digite 'connect' para reconectar."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr "Esta rede está sendo excluída ou movida para outro usuário."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr ""
|
||||
msgstr "Índice inválido"
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Você não está em {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Não foi possível entrar no canal {1}. Desabilitando-o."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "O seu servidor atual foi removido, trocando de servidor..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Não foi possível conectar-se a {1}. O ZNC não foi compilado com suporte a "
|
||||
"SSL."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Algum módulo cancelou a tentativa de conexão"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Erro do servidor: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr "Parece que o ZNC está conectado a si mesmo. Desconectando..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr ""
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Talvez você queira adicioná-lo como um novo servidor."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr "O canal {1} foi desabilitado por estar vinculado a outro canal."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "Alternado para SSL (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Você saiu: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Desconectado. Reconectando..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Não foi possível conectar-se ao IRC ({1}). Tentando novamente..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "Desconectado do IRC ({1}). Reconectando..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr ""
|
||||
"Caso confie neste certificado, digite /znc AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "A conexão ao servidor expirou. Reconectando..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Conexão rejeitada. Reconectando..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Uma linha muito longa foi recebida do servidor de IRC!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Não há apelidos livres disponíveis"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Nenhum apelido livre foi encontrado"
|
||||
|
||||
@@ -192,17 +192,17 @@ msgstr "Nenhum apelido livre foi encontrado"
|
||||
msgid "No such module {1}"
|
||||
msgstr "O módulo {1} não existe"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
"Um cliente com o IP {1} tentou iniciar sessão na sua conta, mas foi "
|
||||
"rejeitado: {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "A rede {1} não existe."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -210,7 +210,7 @@ msgstr ""
|
||||
"Você possui várias redes configuradas mas nenhuma delas foi especificada "
|
||||
"para conectar."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -218,7 +218,7 @@ msgstr ""
|
||||
"Selecionando a rede {1}. Para ver a lista das redes configuradas, digite /"
|
||||
"znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -226,106 +226,106 @@ msgstr ""
|
||||
"Caso queira escolher outra rede, digite /znc JumpNetwork <rede>, ou então "
|
||||
"conecte ao ZNC com o nome de usuário {1}/<rede> (em vez de somente {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Você não possui redes configuradas. Digite /znc AddNetwork <rede> para "
|
||||
"adicionar uma rede."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "Fechando link: Tempo limite excedido"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "Fechando link: Linha raw muito longa"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Você está sendo desconectado porque outro usuário acabou de autenticar-se "
|
||||
"como você."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "O seu CTCP para {1} foi perdido, você não está conectado ao IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "O seu aviso para {1} foi perdido, você não está conectado ao IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Removendo canal {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Sua mensagem para {1} foi perdida, você não está conectado ao IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Olá. Como posso ajudá-lo(a)?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Sintaxe: /attach <#canais>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Foi encontrado {1} canal correspondente a [{2}]"
|
||||
msgstr[1] "Foi encontrado {1} canal correspondentes a [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "{1} canal foi anexado"
|
||||
msgstr[1] "{1} canais foram anexados"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Sintaxe: /detach <#canais>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "{1} canal foi desanexado"
|
||||
msgstr[1] "{1} canais foram desanexados"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Reprodução de buffer..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Reprodução completa."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<pesquisa>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Gera essa saída"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Nenhuma correspondência para '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Este módulo não implementa comando algum."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr "Comando desconhecido!"
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -333,71 +333,71 @@ msgstr ""
|
||||
"Os nomes de módulos podem conter apenas letras, números e underlines. [{1}] "
|
||||
"é inválido"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "O módulo {1} já está carregado."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "Não foi possível encontrar o módulo {1}"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "O módulo {1} não suporta o tipo de módulo {2}."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "O módulo {1} requer um usuário."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "O módulo {1} requer uma rede."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "Houve uma exceção"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "Módulo {1} finalizado: {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "Módulo {1} finalizado."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "O módulo [{1}] não foi carregado."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Módulo {1} desligado."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Não foi possível desativar o módulo {1}."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "O módulo {1} foi reiniciado."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Não foi possível encontrar o módulo {1}."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Erro desconhecido"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Não foi possível abrir o módulo {1}: {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Não foi possível encontrar ZNCModuleEntry no módulo {1}"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -405,7 +405,7 @@ msgstr ""
|
||||
"Incompatibilidade de versão para o módulo {1}: core é {2}, mas o módulo foi "
|
||||
"compilado para {3}. Recompile esse módulo."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -413,12 +413,12 @@ msgstr ""
|
||||
"Módulo {1} foi compilado de forma incompatível: core é '{2}', o módulo é "
|
||||
"'{3}'. Recompile este módulo."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Comando"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
@@ -505,12 +505,12 @@ msgstr ""
|
||||
#: ClientCommand.cpp:203 ClientCommand.cpp:209
|
||||
msgctxt "listclientscmd"
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
msgstr "Host"
|
||||
|
||||
#: ClientCommand.cpp:204 ClientCommand.cpp:212
|
||||
msgctxt "listclientscmd"
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
msgstr "Rede"
|
||||
|
||||
#: ClientCommand.cpp:205 ClientCommand.cpp:215
|
||||
msgctxt "listclientscmd"
|
||||
@@ -520,7 +520,7 @@ msgstr ""
|
||||
#: ClientCommand.cpp:223 ClientCommand.cpp:229
|
||||
msgctxt "listuserscmd"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "Usuário"
|
||||
|
||||
#: ClientCommand.cpp:224 ClientCommand.cpp:230
|
||||
msgctxt "listuserscmd"
|
||||
@@ -536,12 +536,12 @@ msgstr ""
|
||||
#: ClientCommand.cpp:263
|
||||
msgctxt "listallusernetworkscmd"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "Usuário"
|
||||
|
||||
#: ClientCommand.cpp:241 ClientCommand.cpp:251 ClientCommand.cpp:266
|
||||
msgctxt "listallusernetworkscmd"
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
msgstr "Rede"
|
||||
|
||||
#: ClientCommand.cpp:242 ClientCommand.cpp:252 ClientCommand.cpp:268
|
||||
msgctxt "listallusernetworkscmd"
|
||||
@@ -556,7 +556,7 @@ msgstr ""
|
||||
#: ClientCommand.cpp:244 ClientCommand.cpp:273
|
||||
msgctxt "listallusernetworkscmd"
|
||||
msgid "IRC Server"
|
||||
msgstr ""
|
||||
msgstr "Servidor IRC"
|
||||
|
||||
#: ClientCommand.cpp:245 ClientCommand.cpp:275
|
||||
msgctxt "listallusernetworkscmd"
|
||||
@@ -566,7 +566,7 @@ msgstr ""
|
||||
#: ClientCommand.cpp:246 ClientCommand.cpp:277
|
||||
msgctxt "listallusernetworkscmd"
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
msgstr "Canais"
|
||||
|
||||
#: ClientCommand.cpp:251
|
||||
msgid "N/A"
|
||||
@@ -575,12 +575,12 @@ msgstr ""
|
||||
#: ClientCommand.cpp:272
|
||||
msgctxt "listallusernetworkscmd"
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
msgstr "Sim"
|
||||
|
||||
#: ClientCommand.cpp:281
|
||||
msgctxt "listallusernetworkscmd"
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
msgstr "Não"
|
||||
|
||||
#: ClientCommand.cpp:291
|
||||
msgid "Usage: SetMOTD <message>"
|
||||
@@ -686,7 +686,7 @@ msgstr "Não há canais definidos."
|
||||
#: ClientCommand.cpp:539 ClientCommand.cpp:557
|
||||
msgctxt "listchans"
|
||||
msgid "Index"
|
||||
msgstr ""
|
||||
msgstr "Índice"
|
||||
|
||||
#: ClientCommand.cpp:540 ClientCommand.cpp:558
|
||||
msgctxt "listchans"
|
||||
@@ -1960,7 +1960,7 @@ msgstr "nome de host malformado no certificado"
|
||||
msgid "hostname verification error"
|
||||
msgstr "erro de verificação do nome de host"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -1968,11 +1968,11 @@ msgstr ""
|
||||
"Nome de rede inválido. O nome deve ser alfanumérico. Não confundir com o "
|
||||
"nome do servidor"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "Rede {1} já existe"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -1980,18 +1980,18 @@ msgstr ""
|
||||
"Você está sendo desconectado porque seu IP não tem mais permissão para "
|
||||
"conectar-se a esse usuário"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "A senha está vazia"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "Nome de usuário está vazio"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "Nome de usuário inválido"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Não foi possível encontrar o modinfo {1}: {2}"
|
||||
|
||||
+85
-85
@@ -55,27 +55,27 @@ msgstr ""
|
||||
"módulo></code>”). Após ter carregado algum módulo capaz de usar a Web, o "
|
||||
"menu irá expandir-se."
|
||||
|
||||
#: znc.cpp:1554
|
||||
#: znc.cpp:1561
|
||||
msgid "User already exists"
|
||||
msgstr "O utilizador já existe"
|
||||
|
||||
#: znc.cpp:1662
|
||||
#: znc.cpp:1669
|
||||
msgid "IPv6 is not enabled"
|
||||
msgstr "O IPv6 não está ativado"
|
||||
|
||||
#: znc.cpp:1670
|
||||
#: znc.cpp:1677
|
||||
msgid "SSL is not enabled"
|
||||
msgstr "O SSL não está ativado"
|
||||
|
||||
#: znc.cpp:1678
|
||||
#: znc.cpp:1685
|
||||
msgid "Unable to locate pem file: {1}"
|
||||
msgstr "Não foi possível localizar o ficheiro pen: {1}"
|
||||
|
||||
#: znc.cpp:1697
|
||||
#: znc.cpp:1704
|
||||
msgid "Invalid port"
|
||||
msgstr "Porta inválida"
|
||||
|
||||
#: znc.cpp:1813 ClientCommand.cpp:1720
|
||||
#: znc.cpp:1820 ClientCommand.cpp:1720
|
||||
msgid "Unable to bind: {1}"
|
||||
msgstr "Não foi possível usar a porta: {1}"
|
||||
|
||||
@@ -83,107 +83,107 @@ msgstr "Não foi possível usar a porta: {1}"
|
||||
msgid "Jumping servers because this server is no longer in the list"
|
||||
msgstr "A saltar servidores porque este servidor já não está na lista"
|
||||
|
||||
#: IRCNetwork.cpp:671 User.cpp:690
|
||||
#: IRCNetwork.cpp:667 User.cpp:699
|
||||
msgid "Welcome to ZNC"
|
||||
msgstr "Bem-vindo(a) ao ZNC"
|
||||
|
||||
#: IRCNetwork.cpp:759
|
||||
#: IRCNetwork.cpp:755
|
||||
msgid "You are currently disconnected from IRC. Use 'connect' to reconnect."
|
||||
msgstr ""
|
||||
"Está desligado(a) atualmente do IRC. Utilize 'connect' para voltar a ligar."
|
||||
|
||||
#: IRCNetwork.cpp:789
|
||||
#: IRCNetwork.cpp:785
|
||||
msgid "This network is being deleted or moved to another user."
|
||||
msgstr "Esta rede está a ser eliminada ou movida para outro utilizador."
|
||||
|
||||
#: IRCNetwork.cpp:950
|
||||
#: IRCNetwork.cpp:946
|
||||
msgid "Invalid index"
|
||||
msgstr "Índice inválido"
|
||||
|
||||
#: IRCNetwork.cpp:958 IRCNetwork.cpp:974 IRCNetwork.cpp:982
|
||||
#: IRCNetwork.cpp:954 IRCNetwork.cpp:970 IRCNetwork.cpp:978
|
||||
#: ClientCommand.cpp:1425
|
||||
msgid "You are not on {1}"
|
||||
msgstr "Não está em {1}"
|
||||
|
||||
#: IRCNetwork.cpp:1061
|
||||
#: IRCNetwork.cpp:1057
|
||||
msgid "The channel {1} could not be joined, disabling it."
|
||||
msgstr "Não foi possível entrar no canal {1}, a desativá-lo."
|
||||
|
||||
#: IRCNetwork.cpp:1190
|
||||
#: IRCNetwork.cpp:1186
|
||||
msgid "Your current server was removed, jumping..."
|
||||
msgstr "O seu servidor atual foi removido, a saltar..."
|
||||
|
||||
#: IRCNetwork.cpp:1353
|
||||
#: IRCNetwork.cpp:1349
|
||||
msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
|
||||
msgstr ""
|
||||
"Não é possível ligar a {1}, porque o ZNC não está compilado com suporte para "
|
||||
"SSL."
|
||||
|
||||
#: IRCNetwork.cpp:1374
|
||||
#: IRCNetwork.cpp:1370
|
||||
msgid "Some module aborted the connection attempt"
|
||||
msgstr "Algum módulo abortou a tentativa de ligação"
|
||||
|
||||
#: IRCSock.cpp:492
|
||||
#: IRCSock.cpp:520
|
||||
msgid "Error from server: {1}"
|
||||
msgstr "Erro do servidor: {1}"
|
||||
|
||||
#: IRCSock.cpp:694
|
||||
#: IRCSock.cpp:722
|
||||
msgid "ZNC seems to be connected to itself, disconnecting..."
|
||||
msgstr "O ZNC parece que está a ligar-se a ele próprio, a desligar..."
|
||||
|
||||
#: IRCSock.cpp:741
|
||||
#: IRCSock.cpp:769
|
||||
msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
|
||||
msgstr "O servidor {1} redirecionou-nos para {2}:{3} com a razão: {4}"
|
||||
|
||||
#: IRCSock.cpp:745
|
||||
#: IRCSock.cpp:773
|
||||
msgid "Perhaps you want to add it as a new server."
|
||||
msgstr "Talvez queira adicioná-lo como novo servidor."
|
||||
|
||||
#: IRCSock.cpp:975
|
||||
#: IRCSock.cpp:1003
|
||||
msgid "Channel {1} is linked to another channel and was thus disabled."
|
||||
msgstr "O canal {1} está ligado a outro canal e por isso foi desativado."
|
||||
|
||||
#: IRCSock.cpp:987
|
||||
#: IRCSock.cpp:1015
|
||||
msgid "Switched to SSL (STARTTLS)"
|
||||
msgstr "A mudar para SSL (STARTTLS)"
|
||||
|
||||
#: IRCSock.cpp:1040
|
||||
#: IRCSock.cpp:1068
|
||||
msgid "You quit: {1}"
|
||||
msgstr "Saiu de: {1}"
|
||||
|
||||
#: IRCSock.cpp:1246
|
||||
#: IRCSock.cpp:1274
|
||||
msgid "Disconnected from IRC. Reconnecting..."
|
||||
msgstr "Desligado do IRC. A voltar a ligar..."
|
||||
|
||||
#: IRCSock.cpp:1277
|
||||
#: IRCSock.cpp:1305
|
||||
msgid "Cannot connect to IRC ({1}). Retrying..."
|
||||
msgstr "Não é possível ligar ao IRC ({1}). A voltar a tentar..."
|
||||
|
||||
#: IRCSock.cpp:1280
|
||||
#: IRCSock.cpp:1308
|
||||
msgid "Disconnected from IRC ({1}). Reconnecting..."
|
||||
msgstr "Desligado do IRC ({1}). A voltar a ligar..."
|
||||
|
||||
#: IRCSock.cpp:1316
|
||||
#: IRCSock.cpp:1344
|
||||
msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
|
||||
msgstr "Se confia neste certificado, faça /znc AddTrustedServerFingerprint {1}"
|
||||
|
||||
#: IRCSock.cpp:1325
|
||||
#: IRCSock.cpp:1353
|
||||
msgid "IRC connection timed out. Reconnecting..."
|
||||
msgstr "A ligação ao IRC expirou. A voltar a ligar..."
|
||||
|
||||
#: IRCSock.cpp:1337
|
||||
#: IRCSock.cpp:1365
|
||||
msgid "Connection Refused. Reconnecting..."
|
||||
msgstr "Ligação recusada. A voltar a ligar..."
|
||||
|
||||
#: IRCSock.cpp:1345
|
||||
#: IRCSock.cpp:1373
|
||||
msgid "Received a too long line from the IRC server!"
|
||||
msgstr "Foi recebida uma linha demasiado longa a partir do servidor de IRC!"
|
||||
|
||||
#: IRCSock.cpp:1449
|
||||
#: IRCSock.cpp:1487
|
||||
msgid "No free nick available"
|
||||
msgstr "Sem nick livre disponível"
|
||||
|
||||
#: IRCSock.cpp:1457
|
||||
#: IRCSock.cpp:1495
|
||||
msgid "No free nick found"
|
||||
msgstr "Nenhum nick livre encontrado"
|
||||
|
||||
@@ -191,17 +191,17 @@ msgstr "Nenhum nick livre encontrado"
|
||||
msgid "No such module {1}"
|
||||
msgstr "O módulo {1} não existe"
|
||||
|
||||
#: Client.cpp:359
|
||||
#: Client.cpp:394
|
||||
msgid "A client from {1} attempted to login as you, but was rejected: {2}"
|
||||
msgstr ""
|
||||
"Um cliente a partir de {1} tentou iniciar sessão como sendo você, mas foi "
|
||||
"rejeitado: {2}"
|
||||
|
||||
#: Client.cpp:394
|
||||
#: Client.cpp:429
|
||||
msgid "Network {1} doesn't exist."
|
||||
msgstr "A rede {1} não existe."
|
||||
|
||||
#: Client.cpp:408
|
||||
#: Client.cpp:443
|
||||
msgid ""
|
||||
"You have several networks configured, but no network was specified for the "
|
||||
"connection."
|
||||
@@ -209,7 +209,7 @@ msgstr ""
|
||||
"Tem muitas redes configuradas, mas nenhuma rede foi especificada para esta "
|
||||
"ligação."
|
||||
|
||||
#: Client.cpp:411
|
||||
#: Client.cpp:446
|
||||
msgid ""
|
||||
"Selecting network {1}. To see list of all configured networks, use /znc "
|
||||
"ListNetworks"
|
||||
@@ -217,7 +217,7 @@ msgstr ""
|
||||
"A selecionar a rede {1}. Para ver uma lista de todas as redes configuradas, "
|
||||
"utilize /znc ListNetworks"
|
||||
|
||||
#: Client.cpp:414
|
||||
#: Client.cpp:449
|
||||
msgid ""
|
||||
"If you want to choose another network, use /znc JumpNetwork <network>, or "
|
||||
"connect to ZNC with username {1}/<network> (instead of just {1})"
|
||||
@@ -225,105 +225,105 @@ msgstr ""
|
||||
"Se pretende escolher outra rede, utilize /znc JumpNetwork <rede>, ou ligue-"
|
||||
"se ao ZNC com nome-do-utilizador {1}/<rede> (em vez de só {1})"
|
||||
|
||||
#: Client.cpp:420
|
||||
#: Client.cpp:455
|
||||
msgid ""
|
||||
"You have no networks configured. Use /znc AddNetwork <network> to add one."
|
||||
msgstr ""
|
||||
"Não tem redes configuradas. Utilize /znc AddNetwork <rede> para adicionar "
|
||||
"uma."
|
||||
|
||||
#: Client.cpp:431
|
||||
#: Client.cpp:466
|
||||
msgid "Closing link: Timeout"
|
||||
msgstr "A fechar a ligação: O tempo expirou"
|
||||
|
||||
#: Client.cpp:453
|
||||
#: Client.cpp:488
|
||||
msgid "Closing link: Too long raw line"
|
||||
msgstr "A fechar a ligação: Linha raw demasiado longa"
|
||||
|
||||
#: Client.cpp:460
|
||||
#: Client.cpp:495
|
||||
msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
"Está a ser desligado porque outro utilizador autenticou-se agora como você."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1100
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "O seu CTCP para {1} foi perdido, não está ligado ao IRC!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1226
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "O seu notice para {1} foi perdido, não está ligado ao IRC!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1265
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "A remover o canal {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1343
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "A sua mensagem para {1} foi perdida, não está ligado ao IRC!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1396 Client.cpp:1402
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Olá. Como posso ajudá-lo(a)?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1416
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Utilização: /attach <#canais>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1423 Client.cpp:1445 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
msgstr[0] "Há {1} canal a coincidir com [{2}]"
|
||||
msgstr[1] "Há {1} canais a coincidir com [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1426 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "{1} canal unido"
|
||||
msgstr[1] "{1} canais unidos"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1438
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Utilização: /detach <#canais>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1448 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "{1} canal desunido"
|
||||
msgstr[1] "{1} canais desunidos"
|
||||
|
||||
#: Chan.cpp:678
|
||||
#: Chan.cpp:680
|
||||
msgid "Buffer Playback..."
|
||||
msgstr "Reprodução do buffer..."
|
||||
|
||||
#: Chan.cpp:716
|
||||
#: Chan.cpp:718
|
||||
msgid "Playback Complete."
|
||||
msgstr "Reprodução Concluída."
|
||||
|
||||
#: Modules.cpp:528
|
||||
#: Modules.cpp:554
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "<search>"
|
||||
msgstr "<pesquisa>"
|
||||
|
||||
#: Modules.cpp:529
|
||||
#: Modules.cpp:555
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Generate this output"
|
||||
msgstr "Gera este output"
|
||||
|
||||
#: Modules.cpp:573 ClientCommand.cpp:1992
|
||||
#: Modules.cpp:599 ClientCommand.cpp:1992
|
||||
msgid "No matches for '{1}'"
|
||||
msgstr "Não há correspondências para '{1}'"
|
||||
|
||||
#: Modules.cpp:691
|
||||
#: Modules.cpp:734
|
||||
msgid "This module doesn't implement any commands."
|
||||
msgstr "Este módulo não implementa quaisquer comandos."
|
||||
|
||||
#: Modules.cpp:693
|
||||
#: Modules.cpp:736
|
||||
msgid "Unknown command!"
|
||||
msgstr "Comando desconhecido!"
|
||||
|
||||
#: Modules.cpp:1633
|
||||
#: Modules.cpp:1786
|
||||
msgid ""
|
||||
"Module names can only contain letters, numbers and underscores, [{1}] is "
|
||||
"invalid"
|
||||
@@ -331,71 +331,71 @@ msgstr ""
|
||||
"Os nomes dos módulos só podem conter letras, números e underscores. [{1}] é "
|
||||
"inválido"
|
||||
|
||||
#: Modules.cpp:1652
|
||||
#: Modules.cpp:1805
|
||||
msgid "Module {1} already loaded."
|
||||
msgstr "O módulo {1} já está carregado."
|
||||
|
||||
#: Modules.cpp:1666
|
||||
#: Modules.cpp:1819
|
||||
msgid "Unable to find module {1}"
|
||||
msgstr "Não foi possível localizar o módulo {1}"
|
||||
|
||||
#: Modules.cpp:1678
|
||||
#: Modules.cpp:1831
|
||||
msgid "Module {1} does not support module type {2}."
|
||||
msgstr "O módulo {1} não suporta o tipo de módulo {2}."
|
||||
|
||||
#: Modules.cpp:1685
|
||||
#: Modules.cpp:1838
|
||||
msgid "Module {1} requires a user."
|
||||
msgstr "O módulo {1} requer um utilizador."
|
||||
|
||||
#: Modules.cpp:1691
|
||||
#: Modules.cpp:1844
|
||||
msgid "Module {1} requires a network."
|
||||
msgstr "O módulo {1} requer uma rede."
|
||||
|
||||
#: Modules.cpp:1707
|
||||
#: Modules.cpp:1860
|
||||
msgid "Caught an exception"
|
||||
msgstr "Apanhada uma exceção"
|
||||
|
||||
#: Modules.cpp:1713
|
||||
#: Modules.cpp:1866
|
||||
msgid "Module {1} aborted: {2}"
|
||||
msgstr "O módulo {1} abortou: {2}"
|
||||
|
||||
#: Modules.cpp:1715
|
||||
#: Modules.cpp:1868
|
||||
msgid "Module {1} aborted."
|
||||
msgstr "O módulo {1} abortou."
|
||||
|
||||
#: Modules.cpp:1739 Modules.cpp:1781
|
||||
#: Modules.cpp:1892 Modules.cpp:1934
|
||||
msgid "Module [{1}] not loaded."
|
||||
msgstr "Módulo [{1}] não carregado."
|
||||
|
||||
#: Modules.cpp:1763
|
||||
#: Modules.cpp:1916
|
||||
msgid "Module {1} unloaded."
|
||||
msgstr "Módulo {1} descarregado."
|
||||
|
||||
#: Modules.cpp:1768
|
||||
#: Modules.cpp:1921
|
||||
msgid "Unable to unload module {1}."
|
||||
msgstr "Não é possível descarregar o módulo {1}."
|
||||
|
||||
#: Modules.cpp:1797
|
||||
#: Modules.cpp:1950
|
||||
msgid "Reloaded module {1}."
|
||||
msgstr "Foi recarregado o módulo {1}."
|
||||
|
||||
#: Modules.cpp:1816
|
||||
#: Modules.cpp:1969
|
||||
msgid "Unable to find module {1}."
|
||||
msgstr "Não foi possível encontrar o módulo {1}."
|
||||
|
||||
#: Modules.cpp:1963
|
||||
#: Modules.cpp:2117
|
||||
msgid "Unknown error"
|
||||
msgstr "Erro desconhecido"
|
||||
|
||||
#: Modules.cpp:1964
|
||||
#: Modules.cpp:2118
|
||||
msgid "Unable to open module {1}: {2}"
|
||||
msgstr "Não foi possível abrir o módulo {1}: {2}"
|
||||
|
||||
#: Modules.cpp:1973
|
||||
#: Modules.cpp:2127
|
||||
msgid "Could not find ZNCModuleEntry in module {1}"
|
||||
msgstr "Não foi possível encontrar ZNCModuleEntry no módulo {1}"
|
||||
|
||||
#: Modules.cpp:1981
|
||||
#: Modules.cpp:2135
|
||||
msgid ""
|
||||
"Version mismatch for module {1}: core is {2}, module is built for {3}. "
|
||||
"Recompile this module."
|
||||
@@ -403,7 +403,7 @@ msgstr ""
|
||||
"A versão não coincide para o módulo {1}: core is {2}, o módulo foi compilado "
|
||||
"para {3}. Recompile este módulo."
|
||||
|
||||
#: Modules.cpp:1992
|
||||
#: Modules.cpp:2146
|
||||
msgid ""
|
||||
"Module {1} is built incompatibly: core is '{2}', module is '{3}'. Recompile "
|
||||
"this module."
|
||||
@@ -411,12 +411,12 @@ msgstr ""
|
||||
"Módulo {1} foi compilado incompativelmente: core é '{2}', módulo é '{3}'. "
|
||||
"Recompile este módulo."
|
||||
|
||||
#: Modules.cpp:2023 Modules.cpp:2029
|
||||
#: Modules.cpp:2177 Modules.cpp:2183
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Command"
|
||||
msgstr "Comando"
|
||||
|
||||
#: Modules.cpp:2024 Modules.cpp:2031
|
||||
#: Modules.cpp:2178 Modules.cpp:2185
|
||||
msgctxt "modhelpcmd"
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
@@ -1968,7 +1968,7 @@ msgstr "hostname mal-formado no certificado"
|
||||
msgid "hostname verification error"
|
||||
msgstr "erro de verificação do hostname"
|
||||
|
||||
#: User.cpp:519
|
||||
#: User.cpp:528
|
||||
msgid ""
|
||||
"Invalid network name. It should be alphanumeric. Not to be confused with "
|
||||
"server name"
|
||||
@@ -1976,11 +1976,11 @@ msgstr ""
|
||||
"Nome da rede inválido. Devia ser alfa-numérico. Não é para confundir com "
|
||||
"nome de servidor"
|
||||
|
||||
#: User.cpp:523
|
||||
#: User.cpp:532
|
||||
msgid "Network {1} already exists"
|
||||
msgstr "A rede {1} já existe"
|
||||
|
||||
#: User.cpp:789
|
||||
#: User.cpp:798
|
||||
msgid ""
|
||||
"You are being disconnected because your IP is no longer allowed to connect "
|
||||
"to this user"
|
||||
@@ -1988,18 +1988,18 @@ msgstr ""
|
||||
"Está a ser desligado(a) porque o seu IP já não é permitido para ligar a este "
|
||||
"utilizador"
|
||||
|
||||
#: User.cpp:929
|
||||
#: User.cpp:938
|
||||
msgid "Password is empty"
|
||||
msgstr "A palavra-passe está vazia"
|
||||
|
||||
#: User.cpp:934
|
||||
#: User.cpp:943
|
||||
msgid "Username is empty"
|
||||
msgstr "O nome do utilizador está vazio"
|
||||
|
||||
#: User.cpp:939
|
||||
#: User.cpp:948
|
||||
msgid "Username is invalid"
|
||||
msgstr "O nome do utilizador é inválido"
|
||||
|
||||
#: User.cpp:1214
|
||||
#: User.cpp:1249
|
||||
msgid "Unable to find modinfo {1}: {2}"
|
||||
msgstr "Não é possível localizar modinfo {1}: {2}"
|
||||
|
||||
+10
-10
@@ -243,31 +243,31 @@ msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1026
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1152
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1191
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Eliminare canal {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1269
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr ""
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1322 Client.cpp:1328
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Salut. Cu ce te pot ajuta?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1342
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Utilizează: /attach <#canale>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1349 Client.cpp:1371 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
@@ -275,18 +275,18 @@ msgstr[0] "A existat {1} canal care se potrivește cu [{2}]"
|
||||
msgstr[1] ""
|
||||
msgstr[2] "Au existat {1} canale care se potrivesc cu [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1352 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Am atașat {1} canal"
|
||||
msgstr[1] ""
|
||||
msgstr[2] "Am atașat {1} canale"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1364
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Utilizează: /detach <#canale>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1374 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Detașează {1} canal"
|
||||
|
||||
+10
-10
@@ -243,31 +243,31 @@ msgid ""
|
||||
"You are being disconnected because another user just authenticated as you."
|
||||
msgstr "Другой пользователь зашёл под вашим именем, отключаем."
|
||||
|
||||
#: Client.cpp:1022
|
||||
#: Client.cpp:1026
|
||||
msgid "Your CTCP to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Вы не подключены к IRC, ваш CTCP-запрос к {1} утерян!"
|
||||
|
||||
#: Client.cpp:1148
|
||||
#: Client.cpp:1152
|
||||
msgid "Your notice to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Вы не подключены к IRC, ваше сообщение к {1} утеряно!"
|
||||
|
||||
#: Client.cpp:1187
|
||||
#: Client.cpp:1191
|
||||
msgid "Removing channel {1}"
|
||||
msgstr "Убираю канал {1}"
|
||||
|
||||
#: Client.cpp:1265
|
||||
#: Client.cpp:1269
|
||||
msgid "Your message to {1} got lost, you are not connected to IRC!"
|
||||
msgstr "Вы не подключены к IRC, ваше сообщение к {1} утеряно!"
|
||||
|
||||
#: Client.cpp:1318 Client.cpp:1324
|
||||
#: Client.cpp:1322 Client.cpp:1328
|
||||
msgid "Hello. How may I help you?"
|
||||
msgstr "Привет, чем могу быть вам полезен?"
|
||||
|
||||
#: Client.cpp:1338
|
||||
#: Client.cpp:1342
|
||||
msgid "Usage: /attach <#chans>"
|
||||
msgstr "Использование: /attach <#каналы>"
|
||||
|
||||
#: Client.cpp:1345 Client.cpp:1367 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: Client.cpp:1349 Client.cpp:1371 ClientCommand.cpp:129 ClientCommand.cpp:151
|
||||
#: ClientCommand.cpp:423 ClientCommand.cpp:450
|
||||
msgid "There was {1} channel matching [{2}]"
|
||||
msgid_plural "There were {1} channels matching [{2}]"
|
||||
@@ -276,7 +276,7 @@ msgstr[1] "{1} канала подходят под маску [{2}]"
|
||||
msgstr[2] "{1} каналов подходят под маску [{2}]"
|
||||
msgstr[3] "{1} каналов подходят под маску [{2}]"
|
||||
|
||||
#: Client.cpp:1348 ClientCommand.cpp:132
|
||||
#: Client.cpp:1352 ClientCommand.cpp:132
|
||||
msgid "Attached {1} channel"
|
||||
msgid_plural "Attached {1} channels"
|
||||
msgstr[0] "Прицепляю {1} канал"
|
||||
@@ -284,11 +284,11 @@ msgstr[1] "Прицепляю {1} канала"
|
||||
msgstr[2] "Прицепляю {1} каналов"
|
||||
msgstr[3] "Прицепляю {1} каналов"
|
||||
|
||||
#: Client.cpp:1360
|
||||
#: Client.cpp:1364
|
||||
msgid "Usage: /detach <#chans>"
|
||||
msgstr "Использование: /detach <#каналы>"
|
||||
|
||||
#: Client.cpp:1370 ClientCommand.cpp:154
|
||||
#: Client.cpp:1374 ClientCommand.cpp:154
|
||||
msgid "Detached {1} channel"
|
||||
msgid_plural "Detached {1} channels"
|
||||
msgstr[0] "Отцепляю {1} канал"
|
||||
|
||||
+1998
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
+17
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2023 ZNC, see the NOTICE file for details.
|
||||
* Copyright (C) 2004-2025 ZNC, see the NOTICE file for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -734,10 +734,8 @@ bool CZNC::WriteNewConfig(const CString& sConfigFile) {
|
||||
} while (!CUser::IsValidUsername(sUser));
|
||||
|
||||
vsLines.push_back("<User " + sUser + ">");
|
||||
CString sSalt;
|
||||
sAnswer = CUtils::GetSaltedHashPass(sSalt);
|
||||
vsLines.push_back("\tPass = " + CUtils::sDefaultHash + "#" + sAnswer +
|
||||
"#" + sSalt + "#");
|
||||
sAnswer = CUtils::AskSaltedHashPassForConfig();
|
||||
vsLines.push_back(sAnswer);
|
||||
|
||||
vsLines.push_back("\tAdmin = true");
|
||||
|
||||
@@ -1052,6 +1050,7 @@ bool CZNC::ReadConfig(CConfig& config, CString& sError) {
|
||||
// create a backup file if necessary
|
||||
CString sSavedVersion;
|
||||
config.FindStringEntry("version", sSavedVersion);
|
||||
config.AddKeyValuePair("version", sSavedVersion);
|
||||
if (sSavedVersion.empty()) {
|
||||
CUtils::PrintError(
|
||||
"Config does not contain a version identifier. It may be be too "
|
||||
@@ -1094,20 +1093,28 @@ bool CZNC::RehashConfig(CString& sError) {
|
||||
bool CZNC::LoadGlobal(CConfig& config, CString& sError) {
|
||||
sError.clear();
|
||||
|
||||
CString sSavedVersion;
|
||||
config.FindStringEntry("version", sSavedVersion);
|
||||
tuple<unsigned int, unsigned int> tSavedVersion =
|
||||
make_tuple(sSavedVersion.Token(0, false, ".").ToUInt(),
|
||||
sSavedVersion.Token(1, false, ".").ToUInt());
|
||||
|
||||
MCString msModules; // Modules are queued for later loading
|
||||
|
||||
VCString vsList;
|
||||
config.FindStringVector("loadmodule", vsList);
|
||||
|
||||
// Automatically load corecaps if config was upgraded from old version, but
|
||||
// don't force it if user explicitly unloaded it
|
||||
if (tSavedVersion < make_tuple(1, 9)) {
|
||||
vsList.push_back("corecaps");
|
||||
}
|
||||
|
||||
for (const CString& sModLine : vsList) {
|
||||
CString sModName = sModLine.Token(0);
|
||||
CString sArgs = sModLine.Token(1, true);
|
||||
|
||||
// compatibility for pre-1.0 configs
|
||||
CString sSavedVersion;
|
||||
config.FindStringEntry("version", sSavedVersion);
|
||||
tuple<unsigned int, unsigned int> tSavedVersion =
|
||||
make_tuple(sSavedVersion.Token(0, false, ".").ToUInt(),
|
||||
sSavedVersion.Token(1, false, ".").ToUInt());
|
||||
if (sModName == "saslauth" && tSavedVersion < make_tuple(0, 207)) {
|
||||
CUtils::PrintMessage(
|
||||
"saslauth module was renamed to cyrusauth. Loading cyrusauth "
|
||||
|
||||
Reference in New Issue
Block a user