Skip to content
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 的表:

其他配置中没有对应的配置, 则使用default中的配置
对应的表中有该配置, 则优先使用表内的配置

例如, hover.timeout 没有设置, 就会使用 default.timeout 的值

这样做是为了方便以后的扩展, 如果有新的翻译策略, 只需要在default中添加对应的配置即可

strategy

类型 默认说明 配置说明
frontend string 目前只有hover选项 选择对应的展示样式
backend string |string[] * 表示启用所有支持的后端 (baidu, youdao), 顺序代表 fallback 查询的顺序

frontend

类型 默认说明 配置说明
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
Clone this wiki locally