Beispiel #1
0
 async def translate(self, ctx, *, phrase):
     translator = Translator()
     phrase = phrase.split()
     modifiers = [word for word in phrase if word[0] == '-']
     for j, i in enumerate(modifiers):
         phrase.remove(i)
         modifiers[j] = i[1:]
     phrase = " ".join(phrase)
     try:
         if not modifiers:
             done = translator.translate(phrase)
         elif len(modifiers) == 1:
             done = translator.translate(phrase, dest=modifiers[0])
         else:
             done = translator.translate(phrase,
                                         src=modifiers[0],
                                         dest=modifiers[1])
     except ValueError:
         await ctx.send(
             ("Something failed while translating. Please ensure you are "
              "using codes for indicating language, such as `en` or `ja`, "
              "or use the full language name, such as `norwegian` or "
              "`german`"))
         return
     fromlang = LANGUAGES.get(done.src, done.src)
     tolang = LANGUAGES.get(done.dest, done.dest)
     await ctx.send("{}:: translating {} -> {} ::\n{}\n{}".format(
         "```asciidoc\n", fromlang, tolang, done.text, "\n```"))
Beispiel #2
0
async def tr_pls(client, message):
    event = await edit_or_reply(message, "`Please Wait!`")
    lang = get_text(message)
    if not lang:
        lang = "en"
    if not message.reply_to_message and not message.reply_to_message.text:
        await event.edit("`Reply To Message To Translate It!`")
        return
    text = message.reply_to_message.text
    translator = google_translator()
    source_lan = detect(text)
    if not LANGUAGES.get(lang):
        await event.edit("`Language Not Supported.`")
        return
    transl_lan = LANGUAGES.get(lang, 'English')
    translated = translator.translate(text, lang_tgt=lang)
    tr_text = f"""**Source ({source_lan.capitalize()})**:
`{text}`
**Translation ({transl_lan.capitalize()})**:
`{translated}`"""
    if len(tr_text) >= 4096:
        url = "https://del.dog/documents"
        r = requests.post(url, data=tr_text.encode("UTF-8")).json()
        url2 = f"https://del.dog/{r['key']}"
        tr_text = (
            f"Translated Text Was Too Big, Never Mind I Have Pasted It [Here]({url2})"
        )
    await event.edit(tr_text)
Beispiel #3
0
def tr(text, lang):
    translator = Translator()
    if not LANGUAGES.get(lang):
        return None, None, None
    translated = translator.translate(text, dest=lang, src='auto')
    source_lan = LANGUAGES.get(translated.src.lower())
    transl_lan = LANGUAGES.get(translated.dest.lower())
    return source_lan, transl_lan, translated
Beispiel #4
0
def translate():
    msg("Select source language")
    src, source = menu(LANGUAGES.values())
    clear_screen()
    msg("Select destination language")
    dest, destination = menu(LANGUAGES.values())
    clear_screen()
    text = input("Insert the text that will be translated: ")
    translator = Translator()
    response = translator.translate(text, src=source, dest=destination)
    return response.text
Beispiel #5
0
    def translate(self, text, dest_lang):
        if dest_lang.lower() not in LANGUAGES.values():
            raise ValueError("Selected language is not supported!")

        dest_lang_tag = [
            lang_tag for lang_tag, lang in LANGUAGES.items()
            if lang == dest_lang
        ][0]

        translation = self.translator.translate(text,
                                                src='en',
                                                dest=dest_lang_tag)
        return translation
Beispiel #6
0
 def getLangString(self, lang):
     LANGCODES = dict(map(reversed, LANGUAGES.items()))
     simbols = list(LANGCODES.values())
     strings = list(LANGCODES.keys())
     simbolIndex = simbols.index(lang)
     langString = strings[simbolIndex]
     return langString
Beispiel #7
0
def languages():
    """
    create a list of code languages and languages like (en : english)
    :return:
    """
    for lan, cod in LANGUAGES.items():
        print(f'{lan}: {cod} |')
Beispiel #8
0
def main():
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth)
    last_id = ""
    home = str(Path.home())
    log_file = home + "/twittbot/log.txt"

    while (True):
        a = api.user_timeline(screen_name="realdonaldtrump",
                              tweet_mode='extended')
        open(log_file, 'w').close()
        print("Looking for new tweets", file=open(log_file, "a"))

        if a and a[0].id_str != last_id:
            translator = Translator()
            tweet = a[0].full_text

            print("Found Tweet: \n", tweet, file=open(log_file, "a"))
            print("---------------------------", file=open(log_file, "a"))

            # & seems to crash the translator
            tweet = tweet.replace("&", "and ")

            # Preserve the url if there is one
            index = tweet.find("http")
            url = ""
            if index != -1:
                url = tweet[index:]
                tweet = tweet[:index]

            if not tweet:
                continue
            # Translate 30 times (100 takes to long time and there is a limit on number of requests to the api)
            # Idea still the same though
            lang1, lang2 = "en", ""

            for i in range(25):
                lang2 = random.choice(list(
                    LANGUAGES.items()))[0]  # choose a random language
                tweet = translator.translate(text=tweet, src=lang1,
                                             dest=lang2).text
                lang1 = lang2

            tweet = translator.translate(
                text=tweet, src=lang1,
                dest='en').text  # translate back to english
            tweet = tweet + " " + url  # add back the url
            print("tweated: " + tweet, file=open(log_file, "a"))

            if len(tweet) + len("@realdonaldtrump ") < 280:
                api.update_status(status="@realdonaldtrump " + tweet,
                                  in_reply_to_status_id=a[0].id_str)
            else:
                api.update_status(status="@realdonaldtrump " + tweet[0:260],
                                  in_reply_to_status_id=a[0].id_str)

            last_id = a[0].id_str
            print("---------------------------", file=open(log_file, "a"))
        sleep(200)
 def create(self, validated_data):
     trans = Translator()
     data = trans.detect(validated_data['original_sentc'])
     validated_data['language'] = str(LANGUAGES.get(data.lang)).title()
     transglish = trans.translate(validated_data['original_sentc'], dest='en')
     validated_data['english_sentc'] = transglish.text
     return Sentences.objects.create(**validated_data)
Beispiel #10
0
def backtranslate(
    text: Union[List[str], str],
    n_langs: int = 1,
    random_state: int = 42,
    filter_out_identical=True,
):
    langs = np.random.choice(list(LANGUAGES.keys()),
                             size=n_langs,
                             replace=False)

    if isinstance(text, str):
        ret = []
        for lang in langs:
            translated = translator.translate(text, dest=lang)
            ret.append(
                translator.translate(translated.text, src=lang,
                                     dest="en").text)
    else:  # Then we have a list of strings
        ret = []

        for lang in langs:
            to_append = []
            for t in text:
                translated = translator.translate(t, dest=lang)
                to_append.append(
                    translator.translate(translated.text, src=lang,
                                         dest="en").text)
        ret.append(to_append)

    return ret, langs
Beispiel #11
0
    async def translate(self, ctx: commands.Context, *content: str):
        def check_author(reaction):
            return reaction.user_id == ctx.author.id and reaction.emoji.name == "\U0001f197"

        if not content:
            message_error = await ctx.send(f"Veuillez utiliser le format suivant pour cette commande: `{ctx.prefix}{ctx.command} {ctx.command.usage}`\nPour avoir la liste complète des langues disponibles, tapez la commande `{ctx.prefix}{ctx.command} lang` et je vous enverrai la liste en message privé.")
            await message_error.add_reaction("\U0001f197")
            try:
                await self.client.wait_for("raw_reaction_add", check=check_author, timeout=120.0)
            except asyncio.TimeoutError:
                await message_error.delete()
            else:
                await message_error.delete()
            return

        lang = content[0]
        if lang not in LANGUAGES.keys():
            message_error = await ctx.send(f"Veuillez entrer une langue de destination valide. Par exemple pour traduire un message du Français à l'Anglais, écrivez `{ctx.prefix}{ctx.command} en <votre message>` ou inversement de l'Anglais au Français `{ctx.prefix}{ctx.command} fr <your message>`\nPour avoir la liste complète des langues disponibles, tapez la commande `{ctx.prefix}{ctx.command} lang` et je vous enverrai la liste en message privé.")
            await message_error.add_reaction("\U0001f197")
            try:
                await self.client.wait_for("raw_reaction_add", check=check_author, timeout=120.0)
            except asyncio.TimeoutError:
                await message_error.delete()
            else:
                await message_error.delete()
            return

        message = " ".join(content[1:])
        if not message:
            message_error = await ctx.send(f"Veuillez entrer un message après avoir indiqué la langue. Par exemple pour traduire un message du Français à l'Anglais, écrivez `{ctx.prefix}{ctx.command} en <votre message>` ou inversement de l'Anglais au Français `{ctx.prefix}{ctx.command} fr <your message>`\nPour avoir la liste complète des langues disponibles, tapez la commande `{ctx.prefix}{ctx.command} lang` et je vous enverrai la liste en message privé.")
            await message_error.add_reaction("\U0001f197")
            try:
                await self.client.wait_for("raw_reaction_add", check=check_author, timeout=120.0)
            except asyncio.TimeoutError:
                await message_error.delete()
            else:
                await message_error.delete()
            return

        try:
            language = self.translator.detect(message)
        except AttributeError as err:
            write_file(set_file_logs(ctx.guild.id), err, is_log=True)
            self.translator = Translator(
                service_urls=["translate.google.com", "translate.google.fr"])
            return await ctx.send("Une erreur est survenue. Veuillez réessayer.")

        embed = Embed(color=ctx.author.top_role.color,
                      timestamp=datetime.utcnow())
        embed.set_author(name=f"{ctx.author.display_name}#{ctx.author.discriminator}",
                         icon_url=ctx.author.avatar_url)
        embed.add_field(
            name="Say", value=f"{self.translator.translate(message, dest=lang.lower()).text}")
        embed.set_footer(
            text=f"{LANGUAGES[language.lang].title()} to {LANGUAGES[lang.lower()].title()}")

        await ctx.send(embed=embed)
Beispiel #12
0
async def tr(event, text):
    kk = Config.LANG if LANGUAGES.get(Config.LANG) else 'en'
    if kk == 'en':
        await event.edit(text)
    else:
        translator = google_translator()
        translated = translator.translate(text, lang_tgt=kk)
        await event.edit(translated)
    return
Beispiel #13
0
async def tr(event, text):
    we = Config.LANG if LANGUAGES.get(Config.LANG) else "en"
    if we == "en":
        await event.edit(text)
    else:
        translator = google_translator()
        translated = translator.translate(text, lang_tgt=we)
        await event.edit(translated)
    return
def display_languages():
    lang_indexes = {}
    i = 0
    for Language in LANGUAGES.keys():
        lang_indexes[str(i)] = Language
        print("{:<3} : {:<10}".format(str(i), LANGUAGES[Language]))
        i += 1
    print("")
    return lang_indexes
Beispiel #15
0
def show_langs():
  """
  Retorna um texto formatado mostrando todas as linguas disponíveis para tradução
  """
  texto = f"```\n{'Codigo':<8} {'Lingua'}\n" + '—' * 20 + '\n'
  for keys, values in LANGUAGES.items():
    texto += f"{keys:<8} {values}\n"
  texto += "```"
  return texto
Beispiel #16
0
def TranslateFunc(input_text):
    lang = list(LANGUAGES.values())
    try:
        tra = Translator(service_urls=['translate.googleapis.com'])
        result = tra.translate(str(input_text))
        print(result.src)
        return result.text
    except:
        print("Sorry This Language is not available to translate")
        return None
Beispiel #17
0
    def format_resp(self, *, resp: Translated, text: str) -> BetterEmbed:
        """Formats the response into an embed"""
        src = LANGUAGES.get(resp.src) or resp.src
        dest = LANGUAGES.get(resp.dest) or resp.dest

        conf = round(resp.confidence * 100, 1)
        f_confidence = str(conf) + "%"

        if conf < 50.0:
            f_confidence += " (might be innacurate)"

        embed = BetterEmbed(title="Translated something !")

        fields = (
            ("original", text, False),
            ("Translation", resp.text, False),
            ("Confidence", f_confidence, True),
            ("Languages", f"{src} -> {dest}", True),
        )

        return embed.add_fields(fields)
    def initialiseWidgets(self):
        self.labelSearchResult.setHidden(True)
        self.textEditSearch.setAlignment(QtCore.Qt.AlignBottom)
        self.isShownMainTable = True
        self.buttonCheck.clicked.connect(self.buttonCheck_on_click)
        self.buttonMemory.clicked.connect(self.buttonMemory_on_click)
        self.buttonBack.clicked.connect(self.buttonBack_on_click)
        self.buttonSave.clicked.connect(self.buttonSave_on_click)
        self.buttonQuit1.clicked.connect(self.buttonQuit_on_click)
        self.buttonQuit2.clicked.connect(self.buttonQuit_on_click)
        self.textEditSearch.textChanged.connect(self.search_as_you_type)
        self.buttonTranslate.clicked.connect(self.buttonTranslate_on_click)
        self.tableWidget.itemChanged.connect(self.prepareForSaving)
        self.buttonCheck.setHidden(True)
        self.buttonSave.setHidden(True)
        self.buttonBack.setHidden(True)
        self.labelFrom.setHidden(True)
        self.labelTo.setHidden(True)
        self.comboBoxRangeStart.setHidden(True)
        self.comboBoxRangeEnd.setHidden(True)
        self.memoryMode = False
        self.resetMode = False
        self.searchMode = False
        self.langDict = dict((v.capitalize(), k) for k, v in LANGUAGES.items())
        self.comboBoxLang.addItems(self.langDict.keys())
        self.comboBoxLang.currentIndexChanged.connect(
            self.changeTranslationLang)
        self.comboBoxLang.setCurrentText('English')
        difficulties = [str(i + 1) for i in range(4)]
        self.comboBoxDifficulty.addItems(difficulties)
        self.comboBoxRangeType.addItems(['Alphabet', 'Number'])
        self.comboBoxRangeType.currentIndexChanged.connect(
            self.changeRangeType)
        self.plainTextInput.installEventFilter(self)
        self.plainTextInput.hasSelected = False
        self.comboBoxRangeStart.currentIndexChanged.connect(
            self.changeStartWord)
        self.prepareForMemoryMode()

        # note area
        self.checkBox.toggled.connect(self.checkBox_on_stateChanged)
        self.checkBox_on_stateChanged()
        self.pushButtonNoteOpen.clicked.connect(self.buttonNoteOpen_on_click)
        self.pushButtonNoteSave.clicked.connect(self.buttonNoteSave_on_click)
        self.pushButtonNoteNew.clicked.connect(self.buttonNoteNew_on_click)
        self.notePath = ''

        openAction = QtWidgets.QAction('&Open', self)
        openAction.setShortcut('Ctrl+O')
        openAction.setStatusTip('Open document')
        openAction.triggered.connect(self.fileMenuOpenAction)
        # self.checkBox.checkStateSet()
        logging.debug("intialise widgets done")
Beispiel #19
0
def tr_engine(text="Confused Bonking Face."):
    kk = Config.LANG if LANGUAGES.get(Config.LANG) else 'en'
    if kk == 'en':
        hmm = text
    else:
        try:
            translator = google_translator()
            translated = translator.translate(text, lang_tgt=kk)
            hmm = translated
        except:
            hmm = text
    return hmm
Beispiel #20
0
async def translateme(trans):
    """For .trt command, translate the given text using Google Translate."""

    if trans.is_reply and not trans.pattern_match.group(1):
        message = await trans.get_reply_message()
        message = str(message.message)
    else:
        message = str(trans.pattern_match.group(1))

    if not message:
        return await trans.edit(
            "**Give some text or reply to a message to translate!**"
        )

    await trans.edit("**Processing...**")
    translator = Translator()

    try:
        from userbot.modules.sql_helper.globals import gvarstatus
    except AttributeError:
        return await trans.edit("**Running on Non-SQL mode!**")

    if gvarstatus("trt_lang") is not None:
        target_lang = str(gvarstatus("trt_lang"))
    else:
        target_lang = "en"

    try:
        reply_text = translator.translate(deEmojify(message), dest=target_lang)
    except ValueError:
        return await trans.edit(
            "**Invalid language selected, use **`.lang trt <language code>`**.**"
        )

    source_lang = LANGUAGES.get(reply_text.src).title()  # type: ignore
    target_lang = LANGUAGES.get(target_lang).title()

    reply_text = f"From: **{source_lang}**\nTo: **{target_lang}**\n\n{reply_text.text}"  # type: ignore

    await trans.edit(reply_text)
Beispiel #21
0
async def traduz(message, _):
    msg = message.content.strip().lower().split()

    if len(msg) < 4:
        return Exception

    cod1 = msg[-1]
    cod2 = msg[-2]

    if (len(cod1) > 2 and cod1 in list(LANGUAGES.values())):
        for k in LANGUAGES.keys():
            if LANGUAGES[k] == cod1:
                cod1 = k
    elif (len(cod1) == 2 and cod1 not in list(LANGUAGES.keys())):
        return Exception

    if (len(cod2) > 2 and cod2 in list(LANGUAGES.values())):
        for k in LANGUAGES.keys():
            if LANGUAGES[k] == cod2:
                cod2 = k
    elif (len(cod2) == 2 and cod2 not in list(LANGUAGES.keys())):
        return Exception

    msg = ' '.join(msg[1:-2])
    out = translator.translate(text=msg, dest=cod1, src=cod2).text
    await message.channel.send(out)
Beispiel #22
0
async def translate(event):
    if event.reply_to_msg_id:
        msg = await event.get_reply_message()
        msg = msg.message
    else:
        msg = event.pattern_match.group(1)

    if not msg:
        await event.edit(msgRep.NO_TEXT_OR_MSG)
        return

    await event.edit(msgRep.TRANSLATING)

    try:
        translator = Translator()
        result = translator.translate(text=msg, dest=DEST_LANG, src="auto")
        if result.src == result.dest:
            await event.edit(msgRep.SAME_SRC_TARGET_LANG)
            return
        src_lang = LANGUAGES.get(result.src, "Unknown")
        target_lang = LANGUAGES.get(result.dest, "Unknown")

        text = f"{msgRep.DETECTED_LANG}: <b>{src_lang.title()}</b>\n"
        text += f"{msgRep.TARGET_LANG}: <b>{target_lang.title()}</b>\n\n"
        if not event.reply_to_msg_id:
            text += f"<b>{msgRep.ORG_TEXT}:</b>\n"
            text += msg + "\n\n"
        text += f"<b>{msgRep.TRANS_TEXT}:</b>\n"
        text += result.text
        await event.edit(text, parse_mode="html")
    except MessageTooLongError:
        await event.edit(msgRep.MSG_TOO_LONG)
    except Exception as e:
        log.warning(e)
        if event.reply_to_msg_id:
            await event.edit(msgRep.FAIL_TRANS_MSG)
        else:
            await event.edit(msgRep.FAIL_TRANS_TEXT)

    return
Beispiel #23
0
def translator_function():
    from googletrans import Translator, LANGUAGES
    translator = Translator()
    final_language = session.attributes['language']
    audio_string = session.attributes['message']
    """
    Takes in audio and translates it into a new language
    
    Parameters:
    
        audio: The string which you wish to translate
        
        final_language: The language which you wish to translate to 
        
    Returns: 
    
        Translated_string: Gives back the translated string for alexa to speak back
    """
    #figures out what the origin language is
    language_initial = translator.detect(audio_string)
    #figure out the output language
    language_codes = dict(map(reversed, LANGUAGES.items()))
    final_language = final_language.lower()
    translated_language = language_codes[final_language]
    #translate the thing
    final_translate = translator.translate(audio_string,
                                           dest=translated_language,
                                           src=language_initial.lang)
    #back_language=translator.translate(final_translate.text)
    if final_translate.dest == 'it':
        output = final_translate.text
    elif final_translate.dest == 'ja':
        output = final_translate.text
    elif final_translate.dest == 'de':
        output = final_translate.text
    elif final_translate.dest == 'fr':
        output = final_translate.text
    elif final_translate.dest == 'es':
        output = final_translate.text
    else:
        translation = []
        audio_string_list = audio_string.split()
        for i in range(len(audio_string_list)):
            final_translate = translator.translate(audio_string_list[i],
                                                   dest=translated_language,
                                                   src=language_initial.lang)
            if final_translate.pronunciation is None:
                translation.append(final_translate.text)
            else:
                translation.append(final_translate.pronunciation)
        output = " ".join(translation)
    return output
Beispiel #24
0
async def tr_engine(event, text, parse_mode='md'):
    kk = Config.LANG if LANGUAGES.get(Config.LANG) else 'en'
    if kk == 'en':
        await event.edit(text, parse_mode=parse_mode)
    else:
        try:
            translator = google_translator()
            translated = translator.translate(text, lang_tgt=kk)
            hmm = translated
        except:
            hmm = text
    await event.edit(hmm, parse_mode=parse_mode)        
    return
Beispiel #25
0
async def set_lang(event):
    global DEST_LANG
    args = event.pattern_match.group(1).split()
    if len(args) != 1:
        await event.edit(msgRep.MULT_ARGS)
        return
    args = args[0]
    if args not in LANGUAGES.keys():
        await event.edit(msgRep.INV_CT_CODE.format(build_supported_langs()))
        return
    DEST_LANG = args
    await event.edit(msgRep.SUCCESS_LANG_CHANGE.format(LANGUAGES[args]))
    return
Beispiel #26
0
def LangTranslate(request):
    language = list(LANGUAGES.values())
    ajx = False
    if request.method == 'POST':
        if request.POST.get('text_up'):
            text = request.POST.get('text')
        elif request.POST.get('url_up'):
            url_up = request.POST.get('text')
            url = re.search("(?P<url>https?://[^\s]+)", url_up).group("url")
            downloaded = trafilatura.fetch_url(url)
            text = trafilatura.extract(downloaded)

        elif request.POST.get('upld'):
            text = upload(request.FILES['file'])
        if request.is_ajax():
            text = request.POST.get('text')
            ajx = True

        inputLanguage = str(request.POST.get('in_lang')).lower()
        outputLanguage = str(request.POST.get('out_lang')).lower()
        dataToTranslate = text
        print(inputLanguage, outputLanguage)
        translator = Translator(from_lang=inputLanguage,
                                to_lang=outputLanguage)
        translation = translator.translate(dataToTranslate)
        if ajx:
            return JsonResponse(
                {
                    'translation': translation,
                    'language': language,
                    'text': text
                },
                status=200)
        else:
            return render(
                request, 'LangTranslate.html', {
                    'translation': translation,
                    'language': language,
                    'text': text,
                    'in_lang': inputLanguage,
                    'out_lang': outputLanguage
                })
    else:
        if ajx:
            return JsonResponse(None, status=200)
        else:
            return render(request, 'LangTranslate.html',
                          {'language': language})
def translate(phrase, n=20):
    current_lang = ''
    current_phrase = ''
    for i in range(n-1):
        dest = choice(list(LANGUAGES.keys()))
        if i == 0:
            translated = translator.translate(phrase, src="en", dest=dest)
            current_lang = dest
            current_phrase = translated.text
        else:
            translated = translator.translate(
                current_phrase, src=current_lang, dest=dest)
            current_lang = dest
            current_phrase = translated.text

    final = translator.translate(current_phrase, src=current_lang, dest="en")

    return final.text
Beispiel #28
0
def qwerty_main(message):

    text = utils.textparser(message)
    if text is None:
        logger.write_log("none", message)
        return

    logger.write_log(text, message)

    arg1, arg2 = utils.extract_arg(message.text,
                                   1), utils.extract_arg(message.text, 2)

    if arg2 is None:
        tab1 = utils.layouts.get(utils.extract_lang(text))
        tab2 = utils.layouts.get(arg1)
    else:
        tab1 = utils.layouts.get(arg1)
        tab2 = utils.layouts.get(arg2)

    if tab1 is None and arg2 is None:
        utils.bot.reply_to(
            message,
            "Исходный язык не распознан. Неправильный аргумент или неверно распознан "
            "язык? (" + LANGUAGES.get(utils.extract_lang(text)) + ")\n"
            "Попробуйте указать исходный язык вручную. Возможно, язык отсутствует в "
            "словаре символов")
        return

    if tab1 is None or tab2 is None:
        utils.bot.reply_to(
            message,
            "Неизвестная раскладка. Возможно, язык отсутствует в словаре символов"
        )
        return

    try:
        translated_text = text.translate(str.maketrans(tab1, tab2))
        utils.bot.reply_to(message, translated_text)
    except Exception as e:
        logger.write_log("ERR: " + str(e) + "\n" + traceback.format_exc())
        utils.bot.reply_to(
            message,
            "Ошибка смены раскладки текста. Обратитесь к авторам бота\n"
            "Информация для отладки сохранена в логах бота.")
Beispiel #29
0
def list_of_langs():
    output = "Список всех кодов и соответствующих им языков:\n"

    for key, value in LANGUAGES.items():
        output = output + key + " - " + value + "\n"

    output = output + "\nСписок всех доступных раскладок клавиатуры: "

    for key, value in layouts.items():
        output = output + key + " "

    try:
        file = open("langlist.txt", "w")
        file.write(output)
        file.close()
        logger.write_log("INFO: langlist updated successful")
    except Exception as e:
        logger.write_log("ERR: langlist file isn't available")
        logger.write_log("ERR: " + str(e) + "\n" + traceback.format_exc())
Beispiel #30
0
    async def lang(self, ctx: commands.Context):
        langs = {}
        i = 0
        taille = 0
        for key, value in LANGUAGES.items():
            languages = f"**`{key}`**: *{value}*"
            taille += len(languages)
            if taille > 1300:
                i += 1
                taille = 0

            if not i in langs:
                langs[i] = []

            langs[i].append(languages)

        await ctx.author.send("**Voici la liste de toutes les langues disponibles:**")
        for j in range(i+1):
            await ctx.author.send("\n".join(langs[j]))

        await ctx.author.send(f"__**Veuillez utiliser l'abréviation pour traduire une phrase dans le serveur.**__ Par exemple pour traduire 'Bonjour' en anglais je vais écrire `{ctx.prefix}{self.translate.name} en Bonjour` et la phrase sera traduite en anglais.")