[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71275":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},71275,"zotero-pdf-translate","windingwind\u002Fzotero-pdf-translate","windingwind","Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20+ translate services.","",null,"TypeScript",11053,487,25,10,0,22,61,206,66,43.07,"GNU Affero General Public License v3.0",false,"main",[26,27,28,29,30,31,32],"pdf","plugin","translate","translation","zotero","zotero-plugin","zotero7","2026-06-12 02:02:50","# ![Translate for Zotero](addon\u002Fchrome\u002Fcontent\u002Ficons\u002Ffavicon.png)Translate for Zotero\n\n[![zotero target version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FZotero-7\u002F8-green?style=flat-square&logo=zotero&logoColor=CC2936)](https:\u002F\u002Fwww.zotero.org)\n[![Using Zotero Plugin Template](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FUsing-Zotero%20Plugin%20Template-blue?style=flat-square&logo=github)](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-plugin-template)\n\n_Translate for Zotero_, a.k.a. _Zotero PDF Translate_, is a [Zotero](https:\u002F\u002Fwww.zotero.org\u002F) plugin.  \nTranslate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20+ translate services.\n\n[中文文档](https:\u002F\u002Fzotero.yuque.com\u002Fbooks\u002Fshare\u002F4443494c-c698-4e08-9d1e-ed253390346d)\n\n![](docs\u002Fres\u002Ftranslate.gif)\n\n# Quick Start Guide\n\n## Install\n\n- Download the plugin (.xpi file) from below.\n  - [Latest Stable](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-pdf-translate\u002Freleases\u002Flatest)\n  - [All Releases](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-pdf-translate\u002Freleases)\n\n  _Note_ If you're using Firefox as your browser, right-click the `.xpi` and select \"Save As..\"\n\n- In Zotero click `Tools` in the top menu bar and then click `Plugins`\n- Go to the Extensions page and then click the gear icon in the top right.\n- Select `Install Plugin from file`.\n- Browse to where you downloaded the `.xpi` file and select it.\n- Finish!\n\n## Usage\n\nOpen any PDF\u002FEPub\u002Fwebpage in the Zotero reader.\n\n- Select text, the translations are shown on the pop-up and the item pane(v0.2.0).\n  ![](docs\u002Fres\u002Fen2zh.jpg)\n\n- Highlight\u002FUnderline some text, the translations are added to the annotation comment(v0.3.0); Modify & retranslate the annotation text in the item pane and click the `Update Annotation` to modify the annotation text and translation(v0.6.6);\n- Add selected text along with translation to note(v0.4.0); _Only works when a note editor is active._\n  ![](docs\u002Fres\u002Faddtonote.jpg)\n\n- Translate item titles with right-click menu or shortcut `Ctrl+T`(v0.6.0).\n- Translate item abstract with right-click menu(v0.8.0). Thanks @iShareStuff\n- Standalone translation window available(v0.7.0). View & compare translations from multiply services in one window!\n  ![](docs\u002Fres\u002Fstandalone.jpg)\n\n- Dictionary for single word translation(v0.7.1).\n- SentenceBySentence Translation(v1.1.0). After a translation, press `shift`+`P` and select `Translate Sentences`. _Only for en2zh and en2en now_. Thanks @MuiseDestiny\n- Since v2.2.0, the concat mode shortcut is ctrl (on Windows\u002FLinux) or ⌘ (on macOS).\n\n### Q&A\n\n**Q** I want to translate manually.  \n**A** Go to `Edit->Settings->Translate->General`, uncheck the `Automatically Translate Selection`. Click the `Translate` button on the pop-up or item pane to translate.\n\n**Q** I want a translate shortcut.  \n**A**\nPress shortcut `Ctrl+T` after you selected some text. If you are in the collection view, the titles' translation will show\u002Fhide.\n\n**Q** I want to concat different selections and translate them together.  \n**A** Press `Ctrl\u002F⌘` or select the `Concat Mode` check box on item pane when selecting text in PDF\u002FEPub\u002Fwebpage.\n\n**Q** Not the language I want.  \n**A** The default target language is the same as your Zotero language. Go to `Edit->Settings->Translate->Service` and change the language settings.\n\n**Q** Translation not correct or report an error.  \n**A** See _Language Settings_ above and FAQ([#6](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-pdf-translate\u002Fissues\u002F6)). Make sure you use the right secret.\n\n**Q** I want to change the font size.  \n**A** Go to `Edit->Settings->Translate->User Interface` and set the font size.\n\n**Q** I want to resize the raw and result text area in the translate panel.  \n**A** Drag the separator up and down to adjust the size. Double-click the separator to reset the size.\n\n## Settings\n\n### General\n\n\u003C!-- - Enable Translation, default `true` -->\n\n- Automatically Translate Selection, default `true`\n- Automatically Translate Annotation: Save annotation's translation to annotation comment or annotation body, default `false`\n  - Automatically Translate Annotation from Sync: Automatically translate annotations synced from other devices if `true`, default `false`\n- Enable Reader Selection Pop-up: Show results in the pop-up panel or only in the item pane, default `true`\n- Show \"Add Translation to Note\" in Pop-up: default `true`\n  > Invisible if no active note editor opened.\n  - Replace Raw: Use translation to replace the raw text when adding to note, default `false`\n- Enable Dictionary: Single word will be translated using dictionary service instead of translate service, default `true`\n  - Show Play Buttons: Show the word pronunciation play buttons if available, default `true`\n  - Auto-play Pronunciation, default `false`\n\n### Service\n\nThe default service is Google Translate. Currently, we support:\n\n| Translate Service            | Require Secret                | Supported Languages                                                                                                                                                                        |\n| ---------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Google Translate             | No **[Free]**                 | [100+](https:\u002F\u002Ftranslate.google.com\u002Fabout\u002Flanguages\u002F)                                                                                                                                      |\n| Google Translate(API)        | No **[Free]**                 | Use `translate.googleapis.com`                                                                                                                                                             |\n| CNKI                         | No **[Free]**                 | \u003Chttps:\u002F\u002Fdict.cnki.net>                                                                                                                                                                    |\n| Haici Translate              | No **[Free]**                 | \u003Chttps:\u002F\u002Ffanyi.dict.cn>                                                                                                                                                                    |\n| Youdao Translate             | No **[Free]**                 | [100+?](https:\u002F\u002Fai.youdao.com\u002FDOCSIRMA\u002Fhtml\u002Ftrans\u002Fapi\u002Fwbfy\u002Findex.html)                                                                                                                     |\n| Bing                         | No **[Free]**                 | [en-zh](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-services\u002Ftranslator\u002Ftext-translation\u002Freference\u002Fv3\u002Freference)                                                                            |\n| DeepLX                       | No **[Free]**                 | Based on [DeepLX](https:\u002F\u002Fgithub.com\u002FOwO-Network\u002FDeepLX?tab=readme-ov-file)                                                                                                                |\n| DeepLX(API)                  | No **[Require config]**       | [DeepLX](https:\u002F\u002Fgithub.com\u002FOwO-Network\u002FDeepLX?tab=readme-ov-file) related projects                                                                                                        |\n| LibreTranslate               | Optional **[Require config]** | [LibreTranslate](https:\u002F\u002Fgithub.com\u002FLibreTranslate\u002FLibreTranslate)                                                                                                                         |\n| MTranServer                  | Optional **[Require config]** | [MTranServer](https:\u002F\u002Fgithub.com\u002Fxxnuo\u002FMTranServer)                                                                                                                                        |\n| NLLB                         | No **[Require config]**       | [nllb-api](https:\u002F\u002Fgithub.com\u002Fwinstxnhdw\u002Fnllb-api?tab=readme-ov-file#self-hosting) or [NLLB Serve](https:\u002F\u002Fgithub.com\u002Fthammegowda\u002Fnllb-serve?tab=readme-ov-file#setup)                     |\n| Pot                          | No **[Require config]**       | [Pot](https:\u002F\u002Fgithub.com\u002Fpot-app\u002Fpot-desktop) _Translate results show in Pot_                                                                                                              |\n| Huoshan                      | Yes                           | [50+](https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F4640\u002F127681)                                                                                                                                         |\n| Volcengine Web               | No **[Free]**                 | [en, zh, and more (auto-detect, web version)](https:\u002F\u002Ftranslate.volcengine.com\u002F)                                                                                                           |\n| Youdao Zhiyun                | Yes                           | [100+](https:\u002F\u002Fai.youdao.com\u002FDOCSIRMA\u002Fhtml\u002Ftrans\u002Fapi\u002Fwbfy\u002Findex.html)                                                                                                                      |\n| Youdao LLM                   | Yes                           | [LLM-based](https:\u002F\u002Fai.youdao.com\u002FDOCSIRMA\u002Fhtml\u002Ftrans\u002Fapi\u002Fdmxfy\u002Findex.html)(en-zh)                                                                                                         |\n| Niu Trans                    | Yes                           | [400+](https:\u002F\u002Fniutrans.com\u002Fdocuments\u002Fcontents\u002Ftrans_text#accessMode)                                                                                                                      |\n| Microsoft Translate          | Yes(free 2M)                  | [200+](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Ftranslator\u002Flanguage-support)                                                                                              |\n| LingoCloud(Caiyun) Translate | Yes                           | [10+](https:\u002F\u002Fdocs.caiyunapp.com\u002Flingocloud-api\u002Findex.html)                                                                                                                                |\n| DeepL Translate              | Yes(free 500k)                | [100+](https:\u002F\u002Fwww.deepl.com\u002Fpro?cta=header-prices\u002F#developer)                                                                                                                             |\n| Aliyun Translate             | Yes(free-1M)                  | [200+](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F158269.html)                                                                                                                                |\n| Baidu Translate              | Yes(free-QPS1\u002Ffree-2M)        | [200+](https:\u002F\u002Ffanyi-api.baidu.com\u002Fproduct\u002F11)                                                                                                                                             |\n| Baidu Field                  | Yes(free-QPS1\u002Ffree-2M)        | [en-zh](https:\u002F\u002Ffanyi-api.baidu.com\u002Fproduct\u002F12)                                                                                                                                            |\n| OpenL                        | Yes                           | [11](https:\u002F\u002Fdocs.openl.club\u002F#\u002FAPI\u002Fformat)                                                                                                                                                 |\n| Tencent Translate            | Yes(QPS5, free-5M)            | [15](https:\u002F\u002Fcloud.tencent.com\u002Fdocument\u002Fproduct\u002F551\u002F7372)                                                                                                                                  |\n| Tencent Transmart            | No **[Free]**                 | [en, zh, and more (auto-detect, web version)](https:\u002F\u002Ftransmart.qq.com\u002F)                                                                                                                   |\n| Xftrans                      | Yes(free 2M)                  | [Xftrans API](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fnlp\u002Fxftrans\u002FAPI.html)(70+), [NiuTrans API](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fnlp\u002Fniutrans\u002FAPI.html)(100+)                                                    |\n| GPT                          | Yes(free-$18)                 | [OpenAI](https:\u002F\u002Fopenai.com\u002Fpricing#chat)(ChatGPT), [AzureGPT](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fai-foundry\u002Fopenai\u002Freference#chat-completions), compatible GPT-like LLM (Custom GPT) |\n| Gemini                       | Yes(free-)                    | [LLM-based](https:\u002F\u002Fai.google.dev\u002Favailable_regions#available_languages)                                                                                                                   |\n| Qwen-MT                      | Yes(free-)                    | [LLM-based](https:\u002F\u002Fhelp.aliyun.com\u002Fzh\u002Fmodel-studio\u002Fuser-guide\u002Fmachine-translation)                                                                                                        |\n| Claude                       | Yes                           | [LLM-based](https:\u002F\u002Fdocs.anthropic.com\u002Fclaude\u002Fdocs\u002Fgetting-started-with-the-claude-api)                                                                                                    |\n\n> If the service you want is not yet supported, please post an issue.\n\n**Google**  \nGoogle does not require a secret, but you can put your own API URL in the secret to replace the default URL (translate.google.com\u002Ftranslate.googleapi.com).\n\n**Huoshan**  \nApply [here](https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F4640\u002F65067).  \nThe secret format is `accessKeyId#accessKeySecret`\n\n**Youdao Zhiyun Translate 有道智云**  \nApply [here](https:\u002F\u002Fai.youdao.com\u002Flogin.s).  \nThe secret format is `MY_APPID#MY_SECRET#MY_VOCABID(optional)`.\n\n> About `VOCABID`  \n> 登录控制台，选择文本翻译服务，点击右侧的术语表，选择新建，填写表名称和语言方向，添加需要的术语表，然后获取对应词表 id 即可。  \n> About `Config -> Domain`  \n> 登录控制台，点击创建应用，输入应用名称，在*选择服务*一栏勾选**文本翻译**，然后勾选**领域化翻译**即可开通领域化翻译。领域化翻译仅支持中英互译。\n>\n> [Official Document](https:\u002F\u002Fai.youdao.com\u002FDOCSIRMA\u002Fhtml\u002Ftrans\u002Fapi\u002Fwbfy\u002Findex.html)\n\n**Youdao LLM Translate 有道智云子曰大模型**  \nApply [here](https:\u002F\u002Fai.youdao.com\u002Flogin.s).  \nThe secret format is `MY_APPID#MY_SECRET`.\n\n> 登录控制台，点击创建应用，输入应用名称，在*选择服务*一栏勾选**大模型翻译**，大模型翻译仅支持中英互译。\n>\n> [Official Document](https:\u002F\u002Fai.youdao.com\u002FDOCSIRMA\u002Fhtml\u002Ftrans\u002Fapi\u002Fdmxfy\u002Findex.html)\n\n**NiuTrans**  \nApply [here](https:\u002F\u002Fniutrans.com\u002FNiuTransAuthCenter\u002Flogin).  \nThe secret format is `MY_APIKEY#dictNo(optional)#memoryNo(optional)`.\n\n> [Chinese Document](https:\u002F\u002Fdoc.tern.1c7.me\u002Fzh\u002Ffolder\u002Fsetting\u002F#%E5%B0%8F%E7%89%9B)\n\n**Microsoft Translate**  \nApply [here](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Ftranslator\u002Fquickstart-translator?tabs=csharp). Copy your secret and paste it into the settings.  \nThe secret format is `serviceKEY#region(required if the region is not global)`.\n\n> See [this issue](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-pdf-translate\u002Fissues\u002F3#issuecomment-1064688597) for detailed steps to set up the Microsoft Translate.\n\n**LingoCloud(Caiyun) Translate**  \nApply [here](https:\u002F\u002Fdocs.caiyunapp.com\u002Flingocloud-api\u002Findex.html#%E7%94%B3%E8%AF%B7%E8%AE%BF%E9%97%AE%E4%BB%A4%E7%89%8C).\n\n**DeepL Translate**  \nApply [official API](https:\u002F\u002Fwww.deepl.com\u002Fpro?cta=header-prices\u002F#developer) or [third-party API](https:\u002F\u002Fdeepl-pro.com\u002F#\u002Ftranslate).  \nThe secret format is `secretToken` or `secretToken#glossaryId` (if you want to specify some translate glossary).\n\n**Aliyun Translate**  \nApply [here](https:\u002F\u002Fwww.aliyun.com\u002Fproduct\u002Fai\u002Fbase_alimt).  \nThe secret format is `accessKeyId#accessKeySecret#endpoint(optional)`.\n\n> The endpoint is the region of the service, default `https:\u002F\u002Fmt.aliyuncs.com`. For `cn-hangzhou`, the endpoint is `mt.cn-hangzhou.aliyuncs.com`. See also [here](https:\u002F\u002Fhelp.aliyun.com\u002Fzh\u002Fmachine-translation\u002Fdeveloper-reference\u002Fapi-alimt-2018-10-12-endpoint?spm=a2c4g.11186623.help-menu-30396.d_4_1_0.6c702fa7WlNkX1).\n\n> [Chinese Document](https:\u002F\u002Fhelp.aliyun.com\u002Fdocument_detail\u002F158269.html)\n\n**Baidu Translate**  \nApply [here](https:\u002F\u002Ffanyi-api.baidu.com\u002Fproduct\u002F11).  \nThe secret format is `MY_APPID#MY_KEY#ACTION(optional, see https:\u002F\u002Fapi.fanyi.baidu.com\u002Fdoc\u002F21, default 0)`(split with '#').\n\n**Baidu Field Translate 百度垂直领域翻译**  \nApply [here](https:\u002F\u002Ffanyi-api.baidu.com\u002Fproduct\u002F12).  \nThe secret format is `MY_APPID#MY_KEY#DOMAIN_CODE`(split with '#').\n\n| Domain Code | 领域         | 支持语言方向                          |\n| ----------- | ------------ | ------------------------------------- |\n| it          | 信息技术领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| finance     | 金融财经领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| machinery   | 机械制造领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| senimed     | 生物医药领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| novel       | 网络文学领域 | 中文（简）-> 英语                     |\n| academic    | 学术论文领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| aerospace   | 航空航天领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| wiki        | 人文社科领域 | 中文（简）-> 英语                     |\n| news        | 新闻资讯领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| law         | 法律法规领域 | 中文（简）-> 英语、英语 -> 中文（简） |\n| contract    | 合同领域     | 中文（简）-> 英语、英语 -> 中文（简） |\n\n> [Chinese Document](https:\u002F\u002Fdoc.tern.1c7.me\u002Fzh\u002Ffolder\u002Fsetting\u002F#%E8%85%BE%E8%AE%AF%E4%BA%91)\n\n**OpenL Translate**  \nApply [here](https:\u002F\u002Fmy.openl.club\u002F).  \nThe secret format is `service1,service2,...#apikey`(split with '#'; split service codes with ',').\n\nSupported service codes are: `deepl,youdao,tencent,aliyun,baidu,caiyun,wechat,sogou,azure,ibm,aws,google`, See [Service Code](https:\u002F\u002Fdocs.openl.club\u002F#\u002FAPI\u002Fformat?id=%e7%bf%bb%e8%af%91%e6%9c%8d%e5%8a%a1%e4%bb%a3%e7%a0%81%e5%90%8d)\n\n> [Chinese Document](https:\u002F\u002Fdocs.openl.club\u002F#\u002F)\n\n**Tencent Translate**  \nApply [here](https:\u002F\u002Fcloud.tencent.com\u002Fproduct\u002Ftmt).  \nThe secret format is `secretId#SecretKey#Region(optional, default ap-shanghai)#ProjectId(optional, default 0)`(split with '#').\n\n> [Chinese Document](https:\u002F\u002Fdoc.tern.1c7.me\u002Fzh\u002Ffolder\u002Fsetting\u002F#%E8%85%BE%E8%AE%AF%E4%BA%91)\n\n**Xftrans 讯飞翻译**  \nApply [here](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fauthentication\u002Fpersonal.html#%E6%93%8D%E4%BD%9C%E6%AD%A5%E9%AA%A4).\n\n**GPT**  \nApply [OpenAI ChatGPT API](https:\u002F\u002Fauth.openai.com\u002Fcreate-account) or [Azure OpenAI REST API](https:\u002F\u002Fazure.microsoft.com\u002Ffree\u002Fcognitive-services).  \nThe secret format is `sk-*` for ChatGPT, and `MY_APIKEY` for AzureGPT and Custom GPT.\n\nSupport third-party or self-deployed compatible APIs.\n\n> [Chinese Document](https:\u002F\u002Fgist.github.com\u002FGrayXu\u002Ff1b72353b4b0493d51d47f0f7498b67b)\n\n**Gemini**  \nApply [here](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs).  \nThe secret format is `MY_APIKEY`.\n\n**Qwen-MT**  \nApply [here](https:\u002F\u002Fhelp.aliyun.com\u002Fzh\u002Fmodel-studio\u002Fuser-guide\u002Fmachine-translation).  \nThe secret format is `MY_APIKEY`.\n\n**Claude**  \nApply [here](https:\u002F\u002Fdocs.anthropic.com\u002Fclaude\u002Fdocs\u002Fgetting-started-with-the-claude-api).\n\n**LibreTranslate**  \nSee [LibreTranslate](https:\u002F\u002Fgithub.com\u002FLibreTranslate\u002FLibreTranslate). API Key is optional.\n\n**MTranServer**  \nSee [MTranServer](https:\u002F\u002Fgithub.com\u002Fxxnuo\u002FMTranServer). Token is optional.\n\n> MTranServer only supports `zh`-`en` language pairs for v2.1.1 and previous versions. For MTranServer v3.0.0+, please check the checkbox in the Config panel to use `zh-Hans` or `zh-Hant` language. See [explanation of the supported languages](https:\u002F\u002Fgithub.com\u002Fxxnuo\u002FMTranServer\u002Fissues\u002F59#issuecomment-3131551779).\n\n**NLLB**  \nSee [nllb-api](https:\u002F\u002Fgithub.com\u002Fwinstxnhdw\u002Fnllb-api?tab=readme-ov-file#self-hosting) or [NLLB Serve](https:\u002F\u002Fgithub.com\u002Fthammegowda\u002Fnllb-serve?tab=readme-ov-file#setup).\n\n**Pot**  \nSee [Pot](https:\u002F\u002Fgithub.com\u002Fpot-app\u002Fpot-desktop?tab=readme-ov-file#%E5%A4%96%E9%83%A8%E8%B0%83%E7%94%A8). _Translate results show in Pot._\n\n### User Interface\n\n- `Font Size`: The font size of result text, default `12`\n- `Line Height`: The line height of result text, default `1.5`\n- `Item Context Menu: Show xxx`: Show or hide Title\u002FAbstract tanslation, default `true`\n- `Item Pane Section: Show xxx`: Show or hide elements in the item pane, default `true`\n- `Item Pane Section: Hold down Ctrl\u002F⌘`: Press key to enable concat mode when selecting text in PDF\u002FEPub\u002Fwebpage if `true`, default `true`\n- `Item Pane Section: Reverse Raw\u002FResult`: Reverse the order of Raw\u002FResult in the item pane if `true`, default `false`\n- `Item Pane Info: Show xxx`: Show or hide Title\u002FAbstract tanslation in the item info rows\n- `Standalone: Keep Windows on Top`: Top the standalone translate panel if `true`, default `false`\n- `Pop-up: Remember Size`: Remember size of pop-up if `true`, else automatically adjust the size, default `false`\n\n### Advanced\n\n- Strip empty lines and thinking from translation results: Automatically remove empty lines or thinking labels from translation results, especially for some LLM translation services.\n- Automatically Detect Item Language\n  - Disable Automatic Translation when File Language is(comma-separated): If you want to disable automatic translation in `zh` and `ja` files, set `zh,ja`. Default `zh,zh-CN,中文`.\n- Delimiter (between text and translation): When translating annotations, the result will be wrapped inside this character to allow safe re-translate. If set to empty, re-translating annotations will replace the annotation comment\u002Fbody with the new translate result.\n- Regex for removing extra text from translation results (leave empty to disable): Automatically remove text from translation results using regex. You need to understand how to use regex in advance.\n- Reset field of selected items in library: Batch reset the _Title Translation_ or _Abstract Translation_ of selected items. Please select the items in Library or Collection panel and then click the button.\n\n## Development & Contributing\n\nThis plugin is built based on the [Zotero Plugin Template](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-plugin-template). See the setup and debug details there.\n\nTo startup, run\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-pdf-translate.git\ncd zotero-pdf-translate\nnpm install\nnpm run build\n```\n\nThe plugin is built to `.\u002Fbuild\u002F*.xpi`.\n\n### Contributing\n\n**Add new translate service**\n\n1. Copy `src\u002Fmodules\u002Fservices\u002F_template.ts` > `src\u002Fservices\u002F\u003Cyour-service-id>.ts`;\n2. Fill in the required fields (id, type, and translate) and optional fields (name, helpUrl, defaultSecret, secretValidator(secret), and config(settings)) following the introduction. The translation function sets the translation result to `data.result` if runs successfully and throws an error if fails;\n3. Import the new service object in `src\u002Fmodules\u002Fservices\u002Findex.ts`.\n4. Add locale string `service.${serviceId}` and `service-\u003Cyour-service-id>-dialog-xxx`(if necessary) in `addon\u002Flocale\u002F${lang}\u002Faddon.ftl`.\n5. Build and test.\n\n## Disclaimer\n\nUse this code under AGPL. No warranties are provided. Keep the laws of your locality in mind!\n\n## My Zotero Plugins\n\n- [Better Notes for Zotero](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-better-notes): Everything about note management. All in Zotero.\n- [Actions & Tags for Zotero](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-tag): Customize your Zotero workflow.\n- [Bionic for Zotero](https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fbionic-for-zotero): Bionic reading experience with Zotero.\n\n## Sponsors\n\nThanks\n[peachgirl100](https:\u002F\u002Fgithub.com\u002Fpeachgirl100),\n[youngfish42](https:\u002F\u002Fgithub.com\u002Fyoungfish42),\nand other anonymous sponsors!\n\nIf you want to leave your name here, please email me or leave a message with the donation.\n\n## Contributors\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwindingwind\u002Fzotero-pdf-translate\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=windingwind\u002Fzotero-pdf-translate\" \u002F>\n\u003C\u002Fa>\n","Zotero PDF Translate 是一个 Zotero 插件，用于将 PDF、EPub、网页、元数据、注释和笔记翻译成目标语言。该项目支持超过 20 种翻译服务，采用 TypeScript 编写，具有高度的可扩展性和兼容性。核心功能包括文本选择翻译、高亮\u002F下划线注释翻译、添加带翻译的笔记以及项目标题和摘要的右键菜单翻译等。此外，它还提供了一个独立的翻译窗口，可以在同一界面查看和比较多个翻译服务的结果。此插件适用于需要在学术研究中频繁处理多语言文献的研究人员和学生，能够显著提高文献阅读和理解的效率。",2,"2026-06-11 03:36:56","high_star"]