summaryrefslogtreecommitdiff
path: root/translate-widget/README.MD
blob: 498b36e6cb22c778cc048e4bb9207a3e30610cd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Translate Widget

This widget allows quickly translate words or phrases without opening a browser - just using Awesome. To provide direction of the translation add the 2 letters code of the source and target languages at the end of the phrase, for example _hello enfr_ will translate _hello_ from English to French. This widget is based on [Yandex.Translate API](https://tech.yandex.com/translate/).

![demo](./demo.gif)

## Controls

 - <kbd>Mod4</kbd> + <kbd>c</kbd> - opens a translate prompt;
 - left click on the popup widget - copies the translation to the clipboard and closes widget;
 - right click on the popup widget - copies text to translate to the clipboard and closes widget.

## Installation

1. Clone repo under **~/.config/awesome/**
1. Get an [API key](https://translate.yandex.com/developers/keys) and paste it in **secrets.lua**
1. Require widget and secrets in **rc.lua**:

    ```lua
    local secrets = require("awesome-wm-widgets.secrets")
    local translate = require("awesome-wm-widgets.translate-widget.translate")
    ```

1. Create a translate prompt, just under `mypromptbox`:

    ```lua
    s.mypromptbox = awful.widget.prompt()
    s.translateprompt = awful.widget.prompt()
    ```

1. Add it to the left widgets of the wibox, just after `mypromptbox`:

    ```lua
    -- Add widgets to the wibox
    s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            mylauncher,
            s.mytaglist,
            s.mypromptbox,
            s.translateprompt,
        },
    ```

1. Add a shortcut to run this prompt (note that we pass an API key from secrets.lua in method call):

    ```lua
    awful.key({ modkey }, "c", function()
            awful.prompt.run {
                prompt = "trnslt: ",
                textbox = awful.screen.focused().translateprompt.widget,
                exe_callback = function(text)
                    translate.translate(text, secrets.translate_widget_api_key)
                end
            }
    ```