From fd2f762730121b3db9965b608a46d0161f91d473 Mon Sep 17 00:00:00 2001 From: Kai Huang Date: Sun, 7 Feb 2016 07:48:33 -0600 Subject: [PATCH] Internationalization for comms and objects. --- evennia/comms/channelhandler.py | 14 ++++++------- evennia/objects/objects.py | 35 ++++++++++++++++++--------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/evennia/comms/channelhandler.py b/evennia/comms/channelhandler.py index dce47ee24..9be5948bd 100644 --- a/evennia/comms/channelhandler.py +++ b/evennia/comms/channelhandler.py @@ -65,19 +65,19 @@ class ChannelCommand(command.Command): channelkey, msg = self.args caller = self.caller if not msg: - self.msg("Say what?") + self.msg(_("Say what?")) return channel = ChannelDB.objects.get_channel(channelkey) if not channel: - self.msg("Channel '%s' not found." % channelkey) + self.msg(_("Channel '%s' not found.") % channelkey) return if not channel.has_connection(caller): - string = "You are not connected to channel '%s'." + string = _("You are not connected to channel '%s'.") self.msg(string % channelkey) return if not channel.access(caller, 'send'): - string = "You are not permitted to send to channel '%s'." + string = _("You are not permitted to send to channel '%s'.") self.msg(string % channelkey) return channel.msg(msg, senders=self.caller, online=True) @@ -142,9 +142,9 @@ class ChannelHandler(object): key = channel.key aliases = channel.aliases.all() - ustring = "%s " % key.lower() + "".join(["\n %s " % alias.lower() for alias in aliases]) + ustring = _("%s ") % key.lower() + "".join([_("\n %s ") % alias.lower() for alias in aliases]) desc = channel.db.desc - string = \ + string = _( """ Channel '%s' @@ -152,7 +152,7 @@ class ChannelHandler(object): %s %s - """ % (key, ustring, desc) + """) % (key, ustring, desc) return string def add_channel(self, channel): diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 7240a5aa4..bc3d287e4 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -9,6 +9,7 @@ from builtins import object from future.utils import listvalues, with_metaclass from django.conf import settings +from django.utils.translation import ugettext as _ from evennia.typeclasses.models import TypeclassBase from evennia.typeclasses.attributes import NickHandler @@ -1097,8 +1098,9 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)): loc_name = "" loc_name = self.location.name dest_name = destination.name - string = "%s is leaving %s, heading for %s." - self.location.msg_contents(string % (name, loc_name, dest_name), exclude=self) + string = _("{name} is leaving {loc_name}, heading for {dest_name}.").format( + name=name, loc_name=loc_name, dest_name=dest_name) + self.location.msg_contents(string, exclude=self) def announce_move_to(self, source_location): """ @@ -1114,7 +1116,7 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)): if not source_location and self.location.has_player: # This was created from nowhere and added to a player's # inventory; it's probably the result of a create command. - string = "You now have %s in your possession." % name + string = _("You now have %s in your possession.") % name self.location.msg(string) return @@ -1122,8 +1124,9 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)): loc_name = self.location.name if source_location: src_name = source_location.name - string = "%s arrives to %s from %s." - self.location.msg_contents(string % (name, loc_name, src_name), exclude=self) + string = _("{name} arrives to {loc_name} from {src_name}.").format( + name=name, loc_name=loc_name, src_name=src_name) + self.location.msg_contents(string, exclude=self) def at_after_move(self, source_location): """ @@ -1281,14 +1284,14 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)): else: things.append(key) # get description, build string - string = "{c%s{n\n" % self.get_display_name(looker) + string = _("{c%s{n\n" % self.get_display_name(looker)) desc = self.db.desc if desc: string += "%s" % desc if exits: - string += "\n{wExits:{n " + ", ".join(exits) + string += _("\n{wExits:{n " + ", ".join(exits)) if users or things: - string += "\n{wYou see:{n " + ", ".join(users + things) + string += _("\n{wYou see:{n " + ", ".join(users + things)) return string def at_look(self, target): @@ -1308,7 +1311,7 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)): """ if not target.access(self, "view"): - return "Could not find '%s'." % target + return _("Could not find '%s'.") % target # the target's at_desc() method. target.at_desc(looker=self) return target.return_appearance(self) @@ -1427,7 +1430,7 @@ class DefaultCharacter(DefaultObject): self.db.prelogout_location = self.location self.location.at_object_receive(self, self.location) else: - player.msg("{r%s has no location and no home is set.{n" % self, session=session) + player.msg(_("{r%s has no location and no home is set.{n") % self, session=session) def at_post_puppet(self): """ @@ -1435,11 +1438,11 @@ class DefaultCharacter(DefaultObject): Player<->Object links have been established. """ - self.msg("\nYou become {c%s{n.\n" % self.name) + self.msg(_("\nYou become {c%s{n.\n") % self.name) self.msg(self.at_look(self.location)) def message(obj, from_obj): - obj.msg("%s has entered the game." % self.get_display_name(obj), from_obj=from_obj) + obj.msg(_("%s has entered the game.") % self.get_display_name(obj), from_obj=from_obj) self.location.for_contents(message, exclude=[self], from_obj=self) def at_post_unpuppet(self, player, session=None): @@ -1458,7 +1461,7 @@ class DefaultCharacter(DefaultObject): # only remove this char from grid if no sessions control it anymore. if self.location: def message(obj, from_obj): - obj.msg("%s has left the game." % self.get_display_name(obj), from_obj=from_obj) + obj.msg(_("%s has left the game.") % self.get_display_name(obj), from_obj=from_obj) self.location.for_contents(message, exclude=[self], from_obj=self) self.db.prelogout_location = self.location self.location = None @@ -1525,9 +1528,9 @@ class ExitCommand(command.Command): A string with identifying information to disambiguate the command, conventionally with a preceding space. """ if self.obj.destination: - return " (exit to %s)" % self.obj.destination.get_display_name(caller) + return _(" (exit to %s)") % self.obj.destination.get_display_name(caller) else: - return " (%s)" % self.obj.get_display_name(caller) + return _(" (%s)") % self.obj.get_display_name(caller) # # Base Exit object @@ -1664,4 +1667,4 @@ class DefaultExit(DefaultObject): read for an error string instead. """ - traversing_object.msg("You cannot go there.") + traversing_object.msg(_("You cannot go there."))