Internationalization Framework

Basic Usage

from redbot.core import commands
from redbot.core.i18n import Translator, cog_i18n

_ = Translator("ExampleCog", __file__)

@cog_i18n(_)
class ExampleCog:
    """description"""

    @commands.command()
    async def mycom(self, ctx):
        """command description"""
        await ctx.send(_("This is a test command"))

Tutorial

After making your cog, generate a messages.pot file

The process of generating this will depend on the operating system you are using

In a command prompt in your cog’s package (where yourcog.py is), create a directory called “locales”. Then do one of the following:

Windows: python <your python install path>\Tools\i18n\pygettext.py -D -n -p locales

Mac: ?

Linux: pygettext3 -D -n -p locales

This will generate a messages.pot file with strings to be translated, including docstrings.

API Reference

redbot.core.i18n.cog_i18n(translator: redbot.core.i18n.Translator)[source]

Get a class decorator to link the translator to this cog.

class redbot.core.i18n.Translator(name: str, file_location: Union[str, os.PathLike])[source]

Function to get translated strings at runtime.

__call__(untranslated: str) → str[source]

Translate the given string.

This will look for the string in the translator’s .pot file, with respect to the current locale.

load_translations()[source]

Loads the current translations.