SnippetVamp

Because spending time searching snippets sucks.



ALV 3 XPath 1 abap 9 ahk 1 autohotkey 6 bash 2 cli 2 clipboard 3 excel 1 file 1 file_path 1 greasemonkey 1 javascript 1 python 4 sap 1 screen 1 sql 1 ssh 1 tool 2 tunnel 1

.

Translate clipboard content on Windows unsing Google Translate

Translate clipboard content on Windows unsing Google Translate

#!/bin/python
# -*- coding: utf-8 -*-

"""Translate clipboard content on Windows unsing Google Translate"""

# Author : Ginko
# Date : 08/01/2015
# Version : 0.1.a
# License : zlib/libpng

# The zlib/libpng License

# Copyright (c) 2015 Ginko Aloe - ginkobox.fr

# This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
# Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
#     1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
#     2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
#     3. This notice may not be removed or altered from any source distribution.

# goslate module from http://pythonhosted.org/goslate/
# Clip object inspired from https://stackoverflow.com/a/25678113

# Example usage (from cmd.exe): C:\pathTo\python.exe C:\path\to\translate.py en

import ctypes, sys
import goslate

class Clip(object):
    def __init__(self):
        
        self.wcscpy = ctypes.cdll.msvcrt.wcscpy

        self.OpenClipboard = ctypes.windll.user32.OpenClipboard
        self.EmptyClipboard = ctypes.windll.user32.EmptyClipboard
        self.GetClipboardData = ctypes.windll.user32.GetClipboardData
        self.SetClipboardData = ctypes.windll.user32.SetClipboardData
        self.CloseClipboard = ctypes.windll.user32.CloseClipboard
        self.CF_UNICODETEXT = 13

        self.GlobalAlloc = ctypes.windll.kernel32.GlobalAlloc
        self.GlobalLock = ctypes.windll.kernel32.GlobalLock
        self.GlobalUnlock = ctypes.windll.kernel32.GlobalUnlock
        self.GMEM_DDESHARE = 0x2000 

    def get(self):
        self.OpenClipboard(None)
        handle = self.GetClipboardData(self.CF_UNICODETEXT)
        data = ctypes.c_wchar_p(handle).value
        pcontents = self.GlobalLock(handle)
        data = ctypes.c_wchar_p(pcontents).value if pcontents else u''
        self.GlobalUnlock(handle)
        self.CloseClipboard()
        return data

    def put(self, data):
        # if not isinstance(data, unicode):
            # data = data.decode('mbcs')
        self.OpenClipboard(None)
        self.EmptyClipboard()
        hCd = self.GlobalAlloc(self.GMEM_DDESHARE, 2 * (len(data) + 1))
        pchData = self.GlobalLock(hCd)
        self.wcscpy(ctypes.c_wchar_p(pchData), data)
        self.GlobalUnlock(hCd)
        self.SetClipboardData(self.CF_UNICODETEXT, hCd)
        self.CloseClipboard()
    
def main():
    clip = Clip()
    gs = goslate.Goslate()
    lang = sys.argv[1] if len(sys.argv) > 1 else 'fr'
    c = gs.translate(clip.get(), lang)
    clip.put(c)

if __name__ == "__main__":
    main()

clipboard python

<iframe width="100%" height="1550" src="http://ginkobox.fr/vamp/index.php?embed=54aec9f2a1d9d" type="text/html"></iframe>

Text only - Permalink - Snippet public post date 08/01/2015

This page's Feed


SnippetVamp 1.84 by Bronco - generated in 0.004 s