From 10ccd6498deacc69083c80bffe9a628d7406b226 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Fri, 22 Dec 2017 07:51:23 +0100 Subject: [PATCH] i18n work (and re-add TODO.md file I forgot) --- README-fr.md | 4 +- README.md | 2 +- TODO.md | 71 +++++++ .../fanfix/bundles/resources.properties | 10 +- .../fanfix/bundles/resources_fr.properties | 180 ++++++++++++++++++ 5 files changed, 258 insertions(+), 9 deletions(-) create mode 100644 TODO.md create mode 100644 src/be/nikiroo/fanfix/bundles/resources_fr.properties diff --git a/README-fr.md b/README-fr.md index 965741a..d45f6f3 100644 --- a/README-fr.md +++ b/README-fr.md @@ -1,4 +1,4 @@ -[English](README.md) >Français< +[English](README.md) Français # Fanfix @@ -66,7 +66,7 @@ Les arguments suivants sont aussi supportés : - ```--list```: lister les histoires presentes dans la librairie et leurs IDs - ```--set-reader [reader type]```: changer le type de lecteur pour la commande en cours sur CLI, TUI ou GUI - ```--server [key] [port]```: démarrer un serveur d'histoires sur ce port -- ```--stop-server [key] [port]: arrêter le serveur distant sur ce port (key doit avoir la même valeur) +- ```--stop-server [key] [port]```: arrêter le serveur distant sur ce port (key doit avoir la même valeur) - ```--remote [key] [host] [port]```: contacter ce server au lieu de la librairie habituelle (key doit avoir la même valeur) - ```--help```: afficher la liste des options disponibles - ```--version```: retourne la version du programme diff --git a/README.md b/README.md index d5dccd6..eeb1a87 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ ->English< [Français](README-fr.md) +English [Français](README-fr.md) # Fanfix diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..6cb9fca --- /dev/null +++ b/TODO.md @@ -0,0 +1,71 @@ +My current planning for Fanfix (but not everything appears on this list): +- [ ] Support new websites + - [x] YiffStar + - [ ] [Two Kinds](http://twokinds.keenspot.com/) + - [ ] [Slightly damned](http://www.sdamned.com/) + - [x] New API on FimFiction.net (faster) + - [ ] Others? Any ideas? I'm open for requests + - [x] [e-Hentai](https://e-hentai.org/) requested +- [x] A GUI library + - [x] Make one + - [x] Make it run when no args passed + - [x] Fix the UI, it is ugly + - [x] Work on the UI thread is BAD + - [x] Allow export + - [x] Allow delete/refresh + - [x] Show a list of types + - [x] ..in the menu + - [x] ..as a screen view + - [x] options screen +- [ ] A TUI library + - [x] Choose an output (Jexer) + - [x] Implement it from --set-reader to the actual window + - [x] List the stories + - [ ] Fix the UI layout + - [x] Status bar + - [ ] Real menus + - [x] Open a story in the reader and/or natively + - [ ] Update the screenshots + - [ ] Remember the current chapter and current read status of stories +- [ ] Network support + - [x] A server that can send the stories + - [x] A network implementation of the Library + - [x] Write access to the library + - [x] Access rights (a simple "key") + - [x] More tests, especially with the GUI + - [ ] ..even more +- [x] Check if it can work on Android + - [x] First checks: it should work, but with changes + - [x] Adapt work on images :( + - [x] Partial/Conditional compilation + - [x] APK export +- [ ] Android + - [x] Android support + - [x] Show current stories + - [x] Download new stories + - [ ] Sort stories by Source/Author + - [ ] Fix UI +- [ ] Translations + - [x] i18n system in place + - [x] Make use of it + - [ ] Use it for all user output + - [ ] French translation + - [x] French manual/readme +- [x] Allow lauching a custom application instead of Desktop.start +- [ ] Install a mechanism to handle stories import/export progress update + - [x] Progress system + - [x] in support classes (import) + - [x] in output classes (export) + - [x] CLI usage of such + - [x] GUI usage of such + - [ ] TUI usage of such + - [ ] Android usage of such +- [x] Version + - [x] Use a version number + - [x] Show it in UI + - [x] A check-update feature + - [x] ..translated +- [ ] Bugs + - [x] Fix "Redownload also reset the source" + - [ ] Fix eHentai "content warning" access + - [ ] Fix the configuration system (for new or changed options, new or changed languages) diff --git a/src/be/nikiroo/fanfix/bundles/resources.properties b/src/be/nikiroo/fanfix/bundles/resources.properties index cd80b3a..580ba6e 100644 --- a/src/be/nikiroo/fanfix/bundles/resources.properties +++ b/src/be/nikiroo/fanfix/bundles/resources.properties @@ -1,4 +1,4 @@ -# United Kingdom (en_GB) resources translation file (UTF-8) +# United States (en_US) resources translation file (UTF-8) # # Note that any key can be doubled with a _NOUTF suffix # to use when the NOUTF env variable is set to 1 @@ -85,8 +85,7 @@ INPUT_DESC = Unknown type: %s INPUT_DESC_EPUB = EPUB files created by this program (we do not support "all" EPUB files) # Description of this input type # (FORMAT: STRING) -INPUT_DESC_TEXT = Support class for local stories encoded in textual format, with a few \n\ -rules :\n\ +INPUT_DESC_TEXT = Stories encoded in textual format, with a few rules :\n\ \tthe title must be on the first line, \n\ \tthe author (preceded by nothing, "by " or "©") must be on the second \n\ \t\tline, possibly with the publication date in parenthesis\n\ @@ -102,7 +101,7 @@ INPUT_DESC_INFO_TEXT = Contains the same information as the TEXT format, but wit \tcompanion ".info" file to store some metadata # Description of this input type # (FORMAT: STRING) -INPUT_DESC_FANFICTION = Fan fictions of many, many different universes, from TV shows to \n\ +INPUT_DESC_FANFICTION = Fanfictions of many, many different universes, from TV shows to \n\ \tnovels to games. # Description of this input type # (FORMAT: STRING) @@ -117,8 +116,7 @@ INPUT_DESC_MANGAFOX = A well filled repository of mangas, or, as their website s INPUT_DESC_E621 = Furry website supporting comics, including MLP # Description of this input type # (FORMAT: STRING) -INPUT_DESC_E_HENTAI = Website offering many comics/manga, mostly but not always NSFW \n\n -\t(hence Hentai); MLP comics can be found there, too +INPUT_DESC_E_HENTAI = Website offering many comics/manga, mostly but not always NSFW # Description of this input type # (FORMAT: STRING) INPUT_DESC_YIFFSTAR = A Furry website, story-oriented diff --git a/src/be/nikiroo/fanfix/bundles/resources_fr.properties b/src/be/nikiroo/fanfix/bundles/resources_fr.properties new file mode 100644 index 0000000..45b268d --- /dev/null +++ b/src/be/nikiroo/fanfix/bundles/resources_fr.properties @@ -0,0 +1,180 @@ +# français (fr) resources translation file (UTF-8) +# +# Note that any key can be doubled with a _NOUTF suffix +# to use when the NOUTF env variable is set to 1 +# +# Also, the comments always refer to the key below them. +# + + +# help message for the syntax +# (FORMAT: STRING) %s = supported input, %s = supported output +HELP_SYNTAX = Options reconnues :\n\ +\t--import [URL]: importer une histoire dans la librairie\n\ +\t--export [id] [output_type] [target]: exporter l'histoire "id" vers le fichier donné\n\ +\t--convert [URL] [output_type] [target] (+info): convertir l'histoire vers le fichier donné, et forcer l'ajout d'un fichier .info si +info est utilisé\n\ +\t--read [id] ([chapter number]): afficher l'histoire "id"\n\ +\t--read-url [URL] ([chapter number]): convertir l'histoire et la lire à la volée, sans la sauver\n\ +\t--list: lister les histoires presentes dans la librairie et leurs IDs\n\ +\t--set-reader [reader type]: changer le type de lecteur pour la commande en cours sur CLI, TUI ou GUI\n\ +\t--server [key] [port]: démarrer un serveur d'histoires sur ce port\n\ +\t--stop-server [key] [port]: arrêter le serveur distant sur ce port (key doit avoir la même valeur) \n\ +\t--remote [key] [host] [port]: contacter ce server au lieu de la librairie habituelle (key doit avoir la même valeur)\n\ +\t--help: afficher la liste des options disponibles\n\ +\t--version: retourne la version du programme\n\ +\n\ +Types supportés en entrée :\n\ +%s\n\ +\n\ +Types supportés en sortie :\n\ +%s +# syntax error message (FORMAT: STRING) +ERR_SYNTAX = Erreur de syntaxe (essayez "--help") +# an input or output support type description +# (FORMAT: STRING) %s = support name, %s = support desc +ERR_SYNTAX_TYPE = > %s : %s +# Error when retrieving data +# (FORMAT: STRING) %s = input string +ERR_LOADING = Erreur de récupération des données depuis : %s +# Error when saving to given target +# (FORMAT: STRING) %s = save target +ERR_SAVING = Erreur lors de la sauvegarde sur : %s +# Error when unknown output format +# (FORMAT: STRING) %s = bad output format +ERR_BAD_OUTPUT_TYPE = Type de sortie inconnu : %s +# Error when converting input to URL/File +# (FORMAT: STRING) %s = input string +ERR_BAD_URL = Protocole ou type de fichier inconnu : %s +# URL/File not supported +# (FORMAT: STRING) %s = input url +ERR_NOT_SUPPORTED = Site web non supporté : %s +# Failed to download cover : %s +# (FORMAT: STRING) %s = cover URL +ERR_BS_NO_COVER = Échec de la récupération de la page de couverture : %s +# Canonical OPEN SINGLE QUOTE char (for instance: `) +# (FORMAT: STRING) single char +OPEN_SINGLE_QUOTE = ` +# Canonical CLOSE SINGLE QUOTE char (for instance: ‘) +# (FORMAT: STRING) single char +CLOSE_SINGLE_QUOTE = ‘ +# Canonical OPEN DOUBLE QUOTE char (for instance: “) +# (FORMAT: STRING) single char +OPEN_DOUBLE_QUOTE = “ +# Canonical CLOSE DOUBLE QUOTE char (for instance: ”) +# (FORMAT: STRING) single char +CLOSE_DOUBLE_QUOTE = ” +# Name of the description fake chapter +# (FORMAT: STRING) +DESCRIPTION = Description +# Name of a chapter with a name +# (FORMAT: STRING) %d = number, %s = name +CHAPTER_NAMED = Chapitre %d : %s +# Name of a chapter without name +# (FORMAT: STRING) %d = number, %s = name +CHAPTER_UNNAMED = Chapitre %d +# Default description when the type is not known by i18n +# (FORMAT: STRING) %s = type +INPUT_DESC = Type d'entrée inconnu : %s +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_EPUB = Les fichiers .epub créés avec Fanfix (nous ne supportons pas les autres fichiers .epub, du moins pour le moment) +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_TEXT = Les histoires enregistrées en texte (.txt), avec quelques règles spécifiques : \n\ +\tle titre doit être sur la première ligne\n\ +\tl'auteur (précédé de rien, "Par ", "De " ou "©") doit être sur la deuxième ligne, optionnellement suivi de la date de publication entre parenthèses (i.e., "Par Quelqu'un (3 octobre 1998)")\n\ +\tles chapitres doivent être déclarés avec "Chapitre x" ou "Chapitre x: NOM DU CHAPTITRE", où "x" est le numéro du chapitre\n\ +\tune description de l'histoire doit être donnée en tant que chaptire 0\n\ +\tune image de couverture peut être présente avec le même nom de fichier que l'histoire, mais une extension .png, .jpeg ou .jpg +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_INFO_TEXT = Fort proche du format texte, mais avec un fichier .info accompagnant l'histoire pour y enregistrer quelques metadata (le fichier de metadata est supposé être créé par Fanfix, ou être compatible avec) +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_FANFICTION = Fanfictions venant d'une multitude d'univers différents, depuis les shows télévisés aux livres en passant par les jeux-vidéos +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_FIMFICTION = Fanfictions dévouées à la série My Little Pony +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_MANGAFOX = Un site répertoriant une quantité non négligeable de mangas +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_E621 = Un site Furry proposant des comics, y compris de MLP +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_E_HENTAI = Un site web proposant beaucoup de comics/manga, souvent mais pas toujours NSFW +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_YIFFSTAR = Un site web Furry, orienté sur les histoires plutôt que les images +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_CBZ = Les fichiers .cbz (une collection d'images zipées), de préférence créés avec Fanfix (même si les autres .cbz sont aussi supportés, mais sans la majorité des metadata de Fanfix dans ce cas) +# Description of this input type +# (FORMAT: STRING) +INPUT_DESC_HTML = Les fichiers HTML que vous pouvez ouvrir avec n'importe quel navigateur ; remarquez que Fanfix créera un répertoire pour y mettre les fichiers nécessaires, dont un fichier "index.html" pour afficher le tout -- nous ne supportons en entrée que les fichiers HTML créés par Fanfix +# Default description when the type is not known by i18n +# (FORMAT: STRING) %s = type +OUTPUT_DESC = Type de sortie inconnu : %s +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_EPUB = Standard EPUB file working on most e-book readers and viewers +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_TEXT = Local stories encoded in textual format, with a few rules :\n\ +\tthe title must be on the first line, \n\ +\tthe author (preceded by nothing, "by " or "©") must be on the second \n\ +\t\tline, possibly with the publication date in parenthesis \n\ +\t\t(i.e., "By Unknown (3rd October 1998)"), \n\ +\tchapters must be declared with "Chapter x" or "Chapter x: NAME OF THE \n\ +\t\tCHAPTER", where "x" is the chapter number,\n\ +\ta description of the story must be given as chapter number 0,\n\ +\ta cover image may be present with the same filename but a PNG, JPEG \n\ +\t\tor JPG extension. +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_INFO_TEXT = Contains the same information as the TEXT format, but with a \n\ +\tcompanion ".info" file to store some metadata +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_CBZ = CBZ file (basically a ZIP file containing images -- we store the images \n\ +\tin PNG format by default) +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_HTML = HTML files (a directory containing the resources and "index.html") +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_LATEX = A LaTeX file using the "book" template +# Description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SYSOUT = A simple DEBUG console output +# Default description when the type is not known by i18n +#This item is used as a group, its content is not expected to be used. +OUTPUT_DESC_SHORT = %s +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_EPUB = Electronic book (.epub) +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_TEXT = Plain text (.txt) +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_INFO_TEXT = Plain text and metadata +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_CBZ = Comic book (.cbz) +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_LATEX = LaTeX (.tex) +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_SYSOUT = Console output +# Short description of this output type +# (FORMAT: STRING) +OUTPUT_DESC_SHORT_HTML = HTML files with resources (directory, .html) +# Error message for unknown 2-letter LaTeX language code +# (FORMAT: STRING) %s = the unknown 2-code language +LATEX_LANG_UNKNOWN = Unknown language: %s +# 'by' prefix before author name used to output the author, make sure it is covered by Config.BYS for input detection +# (FORMAT: STRING) +BY = by -- 2.27.0