-
Notifications
You must be signed in to change notification settings - Fork 13
JuanZoran edited this page May 14, 2023
·
3 revisions
{
---@type string the directory for database file and password file
dir = require 'Trans'.plugin_dir,
---@type 'default' | 'dracula' | 'tokyonight' global Trans theme [see lua/Trans/style/theme.lua]
theme = 'default', -- default | tokyonight | dracula
strategy = {
---@type { frontend:string, backend:string | string[] } fallback strategy for mode
default = {
frontend = 'hover',
backend = '*',
},
},
---@type table frontend options
frontend = {
---@class TransFrontendOpts
---@field keymaps table<string, string>
default = {
query = 'fallback',
border = 'rounded',
title = vim.fn.has 'nvim-0.9' == 1 and {
{ '', 'TransTitleRound' },
{ ' Trans', 'TransTitle' },
{ '', 'TransTitleRound' },
} or nil, -- need nvim-0.9+
auto_play = true,
---@type {open: string | boolean, close: string | boolean, interval: integer} Hover Window Animation
animation = {
open = 'slid', -- 'fold', 'slid'
close = 'slid',
interval = 12,
},
timeout = 2000,
},
---@class TransHoverOpts : TransFrontendOpts
hover = {
---@type integer Max Width of Hover Window
width = 37,
---@type integer Max Height of Hover Window
height = 27,
---@type string -- see: /lua/Trans/style/spinner
spinner = 'dots',
---@type string
fallback_message = '{{notfound}} 翻译超时或没有找到相关的翻译',
auto_resize = true,
split_width = 60,
padding = 10, -- padding for hover window width
keymaps = {
pageup = '[[',
pagedown = ']]',
pin = '<leader>[',
close = '<leader>]',
toggle_entry = '<leader>;',
-- play = '_', -- Deprecated
},
---@type string[] auto close events
auto_close_events = {
'InsertEnter',
'CursorMoved',
'BufLeave',
},
---@type table<string, string[]> order to display translate result
order = {
default = {
'str',
'translation',
'definition',
},
offline = {
'title',
'tag',
'pos',
'exchange',
'translation',
'definition',
},
youdao = {
'title',
'translation',
'definition',
'web',
},
},
icon = {
-- or use emoji
list = '●', -- ● | ○ | ◉ | ◯ | ◇ | ◆ | ▪ | ▫ | ⬤ | 🟢 | 🟡 | 🟣 | 🟤 | 🟠| 🟦 | 🟨 | 🟧 | 🟥 | 🟪 | 🟫 | 🟩 | 🟦
star = '', -- ⭐ | ✴ | ✳ | ✲ | ✱ | ✰ | ★ | ☆ | 🌟 | 🌠 | 🌙 | 🌛 | 🌜 | 🌟 | 🌠 | 🌌 | 🌙 |
notfound = ' ', --❔ | ❓ | ❗ | ❕|
yes = '✔', -- ✅ | ✔️ | ☑
no = '', -- ❌ | ❎ | ✖ | ✘ | ✗ |
cell = '■', -- ■ | □ | ▇ | ▏ ▎ ▍ ▌ ▋ ▊ ▉
web = '', --🌍 | 🌎 | 🌏 | 🌐 |
tag = '',
pos = '',
exchange = '',
definition = '',
translation = '',
},
},
},
}
键 | 类型 | 默认说明 | 配置说明 |
---|---|---|---|
dir | string | 插件的安装目录 | 存放本地单词数据库 和用户 app_id, app_passwd的目录 |
theme | string | 插件主题配色(见 lua/Trans/style/theme.lua ) |
|
strategy | table | 翻译策略 | |
frontend | table | 前端配置 |
说明
默认的安装目录为插件存放的目录
例如: lazy
用户一般在 $HOME/.local/share/nvim/lazy/Trans.nvim
目录下 (linux)
在线文件配置和词库下载都应该在
conf.dir
下
如果存在 default 的表:
其他配置中没有对应的配置, 则使用default中的配置
对应的表中有该配置, 则优先使用表内的配置
例如,
hover.timeout
没有设置, 就会使用default.timeout
的值
这样做是为了方便以后的扩展, 如果有新的翻译策略, 只需要在default中添加对应的配置即可
键 | 类型 | 默认说明 | 配置说明 |
---|---|---|---|
frontend | string | 目前只有hover 选项 |
选择对应的展示样式 |
backend | string |string[] | * 表示启用所有支持的后端 | (baidu, youdao), 顺序代表 fallback 查询的顺序 |
键 | 类型 | 默认说明 | 配置说明 |
---|---|---|---|
query | string | 目前只有fallback 选项 |
翻译策略 |
border | string | 圆角边框 | 窗口边框 |
title | table | 需要 neovim version >= 0.9 | 窗口标题 |
auto_play | boolean | true | tts 自动读音(离线) |
animation | table |
fold | slid
|
窗口动画 |
timeout | integer | 2000(ms) | 在线翻译等待超时时间 |
width | integer | 37 | 窗口宽度 |
height | integer | 27 | 窗口高度 |
spinner | string | 所有的样式见lua/Trans/style/spinner.lua
|
加载动画的字符 |
fallback_message | string |
{{xx}} 会替换成 icon[xx]
|
翻译失败时的提示信息 |
auto_resize | boolean | true | 在线翻译的时候自动调整窗口大小 |
split_width | integer | 60 | 自动调整的最大宽度 |
padding | integer | 10 | 如果窗口宽度太小, 设置的留白宽度 |
keymaps | table | 快捷键设置(目前是全局的) | |
auto_close_events | table /false | 设置为 false 则禁用自动关闭窗口 | 自动关闭窗口的事件 |
order | table | 翻译结果的显示顺序 | |
icon | table | 展示的图标,可以用于 fallback_message |
[
{
"name": "baidu",
"app_id": "your app_id",
"app_passwd": "your password",
"disable": true
},
{
"name": "youdao",
"app_id": "your app_id",
"app_passwd": "your password",
"disable": false
}
]
说明
- 配置位置为
${Trans.conf.dir}/Trans.json
(比如lazy
用户一般默认在$HOME/.local/share/nvim/lazy/Trans.nvim/Trans.json
) - 除了
disable
字段, 其他字段都是必填的 - 配置的顺序会影响设置
strategy.backend
为*的顺序 - 后续会考虑添加其他的翻译 api