Ich wollte plötzlich englische Sätze übersetzen, aber ich fand es mühsam, Chrome auf meinem PC hinzuzufügen, Google Translation zu öffnen und zu tippen. Discord ist jedoch aus irgendeinem Grund immer aktiv, daher dachte ich, ich würde Discords Übersetzung BOT verwenden, aber ich hatte das Gefühl, dass das Herunterladen etwas anderes war, also entschied ich mich, es zu machen und kam hierher. Dies ist der zweite BOT in meinem Leben.
――Übersetzt Japanisch ins Englische —— Übersetzt Englisch ins Japanische
--Übersetzen Sie mit ! Trans [andere Zeichenfolge als Japanisch]
ins Japanische
! Trans [japanische Zeichenkette]
--! Trans [Sprachname A] - [Sprachname B] - [Zeichenkette eines A-Wortes]
, um ein Wort in ein B-Wort zu übersetzen! Detect [beliebige Zeichenfolge]
Das ist leicht zu verstehen. So erstellen Sie einen einfachen Discord Bot mit Python Discord Bot schnellstes Tutorial [Python & Heroku & GitHub]
Es ist eine kostenlose Bibliothek, die Sprachen mithilfe der Google Übersetzungs-API übersetzen und erkennen kann. Es ist jedoch nicht sehr stabil und kann jederzeit von Google blockiert werden. Wenn Sie also Stabilität wünschen, empfehlen wir die Verwendung der offiziellen API von Google Cloud.
pip install googletrans
Sie können es mit installieren.
Erfolgreich installierte googletrans- (beliebige Version)
Abgeschlossen.
Lassen Sie uns als Beispiel ein Programm erstellen, das Japanisch in Englisch konvertiert.
trans_test.py
from googletrans import Translator
translator = Translator()
japanese = translator.translate('Guten Morgen.')
print(japanese.text)
#>> Good morning.
Der von translete () zurückgegebene Wert enthält neben Text auch die Sprache der Konvertierungsquelle und die Sprache nach der Konvertierung.
trans_test.py
from googletrans import Translator
translator = Translator()
japanese = translator.translate('Guten Morgen.')
print(japanese)
#>> Translated(src=ja, dest=en, text=Good morning., pronunciation=None, extra_data="{'translat...")
Um die Sprache zu erkennen, setzen Sie den Satz oder das Wort, das Sie erkennen möchten, in die Klammern von detect ().
trans_test.py
from googletrans import Translator
translator = Translator()
detect = translator.detect('Guten Morgen.')
print(detect)
#>> Detected(lang=ja, confidence=1.0)
Die beiden englischen Buchstaben nach lang sind der Name der Sprache, und Vertrauen ist die Genauigkeit.
Was für eine nützliche Bibliothek! !! Dieses Mal werde ich mit dieser Bibliothek einen Übersetzungs-BOT erstellen.
Legen Sie zuerst das fertige Produkt ab.
main.py
import discord
from googletrans import Translator
TOKEN = 'Token verdeckt'
client = discord.Client()
translator = Translator()
@client.event
async def on_ready():
print('--------------')
print('Sie sind jetzt angemeldet')
print(client.user.name)
print(client.user.id)
print('--------------')
@client.event
async def on_message(message):
if message.author.bot:
return
if message.content.startswith('!trans'):
say = message.content
say = say[7:]
if say.find('-') == -1:
str = say
detact = translator.detect(str)
befor_lang = detact.lang
if befor_lang == 'ja':
convert_string = translator.translate(str, src=befor_lang, dest='en')
embed = discord.Embed(title='Konvertierungsergebnis', color=0xff0000)
embed.add_field(name='Befor', value=str)
embed.add_field(name='After', value=convert_string.text, inline=False)
await message.channel.send(embed=embed)
else:
convert_string = translator.translate(str, src=befor_lang, dest='ja')
embed = discord.Embed(title='Konvertierungsergebnis', color=0xff0000)
embed.add_field(name='Befor', value=str)
embed.add_field(name='After', value=convert_string.text, inline=False)
await message.channel.send(embed=embed)
else:
trans, str = list(say.split('='))
befor_lang, after_lang = list(trans.split('-'))
convert_string = translator.translate(str, src=befor_lang, dest=after_lang)
embed = discord.Embed(title='Konvertierungsergebnis', color=0xff0000)
embed.add_field(name='Befor', value=str)
embed.add_field(name='After', value=convert_string.text, inline=False)
await message.channel.send(embed=embed)
if message.content.startswith('!detect'):
say = message.content
s = say[8:]
detect = translator.detect(s)
m = 'Die Sprache dieser Zeichenfolge ist wahrscheinlich' + detect.lang + 'ist.'
await message.channel.send(m)
client.run(TOKEN)
Ich weiß nicht, ob es kompliziert aussieht, aber es ist sehr einfach zu tun.
①
!trans ~
Wenn die Anweisung mit beginnt, entfernen Sie die Anweisung ! Trans
und ein Zeichen mit halber Breite aus der Anweisung.
↓
Erkennen Sie die Sprache des Satzes mit detect ().
↓
Wenn die Sprache Japanisch ist, übersetzen Sie sie ins Englische, andernfalls übersetzen Sie sie ins Japanische.
② (Vorausgesetzt, dass! Trans bereits entfernt wurde)
!trans [A]-[B]-[C]
Zum Zeitpunkt der Anweisung ist A der Sprachname vor der Konvertierung, B der Sprachname nach der Konvertierung und C eine Zeichenfolge.
↓
Übersetzen Sie C aus der Sprache A, B, C nach B.
③
!detect ~
Wenn der Befehl mit beginnt, entfernen Sie den Befehl "! Detect" und ein Zeichen mit halber Breite aus dem Befehl.
↓
Erkennen und Ausgeben der Sprache des Satzes mit erkennen ()
Das ist alles für die gesamte Bewegung. Es gibt Stellen, an denen "embedded ~" an verschiedenen Stellen geschrieben ist, aber dies ist notwendig, um es durch Einbetten zum Sprechen zu bringen, wenn es mit Discord gesprochen wird. Das Einbetten scheint leichter zu erkennen zu sein.
An dem zu übersetzenden Inhalt ist nichts auszusetzen. Ich wähle es angemessen.
Von Japanisch nach Englisch
Von Englisch nach Japanisch
Von Deutsch nach Japanisch
Von Japanisch nach Deutsch
Spracherkennung japanisch
Französisch
Ich konnte alles umsetzen, was ich versuchte!
Ich denke, die Übersetzung ist der Google-Übersetzung unterlegen, aber ich bin zufrieden, weil ich das tun konnte, was ich versucht habe. Da ich noch am Anfang bin, möchte ich viele Dinge tun, z. B. Voice-Chat, Mitgliedergewinnung und Kombination mit Web-Scraping.
Machen wir es, weil jeder glücklich ist, BOT zu machen! !!
Wenn Sie einen Fehler machen oder Verbesserungen haben, können Sie mir auf Twitter etwas mitteilen.