I have a big file with hundreds of images and texts. I need to export all the texts in order to send them to the translator. I know I can do it with the variables, but its still a long process because I have to select every single text box and create a text variable with an univocal name out of that. Does anyone know if there is a way to automatize this process? Maybe with the Actions?

  • 1
    This question appears to be off-topic because while you're using software that is generally used for design, this question doesn't appear to have anything to do with design.
    – Ryan
    Commented Sep 10, 2014 at 15:22
  • This sounds like a design workflow question for anyone working on a project involving translation. If you just need to extract the text, you can do it with two downloadable scripts ("Convert to point text" and then "Join text frames"), then that'll give you a massive text frame you can copy and paste from. If you need variables, that's much harder... If you can't get an action to work, I might try Adobe's scripting forums Commented Sep 10, 2014 at 16:33
  • 1
    I would suggest looking into Illustrator scripting
    – user9447
    Commented Sep 10, 2014 at 17:52
  • Actions is not capable of that type of work.
    – Rosenthal
    Commented Sep 10, 2014 at 20:55
  • Thank you for replying, I'm sorry if I got off-topic, I just discovered this website and I still don't know the rules. Should I move it? @user568458 > This sounds like a design workflow question for > anyone working on a project involving translation. I've never done it before. Is there a standard way to do it, maybe faster than using variables? After extracting the text I need to replace the translated one in the same position
    – Mauro
    Commented Sep 12, 2014 at 7:48

1 Answer 1


this script targets the active layer, it creates variables and binds them to each text frame

#target illustrator

// script.name = makeActiveLayerTextDynamic.jsx;
// script.description = makes ALL text in the Active Layer Dynamic, creates Variables;
// script.required = one document with at leas one textFrame;
// script.parent = CarlosCanto // 04/17/14;
// script.elegant = false;

var idoc = app.activeDocument;
var ilayer = idoc.activeLayer;

for (i=0; i<ilayer.textFrames.length; i++) {
    var itext = ilayer.textFrames[i];
    var idocvar = idoc.variables.add();
    idocvar.kind = VariableKind.TEXTUAL;

    try {itext.contentVariable = idocvar}
    catch (e) {idocvar.remove()}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.