Giter Site home page Giter Site logo

doubledori / zotero-pdf-translate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from windingwind/zotero-pdf-translate

0.0 0.0 0.0 3.05 MB

PDF translation add-on for Zotero 6

License: GNU Affero General Public License v3.0

JavaScript 4.42% TypeScript 95.58%

zotero-pdf-translate's Introduction

PDFTranslateZotero PDF Translate

This is an add-on for Zotero 6. It provides PDF translation for Zotero's built-in PDF reader.

Quick Start Guide

Install

  • Download the latest release (.xpi file) from the Releases Page
    Note If you're using Firefox as your browser, right-click the .xpi and select "Save As.."
  • In Zotero click Tools in the top menu bar and then click Addons
  • Go to the Extensions page and then click the gear icon in the top right.
  • Select Install Add-on from file.
  • Browse to where you downloaded the .xpi file and select it.
  • Restart Zotero, by clicking restart now in the extensions list where the Zotero PDF Translate plugin is now listed.

Usage

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);

  • 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).

Q&A

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, titles' translation will show/hide.

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.

Settings

General-Functions

  • Enable Translation, default true
  • Automatic Translation, default true
  • Enable Popup: Show results in a right-click popup or only in the side bar, default true
  • Automatic Annotation Translation: Save annotation's translation as comment, default true
  • Show 'PDFTranslateAdd to Note' in Popup: default true

    Unvisible if no active note editor opened.

General-Translate Engine

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
Youdao Translate No 100+?
Niu Translate(Trial) No 100+ UNSTABLE
Niu Translate Yes 100+
Microsoft Translate Yes(free 2M) 200+
LingoCloud(Caiyun) Translate Yes zh, en, ja, es, fr, ru
DeepL Translate Yes(free 500k) 100+
Baidu Translate Yes(free-QPS1/free-2M) 200+
Tencent Translate Yes(QPS5, free-5M) 15

If the engine you want is not yet supported, please post an issue.

General-Language Settings

You can change the source and target language here. For some Translate Engines, the secret is required. They are listed below:

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.

Niu Translate
Apply here.
The secret format is MY_APIKEY.

Chinese Document

Baidu Translate
Apply here.
The secret format is MY_APPID#MY_KEY(split with '#').

Chinese Document

Tencent Translate
Apply here.
The secret format is secretId#SecretKey#Region(optional, default ap-shanghai)#ProjectId(optional, default 0)(split with '#').

Chinese Document

Advanced-UI

  • Font Size: The font size of result text, default 12
  • 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

Advanced-Others

  • Disable Automatic Translation when File Language is(split with ','): If you want to disable automatic translation in zh and ja files, set zh,ja.

Development

This section is for developers.

Use this repo as a Zotero Addon Template

This repo can be used as a Zotero 6.x addon template. To start with, clone this repo and install npm dependencies:

git clone [email protected]:windingwind/zotero-pdf-translate.git
cd zotero-pdf-translate
npm i

Change the settings in package.json. Modify addonRef and addonID to avoid confliction.

Directory Structure

This section shows the directory structure of a template.

  • All .js/.ts code files are in ./src;
  • Addon config files: ./addon/chrome.manifest, ./addon/install.rdf;
  • UI files: ./addon/chrome/content/*.xul. The overlay.xul also defines the main entrance;
  • Locale files: ./addon/chrome/locale/*.dtd;
  • Resource files: ./addon/chrome/skin/default/__addonRef__/*.dtd;
│  .gitignore
│  .release-it.json # release-it conf
|  jsconfig.json    # https://code.visualstudio.com/docs/languages/jsconfig#
│  build.js         # esbuild
│  LICENSE
│  package.json     # npm conf
│  README.md        # readme
│  update.rdf       # addon update
│
├─.github           # github conf
│
├─addon             # addon dir
│  │  chrome.manifest  #addon conf
│  │  install.rdf   # addon install conf
│  │
│  └─chrome
│      ├─content    # UI
│      │  │  overlay.xul
│      │  │  preferences.xul
│      │  │
│      │  └─scripts
│      ├─locale     # locale
│      │  ├─en-US
│      │  │      overlay.dtd
│      │  │
│      │  └─zh-CN
│      │          overlay.dtd
│      │
│      └─skin       # style
│          └─default
│              └─zoteropdftranslate
│                      favicon.png
│                      [email protected]
│
├─builds            # build dir
│  └─zotero-pdf-translate.xpi
│
├─imgs              # readme images
│
└─src               # source code
    │  index.ts     # main entry
    │  base.ts      # base class
    │  PDFTranslate.ts  # main class
    │  events.ts    # events class
    │  reader.ts    # reader class
    │  translate.ts # translate class
    │  view.ts      # UI class
    │  prefs.ts     # preferences class
    │
    └─translate     # translate engines
            baidu.ts
            caiyun.ts
            config.ts
            deepl.ts
            google.ts
            microsoft.ts
            niutrans.ts
            tencent.ts
            youdao.ts

Build

# A release-it command: version increase, npm run build, git push, and GitHub release
# You need to set the environment variable GITHUB_TOKEN https://github.com/settings/tokens
# release-it: https://github.com/release-it/release-it
npm run release

Alternatively, build it directly using build.js: npm run build

Build Steps

  1. Clean ./builds
  2. Copy ./addon to ./builds
  3. Esbuild to ./builds/addon/chrome/content/scripts
  4. Replace __buildVersion__ and __buildTime__ in ./builds/addon
  5. Copy ./src/preferences.js to ./builds/addon/chrome/content/scripts
  6. Zip the ./builds/addon to ./builds/*.xpi

Disclaimer

Use this code under AGPL. No warranties are provided. Keep the laws of your locality in mind!

Part of the code of this repo refers to other open-source projects within the allowed scope.

  • zotero-scihub
  • zotero-tag
  • zotero-better-bibtex(d.ts)

My Other Zotero Addons

  • zotero-tag: Automatically tag items/Batch tagging

zotero-pdf-translate's People

Contributors

windingwind avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.