示例#1
0
async def do_translate(message: types.Message):
    trl = Translator()
    if message.reply_to_message and (message.reply_to_message.text
                                     or message.reply_to_message.caption):
        if len(message.text.split()) == 1:
            await message.delete()
            return
        target = message.text.split()[1]
        if message.reply_to_message.text:
            text = message.reply_to_message.text
        else:
            text = message.reply_to_message.caption
        try:
            tekstr = await trl(text, targetlang=target)
        except ValueError as err:
            await message.reply(f"Error: `{str(err)}`", parse_mode='Markdown')
            return
    else:
        if len(message.text.split()) <= 2:
            await message.delete()
            return
        target = message.text.split(None, 2)[1]
        text = message.text.split(None, 2)[2]
        try:
            tekstr = await trl(text, targetlang=target)
        except ValueError as err:
            await message.reply("Error: `{}`".format(str(err)),
                                parse_mode='Markdown')
            return

    await message.reply(
        f"*Translated:*\n```{tekstr.text}```\n\n*Detected Language:* `{(await trl.detect(text))}`",
        parse_mode='Markdown')
async def _(event):
    if event.fwd_from:
        return
    input_str = event.pattern_match.group(1)
    if event.reply_to_msg_id:
        previous_message = await event.get_reply_message()
        text = previous_message.message
        lan = input_str or "en"
    elif "|" in input_str:
        lan, text = input_str.split("|")
    else:
        await event.edit("`.tr LanguageCode` as reply to a message")
        return
    # text = emoji.demojize(text.strip()) # No need this.
    lan = lan.strip()
    translator = Translator()
    try:
        translated = await translator(text, targetlang=lan)

        after_tr_text = translated.text
        source_lan = await translator.detect(f'{translated.orig}')
        transl_lan = await translator.detect(f'{translated.text}')
        output_str = "Detected Language: **{}**\nTRANSLATED To: **{}**\n\n{}".format(
            source_lan,
            transl_lan,
            after_tr_text
        )
        await event.edit(output_str)
    except Exception as exc:
        await event.edit(str(exc))
示例#3
0
async def translate(_, m: Message):
    trl = Translator()
    if m.reply_to_message and (m.reply_to_message.text
                               or m.reply_to_message.caption):
        if len(m.text.split()) == 1:
            target_lang = "en"
        else:
            target_lang = m.text.split()[1]
        if m.reply_to_message.text:
            text = m.reply_to_message.text
        else:
            text = m.reply_to_message.caption
    else:
        if len(m.text.split()) <= 2:
            await m.reply_text(
                "Provide lang code.\n[Available options](https://telegra.ph/Lang-Codes-11-08).\n<b>Usage:</b> <code>/tr en</code>",
            )
            return
        target_lang = m.text.split(None, 2)[1]
        text = m.text.split(None, 2)[2]
    detectlang = await trl.detect(text)
    try:
        tekstr = await trl(text, targetlang=target_lang)
    except ValueError as err:
        await m.reply_text(f"Error: <code>{str(err)}</code>")
        return
    LOGGER.info(f"{m.from_user.id} used translate cmd in {m.chat.id}")
    return await m.reply_text(
        f"<b>Translated:</b> from {detectlang} to {target_lang} \n<code>``{tekstr.text}``</code>",
    )
示例#4
0
async def translate(_, message):
    trl = Translator()
    if message.reply_to_message and (message.reply_to_message.text
                                     or message.reply_to_message.caption):
        if len(message.text.split()) == 1:
            await message.delete()
            return
        target = message.text.split()[1]
        if message.reply_to_message.text:
            text = message.reply_to_message.text
        else:
            text = message.reply_to_message.caption
        try:
            tekstr = await trl(text, targetlang=target)
        except ValueError as err:
            await edit_or_reply(
                message,
                text=f'Error: `{str(err)}`',
                parse_mode='Markdown',
            )
            return
    else:
        if len(message.text.split()) <= 2:
            await message.delete()
            return
        target = message.text.split(None, 2)[1]
        text = message.text.split(None, 2)[2]
        try:
            tekstr = await trl(text, targetlang=target)
        except ValueError as err:
            await edit_or_reply(
                message,
                text='Error: `{}`'.format(str(err), ),
                parse_mode='Markdown',
            )
            return

    await edit_or_reply(
        message,
        text='**Translated:**\n```{}```\n\n**Detected Language:** `{}`'.format(
            tekstr.text,
            (await trl.detect(text)),
        ),
        parse_mode='Markdown',
    )
示例#5
0
async def translate(_client, message):
    trl = Translator()
    if message.reply_to_message and (
        message.reply_to_message.text or message.reply_to_message.caption
    ):
        if len(message.text.split()) == 1:
            await message.reply_text(
                "Provide lang code.\n[Available options](https://telegra.ph/Lang-Codes-11-08).\n**Usage:** `/tr en`"
            )
            return
        target = message.text.split()[1]
        if message.reply_to_message.text:
            text = message.reply_to_message.text
        else:
            text = message.reply_to_message.caption
        detectlang = await trl.detect(text)
        try:
            tekstr = await trl(text, targetlang=target)
        except ValueError as err:
            await message.reply_text(f"Error: `{str(err)}`")
            return
    else:
        if len(message.text.split()) <= 2:
            await message.reply_text(
                "Provide lang code.\n[Available options](https://telegra.ph/Lang-Codes-11-08).\n**Usage:** `/tr en`"
            )
            return
        target = message.text.split(None, 2)[1]
        text = message.text.split(None, 2)[2]
        detectlang = await trl.detect(text)
        try:
            tekstr = await trl(text, targetlang=target)
        except ValueError as err:
            await message.reply_text("Error: `{}`".format(str(err)))
            return

    await message.reply_text(f"**Translated:**\n```{tekstr.text}```")
示例#6
0
async def translate(text):
    tr = Translator()
    teks = await tr(text, targetlang="es")
    return teks.text
    InlineKeyboardButton,
)
from tg_bot import dispatcher, kp
from pyrogram import filters
from pyrogram.types import Message
from tg_bot.modules.disable import DisableAbleCommandHandler
from tg_bot.modules.language import gs


def get_help(chat):
    return gs(chat, "gtranslate_help")


__mod_name__ = "Translator"

trans = Translator()


@kp.on_message(filters.command(["tl", "tr"]))
async def translate(_, message: Message) -> None:
    reply_msg = message.reply_to_message
    if not reply_msg:
        await message.reply_text("Reply to a message to translate it!")
        return
    if reply_msg.caption:
        to_translate = reply_msg.caption
    elif reply_msg.text:
        to_translate = reply_msg.text
    try:
        args = message.text.split()[1].lower()
        if "//" in args:
示例#8
0
from gpytranslate import Translator
from pyrogram import filters

from naruto import naruto, Command, AdminSettings, edrep

trl = Translator()

__MODULE__ = "Translate"
__HELP__ = """
Translates some text by give a text or reply that text/caption.
Translate by Google Translate.
──「 **Translate** 」──
-> `tr (lang) (*text)`
Give a target language and text as args for translate to that target.
Reply a message to translate that.
* = Not used when reply a message!
"""


@naruto.on_message(
    filters.user(AdminSettings) & filters.command("tr", Command))
async def translate(_, message):
    trl = Translator()
    if message.reply_to_message and (message.reply_to_message.text
                                     or message.reply_to_message.caption):
        if len(message.text.split()) == 1:
            await message.delete()
            return
        target = message.text.split()[1]
        if message.reply_to_message.text:
            text = message.reply_to_message.text
示例#9
0
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

from typing import Iterable

from gpytranslate import Translator

tr = Translator()

# See https://cloud.google.com/translate/docs/languages
LANGUAGES: Iterable[str] = (
    "af",
    "sq",
    "am",
    "ar",
    "hy",
    "az",
    "eu",
    "be",
    "bn",
    "bs",
    "bg",
    "ca",