{"id":123,"date":"2009-07-09T19:57:33","date_gmt":"2009-07-09T17:57:33","guid":{"rendered":"http:\/\/www.dpao.fr\/blog\/?p=123"},"modified":"2013-12-21T15:50:05","modified_gmt":"2013-12-21T13:50:05","slug":"id-story","status":"publish","type":"post","link":"https:\/\/www.dpao.fr\/blog\/2009\/07\/09\/id-story\/","title":{"rendered":"InDesign Story"},"content":{"rendered":"<p>Pour les lecteurs du billets concernant Tiddlywiki, c&rsquo;est peut \u00eatre du r\u00e9chaff\u00e9 si ces derniers ont pouss\u00e9 \u00e0 lire le TW de l&rsquo;article, sinon tant pis, et de toutes fa\u00e7ons il n&rsquo;y a pas de lien direct, ici il s&rsquo;agit de modifier la langue utilis\u00e9e par le logiciel.<\/p>\n<p>Sous QuarkXPress, j&rsquo;ai longtemps r\u00e9ceptionn\u00e9 des documents en provenance d&rsquo;outre-Rhin qu&rsquo;il nous fallait traduire en fran\u00e7ais. Un des probl\u00e8mes \u00e9tait que de base le logiciel utilisait la langue d&rsquo;origine du document comme r\u00e9f\u00e9rence de dictionnaire de c\u00e9sure. Bien que la m\u00e9thode de mise \u00e0 jour des styles eut \u00e9t\u00e9 une solution propre, elle n&rsquo;a \u00e9t\u00e9 que vaguement envisag\u00e9, les styles \u00e9taient bien utilis\u00e9s, mais variaient d&rsquo;une parution \u00e0 l&rsquo;autre, voir m\u00eame document \u00e0 l&rsquo;autre. Il fallait donc plus radical et efficace.<br \/>\nFacile ! A l&rsquo;aide d&rsquo;une biblioth\u00e8que on glisse un petit bloc texte type dans la maquette. Ce bloc texte ayant, bien entendu, \u00e9pur\u00e9 de tout style afin de ne pas encombrer le document de travail, et bien sur, la langue du paragraphe contenu r\u00e9gl\u00e9e sur celle de destination (ici fran\u00e7ais pour ceux qui ne suivent d\u00e9j\u00e0 plus!). Il n&rsquo;y a plus qu&rsquo;\u00e0 effectuer un <em>Enregistrer sous <\/em>et activer la langue unique pour modifier tout le document dans la langue d\u00e9sir\u00e9e.<\/p>\n<p>Sous InDesign, j&rsquo;ai bien cherch\u00e9, mais je n&rsquo;ai rien trouv\u00e9! Soit! Une occasion de plus jouer avec des scripts. En plus cette fois, les fichiers proviennent d&rsquo;outre-Manche, c&rsquo;est pas gagn\u00e9 pour leur faire comprendre que le texte fran\u00e7ais qu&rsquo;ils maquettent doit utiliser des r\u00e8gles de c\u00e9sures issues d&rsquo;un dictionnaire fran\u00e7ais! Ici pas d&rsquo;option autre que mot par mot, paragraphe par paragraphe, style par style ou m\u00eame bloc par bloc.<\/p>\n<p>J&rsquo;ai profit\u00e9 de ce petit contre-temps pour aller une fois de plus du <a title=\"Une connerie de plus...\" href=\"http:\/\/www.deezer.com\/track\/606311\" target=\"_blank\">c\u00f4t\u00e9 de chez Swann<\/a>, puis du Javascript pour approfondir encore un peu mes exp\u00e9riences.<br \/>\nL&rsquo;option choisie est de laisser le choix du champ d&rsquo;application des modification:<\/p>\n<ul>\n<li>tous les styles de paragraphes<\/li>\n<li>tous les styles de caract\u00e8res<\/li>\n<li>tous les paragraphes<\/li>\n<\/ul>\n<p>Ce d\u00e9coupage permettant de voir un peu les diff\u00e9rents c\u00f4t\u00e9s identiques (sic!) de l&rsquo;application d&rsquo;une langue dans InDesign via des scripts. L&rsquo;ordre me parait \u00e9galement logique dans un esprit de nettoyage logique du texte les styles avant les paragraphes afin de pr\u00e9server les liens de style au maximum en cas de modification \u00e0 venir.<\/p>\n<p>Premi\u00e8re \u00e9tape, une fen\u00eatre dialogue permettant le choix du champ d&rsquo;application, si un document est ouvert:<\/p>\n<pre lang=\"javascript\" escaped=\"true\">function main(){\r\n  if(app.documents.length != 0){\r\n      var myDialog = app.dialogs.add({name:\"Conversion langue FRANCAIS\"});\r\n      with(myDialog.dialogColumns.add()){\r\n        staticTexts.add({staticLabel:\"Appliquer aux \u00e9l\u00e9ments:\"});\r\n        var sP = checkboxControls.add({staticLabel:\"Style de paragraphe\", checkedState:true});\r\n        var sC = checkboxControls.add({staticLabel:\"Style de caract\u00e8res\", checkedState:true});\r\n        var aP = checkboxControls.add({staticLabel:\"Tous les paragraphes\", checkedState:true});\r\n      }<\/pre>\n<p>Seconde \u00e9tape, on effectue les changements sur les items d\u00e9sir\u00e9s en se basant sur l&rsquo;\u00e9tat des checkbox pr\u00e9c\u00e9dents:<\/p>\n<pre lang=\"javascript\" escaped=\"true\" >if(myDialog.show() == true){\r\n        var sP, sC, aP;\r\n        if(sP.checkedState == true){\r\n          for(myCounter = 1; myCounter &lt; app.activeDocument.paragraphStyles.length; myCounter++){\r\n          app.activeDocument.paragraphStyles.item(myCounter).appliedLanguage = app.languagesWithVendors.item(\"French\");\r\n        }}\r\n        if(sC.checkedState == true){\r\n          for(myCounter = 1; myCounter &lt; app.activeDocument.characterStyles.length; myCounter++){\r\n          app.activeDocument.characterStyles.item(myCounter).appliedLanguage = app.languagesWithVendors.item(\"French\");\r\n        }}\r\n        if(aP.checkedState == true){\r\n          for(myCounter = 0; myCounter &lt; app.activeDocument.stories.length; myCounter++){\r\n          app.activeDocument.stories.item(myCounter).appliedLanguage = app.languagesWithVendors.item(\"French\");\r\n      }}<\/pre>\n<p>Et pour finir, on n&rsquo;oublie pas de d\u00e9truire la fen\u00eatre de dialogue, sinon avec le temps InDesign va un peu craquer!<\/p>\n<pre lang=\"javascript\" escaped=\"true\" >myDialog.destroy();<\/pre>\n<p>Au final, le script complet permettant de convertir un document en fran\u00e7ais est le suivant:<\/p>\n<pre lang=\"javascript\" escaped=\"true\" line=\"1\">function main(){\r\n  if(app.documents.length != 0){\r\n      var myDialog = app.dialogs.add({name:\"Conversion langue FRANCAIS\"});\r\n      with(myDialog.dialogColumns.add()){\r\n        staticTexts.add({staticLabel:\"Appliquer aux \u00e9l\u00e9ments:\"});\r\n        var sP = checkboxControls.add({staticLabel:\"Style de paragraphe\", checkedState:true});\r\n        var sC = checkboxControls.add({staticLabel:\"Style de caract\u00e8res\", checkedState:true});\r\n        var aP = checkboxControls.add({staticLabel:\"Tous les paragraphes\", checkedState:true});\r\n      }\r\n      if(myDialog.show() == true){\r\n        var sP, sC, aP;\r\n        if(sP.checkedState == true){\r\n          for(myCounter = 1; myCounter &lt; app.activeDocument.paragraphStyles.length; myCounter++){\r\n          app.activeDocument.paragraphStyles.item(myCounter).appliedLanguage = app.languagesWithVendors.item(\"French\");\r\n        }}\r\n        if(sC.checkedState == true){\r\n          for(myCounter = 1; myCounter &lt; app.activeDocument.characterStyles.length; myCounter++){\r\n          app.activeDocument.characterStyles.item(myCounter).appliedLanguage = app.languagesWithVendors.item(\"French\");\r\n        }}\r\n        if(aP.checkedState == true){\r\n          for(myCounter = 0; myCounter &lt; app.activeDocument.stories.length; myCounter++){\r\n          app.activeDocument.stories.item(myCounter).appliedLanguage = app.languagesWithVendors.item(\"French\");\r\n      }}\r\n    }\r\n  myDialog.destroy();\r\n  }\r\n  else{\r\n    alert(\"Merci d'ouvrir un document.\");\r\n  }\r\n}<\/pre>\n<p>A venir, quand j&rsquo;en trouverais la motivation et\/ou l&rsquo;utilisation, un script plus g\u00e9n\u00e9rique allant puiser la liste des langues disponibles, et proposer un changement dans la langue du logiciel apr\u00e8s r\u00e9cup\u00e9rer cette derni\u00e8re.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Non, il ne s&rsquo;agit pas d&rsquo;une \u00e9ni\u00e8me \u00e9mission de t\u00e9l\u00e9-r\u00e9alit\u00e9, mais bien de \u00ab\u00a0story\u00a0\u00bb dans InDesign. Pour rappel, c&rsquo;est ainsi que sont nomm\u00e9s les textes lors de l&rsquo;utilisation de script avec ce logiciel (ou peut \u00eatre XPress et pas lui).<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3],"tags":[18,10,9],"_links":{"self":[{"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/posts\/123"}],"collection":[{"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":9,"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":132,"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/posts\/123\/revisions\/132"}],"wp:attachment":[{"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/media?parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/categories?post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpao.fr\/blog\/wp-json\/wp\/v2\/tags?post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}