Quantcast
Channel: Adobe Community : All Content - FrameMaker Scripting
Viewing all articles
Browse latest Browse all 888

Localisation problem

$
0
0

Friends and experts,

On my English Win7-x64 with FrameMaker 14.0.2.425 (en) I have this very simple script, which I also tested on the machine of my wife (Win7-x32, German) with the German version of FM 14.0.2.425:

/* ETBtest.jsx   To be placed in Startup folder of user area */
#target framemaker

alert ("Testing $.locale= " + $.locale);
var gsETBtest_title = { en: "Testing a jsx script in %apdata%\...\FrameMaker\vv\Startup [ETB]",
                        de: "Test eines jsx scripts in %apdata%\...\FrameMaker\vv\Startup[ETB]"                      };
var gsETBtest_msg   = { en: "Befor You test your own script, rename this script to ETBtest-ori.jsx"                          + "\n• Name Your script ETBtest.jsx"                          + "\n• You can now invoke it from the ETB tool-bar Extra (last icon)."                          + "\n\nAfter your tests please rename ETBtest-ori.jsx back to ETBtest.jsx",                        de: "Vor dem test Ihres scripts bitte dieses script auf ETBtest-ori.jsx umbenennen"                          + "\n• Benennen Sie ihr script ETBtest.jsx"                          + "\n• Nun kann ihr script von der ETB tool-bar Extra (letztes icon) aufgerufen werden."                          + "\n\nNach den tests bitte ETBtest-ori.jsx zurück benennen auf ETBtest.jsx"                      };
var gsETBtest_NoDoc = { en: "No book or document active",                        de: "Kein buch oder dokument aktiv"                      };

SetUpMenu();                                      // out-comment for debugging

function SetUpMenu() { // =========================================================================
// This function MUST NOT be named DefineMenu - because this is a reserved function!
// Errors in ESTK: Menu position can not be changed - see bug report FRMAKER-2752
// No menu is defined here - it is set up in customui.cfg / menus.cfg
  var cmdDoc = DefineCommand (1, "ETBtest", "Test a script [ETB]", "");  UpdateMenus();
} // --- end SetUpMenu

function Command(cmd) { // ========================================================================
    switch(cmd)  {                                    // Respond to menu command.        case 1:      WhatIsToDo();      break;    }
} // --- end Command

function WhatIsToDo () { // === This is what the test script will do ===============================
  alert (localize(gsETBtest_msg), localize(gsETBtest_title));  return;
}

On my English system/FM the alert reports

  Script Alert  Testing $.locale= 2

and the invoked script (by button) reports the en message from the gsETBtest_msg object.

 

On the German system/FM the alert reports

  Script Fehler  Testing $.locale= 3

and the invoked script (by button) reports the en message from the gsETBtest_msg object.

 

I get the German 'reaction' of the script only if I insert on the top of the script - which of course is not very useful for a bi-lingual script:

  $.locale = "de";

 

What goes wrong here?

The method is described in JavaScript Tools Guide of CS5.

 

By the way: changing the order of the string declarations (have de first, en second) has no effect on both systems.


Viewing all articles
Browse latest Browse all 888

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>