From da68598b633e8fce53e19fa5b6d92810bff33c19 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 29 Oct 2022 20:54:57 +0200 Subject: [PATCH] Add tag to catch link-dead puppet. Resolve #2829, #2737 --- evennia/accounts/accounts.py | 3 + evennia/locale/es/LC_MESSAGES/django.po | 116 ++++++------ evennia/locale/fr/LC_MESSAGES/django.mo | Bin 22023 -> 21953 bytes evennia/locale/fr/LC_MESSAGES/django.po | 119 ++++++------ evennia/locale/it/LC_MESSAGES/django.po | 116 ++++++------ evennia/locale/ko/LC_MESSAGES/django.po | 116 ++++++------ evennia/locale/la/LC_MESSAGES/django.po | 116 ++++++------ evennia/locale/pl/LC_MESSAGES/django.po | 116 ++++++------ evennia/locale/pt/LC_MESSAGES/django.mo | Bin 25663 -> 25584 bytes evennia/locale/pt/LC_MESSAGES/django.po | 237 ++++++++++++++---------- evennia/locale/ru/LC_MESSAGES/django.po | 116 ++++++------ evennia/locale/sv/LC_MESSAGES/django.mo | Bin 29126 -> 29036 bytes evennia/locale/sv/LC_MESSAGES/django.po | 145 ++++++++------- evennia/locale/zh/LC_MESSAGES/django.po | 116 ++++++------ evennia/objects/objects.py | 15 +- evennia/server/server.py | 53 ++++-- 16 files changed, 741 insertions(+), 643 deletions(-) diff --git a/evennia/accounts/accounts.py b/evennia/accounts/accounts.py index f9a857e11c..8e4ca8edfc 100644 --- a/evennia/accounts/accounts.py +++ b/evennia/accounts/accounts.py @@ -364,6 +364,8 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase): # do the puppeting obj.at_pre_puppet(self, session=session) + # used to track in case of crash so we can clean up later + obj.tags.add("puppeted", category="account") # do the connection obj.sessions.add(session) @@ -398,6 +400,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase): if not obj.sessions.count(): del obj.account obj.at_post_unpuppet(self, session=session) + obj.tags.remove("puppeted", category="account") SIGNAL_OBJECT_POST_UNPUPPET.send(sender=obj, session=session, account=self) # Just to be sure we're always clear. session.puppet = None diff --git a/evennia/locale/es/LC_MESSAGES/django.po b/evennia/locale/es/LC_MESSAGES/django.po index 4aebabf409..ee30713e16 100644 --- a/evennia/locale/es/LC_MESSAGES/django.po +++ b/evennia/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:27+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2019-08-16 16:14-0300\n" "Last-Translator: \n" "Language-Team: \n" @@ -29,64 +29,64 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" msgstr "" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "" -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." msgstr "" -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "Cuenta siendo eliminada." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 #, fuzzy #| msgid "The destination doesn't exist." msgid "The Character does not exist." msgstr "El destino no existe." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "" -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" @@ -323,96 +323,96 @@ msgstr "Bloqueo: '{lockdef}' tiene paréntesis que no se relacionan." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Bloqueo: '{lockdef}' no tiene funciones de bloqueo válidas." -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "No se puede realizar el movimiento ('%s'). Contacta a un admin." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "El destino no existe." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "No se puede encontrar el hogar por defecto '(#%d)'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "¡Algo salió mal! Estás en la nada. Contacta a un admin." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, fuzzy, python-brace-format #| msgid "Your character %s has been destroyed." msgid "Your character {key} has been destroyed." msgstr "Tu personaje %s ha sido destruído." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "Este es el Usuario #1." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "Este es el Usuario #1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "Este es el Usuario #1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -424,83 +424,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -508,7 +508,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -582,10 +582,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "tiempo sin actividad excedido" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -1038,27 +1042,27 @@ msgstr "Hubo varias coincidencias." msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "No se pudo encontrar '%s'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, fuzzy, python-brace-format #| msgid "More than one match for '%s' (please narrow target):\n" msgid "More than one match for '{query}' (please narrow target):\n" diff --git a/evennia/locale/fr/LC_MESSAGES/django.mo b/evennia/locale/fr/LC_MESSAGES/django.mo index 0ddbe0c643e68230ee09890091a6f81e7ab38b7a..05c93a91b41a1b2c2dab91037939f54129e0fa4c 100644 GIT binary patch delta 2803 zcmXZd4Q!Rw835q-j#89DwOUqMegq3Gh=NQ|L9moEQ2q)ix~&9=q9UaUk%a}O>l_=M zI7D}gKZp@@u*qP?0sh3y{kX+VSmw5f+aPL)%QVi-m`xL8$)4AHzx3SaobUVY`FY=S zZhHh9lV9lb3cbyM{MBlIGi)i ziTE;Cu!ApfAqSls@pG=?f-Eqfx5uf+qUJl_C<@QT#(te$1@eD6w-}58- z@KRpRNu0?}<^q1g?B^&e`43*ee{nRcYa^C&5{DT-wyHF`@grJ99HYND;bRa#WD6@b zrf@dv`Av@DPF}{Bc_}|Bx5rpjo%S*|@T(Nu*v=8$!JCaA&#L6W4c?x{v7E|VIi7o% zGk=Xa(8tUPTqJ&?8MAmXm(rv77IUDT)OGA;PV_lm!nfJRYMpfF083P|PH=EROu`l3dh=dh9E*vWkU5WNzAVou-#+6GY}KN;CtW=h5m6@Qb7Yu(5c z+{6joLg|WUnFGDbeD5SL;CM z;-53#@KjYQ>H;o-j^PbDUvD zy51@>bql&xG9=5HAzEL4u$kFGFMTIoW3J?*^8M+;l`GiD3hrhl)vZL&IMWan`uH_{yAZ}b;cSBU=*m6bK-qwMcl|~yo|lH z*!XR^U1_j++EZE2?ky@SRCe@gA@9;8W&iX&3j**(NUKapnLQOI!t4a3EJP zS9Ax5@gh81C`0S&^Qi6TWI`E$WzW9s{F^k7>I2$Xm9KXiHnAXi~6<)(QEPC3k1ef6~ynuz6 z_>9?Utib}8+2ByKXU#nJdUvxP+}MpVc(k+q9VXGfi(N4|%q$fn@F~p2p_q>&u@*If zQ>cD!pdUWMUicp-VqCb{G|b1IjBmTBJkN#CkV)80+b;v~Xfg0G|_izm-xa1i#vTGahR$RqXxDu92HZD8T7k20HpT9S-d@=q{U!UZkC3hakX7>4Ij z16@ZwcORca-=1Dma3SppxF3(AmTC$+Q2{wP9#5kt63D3Pe-LVKmG<&@Bd+HH%V+0M zo9PDTW1PG5LDVUzNB-;xUjwimv+*%9wq^4WW7%xX!dje)pCYkaFwra1y-`ay$3sOa zS&B;0`pz2;s)K{byLKBjlP;u5*9%ZHs6!uYL4Q1sWAP-aU%v#iAsB-ruo(5;HXMwe z6I7C^+(Qi%#!gdv2r6ZBP@Cq>&g;ienYxKx@BvQ3hd2{Q)4OK6AK5;364&8Xtj1|{ zo`V?SH;SFZP;&}3vcTOI2DWz@_cqBdPZp7#eV9o26! zCSkpYiq^Un6~HZ2MiNMa%*0qMLT#EQr~#UAEq;Nmm`>iQ+ApX9`sSOxgbPu7;1ufo zKj>`tXRryhJ!Mp)sI=hA_zjk0D$`+uTLWqdzC=a*8)|?E^2eiAh)R7UD$o|x|B!Zk z1@&vBC8$KQZ_OBqS1?@X|2~yaF1X0A48tjyh}tZxQEPS(r=iwM158IBtiur8iki_L z?1?`iv6>$jdDRL~nP|pbyohN!|G{kCWG-Z(jzuY^U?b{uoJ2+b2kMv&DDeLB72!PE zQ*aR;!+4A>^kyU*_t2h+Z{s6mb*zD(%VNBOZH#Y8>?Fn;-+mU439bAv8q%%YjeM}`BA2>e;B!@Oq zQy3d4WfaGW4~&d&rp7o=W(ZGa^p+}o7E|^*C4rM%Tb&OB`$TQ0t(jL*R#CQ5G?6Cf z*T9^JI%=fSW>EA|X!TBBP(Rle=hdK5uFcNzpqv5wxSB{I)+a}GHu_OEQPxr#D87_Z zidOF(Co#CvwZqvSJS=n;q?&@VLY8I!I_jZ@9Z0lCo=KnvCBxYFv diff --git a/evennia/locale/fr/LC_MESSAGES/django.po b/evennia/locale/fr/LC_MESSAGES/django.po index f938e2afaf..7a969a6e52 100644 --- a/evennia/locale/fr/LC_MESSAGES/django.po +++ b/evennia/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:27+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2022-03-20 19:55+0100\n" "Last-Translator: Christophe Petry \n" "Language-Team: \n" @@ -29,13 +29,13 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" "Trop d'échecs de tentatives de connexion; veuillez réessayer dans quelques " "minutes." -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" @@ -44,21 +44,21 @@ msgstr "" "Si vous pensez que c'est une erreur, veuillez contacter un admin par e-mail.|" "x" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "Nom d'utilisateur et/ou mot de passe incorrect(s)." -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "Trop d'échecs de tentatives de connexion." -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" "Vous créez trop de comptes. Veuillez vous connecter à un compte existant." -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." @@ -66,36 +66,36 @@ msgstr "" "Il y a eu une erreur lors de la création du compte. Si le problème persiste " "veuillez contacter un admin." -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" "Une erreur s'est produite. Veuillez contacter un admin par e-mail si le " "problème persiste." -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 #, fuzzy msgid "Account being deleted." msgstr "Suppression du compte." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "|G{key} s'est connecté(e)|n" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 msgid "The Character does not exist." msgstr "Ce personnage n'existe pas." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "|R{key} s'est déconnecté(e){reason}|n" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "Les comptes visiteurs ne sont pas actifs sur ce serveur." -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" "Tous les comptes visiteurs sont utilisés. Veuillez réessayer plus tard." @@ -348,65 +348,65 @@ msgstr "Verrou: '{lockdef}' comporte des parenthèses non concordantes." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Verrou: '{lockdef}' ne possède pas de fonction de verrouillage valide." -#: objects/objects.py:855 +#: objects/objects.py:856 #, python-brace-format msgid "Couldn't perform move ({err}). Contact an admin." msgstr "" "Impossible d'effectuer le déplacement ({err}). Veuillez contacter un admin." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "La destination n'existe pas." -#: objects/objects.py:977 +#: objects/objects.py:978 #, python-brace-format msgid "Could not find default home '(#{dbid})'." msgstr "Impossible de trouver le foyer par défaut '(#{dbid})'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "" "Quelque chose a mal tourné ! Vous vous trouvez au milieu de nulle part. " "Veuillez contacter un admin." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, python-brace-format msgid "Your character {key} has been destroyed." msgstr "Votre personnage {key} a été détruit." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "Vous avez maintenant {name} en votre possession." -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "Nom de personnage invalide." -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "Il y a trop de personnages associés à ce compte." -#: objects/objects.py:2574 +#: objects/objects.py:2575 msgid "This is a character." msgstr "C'est un personnage." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "|r{obj} n'a pas de localisation et aucun foyer n'est déterminé.|n" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" @@ -415,25 +415,26 @@ msgstr "" "\n" "Vous contrôlez maintenant |c{name}|n.\n" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "{name} est entré(e) dans le jeu." -#: objects/objects.py:2712 -#, python-brace-format -msgid "{name} has left the game." +#: objects/objects.py:2716 +#, fuzzy, python-brace-format +#| msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "{name} est sorti(e) du jeu." -#: objects/objects.py:2831 +#: objects/objects.py:2838 msgid "This is a room." msgstr "C'est une pièce." -#: objects/objects.py:3038 +#: objects/objects.py:3045 msgid "This is an exit." msgstr "C'est une sortie." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "Vous ne pouvez pas aller là." @@ -445,32 +446,32 @@ msgstr "Erreur" msgid "Warning" msgstr "Avertissement" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "Le prototype requiert prototype_key" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" "{protkey} est un prototype en lecture seule (définit comme code dans " "{module})." -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" "{protkey} est un prototype en lecture seule (passé directement comme un " "dictionnaire)." -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "Le prototype {prototype_key} n'a pas été trouvé." -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " @@ -479,25 +480,25 @@ msgstr "" "{caller} a besoin de la permission explicite 'edit' pour supprimer le " "prototype {prototype_key}." -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "Trouvé {num} prototypes correspondants parmi {module_prototypes}." -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "Aucun prototype trouvé." -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "Le prototype n'a pas de 'prototype_key'." -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "Le prototype {protkey} requiert `typeclass` ou 'prototype_parent'." -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " @@ -506,7 +507,7 @@ msgstr "" "Le prototype {protkey} ne peut être utilisé qu'en tant que mixin car il n'a " "pas de clé 'typeclass' ou 'prototype_parent'." -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " @@ -515,12 +516,12 @@ msgstr "" "{err} : Le prototype {protkey} est basé sur la typeclass {typeclass}, qui " "n'a pas pu être importée !" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "Le prototype {protkey} essaie d'être son propre parent." -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." @@ -528,12 +529,12 @@ msgstr "" "Le `prototype_parent` du prototype {protkey} (nommé '{parent}') n'a pas été " "trouvé." -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "{protkey} a une imbrication infinie de prototypes." -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -545,7 +546,7 @@ msgstr "" "Ajoutez une `typeclass`, ou un `prototype_parent` pointant vers un prototype " "avec une typeclass." -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -606,10 +607,14 @@ msgstr "" "La protection DoS de {servername} est active. Vous êtes en attente de " "connexion dans {num} secondes ..." -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "délai d'inactivité dépassé" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "Votre client a envoyé une séquence UTF-8 incorrecte." @@ -1059,7 +1064,7 @@ msgstr "Plusieurs correspondances possibles:" msgid "Please be more specific." msgstr "Veuillez être plus précis." -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " @@ -1068,7 +1073,7 @@ msgstr "" "{obj}.{handlername} est un handler et ne peut pas être défini directement. " "Pour ajouter des valeurs, utilisez `{obj}.{handlername}.add()` à la place." -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " @@ -1077,12 +1082,12 @@ msgstr "" "{obj}.{handlername} est un handler et ne peut pas être supprimé directement. " "Pour supprimer des valeurs, utilisez plutôt `{obj}.{handlername}.remove()` ." -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, python-brace-format msgid "Could not find '{query}'." msgstr "Impossible de trouver '{query}'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, python-brace-format msgid "More than one match for '{query}' (please narrow target):\n" msgstr "" diff --git a/evennia/locale/it/LC_MESSAGES/django.po b/evennia/locale/it/LC_MESSAGES/django.po index 4242d77ce6..9cae3916fc 100644 --- a/evennia/locale/it/LC_MESSAGES/django.po +++ b/evennia/locale/it/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Evennia\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:27+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2021-02-16 11:55+0100\n" "Last-Translator: Roberto PM \n" "Language-Team: Tristano Ajmone \n" @@ -32,11 +32,11 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "Troppi tentativi di login; per favore riprova tra qualche minuto." -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" @@ -45,22 +45,22 @@ msgstr "" "Se ritieni ciò sia avvenuto per errore, per favore contatta un " "amministratore.|x" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "L'username e/o la password sono errati." -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" "Stai creando troppi account. Per favore effettua il login con un account " "esistente." -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." @@ -68,35 +68,35 @@ msgstr "" "Si è verificato un errore durante la creazione dell'Account. Se questo " "problema persiste, contatta un amministratore." -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" "Si è verificato un errore. Per favore contatta un amministratore se il " "problema persiste." -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "Cancellazione account in corso." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "|G{key} si è connesso|n" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 msgid "The Character does not exist." msgstr "Personaggio inesistente." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "|R{key} si è disconnesso{reason}|n" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "Su questo server non è abilitato alcun account ospite" -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" "Tutti gli account ospite stanno venendo utilizzati. Per favore riprova più " @@ -330,98 +330,98 @@ msgstr "Lock: '{lockdef}' presenta irregolarità nell'uso delle parentesi." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Lock: '{lockdef}' non contiene funzioni di lock valide." -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "Spostamento non riuscito ('%s'). Contatta un amministratore." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "Destinazione inesistente." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "Non è stata trovata la home predefinita '(#%d)'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "" "Qualcosa è andato storto! Sei stato gettato nel nulla. Contatta un " "amministratore." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, python-brace-format msgid "Your character {key} has been destroyed." msgstr "Il tuo personaggio {key} è stato distrutto." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" # EN: Not clear if 'storage' refers to disk- or database-storage, or if it relates to game-world objects/containers. # IT: Non è chiaro se se si riferisce a 'storage' nel sendo di dati su disco (o database) oppure a contenitori quali oggetti del MUD! -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy msgid "This is a character." msgstr "Questo è un contenitore per immagazzinamento generico." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "Questo è l'Utente #1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "Questo è l'Utente #1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -433,83 +433,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -517,7 +517,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -591,10 +591,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "Timeout di inattività superato" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -1046,27 +1050,27 @@ msgstr "Sono state trovate diverse corrispondenze." msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "Impossibile trovare '%s'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, python-brace-format msgid "More than one match for '{query}' (please narrow target):\n" msgstr "" diff --git a/evennia/locale/ko/LC_MESSAGES/django.po b/evennia/locale/ko/LC_MESSAGES/django.po index 45dbc4c68c..503fa6e9c6 100644 --- a/evennia/locale/ko/LC_MESSAGES/django.po +++ b/evennia/locale/ko/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:27+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2019-09-21 05:00+0900\n" "Last-Translator: \n" "Language-Team: \n" @@ -27,64 +27,64 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" msgstr "" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "" -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." msgstr "" -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "계정이 삭제되었습니다." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 #, fuzzy #| msgid "The destination doesn't exist." msgid "The Character does not exist." msgstr "The destination doesn't exist." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "" -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" @@ -318,97 +318,97 @@ msgstr "Lock: '{lockdef}' has mismatched parentheses." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Lock: '{lockdef}' has no valid lock functions." -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "Couldn't perform move ('%s'). 운영자에게 문의하세요." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "The destination doesn't exist." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "Could not find default home '(#%d)'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "" "Something went wrong! You are dumped into nowhere. 운영자에게 문의하세요." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, fuzzy, python-brace-format #| msgid "Your character %s has been destroyed." msgid "Your character {key} has been destroyed." msgstr "%s 캐릭터가 삭제되었습니다." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "This is User #1." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "This is User #1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "This is User #1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -420,83 +420,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -504,7 +504,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -576,10 +576,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "연결 시간 초과" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -1032,27 +1036,27 @@ msgstr "여러 개의 일치 항목을 찾았습니다." msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "'%s'를 찾을 수 없습니다." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, fuzzy, python-brace-format #| msgid "More than one match for '%s' (please narrow target):\n" msgid "More than one match for '{query}' (please narrow target):\n" diff --git a/evennia/locale/la/LC_MESSAGES/django.po b/evennia/locale/la/LC_MESSAGES/django.po index e496649f41..f9905564db 100644 --- a/evennia/locale/la/LC_MESSAGES/django.po +++ b/evennia/locale/la/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:27+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2021-02-04 21:25-0600\n" "Last-Translator: \n" "Language-Team: \n" @@ -28,13 +28,13 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" "Saepius nequīquam nōmen datum est; quaesō, paucis post mōmentīs rursus " "conāre." -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" @@ -43,20 +43,20 @@ msgstr "" "Sī errōre tē prohibērī vidētur, quaesō litterās electronicās ad " "administrātōrem mitte.|x" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "Nōmen vel tessera male datur." -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "Plūrēs ratiōnēs creās. Quaesō nōmen prō ratiōne iam factā da." -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." @@ -64,33 +64,33 @@ msgstr "" "Nequīquam ratiō creāta est. Sī semper tibi hic error obviam fit, " "adminstrātōrem vocā " -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "Ratiō dēlētur." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "|G{key} sē iunxit.|n" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 msgid "The Character does not exist." msgstr "Nōn est ista Persōna." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "|R{key} sē dissolvit{reason}|n" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "Hospitibus nōn licet ratiōnibus ūtī in hoc moderātrō." -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "Nōn iam sunt ratiōnēs hospitum. Quaesō in posterum rursus conāre." @@ -321,95 +321,95 @@ msgstr "Claustra: '{lockdef}' interclusiōnēs impārēs habet." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Claustra: '{lockdef}' nullās functiōnēs clastrōrum idoneōs habet." -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "Iste mōtus ('%s') efficī nōn potuit. Administrātōrem vocā." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "Iste fīnis nōn est." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "Domus data '(#%d)' nōn inventa est." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "Errātum est! In nūsquam cecidistī. Administrātōrem vocā." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, python-brace-format msgid "Your character {key} has been destroyed." msgstr "Persōna tua {key} dēlēta est." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "Haec est Ratiō #1." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "Haec est Ratiō #1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "Haec est Ratiō #1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -421,83 +421,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -505,7 +505,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -578,10 +578,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "Nimis temporis in nihil agendō ēgistī." +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -1031,27 +1035,27 @@ msgstr "Plūra quam ūnum inventa sunt." msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "'%s' nōn inventum est" -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, python-brace-format msgid "More than one match for '{query}' (please narrow target):\n" msgstr "" diff --git a/evennia/locale/pl/LC_MESSAGES/django.po b/evennia/locale/pl/LC_MESSAGES/django.po index d2c17bb41e..f38622b925 100644 --- a/evennia/locale/pl/LC_MESSAGES/django.po +++ b/evennia/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ArkMUD Polish translation v0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:28+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2019-02-20 14:18+0100\n" "Last-Translator: \n" "Language-Team: ArkMUD team\n" @@ -31,64 +31,64 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" msgstr "" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "" -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." msgstr "" -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "Konto zostalo usuniete." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 #, fuzzy #| msgid "The destination doesn't exist." msgid "The Character does not exist." msgstr "Punkt przeznaczenia nie istnieje." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "" -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" @@ -290,96 +290,96 @@ msgstr "" msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "" -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "Nie udalo sie wykonac ruchu ('%s'). Skontaktuj sie z adminem." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "Punkt przeznaczenia nie istnieje." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "Nie znaleziono domyslnego domu '(#%d)'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "Cos poszlo zle! Zostales wrzucony w nicosc. Skontaktuj sie z adminem." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, fuzzy, python-brace-format #| msgid "Your character %s has been destroyed." msgid "Your character {key} has been destroyed." msgstr "Twoja postac %s zostala zniszczona." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "To jest User #1." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "To jest User #1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "To jest User #1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -391,83 +391,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -475,7 +475,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -539,10 +539,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "czas bezczynnosci przekroczony" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -990,27 +994,27 @@ msgstr "Znaleziono wiele dopasowan." msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "Nie odnaleziono '%s'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, fuzzy, python-brace-format #| msgid "More than one match for '%s' (please narrow target):\n" msgid "More than one match for '{query}' (please narrow target):\n" diff --git a/evennia/locale/pt/LC_MESSAGES/django.mo b/evennia/locale/pt/LC_MESSAGES/django.mo index 185d7cd2cbadba524ef59adb3c62ce7f7eb2370f..03a55ac3d5c42db1f5f3d34fe0d5b29626df706f 100644 GIT binary patch delta 3733 zcmYk;3y@b;9S88kdxa2|<+VIyc`I+^Aum~$<>ks741t9ZgMbo23z3I^5iLta6eT2J zku`JCYDS@Wc_w2 zt>ce*4STdtX+A5tkb60upYeD~xiqCTCG}L)A*IRe%3)l|3f3?>@D4pAJ=Zbw75378 zi_Q5Ni`c|l^kGXj;AjqKImdGyyYMJGd44*p;&;<0^kS)1=j;om?5;hMw{Q{tONR>A ze@}ywK4xn+^tx?W%5o0mNZ!dItSfkd#oEPsG0*c;cNL?RHquL`9W)E+CoJP(p5PhA z19!VPhINb%y~}(Dx~4QryOaYsmp!?a`3}%vrwcTD=~L$VsT6g~zBsJlLPm$SFgo%K z;{i2{DLBk)`6gq^{>8o=W4NLND;O_Q%lQ6lv~1ED#(gf*yQKegH~umA9eQL#J%rJ- zc?DN+p!U5iVI5=WUS-_icZ}cvkou5{yl&W+%Q>CdmC9bk;WQ4ZoC7<1i3V>A2kZoa^n z>rRGs605m^wTzBjbA5KMOl5iO|7|KU#HTrx-Hq=Eu3>bbjxi;#vKh}artCe&gE|<7 z5-wnj$Z8)kVzpeuvy2BCMK!p~}FUvl|ZO+uCy(zj&Pm5l8K4_U3wazW=BfW?@9>G{U z%NcK6!?@2e4(4gbgX2$NfAq|$#2G$^jkuPvKks2TZfA_dA?kEG%b2nrGqUqyK4V07 zF&61Dw&uCQ^^bV1cI%nh&u?UOpqee1+oIA^X#m|IFyfCyX1nn3b)C0gM~Y zV17h+m-c?X#**3DpV_wzcoAa2Qr3m73cGD`bv7Atytk=Ovzlv)UIa(?qp2yZpKvZ=QPhxAE?9w zMmqNTaVBFmZ)U846CBLHaS%%_<#<39V>Pd4bZ9$=@d)GlAFw_Jk(SCyyn7-mL!bC;~PH`45F-CUU68Gdj z#)w^7V*JOd%+ZUMe3Bhm%ceZeq5KUid706%%B9&KqXo31(k^b{yByCIw`VW%BIElf z*qY~9kCpNRiS?H+5BSu{e2F(1Dc_blxl^u`=v+L&wohy29x0W0n-;uJYC|xu1|2KTHP+!VN zWV7s+*hw)Z&83S>lns(w?c&dH+rtQ5*&N5{sp;l*rd5PO2}-K8cmyS-vM%%0QKv-zbiW ze7Vi%MtLG@rsrwh<`1J8tjb?Exuf%yY-Ki9ZzpSHoJ83!>%}h3Z_E9BN@~QG&zGxw zI(PEhE4Fa#ro}Q_zAsU(mvuWTnwR7js_m6c(m}o^GxO1VV2K^~J<(a1_JeOD#U#whh=r^K09ETiNZ`Kt7mZ^?3r@}N8? zJLHElMZPI3WT+gJCel(Kmj3d^vL)Y$Zz#JCJ$Ch~t~Ov_B!qUNYgPFmmRy_Y}gOb?%PuGf3d{hf0!dFvy;b07P8 zzim=)yU~u5mZU1s>^lC|kRP;7A!g@sGya14p=ND@%re5viWnC+HJgm5@hHYcn=Qc4 zur&^BW;PZl;W#{lIT#aTcFxReQ|WNblA4{GI04tII>?`;9 zA4pLwipPw^1dPHo%)nes!;RP#Yg`{-IO9}qGMf9_06J95b|VjKCy`aK&(VVy@dLbz zy5YMVOvf73go0w-31BbAY4|A4!$drQz6l`3wg<@SS#%ur??fkwj!rCaU4oj>OQ?yw zgL=Yqs3o|FN%$*j$s#FJM=U~3U=8X)-bbDPEwXLwF6ugg2~LHZCs2Q_eJ>91XO@SW z*+SPf*qQMzjKCUH>8>Hgu$!pAAIj{RizT@Z!!pLRa6ewc3|zp5(L~?EZ2Z2h*LjlU zcFqh(p>9})oMY9fiJd_`(RWDo>~GYQwx$eP^RcK+I~!HeS5SNE0uIC*sOxoY@BIBj z^e}$LODC1iUhIosAp65Y*uuRr8S}9m*{60EwU$>=l?vr?be;z_u_DaIrS9<>ROthm zl_n5{s#rSKLvI0{`g96$2tMh047FBwP*2t%*{ly{pe|I2kKsY27*>m#fFCVYM9;RRzKeYClSc#=r zf#0Lnd=%v!gw?nhuc0P1ri;EWtp92{I`Lyvse`HS<2W9B;!%viA5cs4Cq9Brd3-Hh z9P01qqt4rg{AY*xp~_vuIT*n}H?G1^Jb@A1-_Fws$FFgbpV`lNiE&8}s=>Giv$z_> zI`cIt<9KvG=YmV|GsZV@E1t=8Hr0s!&L?>;PUQGyoQ7!wxDFmfz23{%nci|bJLzb~ z{#j-tu?OD9b*NHTQa=ywK=zZpje3F~u>syeieeAlahJhnLm8*z2waV^cp0^X_fgl4 z9zy-=(@ACLvCk|Gbz&J#!ZpaNYri3@V@fu@Y>0H6kL~aTw!kaM-0U7|f*H&r z8Rw$*&VKZ5TGVy!VJZgaIQQ-4rIXBoV$`>MJqF@2)O-2{YIlEvs>JWe|eldP8@@MaSv)DSCP3}0C&@M@=+6Aif!=_YEOKQgZ2Igk9IcI6Q~JH zL0w=UdhizZ!|*ZAc_UHZ{&G|a58_y?K~A-J22F4YYDqSrmi7b&;FqW+zKGe}->%SM zUsxiay{1@!op2p$H=jc7frpriv25WK%tPIv3bmULqbBqTcEg*f^An4lPwr?`MG8?% zS%uySbPmudLI3g2T9>+3q9#<0k$4=ncIQ!V$qihNAzVam!gOp>?7V)txRUWU)I^$1 zbiN1Ks0#0yNd39D{mucEE}L2O#g{P*zrz-I8yjNClg_S>!2yhOP!rsOeeejXl0V^c z>^8~SGpDc_QL(CHx>ufo+VV+_u&g9nub+?qng+Q*9+`RYYY} zo9W>D#l*7PYIi&v%g9us3e~k&=?o^izi(}|;o=BOYV*i*L`}=GlV~}3Wqr$`50J{a zk<_)#bfVlr^SXnslTqtGm+U2#WC7uI_4@u_eG!8!@*0UHb!{b`V`MQI;vReocat^l zxGU;)>p_N*68#{uvvufi|<1Nc97H~gEXM6C$EsF zNjcd-!U=D%?;jr%F@R){XUP9sFAf|f{v?e&rur9?XflJ0A!@_P01`vGkh->nj&|^2 z5U}LwRg#7;bPkX@~wZ>|\n" "Language-Team: Nerun \n" @@ -36,69 +36,76 @@ msgid "" msgstr "" "Não pode controlar mais nenhum fantoche (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." -msgstr "Demasiadas falhas de autenticação; por favor volta a tentar dentro de alguns minutos." +msgstr "" +"Demasiadas falhas de autenticação; por favor volta a tentar dentro de alguns " +"minutos." -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" msgstr "" "|rVocê foi banido e não pode passar daqui.\n" -"Se acredita que este banimento foi um erro, por favor contacte um admin por email.|x" +"Se acredita que este banimento foi um erro, por favor contacte um admin por " +"email.|x" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "Username e/ou password incorrectos." -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "Demasiadas falhas de autenticação." -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." -msgstr "Está a criar demasiadas contas. Por favor ligue-se a uma conta existente." +msgstr "" +"Está a criar demasiadas contas. Por favor ligue-se a uma conta existente." -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." -msgstr "Ocorreu um erro ao criar a conta. Se este problema persistir, contacte " -"um admin." +msgstr "" +"Ocorreu um erro ao criar a conta. Se este problema persistir, contacte um " +"admin." -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." -msgstr "Ocorreu um erro. Por favor contacte um admin por e-mail caso o problema persista." +msgstr "" +"Ocorreu um erro. Por favor contacte um admin por e-mail caso o problema " +"persista." -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 #, fuzzy #| msgid "Player being deleted." msgid "Account being deleted." msgstr "Jogador sendo deletado." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "|G{key} ligado|n" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 #, fuzzy #| msgid "The destination doesn't exist." msgid "The Character does not exist." msgstr "O destino não existe." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "|R{key} desligado{reason}|n" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "Contas guest não estão activadas neste servidor." -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "Todas as contas guest estão em utilização. Por favor tente mais tarde." @@ -117,8 +124,8 @@ msgid "" "reproduce.\n" msgstr "" "\n" -"Um erro não previsto ocorreu. Por favor reporte o problema detalhando os passos para " -"o reproduzir.\n" +"Um erro não previsto ocorreu. Por favor reporte o problema detalhando os " +"passos para o reproduzir.\n" #: commands/cmdhandler.py:97 msgid "" @@ -127,7 +134,8 @@ msgid "" "error in one of the cmdsets to merge.\n" msgstr "" "\n" -"Um cmdset merger-error ocorreu. Isto é tipicamente devido a um erro de sintaxe\n" +"Um cmdset merger-error ocorreu. Isto é tipicamente devido a um erro de " +"sintaxe\n" "num dos cmdsets a fazer merge.\n" #: commands/cmdhandler.py:103 @@ -147,7 +155,8 @@ msgid "" "multiple causes.\n" msgstr "" "\n" -"Nenhum conjunto de comandos foi encontrado! Este é um problema crítico que pode ter\n" +"Nenhum conjunto de comandos foi encontrado! Este é um problema crítico que " +"pode ter\n" "múltiplas causas.\n" #: commands/cmdhandler.py:118 @@ -159,7 +168,8 @@ msgid "" msgstr "" "\n" "Nenhum conjunto de comandos foi contrado! Ese é um sinal de um problema\n" -"crítico. Se desligar e voltar a ligar não resolve o problema, tente contactar\n" +"crítico. Se desligar e voltar a ligar não resolve o problema, tente " +"contactar\n" "o admin do servidor através de outros meios para assistência.\n" #: commands/cmdhandler.py:128 @@ -170,7 +180,8 @@ msgid "" "traceback and steps to reproduce.\n" msgstr "" "\n" -"Um problema aconteceu a lidar com um comando. Se isto não foi causado por uma\n" +"Um problema aconteceu a lidar com um comando. Se isto não foi causado por " +"uma\n" "alteração local, por favor reporte um problema com no projecto Evennia,\n" "incluindo o traceback e os passos de reprodução.\n" @@ -365,70 +376,70 @@ msgstr "Lock: '%s' apresenta irregularidade no uso dos parênteses." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Lock: '%s' não possui funções de lock válidas." -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "" "Não foi possível executar o movimento ('%s'). Contacte um administrador." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "O destino não existe." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "Não foi possível encontrar a home predefinida '(#%d)'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "" "Algo deu errado! Você foi despejado em lugar nenhum. Contacte um " "administrador." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, fuzzy, python-brace-format #| msgid "Your character %s has been destroyed." msgid "Your character {key} has been destroyed." msgstr "Seu personagem %s foi destruído." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "Você tem agora {name} na sua posse." -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "{object} chega a {destination} de {origin}." -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "{object} chega a {destination}." -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "Nome de personagem inválido." -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "Existem demasiadas personagens associadas a esta conta." -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "Este é o Usuário #1." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "|r{obj} não tem localização e nenhuma home está configurada.|n" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" @@ -437,29 +448,30 @@ msgstr "" "\n" "Tornas-te |c{name}|n.\n" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "{name} entrou no jogo." -#: objects/objects.py:2712 -#, python-brace-format -msgid "{name} has left the game." +#: objects/objects.py:2716 +#, fuzzy, python-brace-format +#| msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "{name} saiu do jogo." -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "Este é o Usuário #1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "Este é o Usuário #1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "Não pode ir para aí." @@ -471,28 +483,32 @@ msgstr "Erro" msgid "Warning" msgstr "Aviso" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "Protótipo precis ade uma prototype_key" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." -msgstr "{protkey} é um protótipo apenas de leitura (definido como código em {module})." +msgstr "" +"{protkey} é um protótipo apenas de leitura (definido como código em " +"{module})." -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." -msgstr "{protkey} é um protótipo apenas de leitura (passado directamene como um dict)." +msgstr "" +"{protkey} é um protótipo apenas de leitura (passado directamene como um " +"dict)." -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "Protótipo {prototype_key} não encontrado." -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " @@ -501,71 +517,74 @@ msgstr "" "{caller} precisa permissões explícitas de edição para apagar o protótipo " "{prototype_key}." -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." -msgstr "Encontrados {num} protótipos correspondentes entre {module_prototypes}." +msgstr "" +"Encontrados {num} protótipos correspondentes entre {module_prototypes}." -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "Não foram encontrados protótipos." -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "Falta ao protótipo uma 'prototype_key'." -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "Protótipo {protkey} precisa de `typeclass` ou 'prototype_parent'." -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -"Protótipo {protkey} pode apenas ser usado como mixin visto que não tem chaves 'typeclass' " -"ou 'prototype_parent'." +"Protótipo {protkey} pode apenas ser usado como mixin visto que não tem " +"chaves 'typeclass' ou 'prototype_parent'." -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -"{err}: Protótipo {protkey} é baseado no typeclass {typeclass}, que não foi possível " -"importar!" +"{err}: Protótipo {protkey} é baseado no typeclass {typeclass}, que não foi " +"possível importar!" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "Protótipo {protkey} tenta ser o seu próprio pai." -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -"O `prototype_parent` (chamado '{parent}') do protótipo {protkey} não foi encontrado." +"O `prototype_parent` (chamado '{parent}') do protótipo {protkey} não foi " +"encontrado." -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "{protkey} tem um nesting infinito de protótipos." -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" " chain. Add `typeclass`, or a `prototype_parent` pointing to a prototype " "with a typeclass." msgstr "" -"Protótipo {protkey} não teu um `typeclass` definido em lado algum na sua cadeia de parentagem.\n" +"Protótipo {protkey} não teu um `typeclass` definido em lado algum na sua " +"cadeia de parentagem.\n" "Adicione `typeclass`, ou um `prototype_parent` a apontar para um protótipo " "com um typeclass." -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -642,12 +661,16 @@ msgstr "" "{servername} Protecção DoS está activa. Está na fila para se ligar em {num} " "segundos ..." -#: server/server.py:157 +#: server/server.py:156 #, fuzzy #| msgid "Idle timeout exceeded, disconnecting." msgid "idle timeout exceeded" msgstr "Tempo de inatividade esgotado, desconectando." +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "O seu cliente enviou uma sequência UTF-8 incorrecta." @@ -668,7 +691,8 @@ msgstr "Tempo de inatividade esgotado, desconectando." msgid "" "Too many failed attempts; you must wait a few minutes before trying again." msgstr "" -"Demasiadas tentativas falhadas; tem de aguardar alguns minutos antes de tentar outra vez." +"Demasiadas tentativas falhadas; tem de aguardar alguns minutos antes de " +"tentar outra vez." #: server/validators.py:31 msgid "Sorry, that username is reserved." @@ -684,8 +708,8 @@ msgid "" "{policy} From a terminal client, you can also use a phrase of multiple words " "if you enclose the password in double quotes." msgstr "" -"{policy} A partir de um cliente terminal, pode também usar uma frase de múltimas palavras " -"se envolver a password em aspas duplas." +"{policy} A partir de um cliente terminal, pode também usar uma frase de " +"múltimas palavras se envolver a password em aspas duplas." #: utils/eveditor.py:68 msgid "" @@ -746,24 +770,27 @@ msgstr "" " :UU - limpa todas as alterações e regressa ao estado inicial\n" "\n" " :dd - apaga a(s) última(s) linha(s) \n" -" :dw - apaga a palavra ou expressão regular em todo o buffer ou na linha \n" +" :dw - apaga a palavra ou expressão regular em todo o buffer ou " +"na linha \n" " :DD - apaga todo o buffer\n" "\n" " :y - copia a(s) linha(s) para o buffer de cópia\n" " :x - corta a(s) linha(s) e guarda-as no buffer de cópia\n" -" :p - cola as linhas anteriormente copiadas directamente após \n" -" :i - insere o novo texto na linha . A linha antiga irá mover-se para " -"baixo\n" +" :p - cola as linhas anteriormente copiadas directamente após " +"\n" +" :i - insere o novo texto na linha . A linha antiga irá " +"mover-se para baixo\n" " :r - substitui a linha com o texto \n" " :I - insere texto no início da linha \n" " :A - adiciona text no final da linha \n" "\n" -" :s - encontra/substitui a palavra ou expressão regular no buffer ou na linha " -"\n" +" :s - encontra/substitui a palavra ou expressão regular no " +"buffer ou na linha \n" "\n" -" :j - justifica buffer ou linha . é f, c, l ou r. Por omissão é f " -"(full/cheio)\n" -" :f - inunda-preenche todo o buffer ou a linha : Equivalente a fazer :j left\n" +" :j - justifica buffer ou linha . é f, c, l ou r. Por omissão " +"é f (full/cheio)\n" +" :f - inunda-preenche todo o buffer ou a linha : Equivalente a " +"fazer :j left\n" " :fi - indenta todo o buffer ou a linha \n" " :fd - desindenta todo o buffer ou a linha \n" "\n" @@ -808,7 +835,8 @@ msgstr "" "\n" "{error}\n" "\n" -"|rErro no carregamento da função no buffer. Não foi possível carregar os dados iniciais.|n\n" +"|rErro no carregamento da função no buffer. Não foi possível carregar os " +"dados iniciais.|n\n" #: utils/eveditor.py:136 #, python-brace-format @@ -861,9 +889,11 @@ msgstr "" "\n" "{error}\n" "\n" -"|rO estado do editor não pode ser gravado para modo persistente. Mudando para\n" +"|rO estado do editor não pode ser gravado para modo persistente. Mudando " +"para\n" "o modo não-persistente (o que significa que a sessão do editor não irá\n" -"sobreviver um eventual reload do servidor - por isso grava frequentemente!)|n\n" +"sobreviver um eventual reload do servidor - por isso grava frequentemente!)|" +"n\n" #: utils/eveditor.py:167 msgid "" @@ -871,9 +901,9 @@ msgid "" "EvEditor callbacks could not be pickled, for example because it's a class " "method or is defined inside another function." msgstr "" -"Erro no modo persistente do EvEditor. Tipicamente, isto é porque um ou mais dos " -"callbacks do EvEditor não puderam ser pickled, por exemplo porque é um método de classe " -"ou é definido dentro de outra função." +"Erro no modo persistente do EvEditor. Tipicamente, isto é porque um ou mais " +"dos callbacks do EvEditor não puderam ser pickled, por exemplo porque é um " +"método de classe ou é definido dentro de outra função." #: utils/eveditor.py:173 msgid "Nothing to undo." @@ -1134,7 +1164,6 @@ msgstr "|wp|Wágina anterior|n" msgid "|wn|Wext page|n" msgstr "|Wpróxima pági|wn|Wa|n" - #: utils/evmenu.py:1689 msgid "Aborted." msgstr "Abortado." @@ -1165,31 +1194,31 @@ msgstr "Havia várias correspondências." msgid "Please be more specific." msgstr "Por favor seja mais específico." -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -"{obj}.{handlername} é um handler e não pode ser definido directamente. Para adicionar valores, " -"use `{obj}.{handlername}.add()`." +"{obj}.{handlername} é um handler e não pode ser definido directamente. Para " +"adicionar valores, use `{obj}.{handlername}.add()`." -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -"{obj}.{handlername} é um handler e não pode ser apagado directamente. Para remover " -"valores, use `{obj}.{handlername}.remove()`." +"{obj}.{handlername} é um handler e não pode ser apagado directamente. Para " +"remover valores, use `{obj}.{handlername}.remove()`." -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "Não foi possível encontrar '%s'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, fuzzy, python-brace-format #| msgid "More than one match for '%s' (please narrow target):" msgid "More than one match for '{query}' (please narrow target):\n" @@ -1244,7 +1273,8 @@ msgstr "Tem de indicar um número inteiro para {option_key}!" #: utils/validatorfuncs.py:169 #, python-brace-format msgid "Could not convert '{entry}' to a whole number for {option_key}!" -msgstr "Não foi possível converter '{entry}' num número inteiro para {option_key}!" +msgstr "" +"Não foi possível converter '{entry}' num número inteiro para {option_key}!" #: utils/validatorfuncs.py:180 #, python-brace-format @@ -1259,7 +1289,8 @@ msgstr "{option_key} deve ser um número inteiro maior ou igual a 0!" #: utils/validatorfuncs.py:210 #, python-brace-format msgid "Must enter a true/false input for {option_key}. Accepts {alternatives}." -msgstr "Deve inserir um input true/false para {option_key}. Aceita {alternatives}." +msgstr "" +"Deve inserir um input true/false para {option_key}. Aceita {alternatives}." #: utils/validatorfuncs.py:240 #, python-brace-format diff --git a/evennia/locale/ru/LC_MESSAGES/django.po b/evennia/locale/ru/LC_MESSAGES/django.po index 4eb75df940..6f52b665b8 100644 --- a/evennia/locale/ru/LC_MESSAGES/django.po +++ b/evennia/locale/ru/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Evennia Russian Translation v0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:28+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2020-04-19 18:32+0000\n" "Last-Translator: 3eluk\n" "Language-Team: Russian (Russia)\n" @@ -31,64 +31,64 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" msgstr "" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "" -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." msgstr "" -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "Аккаунт удаляется." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 #, fuzzy #| msgid "The destination doesn't exist." msgid "The Character does not exist." msgstr "Такой точки назначения нету." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "" -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" @@ -290,97 +290,97 @@ msgstr "" msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "" -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "Не удалось выполнить действие ('%s'). Свяжитесь с администратором." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "Такой точки назначения нету." -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "Не обнаружен дом по умолчанию '(#%d)'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "" "Что-то пошло не так! Тебя выбрасывает в пустоту. Свяжитесь с администратором." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, fuzzy, python-brace-format #| msgid "Your character %s has been destroyed." msgid "Your character {key} has been destroyed." msgstr "Ваш персонаж %s был уничтожен." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "Это Пользователь №1." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "Это Пользователь №1." -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "Это Пользователь №1." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -392,83 +392,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -476,7 +476,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -540,10 +540,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "время бездействия превышено" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -991,27 +995,27 @@ msgstr "Здесь было несколько совпадений." msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "Не обнаружено '%s'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, fuzzy, python-brace-format #| msgid "More than one match for '%s' (please narrow target):\n" msgid "More than one match for '{query}' (please narrow target):\n" diff --git a/evennia/locale/sv/LC_MESSAGES/django.mo b/evennia/locale/sv/LC_MESSAGES/django.mo index f069a3e28a533d1cfd91bf0d62da9e2b2bb9f180..75927c9e9f8495d3c1d842d5dba75370bc4f5263 100644 GIT binary patch delta 4288 zcmX}v3s9A19>?)NDPSrJh^P<(f{;jZ6%#e$q9URwh@fRr;tec_TqtopY8P?W)e>DT z%e1T%bJq>UH8)r>ZKj!0o3?SL$r@|6EN5DG+oqk?cE7*#y!4DeKF{->bKdv49`O7Z z0oShv_^yQa-({3@ zr*IiYjxy`Ob=Zu_QD&oYA1=bT@g6gujfggz%Y{d=2YYc29oR%~xR+gwF`J3ka3W@K zmwa4->eyk7#MQB8eAJ#mwO_&{?7|TI6bIn9n1bJ9B+s|lIJ16S$iW=U#R7Z;d5;}O z&CExr2i!mgZXpa?uSZ}4X5(0_#!6g|^w~c0UjHW!p&dDf&)`@b&hssoN*>O`$@mO1 zYxW-Aj$dLHhVYbh%ty7GkX5kPunPZ-BQP}4jM=r@F%Sze4rk#~tiyNk1N5m!?R0x8 zzKrVeXQ&?D#0ePAJW{oM)Pq-`I=C0v7Ip$t@jU8%|MDD_>^hW(fn2Xb-FFFUiJFp` ze~oYp7w*6}u@FB;JvfmU^}q_u#Lc)6-$MRb*f_I?Fc)+25Nbxgz?t}O9FNmjaJ{|? zH8TfM9q376{)bZem<#IJ-%)G&6KeBC^J!+)vQZ_9!Z8}<2%sL%fc zSv|Xz>5-|p9LsP&cKN7i?W-6*@3q~ik)1_#>^kZ}|3zliQkfQYr~);T7Gz)94%7&b z<8b^A3owumPsC#6QMMkniH~3r`rf6Y8xLk@=|))?hn1Lt&3G3cLhX&OkP~Ntyf_6D zaRJt#PRR+>l6{Dw7{t11W=G&qOhsLvihSN@bExRSTd)L=xEJgP)CV%Tn>tv4n$lI+ zA2(qzZpLEV?s*yY!1!!8@*JE-do}7l9mqes#1HL13u1oMfeD`Tko{*(sHJ!wnSDF! zUB7|DX^-N|;ucIpt!*aiR8(RaHsE6H!C@FR$!)p`sF|9M={(;aq@o+NQPeQ?(u$v~^-5UPEFXKrpn`O2OgV_*q_#)O|H{Oe}v(3tJ9Uj38SkHr78Mc<@ zt2yp>%1z{1Ryx-$$u>Mj`wD8QwwE#g(NqqzV7hP)bxb}(?b5;XIJ+2wn!;q%h-+{l zHX@T|t*9kBiHZ0#Y7ZsMcbjfD2GMRpU4I<4w+{HIXe!@BjqFE^!b*l0hmAM{pGA#q zKdPf$$RycCWV={Yg&RmYrqF&Eb^SSHQtcA54=sv~5{~onLG;y9(F5N_ZHlYd4+ARQ z8U!WPkPlibregOVpDosC)KMqY!HY41UuiVyKl%vj8Z#yZT? z`M*X*Hy(G7o6;hjM0*?R2Io<)YkguN8a0Jea1_qP@wgJ>aVI8W7pCE-$nPNwS>pEA zB-H(CF@ootkBTtQu+ zhDuQPYsFYRfTQsY`q=39Ih7HZ{(w9G#i*%jLyh1J#^DWIis9@WoswqM$X`Kq-~txn ze^5&@jW=sRPht%2$2{ytCf$Bs%KU387S*~3uECMCkD@ws9yQfhP5q|BVLJGijBzZ*(KB( zW!Je8RG>Q8g6hat)PsBRX}pG8v9aEr_nV$GR=eH49W!}-$U~fc%*Sf48bN$!wp!7$52c4J(gf_qg(58e2n%ERL2KB;=Wn)k<;U| zaw-A5&`DHYA=)HU)u3qln#lm7nNiV52m5PoBdNNal#+hrR`OeNH&OWuNg=-?tc3lB zsQCZ>KTc&Gd6B4xI{TU$mAzy-(a2Pi$=ie@{Yz=5_6(Ww%N70uL;Yp4mS`jE3+s<$ zJyFr-(|(9!|Jfj-Qa}#-Ywm|m#y)a_+(CK>Q|3PjJ5WV?M}_70AK3%`7XKIUoPkTd zy13t~zwYT{*=;*%A?y+TpUnRy@;jVH77&$VgB-Xbcy$@3(Gyh9EW9lw0iR}OiV zp*WfRo}Bcq&DZ+(m7>0i=R(f}+(r_~2BH$|unOcv`u}RG#BpRl`77B&Ldct>gPbDW zWDThzDo^V9U9Rr`naa<*NH4jKoF?~?Y@)J-93io!o^VL~EtMxP5MeGl`_&qT1g3+N1i1r@nj&` vOd?35#=eY-N)FjYo*+BPOwvG(k*7M3hF(ePe05SvR(ni+V&|ax(?S0S0SM)| delta 4378 zcmZwK4^Y?j9mnxEA&P$i5&7f4pNdi_sG))Q2N5S}2(A$PgMT1?fCz?ZYAOA!W;JIT zshQH!Ip;RSDe6pfq(P$_*L9Xxce8X&SKZXjyWMR^t95(6exL7k?rxv+^?Q6j-{0@| z{eJ#_e|Y1;xO<8h@|-;d0KeSpRIImTi}q8X!W^Dzupp%2&KqxcHG zi~quaT6CUfPsL7Di+eC`YT+nM#Y|MsR-ziR6VaGaJ>QN({pQ z>bhG|Q?x&c@mCL9IFW)^FbBgqsT=2^Znz2W$KzOp*O7lV`98B+EW=E^gc_0FOmHp^ z!7=DZz2ATunfFl*_$rz4kKo`tPN-%5__XG9Bx>>HAfsv}sGe@|Y`}5U4`DQZgu3yU zsPA{7z8}Z1FpD<9vk)t&Z@`0iEx>{1K0x>Rj$J_Y>=vqF0~iL~C=nT5D?~MD6RIZ% zko9G6p?dfk#$YU8nu#f>T~mkL%8sBG@nxKafjb=N!V_6py3i8zVLeX3H*h*$LamJm zPO{@H1*c#h7UGMjU2+vQW&g%VOl96QvRN2`g{br8$oB*G1P8it3(m#M?hPBtRrH0$ zs0LP}hO_~@VH5Vi1h+)4d(KV2 zrlJj*4ZG!?kLMu~Lp>Ys!D7@LFGlT(dMv=bxEQ~}Xq=hu7F`i)q-rsq``b1S7+pJz zy3og1k6pMH*Jrpjaua7$Pv#-<6s|!v>^5d&0t=uJOK=&sU>-&?&gHlixrDW$8uX3E zUvnA3=I@QE$h27|YEjmpKG=*JvWv(d*gvrj$1tvH!0V`~>O_713N8%cd4PYRp3B9w z*v8Iq^))z)xhu+M{D<&HBNMm+&*6GZn8SQx1Ma~&EDRt130I&!NoVM=idWusfdi&Yur(phb2AHI#kmP6=jW0`5g0p2U85 z8P&7vsD^eSgJk_5F=M${392KzF&R&I=RZXT*P>Ys^?#z z8W6>sIXDG1B>_~2I&cVHM_r$%QXu$)<7E0#5t&* zY)5vSH6vT!{)4*F+zQw8DjZ3DA9ll5)Ne;yMZokso0EaNCRr_J5fFD zR^^_66L2*3N=(8XUi}PeS6s#6cn39dQ7hdDWn(n;S`5Qy0vwFs;008Vo3H@ekG+}RBP`py{WA5PV_@&%3dXJd*^1OM&=h@eK*c0d1NffC7Q}3>WScO;!; zk`tto4Cem9eS8SV6O}oR;Ok^wd)!smVHwFFza{I*ljQ%Ed7ONfM3FP3fvAL&QRHzF z*v89QQb<&O?g;+3svE~Ilb@2;NFCvM5-h2_ZuO3{@fos?JT8#TZP5a^6)urWr-`YBVjep&)i`7Y|TB^@?|1Yd` B0HXi^ diff --git a/evennia/locale/sv/LC_MESSAGES/django.po b/evennia/locale/sv/LC_MESSAGES/django.po index d7dd679a40..a4b15e0216 100644 --- a/evennia/locale/sv/LC_MESSAGES/django.po +++ b/evennia/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Evennia 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:28+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2021-05-29 17:54+0200\n" "Last-Translator: Griatch \n" "Language-Team: Swedish <>\n" @@ -27,13 +27,15 @@ msgstr "|c{key}|R styrs redan av ett annat Spelarkonto." #, python-brace-format msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" -msgstr "Du kan inte kontrollera fler karaktärer samtidigt (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" +msgstr "" +"Du kan inte kontrollera fler karaktärer samtidigt (max " +"{_MAX_NR_SIMULTANEOUS_PUPPETS})" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "För många fel under inloggning. Vänligen försök igen om några minuter." -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" @@ -41,22 +43,22 @@ msgstr "" "|rDu har blivit bannlyst och kan inte fortsätta.\n" "Om du anser detta är felaktigt, vänligen email:a en administrator.|x" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "Användarnamn och/eller lösenord är felaktigt." -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "För många auktoriserings-fel." -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" "Du håller pä att skapa för många konton. Vänligen anslut till ett " "existerande konto." -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." @@ -64,33 +66,33 @@ msgstr "" "Ett fel uppstod när kontot skulle skapas. Kontakta en administrator om detta " "fel består." -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "Ett fel uppstod. Om felet består, vänligen email:a en administrator." -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "Kontot raderas." -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "|G{key} anslöt|n" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 msgid "The Character does not exist." msgstr "Karaktären existerar inte." -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "|R{key} frånkopplad{reason}|n" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "Gästkonton är inte aktiverade på denna server." -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "Alla gästkonton används redan. Vänligen försök senare." @@ -337,64 +339,64 @@ msgstr "Lås: '{lockdef}' has icke-matchande parenteser." msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Lås: '{lockdef}' innehåller inga acceptabla låsfunktioner." -#: objects/objects.py:855 +#: objects/objects.py:856 #, python-brace-format msgid "Couldn't perform move ({err}). Contact an admin." msgstr "Kunde inte utföra föflyttningen ('{err}'). Kontakta en admininstrator." -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "Destinationen existerar inte." -#: objects/objects.py:977 +#: objects/objects.py:978 #, python-brace-format msgid "Could not find default home '(#{dbid})'." msgstr "Kunde inte hitta standard-hem '(#{dbid})'." -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "" "Nåtgot gick fel! Du har blivit flyttat till en icke-existerande plats. " "Kontakta en admininstrator." -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, python-brace-format msgid "Your character {key} has been destroyed." msgstr "Din karaktär {key} har raderats." -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "Du har nu {name}." -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "{object} anländer till {destination} från {origin}." -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "{object} anländer till {destination}." -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "Inkorrekt karaktärsnamn." -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "Det finns för många karaktärer associerade till detta konto." -#: objects/objects.py:2574 +#: objects/objects.py:2575 msgid "This is a character." msgstr "Detta är en karaktär." -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "|r{obj} har ingen location och inget home är satt.|n" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" @@ -403,25 +405,26 @@ msgstr "" "\n" "Du blir |c{name}|n.\n" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "{name} har anslutit." -#: objects/objects.py:2712 -#, python-brace-format -msgid "{name} has left the game." +#: objects/objects.py:2716 +#, fuzzy, python-brace-format +#| msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "{name} lämnade spelet." -#: objects/objects.py:2831 +#: objects/objects.py:2838 msgid "This is a room." msgstr "Detta är ett rum." -#: objects/objects.py:3038 +#: objects/objects.py:3045 msgid "This is an exit." msgstr "Detta är en utgång." -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "Du kan inte gå dit." @@ -433,20 +436,20 @@ msgstr "Fel" msgid "Warning" msgstr "Varning" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "Prototypen kräver en prototype_key" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" "{protkey} är en prototyp som enbart är läsbar (definierad som kod i " "{module})." -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, fuzzy, python-brace-format #| msgid "{protkey} is a read-only prototype (defined as code in {module})." msgid "{protkey} is a read-only prototype (passed directly as a dict)." @@ -454,12 +457,12 @@ msgstr "" "{protkey} är en prototyp som enbart är läsbar (definierad som kod i " "{module})." -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "Prototypen {prototype_key} hittades inte." -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " @@ -467,26 +470,26 @@ msgid "" msgstr "" "{caller} behöver 'edit'-permission för att radera prototypen {prototype_key}." -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, fuzzy, python-brace-format #| msgid "Found {num} matching prototypes {module_prototypes}." msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "Hittade {num} matchande prototyper {module_prototypes}." -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "Ingen prototype hittades." -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "Prototypen saknar en 'prototype_key'." -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "Prototype {protkey} kräver 'typeclass' eller 'prototype_parent'." -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " @@ -495,7 +498,7 @@ msgstr "" "Prototypen {protkey} kan bara användas som en mixin eftersom den saknar " "'typeclass'- eller 'prototype_parent'-nycklar." -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " @@ -504,22 +507,23 @@ msgstr "" "{err}: Prototypen {protkey} är baserad på typeclassen {typeclass}, vilken " "inte kunde importeras!" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "Prototypen {protkey} försöker bli sin egen förälder." -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, fuzzy, python-brace-format -msgid "Prototype {protkey}'s prototype_parent '{parent}' was not found." +msgid "" +"Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "Prototypen {protkey} har in okänd 'prototype_parent' ({parent})." -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "{protkey} har en oändlig nästling av prototyper." -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -530,7 +534,7 @@ msgstr "" "Lägg till 'typeclass' eller en 'prototype_parent' som pekar på en prototyp " "med 'typeclass'." -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -561,7 +565,8 @@ msgid "" "help, want to contribute, report issues or just join the community.\n" "\n" "As a privileged user, write |wbatchcommand tutorial_world.build|n to build\n" -"tutorial content. Once built, try |wintro|n for starting help and |wtutorial|n to\n" +"tutorial content. Once built, try |wintro|n for starting help and |wtutorial|" +"n to\n" "play the demo game.\n" msgstr "" "\n" @@ -570,8 +575,8 @@ msgstr "" "behöver hjälp, vill hjälpa till, rapportera fel eller bara gå med i " "utvecklar-communityn.\n" "Som konto #1 kan du skapa en demo/tutorial-area med '|wbatchcommand " -"tutorial_world.build|n'. Du kan sedan testa |wintro|n for hjälp och |wtutorial|n för " -"att spela igenom demot.\n" +"tutorial_world.build|n'. Du kan sedan testa |wintro|n for hjälp och |" +"wtutorial|n för att spela igenom demot.\n" #: server/initial_setup.py:108 msgid "This is User #1." @@ -582,6 +587,7 @@ msgid "Limbo" msgstr "Limbo" #: server/portal/portalsessionhandler.py:41 +#, python-brace-format msgid "" "{servername} DoS protection is active.You are queued to connect in {num} " "seconds ..." @@ -589,10 +595,16 @@ msgstr "" "{servername} DoS-skydd är aktiv. Du har hamnat i kö och ansluter om {num} " "sekunder ..." -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "Timeout. Kopplar ur" +#: server/server.py:177 +#, fuzzy +#| msgid "Connection lost: %s" +msgid " (connection lost)" +msgstr "Uppkopplingen förlorades: %s" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "Din klient skickade en inkorrekt UTF-8-sekvens." @@ -1116,28 +1128,30 @@ msgstr "Det fanns många träffar:" msgid "Please be more specific." msgstr "Försök vara mer specifik." -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." -msgstr "{obj}.{handlername} är en 'handler' och kan inte ges ett direkt värde. För " +msgstr "" +"{obj}.{handlername} är en 'handler' och kan inte ges ett direkt värde. För " "att sätta ett värde, använd `{obj}.{handlername} istället." -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." -msgstr "{obj}.{handlername} är en 'handler' och kan inte raderas. För att ta bort " +msgstr "" +"{obj}.{handlername} är en 'handler' och kan inte raderas. För att ta bort " "värden, använd `{obj}.{handlername}.remove()` istället." -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, python-brace-format msgid "Could not find '{query}'." msgstr "Kunde inte hitta '{query}'." -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, python-brace-format msgid "More than one match for '{query}' (please narrow target):\n" msgstr "Mer än en träff för '{query}' (försök vara mer specifik):\n" @@ -1403,9 +1417,6 @@ msgstr "Du har inte rättigheter att se eller ändra någonting." #~ msgid "Successfully authenticated to the '%s' network." #~ msgstr "Identifierade sig framgångsrikt till nätverket '%s'." -#~ msgid "Connection lost: %s" -#~ msgstr "Uppkopplingen förlorades: %s" - #~ msgid "Unknown" #~ msgstr "Okänd" diff --git a/evennia/locale/zh/LC_MESSAGES/django.po b/evennia/locale/zh/LC_MESSAGES/django.po index a897a403ce..0b30ba017b 100644 --- a/evennia/locale/zh/LC_MESSAGES/django.po +++ b/evennia/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-02 09:28+0000\n" +"POT-Creation-Date: 2022-10-29 18:53+0000\n" "PO-Revision-Date: 2019-05-03 17:04+0800\n" "Last-Translator: \n" "Language-Team: \n" @@ -27,64 +27,64 @@ msgid "" "You cannot control any more puppets (max {_MAX_NR_SIMULTANEOUS_PUPPETS})" msgstr "" -#: accounts/accounts.py:552 +#: accounts/accounts.py:555 msgid "Too many login failures; please try again in a few minutes." msgstr "" -#: accounts/accounts.py:565 accounts/accounts.py:829 +#: accounts/accounts.py:568 accounts/accounts.py:832 msgid "" "|rYou have been banned and cannot continue from here.\n" "If you feel this ban is in error, please email an admin.|x" msgstr "" -#: accounts/accounts.py:577 +#: accounts/accounts.py:580 msgid "Username and/or password is incorrect." msgstr "" -#: accounts/accounts.py:584 +#: accounts/accounts.py:587 msgid "Too many authentication failures." msgstr "" -#: accounts/accounts.py:800 +#: accounts/accounts.py:803 msgid "" "You are creating too many accounts. Please log into an existing account." msgstr "" -#: accounts/accounts.py:846 +#: accounts/accounts.py:849 msgid "" "There was an error creating the Account. If this problem persists, contact " "an admin." msgstr "" -#: accounts/accounts.py:882 accounts/accounts.py:1798 +#: accounts/accounts.py:885 accounts/accounts.py:1801 msgid "An error occurred. Please e-mail an admin if the problem persists." msgstr "" -#: accounts/accounts.py:915 +#: accounts/accounts.py:918 msgid "Account being deleted." msgstr "用户已删除。" -#: accounts/accounts.py:1472 accounts/accounts.py:1816 +#: accounts/accounts.py:1475 accounts/accounts.py:1819 #, python-brace-format msgid "|G{key} connected|n" msgstr "" -#: accounts/accounts.py:1478 +#: accounts/accounts.py:1481 #, fuzzy #| msgid "The destination doesn't exist." msgid "The Character does not exist." msgstr "目的地不存在。" -#: accounts/accounts.py:1517 +#: accounts/accounts.py:1520 #, python-brace-format msgid "|R{key} disconnected{reason}|n" msgstr "" -#: accounts/accounts.py:1751 +#: accounts/accounts.py:1754 msgid "Guest accounts are not enabled on this server." msgstr "" -#: accounts/accounts.py:1761 +#: accounts/accounts.py:1764 msgid "All guest accounts are in use. Please try again later." msgstr "" @@ -318,96 +318,96 @@ msgstr "Lock: '{lockdef}' 英文括号不匹配。" msgid "Lock: '{lockdef}' has no valid lock functions." msgstr "Lock: '{lockdef}' 缺少合法Lock函数。" -#: objects/objects.py:855 +#: objects/objects.py:856 #, fuzzy, python-brace-format #| msgid "Couldn't perform move ('%s'). Contact an admin." msgid "Couldn't perform move ({err}). Contact an admin." msgstr "无法做出行动 ('%s')。请联系管理员。" -#: objects/objects.py:865 +#: objects/objects.py:866 msgid "The destination doesn't exist." msgstr "目的地不存在。" -#: objects/objects.py:977 +#: objects/objects.py:978 #, fuzzy, python-brace-format #| msgid "Could not find default home '(#%d)'." msgid "Could not find default home '(#{dbid})'." msgstr "无法定位默认寓所 '(#%d)' 。" -#: objects/objects.py:991 +#: objects/objects.py:992 msgid "Something went wrong! You are dumped into nowhere. Contact an admin." msgstr "出现错误!您进入了错误的地点。请联系管理员。" -#: objects/objects.py:1144 +#: objects/objects.py:1145 #, fuzzy, python-brace-format #| msgid "Your character %s has been destroyed." msgid "Your character {key} has been destroyed." msgstr "您的角色 %s 被摧毁了。" -#: objects/objects.py:1852 +#: objects/objects.py:1853 #, python-brace-format msgid "You now have {name} in your possession." msgstr "" -#: objects/objects.py:1862 +#: objects/objects.py:1863 #, python-brace-format msgid "{object} arrives to {destination} from {origin}." msgstr "" -#: objects/objects.py:1864 +#: objects/objects.py:1865 #, python-brace-format msgid "{object} arrives to {destination}." msgstr "" -#: objects/objects.py:2529 +#: objects/objects.py:2530 msgid "Invalid character name." msgstr "" -#: objects/objects.py:2548 +#: objects/objects.py:2549 msgid "There are too many characters associated with this account." msgstr "" -#: objects/objects.py:2574 +#: objects/objects.py:2575 #, fuzzy #| msgid "This is User #1." msgid "This is a character." msgstr "这是管理员。" -#: objects/objects.py:2663 +#: objects/objects.py:2664 #, python-brace-format msgid "|r{obj} has no location and no home is set.|n" msgstr "" -#: objects/objects.py:2681 +#: objects/objects.py:2682 #, python-brace-format msgid "" "\n" "You become |c{name}|n.\n" msgstr "" -#: objects/objects.py:2686 +#: objects/objects.py:2687 #, python-brace-format msgid "{name} has entered the game." msgstr "" -#: objects/objects.py:2712 +#: objects/objects.py:2716 #, python-brace-format -msgid "{name} has left the game." +msgid "{name} has left the game{reason}." msgstr "" -#: objects/objects.py:2831 +#: objects/objects.py:2838 #, fuzzy #| msgid "This is User #1." msgid "This is a room." msgstr "这是管理员。" -#: objects/objects.py:3038 +#: objects/objects.py:3045 #, fuzzy #| msgid "This is User #1." msgid "This is an exit." msgstr "这是管理员。" -#: objects/objects.py:3135 +#: objects/objects.py:3142 msgid "You cannot go there." msgstr "" @@ -419,83 +419,83 @@ msgstr "" msgid "Warning" msgstr "" -#: prototypes/prototypes.py:390 +#: prototypes/prototypes.py:389 msgid "Prototype requires a prototype_key" msgstr "" -#: prototypes/prototypes.py:398 prototypes/prototypes.py:467 -#: prototypes/prototypes.py:1087 +#: prototypes/prototypes.py:397 prototypes/prototypes.py:466 +#: prototypes/prototypes.py:1092 #, python-brace-format msgid "{protkey} is a read-only prototype (defined as code in {module})." msgstr "" -#: prototypes/prototypes.py:400 prototypes/prototypes.py:469 -#: prototypes/prototypes.py:1089 +#: prototypes/prototypes.py:399 prototypes/prototypes.py:468 +#: prototypes/prototypes.py:1094 #, python-brace-format msgid "{protkey} is a read-only prototype (passed directly as a dict)." msgstr "" -#: prototypes/prototypes.py:476 +#: prototypes/prototypes.py:475 #, python-brace-format msgid "Prototype {prototype_key} was not found." msgstr "" -#: prototypes/prototypes.py:484 +#: prototypes/prototypes.py:483 #, python-brace-format msgid "" "{caller} needs explicit 'edit' permissions to delete prototype " "{prototype_key}." msgstr "" -#: prototypes/prototypes.py:606 +#: prototypes/prototypes.py:605 #, python-brace-format msgid "Found {num} matching prototypes among {module_prototypes}." msgstr "" -#: prototypes/prototypes.py:766 +#: prototypes/prototypes.py:765 msgid "No prototypes found." msgstr "" -#: prototypes/prototypes.py:817 +#: prototypes/prototypes.py:816 msgid "Prototype lacks a 'prototype_key'." msgstr "" -#: prototypes/prototypes.py:826 +#: prototypes/prototypes.py:825 #, python-brace-format msgid "Prototype {protkey} requires `typeclass` or 'prototype_parent'." msgstr "" -#: prototypes/prototypes.py:833 +#: prototypes/prototypes.py:832 #, python-brace-format msgid "" "Prototype {protkey} can only be used as a mixin since it lacks 'typeclass' " "or 'prototype_parent' keys." msgstr "" -#: prototypes/prototypes.py:844 +#: prototypes/prototypes.py:843 #, python-brace-format msgid "" "{err}: Prototype {protkey} is based on typeclass {typeclass}, which could " "not be imported!" msgstr "" -#: prototypes/prototypes.py:863 +#: prototypes/prototypes.py:862 #, python-brace-format msgid "Prototype {protkey} tries to parent itself." msgstr "" -#: prototypes/prototypes.py:869 +#: prototypes/prototypes.py:868 #, python-brace-format msgid "" "Prototype {protkey}'s `prototype_parent` (named '{parent}') was not found." msgstr "" -#: prototypes/prototypes.py:877 +#: prototypes/prototypes.py:875 #, python-brace-format msgid "{protkey} has infinite nesting of prototypes." msgstr "" -#: prototypes/prototypes.py:902 +#: prototypes/prototypes.py:900 #, python-brace-format msgid "" "Prototype {protkey} has no `typeclass` defined anywhere in its parent\n" @@ -503,7 +503,7 @@ msgid "" "with a typeclass." msgstr "" -#: prototypes/spawner.py:497 +#: prototypes/spawner.py:495 #, python-brace-format msgid "" "Diff contains non-dicts that are not on the form (old, new, action_to_take): " @@ -575,10 +575,14 @@ msgid "" "seconds ..." msgstr "" -#: server/server.py:157 +#: server/server.py:156 msgid "idle timeout exceeded" msgstr "连接超时" +#: server/server.py:177 +msgid " (connection lost)" +msgstr "" + #: server/sessionhandler.py:41 msgid "Your client sent an incorrect UTF-8 sequence." msgstr "" @@ -1029,27 +1033,27 @@ msgstr "发现多个匹配项。" msgid "Please be more specific." msgstr "" -#: utils/utils.py:2121 +#: utils/utils.py:2127 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be set directly. To add values, " "use `{obj}.{handlername}.add()` instead." msgstr "" -#: utils/utils.py:2131 +#: utils/utils.py:2137 #, python-brace-format msgid "" "{obj}.{handlername} is a handler and can't be deleted directly. To remove " "values, use `{obj}.{handlername}.remove()` instead." msgstr "" -#: utils/utils.py:2272 +#: utils/utils.py:2278 #, fuzzy, python-brace-format #| msgid "Could not find '%s'." msgid "Could not find '{query}'." msgstr "无法找到 '%s'" -#: utils/utils.py:2279 +#: utils/utils.py:2285 #, fuzzy, python-brace-format #| msgid "More than one match for '%s' (please narrow target):\n" msgid "More than one match for '{query}' (please narrow target):\n" diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 32e96cd211..586305c8f6 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -1644,14 +1644,15 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): """ pass - def at_post_unpuppet(self, account, session=None, **kwargs): + def at_post_unpuppet(self, account=None, session=None, **kwargs): """ Called just after the Account successfully disconnected from this object, severing all connections. Args: account (Account): The account object that just disconnected - from this object. + from this object. This can be `None` if this is called + automatically (such as after a cleanup operation). session (Session): Session id controlling the connection that just disconnected. **kwargs (dict): Arbitrary, optional arguments for users @@ -2689,7 +2690,7 @@ class DefaultCharacter(DefaultObject): self.location.for_contents(message, exclude=[self], from_obj=self) - def at_post_unpuppet(self, account, session=None, **kwargs): + def at_post_unpuppet(self, account=None, session=None, **kwargs): """ We stove away the character when the account goes ooc/logs off, otherwise the character object will remain in the room also @@ -2700,6 +2701,9 @@ class DefaultCharacter(DefaultObject): from this object. session (Session): Session controlling the connection that just disconnected. + Keyword Args: + reason (str): If given, adds a reason for the unpuppet. This + is set when the user is auto-unpuppeted due to being link-dead. **kwargs (dict): Arbitrary, optional arguments for users overriding the call (unused by default). """ @@ -2709,7 +2713,10 @@ class DefaultCharacter(DefaultObject): def message(obj, from_obj): obj.msg( - _("{name} has left the game.").format(name=self.get_display_name(obj)), + _("{name} has left the game{reason}.").format( + name=self.get_display_name(obj), + reason=kwargs.get("reason", ""), + ), from_obj=from_obj, ) diff --git a/evennia/server/server.py b/evennia/server/server.py index 8dc0d44227..f7df084986 100644 --- a/evennia/server/server.py +++ b/evennia/server/server.py @@ -7,39 +7,36 @@ the networking features. (this is done automatically by evennia/server/server_runner.py). """ -import time -import sys import os +import sys +import time import traceback -from twisted.web import static +import django from twisted.application import internet, service -from twisted.internet import reactor, defer +from twisted.internet import defer, reactor from twisted.internet.task import LoopingCall from twisted.logger import globalLogPublisher - -import django +from twisted.web import static django.setup() -import evennia import importlib +import evennia + evennia._init() +from django.conf import settings from django.db import connection from django.db.utils import OperationalError -from django.conf import settings - +from django.utils.translation import gettext as _ from evennia.accounts.models import AccountDB from evennia.scripts.models import ScriptDB from evennia.server.models import ServerConfig - -from evennia.utils.utils import get_evennia_version, mod_import, make_iter -from evennia.utils import logger from evennia.server.sessionhandler import SESSIONS - -from django.utils.translation import gettext as _ +from evennia.utils import logger +from evennia.utils.utils import get_evennia_version, make_iter, mod_import _SA = object.__setattr__ @@ -108,6 +105,7 @@ _MAINTENANCE_COUNT = 0 _FLUSH_CACHE = None _IDMAPPER_CACHE_MAXSIZE = settings.IDMAPPER_CACHE_MAXSIZE _GAMETIME_MODULE = None +_DEFAULTOBJECT = None _IDLE_TIMEOUT = settings.IDLE_TIMEOUT _LAST_SERVER_TIME_SNAPSHOT = 0 @@ -120,11 +118,12 @@ def _server_maintenance(): """ global EVENNIA, _MAINTENANCE_COUNT, _FLUSH_CACHE, _GAMETIME_MODULE global _LAST_SERVER_TIME_SNAPSHOT + global _OBJECTDB if not _FLUSH_CACHE: - from evennia.utils.idmapper.models import conditional_flush as _FLUSH_CACHE - if not _GAMETIME_MODULE: + from evennia.objects.models import ObjectDB as _OBJECTDB from evennia.utils import gametime as _GAMETIME_MODULE + from evennia.utils.idmapper.models import conditional_flush as _FLUSH_CACHE _MAINTENANCE_COUNT += 1 @@ -167,6 +166,20 @@ def _server_maintenance(): for session in to_disconnect: SESSIONS.disconnect(session, reason=reason) + # run unpuppet hooks for objects that are marked as being puppeted, + # but which lacks an account (indicates a broken unpuppet operation + # such as a server crash) + if _MAINTENANCE_COUNT > 1: + unpuppet_count = 0 + for obj in _OBJECTDB.objects.get_by_tag(key="puppeted", category="account"): + if not obj.has_account: + obj.at_pre_unpuppet() + obj.at_post_unpuppet(None, reason=_(" (connection lost)")) + obj.tags.remove("puppeted", category="account") + unpuppet_count += 1 + if unpuppet_count: + logger.log_msg(f"Ran unpuppet-hooks for {unpuppet_count} link-dead puppets.") + # ------------------------------------------------------------ # Evennia Main Server object @@ -280,8 +293,8 @@ class Evennia: ): # can't use any() since mismatches may be [0] which reads as False for any() # we have a changed default. Import relevant objects and # run the update - from evennia.objects.models import ObjectDB from evennia.comms.models import ChannelDB + from evennia.objects.models import ObjectDB # from evennia.accounts.models import AccountDB for i, prev, curr in ( @@ -372,8 +385,8 @@ class Evennia: """ - from evennia.comms.models import ChannelDB from evennia.accounts.models import AccountDB + from evennia.comms.models import ChannelDB from evennia.utils.create import create_channel superuser = AccountDB.objects.get(id=1) @@ -709,10 +722,10 @@ if WEBSERVER_ENABLED: from evennia.server.webserver import ( DjangoWebRoot, - WSGIWebServer, - Website, LockableThreadPool, PrivateStaticRoot, + Website, + WSGIWebServer, ) # start a thread pool and define the root url (/) as a wsgi resource