Saltearse al contenido

Usando traducciones

En Seyfert la posibilidad de llevar tu bot a múltiples traducciones es bastante sencilla.

Cómo usar las traducciones

Seyfert proporciona una manera de utilizar las traducciones en tu bot. La forma de hacerlo es bastante simple.

Hay algunos decoradores que se pueden utilizar para usar las traducciones en tu código.

Usando el decorador @LocalesT

Puedes traducir automáticamente todo el contenido del comando usando el decorador @LocalesT. Este decorador obtendrá todas las localizaciones que hayas definido como DefaultLocale.

import { Command, LocalesT } from 'seyfert';
@LocalesT('my-command .name', 'my-command.description')
my-command.name
my-command.description
class MyCommand extends Command {}

Uso del decorador `@GroupsT

Este decorador tiene una estructura especial y puede ser un poco confuso.

El decorador tiene la siguiente estructura:

@GroupsT({
// Este es el nombre del grupo... Creado en el comando padre
groupName: {
// ¡Es obligatorio! Es el nombre por defecto del grupo.
defaultDescription,
// ¡Es opcional! Es el nombre localizado del grupo.
name,
}
})

Una vez que entiendas cómo funciona, puedes utilizarlo de la siguiente manera:

src/commands/supremacy.ts
import { Command, Declare, LocalesT } from 'seyfert';
@Declare({
name: 'supremacy',
description: 'Ganyu Supremacy.'
})
// También puedes pasar 'undefined'
// Si no quieres añadir un nombre o descripción localizada del comando.
// Así: @LocalesT(undefined, 'algun.comando.descripcion')
@LocalesT('hello', 'foo.bar')
export default class SupremacyCommand extends Command { }

Uso de la propiedad locales del objeto

Seyfert proporciona una propiedad especial para añadir localizaciones en las opciones de los comandos.

src/commands/supremacy.ts
import { createStringOption } from 'seyfert';
const options = {
supremacy: createStringOption({
description: "Enter a supremacy name.",
required: true,
// ¡Si no quieres añadir un nombre o descripción localizada del comando!
// Simplemente elimine la propiedad del objeto
locales: {
name: "hello",
description: "foo.bar",
}
})
}