Donnez vie à vos documents numériques !
 

Répondre à : Détecter la langue du lecteur (Reader, Acrobat) dans un script JS

abracadabraPDF Forums PDF – Général Détecter la langue du lecteur (Reader, Acrobat) dans un script JS Répondre à : Détecter la langue du lecteur (Reader, Acrobat) dans un script JS

#50869
Merlin
Maître des clés

Un grand merci, grâce à toi je viens de découvrir les fonctions PDF de Scribus ainsi que la version pour Mac OSX !
Ce logiciel est extra !

Sinon, le problème vient du fait que tu fais exécuter le même code dans les deux boutons, donc les deux ont la même action.
Le script à l’ouverture n’est pas bon non plus car il ne gère que deux possibilités (FRA ou ENG) sans état par défaut.

On va partir du principe que l’état par défaut c’est ENG (Reader ou Acrobat en anglais), “par défaut” signifie que c’est celui qui vaudra aussi pour toutes les autres langues que le français (italien, espagnol, chinois, etc.).
L’état modificateur c’est FRA (Reader ou Acrobat en français), c’est donc celui que l’on va détecter pour adapter l’état des calques en fonction, sinon on reste sur l’état par défaut.
Donc dans Scribus on va définir l’état du calque ENG sur visible, et le calque FRA sur invisible (image jointe).

Le code pour le script à l’ouverture :

Code:
//meme code que dans le bouton VF mais
//il ne s’execute que si l’application est en francais
//inutile de détecter un autre langage

if (app.language == “FRA” )
{
var ocgs = this.getOCGs();
for (var i=0; i ocgs.state = false;
for (var i=0; i        {
   if (ocgs.name == “text_fr”)
   ocgs.state = !ocgs.state;
   if (ocgs.name == “fond”)
   ocgs.state = !ocgs.state;
}
}

Code pour le bouton VF :

Code:
//on supprime la condition FRA
//car le bouton doit fonctionner dans tous les cas

var ocgs = this.getOCGs();
for (var i=0; i//ici on precise FALSE
ocgs.state = false;
for (var i=0; i{
if (ocgs.name == “text_fr”)
ocgs.state = !ocgs.state;
if (ocgs.name == “fond”)
ocgs.state = !ocgs.state;
}

Code pour le bouton VE :

Code:
//on supprime la condition FRA
//car le bouton doit fonctionner dans tous les cas

var ocgs = this.getOCGs();
for (var i=0; i//ici on precise TRUE
ocgs.state = true;
for (var i=0; i{
if (ocgs.name == “text_fr”)
ocgs.state = !ocgs.state;
if (ocgs.name == “fond”)
//ici on supprime la condition inverse (!) apres =
//pour le calque de fond
ocgs.state = ocgs.state;
}

:extra:

Lien vers le PDF qui fonctionne : https://acrobat.com/#d=Ph5oYk-a3iBDOtZkVnquHA

[attachment deleted by admin]