diff --git a/src/i18n.py b/src/i18n.py index 1236d2a74..51db7ba3c 100644 --- a/src/i18n.py +++ b/src/i18n.py @@ -184,17 +184,29 @@ class PluginInternationalization: def _getL10nCode(self): return getLocalePath('supybot', self.currentLocaleName, 'py') - def getPluralizers(self, current_pluralize, current_depluralize): + def getPluralizers(self, pluralize, depluralize): # This should be used only by src/utils/str.py try: execfile(self._getL10nCode()) except IOError: - pass # Handled by the else v- - if locals().has_key('pluralize') and locals().has_key('depluralize'): - return (pluralize, depluralize) - else: - return (current_pluralize, current_depluralize) + pass + return (pluralize, depluralize) + def getOrdinal(self, ordinal): + # This should be used only by src/utils/str.py + try: + execfile(self._getL10nCode()) + except IOError: + pass + return ordinal + + def getBeAndHave(self, be, have): + # This should be used only by src/utils/str.py + try: + execfile(self._getL10nCode()) + except IOError: + pass + return (be, have) def internationalizeDocstring(obj): # FIXME: check if the plugin has an _ object diff --git a/src/utils/str.py b/src/utils/str.py index 73be108ba..741b870b2 100644 --- a/src/utils/str.py +++ b/src/utils/str.py @@ -350,6 +350,8 @@ def ordinal(i): ord = 'rd' return '%s%s' % (i, ord) +ordinal = _.getOrdinal(ordinal) + def be(i): """Returns the form of the verb 'to be' based on the number i.""" if i == 1: @@ -364,6 +366,8 @@ def has(i): else: return 'have' +be, have = _.getVerbs(be, have) + def toBool(s): s = s.strip().lower() if s in ('true', 'on', 'enable', 'enabled', '1'):