一个基于 translate.js 实现网站自动翻译的组件。
简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。
- 多语言 Hugo 站点:fixit.lruihao.cn
- 单语言 Hugo 站点:lruihao.cn
在网站右上角切换配置的翻译语言,或者在 URL 中添加 ?lang=
参数指定任意支持的翻译语言。例如:?lang=korean
。
每日翻译字符 200 万!
无语言配置文件、无 API Key、对 SEO 友好!
- 支持整页自动翻译
- 支持指定翻译语言
- 支持可选翻译服务
- 支持忽略翻译元素
- 支持忽略选择器
- 支持忽略关键词翻译
- 支持检测本地语言
- 支持自定义翻译术语
- 支持 CDN
- 支持企业级翻译通道 *
- Hugo v0.139.0 或更高版本。
- FixIt v0.3.16 或更高版本。
安装方式与 安装主题 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。
首先确保你的项目本身是一个 Hugo 模块。
然后将此主题组件添加到你的 hugo.toml
配置文件中:
[module]
[[module.imports]]
path = "github.com/hugo-fixit/FixIt"
[[module.imports]]
path = "github.com/hugo-fixit/cmpt-translate"
在 Hugo 的第一次启动时,它将下载所需的文件。
要更新到模块的最新版本,请运行:
hugo mod get -u
hugo mod tidy
将 FixIt 和此 git 存储库克隆到你的主题文件夹中,并将其作为网站目录的子模块添加。
git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt
git submodule add https://github.com/hugo-fixit/cmpt-translate.git themes/cmpt-translate
接下来编辑项目的 hugo.toml
并将此主题组件添加到你的主题中:
theme = ["FixIt", "cmpt-translate"]
为了通过 FixIt 主题在 layouts/partials/custom.html
文件中开放的 自定义块 将 cmpt-translate.html
注入到 custom-assets
中,你需要填写以下必要配置:
[params]
[params.customPartials]
head = []
menuDesktop = [
"inject/translate-menu-desktop.html",
]
menuMobile = [
"inject/translate-menu-mobile.html",
]
profile = []
aside = []
comment = []
footer = []
widgets = []
assets = [
"inject/cmpt-translate.html",
]
postFooterBefore = []
postFooterAfter = []
另外,你还可以通过以下配置来自定义翻译的语言:
[languages]
[languages.zh-cn]
languageCode = "zh-CN"
languageName = "简体中文"
[params]
[params.autoTranslate]
enable = true
service = 'client.edge'
languages = []
ignoreID = []
ignoreClass = []
ignoreTag = []
detectLocalLanguage = false
cdn = ""
enterprise = false
enable
:是否启用自动翻译。service
:翻译服务提供商,可选值为client.edge
和translate.service
,详见:翻译服务提供商。languages
:要翻译到的语言 ID 列表,例如["english", "chinese_simplified", "chinese_traditional", ...]
,详见:完整语言列表。ignoreID
:需要忽略翻译的元素 ID,例如["comment", ...]
。ignoreClass
:需要忽略翻译的类名,例如["post-category", ...]
。ignoreTag
:需要忽略翻译的标签,例如["title", ...]
。ignoreText
:需要忽略翻译的文本,例如["FixIt", "Lruihao", ...]
。detectLocalLanguage
:是否检测本地语言。cdn
:translate.js 的 CDN,例如https://cdn.jsdelivr.net/npm/i18n-jsautotranslate@latest
。enterprise
:是否启用企业级翻译通道。
Note
为了避免翻译语言获取失败,即使你的站点本身是单语言的,也需要配置 languageCode
和 languageName
,例如:
[languages]
[languages.zh-cn]
languageCode = "zh-CN"
languageName = "简体中文"
autoTranslate:
local: ''
fromLanguages: []
onlyLocalLang: false
-
local
:String
用于指定当前页面的本地语言,例如local: english
。默认本地语言同 Hugo 站点配置相同,如果某个页面实际语言与站点配置不同,可以通过
local
参数指定。 -
fromLanguages
:Array
类型,用于指定当前页面内容中出现的语种是否需要翻译。例如:网页本身是中文,但是内容中还有其他语言,你可以指定需要翻译的语种,例如:
fromLanguages: - chinese_simplified - chinese_traditional
-
onlyLocalLang
:Boolean
类型,用于指定是否只翻译当前页面本地语言,默认为false
。例如:网页本身是中文,但是内容中其他语言的摘要引用,设置
onlyLocalLang: true
可以只翻译中文。
在你的项目目录 data
文件夹下创建 nomenclature.yml
文件,然后添加自定义翻译术语,例如:
- from: english
to: chinese_simplified
properties:
Hello: 你好
World: 世界
- from: english
to: french
properties:
Hello: Bonjour
World: Monde
企业级稳定翻译通道,仅针对付费用户开放。
体验额度:每天有 5 万字符的体验额度,超出部分将不再翻译!
在 FixIt 里启用企业级翻译通道,设置 params.autoTranslate.enterprise
为 true
即可,企业级翻译通道相对于普通翻译通道有以下优势:
服务 | 开源翻译通道 | 企业级翻译通道 |
---|---|---|
服务端缓存层数 | 1 层 (文件式缓存) | 1 层 (内存 + 文件式缓存) |
翻译响应速度 | 1.5~5 秒 | 0.8~1.5 秒 |
翻译服务器 | 1 台 | >=3 台 |
网络节点 | 2 个 | >=4 个 |
翻译通道 | 手动设置 | 自动匹配最优 |
国内缓存节点 | 无 | 有 |
每日翻译字符 | 200 万 | 5000 万 |
考虑到 FixIt 生态受众群体大多为个人用户,因此我(@Lruihao)以个人名义拿出赞助收入进行补贴。
Tip
FixIt 项目补贴价:¥10 ¥50 / 域名 / 月
到期自动禁用,需要重新赞助续费!
符合以下性质的可以免费联系我开通企业级翻译通道:
- translate.js 及相关生态产品的开发者
- FixIt 及相关生态产品的开发者
另外,Hugo FixIt 星球 成员每人补贴赠送 6 个月服务 / 年。
选择赞助金额,然后在留言中备注 AutoTranslate: 你的域名
即可。
通过以下方式联系作者:
- 邮箱:
1024#lruihao.cn
(将#
替换为@
) - 微信:关注公众号回复“Cell”获取作者微信
translate.js 提供技术支持和赞助企业级翻译通道。