docs: typo correction in readme.md and addition of a French translation of this file (#231)
* Add links to the french doc README-frFR.md * Translated to the beginning of the Quick start guide * correct typo in paths * Correct typo * Continuing translation * typo corrected * typo corrected * Frenhc translation finished * typo correction * translate forgotten item
This commit is contained in:
parent
9c21e13698
commit
60d1453b7f
@ -5,7 +5,7 @@
|
||||
|
||||
This is a plugin template for [Zotero](https://www.zotero.org/).
|
||||
|
||||
[English](README.md) | [简体中文](doc/README-zhCN.md)
|
||||
[English](README.md) | [简体中文](doc/README-zhCN.md) | [Français](doc/README-frFR.md)
|
||||
|
||||
- Documentation for plugins development
|
||||
- [📖 Plugin Development Documentation](https://zotero-chinese.com/plugin-dev-guide/) (Chinese, not yet complete)
|
||||
@ -157,7 +157,7 @@ Activate with `Shift+P`.
|
||||
|
||||
3. Enter the repo folder
|
||||
|
||||
### 2 Config Template Settings and Enviroment
|
||||
### 2 Config Template Settings and Environment
|
||||
|
||||
1. Modify the settings in `./package.json`, including:
|
||||
|
||||
@ -180,7 +180,7 @@ Activate with `Shift+P`.
|
||||
> [!warning]
|
||||
> Be careful to set the addonID and addonRef to avoid conflict.
|
||||
|
||||
If you need to host your XPI packages outside of GitHub, moidify `updateURL` and add `xpiDownloadLink` in `zotero-plugin.config.ts`.
|
||||
If you need to host your XPI packages outside of GitHub, modify `updateURL` and add `xpiDownloadLink` in `zotero-plugin.config.ts`.
|
||||
|
||||
2. Copy the environment variable file. Modify the commands that starts your installation of the beta Zotero.
|
||||
|
||||
@ -270,7 +270,7 @@ npm run release
|
||||
```
|
||||
|
||||
> [!note]
|
||||
> This will use [Bumpp](https://github.com/antfu-collective/bumpp) to prompt for the new version number, locally bump the version, run any (pre/post)version scripts defined in `package.json`, commit, build (optional), tag the commit with the version number and push commits and git.tags. Bumpp can be configured in `zotero-plugin-config.ts`; for example, add `release: { bumpp: { execute: "npm run build" } }` to also build before committing.
|
||||
> This will use [Bumpp](https://github.com/antfu-collective/bumpp) to prompt for the new version number, locally bump the version, run any (pre/post)version scripts defined in `package.json`, commit, build (optional), tag the commit with the version number and push commits and git tags. Bumpp can be configured in `zotero-plugin-config.ts`; for example, add `release: { bumpp: { execute: "npm run build" } }` to also build before committing.
|
||||
>
|
||||
> Subsequently GitHub Action will rebuild the plugin and use `zotero-plugin-scaffold`'s `release` script to publish the XPI to GitHub Release. In addition, a separate release (tag: `release`) will be created or updated that includes update manifests `update.json` and `update-beta.json` as assets. These will be available at `https://github.com/{{owner}}/{{repo}}/releases/download/release/update*.json`.
|
||||
|
||||
|
408
doc/README-frFR.md
Normal file
408
doc/README-frFR.md
Normal file
@ -0,0 +1,408 @@
|
||||
# Modèle d'extension Zotero
|
||||
[](https://www.zotero.org)
|
||||
[](https://github.com/windingwind/zotero-plugin-template)
|
||||
|
||||
Ceci est un modèle pour développer une extension pour [Zotero](https://www.zotero.org/).
|
||||
|
||||
[English](../README.md) | [简体中文](./README-zhCN.md) | [Français](./README-frFR.md)
|
||||
|
||||
- Documentation
|
||||
- [📖 Plugin Development Documentation](https://zotero-chinese.com/plugin-dev-guide/) (Chinese, not yet complete)
|
||||
- [📖 Plugin Development Documentation for Zotero 7](https://www.zotero.org/support/dev/zotero_7_for_developers)
|
||||
- Outils pour le développement de pluqgins
|
||||
- [🛠️ Zotero Plugin Toolkit](https://github.com/windingwind/zotero-plugin-toolkit) | [API Documentation](https://github.com/windingwind/zotero-plugin-toolkit/blob/master/docs/zotero-plugin-toolkit.md)
|
||||
- [🛠️ Zotero Plugin Scaffold](https://github.com/northword/zotero-plugin-scaffold)
|
||||
- [ℹ️ Zotero Type Definitions](https://github.com/windingwind/zotero-types)
|
||||
- [📜 Zotero Source Code](https://github.com/zotero/zotero)
|
||||
- [📌 Zotero Plugin Template](https://github.com/windingwind/zotero-plugin-template) (Ce dépot)
|
||||
|
||||
> [!TIP]
|
||||
> 👁 Surveillez ce dépôt afin d'être informé des corrections et des mises à jour.
|
||||
|
||||
## Exetensions développées sur la base de ce modèle
|
||||
[](https://github.com/windingwind/zotero-better-notes)
|
||||
[](https://github.com/windingwind/zotero-pdf-preview)
|
||||
[](https://github.com/windingwind/zotero-pdf-translate)
|
||||
[](https://github.com/windingwind/zotero-tag)
|
||||
[](https://github.com/iShareStuff/ZoteroTheme)
|
||||
[](https://github.com/MuiseDestiny/zotero-reference)
|
||||
[](https://github.com/MuiseDestiny/zotero-citation)
|
||||
[](https://github.com/MuiseDestiny/ZoteroStyle)
|
||||
[](https://github.com/volatile-static/Chartero)
|
||||
[](https://github.com/l0o0/tara)
|
||||
[](https://github.com/redleafnew/delitemwithatt)
|
||||
[](https://github.com/redleafnew/zotero-updateifsE)
|
||||
[](https://github.com/northword/zotero-format-metadata)
|
||||
[](https://github.com/inciteful-xyz/inciteful-zotero-plugin)
|
||||
[](https://github.com/MuiseDestiny/zotero-gpt)
|
||||
[](https://github.com/zoushucai/zotero-journalabbr)
|
||||
[](https://github.com/MuiseDestiny/zotero-figure)
|
||||
[](https://github.com/l0o0/jasminum)
|
||||
[](https://github.com/lifan0127/ai-research-assistant)
|
||||
[](https://github.com/daeh/zotero-markdb-connect)
|
||||
|
||||
Si vous utilisez ce dépôt, je vous recommande de mettre le badge suivant dans votre README :
|
||||
|
||||
[](https://github.com/windingwind/zotero-plugin-template)
|
||||
|
||||
```md
|
||||
[](https://github.com/windingwind/zotero-plugin-template)
|
||||
```
|
||||
|
||||
## Fonctionalités
|
||||
|
||||
- Architecture orientée événements, basée sur la programmation fonctionnelle utilisant des squeletteq étendus ;
|
||||
- Simple et convivial, il est prêt à l'emploi.
|
||||
- ⭐ [Nuveauté !] Rechargement automatique à chaud ! Chaque fois que le code source est modifié, il est automatiquement compilé et rechargé. [Voir ici→]((#auto-hot-reload)
|
||||
- Nombreux exemples dans `src/modules/examples.ts` ; ils couvrent la plupart des usages des APIs habituellement utilisées dans les extensions (en utilisant [zotero-plugin-toolkit](https://github.com/windingwind/zotero-plugin-toolkit));
|
||||
- Support de TypeScript :
|
||||
- Prise en charge complète de la définition des types pour l'ensemble du projet Zotero, qui est écrit en JavaScript (avec les [zotero-types](https://github.com/windingwind/zotero-types));
|
||||
- Variables globales et configuration de l'environnement ;
|
||||
- Gestion des workflows pour le développement, la finalisation et la publication des extensions :
|
||||
- - Génére / met à jour automatiquement l'id/version de l'extension, met à jour les configurations, et définit les variables d'environnement (`development` / `production`);
|
||||
- Construit et recharge automatiquement le code dans Zotero ;
|
||||
- Publie automatiquement les nouvelles versions sur GitHub.
|
||||
- Intégration avec Prettier et ES Lint (analyseur et formatteur de code).
|
||||
|
||||
## Exemples
|
||||
|
||||
Ce dépot fournit des exemples pour les API [zotero-plugin-toolkit](https://github.com/windingwind/zotero-plugin-toolkit).
|
||||
|
||||
Recherchez `@example` dans `src/examples.ts`. Les exemples sont appelés dans `src/hooks.ts`.
|
||||
|
||||
### Exemples basiques
|
||||
|
||||
- registerNotifier
|
||||
- registerPrefs, unregisterPrefs
|
||||
|
||||
### Exemples utilisant les raccourcis clavier
|
||||
|
||||
- registerShortcuts
|
||||
- exampleShortcutLargerCallback
|
||||
- exampleShortcutSmallerCallback
|
||||
- exampleShortcutConflictionCallback
|
||||
|
||||
### Exemples d'interface utilisateur (UI)
|
||||
|
||||

|
||||
|
||||
- registerStyleSheet (utilisé par l'extension officielle make-it-red qui sert d'exemple)
|
||||
- registerRightClickMenuItem
|
||||
- registerRightClickMenuPopup
|
||||
- registerWindowMenuWithSeprator
|
||||
- registerExtraColumn
|
||||
- registerExtraColumnWithCustomCell
|
||||
- registerCustomItemBoxRow
|
||||
- registerLibraryTabPanel
|
||||
- registerReaderTabPanel
|
||||
|
||||
### Exemples avec des panneaux de préférences
|
||||
|
||||

|
||||
|
||||
- Liaisons avec les préférences
|
||||
|
||||
- Événements de l'interface utilisateur
|
||||
|
||||
- Table
|
||||
|
||||
- Locale
|
||||
|
||||
Voir [`src/modules/preferenceScript.ts`](../src/modules/preferenceScript.ts)
|
||||
|
||||
### Exemples de fenêtre d'aide
|
||||
|
||||

|
||||
|
||||
- dialogExample
|
||||
- clipboardExample
|
||||
- filePickerExample
|
||||
- progressWindowExample
|
||||
- vtableExample (voir Exemples avec des panneaux de préférences)
|
||||
|
||||
### Exemples de prompts
|
||||
|
||||
Un module d'invite (entrée de commande contextuelle) de style Obsidian. Il accepte les commandes textuelles pour exécuter le callback, avec un affichage optionnel dans la fenêtre popup.
|
||||
|
||||
S'active avec `Shift+P`.
|
||||
|
||||

|
||||
|
||||
- registerAlertPromptExample
|
||||
|
||||
## Guide de démarrage rapide
|
||||
### 0. Pré-requis
|
||||
|
||||
1. Installez une version beta de Zotero: <https://www.zotero.org/support/beta_builds>
|
||||
2. Installez [Node.js](https://nodejs.org/en/) and [Git](https://git-scm.com/)
|
||||
|
||||
> [!NOTE]
|
||||
> Ce guide suppose que vous avez une compréhension initiale de la structure de base et du fonctionnement des extensiosn Zotero. Si ce n'est pas le cas, veuillez vous référer à la [documentation](https://www.zotero.org/support/dev/zotero_7_for_developers)et aux exemples officiels de l'extension [Make It Red](https://github.com/zotero/make-it-red) en premier lieu.
|
||||
|
||||
### 1. Créez votre dépôt
|
||||
|
||||
1. Cliquez sur `Use this template`
|
||||
2. Clonez votre dépôt avec git.
|
||||
<details >
|
||||
<summary>💡 Démarrer votre projet avec GitHub Codespace</summary>
|
||||
|
||||
_GitHub CodeSpace_ vous permet de démarrer votre projet sans avoir à télécharger le code/IDE/dépendances localement.
|
||||
|
||||
Effectuez les étapes ci-dessus et créez votre première extension en 30 secondes!
|
||||
|
||||
- Allez en haut de la [page d'accueil](https://github.com/windingwind/zotero-plugin-template), cliquez sur le bouton vert `Use this template`, cliquez sur `Open in codespace`. ous devrez peut-être vous connecter à votre compte GitHub.
|
||||
- Attendez que _GitHub CodeSpace_ se charge.
|
||||
|
||||
</details>
|
||||
|
||||
3. Entrez dans le dossier du dépôt
|
||||
|
||||
### 2. Configurez les paramètres du Modèle et l'environnement de développement
|
||||
|
||||
1. Modifier les paramètres dans `./package.json`, y compris :
|
||||
|
||||
```json5
|
||||
{
|
||||
version: "", // to 0.0.0
|
||||
author: "",
|
||||
description: "",
|
||||
homepage: "",
|
||||
config: {
|
||||
addonName: "", // name to be displayed in the plugin manager
|
||||
addonID: "", // ID to avoid conflict. IMPORTANT!
|
||||
addonRef: "", // e.g. Element ID prefix
|
||||
addonInstance: "", // the plugin's root instance: Zotero.${addonInstance}
|
||||
prefsPrefix: "extensions.zotero.${addonRef}", // the prefix of prefs
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
> ![WARNING]
|
||||
> Veillez à bien définir addonID et addonRef pour éviter tout conflit.
|
||||
|
||||
Si vous avez besoin d'héberger vos paquets XPI en dehors de GitHub, modifiez `updateURL` et ajoutez `xpiDownloadLink` dans `zotero-plugin.config.ts`.
|
||||
|
||||
2. Copiez le fichier de la variable d'environnement. Modifiez la commandes quilance la version beta de Zotero.
|
||||
|
||||
> Créez un profil de développement (Optionnel)
|
||||
> Démarrez la version beta de Zotero avec `/path/to/zotero -p`. Créez un nouveau profil et utilisez-le comme profil de développement. Ne le faites qu'une seule fois !
|
||||
```sh
|
||||
cp .env.example .env
|
||||
vim .env
|
||||
```
|
||||
|
||||
Si vous développez plus d'une extension, vous pouvez stocker le chemin bin et le chemin profile dans les variables d'environnement du système, qui peuvent être omises ici.
|
||||
|
||||
3. Installez les dépendances avec `npm install`
|
||||
|
||||
> Si vous utilisez `pnpm` comme gestionnaire de paquets pour votre projet, vous devez ajouter `public-hoist-pattern[]=*@types/bluebird*` à `.npmrc`, voir <https://github.com/windingwind/zotero-types?tab=readme-ov-file#usage>.
|
||||
|
||||
Si vous obtenez `npm ERR ! ERESOLVE unable to resolve dependency tree` avec `npm install`, qui est un bogue de dépendance en amont de typescript-eslint, utilisez la commande `npm i -f` pour l'installer.
|
||||
|
||||
### 3. Codez !
|
||||
|
||||
Démarrez le serveur de développement avec `npm start`:
|
||||
- Il fera La pré-construction de l'extension en mode développement
|
||||
- Il démarrera Zotero avec l'extension chargée depuis `build/`
|
||||
- Il surveillera `src/**` et `addon/**`.
|
||||
- Si `src/**` a changé, lancez esbuild et rechargez.
|
||||
- Si `addon/**` a changé, reconstruisez l'extension (en mode développement) et recharger là.
|
||||
|
||||
#### Rechargement automatique à chaud
|
||||
|
||||
Fatigué des redémarrages incessants ? Oubliez-les !
|
||||
|
||||
1. Lancez `npm start`.
|
||||
2. Coder. (Oui, c'est tout)
|
||||
|
||||
Lorsque des changements de fichiers sont détectés dans `src` ou `addon`, l'extension 'sera automatiquement compilé et rechargé.
|
||||
|
||||
<details style="text-indent: 2em">
|
||||
<summary>💡 Étapes pour ajouter cette fonctionnalité à une extension existante :</summary>
|
||||
|
||||
Voir [zotero-plugin-scaffold](https://github.com/northword/zotero-plugin-scaffold).
|
||||
|
||||
</details>
|
||||
|
||||
#### Déboguer dans Zotero
|
||||
|
||||
Vous pouvez également :
|
||||
|
||||
- Tester les extraits de code dans Outils -> Développeur -> Run Javascript ;
|
||||
- Déboguer la sortie avec`Zotero.debug()`. Trouver les sorties dans Aide->Journal de débogage->Voir le journal;
|
||||
- Déboguer l'interface utilisateur. Zotero est construit sur le cadre XUL de Firefox. Déboguez l'interface utilisateur XUL avec un logiciel comme [XUL Explorer](https://udn.realityripple.com/docs/Archive/Mozilla/XUL_Explorer).
|
||||
> Documentation de XUL : <http://www.devdoc.net/web/developer.mozilla.org/en-US/docs/XUL.html>
|
||||
|
||||
### 4. Construction (Build)
|
||||
|
||||
Exécutez `npm run build` construire l'extension en mode production : t le xpi pour l'installation et le code construit se trouve dans le dossier `build`.
|
||||
|
||||
Étapes de la construction :
|
||||
- Créez/videz `build/`.
|
||||
- Copiez `addon/**` dans `build/addon/**`.
|
||||
- Remplacez les espaces réservés : utilisez `replace-in-file` pour remplacer les mots-clés et les configurations définis dans `package.json` dans les fichiers non-construits (`xhtml`, `json`, et al.).
|
||||
|
||||
- Préparez les fichiers de locale pour [éviter les conflits] (https://www.zotero.org/support/dev/zotero_7_for_developers#avoiding_localization_conflicts)
|
||||
- Renommer `**/*.flt` en `**/${addonRef}-*.flt`
|
||||
- Préfixez chaque message fluent[TODO] avec `addonRef-`
|
||||
- Utilisez ESBuild pour construire le code source `.ts` vers `.js`, construisez `src/index.ts` vers `./build/addon/content/scripts`.
|
||||
- (Mode production uniquement) Zipper le fichier `./build/addon` vers `./build/*.xpi`.
|
||||
- (Mode production uniquement) Préparez `update.json` ou `update-beta.json`
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Quelle est la différence entre mode développement et production ?**
|
||||
>
|
||||
> - Cette variable d'environnement est stockée dans `Zotero.${addonInstance}.data.env`. La sortie vers la console est désactivée en mode production.
|
||||
> - Vous pouvez décider ce que les utilisateurs ne peuvent pas voir/utiliser en fonction de cette variable.
|
||||
> - En mode production, le script de construction va empaqueter l'extension et mettre à jour le fichier `update.json`.
|
||||
|
||||
### 5. Produire une Release
|
||||
|
||||
pour construire et produire une Release, utilisez :
|
||||
|
||||
```shell
|
||||
# version increase, git add, commit and push
|
||||
# then on ci, npm run build, and release to GitHub
|
||||
npm run release
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Cela utilisera [Bumpp](https://github.com/antfu-collective/bumpp) pour saisir le nouveau numéro de version, modifier localement la version, exécuter tous les scripts (pré/post) version définis dans `package.json`, commit, build (optionnel), marquer le commit avec le numéro de version et pousser les commits et les tags git. Bumpp peut être configuré dans `zotero-plugin-config.ts` ; par exemple, ajoutez `release : { bumpp : { execute : « npm run build » } }` pour construire également avant de commiter.
|
||||
> Par la suite, GitHub Action reconstruira l'extensions et utilisera le script `release` de `zotero-plugin-scaffold` pour publier l'XPI sur GitHub Release. De plus, une version séparée (tag : `release`) sera créée ou mise à jour qui inclura les manifestes de mise à jour `update.json` et `update-beta.json` en tant qu'actifs. Ceux-ci seront disponibles à `https://github.com/{{owner}}/{{repo}}/releases/download/release/update*.json`.
|
||||
|
||||
#### À propos des pré-releases
|
||||
|
||||
Le modèle définit `prerelease` comme la version beta de l'extension, lorsque vous sélectionnez une version `prerelease` dans Bumpp (avec `-` dans le numéro de version). Le script de construction créera un nouveau `update-beta.json` pour l'utilisation de la prerelease, ce qui assure que les utilisateurs de la version normale ne seront pas en mesure de mettre à jour vers la version beta. Seuls les utilisateurs qui ont téléchargé et installé manuellement la version bêta seront en mesure de mettre à jour automatiquement vers la prochaine version bêta.
|
||||
|
||||
|
||||
Lorsque la prochaine version normale sera mise à jour, `update.json` et `update-beta.json` seront tous deux mis à jour (sur la version spéciale `release`, voir ci-dessus) afin que les utilisateurs de la version normale et de la version bêta puissent se mettre à jour vers la nouvelle version normale.
|
||||
|
||||
> [!WARNING]
|
||||
> La distinction entre les versions des extensions compatibles avec Zotero 6 et Zotero 7 devrait être strictement faite en configurant `applications.zotero.strict_min_version` dans `addons.__addonID__.updates[]` de `update.json` respectivement, afin que Zotero le reconnaisse correctement, voir <https://www.zotero.org/support/dev/zotero_7_for_developers#updaterdf_updatesjson>.
|
||||
|
||||
|
||||
|
||||
## Détails
|
||||
|
||||
### À propos des hooks
|
||||
|
||||
> Voir également [`src/hooks.ts`](https://github.com/windingwind/zotero-plugin-template/blob/main/src/hooks.ts)
|
||||
|
||||
1. Lorsque l'installation/activation/démarrage est déclenché par Zotero, `bootstrap.js` > `startup` est appelé
|
||||
- Attendez que Zotero soit prêt ;
|
||||
- Chargez de `index.js` (l'entrée principale du code de lextension, construit à partir de `index.ts`) ;
|
||||
- Enregistrez les ressources si Zotero 7+
|
||||
2. Dans l'entrée principale `index.js`, l'objet extension est injecté sous `Zotero` et `hooks.ts` > `onStartup` est appelé.
|
||||
- Initialisez tout ce que vous voulez, y compris les auditeurs de notifications (hooks), les panneaux de préférences et les éléments de l'interface utilisateur.
|
||||
3. Lorsque la désinstallation/désactivation est déclenchée depuis Zotero, `bootstrap.js` > `shutdown` est appelé.
|
||||
- `events.ts` > `onShutdown` est appelé. Cela supprime les éléments de l'interface utilisateur, les panneaux de préférences, ou tout ce qui a été créé par l'extension'.
|
||||
- Supprimez les scripts et libérez les ressources.
|
||||
|
||||
### À propos des variables globales
|
||||
|
||||
> Voir aussi [`src/index.ts`] (https://github.com/windingwind/zotero-plugin-template/blob/main/src/index.ts)
|
||||
|
||||
|
||||
L'extension 'bootstrappé' fonctionne dans un bac à sable, qui n'a pas de variables globales par défaut comme `Zotero` ou `window`, que nous avions l'habitude d'avoir en superposition dans la fenêtre d'environnement des extensions.
|
||||
|
||||
|
||||
Ce modèle enregistre les variables suivantes avec une portée globale :
|
||||
|
||||
```ts
|
||||
Zotero, ZoteroPane, Zotero_Tabs, window, document, rootURI, ztoolkit, addon;
|
||||
```
|
||||
|
||||
### Création d'une API pour les éléments de l'extension
|
||||
|
||||
|
||||
Le modèle d'extension fournit de nouvelles API pour les extensions 'bootstrappées'. Nous avons deux raisons d'utiliser ces APIs, au lieu de `createElement/createElementNS` :
|
||||
|
||||
- En mode bootstrap, les extensions doivent nettoyer tous les éléments de l'interface utilisateur à la sortie (désactivation ou désinstallation), ce qui est très ennuyeux. En utilisant `createElement`, le modèle de l'eextensions va maintenir ces éléments. Il suffit de lancer `unregisterAll` à la sortie.
|
||||
- Zotero 7 requiert createElement()/createElementNS() → createXULElement() pour les éléments XUL restants, alors que Zotero 6 ne supporte pas `createXULElement`. L'API React.createElement-like `createElement` détecte l'espace de noms (xul/html/svg) et crée des éléments automatiquement, avec l'élément de retour dans le type d'élément TS correspondant.
|
||||
|
||||
```ts
|
||||
createElement(document, "div"); // returns HTMLDivElement
|
||||
createElement(document, "hbox"); // returns XUL.Box
|
||||
createElement(document, "button", { namespace: "xul" }); // manually set namespace. returns XUL.Button
|
||||
```
|
||||
|
||||
### À propos de l'API Zotero
|
||||
|
||||
La documentation de Zotero est obsolète et incomplète. Clonez <https://github.com/zotero/zotero> et recherchez le mot-clé globalement.
|
||||
|
||||
> ⭐Le [zotero-types](https://github.com/windingwind/zotero-types) fournit les API de Zotero les plus fréquemment utilisées. Il est inclus dans ce modèle par défaut. Votre IDE devrait fournir des indices pour la plupart des API.
|
||||
|
||||
Une astuce pour trouver l'API que vous voulez :
|
||||
|
||||
Recherchez le label de l'interface utilisateur dans les fichiers `.xhtml`/`.flt`, trouvez la clé correspondante dans le fichier locale. Ensuite, recherchez cette clé dans les fichiers `.js`/`.jsx`.
|
||||
|
||||
### Structure des répertoires
|
||||
|
||||
Cette section montre la structure des répertoires d'un modèle.
|
||||
- Tous les fichiers de code `.js/.ts` sont dans `./src` ;
|
||||
- Les fichiers de configuration des addons : `./addon/manifest.json` ;
|
||||
- Fichiers d'interface utilisateur : `./addon/content/*.xhtml`.
|
||||
- Les fichiers des Locales : `./addon/locale/**/*.flt` ;
|
||||
- Fichier de préférences : `./addon/prefs.js` ;
|
||||
|
||||
```shell
|
||||
.
|
||||
|-- .github/ # github conf
|
||||
|-- .vscode/ # vscode conf
|
||||
|-- addon # static files
|
||||
| |-- bootstrap.js
|
||||
| |-- content
|
||||
| | |-- icons
|
||||
| | | |-- favicon.png
|
||||
| | | `-- favicon@0.5x.png
|
||||
| | |-- preferences.xhtml
|
||||
| | `-- zoteroPane.css
|
||||
| |-- locale
|
||||
| | |-- en-US
|
||||
| | | |-- addon.ftl
|
||||
| | | |-- mainWindow.ftl
|
||||
| | | `-- preferences.ftl
|
||||
| | `-- zh-CN
|
||||
| | |-- addon.ftl
|
||||
| | |-- mainWindow.ftl
|
||||
| | `-- preferences.ftl
|
||||
| |-- manifest.json
|
||||
| `-- prefs.js
|
||||
|-- build # build dir
|
||||
|-- node_modules
|
||||
|-- src # source code of scripts
|
||||
| |-- addon.ts # base class
|
||||
| |-- hooks.ts # lifecycle hooks
|
||||
| |-- index.ts # main entry
|
||||
| |-- modules # sub modules
|
||||
| | |-- examples.ts
|
||||
| | `-- preferenceScript.ts
|
||||
| `-- utils # utilities
|
||||
| |-- locale.ts
|
||||
| |-- prefs.ts
|
||||
| |-- wait.ts
|
||||
| |-- window.ts
|
||||
| `-- ztoolkit.ts
|
||||
|-- typings # ts typings
|
||||
| `-- global.d.ts
|
||||
|
||||
|-- .env # enviroment config (do not check into repo)
|
||||
|-- .env.example # template of enviroment config, https://github.com/northword/zotero-plugin-scaffold
|
||||
|-- .gitignore # git conf
|
||||
|-- .gitattributes # git conf
|
||||
|-- .prettierrc # prettier conf, https://prettier.io/
|
||||
|-- eslint.config.mjs # eslint conf, https://eslint.org/
|
||||
|-- LICENSE
|
||||
|-- package-lock.json
|
||||
|-- package.json
|
||||
|-- tsconfig.json # typescript conf, https://code.visualstudio.com/docs/languages/jsconfig
|
||||
|-- README.md
|
||||
`-- zotero-plugin.config.ts # scaffold conf, https://github.com/northword/zotero-plugin-scaffold
|
||||
```
|
||||
|
||||
## Clause de non-responsabilité
|
||||
|
||||
Utilisez ce code sous AGPL. Aucune garantie n'est fournie. Gardez à l'esprit les lois de votre pays !
|
||||
|
||||
Si vous souhaitez modifier la licence, veuillez me contacter à l'adresse suivante : <wyzlshx@foxmail.com>
|
@ -5,7 +5,8 @@
|
||||
|
||||
这是 [Zotero](https://www.zotero.org/) 的插件模板.
|
||||
|
||||
[English](../README.md) | [简体中文](./README-zhCN.md)
|
||||
[English](../README.md) | [简体中文](./README-zhCN.md) | [Français](./README-frFR.md)
|
||||
|
||||
|
||||
- 开发指南
|
||||
- [📖 插件开发文档](https://zotero-chinese.com/plugin-dev-guide/) (中文版,尚不完善)
|
||||
|
Loading…
x
Reference in New Issue
Block a user