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:
Alexey Sokolov
2025-02-13 20:37:32 +00:00
381 changed files with 12248 additions and 4121 deletions
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -55,27 +55,27 @@ msgstr ""
"loadmod &lt;module&gt;</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
View File
@@ -54,27 +54,27 @@ msgstr ""
"status help </code>\" dan \"<code>/msg * status loadmod &lt;module&gt;</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
View File
@@ -55,27 +55,27 @@ msgstr ""
"loadmod &lt;nome del modulo&gt;</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
View File
@@ -54,27 +54,27 @@ msgstr ""
"msg *status help</code>” en “<code>/msg *status loadmod &lt;module&gt;</"
"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
View File
@@ -56,27 +56,27 @@ msgstr ""
"msg *status help</code>” i “<code>/msg *status loadmod &lt;moduł&gt;</"
"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
View File
@@ -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
View File
@@ -55,27 +55,27 @@ msgstr ""
"module&gt;</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
View File
@@ -55,27 +55,27 @@ msgstr ""
"módulo&gt;</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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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
View File
@@ -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 "