Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/voldikss/vim-translator
:closed_book: Translating plugin for Vim/Neovim
https://github.com/voldikss/vim-translator
neovim vim vim-translate
Last synced: 1 day ago
JSON representation
:closed_book: Translating plugin for Vim/Neovim
- Host: GitHub
- URL: https://github.com/voldikss/vim-translator
- Owner: voldikss
- License: mit
- Created: 2019-04-24T14:00:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-25T04:01:23.000Z (over 1 year ago)
- Last Synced: 2024-12-14T09:06:20.973Z (9 days ago)
- Topics: neovim, vim, vim-translate
- Language: Vim Script
- Homepage:
- Size: 329 KB
- Stars: 514
- Watchers: 6
- Forks: 48
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vim-translator
![CI](https://github.com/voldikss/vim-translator/workflows/CI/badge.svg)
Asynchronous translating plugin for Vim/Neovim
![](https://user-images.githubusercontent.com/20282795/89249090-e3218880-d643-11ea-83a5-44915445690e.gif)
- [Installation](#installation)
- [Features](#features)
- [Configuration](#configuration)
- [Keymaps](#key-mappings)
- [Commands](#commands)
- [Highlight](#highlight)
- [Statusline](#statusline)
- [Know bugs](#know-bugs)
- [FAQ](#faq)
- [Breaking changes](#breaking-changes)
- [References](#references)
- [License](#license)## Installation
```vim
Plug 'voldikss/vim-translator'
```## Features
- Asynchronous & mutithreading translating
- Popupwin(vim8) & floatwin(neovim) support
- Multiple engines: see [g:translator_default_engines](#gtranslator_default_engines)
- Proxy support
- No requirements for appid/appkey## Configuration
#### **`g:translator_target_lang`**
Type `String`.
Default: `'zh'`
Please refer to [language support list](https://github.com/voldikss/vim-translator/wiki)
#### **`g:translator_source_lang`**
Type `String`.
Default: `'auto'`
Please refer to [language support list](https://github.com/voldikss/vim-translator/wiki)
#### **`g:translator_default_engines`**
Type `List` of `String`.
Available: `'bing'`, `'google'`, `'haici'`, `'iciba'`(expired), `'sdcv'`, `'trans'`, `'youdao'`
Default: If `g:translator_target_lang` is `'zh'`, this will be `['bing', 'google', 'haici', 'youdao']`, otherwise `['google']`
#### **`g:translator_proxy_url`**
Type `String`. Default: `''`
Example: `let g:translator_proxy_url = 'socks5://127.0.0.1:1080'`
#### **`g:translator_history_enable`**
Type `Boolean`.
Default: `v:false`
#### **`g:translator_window_type`**
Type `String`.
Default: `'popup'`
Available: `'popup'`(use floatwin in nvim or popup in vim), `'preview'`
#### **`g:translator_window_max_width`**
Type `Number` (number of columns) or `Float` (between 0 and 1). If `Float`,
the width is relative to `&columns`.Default: `0.6`
#### **`g:translator_window_max_height`**
Type `Number` (number of lines) or `Float` (between 0 and 1). If `Float`, the
height is relative to `&lines`.Default: `0.6`
#### **`g:translator_window_borderchars`**
Type `List` of `String`. Characters of the floating window border.
Default: `['─', '│', '─', '│', '┌', '┐', '┘', '└']`
## Key Mappings
This plugin doesn't supply any default mappings.
```vim
""" Configuration example
" Echo translation in the cmdline
nmap t Translate
vmap t TranslateV
" Display translation in a window
nmap w TranslateW
vmap w TranslateWV
" Replace the text with translation
nmap r TranslateR
vmap r TranslateRV
" Translate the text in clipboard
nmap x TranslateX
```Once the translation window is opened, type `p` to jump into it and again to jump back
Beside, there is a function which can be used to scroll window, only works in neovim.
```vim
nnoremap translator#window#float#has_scroll() ?
\ translator#window#float#scroll(1) : "\"
nnoremap translator#window#float#has_scroll() ?
\ translator#window#float#scroll(0) : "\"
```## Commands
#### `Translate`
`:Translate[!] [--engines=ENGINES] [--target_lang=TARGET_LANG] [--source_lang=SOURCE_LANG] [your text]`
Translate the `text` from the source language `source_lang` to the target language `target_lang` with `engine`, echo the result in the cmdline
If `engines` is not given, use `g:translator_default_engines`
If `text` is not given, use the text under the cursor
If `target_lang` is not given, use `g:translator_target_lang`
The command can also be passed to a range, i.e., `:'<,'>Translate ...`, which translates text in visual selection
If `!` is provided, the plugin will perform a reverse translating by switching `target_lang` and `source_lang`
Examples(you can use `` to get completion):
```vim
:Translate " translate the word under the cursor
:Translate --engines=google,youdao are you ok " translate text `are you ok` using google and youdao engines
:2Translate ... " translate line 2
:1,3Translate ... " translate line 1 to line 3
:'<,'>Translate ... " translate selected lines
```#### `TranslateW`
`:TranslateW[!] [--engines=ENGINES] [--target_lang=TARGET_LANG] [--source_lang=SOURCE_LANG] [your text]`
Like `:Translate...`, but display the translation in a window
#### `TranslateR`
`:TranslateR[!] [--engines=ENGINES] [--target_lang=TARGET_LANG] [--source_lang=SOURCE_LANG] [your text]`
Like `:Translate...`, but replace the current text with the translation
#### `TranslateX`
`:TranslateX[!] [--engines=ENGINES] [--target_lang=TARGET_LANG] [--source_lang=SOURCE_LANG] [your text]`
Translate the text in the clipboard
#### `TranslateH`
`:TranslateH`
Export the translation history
#### `TranslateL`
`:TranslateL`
Display log message
## Highlight
Here are the default highlight links. To customize, use `hi` or `hi link`
```vim
" Text highlight of translator window
hi def link TranslatorQuery Identifier
hi def link TranslatorDelimiter Special
hi def link TranslatorExplain Statement" Background of translator window border
hi def link Translator Normal
hi def link TranslatorBorder NormalFloat
```## Statusline
- `g:translator_status`
## FAQ
https://github.com/voldikss/vim-translator/issues?q=label%3AFAQ
## Breaking Changes
https://github.com/voldikss/vim-translator/issues?q=label%3A%22breaking+change%22
## References
- [dict.vim](https://github.com/iamcco/dict.vim)
- [translator](https://github.com/skywind3000/translator)## License
MIT