diff --git a/modules/po/q.de_DE.po b/modules/po/q.de_DE.po deleted file mode 100644 index 2c8a6e45..00000000 --- a/modules/po/q.de_DE.po +++ /dev/null @@ -1,296 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: de\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: German\n" -"Language: de_DE\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "" - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "" - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "" - -#: q.cpp:135 -msgid "Set " -msgstr "" - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "" - -#: q.cpp:158 -msgid "Your Q password." -msgstr "" - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "" - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "" - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "" - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "" - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "" - -#: q.cpp:203 -msgid "Username set" -msgstr "" - -#: q.cpp:206 -msgid "Password set" -msgstr "" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "" - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "" - -#: q.cpp:280 -msgid "Update requested." -msgstr "" - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "" - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "" - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "" - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "" - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "" - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "" - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "" - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "" diff --git a/modules/po/q.es_ES.po b/modules/po/q.es_ES.po deleted file mode 100644 index 2a29acb8..00000000 --- a/modules/po/q.es_ES.po +++ /dev/null @@ -1,305 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: es-ES\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: Spanish\n" -"Language: es_ES\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "Usuario:" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "Introduce un nombre de usuario." - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "Contraseña:" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "Introduce una contraseña." - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "Opciones" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "Guardar" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" -"Aviso: tu host será enmascarado la próxima vez que conectes al IRC. Si " -"quieres enmascarar tu host ahora, /msg *q Cloak. Puedes configurar tu " -"preferencia con /msg *q SET UseCloakedHost true/false." - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "Los siguientes comandos están disponibles:" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "Comando" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "Descripción" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "Auth [ ]" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "Intenta autenticarte con Q. Ambos parámetros son opcionales." - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "Intenta ponerte el modo de usuario +x para ocultar tu host real." - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "Muestra el estado actual del módulo." - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "Re-solicita la información actual del usuario desde Q." - -#: q.cpp:135 -msgid "Set " -msgstr "Set " - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "Cambia el valor del ajuste. Consulta la lista de ajustes debajo." - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "Muestra la configuración actual. Consulta la lista de ajustes debajo." - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "Las siguientes opciones están disponibles:" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "Ajuste" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "Tipo" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "Cadena" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "Tu usuario de Q." - -#: q.cpp:158 -msgid "Your Q password." -msgstr "Tu contraseña de Q." - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "Booleano" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "Intentar ocultar tu host (+x) al conectar." - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" -"Intentar usar el mecanismo CHALLENGEAUTH para evitar enviar la contraseña en " -"texto plano." - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "Pedir voz/op a Q al entrar/devoice/deop a/de un canal." - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "Entrar a los canales cuando Q te invite." - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "Retrasar la entrada a canales hasta que tu host haya sido ocultado." - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "Este módulo tiene 2 parámetros opcionales: " - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "Los ajustes del módulo se guardan entre reinicios." - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "Sintaxis: Set " - -#: q.cpp:203 -msgid "Username set" -msgstr "Usuario guardado" - -#: q.cpp:206 -msgid "Password set" -msgstr "Contraseña guardada" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "UseCloakedHost guardado" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "UseChallenge guardado" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "RequestPerms guardado" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "JoinOnInvite guardado" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "JoinAfterCloaked guardado" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "Opción desconocida: {1}" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "Valor" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "Conectado: sí" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "Conectado: no" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "Enmascarado: sí" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "Enmascarado: no" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "Autenticado: sí" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "Autenticado: no" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "Error: no estás conectado al IRC." - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "Error: ya estás enmascarado!" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "Error: ya estás autenticado!" - -#: q.cpp:280 -msgid "Update requested." -msgstr "Actualización solicitada." - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "Comando desconocido. Escribe 'Help'." - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "Ocultación correcta: ahora tu host está enmascarado." - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "Tus cambios han sido guardados" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "Cloak: intentando ocultar tu host, poniendo +x..." - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" -"Tienes que configurar un nombre de usuario y una contraseña para usar este " -"módulo. Escribe 'help' para ver más detalles." - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "Auth: solicitando CHALLENGE..." - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "Auth: enviando respuesta AUTH..." - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "Auth: reto recibido, enviando petición CHALLENGEAUTH..." - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "Fallo de autenticación: {1}" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "Autenticación correcta: {1}" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" -"Fallo en autenticación: Q no soporta HMAC-SHA-256 en CHALLENGEAUTH, " -"intentando autenticación estándar." - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "RequestPerms: pidiendo op en {1}" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "RequestPerms: pidiendo voz en {1}" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "Introduce tu nombre de usuario y contraseña de Q." - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "Te identifica con el bot Q de Quakenet." diff --git a/modules/po/q.fr_FR.po b/modules/po/q.fr_FR.po deleted file mode 100644 index 2cdfc290..00000000 --- a/modules/po/q.fr_FR.po +++ /dev/null @@ -1,296 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: fr\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: French\n" -"Language: fr_FR\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "" - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "" - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "" - -#: q.cpp:135 -msgid "Set " -msgstr "" - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "" - -#: q.cpp:158 -msgid "Your Q password." -msgstr "" - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "" - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "" - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "" - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "" - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "" - -#: q.cpp:203 -msgid "Username set" -msgstr "" - -#: q.cpp:206 -msgid "Password set" -msgstr "" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "" - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "" - -#: q.cpp:280 -msgid "Update requested." -msgstr "" - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "" - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "" - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "" - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "" - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "" - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "" - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "" - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "" diff --git a/modules/po/q.id_ID.po b/modules/po/q.id_ID.po deleted file mode 100644 index f024149d..00000000 --- a/modules/po/q.id_ID.po +++ /dev/null @@ -1,300 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: id\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: Indonesian\n" -"Language: id_ID\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "Nama pengguna:" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "Silahkan masukan nama pengguna." - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "Kata Sandi:" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "Silakan masukkan sandi." - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "Opsi" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "Simpan" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "Perintah berikut tersedia:" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "Perintah" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "Deskripsi" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "Auth [ ]" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "" -"Mencoba untuk mengautentikasi anda dengan Q. Kedua parameter bersifat " -"opsional." - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" -"Mencoba untuk menetapkan usermode +x untuk menyembunyikan nama host anda " -"yang sebenarnya." - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "Mencetak status modul saat ini." - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "Minta ulang informasi pengguna saat ini dari Q." - -#: q.cpp:135 -msgid "Set " -msgstr "Set " - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "Setelan" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "Tipe" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "String" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "" - -#: q.cpp:158 -msgid "Your Q password." -msgstr "" - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "" - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "" - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "" - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "" - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "" - -#: q.cpp:203 -msgid "Username set" -msgstr "" - -#: q.cpp:206 -msgid "Password set" -msgstr "" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "" - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "" - -#: q.cpp:280 -msgid "Update requested." -msgstr "" - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "" - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "" - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "" - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "" - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "" - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "" - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "" - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "" diff --git a/modules/po/q.nl_NL.po b/modules/po/q.nl_NL.po deleted file mode 100644 index 2158a61c..00000000 --- a/modules/po/q.nl_NL.po +++ /dev/null @@ -1,313 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: nl\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: Dutch\n" -"Language: nl_NL\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "Gebruikersnaam:" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "Voer alsjeblieft een gebruikersnaam in." - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "Wachtwoord:" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "Voer alsjeblieft een wachtwoord in." - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "Opties" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "Opslaan" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" -"Melding: Je host zal omhuld worden de volgende keer dat je met IRC verbind. " -"Als je dit nu wilt doen, doe dan: /msg *q Cloak. Je kan je voorkeur " -"instellen met /msg *q Set UseCloakedHost true/false." - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "De volgende commando's zijn beschikbaar:" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "Commando" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "Beschrijving" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "Auth [ ]" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "Probeert je te authenticeren met Q, beide parameters zijn optioneel." - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" -"Probeert gebruikersmodus +x in te stellen om je echte hostname te verbergen." - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "Toont de huidige status van de module." - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "Vraagt de huidige gebruikersinformatie opnieuw aan bij Q." - -#: q.cpp:135 -msgid "Set " -msgstr "Set " - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" -"Past de waarde aan van de gegeven instelling. Zie de lijst van instellingen " -"hier onder." - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" -"Toont de huidige configuratie. Zie de onderstaande lijst van instellingen." - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "De volgende instellingen zijn beschikbaar:" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "Instelling" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "Type" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "Tekenreeks" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "Jouw Q gebruikersnaam." - -#: q.cpp:158 -msgid "Your Q password." -msgstr "Jouw Q wachtwoord." - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "Boolen (waar/onwaar)" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "Je hostname automatisch omhullen (+x) wanneer er verbonden is." - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" -"Of CHALLENGEAUTH mechanisme gebruikt moet worden om te voorkomen dat je " -"wachtwoord onversleuteld verstuurd word." - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" -"Of je automatisch stem/beheerdersrechten van Q wilt aanvragen als je " -"toetreed/stem kwijt raakt/beheerdersrechten kwijt raakt." - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "Automatisch kanalen toetreden waar Q je voor uitnodigd." - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "Wachten met het toetreden van kanalen totdat je host omhuld is." - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" -"Deze module accepteerd twee optionele parameters: " -"" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "Module instellingen worden opgeslagen tussen herstarts." - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "Syntax: Set " - -#: q.cpp:203 -msgid "Username set" -msgstr "Gebruikersnaam ingesteld" - -#: q.cpp:206 -msgid "Password set" -msgstr "Wachtwoord ingesteld" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "UseCloakedHost ingesteld" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "UseChallenge ingesteld" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "RequestPerms ingesteld" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "JoinOnInvite ingesteld" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "JoinAfterCloaked ingesteld" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "Onbekende instelling: {1}" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "Waarde" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "Verbonden: ja" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "Verbonden: nee" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "Host omhuld: ja" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "Host omhuld: nee" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "Geauthenticeerd: ja" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "Geauthenticeerd: nee" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "Fout: Je bent niet verbonden met IRC." - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "Fout: Je bent al omhuld!" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "Fout: Je bent al geauthenticeerd!" - -#: q.cpp:280 -msgid "Update requested." -msgstr "Update aangevraagd." - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "Onbekend commando. Probeer 'help'." - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "Omhulling succesvol: Je host is nu omhuld." - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "Wijzigingen zijn opgeslagen!" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "Omhulling: Proberen je host te omhullen, +x aan het instellen..." - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" -"Je moet een gebruikersnaam en wachtwoord instellen om deze module te " -"gebruiken! Zie 'help' voor details." - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "Auth: CHALLENGE aanvragen..." - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "Auth: AUTH aanvraag aan het versturen..." - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "Auth: Uitdaging ontvangen, nu CHALLENGEAUTH aanvraag sturen..." - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "Authenticatie mislukt: {1}" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "Authenticatie gelukt: {1}" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" -"Auth mislukt: Q ondersteund geen HMAC-SHA-256 voor CHALLENGEAUTH, " -"terugvallen naar standaard AUTH." - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "RequestPerms: Beheerdersrechten aanvragen in {1}" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "RequestPerms: Stem aanvragen in {1}" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "Voer alsjeblieft je gebruikersnaam en wachtwoord in voor Q." - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "Authenticeert je met QuakeNet's Q bot." diff --git a/modules/po/q.pot b/modules/po/q.pot deleted file mode 100644 index c419b7c6..00000000 --- a/modules/po/q.pot +++ /dev/null @@ -1,287 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "" - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "" - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "" - -#: q.cpp:135 -msgid "Set " -msgstr "" - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "" - -#: q.cpp:158 -msgid "Your Q password." -msgstr "" - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "" - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "" - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "" - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "" - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "" - -#: q.cpp:203 -msgid "Username set" -msgstr "" - -#: q.cpp:206 -msgid "Password set" -msgstr "" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "" - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "" - -#: q.cpp:280 -msgid "Update requested." -msgstr "" - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "" - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "" - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "" - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "" - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "" - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "" - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "" - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "" diff --git a/modules/po/q.pt_BR.po b/modules/po/q.pt_BR.po deleted file mode 100644 index 783e2ca3..00000000 --- a/modules/po/q.pt_BR.po +++ /dev/null @@ -1,296 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: pt-BR\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: Portuguese, Brazilian\n" -"Language: pt_BR\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "" - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "" - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "" - -#: q.cpp:135 -msgid "Set " -msgstr "" - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "" - -#: q.cpp:158 -msgid "Your Q password." -msgstr "" - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "" - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "" - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "" - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "" - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "" - -#: q.cpp:203 -msgid "Username set" -msgstr "" - -#: q.cpp:206 -msgid "Password set" -msgstr "" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "" - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "" - -#: q.cpp:280 -msgid "Update requested." -msgstr "" - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "" - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "" - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "" - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "" - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "" - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "" - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "" - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "" diff --git a/modules/po/q.ru_RU.po b/modules/po/q.ru_RU.po deleted file mode 100644 index cf34a8db..00000000 --- a/modules/po/q.ru_RU.po +++ /dev/null @@ -1,298 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 " -"&& n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 " -"&& n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" -"X-Generator: crowdin.com\n" -"X-Crowdin-Project: znc-bouncer\n" -"X-Crowdin-Language: ru\n" -"X-Crowdin-File: /master/modules/po/q.pot\n" -"Project-Id-Version: znc-bouncer\n" -"Last-Translator: DarthGandalf \n" -"Language-Team: Russian\n" -"Language: ru_RU\n" - -#: modules/po/../data/q/tmpl/index.tmpl:11 -msgid "Username:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:13 -msgid "Please enter a username." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:16 -msgid "Password:" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:18 -msgid "Please enter a password." -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:26 -msgid "Options" -msgstr "" - -#: modules/po/../data/q/tmpl/index.tmpl:42 -msgid "Save" -msgstr "" - -#: q.cpp:74 -msgid "" -"Notice: Your host will be cloaked the next time you reconnect to IRC. If you " -"want to cloak your host now, /msg *q Cloak. You can set your preference " -"with /msg *q Set UseCloakedHost true/false." -msgstr "" - -#: q.cpp:111 -msgid "The following commands are available:" -msgstr "" - -#: q.cpp:113 q.cpp:116 q.cpp:121 q.cpp:126 q.cpp:130 q.cpp:135 q.cpp:140 -msgid "Command" -msgstr "" - -#: q.cpp:114 q.cpp:117 q.cpp:123 q.cpp:127 q.cpp:132 q.cpp:136 q.cpp:141 -#: q.cpp:150 q.cpp:154 q.cpp:158 q.cpp:162 q.cpp:168 q.cpp:174 q.cpp:180 -#: q.cpp:186 -msgid "Description" -msgstr "" - -#: q.cpp:116 -msgid "Auth [ ]" -msgstr "" - -#: q.cpp:118 -msgid "Tries to authenticate you with Q. Both parameters are optional." -msgstr "" - -#: q.cpp:124 -msgid "Tries to set usermode +x to hide your real hostname." -msgstr "" - -#: q.cpp:128 -msgid "Prints the current status of the module." -msgstr "" - -#: q.cpp:133 -msgid "Re-requests the current user information from Q." -msgstr "" - -#: q.cpp:135 -msgid "Set " -msgstr "" - -#: q.cpp:137 -msgid "Changes the value of the given setting. See the list of settings below." -msgstr "" - -#: q.cpp:142 -msgid "Prints out the current configuration. See the list of settings below." -msgstr "" - -#: q.cpp:146 -msgid "The following settings are available:" -msgstr "" - -#: q.cpp:148 q.cpp:152 q.cpp:156 q.cpp:160 q.cpp:166 q.cpp:172 q.cpp:178 -#: q.cpp:183 q.cpp:227 q.cpp:230 q.cpp:233 q.cpp:236 q.cpp:239 q.cpp:242 -#: q.cpp:245 q.cpp:248 -msgid "Setting" -msgstr "" - -#: q.cpp:149 q.cpp:153 q.cpp:157 q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 -#: q.cpp:184 -msgid "Type" -msgstr "" - -#: q.cpp:153 q.cpp:157 -msgid "String" -msgstr "" - -#: q.cpp:154 -msgid "Your Q username." -msgstr "" - -#: q.cpp:158 -msgid "Your Q password." -msgstr "" - -#: q.cpp:161 q.cpp:167 q.cpp:173 q.cpp:179 q.cpp:184 -msgid "Boolean" -msgstr "" - -#: q.cpp:163 q.cpp:373 -msgid "Whether to cloak your hostname (+x) automatically on connect." -msgstr "" - -#: q.cpp:169 q.cpp:381 -msgid "" -"Whether to use the CHALLENGEAUTH mechanism to avoid sending passwords in " -"cleartext." -msgstr "" - -#: q.cpp:175 q.cpp:389 -msgid "Whether to request voice/op from Q on join/devoice/deop." -msgstr "" - -#: q.cpp:181 q.cpp:395 -msgid "Whether to join channels when Q invites you." -msgstr "" - -#: q.cpp:187 q.cpp:402 -msgid "Whether to delay joining channels until after you are cloaked." -msgstr "" - -#: q.cpp:192 -msgid "This module takes 2 optional parameters: " -msgstr "" - -#: q.cpp:194 -msgid "Module settings are stored between restarts." -msgstr "" - -#: q.cpp:200 -msgid "Syntax: Set " -msgstr "" - -#: q.cpp:203 -msgid "Username set" -msgstr "" - -#: q.cpp:206 -msgid "Password set" -msgstr "" - -#: q.cpp:209 -msgid "UseCloakedHost set" -msgstr "" - -#: q.cpp:212 -msgid "UseChallenge set" -msgstr "" - -#: q.cpp:215 -msgid "RequestPerms set" -msgstr "" - -#: q.cpp:218 -msgid "JoinOnInvite set" -msgstr "" - -#: q.cpp:221 -msgid "JoinAfterCloaked set" -msgstr "" - -#: q.cpp:223 -msgid "Unknown setting: {1}" -msgstr "" - -#: q.cpp:228 q.cpp:231 q.cpp:234 q.cpp:237 q.cpp:240 q.cpp:243 q.cpp:246 -#: q.cpp:249 -msgid "Value" -msgstr "" - -#: q.cpp:253 -msgid "Connected: yes" -msgstr "" - -#: q.cpp:254 -msgid "Connected: no" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: yes" -msgstr "" - -#: q.cpp:255 -msgid "Cloacked: no" -msgstr "" - -#: q.cpp:256 -msgid "Authenticated: yes" -msgstr "" - -#: q.cpp:257 -msgid "Authenticated: no" -msgstr "" - -#: q.cpp:262 -msgid "Error: You are not connected to IRC." -msgstr "" - -#: q.cpp:270 -msgid "Error: You are already cloaked!" -msgstr "" - -#: q.cpp:276 -msgid "Error: You are already authed!" -msgstr "" - -#: q.cpp:280 -msgid "Update requested." -msgstr "" - -#: q.cpp:283 -msgid "Unknown command. Try 'help'." -msgstr "" - -#: q.cpp:293 -msgid "Cloak successful: Your hostname is now cloaked." -msgstr "" - -#: q.cpp:408 -msgid "Changes have been saved!" -msgstr "" - -#: q.cpp:435 -msgid "Cloak: Trying to cloak your hostname, setting +x..." -msgstr "" - -#: q.cpp:452 -msgid "" -"You have to set a username and password to use this module! See 'help' for " -"details." -msgstr "" - -#: q.cpp:458 -msgid "Auth: Requesting CHALLENGE..." -msgstr "" - -#: q.cpp:462 -msgid "Auth: Sending AUTH request..." -msgstr "" - -#: q.cpp:479 -msgid "Auth: Received challenge, sending CHALLENGEAUTH request..." -msgstr "" - -#: q.cpp:521 -msgid "Authentication failed: {1}" -msgstr "" - -#: q.cpp:525 -msgid "Authentication successful: {1}" -msgstr "" - -#: q.cpp:539 -msgid "" -"Auth failed: Q does not support HMAC-SHA-256 for CHALLENGEAUTH, falling back " -"to standard AUTH." -msgstr "" - -#: q.cpp:566 -msgid "RequestPerms: Requesting op on {1}" -msgstr "" - -#: q.cpp:579 -msgid "RequestPerms: Requesting voice on {1}" -msgstr "" - -#: q.cpp:686 -msgid "Please provide your username and password for Q." -msgstr "" - -#: q.cpp:689 -msgid "Auths you with QuakeNet's Q bot." -msgstr "" diff --git a/modules/q.cpp b/modules/q.cpp deleted file mode 100644 index f7df628c..00000000 --- a/modules/q.cpp +++ /dev/null @@ -1,689 +0,0 @@ -/* - * Copyright (C) 2004-2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -using std::set; - -#ifndef Q_DEBUG_COMMUNICATION -#define Q_DEBUG_COMMUNICATION 0 -#endif - -class CQModule : public CModule { - public: - MODCONSTRUCTOR(CQModule) {} - ~CQModule() override {} - - bool OnLoad(const CString& sArgs, CString& sMessage) override { - if (!sArgs.empty()) { - SetUsername(sArgs.Token(0)); - SetPassword(sArgs.Token(1)); - } else { - m_sUsername = GetNV("Username"); - m_sPassword = GetNV("Password"); - } - - CString sTmp; - m_bUseCloakedHost = - (sTmp = GetNV("UseCloakedHost")).empty() ? true : sTmp.ToBool(); - m_bUseChallenge = - (sTmp = GetNV("UseChallenge")).empty() ? true : sTmp.ToBool(); - m_bRequestPerms = GetNV("RequestPerms").ToBool(); - m_bJoinOnInvite = - (sTmp = GetNV("JoinOnInvite")).empty() ? true : sTmp.ToBool(); - m_bJoinAfterCloaked = - (sTmp = GetNV("JoinAfterCloaked")).empty() ? true : sTmp.ToBool(); - - // Make sure NVs are stored in config. Note: SetUseCloakedHost() is - // called further down. - SetUseChallenge(m_bUseChallenge); - SetRequestPerms(m_bRequestPerms); - SetJoinOnInvite(m_bJoinOnInvite); - SetJoinAfterCloaked(m_bJoinAfterCloaked); - - OnIRCDisconnected(); // reset module's state - - if (IsIRCConnected()) { - // check for usermode +x if we are already connected - set scUserModes = - GetNetwork()->GetIRCSock()->GetUserModes(); - if (scUserModes.find('x') != scUserModes.end()) m_bCloaked = true; - - // This will only happen once, and only if the user loads the module - // after connecting to IRC. - // Also don't notify the user in case he already had mode +x set. - if (GetNV("UseCloakedHost").empty()) { - if (!m_bCloaked) - PutModule(t_s( - "Notice: Your host will be cloaked the next time you " - "reconnect to IRC. " - "If you want to cloak your host now, /msg *q Cloak. " - "You can set your preference " - "with /msg *q Set UseCloakedHost true/false.")); - m_bUseCloakedHost = true; - SetUseCloakedHost(m_bUseCloakedHost); - m_bJoinAfterCloaked = true; - SetJoinAfterCloaked(m_bJoinAfterCloaked); - } else if (m_bUseChallenge) { - Cloak(); - } - WhoAmI(); - } else { - SetUseCloakedHost(m_bUseCloakedHost); - } - - return true; - } - - void OnIRCDisconnected() override { - m_bCloaked = false; - m_bAuthed = false; - m_bRequestedWhoami = false; - m_bRequestedChallenge = false; - m_bCatchResponse = false; - } - - void OnIRCConnected() override { - if (m_bUseCloakedHost) Cloak(); - WhoAmI(); - } - - void OnModCommand(const CString& sLine) override { - CString sCommand = sLine.Token(0).AsLower(); - - if (sCommand == "help") { - PutModule(t_s("The following commands are available:")); - CTable Table; - Table.AddColumn(t_s("Command")); - Table.AddColumn(t_s("Description")); - Table.AddRow(); - Table.SetCell(t_s("Command"), t_s("Auth [ ]")); - Table.SetCell(t_s("Description"), - t_s("Tries to authenticate you with Q. Both " - "parameters are optional.")); - Table.AddRow(); - Table.SetCell(t_s("Command"), "Cloak"); - Table.SetCell( - t_s("Description"), - t_s("Tries to set usermode +x to hide your real hostname.")); - Table.AddRow(); - Table.SetCell(t_s("Command"), "Status"); - Table.SetCell(t_s("Description"), - t_s("Prints the current status of the module.")); - Table.AddRow(); - Table.SetCell(t_s("Command"), "Update"); - Table.SetCell( - t_s("Description"), - t_s("Re-requests the current user information from Q.")); - Table.AddRow(); - Table.SetCell(t_s("Command"), t_s("Set ")); - Table.SetCell(t_s("Description"), - t_s("Changes the value of the given setting. See the " - "list of settings below.")); - Table.AddRow(); - Table.SetCell(t_s("Command"), "Get"); - Table.SetCell(t_s("Description"), - t_s("Prints out the current configuration. See the " - "list of settings below.")); - PutModule(Table); - - PutModule(t_s("The following settings are available:")); - CTable Table2; - Table2.AddColumn(t_s("Setting")); - Table2.AddColumn(t_s("Type")); - Table2.AddColumn(t_s("Description")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"),"Username"); - Table2.SetCell(t_s("Type"), t_s("String")); - Table2.SetCell(t_s("Description"), t_s("Your Q username.")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"), "Password"); - Table2.SetCell(t_s("Type"), t_s("String")); - Table2.SetCell(t_s("Description"), t_s("Your Q password.")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"), "UseCloakedHost"); - Table2.SetCell(t_s("Type"), t_s("Boolean")); - Table2.SetCell(t_s("Description"), - t_s("Whether to cloak your hostname (+x) " - "automatically on connect.")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"), "UseChallenge"); - Table2.SetCell(t_s("Type"), t_s("Boolean")); - Table2.SetCell(t_s("Description"), - t_s("Whether to use the CHALLENGEAUTH mechanism to " - "avoid sending passwords in cleartext.")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"), "RequestPerms"); - Table2.SetCell(t_s("Type"), t_s("Boolean")); - Table2.SetCell(t_s("Description"), - t_s("Whether to request voice/op from Q on " - "join/devoice/deop.")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"), "JoinOnInvite"); - Table2.SetCell(t_s("Type"), t_s("Boolean")); - Table2.SetCell(t_s("Description"), - t_s("Whether to join channels when Q invites you.")); - Table2.AddRow(); - Table2.SetCell(t_s("Setting"), "JoinAfterCloaked"); - Table2.SetCell(t_s("Type"), t_s("Boolean")); - Table2.SetCell( - t_s("Description"), - t_s("Whether to delay joining channels until after you " - "are cloaked.")); - PutModule(Table2); - - PutModule( - t_s("This module takes 2 optional parameters: " - "")); - PutModule(t_s("Module settings are stored between restarts.")); - - } else if (sCommand == "set") { - CString sSetting = sLine.Token(1).AsLower(); - CString sValue = sLine.Token(2); - if (sSetting.empty() || sValue.empty()) { - PutModule(t_s("Syntax: Set ")); - } else if (sSetting == "username") { - SetUsername(sValue); - PutModule(t_s("Username set")); - } else if (sSetting == "password") { - SetPassword(sValue); - PutModule(t_s("Password set")); - } else if (sSetting == "usecloakedhost") { - SetUseCloakedHost(sValue.ToBool()); - PutModule(t_s("UseCloakedHost set")); - } else if (sSetting == "usechallenge") { - SetUseChallenge(sValue.ToBool()); - PutModule(t_s("UseChallenge set")); - } else if (sSetting == "requestperms") { - SetRequestPerms(sValue.ToBool()); - PutModule(t_s("RequestPerms set")); - } else if (sSetting == "joinoninvite") { - SetJoinOnInvite(sValue.ToBool()); - PutModule(t_s("JoinOnInvite set")); - } else if (sSetting == "joinaftercloaked") { - SetJoinAfterCloaked(sValue.ToBool()); - PutModule(t_s("JoinAfterCloaked set")); - } else - PutModule(t_f("Unknown setting: {1}")(sSetting)); - - } else if (sCommand == "get" || sCommand == "list") { - CTable Table; - Table.AddColumn(t_s("Setting")); - Table.AddColumn(t_s("Value")); - Table.AddRow(); - Table.SetCell(t_s("Setting"), "Username"); - Table.SetCell(t_s("Value"), m_sUsername); - Table.AddRow(); - Table.SetCell(t_s("Setting"), "Password"); - Table.SetCell(t_s("Value"), "*****"); // m_sPassword - Table.AddRow(); - Table.SetCell(t_s("Setting"), "UseCloakedHost"); - Table.SetCell(t_s("Value"), CString(m_bUseCloakedHost)); - Table.AddRow(); - Table.SetCell(t_s("Setting"), "UseChallenge"); - Table.SetCell(t_s("Value"), CString(m_bUseChallenge)); - Table.AddRow(); - Table.SetCell(t_s("Setting"), "RequestPerms"); - Table.SetCell(t_s("Value"), CString(m_bRequestPerms)); - Table.AddRow(); - Table.SetCell(t_s("Setting"), "JoinOnInvite"); - Table.SetCell(t_s("Value"), CString(m_bJoinOnInvite)); - Table.AddRow(); - Table.SetCell(t_s("Setting"), "JoinAfterCloaked"); - Table.SetCell(t_s("Value"), CString(m_bJoinAfterCloaked)); - PutModule(Table); - - } else if (sCommand == "status") { - PutModule(IsIRCConnected() ? t_s("Connected: yes") - : t_s("Connected: no")); - PutModule(m_bCloaked ? t_s("Cloacked: yes") : t_s("Cloacked: no")); - PutModule(m_bAuthed ? t_s("Authenticated: yes") - : t_s("Authenticated: no")); - - } else { - // The following commands require an IRC connection. - if (!IsIRCConnected()) { - PutModule(t_s("Error: You are not connected to IRC.")); - return; - } - - if (sCommand == "cloak") { - if (!m_bCloaked) - Cloak(); - else - PutModule(t_s("Error: You are already cloaked!")); - - } else if (sCommand == "auth") { - if (!m_bAuthed) - Auth(sLine.Token(1), sLine.Token(2)); - else - PutModule(t_s("Error: You are already authed!")); - - } else if (sCommand == "update") { - WhoAmI(); - PutModule(t_s("Update requested.")); - - } else { - PutModule(t_s("Unknown command. Try 'help'.")); - } - } - } - - EModRet OnRaw(CString& sLine) override { - // use OnRaw because OnUserMode is not defined (yet?) - if (sLine.Token(1) == "396" && - sLine.Token(3).find("users.quakenet.org") != CString::npos) { - m_bCloaked = true; - PutModule(t_s("Cloak successful: Your hostname is now cloaked.")); - - // Join channels immediately after our spoof is set, but only if - // both UseCloakedHost and JoinAfterCloaked is enabled. See #602. - if (m_bJoinAfterCloaked) { - GetNetwork()->JoinChans(); - } - } - return CONTINUE; - } - - EModRet OnPrivMsg(CNick& Nick, CString& sMessage) override { - return HandleMessage(Nick, sMessage); - } - - EModRet OnPrivNotice(CNick& Nick, CString& sMessage) override { - return HandleMessage(Nick, sMessage); - } - - EModRet OnJoining(CChan& Channel) override { - // Halt if are not already cloaked, but the user requres that we delay - // channel join till after we are cloaked. - if (!m_bCloaked && m_bUseCloakedHost && m_bJoinAfterCloaked) - return HALT; - - return CONTINUE; - } - - void OnJoin(const CNick& Nick, CChan& Channel) override { - if (m_bRequestPerms && IsSelf(Nick)) HandleNeed(Channel, "ov"); - } - - void OnDeop2(const CNick* pOpNick, const CNick& Nick, CChan& Channel, - bool bNoChange) override { - if (m_bRequestPerms && IsSelf(Nick) && (!pOpNick || !IsSelf(*pOpNick))) - HandleNeed(Channel, "o"); - } - - void OnDevoice2(const CNick* pOpNick, const CNick& Nick, CChan& Channel, - bool bNoChange) override { - if (m_bRequestPerms && IsSelf(Nick) && (!pOpNick || !IsSelf(*pOpNick))) - HandleNeed(Channel, "v"); - } - - EModRet OnInvite(const CNick& Nick, const CString& sChan) override { - if (!Nick.NickEquals("Q") || - !Nick.GetHost().Equals("CServe.quakenet.org")) - return CONTINUE; - if (m_bJoinOnInvite) GetNetwork()->AddChan(sChan, false); - return CONTINUE; - } - - CString GetWebMenuTitle() override { return "Q"; } - - bool OnWebRequest(CWebSock& WebSock, const CString& sPageName, - CTemplate& Tmpl) override { - if (sPageName == "index") { - bool bSubmitted = (WebSock.GetParam("submitted").ToInt() != 0); - - if (bSubmitted) { - CString FormUsername = WebSock.GetParam("user"); - if (!FormUsername.empty()) SetUsername(FormUsername); - - CString FormPassword = WebSock.GetParam("password"); - if (!FormPassword.empty()) SetPassword(FormPassword); - - SetUseCloakedHost(WebSock.GetParam("usecloakedhost").ToBool()); - SetUseChallenge(WebSock.GetParam("usechallenge").ToBool()); - SetRequestPerms(WebSock.GetParam("requestperms").ToBool()); - SetJoinOnInvite(WebSock.GetParam("joinoninvite").ToBool()); - SetJoinAfterCloaked( - WebSock.GetParam("joinaftercloaked").ToBool()); - } - - Tmpl["Username"] = m_sUsername; - - CTemplate& o1 = Tmpl.AddRow("OptionLoop"); - o1["Name"] = "usecloakedhost"; - o1["DisplayName"] = "UseCloakedHost"; - o1["Tooltip"] = - t_s("Whether to cloak your hostname (+x) automatically on " - "connect."); - o1["Checked"] = CString(m_bUseCloakedHost); - - CTemplate& o2 = Tmpl.AddRow("OptionLoop"); - o2["Name"] = "usechallenge"; - o2["DisplayName"] = "UseChallenge"; - o2["Tooltip"] = - t_s("Whether to use the CHALLENGEAUTH mechanism to avoid " - "sending passwords in cleartext."); - o2["Checked"] = CString(m_bUseChallenge); - - CTemplate& o3 = Tmpl.AddRow("OptionLoop"); - o3["Name"] = "requestperms"; - o3["DisplayName"] = "RequestPerms"; - o3["Tooltip"] = - t_s("Whether to request voice/op from Q on join/devoice/deop."); - o3["Checked"] = CString(m_bRequestPerms); - - CTemplate& o4 = Tmpl.AddRow("OptionLoop"); - o4["Name"] = "joinoninvite"; - o4["DisplayName"] = "JoinOnInvite"; - o4["Tooltip"] = t_s("Whether to join channels when Q invites you."); - o4["Checked"] = CString(m_bJoinOnInvite); - - CTemplate& o5 = Tmpl.AddRow("OptionLoop"); - o5["Name"] = "joinaftercloaked"; - o5["DisplayName"] = "JoinAfterCloaked"; - o5["Tooltip"] = - t_s("Whether to delay joining channels until after you are " - "cloaked."); - o5["Checked"] = CString(m_bJoinAfterCloaked); - - if (bSubmitted) { - WebSock.GetSession()->AddSuccess( - t_s("Changes have been saved!")); - } - - return true; - } - - return false; - } - - private: - bool m_bCloaked{}; - bool m_bAuthed{}; - bool m_bRequestedWhoami{}; - bool m_bRequestedChallenge{}; - bool m_bCatchResponse{}; - MCString m_msChanModes; - - void PutQ(const CString& sMessage) { - PutIRC("PRIVMSG Q@CServe.quakenet.org :" + sMessage); -#if Q_DEBUG_COMMUNICATION - PutModule("[ZNC --> Q] " + sMessage); -#endif - } - - void Cloak() { - if (m_bCloaked) return; - - PutModule(t_s("Cloak: Trying to cloak your hostname, setting +x...")); - PutIRC("MODE " + GetNetwork()->GetIRCSock()->GetNick() + " +x"); - } - - void WhoAmI() { - m_bRequestedWhoami = true; - PutQ("WHOAMI"); - } - - void Auth(const CString& sUsername = "", const CString& sPassword = "") { - if (m_bAuthed) return; - - if (!sUsername.empty()) SetUsername(sUsername); - if (!sPassword.empty()) SetPassword(sPassword); - - if (m_sUsername.empty() || m_sPassword.empty()) { - PutModule( - t_s("You have to set a username and password to use this " - "module! See 'help' for details.")); - return; - } - - if (m_bUseChallenge) { - PutModule(t_s("Auth: Requesting CHALLENGE...")); - m_bRequestedChallenge = true; - PutQ("CHALLENGE"); - } else { - PutModule(t_s("Auth: Sending AUTH request...")); - PutQ("AUTH " + m_sUsername + " " + m_sPassword); - } - } - - void ChallengeAuth(CString sChallenge) { - if (m_bAuthed) return; - - CString sUsername = m_sUsername.AsLower() - .Replace_n("[", "{") - .Replace_n("]", "}") - .Replace_n("\\", "|"); - CString sPasswordHash = m_sPassword.Left(10).SHA256(); - CString sKey = CString(sUsername + ":" + sPasswordHash).SHA256(); - CString sResponse = HMAC_SHA256(sKey, sChallenge); - - PutModule( - t_s("Auth: Received challenge, sending CHALLENGEAUTH request...")); - PutQ("CHALLENGEAUTH " + m_sUsername + " " + sResponse + - " HMAC-SHA-256"); - } - - EModRet HandleMessage(const CNick& Nick, CString sMessage) { - if (!Nick.NickEquals("Q") || - !Nick.GetHost().Equals("CServe.quakenet.org")) - return CONTINUE; - - sMessage.Trim(); - -#if Q_DEBUG_COMMUNICATION - PutModule("[ZNC <-- Q] " + sMessage); -#endif - - // WHOAMI - if (sMessage.find("WHOAMI is only available to authed users") != - CString::npos) { - m_bAuthed = false; - Auth(); - m_bCatchResponse = m_bRequestedWhoami; - } else if (sMessage.find("Information for user") != CString::npos) { - m_bAuthed = true; - m_msChanModes.clear(); - m_bCatchResponse = m_bRequestedWhoami; - m_bRequestedWhoami = true; - } else if (m_bRequestedWhoami && sMessage.WildCmp("#*")) { - CString sChannel = sMessage.Token(0); - CString sFlags = sMessage.Token(1, true).Trim_n().TrimLeft_n("+"); - m_msChanModes[sChannel] = sFlags; - } else if (m_bRequestedWhoami && m_bCatchResponse && - (sMessage.Equals("End of list.") || - sMessage.Equals( - "account, or HELLO to create an account."))) { - m_bRequestedWhoami = m_bCatchResponse = false; - return HALT; - } - - // AUTH - else if (sMessage.Equals("Username or password incorrect.")) { - m_bAuthed = false; - PutModule(t_f("Authentication failed: {1}")(sMessage)); - return HALT; - } else if (sMessage.WildCmp("You are now logged in as *.")) { - m_bAuthed = true; - PutModule(t_f("Authentication successful: {1}")(sMessage)); - WhoAmI(); - return HALT; - } else if (m_bRequestedChallenge && - sMessage.Token(0).Equals("CHALLENGE")) { - m_bRequestedChallenge = false; - if (sMessage.find("not available once you have authed") != - CString::npos) { - m_bAuthed = true; - } else { - if (sMessage.find("HMAC-SHA-256") != CString::npos) { - ChallengeAuth(sMessage.Token(1)); - } else { - PutModule( - t_s("Auth failed: Q does not support HMAC-SHA-256 for " - "CHALLENGEAUTH, falling back to standard AUTH.")); - SetUseChallenge(false); - Auth(); - } - } - return HALT; - } - - // prevent buffering of Q's responses - return !m_bCatchResponse && GetUser()->IsUserAttached() ? CONTINUE - : HALT; - } - - void HandleNeed(const CChan& Channel, const CString& sPerms) { - MCString::iterator it = m_msChanModes.find(Channel.GetName()); - if (it == m_msChanModes.end()) return; - CString sModes = it->second; - - bool bMaster = (sModes.find("m") != CString::npos) || - (sModes.find("n") != CString::npos); - - if (sPerms.find("o") != CString::npos) { - bool bOp = (sModes.find("o") != CString::npos); - bool bAutoOp = (sModes.find("a") != CString::npos); - if (bMaster || bOp) { - if (!bAutoOp) { - PutModule(t_f("RequestPerms: Requesting op on {1}")( - Channel.GetName())); - PutQ("OP " + Channel.GetName()); - } - return; - } - } - - if (sPerms.find("v") != CString::npos) { - bool bVoice = (sModes.find("v") != CString::npos); - bool bAutoVoice = (sModes.find("g") != CString::npos); - if (bMaster || bVoice) { - if (!bAutoVoice) { - PutModule(t_f("RequestPerms: Requesting voice on {1}")( - Channel.GetName())); - PutQ("VOICE " + Channel.GetName()); - } - return; - } - } - } - - /* Utility Functions */ - bool IsIRCConnected() { - CIRCSock* pIRCSock = GetNetwork()->GetIRCSock(); - return pIRCSock && pIRCSock->IsAuthed(); - } - - bool IsSelf(const CNick& Nick) { - return Nick.NickEquals(GetNetwork()->GetCurNick()); - } - - bool PackHex(const CString& sHex, CString& sPackedHex) { - if (sHex.length() % 2) return false; - - sPackedHex.clear(); - - CString::size_type len = sHex.length() / 2; - for (CString::size_type i = 0; i < len; i++) { - unsigned int value; - int n = sscanf(&sHex[i * 2], "%02x", &value); - if (n != 1 || value > 0xff) return false; - sPackedHex += (unsigned char)value; - } - - return true; - } - - CString HMAC_SHA256(const CString& sKey, const CString& sData) { - CString sRealKey; - if (sKey.length() > 64) - PackHex(sKey.SHA256(), sRealKey); - else - sRealKey = sKey; - - CString sOuterKey, sInnerKey; - CString::size_type iKeyLength = sRealKey.length(); - for (unsigned int i = 0; i < 64; i++) { - char r = (i < iKeyLength ? sRealKey[i] : '\0'); - sOuterKey += r ^ 0x5c; - sInnerKey += r ^ 0x36; - } - - CString sInnerHash; - PackHex(CString(sInnerKey + sData).SHA256(), sInnerHash); - return CString(sOuterKey + sInnerHash).SHA256(); - } - - /* Settings */ - CString m_sUsername; - CString m_sPassword; - bool m_bUseCloakedHost{}; - bool m_bUseChallenge{}; - bool m_bRequestPerms{}; - bool m_bJoinOnInvite{}; - bool m_bJoinAfterCloaked{}; - - void SetUsername(const CString& sUsername) { - m_sUsername = sUsername; - SetNV("Username", sUsername); - } - - void SetPassword(const CString& sPassword) { - m_sPassword = sPassword; - SetNV("Password", sPassword); - } - - void SetUseCloakedHost(const bool bUseCloakedHost) { - m_bUseCloakedHost = bUseCloakedHost; - SetNV("UseCloakedHost", CString(bUseCloakedHost)); - - if (!m_bCloaked && m_bUseCloakedHost && IsIRCConnected()) Cloak(); - } - - void SetUseChallenge(const bool bUseChallenge) { - m_bUseChallenge = bUseChallenge; - SetNV("UseChallenge", CString(bUseChallenge)); - } - - void SetRequestPerms(const bool bRequestPerms) { - m_bRequestPerms = bRequestPerms; - SetNV("RequestPerms", CString(bRequestPerms)); - } - - void SetJoinOnInvite(const bool bJoinOnInvite) { - m_bJoinOnInvite = bJoinOnInvite; - SetNV("JoinOnInvite", CString(bJoinOnInvite)); - } - - void SetJoinAfterCloaked(const bool bJoinAfterCloaked) { - m_bJoinAfterCloaked = bJoinAfterCloaked; - SetNV("JoinAfterCloaked", CString(bJoinAfterCloaked)); - } -}; - -template <> -void TModInfo(CModInfo& Info) { - Info.SetWikiPage("Q"); - Info.SetHasArgs(true); - Info.SetArgsHelpText( - Info.t_s("Please provide your username and password for Q.")); -} - -NETWORKMODULEDEFS(CQModule, t_s("Auths you with QuakeNet's Q bot.")) diff --git a/src/IRCNetwork.cpp b/src/IRCNetwork.cpp index 3872ace9..ee6d468b 100644 --- a/src/IRCNetwork.cpp +++ b/src/IRCNetwork.cpp @@ -456,6 +456,20 @@ bool CIRCNetwork::ParseConfig(CConfig* pConfig, CString& sError, bool bModRet = LoadModule(sModName, sArgs, sNotice, sModRet); if (!bModRet) { + // Q is removed in znc 1.8 + if (sModName == "q") { + CUtils::PrintError( + "NOTICE: [q] is unavailable, cannot load."); + CUtils::PrintError( + "NOTICE: [q] is removed in this release of ZNC. Please " + "either remove it from your config or install it as a " + "third party module with the same name."); + CUtils::PrintError( + "NOTICE: More info can be found on " + "https://wiki.znc.in/Q"); + return false; + } + // XXX The awaynick module was retired in 1.6 (still available // as external module) if (sModName == "awaynick") {