<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Translate plugin]]></title><description><![CDATA[<p dir="auto">День добрый. подскажите где найти плагин Translate чтоб работал на последних версиях. тот что на просторах инета гуляет, при закидывании в папку плагинов - пишет что не предназначен для версии нотпада и соответственно не работает</p>
]]></description><link>https://community.notepad-plus-plus.org/topic/24708/translate-plugin</link><generator>RSS for Node</generator><lastBuildDate>Wed, 17 Jun 2026 01:51:44 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/24708.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Jul 2023 07:02:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Translate plugin on Wed, 20 Nov 2024 04:12:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hepbhbiu_kapjicoh" aria-label="Profile: HEPBHbIU_KAPJICOH">@<bdi>HEPBHbIU_KAPJICOH</bdi></a> said in <a href="/post/97991">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">Is it possible to add Ukrainian language?</p>
</blockquote>
<p dir="auto">Looks like it already does include Ukrainian: <a href="https://sourceforge.net/p/npptranslate/code/HEAD/tree/nppTranslateCS/MyMemoryTranslateEngine.cs#l102" rel="nofollow ugc">https://sourceforge.net/p/npptranslate/code/HEAD/tree/nppTranslateCS/MyMemoryTranslateEngine.cs#l102</a></p>
<p dir="auto">There’s also a slightly updated 64-bit version on GitHub with all the same languages: <a href="https://github.com/databird/npptranslate64/releases" rel="nofollow ugc">https://github.com/databird/npptranslate64/releases</a></p>
]]></description><link>https://community.notepad-plus-plus.org/post/98017</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98017</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Wed, 20 Nov 2024 04:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Tue, 19 Nov 2024 15:55:57 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hepbhbiu_kapjicoh" aria-label="Profile: HEPBHbIU_KAPJICOH">@<bdi>HEPBHbIU_KAPJICOH</bdi></a> said in <a href="/post/97991">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">Is it possible to add Ukrainian language?</p>
</blockquote>
<p dir="auto">The Translate plugin is not maintained any more by its original author, so it’s presumably not taking feature requests. So “no”, it’s not possible to add any new language to that plugin.</p>
<p dir="auto">And whether or not it supported Ukrainian is probably up to the external translation engine, not just the plugin author, so even if it was still taking feature requests, they might not be able to support it.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98004</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98004</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Tue, 19 Nov 2024 15:55:57 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Tue, 19 Nov 2024 08:47:03 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a><br />
Is it possible to add Ukrainian language?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/97991</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/97991</guid><dc:creator><![CDATA[HEPBHbIU_KAPJICOH]]></dc:creator><pubDate>Tue, 19 Nov 2024 08:47:03 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 20 Sep 2024 18:50:41 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/bruno-bonaspetti" aria-label="Profile: Bruno-Bonaspetti">@<bdi>Bruno-Bonaspetti</bdi></a> ,</p>
<p dir="auto">As was said above, the Translate Plugin <em>does</em> work with the latest version of Notepad++ : you just have to use the 32bit Notepad++ (of which there <em>is</em> still a latest version).  If you have 32bit Notepad++, you can just use the Plugins Admin to install the Translate Plugin.  And job’s done.  (All that could have been gleaned by reading my response from last July.)</p>
<p dir="auto">If you choose not to use the 32bit Notepad++, then that original “Translate Plugin” isn’t available for you.  (However, if you want to use 64bit Notepad++ most of the time, and just use 32bit Notepad++ for the Translation Plugin, then you could download a “portable” copy of the 32bit Notepad++ of the most recent version using the <a href="https://notepad-plus-plus.org/downloads/" rel="nofollow ugc">official downloads page</a>, and unzip that portable 32bit, and use that portable copy to install the old Translate Plugin and see how it works.  (Warning: it’s possible that the translation service that Translate Plugin links to costs money; I haven’t investigated, but most translation services do.)</p>
<p dir="auto">However, as <a class="plugin-mentions-user plugin-mentions-a" href="/user/databird" aria-label="Profile: databird">@<bdi>databird</bdi></a> <a href="/post/92787">announced in February of this year</a>, there is a 64bit translation plugin available under the search terms described in that reply, with more-full installation instructions in the replies immediately below – but unfortunately, it requires paying for the translation service.  in general, automated translation is not free (even Google translate won’t let you access their free translation service from some other application; you can enter text manually, but if you want an API so it can be automated from some other tool like Notepad++, you’d have to pay for it.)  But I believe that the original 32bit Translate Plugin also requires payment (though I’m not sure), so I don’t think the 64bit plugin is any different to the 32bit plugin, in that regard (again, I could be mistaken).</p>
<p dir="auto">The third is to use a script in the PythonScript plugin, as described in the subsequent discussion.  So the steps would be</p>
<ol>
<li>Install the PythonScript 3 plugin.  Unfortunately, you cannot use the Plugins Admin tool to install that.   But our <a href="/topic/23039">FAQ: How to install and run a script in PythonScript</a> has a section on how to install the PythonScript 3 version of the plugin. I will not repeat those instructions here.</li>
<li>Install the WinDialog library, which is the library mentioned in the <a href="/topic/24389">other topic you replied to</a>.  You can get from its github repo <a href="https://github.com/Ekopalypse/NppPythonScripts/tree/master/helper/WinDialog" rel="nofollow ugc">here</a> – that repo page also has the instructions as to how to install the WinDialog library in PythonScript 3.  So follow those instructions for how to do that.</li>
<li>Copy the <code>translate.py</code> script from <a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a>’s <a href="/post/93915">March 29 post in this conversation</a>.  The FAQ I linked you to in step1 tells you what to do with a script once you’ve copied it from a post, in order to install and run the script; so follow those instructions.</li>
<li>Run the script, as described in the FAQ from step 1.</li>
</ol>
]]></description><link>https://community.notepad-plus-plus.org/post/96700</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/96700</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 20 Sep 2024 18:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Thu, 19 Sep 2024 22:03:42 GMT]]></title><description><![CDATA[<p dir="auto">Hello, how are you?</p>
<p dir="auto">Could someone show me a <em><strong>Translate plugin</strong></em> that works on the latest version of Notpad++ and explain how to install it?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/96687</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/96687</guid><dc:creator><![CDATA[Bruno Bonaspetti]]></dc:creator><pubDate>Thu, 19 Sep 2024 22:03:42 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 21:11:18 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a> said in <a href="/post/93915">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">In the meantime, here is my updated full script.</p>
</blockquote>
<p dir="auto">That one works for me.  My guess is that it’s your User-Agent headers allowing it to work.</p>
<p dir="auto"><em>update: yes, adding the headers to my edits makes mine work</em></p>
<p dir="auto">Thank you.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93916</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93916</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 29 Mar 2024 21:11:18 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 20:47:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a> said in <a href="/post/93913">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">Any ideas what I’m doing wrong? Or has the translation API changed?</p>
</blockquote>
<p dir="auto">Not off hand.  Pressed for time now, can look at it later.  In the meantime, here is my updated full script.  It may have other dependencies I’m overlooking, but at least you can see my non-<code>requests</code> version:</p>
<pre><code>import json
import urllib.request as requests
import urllib.parse

from enum import Enum

from Npp import editor

from WinDialog import Button, ComboBox, DefaultButton, Dialog, Label, TextBox
from WinDialog.win_helper import WindowStyle as WS

TITLE = "Translate"
DEFAULTLANG = "English"

class Languages(Enum):
    """Translated language options."""
    Chinese    = "zh"
    English    = "en"
    French     = "fr"
    German     = "de"
    Italian    = "it"
    Japanese   = "ja"
    Portuguese = "pt"
    Russian    = "ru"
    Spanish    = "es"

class Returns(object):
    """The input / output for the Translator service."""
    def __init__(self, text="", srclang=DEFAULTLANG, dstlang=DEFAULTLANG):
        self.text = text
        self.trans = ""
        self.srclang = srclang
        self.dstlang = dstlang

class Translator(Dialog):
    """A Translator dialog interface."""
    def __init__(self, ret=Returns()):
        super().__init__(               title=TITLE         , center = True      , size=(290, 165) )
        self.translate = DefaultButton( title='&amp;Translate'  , position=(120, 145), size=(50, 11)  )
        self.label1    = Label(         title='Text:'       , position=(10, 12)  , size=(35, 11)  )
        self.text      = TextBox(                             position=(45, 10)  , size=(235, 55) )
        self.swapt     = Button(        title='^&amp;v'         , position=(45, 67)  , size=(20, 14)  )
        self.srclang   = ComboBox(                            position=(75, 68)  , size=(80, 14)  )
        self.swapl     = Button(        title='&lt;&amp;=&gt;'        , position=(165, 67) , size=(20, 14)  )
        self.dstlang   = ComboBox(                            position=(200, 68) , size=(80, 14)  )
        self.label2    = Label(         title='Translated:' , position=(10, 84)  , size=(35, 11)  )
        self.trans     = TextBox(                             position=(45, 82)  , size=(235, 55) )
        self.replace   = Button(        title='&amp;Replace'    , position=(175, 145), size=(50, 11)  )
        self.close     = Button(        title='&amp;Close'      , position=(230, 145), size=(50, 11)  )

        self.ret = ret

        self.onIdOk             = self._on_translate
        self.translate.onClick  = self._on_translate
        self.swapt.onClick      = self._on_swapt
        self.swapl.onClick      = self._on_swapl
        self.srclang.onSelEndOk = self._on_translate
        self.dstlang.onSelEndOk = self._on_translate
        self.replace.onClick    = self._on_replace
        self.close.onClick      = self._on_close

        self.srclang.style = self.srclang.style | WS.TABSTOP
        self.dstlang.style = self.dstlang.style | WS.TABSTOP
        self.text.style    = self.text.style    | WS.VSCROLL # | WS.HSCROLL
        self.trans.style   = self.trans.style   | WS.VSCROLL # | WS.HSCROLL

        self.show()

    def initialize(self):
        """Initialize the dialog."""
        self.text.setText(self.ret.text)
        self._init_langs()
        if self.ret.srclang != self.ret.dstlang and self.ret.text != "":
            self._on_translate()

    def _init_langs(self):
        srclang = list(n.name for n in Languages)
        if self.ret.srclang in srclang:
            srclang.insert(0, self.ret.srclang)
        self.srclang.set(srclang)

        dstlang = list(n.name for n in Languages)
        if self.ret.dstlang in dstlang:
            dstlang.insert(0, self.ret.dstlang)
        self.dstlang.set(dstlang)

    def _on_translate(self):
        """Translate the text."""
        if self.text.getText() == "":
            return

        text_encoded = urllib.parse.quote(self.text.getText())

        srclang = Languages[self.srclang.getSelectedItemText()]
        dstlang = Languages[self.dstlang.getSelectedItemText()]
        if srclang == dstlang:
            return

        # Set return languages
        self.ret.srclang = srclang.name
        self.ret.dstlang = dstlang.name

        srccode = srclang.value
        dstcode = dstlang.value
        # EXAMPLE: LANGPAIR=EN|IT USING 2 LETTER ISO OR RFC3066 LIKE ZH-CN
        langpair = f"{srccode}|{dstcode}"

        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}
        r = requests.urlopen(requests.Request(url=f"http://mymemory.translated.net/api/get?q={text_encoded}&amp;langpair={langpair}", headers=headers))
        if r.status != 200:
            return

        ret = r.read()
        response = json.loads(ret.decode('utf8'))['responseData']['translatedText']
        # Set return translation
        if response is not None:
            self.ret.trans = response
        else:
            self.ret.trans = "(no translation found)"
        self.trans.setText(self.ret.trans)

        # Set return text
        self.ret.text = self.text.getText()

    def _on_swapl(self):
        """Swap languages."""
        self.ret.dstlang = self.srclang.getSelectedItemText()
        self.ret.srclang = self.dstlang.getSelectedItemText()
        self._init_langs()
        self._on_translate()

    def _on_swapt(self):
        """Swap texts."""
        self.ret.trans = self.text.getText()
        self.ret.text  = self.trans.getText()
        self.text.setText(self.ret.text)
        self.trans.setText(self.ret.trans)
        self._on_swapl()

    def _on_replace(self):
        """Replace text with translation in document."""
        if self.ret.trans != "":
            editor.replaceSel(self.ret.trans)
            self.terminate()

    def _on_close(self):
        self.terminate()

class Translate():
    """A translator service."""
    def __init__(self):
        self.srclang = DEFAULTLANG
        self.dstlang = DEFAULTLANG

    def _editor_getWordAtCaretOrSelection(self):
        retval = ''
        (sel_start, sel_end) = (editor.getSelectionStart(), editor.getSelectionEnd())
        if editor.getSelections() == 1 and sel_start != sel_end:
            retval = editor.getTextRange(sel_start, sel_end)
        else:
            start_of_word_pos = editor.wordStartPosition(editor.getCurrentPos(), True)
            end_of_word_pos = editor.wordEndPosition(start_of_word_pos, True)
            if start_of_word_pos != end_of_word_pos:
                retval = editor.getTextRange(start_of_word_pos, end_of_word_pos)
                editor.setSelection(end_of_word_pos, start_of_word_pos)
        return retval

    def translate(self):
        text = ""
        if editor.getSelectionEmpty():
            sel = self._editor_getWordAtCaretOrSelection()
            if len(sel) &gt; 0: 
                text = sel
        else:
            text = editor.getSelText()

        ret = Returns(text, self.srclang, self.dstlang)
        Translator(ret)
        self.srclang = ret.srclang
        self.dstlang = ret.dstlang


Translate().translate()
</code></pre>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93915</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93915</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Fri, 29 Mar 2024 20:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 18:42:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a> ,</p>
<p dir="auto">Moving the <code>translate.py</code> specific question to this Topic, rather than the <a href="/topic/24389">Little Dialog Wrapper</a> conversation…</p>
<p dir="auto">Like happened with the <code>dictionary</code> script in the other Topic, the <code>translate</code> script relies on the <code>requests</code> library, which I don’t have.  I tried to follow <a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a>’s changes for the <code>dictionary</code> in the analogous locations int he <code>translate</code>, but I’m having difficulty.</p>
<pre><code>#import requests    #### per @rdipardo's updates on Michael's other script
import json
import urllib.request as requests
import urllib.parse
...
    def on_translate(self):
        ...
        ###r = requests.get(f"http://mymemory.translated.net/api/get?q={text_encoded}&amp;langpair={langpair}")
        r = requests.urlopen(requests.Request(f"http://mymemory.translated.net/api/get?q={text_encoded}&amp;langpair={langpair}"))
        ###response = r.json()['responseData']['translatedText']
        console.writeError(f"r.status: {r.status}\nr.read: {r.read().decode('utf8')}");
        return;    ###### exit here, because the next line gives an error
        response = json.loads(r.read().decode('utf8'))['responseData']['translatedText']

        # Set return translation
        if response is not None:
            self.ret.trans = response
        else:
            self.ret.trans = "(no translation found)"
        self.trans.setText(self.ret.trans)

        # Set return text
        self.ret.text = self.text.getText()
</code></pre>
<p dir="auto">When I run that with the console.writeError, I get:</p>
<pre><code>r.status: 200
r.read: can't open file
</code></pre>
<p dir="auto">Any ideas what I’m doing wrong?  Or has the translation API changed?</p>
<p dir="auto">-—<br />
<em>update</em>: printing the URL it is trying to access using</p>
<pre><code>        console.writeError(f"\n\nhttp://mymemory.translated.net/api/get?q={text_encoded}&amp;langpair={langpair}\n");
</code></pre>
<p dir="auto">shows</p>
<pre><code>http://mymemory.translated.net/api/get?q=Hello&amp;langpair=en|de
</code></pre>
<p dir="auto">If I paste that URL into my browser, I get valid JSON for the translation:</p>
<pre><code class="language-json">{"responseData":{"translatedText":"Hallo","match":1},"quotaFinished":false,"mtLangSupported":null,"responseDetails":"","responseStatus":200,"responderId":"45","exception_code":null,"matches":[{"id":"758976106","segment":"Hello","translation":"Hallo","source":"en-GB","target":"de-DE","quality":"74","reference":null,"usage-count":93,"subject":"All","created-by":"MateCat","last-updated-by":"MateCat","create-date":"2022-10-06 13:45:27","last-update-date":"2022-10-06 13:45:27","match":1},{"id":"757809118","segment":"Hello","translation":"Hello","source":"en-GB","target":"de-DE","quality":"74","reference":null,"usage-count":2,"subject":"All","created-by":"MateCat","last-updated-by":"MateCat","create-date":"2022-09-16 12:45:34","last-update-date":"2022-09-16 12:45:34","match":0.98999999999999999}]}
</code></pre>
<p dir="auto">So why is that URL working for browser but not for API?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93913</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93913</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 29 Mar 2024 18:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 16:43:56 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a> ,</p>
<p dir="auto">Ooh, nice, I had forgotten you had shared that.</p>
<p dir="auto">A word to anyone wanting to use it: in case you don’t see it higher in the conversation:</p>
<ol>
<li>You need to have at least PythonScript 3.0.16 installed (the Plugins Admin doesn’t install the PS 3.x versions, so you will have to manually install the beta version).</li>
<li>You need to install the “Little Dialog Wrapper” that <a class="plugin-mentions-user plugin-mentions-a" href="/user/ekopalypse" aria-label="Profile: Ekopalypse">@<bdi>Ekopalypse</bdi></a> shared in the <a href="/post/85840">first post in that Topic</a>.</li>
</ol>
]]></description><link>https://community.notepad-plus-plus.org/post/93908</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93908</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 29 Mar 2024 16:43:56 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 15:57:03 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/a-notepad-user" aria-label="Profile: A-Notepad-User">@<bdi>A-Notepad-User</bdi></a><br />
<a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a> said in <a href="/post/93906">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">If you were able to find a translation API that was free-to-use, if it had a REST-style API, you could probably use the RestApiToText plugin in Notepad++ to try it out, and then either write a PythonScript-based wrapper, or</p>
</blockquote>
<p dir="auto">… or, just use “mine”:</p>
<p dir="auto"><a href="https://community.notepad-plus-plus.org/topic/24389/little-dialog-wrapper-for-pythonscript/31">https://community.notepad-plus-plus.org/topic/24389/little-dialog-wrapper-for-pythonscript/31</a></p>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93907</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93907</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Fri, 29 Mar 2024 15:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 15:17:38 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/a-notepad-user" aria-label="Profile: A-Notepad-User">@<bdi>A-Notepad-User</bdi></a> ,</p>
<p dir="auto">I don’t know of any other translation plugins for Notepad++.</p>
<p dir="auto">And despite what <a class="plugin-mentions-user plugin-mentions-a" href="/user/olek-ksasi" aria-label="Profile: Olek-Ksasi">@<bdi>Olek-Ksasi</bdi></a> thought, “Google” doesn’t solve all your woes.</p>
<p dir="auto">At least at some resources I have found, <a href="https://console.cloud.google.com/tos?id=translate#:~:text=You%20will%20be%20charged%20for,com%2Fcloud%2Fpricing%2F." rel="nofollow ugc">Google charges you for every successful translation when using the API</a>, similar to the service that the Translate plugin uses.  Maybe they have a free plan that I just haven’t been able to find, but …</p>
<p dir="auto">In general, I’ve only ever seen “free translation” for the manual web-based translation services, with charges for their API version (though I’ve never really looked, because automated translation isn’t something I need). (And such services are pretty good at blocking access to bots trying to pretend to use the web-based version even though they are automatic: such tactics violate T.O.S. for most websites)</p>
<p dir="auto">If you were able to find a translation API that was free-to-use, if it had a REST-style API, you could probably use the RestApiToText plugin in Notepad++ to try it out, and then either write a PythonScript-based wrapper, or just implement or instantiate a REST client in PythonScript. (I’m sure Python would have a library for such an interface; how to do that implementation/instantiation is off-topic for this Forum, since we’re focused on the Notepad++ end of things, and that implementation/instantiation is generic Python programming)</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93906</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93906</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 29 Mar 2024 15:17:38 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 29 Mar 2024 14:37:43 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/olek-ksasi" aria-label="Profile: Olek-Ksasi">@<bdi>Olek-Ksasi</bdi></a> said in <a href="/post/93547">Translate plugin</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/databird" aria-label="Profile: databird">@<bdi>databird</bdi></a> said in <img src="https://camo.nodebb.org/5e6e27bb5b8a2424ded7c1ac41c10a8a0e5be85c?url=%2F%2Ftranslate.how" alt="Translate plugin" class=" img-fluid img-markdown" />:</p>
<blockquote>
<p dir="auto">A 64 bits version is available as a fork on github :</p>
<blockquote>
<p dir="auto">Search “npptranslate64” on GitHub</p>
</blockquote>
<p dir="auto">Enjoy !</p>
</blockquote>
<p dir="auto">How install this?</p>
</blockquote>
<p dir="auto">Is there a plugin option that works with Google Translate API?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93905</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93905</guid><dc:creator><![CDATA[A Notepad++ User]]></dc:creator><pubDate>Fri, 29 Mar 2024 14:37:43 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 15 Mar 2024 20:10:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a> A ok.</p>
<p dir="auto">Thank you again for your help.<br />
Unfortunately, you need to connect a debit card to use this plugin. Additionally, there is a significant limitation in the number of characters that can be translated per month. Be it in Azure, My Memory or DEEPL. It’s a pity that the author of the plugin doesn’t write about it. It would save a lot of time for people who think it’s free.<br />
I have to look for another program like Notepad, which has Google Translate. I have no intention of linking my card anywhere.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93594</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93594</guid><dc:creator><![CDATA[Olek Ksasi]]></dc:creator><pubDate>Fri, 15 Mar 2024 20:10:40 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 15 Mar 2024 20:03:28 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/olek-ksasi" aria-label="Profile: Olek-Ksasi">@<bdi>Olek-Ksasi</bdi></a> said in <a href="/post/93591">Translate plugin</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a></p>
<p dir="auto">Thank you, but I don’t understand any of this.<br />
What is “databird”?<br />
There is no DLL file on Github for npptranslate64,<br />
There are only CS files.</p>
<p dir="auto">github .com/databird/npptranslate64</p>
</blockquote>
<p dir="auto">There <em>is</em> a DLL file on GitHub for npptranslate64, if you follow my instructions.</p>
<ol>
<li>You searched “GitHub” for “npptranslate64” and found  <a href="http://github.com/databird/npptranslate64" rel="nofollow ugc">github.com/databird/npptranslate64</a> . which is the one with “databird” in its name, so good job so far, you found the right URL, even though you didn’t see “databird” even when you pasted that URL.</li>
<li>I then said “follow the ‘releases’ link”:<br />
<img src="/assets/uploads/files/1710532917882-802d4260-e019-4803-82f2-4648cc715b16-image.png" alt="802d4260-e019-4803-82f2-4648cc715b16-image.png" class=" img-fluid img-markdown" /><br />
so click on that link.</li>
<li>That page, in the most recent release (at the top) has a DLL link.<br />
<img src="/assets/uploads/files/1710532990925-f4fb2c92-4afa-44b3-ad7b-f1de7a9a1f05-image.png" alt="f4fb2c92-4afa-44b3-ad7b-f1de7a9a1f05-image.png" class=" img-fluid img-markdown" /></li>
</ol>
]]></description><link>https://community.notepad-plus-plus.org/post/93593</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93593</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 15 Mar 2024 20:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 15 Mar 2024 19:38:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a></p>
<p dir="auto">Thank you, but I don’t understand any of this.<br />
What is “databird”?<br />
There is no DLL file on Github for npptranslate64,<br />
There are only CS files.</p>
<p dir="auto">github .com/databird/npptranslate64</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93591</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93591</guid><dc:creator><![CDATA[Olek Ksasi]]></dc:creator><pubDate>Fri, 15 Mar 2024 19:38:33 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Wed, 13 Mar 2024 20:32:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/olek-ksasi" aria-label="Profile: Olek-Ksasi">@<bdi>Olek-Ksasi</bdi></a> said in <a href="/post/93547">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">How install this?</p>
</blockquote>
<ol>
<li>Search “npptranslate64” on GitHub, and go to the one that looks like it’s by “databird” or similar name</li>
<li>Follow the “releases” link to the list of releases</li>
<li>Download the DLL from the most recent 64bit release</li>
<li>Manually install the DLL in your Notepad++ installation. If you don’t know how to do that, it’s explained in the <a href="https://npp-user-manual.org/docs/plugins/#install-plugin-manually" rel="nofollow ugc">User Manual at Plugins &gt; Install Plugin Manually</a></li>
</ol>
]]></description><link>https://community.notepad-plus-plus.org/post/93550</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93550</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Wed, 13 Mar 2024 20:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Wed, 13 Mar 2024 20:15:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/databird" aria-label="Profile: databird">@<bdi>databird</bdi></a> said in <a href="/post/92787">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">A 64 bits version is available as a fork on github :</p>
<blockquote>
<p dir="auto">Search “npptranslate64” on GitHub</p>
</blockquote>
<p dir="auto">Enjoy !</p>
</blockquote>
<p dir="auto">How install this?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/93547</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/93547</guid><dc:creator><![CDATA[Olek Ksasi]]></dc:creator><pubDate>Wed, 13 Mar 2024 20:15:52 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 09 Feb 2024 14:31:00 GMT]]></title><description><![CDATA[<p dir="auto">A 64 bits version is available as a fork on github :</p>
<blockquote>
<p dir="auto">Search “npptranslate64” on GitHub</p>
</blockquote>
<p dir="auto">Enjoy !</p>
]]></description><link>https://community.notepad-plus-plus.org/post/92787</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/92787</guid><dc:creator><![CDATA[databird]]></dc:creator><pubDate>Fri, 09 Feb 2024 14:31:00 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 14 Jul 2023 17:02:38 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">I have confirmed that it does work with the most recent v8.5.4-32bit</p>
</blockquote>
<p dir="auto">My experience wasn’t so smooth, although it doesn’t seem to be the plugin’s fault.</p>
<p dir="auto"><img src="/assets/uploads/files/1689353531530-npptranslate.net-3.5-needed.png" alt="nppTranslate-.net-3.5-needed.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">As you can see, my box isn’t setup for .NET plugin development. Good luck to whomever wants to take this on!</p>
]]></description><link>https://community.notepad-plus-plus.org/post/87931</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/87931</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Fri, 14 Jul 2023 17:02:38 GMT</pubDate></item><item><title><![CDATA[Reply to Translate plugin on Fri, 14 Jul 2023 13:02:31 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/%D0%B5%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9-%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D0%B5%D0%BD%D0%BA%D0%BE" aria-label="Profile: Евгений-Романенко">@<bdi>Евгений-Романенко</bdi></a> said in <a href="/post/87903">Translate plugin</a>:</p>
<blockquote>
<p dir="auto">Good afternoon. Tell me where to find the Translate plugin to work on the latest versions. The one that walks on the Internet, when you throw it into the plugin folder, writes that it is not intended for the notepad version and, accordingly, does not work</p>
</blockquote>
<p dir="auto">The <a href="https://sourceforge.net/projects/npptranslate/" rel="nofollow ugc">Translate Plugin</a> only has a 32bit version.  Which means it only works with the 32-bit Notepad++, not the 64-bit Notepad++.  But I have confirmed that it <em>does</em> work with the most recent v8.5.4-32bit, and is even in the Plugins Admin.  (The plugin hasn’t been updated since 2015, so it’s doubtful that the original author is ever going to make a 64-bit version.  Sometimes, if they are interested, users from the Community will grab a copy of the source and build a 64-bit version without any feature upgrades… but that generally only happens if they have a specific desire for that plugin.)</p>
<p dir="auto">(I’m actually surprised, since it’s 8 years since the last update, that the translation API that it’s using still works… many such services have either stopped working altogether, or at least changed their API, in that amount of time.  But I know it works, because that’s how I translated your post into English for my reply.)</p>
<pre><code>Notepad++ v8.5.4   (32-bit)
Build time : Jun 17 2023 - 20:40:14
Path : C:\usr\local\apps\npp\npp854-32\notepad++.exe
Command Line : 
Admin mode : OFF
Local Conf mode : ON
Cloud Config : OFF
OS Name : Windows 10 Enterprise (64-bit)
OS Version : 22H2
OS Build : 19045.3086
Current ANSI codepage : 1252
Plugins : 
    mimeTools (2.9)
    NppConverter (4.5)
    NppExport (0.4)
    Translate (3.1.1)
</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/post/87911</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/87911</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 14 Jul 2023 13:02:31 GMT</pubDate></item></channel></rss>