Translate for Zotero, a.k.a. Zotero PDF Translate, is a Zotero plugin.
Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20+ translate services.
.xpi
and select "Save As.."Tools
in the top menu bar and then click Addons
Install Add-on from file
..xpi
file and select it.restart now
in the extensions list where the
Zotero PDF Translate plugin is now listed.Tools
in the top menu bar and then click Addons
.install now
.restart now
in the extensions list where the
Zotero PDF Translate plugin is now listed.Once you have the plugin installed simply, open any PDF in your collections.
Select some text, the translations are shown on the popup and the right sidebar(v0.2.0); Hold Alt/Option
to concat selections.
Highlight some text, the translations are added to the annotation comment(v0.3.0); Modify & retranslate the annotation text in the sidebar and click the Update Annotation
to modify the annotation text and translation(v0.6.6);
Add selected text along with translation to note(v0.4.0); Only works when a note editor is active.
Translate item titles with right-click menu or shortcut Ctrl+T
(v0.6.0).
Translate item abstract with right-click menu(v0.8.0). Thanks @iShareStuff
Standalone translation window available(v0.7.0). View & compare translations from multiply engines in one window!
Dictionary for single word translation(v0.7.1).
SentenceBySentence Translation(v1.1.0). After a translation, press shift
+P
and select Translate Sentences
. Only for en2zh and en2en now. Thanks @MuiseDestiny
Q I want to translate manually.
A Go to Edit->Preferences->PDF Translate->General
, uncheck the Automatic Translation
. Click the translate
button on the popup or sidebar to translate.
Q I want a translate shortcut.
A
Press shortcut Ctrl+T
after you selected some text. If you are in the collection view, the titles' translation will show/hide.
Q I want to concat different seletions and translate them together.
A Press Alt/Option
when selecting text in PDF.
Q Not the language I want.
A The default target language is the same as your Zotero language. Go to Edit->Preferences->PDF Translate->General
and change the language settings.
Q Translation not correct or report an error.
A See Language Settings and #6. Make sure you use the right secret.
Q I want to change the font size.
A Go to Edit->Preferences->PDF Translate->Advanced
and set the font size.
true
true
true
true
true
true
Unvisible if no active note editor opened.
- Replace Source Text: Use translation to replace the source text when adding to note, default
false
The default engine is Google Translate. Currently, we support: | Translate Engine | Require Secret | Supported Languages |
---|---|---|---|
Google Translate | No | 100+ | |
Google Translate(API) | No | Use translate.googleapis.com |
|
CNKI | No | https://dict.cnki.net | |
Youdao Translate | No | 100+? | |
NiuTrans | Yes | 400+ | |
Youdao Zhiyun | Yes | 100+ | |
Microsoft Translate | Yes(free 2M) | 200+ | |
LingoCloud(Caiyun) Translate | Yes | zh, en, ja, es, fr, ru | |
DeepL Translate | Yes(free 500k) | 100+ | |
Aliyun Translate | Yes(free-1M) | 200+ | |
Baidu Translate | Yes(free-QPS1/free-2M) | 200+ | |
Baidu Field | Yes(free-QPS1/free-2M) | en-zh | |
Tencent Translate | Yes(QPS5, free-5M) | 15 | |
GPT(OpenAI) | Yes(free-$18) | Based on the gpt-3.5-turbo model | |
Gemini | Yes(free-) | Based on the Gemini Pro model |
If the engine you want is not yet supported, please post an issue.
Google Google does not require a secret, but you can put your own API URL in the secret to replace the default URL (translate.google.com/translate.googleapi.com).
Microsoft Translate
Apply here. Copy your secret and paste it into the settings.
The secret format is MY_SECRET
.
See this issue for detailed steps to set up the Microsoft Translate.
DeepL Translate
Apply here.
The secret format is secretToken
or secretToken#glossaryId
(if you want to specify some translate glossary).
Youdao Zhiyun Translate 有道智云
Apply here.
The secret format is MY_APPID#MY_SECRET#MY_VOCABID(optional)
.
About
VOCABID
登录控制台,选择文本翻译服务,点击右侧的术语表,选择新建,填写表名称和语言方向,添加需要的术语表,然后获取对应词表 id 即可。
NiuTrans
Apply here.
The secret format is MY_APIKEY#dictNo(optional)#memoryNo(optional)
.
Huoshan
Apply here
The secret format is accessKeyId#accessKeySecret
Aliyun Translate
Apply here.
The secret format is accessKeyId#accessKeySecret
.
Baidu Translate
Apply here.
The secret format is MY_APPID#MY_KEY#ACTION(optional, see https://api.fanyi.baidu.com/doc/21, default 0)
(split with '#').
Baidu Field Translate 百度垂直领域翻译
Apply here.
The secret format is MY_APPID#MY_KEY#DOMAIN_CODE
(split with '#').
Domain Code | 领域 | 支持语言方向 |
---|---|---|
it | 信息技术领域 | 中文(简)-> 英语、英语 -> 中文(简) |
finance | 金融财经领域 | 中文(简)-> 英语、英语 -> 中文(简) |
machinery | 机械制造领域 | 中文(简)-> 英语、英语 -> 中文(简) |
senimed | 生物医药领域 | 中文(简)-> 英语、英语 -> 中文(简) |
novel | 网络文学领域 | 中文(简)-> 英语 |
academic | 学术论文领域 | 中文(简)-> 英语、英语 -> 中文(简) |
aerospace | 航空航天领域 | 中文(简)-> 英语、英语 -> 中文(简) |
wiki | 人文社科领域 | 中文(简)-> 英语 |
news | 新闻资讯领域 | 中文(简)-> 英语、英语 -> 中文(简) |
law | 法律法规领域 | 中文(简)-> 英语、英语 -> 中文(简) |
contract | 合同领域 | 中文(简)-> 英语、英语 -> 中文(简) |
Tencent Translate
Apply here.
The secret format is secretId#SecretKey#Region(optional, default ap-shanghai)#ProjectId(optional, default 0)
(split with '#').
OpenL Translate
Apply here.
The secret format is service1,service2,...#apikey
(split with '#'; split service codes with ',').
Supported service codes are: deepl,youdao,tencent,aliyun,baidu,caiyun,wechat,sogou,azure,ibm,aws,google
, See Service Code
GPT
Apply here.
The secret format is sk-#SecretKey
(split with '#').
Support third-party compatible APIs.
Font Size
: The font size of result text, default 12
Line Height
: The line height of result text, default 1.5
SideBar: Show xxx
: Show or hide sidebar elements, default true
SideBar: Reverse Raw/Result
: Reverse the order of Raw/Result in the sidebar if true
, default false
Popup: Remember Size
: Remember size of popup if true
, else automatically adjust the size, default false
zh
and ja
files, set zh,ja
.This addon is built based on the Zotero Plugin Template. See the setup and debug details there.
To startup, run
git clone https://github.com/windingwind/zotero-pdf-translate.git
cd zotero-pdf-translate
npm install
npm run build
The plugin is built to ./build/*.xpi
.
Add new translate service
src/utils/config.ts
> SERVICES
;src/modules/services/${serviceId}.ts
with the same format with other services. The export function set the translation result to data.result
if runs successfully and throw an error if fails;src/modules/services/index.ts
.service.${serviceId}
in addon/chrome/locale/${lang}/addon.properties
.Extra options for translate service
If the service requires extra options, the minimal implement would be putting them in the secret
input in the prefs window, like the existing services does.
If there are complex options, please bind a callback in src/modules/settings/index.ts > secretStatusButtonData
which create a highly customizable dialog window with ztoolkit.Dialog
. See the example of NiuTrans login here: https://github.com/windingwind/zotero-pdf-translate/blob/main/src/modules/settings/niutrans.ts
Use this code under AGPL. No warranties are provided. Keep the laws of your locality in mind!
Thanks peachgirl100 and other anonymous sponsors!
If you want to leave your name here, please email me or leave a message with the donation.