|
1 | | -# GoFileEncoder |
2 | | - |
3 | | -> 🇬🇧 Do you speak English ? Open [README.md](README.md) in English. |
4 | | -
|
5 | | -## Introduction |
6 | | - |
7 | | -GoFileEncoder est un petit encodeur de fichiers qui utilise l'[encryption XOR <sup>(EN)</sup>](https://en.wikipedia.org/wiki/XOR_cipher). Il est codé en Golang, et est compilé pour plusieurs OS (Windows®, Linux®,et bientôt macOS®). |
8 | | - |
9 | | -Je ne suis pas un pro en Go, donc si vous trouvez un bug, ou simplement voulez faire une suggestion, je suis totalement ouvert aux [_issues_ <sup>(EN)</sup>](https://github.com/eliotttak/GoFileEncoder/issues), [_pull requests_ <sup>(EN)</sup>](https://github.com/eliotttak/GoFileEncoder/pulls) et à la [discussion <sup>(EN)</sup>](https://github.com/eliotttak/GoFileEncoder/discussions). |
10 | | - |
11 | | ---- |
12 | | - |
13 | | -## Sommaire |
14 | | -- [GoFileEncoder](#gofileencoder) |
15 | | - - [Introduction](#introduction) |
16 | | - - [Sommaire](#sommaire) |
17 | | - - [Construction](#construction) |
18 | | - - [Clonage](#clonage) |
19 | | - - [Arbre des dépendances du _package_](#arbre-des-dépendances-du-package) |
20 | | - - [Dépendances de construction](#dépendances-de-construction) |
21 | | - - [Installation des dépendances](#installation-des-dépendances) |
22 | | - - [Compilation et création du _package_ d'assets](#compilation-et-création-du-package-dassets) |
23 | | - - [En Bash](#en-bash) |
24 | | - - [En Batch](#en-batch) |
25 | | - - [Exécution](#exécution) |
26 | | - - [En Bash](#en-bash-1) |
27 | | - - [En Batch](#en-batch-1) |
28 | | - - [Traductions](#traductions) |
29 | | - - [Installer une langue](#installer-une-langue) |
30 | | - - [Définir la langue à utiliser](#définir-la-langue-à-utiliser) |
31 | | - - [1. Aucun fichier de traduction installé](#1-aucun-fichier-de-traduction-installé) |
32 | | - - [2. Un seul fichier de traduction installé](#2-un-seul-fichier-de-traduction-installé) |
33 | | - - [3. Plusieurs (2 ou plus) fichiers de configuration installés](#3-plusieurs-2-ou-plus-fichiers-de-configuration-installés) |
34 | | - - [Créer un fichier de traduction](#créer-un-fichier-de-traduction) |
35 | | - - [Nom du fichier](#nom-du-fichier) |
36 | | - - [Contenu du fichier](#contenu-du-fichier) |
37 | | - - [Utilisation](#utilisation) |
38 | | - - [1. Encoder ou décoder ?](#1-encoder-ou-décoder-) |
39 | | - - [2. Sélectionnez un fichier](#2-sélectionnez-un-fichier) |
40 | | - - [3. Entrez le mot de passe](#3-entrez-le-mot-de-passe) |
41 | | - - [4. Choisissez le fichier de destination](#4-choisissez-le-fichier-de-destination) |
42 | | - - [5. Attendez...](#5-attendez) |
43 | | - - [6. Terminé !](#6-terminé-) |
44 | | - - [License](#license) |
45 | | - |
46 | | - |
47 | | -## Construction |
48 | | - |
49 | | -### Clonage |
50 | | - |
51 | | -```bash |
52 | | -git clone https://github.com/eliotttak/GoFileEncoder |
53 | | -cd GoFileEncoder |
54 | | -``` |
55 | | - |
56 | | -### Arbre des dépendances du _package_ |
57 | | - |
58 | | -```plaintext |
59 | | -GoFileEncoder (ce projet) |
60 | | -| |
61 | | -+-- github.com/sqweek/dialog (pour les popups des fichiers) |
62 | | -| | |
63 | | -| \_ github.com/TheTitanrain/w32 (indirect) |
64 | | -| |
65 | | -+-- golang.org/x/term (pour la demande de mot de passe) |
66 | | -| | |
67 | | -| \_ golang.org/x/sys (indirect) |
68 | | -| |
69 | | - \_ github.com/christianhujer/isheadless (pour vérifier s'il y a une GUI) |
70 | | -``` |
71 | | - |
72 | | -Se réferer au fichier [go.mod](./go.mod) pour plus de détails. |
73 | | -> 🛈 Dans [go.mod](./go.mod), il peut y avoir une directive d'import pour [github.com/abdfnx/gosh](https://github.com/abdfnx/gosh). Elle a été utilisée uniquement pour mon assistant d'installation, et vous ne devriez pas en avoir besoin. Elle va disparaître si vous exécutez `go mod tidy`. |
74 | | -
|
75 | | -### Dépendances de construction |
76 | | - |
77 | | -- `github.com/go-bindata/go-bindata/go-bindata/...` (pour créer le fichier d'_assets_) |
78 | | - |
79 | | -### Installation des dépendances |
80 | | -```bash |
81 | | -go mod tidy |
82 | | -go install github.com/go-bindata/go-bindata/go-bindata/... |
83 | | -go get |
84 | | -``` |
85 | | -### Compilation et création du _package_ d'assets |
86 | | - |
87 | | -#### En Bash |
88 | | -```bash |
89 | | -# Vous allez peut-être devoir exécuter 'chmod 744 build.sh' |
90 | | -./build.sh # Vous pouvez ajouter une valeur de GOOS et une de GOARCH, par ex. './build.sh linux amd64' |
91 | | -``` |
92 | | - |
93 | | -#### En Batch |
94 | | -```batch |
95 | | -rem Vous pouvez ajouter une valeur de GOOS et une de GOARCH, par ex. 'build.bat windows amd64' |
96 | | -build.bat |
97 | | -``` |
98 | | - |
99 | | -### Exécution |
100 | | -#### En Bash |
101 | | -```bash |
102 | | -./bin/portables/GoFileEncoder_portable_linux_amd64 # Vous pouvez écrire une autre OS ou architecture. |
103 | | -``` |
104 | | -#### En Batch |
105 | | -```batch |
106 | | -.\bin\portables\GoFileEncoder_portable_windows_amd64.exe |
107 | | -rem Vous pouvez écrire une autre OS ou architecture. |
108 | | -``` |
109 | | - |
110 | | ---- |
111 | | - |
112 | | -## Traductions |
113 | | -### Installer une langue |
114 | | -Téléchargez un fichier de traduction (par ex. [`translate-fr-FR.json`](./translationFiles/translate-fr-FR.json)) et placez-le dans le même dossier que l'exécutable. |
115 | | - |
116 | | -### Définir la langue à utiliser |
117 | | -Le choix de la langue à utiliser est en partie automatisé. Voici les détails : |
118 | | -#### 1. Aucun fichier de traduction installé |
119 | | -Dans cette configuration, la langue utilisée sera l'angais britanique (`en-GB`). |
120 | | -#### 2. Un seul fichier de traduction installé |
121 | | -Dans cette configuration, le fichier de traduction installé sera utilisé. |
122 | | -#### 3. Plusieurs (2 ou plus) fichiers de configuration installés |
123 | | -Dans cette configuration, à chaque lancement du programme, les langues disponibles seront listées, et vous serez invité à en choisir une. |
124 | | - |
125 | | -### Créer un fichier de traduction |
126 | | -#### Nom du fichier |
127 | | -Le nom du fichier doit être au format `translate-ab-CD.json`, par ex. `translate-fr-FR.json`. |
128 | | - |
129 | | -#### Contenu du fichier |
130 | | -Le fichier est au format `JSON`. |
131 | | - |
132 | | -Le fichier est composé de quatre grandes parties : |
133 | | -- `General` contient les traductions qui seront utilisées par au moins 2 packages différents. |
134 | | -- `Intro` contient les traductions utilisées uniquement par le package `main`. |
135 | | -- `CommonThings` contient les traductions utilisées uniquement par le package `commonThings`. |
136 | | -- `Encoding` contient les traductions utilisées uniquement par le package `encoder`. |
137 | | -- `Decoding` contient les traductions utilisées uniquement par le package `decoder`. |
138 | | - |
139 | | -Chaque paire `"clé": "valeur"` correspond à une phrase ou groupe de mots qui sera affiché par le programme. |
140 | | - |
141 | | -Vous pouvez vous inspirer d'[un fichier déjà existant](./translationFiles/). |
142 | | - |
143 | | ---- |
144 | | - |
145 | | -## Utilisation |
146 | | - |
147 | | -### 1. Encoder ou décoder ? |
148 | | - |
149 | | -En premier, lancez le programme. Celui-ci va vous demander si vous souhaitez encoder ou décoder un fichier : |
150 | | -```plaintext |
151 | | -Que voulez-vous faire ? |
152 | | - - Encoder un fichier (e) |
153 | | - - Décoder un fichier (d) |
154 | | -(e/d)>>> |
155 | | -``` |
156 | | -Si vous voulez encoder un fichier, entrez <kbd>e</kbd>, sinon, entrez <kbd>d</kbd>. Dans tous les cas, validez avec <kbd>Entrée</kbd>. |
157 | | - |
158 | | -### 2. Sélectionnez un fichier |
159 | | - |
160 | | -Ensuite, il va vous demander d'appuyez sur <kbd>Entrée</kbd> pour sélectionner un fichier. Faites-le, et un popup va apparaître. Sélectionnez votre fichier, puis validez. |
161 | | -> 🛈 Si vous annulez, le popup va réapparaître 2 fois, puis à la 3<sup>ème</sup>, le message `"Trop de tentatives échouées"` va s'afficher puis le programme va se fermer. |
162 | | -
|
163 | | -> 🛈 Si votre configuration ne comprends pas d'interface graphique, vous allez devoir entrer manuellement le chemin absolu vers vorte fichier. |
164 | | -
|
165 | | -### 3. Entrez le mot de passe |
166 | | - |
167 | | -Après cela, un mot de passe vous sera demandé. Entrez-le puis validez avec <kbd>Entrée</kbd>. |
168 | | -> ⚠ Si vous avez choisi `Décoder un fichier`, faîtes attention à bien écrire le mot de passe. Si vous vous trompez ne serait-ce que d'un caractère, le fichier sera corrompu et ne sera plus utilisable. |
169 | | -
|
170 | | -> 🛈 Pour garantir la confidentialité de votre mot de passe, celui-ci ne s'affichera pas sur votre écran. |
171 | | -
|
172 | | -### 4. Choisissez le fichier de destination |
173 | | - |
174 | | -Ensuite, le programme va vous demander d'appuyez sur <kbd>Entrée</kbd> pour choisir le fichier de destination. Faites-le, et un popup va apparaître. Sélectionnez le fichier à créer, puis validez. |
175 | | -> 🛈 Si vous annulez, le popup va réapparaître 2 fois, puis à la 3<sup>ème</sup>, le message `"Trop de tentatives échouées"` va s'afficher puis le programme va se fermer. |
176 | | -
|
177 | | -> 🛈 Si votre configuration ne comprends pas d'interface graphique, vous allez devoir entrer manuellement le chemin absolu vers vorte fichier. |
178 | | -
|
179 | | - |
180 | | -### 5. Attendez... |
181 | | - |
182 | | -Le fichier est en train d'être encodé. Ne fermez pas le programme. |
183 | | - |
184 | | -### 6. Terminé ! |
185 | | -Au bout de quelques secondes, le fichier est encodé ou décodé. Le programme se ferme automatiquement. |
186 | | - |
187 | | -## License |
188 | | -Ce logiciel est distribué sous la license GNU GENERAL PUBLIC LICENSE version 3 (GNU GPL v3). |
189 | | - |
190 | | -[Voir la license <sup>(EN)</sup>](LICENSE) |
191 | | - |
| 1 | +# GoFileEncoder |
| 2 | + |
| 3 | +> 🇬🇧 Do you speak English ? Open [README.md](README.md) in English. |
| 4 | +
|
| 5 | +## Introduction |
| 6 | + |
| 7 | +GoFileEncoder est un petit encodeur de fichiers qui utilise l'[encryption XOR <sup>(EN)</sup>](https://en.wikipedia.org/wiki/XOR_cipher). Il est codé en Golang, et est compilé pour plusieurs OS (Windows®, Linux®,et bientôt macOS®). |
| 8 | + |
| 9 | +Je ne suis pas un pro en Go, donc si vous trouvez un bug, ou simplement voulez faire une suggestion, je suis totalement ouvert aux [_issues_ <sup>(EN)</sup>](https://github.com/eliotttak/GoFileEncoder/issues), [_pull requests_ <sup>(EN)</sup>](https://github.com/eliotttak/GoFileEncoder/pulls) et à la [discussion <sup>(EN)</sup>](https://github.com/eliotttak/GoFileEncoder/discussions). |
| 10 | + |
| 11 | +--- |
| 12 | +## Sommaire |
| 13 | +- [GoFileEncoder](#gofileencoder) |
| 14 | + - [Introduction](#introduction) |
| 15 | + - [Sommaire](#sommaire) |
| 16 | + - [Construction](#construction) |
| 17 | + - [Clonage](#clonage) |
| 18 | + - [Arbre des dépendances du _package_](#arbre-des-dépendances-du-package) |
| 19 | + - [Dépendances de construction](#dépendances-de-construction) |
| 20 | + - [Installation des dépendances](#installation-des-dépendances) |
| 21 | + - [Compilation et création du _package_ d'assets](#compilation-et-création-du-package-dassets) |
| 22 | + - [En Bash](#en-bash) |
| 23 | + - [En Batch](#en-batch) |
| 24 | + - [Exécution](#exécution) |
| 25 | + - [En Bash](#en-bash-1) |
| 26 | + - [En Batch](#en-batch-1) |
| 27 | + - [Traductions](#traductions) |
| 28 | + - [Installer une langue](#installer-une-langue) |
| 29 | + - [Définir la langue à utiliser](#définir-la-langue-à-utiliser) |
| 30 | + - [1. Aucun fichier de traduction installé](#1-aucun-fichier-de-traduction-installé) |
| 31 | + - [2. Un seul fichier de traduction installé](#2-un-seul-fichier-de-traduction-installé) |
| 32 | + - [3. Plusieurs (2 ou plus) fichiers de configuration installés](#3-plusieurs-2-ou-plus-fichiers-de-configuration-installés) |
| 33 | + - [Créer un fichier de traduction](#créer-un-fichier-de-traduction) |
| 34 | + - [Nom du fichier](#nom-du-fichier) |
| 35 | + - [Contenu du fichier](#contenu-du-fichier) |
| 36 | + - [Utilisation](#utilisation) |
| 37 | + - [1. Encoder ou décoder ?](#1-encoder-ou-décoder-) |
| 38 | + - [2. Sélectionnez un fichier](#2-sélectionnez-un-fichier) |
| 39 | + - [3. Entrez le mot de passe](#3-entrez-le-mot-de-passe) |
| 40 | + - [4. Choisissez le fichier de destination](#4-choisissez-le-fichier-de-destination) |
| 41 | + - [5. Attendez...](#5-attendez) |
| 42 | + - [6. Terminé !](#6-terminé-) |
| 43 | + - [License](#license) |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | +## Construction |
| 48 | + |
| 49 | +### Clonage |
| 50 | + |
| 51 | +```bash |
| 52 | +git clone https://github.com/eliotttak/GoFileEncoder |
| 53 | +cd GoFileEncoder |
| 54 | +``` |
| 55 | + |
| 56 | +### Arbre des dépendances du _package_ |
| 57 | + |
| 58 | +```plaintext |
| 59 | +GoFileEncoder (ce projet) |
| 60 | +| |
| 61 | ++-- github.com/sqweek/dialog (pour les popups des fichiers) |
| 62 | +| | |
| 63 | +| \_ github.com/TheTitanrain/w32 (indirect) |
| 64 | +| |
| 65 | ++-- golang.org/x/term (pour la demande de mot de passe) |
| 66 | +| | |
| 67 | +| \_ golang.org/x/sys (indirect) |
| 68 | +| |
| 69 | + \_ github.com/christianhujer/isheadless (pour vérifier s'il y a une GUI) |
| 70 | +``` |
| 71 | + |
| 72 | +Se réferer au fichier [go.mod](./go.mod) pour plus de détails. |
| 73 | +> 🛈 Dans [go.mod](./go.mod), il peut y avoir une directive d'import pour [github.com/abdfnx/gosh](https://github.com/abdfnx/gosh). Elle a été utilisée uniquement pour mon assistant d'installation, et vous ne devriez pas en avoir besoin. Elle va disparaître si vous exécutez `go mod tidy`. |
| 74 | +
|
| 75 | +### Dépendances de construction |
| 76 | + |
| 77 | +- `github.com/go-bindata/go-bindata/go-bindata/...` (pour créer le fichier d'_assets_) |
| 78 | +Seulement pour Windows®: |
| 79 | +- `svg_to_ico` ([Ortham/svg_to_ico](https://github.com/Ortham/svg_to_ico)) doit être dans `$PATH` ou `%PATH%` (pour convertir l'icône SVG en ICO) |
| 80 | +- `resourcehacker` ([www.angusj.com/resourcehacker/#download](https://www.angusj.com/resourcehacker/#download)) doit être dans `$PATH` ou `%PATH%` (pour intégrer l'icône à l'exécutable) |
| 81 | + |
| 82 | +### Installation des dépendances |
| 83 | +```bash |
| 84 | +go mod tidy |
| 85 | +go install github.com/go-bindata/go-bindata/go-bindata/... |
| 86 | +go get |
| 87 | +``` |
| 88 | + |
| 89 | +Vous allez aussi devoir installer manuellement Resource Hacker et `svg_to_ico` |
| 90 | + |
| 91 | +### Compilation et création du _package_ d'assets |
| 92 | + |
| 93 | +#### En Bash |
| 94 | +```bash |
| 95 | +# Vous allez peut-être devoir exécuter 'chmod 744 build.sh' |
| 96 | +./build.sh # Vous pouvez ajouter une valeur de GOOS et une de GOARCH, par ex. './build.sh linux amd64' |
| 97 | +``` |
| 98 | + |
| 99 | +#### En Batch |
| 100 | +```batch |
| 101 | +rem Vous pouvez ajouter une valeur de GOOS et une de GOARCH, par ex. 'build.bat windows amd64' |
| 102 | +build.bat |
| 103 | +``` |
| 104 | + |
| 105 | +### Exécution |
| 106 | +#### En Bash |
| 107 | +```bash |
| 108 | +./bin/portables/GoFileEncoder_portable_linux_amd64 # Vous pouvez écrire une autre OS ou architecture. |
| 109 | +``` |
| 110 | +#### En Batch |
| 111 | +```batch |
| 112 | +.\bin\portables\GoFileEncoder_portable_windows_amd64.exe |
| 113 | +rem Vous pouvez écrire une autre OS ou architecture. |
| 114 | +``` |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## Traductions |
| 119 | +### Installer une langue |
| 120 | +Téléchargez un fichier de traduction (par ex. [`translate-fr-FR.json`](./translationFiles/translate-fr-FR.json)) et placez-le dans le même dossier que l'exécutable. |
| 121 | + |
| 122 | +### Définir la langue à utiliser |
| 123 | +Le choix de la langue à utiliser est en partie automatisé. Voici les détails : |
| 124 | +#### 1. Aucun fichier de traduction installé |
| 125 | +Dans cette configuration, la langue utilisée sera l'angais britanique (`en-GB`). |
| 126 | +#### 2. Un seul fichier de traduction installé |
| 127 | +Dans cette configuration, le fichier de traduction installé sera utilisé. |
| 128 | +#### 3. Plusieurs (2 ou plus) fichiers de configuration installés |
| 129 | +Dans cette configuration, à chaque lancement du programme, les langues disponibles seront listées, et vous serez invité à en choisir une. |
| 130 | + |
| 131 | +### Créer un fichier de traduction |
| 132 | +#### Nom du fichier |
| 133 | +Le nom du fichier doit être au format `translate-ab-CD.json`, par ex. `translate-fr-FR.json`. |
| 134 | + |
| 135 | +#### Contenu du fichier |
| 136 | +Le fichier est au format `JSON`. |
| 137 | + |
| 138 | +Le fichier est composé de cinq grandes parties : |
| 139 | +- `General` contient les traductions qui seront utilisées par au moins 2 packages différents. |
| 140 | +- `Intro` contient les traductions utilisées uniquement par le package `main`. |
| 141 | +- `CommonThings` contient les traductions utilisées uniquement par le package `commonThings`. |
| 142 | +- `Encoding` contient les traductions utilisées uniquement par le package `encoder`. |
| 143 | +- `Decoding` contient les traductions utilisées uniquement par le package `decoder`. |
| 144 | + |
| 145 | +Chaque paire `"clé": "valeur"` correspond à une phrase ou groupe de mots qui sera affiché par le programme. |
| 146 | + |
| 147 | +Vous pouvez vous inspirer d'[un fichier déjà existant](./translationFiles/). |
| 148 | + |
| 149 | +--- |
| 150 | + |
| 151 | +## Utilisation |
| 152 | + |
| 153 | +### 1. Encoder ou décoder ? |
| 154 | + |
| 155 | +En premier, lancez le programme. Celui-ci va vous demander si vous souhaitez encoder ou décoder un fichier : |
| 156 | +```plaintext |
| 157 | +Que voulez-vous faire ? |
| 158 | + - Encoder un fichier (e) |
| 159 | + - Décoder un fichier (d) |
| 160 | +(e/d)>>> |
| 161 | +``` |
| 162 | +Si vous voulez encoder un fichier, entrez <kbd>e</kbd>, sinon, entrez <kbd>d</kbd>. Dans tous les cas, validez avec <kbd>Entrée</kbd>. |
| 163 | + |
| 164 | +### 2. Sélectionnez un fichier |
| 165 | + |
| 166 | +Ensuite, il va vous demander d'appuyez sur <kbd>Entrée</kbd> pour sélectionner un fichier. Faites-le, et un popup va apparaître. Sélectionnez votre fichier, puis validez. |
| 167 | +> 🛈 Si vous annulez, le popup va réapparaître 2 fois, puis à la 3<sup>ème</sup>, le message `"Trop de tentatives échouées"` va s'afficher puis le programme va se fermer. |
| 168 | +
|
| 169 | +> 🛈 Si votre configuration ne comprends pas d'interface graphique, vous allez devoir entrer manuellement le chemin absolu vers vorte fichier. |
| 170 | +
|
| 171 | +### 3. Entrez le mot de passe |
| 172 | + |
| 173 | +Après cela, un mot de passe vous sera demandé. Entrez-le puis validez avec <kbd>Entrée</kbd>. |
| 174 | +> ⚠ Si vous avez choisi `Décoder un fichier`, faîtes attention à bien écrire le mot de passe. Si vous vous trompez ne serait-ce que d'un caractère, le fichier sera corrompu et ne sera plus utilisable. |
| 175 | +
|
| 176 | +> 🛈 Pour garantir la confidentialité de votre mot de passe, celui-ci ne s'affichera pas sur votre écran. |
| 177 | +
|
| 178 | +### 4. Choisissez le fichier de destination |
| 179 | + |
| 180 | +Ensuite, le programme va vous demander d'appuyez sur <kbd>Entrée</kbd> pour choisir le fichier de destination. Faites-le, et un popup va apparaître. Sélectionnez le fichier à créer, puis validez. |
| 181 | +> 🛈 Si vous annulez, le popup va réapparaître 2 fois, puis à la 3<sup>ème</sup>, le message `"Trop de tentatives échouées"` va s'afficher puis le programme va se fermer. |
| 182 | +
|
| 183 | +> 🛈 Si votre configuration ne comprends pas d'interface graphique, vous allez devoir entrer manuellement le chemin absolu vers vorte fichier. |
| 184 | +
|
| 185 | + |
| 186 | +### 5. Attendez... |
| 187 | + |
| 188 | +Le fichier est en train d'être encodé. Ne fermez pas le programme. |
| 189 | + |
| 190 | +### 6. Terminé ! |
| 191 | +Au bout de quelques secondes, le fichier est encodé ou décodé. Le programme se ferme automatiquement. |
| 192 | + |
| 193 | +## License |
| 194 | +Ce logiciel est distribué sous la license GNU GENERAL PUBLIC LICENSE version 3 (GNU GPL v3). |
| 195 | + |
| 196 | +[Voir la license <sup>(EN)</sup>](LICENSE) |
0 commit comments