Spip-Bible : ajouter des nouvelles traductions

Cet article est destiné aux personnes qui souhaitent rajouter des traductions à Spip-Bible. Il est nécessaire de connaître un minimum le php (au moins savoir ce qu’est un tableau php)

Si la traduction est disponible sur bible-gateway, ou sur Unboundbible sur le travail est facilité. Sinon, il faut réfléchir un peu.

1. Abréviation des livres et de la traduction

Il faut trouver une abréviation de la traduction. Voir le tableau excel/OOO ci-joint

2. Cas facile : la traduction est disponible sur bible-gateway ou sur unboundbible

Dans le dossier « inc » du plugin, vous avez un fichier « bible_tableau.php ».

Il contient des tableaux php.

Il suffit de bien remplir ces tableaux.

Le tableau $tableau_traduction

Rajouter un champs dont la clé est l’abréviation de votre traduction.

Ce champs est lui même un tableau, avec les couples de clef/valeur suivants :

clefvaleur
traduction nom exacte de la traduction
gateway identifiant gateway
unbound identifiant unbound de la traduction
lang langue de la traduction
nt true si la traduction contient le Nouveau Testament,false sinon
at true si la traduction contient l’Acien Testament,false sinon
deutero true si la traduction contient les deutéros canoniques, false sinon
isaie Obligatoire pour les versions française, pas pour les autres. Prend « Es » comme valeur si le 1er des prophètes postérieurs est appelé Esaïe (bibles protestantes), « Is » s’il est appelé Isaïe (bibles catholiques). Attention à la casse.
historique facultatif bref historique de cette traduction, où lien vers un site web. Vous pouvez user des raccourcis spip
domaine_public Important pour la génération des balises du plugin. Mettre true si la traduction est dans le domaine public.

Si votre traduction n’est pas sur Unboundbible, mettre la valeur de un bound à false, s’il n’est pas sur gateway, mettre celle de gateway à false [1]

Trouver l’identifiant gateway
L’identifiant gateway de la traduction est trouvé en allant sur la page de la traduction depuis cette page.

Dans l’URl de la traduction, il faut prendre la valeur du paramètre vid".

Trouver l’identifiant unbound

Aller sur la page http://www.unboundbible.org/index.cfm?method=unbound.welcome&lang=frn

Regarder dans le code source le champ « select » dont le paramètre « name » est « parallel_1 ».

Attention, le plugin est sensible à la casse.

Exemple :

'kj21' => array(
		'traduction'=> 'The 21st Century King James',
                 'domaine_public' => false,
		'gateway'	=> 'KJ21',
		'lang'		=> 'en',
		'nt'=> true,
		'at'=> true),

Autre exemple :

	'luther1912'		=> array(
		
		'unbound'=>'german_luther_1912_ucs2',
		'traduction'=> 'Bibel von Luther (1912)',
		'lang'		=>'de',
		'nt'=> true,
		'at'=> true,
        'domaine_public' => true
			),

La suite est valable si votre traduction est dans une langue ne disposant pas encore de traduction.

Le tableau $tableau_separateur.

La clef doit être la langue. La valeur doit être le séparateur entre le chapitre et le verset. Ex :

$tableau_separateur = array(
	'fr'=>',',
	'en'=>':');

Le tableau $tableau_livres

Les clefs sont les abréviations des livres, les valeurs leurs noms exactes. Les tableaux joints à cet article donne la traduction en différente langue des abréviations bibliques (Remerciement à Paolo pour ce tableau).

Le tableau $livre_gateways

Les clefs sont les langues de traduction (abrégée). Chaque clef se voit associé un tableau.

Ce tableau à pour clefs les abréviations des livres, et pour valeurs le numéro du livre sur bible-gateway. Le tableau joint à l’article présente en colonne de gauche ce numéro.

exemple

'en'=>array(
			'Gn'=>1,
			'1Ch'=>13,
			'1Co'=>53,
			'1Jn'=>69,
			'1M'=>20,
			'1P'=>67,
			'1K'=>11,
			'1S'=>9,
			'1Th'=>59,
			'1Tm'=>61,
			'2Ch'=>14,
			'2Co'=>54,
			'2Jn'=>70,
			'2M'=>21,
			'2 P'=>68,
			'2K'=>12,
			'2S'=>10,
			'2th'=>60,
			'2Tm'=>62,
			'3Jn'=>71,
			'Hab'=>42,
			'Ob'=>38,
			'Hg'=>44,
			'Am'=>37,
			'Rv'=>73,
			'Ac'=>51,
			'Ba'=>32,
			'Sg'=>26,
			'Col'=>58,
			'Dn'=>34,
			'Dt'=>5,
			'Heb'=>65,
			'Qo'=>25,
			'Ep'=>56,
			'ezr'=>15,
			'Est'=>19,
			'Ex'=>2,
			'Ezk'=>33,
			'Phm'=>64,
			'Ph'=>57,
			'Ga'=>55,
			'Jr'=>30,
			'Jm'=>66,
			'Jb'=>22,
			'Jl'=>36,
			'Jon'=>39,
			'Jn'=>50,
			'Jude'=>72,
			'Jdt'=>18,
			'Is'=>29,
			'Jg'=>7,
			'Jos'=>6,
			'Lm'=>31,
			'Lk'=>49,
			'Lv'=>3,
			'Ml'=>46,
			'Mk'=>48,
			'Mt'=>47,
			'Mi'=>40,
			'Na'=>41,
			'Ne'=>16,
			'Nb'=>4,
			'Hos'=>35,
			'Pr'=>24,
			'Rm'=>52,
			'Rt'=>8,
			'Ps'=>23,
			'Ws'=>27,
			'Si'=>28,
			'Zp'=>43,
			'Tt'=>63,
			'Tb'=>17,
			'Zc'=>45)

Et c’est tout ... sauf l’ajout dans la page de configuration

2bis. Si votre Traduction n’est pas disponible sur bible-gateway

Déja, faite la même chose que si elle l’était :-p . Sauf que :

-  il est inutile de remplir « $livre_gateways »
-  dans le sous-tableau de $tableau_traduction, la clef « gateway » doit avoir comme valeur « false » (sans les guillemets")

exemple

'jerusalem' => array(
		'traduction'=> 'Bible de Jérusalem',
		'gateway'	=> false,
		'lang'		=> 'fr')

bon, ca c’était facile.

Maintenant, il faut créer un fichier « traduction/abreviation_de_la_traduction.php »

dedans, une fonction

recuperer_passage_abreviation($livre='',$chapitre_debut='',$verset_debut='',$chapitre_fin='',$verset_fin='',$lang='')

Alors là, c’est à vous de jouer. En gros, cette fonction doit appeler la/les page sur laquelle/lesquelles se trouvent la traduction.

La fonction doit retourner un tableau qui suit la structure de l’API 2.0.

Pour récupérer un document distant :

include_spip("inc/distant");
$texte = recuperer_page(‘url’) ; 

Pour gérer les charset :

include_spip("inc/charsets");
importer_charset($texte,’charset’) ;

Bon courage ;-)

Il faut également créer

generer_url_passage_abreviation($livre='',$chapitre_debut='',$verset_debut='',$chapitre_fin='',$verset_fin='',$lang='')

Qui doit retourner l’url du passage concerné.

Définir la traduction par défaut pour une langue

Par ailleurs, si votre traduction est la première dans une langue donnée, éditer bible_fonction.php. Et rajouter ecrire_config('bible/traduction_lang','abreviation_de_la_traduction'); après le if (function_exists('ecrire_config')){

ainsi que effacer_config('bible/traduction_lang'); if (function_exists('effacer_config')){

Pour finir

N’oubliez pas de commiter sur la zone. Et de rajouter les informations sur la traduction dans cet article (me contacter pour pouvoir écrire)...

Vous pouvez vous servir du générateur de documentation intégré dans la version 1.3.

Pour ce faire, rendez vous sur http://site/?page=bible_generer_doc&lang_doc=abreviation_de_la_langue_demandée (ex :http://site/?page=bible_generer_doc&lang_doc=es)

et copier-coller le texte généré au bonne endroit

Notes

[1c’est juste mnémotechnique

Discussion

2 discussions

  • 1

    Bonjour,

    J’ai une question, est-il possible « d’automatiser » l’ajout d’option à la page cfg ? Cela simplifierait la tâche...

    • j’ai bien pêur que non, pour la raison bête qu’on ne peut pas boucler sur tableau php ... peut être en faisant filtre qui renverriat le tableau, mais pas sur, et ce n’est pas ce que je cherche prioriataiorement à faire

    Répondre à ce message

  • 1

    Bonjour,

    Dans votre exemple de bible-gateway, est-ce que tous les livres dans les différentes traductions ont le même identifiant ?

    Si oui, il serait « simple » de mettre en place les différentes traductions des bibles par gateway non ?

    C’était juste 2 questions pour connaitre l’ampleur du travail.

    • oui, tout les livres ont le même identifiant, commeje l’ai dit...

      donc oui c’est simple,n mais j’ai pas eu le temps ... vous pouvez le faire donc

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom