# Auto-éditer un wikilivre/Annexer (Version internationalisée)
## Structure spéciale de cette page : Annexer_(Version_internationalisée)

    L'article est structuré pour faciliter les téléchargements des codes sans perte d'information, directement ou grâce aux programmes mis à disposition. Les applications de téléchargement disposent leurs propres programmes d'installation. Le but final est de générer les pages Annexe des livres de wikibooks. Notez que la page Index des livres n'est possible qu'à l'aide de programmes spécialisés comme OpenOffice, LibreOffice, ou autres.
Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.

# Développement international des scripts
## Add_appendix (Annexer Version internationalisée)

Cette version est à utiliser sous linux.

### (Fichiers d'installation et de dépendances)

Ces processus avec mkd et mkddoccu vont probablement être abandonnés très prochainement. (Commentaire du 9 avril 2021 à 17:29 (CEST))

#### mkd et mkddocu

* Le logiciel mkd est utilisé dans l'exécution du programme annex
* mkddocu est utilisé avec la liste des modules de programme annex.prj pour dresser la liste des messages à traduire en d'autres langues. La langue de références est l'anglais.
* Dependancy files mkd and mkddocu

## Stucture du répertoire Add_appendix

* Cette structure est valide pour tous les logiciels de Add_appendix: annex, add_appendix, appendix en paquet
* Auto-éditer_un_wikilivre/Structure_du répertoire_Add_appendix Version du 30 mars 2022

## *** Copier les codes sources avec la version imprimable

Version imprimable pour copier-coller Cette version tient compte de la mise à jour des codes. Copier les fichiers sources, les coller dans un éditeur de texte, les enregistrer dans les répertoires spécialisés : ~/Add_appendix/ lib, src, tests, etc.
Pour plus de détails sur les fichiers consulter les paragraphes ci-après

## Codes sources (internationalized source code)

* Globalement, les répertoires des binaires des systèmes unix/linux sont naturellement intégrés dans l'environnement de travail.
* Localement, on peut copier les fichiers dans le répertoire racine de l'application, dans :
    ~/Annexer/src/ pour les sources, et ~/Annexer/bin/ pour les exécutables, auquel cas, ajouter le chemin ~/Annexer/bin/ dans le path de l'environnement de travail.
    Ouvrir un terminal et taper la commande suivante, ou l'inclure dans une commande d'exécution du terminal :
    Dans ce cas on met tous les exécutables dans ce même répertoire bin et on peut générer les Annexes dans le répertoire Annexer/projet ou Add_appendix/projet, projet est habituellement le nom du livre. Ce path ajouté prend fin avec la clôture du terminal.
Les codes ci-dessous doivent être installés dans le répertoire 'lib'

### annex.lib

25/10/2021, Liste des dernières mise à jour de Add_appendix/lib/src: annex.lib.sh: VERSION=211019 cpcleaned2bin.sh: VERSION=211020 ecfpb.sh: VERSION=210429 ecfpc.sh: VERSION=210429 findbook.sh: VERSION=211019 killalldoc.sh: VERSION=211019
$^{vβ211019}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/annex.lib La fontion findbook est validée, les fonctions ecfp* sont à réviser. 17 mai 2021 à 11:38 (CEST)
* Si vous désirez éprouver ces codes, vous pouvez les installer dans les répertoires ~/Add_appendix/tests/1-annex.lib/<sous-répertoires : 11-findbook.sh/, 12-ecfpb.sh/, 13-ecfpc.sh/ >
$^{β-210514}$ - Tester le code source de la fonction findbook avec le programme test_findbook.bash (extrait les lien $^{(urls)}$ du Sommaire, du Contenu ou de la Compilation pour préparer la création de l'annexe des livres)
$^{β-211020}$ - Tester le code source de la fonction cpcleaned2bin avec le programme test_cpcleaned2bin.bash
$^{β-210409}$ - Tester le code source de la fonction ecfpb avec test_ecfpb.bash] (extrait le contenu des livres imprimables)
$^{β-210415}$ - Tester le code source de la fonction ecfpc function with test_ecfpc.bash (extrait le contenu des livres compilés)
    This funtions clean sripts to create executables files for translations with compil2bin executable script
    killalldoc function eliminates all comment lines starting with #D #M #O #P #T in the first column.
    killDMOPT function replaces all comment lines starting with #D #M #O #P #T in the first column with a blank line. This keeps the line number of the translations.
    killOPT function replaces all comment lines starting with #O #P #T in first column with a blank line. This keeps the line number for the translations )

### Codes sources

25/10/2021, Liste des dernières mise à jour de Add_appendix/src: addappendix.sh: VERSION=211006, annexer.sh: VERSION=211006
pre-annex.sh: VERSION=211005 annex.sh: VERSION=211004 header.inc.sh: VERSION=210519 list.sh: VERSION=210523 download.sh: VERSION=210619 add_sclt.sh: VERSION=211006, en_sclt.inc.sh:, fr_sclt.inc.sh:
scli.inc.sh: VERSION=211008 add_sclic.sh: VERSION=211008, en_sclic.inc.sh: VERSION=211008, fr_sclic.inc.sh:
add_sclipco.sh: VERSION=211008, en_sclipco.inc.sh:, fr_sclipco.inc.sh:
add_sclipwb.sh: VERSION=211008, en_sclipwb.inc.sh: VERSION=211008, fr_sclipwb.inc.sh:
Les codes sources .sh ci-dessous doivent être installés dans le répertoire d'installation tests, ils peuvent êtres copiés dans le répertoire src après les tests, puis nettoyés des commentaires, sans l'extension .sh, ou encore être compilés avec l’extension .x dans le répertoire bin, pour les librairies; les sources doivent être installés dans les répertoires tests/1-annex.lib/*, et être copiés dans le répertoire local lib après les tests.

### add_appendix.sh + annexer.sh

$^{vβ220304}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/addappendix.sh+annexer.sh L'internationalisation des messages est faite

### pre-annex.sh

$^{vβ211005}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/pre-annex.sh L'internationalisation des messages est faite

### header.inc.sh

$^{vβ210519}$ vβ Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/header.inc.sh L'internationalisation des messages est faite

### annex.sh

$^{vβ211004}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/annex.sh L'internationalisation des messages est faite

### list.sh

$^{vβ210523}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/list.sh

### download.sh

$^{vβ210619}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/download.sh

### add_sclt.sh

$^{vβ211006}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclt.sh

### scli.inc.sh

$^{vβ211008}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/scli.inc.sh

### add_sclic.sh

$^{vβ210819}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclic.sh

### add_sclipco.sh

$^{vβ211008}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclipco.sh

### add_sclipwb.sh

$^{vβ211008}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/src/add_sclipwb.sh

## Commandes d'administration
### Mise à jour des sources de commandes d'administration

/home/jpl/Add_appendix/sbin/BINFILES_VERSIONS
* compil2bin: VERSION=211113
* docu2html: VERSION=211123
* findversions: VERSION=211124
* htmlman: VERSION=211122
* install_annex: VERSION=211018
* install_datasfiles: VERSION=210919
* makeman_annex: textman: VERSION=211122
* updt-manuals: VERSION=211120
* userman: VERSION=211122
* users_install_annex: VERSION=211101
Les codes d'installation ou/et de réinstallation de la version internationalisée sont habituellement installées dans le <répertoire_d'installation>/sbin. On peut les installer dans /usr/local/sbin pour en avoir un accès direct. En cas d'installation du programme annex, annexer, addappendix, dans /usr/local, ces fichiers de commandes sont naturellement installés dans le répertoire /usr/local/sbin

### Commandes de présentation des manuels

* Ces trois commandes permettent de visualiser les manuels aux formats html, texte, et manuel traditionnel (roff compressé)
* La recherche des manuels se font prioritairement dans les répertoires man de l'application.
* En premier en accord avec la langue de l'utilisateur
* En second en anglais dans le répertoire man1 local
* En cas de défaut les commandes ci après recherchent le manuel dans /usr/share/man/man1 en langue anglaise
* Si le manuel n'est pas trouvé dans il faut tenter la commande man traditionnelle qui permet l'accès aux manuels dans la langue de utilisateur.

#### Pour une utilisation directe

    Les commandes peuvent être placées
* dans /usr/local/sbin sans l'extension .sh
* dans la liste des alias précisées à l'exécution de la commande, par exemple :

#### Liste des manuels du logiciel (bin)

    annexer, addappendix, annex

#### Liste des manuels de maintenance (sbin)

    compil2bin, findversions, docu2html, install_datasfiles

#### htmlman.sh

$^{vβ211122}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/htmlman.sh

#### textman.sh

$^{vβ211122}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/textman.sh

#### userman.sh

$^{vβ211122}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/userman.sh

### Commandes de maintenance des manuels
#### docu2html.sh

$^{vβ211123}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/sbin/manuels/doc2html.sh

#### makeman_annex.sh

$^{vβ211122}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/makeman_annex.sh

#### updt-manuals.sh

$^{vβ211126}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/updt-manuals.sh

### Programmes d'installation
#### Commandes de maintenance d'installation
##### compil2bin and cp-src2bin

cp-src2bin.sh installe les fichiers exécutables du programme dans le répertoire bin à partir des fichiers sources. $^{vβ211113}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/cp-src2bin.sh

##### copy all tested files and commands to src, bin, lib, sbin directories

cp_all_to_Add_appendix.bash copie toutes les commandes testées dans les répertoires des tests, vers les répertoires src, bin, lib et sbin de Add_appendix. Cette version, depuis le 28 août 2021 prend en compte l'installation des traductions. $^{vβ211205}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/cp_all_to_Add_appendix.bash

##### findversions.sh

$^{vβ211124}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/findversions.sh

##### install_datasfiles.sh

$^{vβ211125}$ Auto-éditer_un_wikilivre/Annexer_(Version_internationalisée)/install_datasfiles.sh

#### Installation de la structure de répertoires

* Noter que le logiciel annexer et addapendix seront téléchargeables sous forme de paquets pour Linux.
Ils pourraient ainsi être installés sur des serveurs et être utilisables avec des terminaux ou de consoles. Il existe des terminaux pour tous les systèmes d’exploitation.

###### users_install and users_uninstall annex.sh

users_install_annex.sh: Installe la structure des répertoires de base du programme Annexer ou Add_appendix pour les utilisateurs. Cette commande peut être ré-exécutée à volonté. $^{vβ211101}$ users_install_annex.sh

###### admins_install_annex.sh

En cours de révision admins_install_annex.sh: Cette commande s'est complexifiée au cours du temps. Elle permet d'installer une structure très complète des répertoire dans le répertoire de l'utilisateur, et aussi dans le système de fichiers linux. Elle peut être ré-exécutée à volonté. $^{vβ211020}$ admins_install_annex.sh

###### install_annex.sh in linux system

    VERSION=211018
En cours de révision À exécuter deux fois ! install_annex.sh: Cette commande permet d'installer la structure des répertoire dans le répertoire de l'utilisateur avec les répertoires et outils essentiels et le logiciel est disponible pour tous dans le système de fichiers unix ou linux. Elle peut être ré-exécutée à volonté. $^{vβ210919}$ install_annex.sh

## Exemples de fichiers de traductions (Translations files)
### header.inc.pot et annex.pot (sources en anglais)

Les fichiers .pot sont produits par les commandes suivantes: Avec: Installdir=~/Add_appendix ou ~/Annexer

#### Exemples

header.inc.pot 2020-05-24 annex.pot 2020-05-24

### header_es.po et annex_es.po espagnol

Ce sont des exemples. Ils sont produits par copie des fichiers .pot pour procéder à la traduction: Avec: Installdir=~/Add_appendix ou ~/Annexer
Lorsque les traductions sont effectuées avec un éditeur comme Poedit, et enregistrées, on exécute la commande:
Si on veut utiliser la traduction de ces messages en local il faut le préciser dans l'entête des scripts Pour exemple avec header.inc:
La traduction se fera avec le fichier header.inc.mo depuis le répertoire spécifié avec TEXTDOMAINDIR header.inc est un fichier appelé par d'autres scripts et les variables vont changer. Au retour du script header.inc il faut restaurer les variables du script d'appel faute de quoi la traduction ne sera plus assurée pour le script appelant. Pour TEXTDOMAINDIR Il est préférable de conserver la valeur du programme appelant dans le programme appelé, et de placer les fichiers .mo dans /usr/share/locale/ On peut dans ce cas exporter TEXDOMAINDIR dans les shells fils du shell courant (variable d'environnement)
* Note: le logiciel Poedit produit aussi un fichier .mo dans le même répertoire que le fichier .po il faut alors le déplacer vers le répertoire LC_MESSAGES pour que la traduction fonctionne.
* Poedit mémorise les traductions dans un catalogue que l'on crée tel Add_appendix pointant vers les fichiers du répertoire Add_appendix/share/locale, Add_appendix/share/locale/fr, Add_appendix/share/locale/es, etc. qui contient les fichiers à traduire. Il faut veiller à mettre le catalogue à jour à la fin de la traduction, au moment de ma sauvegarde.

#### Exemples

Ces fichiers ne sont pas obligatoirement à jour, ils sont là pour mémoire et pour démonstration. Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/po/header.inc_es.po annex_es.po 2020-07-15

### header_fr.po et annex_fr.po français

Ce sont des exemples de traductions que vous pouvez modifier.

#### Exemples

header.inc.sh_fr_FR.po 2021-03-30 annex.sh_fr_FR.po 2020-05-24

## Manuels (Manuals) for Add_appendix Beta 210828
### annex.1 standard en anglais

$^{vβ210830}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/manuels/annex.1

### annex_es.1 espagnol

$^{vβ210726}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/sbin/manuels/annex_es.1

### annex_fr.1 français

$^{vβ211214}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/manuels/annex_fr.1

### docu2html.sh

Ce script crée les manuels en versions compressées *.gz, et *.html, *.txt puis les place dans les répertoires appropriés, ./lang/man1/*.gz ./lang/doc/html/*.html ./lang/doc/txt/*.txt Noter que les répertoire /usr/share/man/lang/* sont en standard dans les systèmes unix/linux et permettent l'affichage avec la commande man alors que les répertoires html et txt n'existent pas et ne sont pas reconnus. Les manuels html permettent d'afficher les manuels dans le navigateur, et les manuels txt sont destinés à l'impression.
$^{vβ211123}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/sbin/manuels/doc2html.sh

## Fichiers généraux (General files)
### documentation

Auto-éditer un wikilivre/Annexer (Version internationalisée)/docu

### icons

$^{vβ211213}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/icons

### locale

* Met à jour et installe les traductions.
$^{vβ211216}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/locale

### mime

* mise à jour de mime-database
$^{vβ211212}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/mime

### man

* Mise à jour des scripts éprouvés
$^{vβ211214}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/man

## Makefile d'installation de Add-appendix proposé aux tests

* Cette application version 220304 est une version bêta (imparfaite). Ce script servira de base à la construction du paquet Ubuntu addappendix.
* Ce Makefile se place dans le répertoire Add_appendix et installe tout le logiciel dans le système Linux. Les scripts exécutables se trouvent dans /usr/local, les manuels, les icônes et les fichiers de langues se trouvent à leur place, intégrés dans le système linux.
* Après cette installation on peut, si on le désire, supprimer presque tout le contenu du répertoire ~/Add_appendix pour gagner de la place (6 Mo) dans un système Linux installé en mémoire usb. On conserve le répertoire books et les notes d'application README, voire le répertoire docu, les répertoire des manuels et des langues afin de corriger les fichiers s'il y a lieu.
$^{vβ220304}$ Auto-éditer un wikilivre/Annexer (Version internationalisée)/Makefile
* Installez linux sur une barrette mémoire amovible auto-amorçable (bootable) Reconfigurez le setup (touche F2) en cas de défaut du démarrage automatique avec la barette.

## Développement du logiciel

* Avec ce Makefile d'installation, la construction du logiciel Add-appendix prend fin. Les fichiers de programme, de maintenance, avec ses manuels et de traductions serviront à créer le paquet ubuntu addappendix d'installation complètement automatique et téléchargeable sur un site de confiance.
* Tout a commencé avec ces pages: Autoréférencer
* Voir aussi la page d'évolution des scripts depuis les premiers confinements: Annexes de wikibooks

## Références

* ↑ https://www.linuxtricks.fr/wiki/personnaliser-son-shell-alias-couleurs-bashrc-cshrc