[ENH] [Babel] Screening tool

Diego Gomez Deck DiegoGomezDeck at ConsultAr.com
Fri Oct 17 12:51:52 UTC 2003


Hi folks...

Andreas and me spend some days talking about Babel and implicit vs.
explicit string literals translations.

(If somebody is interested in the thread I can send it by private
email).

We agreed on some points:

1) Translation in the widgets make no sense at all.  The only reasonable
argument to translate in the widgets is the option to translated without
modifying the model sources and, to get this goal, we don't need to
translate in the widgets.

2) To translate in the model we have 2 options: Implicit and Explicit. 
Explicit means send message #translate to every visible string in the
image and Implicit means get (and translate) the string without
modifying the source.  Both model has benefits and drawbacks.

3) We talk about delaying the final decision using the Implicit model. 
Putting all the information in the tool used to tag the strings (The
Screening Tool) is the more conservative decision for today because we
can translate the image without changing so much the sources and when we
get more experience we can decide to continue with the Implicit model or
to switch to the Explicit one.  In the case we decide to go with the
explicit model we can use the same Screening Tool to insert the
#translated message all over the image.

Here I'm pasting the email I received from Andreas with the list of
steps to try the screening tool:


-------------------------------------------------------------------
-------------------------------------------------------------------


       De: 
Andreas Raab
<andreas.raab at gmx.de>
     Para: 
'Diego Gomez
Deck'
<DiegoGomezDeck at ConsultAr.com>
   Asunto: 
RE: Squeak
list et al
    Fecha: 
Sun, 12 Oct
2003
18:05:10
+0200

Hi Diego,

Attached is a first version of the screening tool to get an idea what it
may
feel like. To use it, load the LocalizationInfo.cs into your system and
open
the tool from the world menu.

The screening tool has the structure of your system to the left and a
code
pane to the right. As you expand the tree on the left (use the cursor
keys
for efficiency!) you are able to dive down into the classes, methods and
individual literal strings of that method.

In order to flag a string for localization, just hit space (this will
toggle
through "[+] - translate", "[ ] - do not translate" and "[?] - I don't
know"). In addition the context menu provides a few global actions that
you
can use. For example, the way I typically use it is to keep hitting
cursor-right until I find a string, hit space and keep going until I
have
all the guys I think should be translated and then just "exclude the
undefined" strings.

Once you are done (with either class, category, or package) you can use
the
context menu to save the localization info for the unit of work you've
been
working on. This will spit out a ".lif" file which you can load into
another
system (just use the file list). The file contains all of the info
required
to tag the strings we want to translate at runtime.

I have also attached an example LIF file for the world menu to
demonstrate
the effect. In order to test this, please do exactly what I am
describing in
the following:
* Get a clean 3.6 image
* Load the localization info cs
* Load Babel-dgd.cs
* Load Babel-FileListServices-dgd.cs
[NOTE: Do NOT load the "complete translations" - this would spoil the
effect]
* Install "TheWorldMenu.lif" from the file list
* Install "Spanish.translations" (or any other translation you have)
from
the file list
* Set the language to spanish (or the one you loaded)

Now open the world menu - you will see it's still in english. That's
because
we haven't installed the translations yet. Let's install them:

LiteralStringLocalizationManager install: Language defaultLanguage

Open the world menu again - now it's all in spanish. To get back to the
previous (untranslated) version evaluate

LiteralStringLocalizationManager install: nil.

Open the world menu again - it's back to english.

Okay, that's about it for now.

Cheers,
  - Andreas


-------------------------------------------------------------------
-------------------------------------------------------------------


Comments are welcome!


-- 
Diego Gomez Deck
http://www.small-land.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LocalizationInfo.1.cs
Type: application/squeak-changeset
Size: 38327 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20031017/1a5eb081/LocalizationInfo.1.bin
-------------- next part --------------
"Squeak Localization Info"
{#TheWorldMenu. #alphabeticalMorphMenu. ' - '. false}.!
{#TheWorldMenu. #appearanceMenu. 'appearance...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'preferences...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Opens a "Preferences Panel" which allows you to alter many settings'. true}.!
{#TheWorldMenu. #appearanceMenu. 'choose theme...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Presents you with a menu of themes; each item''s balloon-help will tell you about the theme.  If you choose a theme, many different preferences that come along with that theme are set at the same time; you can subsequently change any settings by using a Preferences Panel'. true}.!
{#TheWorldMenu. #appearanceMenu. 'window colors...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Lets you specify colors for standard system windows.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'system fonts...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Choose the standard fonts to use for code, lists, menus, window titles, etc.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'text highlight color...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Choose which color should be used for text highlighting in Morphic.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'insertion point color...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Choose which color to use for the text insertion point in Morphic.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'keyboard focus color'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Choose which color to use for highlighting which pane has the keyboard focus'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Governs whether menu colors should be derived from the desktop color.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'Governs whether morphic windows and menus should have rounded corners.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'full screen on'. true}.!
{#TheWorldMenu. #appearanceMenu. 'puts you in full-screen mode, if not already there.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'full screen off'. true}.!
{#TheWorldMenu. #appearanceMenu. 'if in full-screen mode, takes you out of it.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'set display depth...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'choose how many bits per pixel.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'set desktop color...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'choose a uniform color to use as desktop background.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'set gradient color...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'choose second color to use as gradient for desktop background.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'use texture background'. true}.!
{#TheWorldMenu. #appearanceMenu. 'apply a graph-paper-like texture background to the desktop.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'clear turtle trails from desktop'. true}.!
{#TheWorldMenu. #appearanceMenu. 'remove any pigment laid down on the desktop by objects moving with their pens down.'. true}.!
{#TheWorldMenu. #appearanceMenu. 'pen-trail arrowhead size...'. true}.!
{#TheWorldMenu. #appearanceMenu. 'choose the shape to be used in arrowheads on pen trails.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'previous project'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'return to the most-recently-visited project'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'jump to project...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'put up a list of all projects, letting me choose one to go to'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save project on file...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save this project on a file'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'load project from file...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'load a project from a file'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'restore display (r)'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'repaint the screen -- useful for removing unwanted display artifacts, lingering cursors, etc.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'open...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'windows...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'changes...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'help...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'puts up a menu of useful items for updating the system, determining what version you are running, and much else'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'appearance...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'put up a menu offering many controls over appearance.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'do...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'put up an editible list of convenient expressions, and evaluate the one selected.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'objects (o)'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'A tool for finding and obtaining many kinds of objects'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'new morph...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'Offers a variety of ways to create new objects'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'authoring tools...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'A menu of choices useful for authoring'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'playfield options...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'A menu of options pertaining to this object as viewed as a playfield'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'flaps...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'A menu relating to use of flaps.  For best results, use "keep this menu up"'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'projects...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'A menu of commands relating to use of projects'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'print PS to file...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'write the world into a postscript file'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'debug...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'a menu of debugging items'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save the current version of the image on disk'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save as...'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save the current version of the image on disk under a new name.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save as new version'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'give the current image a new version-stamped name and save it under that name on disk.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save and quit'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'save the current image on disk, and quit out of Squeak.'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'quit'. true}.!
{#TheWorldMenu. #buildWorldMenu. 'quit out of Squeak.'. true}.!
{#TheWorldMenu. #changesMenu. 'changes...'. true}.!
{#TheWorldMenu. #changesMenu. 'file out current change set'. true}.!
{#TheWorldMenu. #changesMenu. 'Write the current change set out to a file whose name reflects the change set name and the current date & time.'. true}.!
{#TheWorldMenu. #changesMenu. 'create new change set...'. true}.!
{#TheWorldMenu. #changesMenu. 'Create a new change set and make it the current one.'. true}.!
{#TheWorldMenu. #changesMenu. 'browse changed methods'. true}.!
{#TheWorldMenu. #changesMenu. 'Open a message-list browser showing all methods in the current change set'. true}.!
{#TheWorldMenu. #changesMenu. 'check change set for slips'. true}.!
{#TheWorldMenu. #changesMenu. 'Check the current change set for halts, references to the Transcript, etc., and if any such thing is found, open up a message-list browser detailing all possible slips.'. true}.!
{#TheWorldMenu. #changesMenu. 'simple change sorter'. true}.!
{#TheWorldMenu. #changesMenu. 'Open a 3-paned changed-set viewing tool'. true}.!
{#TheWorldMenu. #changesMenu. 'dual change sorter'. true}.!
{#TheWorldMenu. #changesMenu. 'Open a change sorter that shows you two change sets at a time, making it easy to copy and move methods and classes between them.'. true}.!
{#TheWorldMenu. #changesMenu. 'find a change sorter (C)'. true}.!
{#TheWorldMenu. #changesMenu. 'Brings an open change sorter to the front, creating one if necessary, and makes it the active window'. true}.!
{#TheWorldMenu. #changesMenu. 'browse recent submissions'. true}.!
{#TheWorldMenu. #changesMenu. 'Open a new recent-submissions browser.  A recent-submissions browser is a message-list browser that shows the most recent methods that have been submitted.  If you submit changes within that browser, it will keep up-to-date, always showing the most recent submissions.'. true}.!
{#TheWorldMenu. #changesMenu. 'find recent submissions (R)'. true}.!
{#TheWorldMenu. #changesMenu. 'Make an open recent-submissions browser be the front-window, expanding a collapsed one or creating a new one if necessary.  A recent-submissions browser is a message-list browser that shows the most recent methods that have been submitted, latest first.  If you submit changes within that browser, it will keep up-to-date, always showing the most recent submissions at the top of the browser.'. true}.!
{#TheWorldMenu. #changesMenu. 'recently logged changes...'. true}.!
{#TheWorldMenu. #changesMenu. 'Open a change-list browser on the latter part of the changes log.  You can use this browser to recover logged changes which were not saved in your image, in the event of a crash or other interruption.'. true}.!
{#TheWorldMenu. #changesMenu. 'recent log file...'. true}.!
{#TheWorldMenu. #changesMenu. 'Create a file holding the logged changes (going as far back as you wish), and open a window on that file.'. true}.!
{#TheWorldMenu. #changesMenu. 'save world as morph file'. true}.!
{#TheWorldMenu. #changesMenu. 'Save a file that, when reloaded, reconstitutes the current World.'. true}.!
{#TheWorldMenu. #changesMenu. 'isolate changes of this project'. true}.!
{#TheWorldMenu. #changesMenu. 'Isolate this project and its subprojects from the rest of the system.  Changes to methods here will be revoked when you leave this project.'. true}.!
{#TheWorldMenu. #changesMenu. 'propagate changes upward'. true}.!
{#TheWorldMenu. #changesMenu. 'The changes made in this isolated project will propagate to projects up to the next isolation layer.'. true}.!
{#TheWorldMenu. #cleanUpWorld. 'This will remove all windows except those
containing unsubmitted text edits, and will
also remove all non-window morphs (other
than flaps) found on the desktop.  Are you
sure you want to do this?'. true}.!
{#TheWorldMenu. #debugMenu. 'debug...'. true}.!
{#TheWorldMenu. #debugMenu. 'inspect world'. true}.!
{#TheWorldMenu. #debugMenu. 'explore world'. true}.!
{#TheWorldMenu. #debugMenu. 'inspect model'. true}.!
{#TheWorldMenu. #debugMenu. 'start MessageTally'. true}.!
{#TheWorldMenu. #debugMenu. 'start/browse MessageTally'. true}.!
{#TheWorldMenu. #debugMenu. 'open process browser'. true}.!
{#TheWorldMenu. #debugMenu. 'start drawing again'. true}.!
{#TheWorldMenu. #debugMenu. 'start stepping again'. true}.!
{#TheWorldMenu. #debugMenu. 'call #tempCommand'. true}.!
{#TheWorldMenu. #debugMenu. 'define #tempCommand'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'flaps'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Whether prevailing flaps should be shown in the project right now or not.'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'make a new flap'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Create a new flap.  You can later make it into a shared flap is you wish.'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'install default shared flaps'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Create the default set of shared flaps'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'install etoy flaps'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Put up the default etoy flaps: a custom Suplies flap and the Navigator flap'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'put shared flaps on bottom'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Group all the standard shared flaps along the bottom edge of the screen'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'destroy all shared flaps'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Destroy all the shared flaps and disable their use in all projects.'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'about flaps...'. true}.!
{#TheWorldMenu. #formulateFlapsMenu:. 'Gives a window full of details about how to use flaps.'. true}.!
{#TheWorldMenu. #helpMenu. 'enable'. true}.!
{#TheWorldMenu. #helpMenu. 'disable'. true}.!
{#TheWorldMenu. #helpMenu. 'help...'. true}.!
{#TheWorldMenu. #helpMenu. 'about this system...'. true}.!
{#TheWorldMenu. #helpMenu. 'current version information.'. true}.!
{#TheWorldMenu. #helpMenu. 'update code from server'. true}.!
{#TheWorldMenu. #helpMenu. 'load latest code updates via the internet'. true}.!
{#TheWorldMenu. #helpMenu. 'preferences...'. true}.!
{#TheWorldMenu. #helpMenu. 'view and change various options.'. true}.!
{#TheWorldMenu. #helpMenu. 'set language...'. true}.!
{#TheWorldMenu. #helpMenu. 'choose the language in which tiles should be displayed.'. true}.!
{#TheWorldMenu. #helpMenu. ' genie'. true}.!
{#TheWorldMenu. #helpMenu. ' gesture recognizer for the world''s current hand'. true}.!
{#TheWorldMenu. #helpMenu. 'genie gesture dictionaries'. true}.!
{#TheWorldMenu. #helpMenu. 'edit or inspect gesture dictionaries'. true}.!
{#TheWorldMenu. #helpMenu. 'choose genie text dictionary'. true}.!
{#TheWorldMenu. #helpMenu. 'select the dictionary used for text input'. true}.!
{#TheWorldMenu. #helpMenu. 'genie display properties'. true}.!
{#TheWorldMenu. #helpMenu. 'edit or inspect display properies'. true}.!
{#TheWorldMenu. #helpMenu. 'command-key help'. true}.!
{#TheWorldMenu. #helpMenu. 'summary of keyboard shortcuts.'. true}.!
{#TheWorldMenu. #helpMenu. 'world menu help'. true}.!
{#TheWorldMenu. #helpMenu. 'helps find menu items buried in submenus.'. true}.!
{#TheWorldMenu. #helpMenu. 'font size summary'. true}.!
{#TheWorldMenu. #helpMenu. 'summary of names and sizes of available fonts.'. true}.!
{#TheWorldMenu. #helpMenu. 'useful expressions'. true}.!
{#TheWorldMenu. #helpMenu. 'a window full of useful expressions.'. true}.!
{#TheWorldMenu. #helpMenu. 'annotation setup...'. true}.!
{#TheWorldMenu. #helpMenu. 'Click here to get a little window that will allow you to specify which types of annotations, in which order, you wish to see in the annotation panes of browsers and other tools'. true}.!
{#TheWorldMenu. #helpMenu. 'graphical imports'. true}.!
{#TheWorldMenu. #helpMenu. 'view the global repository called ImageImports; you can easily import external graphics into ImageImports via the FileList'. true}.!
{#TheWorldMenu. #helpMenu. 'standard graphics library'. true}.!
{#TheWorldMenu. #helpMenu. 'lets you view and change the system''s standard library of graphics.'. true}.!
{#TheWorldMenu. #helpMenu. 'telemorphic...'. true}.!
{#TheWorldMenu. #helpMenu. 'commands for doing multi-machine "telemorphic" experiments'. true}.!
{#TheWorldMenu. #helpMenu. 'turning sound off will completely disable Squeak''s use of sound.'. true}.!
{#TheWorldMenu. #helpMenu. 'definition for...'. true}.!
{#TheWorldMenu. #helpMenu. 'if connected to the internet, use this to look up the definition of an English word.'. true}.!
{#TheWorldMenu. #helpMenu. 'set author initials...'. true}.!
{#TheWorldMenu. #helpMenu. 'supply initials to be used to identify the author of code and other content.'. true}.!
{#TheWorldMenu. #helpMenu. 'vm statistics'. true}.!
{#TheWorldMenu. #helpMenu. 'obtain some intriguing data about the vm.'. true}.!
{#TheWorldMenu. #helpMenu. 'purge undo records'. true}.!
{#TheWorldMenu. #helpMenu. 'save space by removing all the undo information remembered in all projects.'. true}.!
{#TheWorldMenu. #helpMenu. 'space left'. true}.!
{#TheWorldMenu. #helpMenu. 'perform a full garbage-collection and report how many bytes of space remain in the image.'. true}.!
{#TheWorldMenu. #loadProject. '*.pr'. false}.!
{#TheWorldMenu. #loadProject. 'Select a File:'. true}.!
{#TheWorldMenu. #newGlobalFlapString. 'make a new shared flap'. true}.!
{#TheWorldMenu. #newMorph. 'Add a new morph'. true}.!
{#TheWorldMenu. #newMorph. 'from paste buffer'. true}.!
{#TheWorldMenu. #newMorph. 'from alphabetical list'. true}.!
{#TheWorldMenu. #newMorph. 'from a file...'. true}.!
{#TheWorldMenu. #newMorph. 'grab rectangle from screen'. true}.!
{#TheWorldMenu. #newMorph. 'grab with lasso from screen'. true}.!
{#TheWorldMenu. #newMorph. 'grab rubber band from screen'. true}.!
{#TheWorldMenu. #newMorph. 'grab flood area from screen'. true}.!
{#TheWorldMenu. #newMorph. 'make new drawing'. true}.!
{#TheWorldMenu. #newMorph. 'make link to project...'. true}.!
{#TheWorldMenu. #newMorph. 'Morphic-'. false}.!
{#TheWorldMenu. #newMorph. 'Morphic-Menus'. false}.!
{#TheWorldMenu. #newMorph. 'Morphic-Support'. false}.!
{#TheWorldMenu. #openMenu. 'open...'. true}.!
{#TheWorldMenu. #openMenu. 'browser (b)'. true}.!
{#TheWorldMenu. #openMenu. 'A five-paned tool that lets you see all the code in the system'. true}.!
{#TheWorldMenu. #openMenu. 'package-pane browser'. true}.!
{#TheWorldMenu. #openMenu. 'Similar to the regular browser, but adds an extra pane at top-left that groups class-categories that start with the same prefix'. true}.!
{#TheWorldMenu. #openMenu. 'workspace (k)'. true}.!
{#TheWorldMenu. #openMenu. 'A window for composing text'. true}.!
{#TheWorldMenu. #openMenu. 'file list'. true}.!
{#TheWorldMenu. #openMenu. 'A tool allowing you to browse any file'. true}.!
{#TheWorldMenu. #openMenu. 'file...'. true}.!
{#TheWorldMenu. #openMenu. 'Lets you open a window on a single file'. true}.!
{#TheWorldMenu. #openMenu. 'transcript (t)'. true}.!
{#TheWorldMenu. #openMenu. 'A window used to report messages sent to Transcript'. true}.!
{#TheWorldMenu. #openMenu. 'method finder'. true}.!
{#TheWorldMenu. #openMenu. 'A tool for discovering methods'. true}.!
{#TheWorldMenu. #openMenu. 'message names (W)'. true}.!
{#TheWorldMenu. #openMenu. 'A tool for finding and editing methods that contain any given keyword in their names.'. true}.!
{#TheWorldMenu. #openMenu. 'simple change sorter'. true}.!
{#TheWorldMenu. #openMenu. 'A tool allowing you to view the methods in a single change set'. true}.!
{#TheWorldMenu. #openMenu. 'dual change sorter'. true}.!
{#TheWorldMenu. #openMenu. 'A tool allowing you to compare and manipulate two change sets concurrently'. true}.!
{#TheWorldMenu. #openMenu. 'mvc project'. true}.!
{#TheWorldMenu. #openMenu. 'Creates a new project of the classic "mvc" style'. true}.!
{#TheWorldMenu. #openMenu. 'morphic project'. true}.!
{#TheWorldMenu. #openMenu. 'Creates a new morphic project'. true}.!
{#TheWorldMenu. #openTranscript. 'Transcript'. true}.!
{#TheWorldMenu. #openWorkspace. 'Workspace'. true}.!
{#TheWorldMenu. #printWorldOnFile. 'SqueakScreen'. true}.!
{#TheWorldMenu. #projectMenu. 'projects...'. true}.!
{#TheWorldMenu. #projectMenu. 'save on server (also makes a local copy)'. true}.!
{#TheWorldMenu. #projectMenu. 'save to a different server'. true}.!
{#TheWorldMenu. #projectMenu. 'save project on local file only'. true}.!
{#TheWorldMenu. #projectMenu. 'see if server version is more recent...'. true}.!
{#TheWorldMenu. #projectMenu. 'load project from file...'. true}.!
{#TheWorldMenu. #projectMenu. 'show project hierarchy'. true}.!
{#TheWorldMenu. #projectMenu. 'Opens a window that shows names and relationships of all the projects in your system.'. true}.!
{#TheWorldMenu. #projectMenu. 'create new mvc project'. true}.!
{#TheWorldMenu. #projectMenu. 'create new morphic project'. true}.!
{#TheWorldMenu. #projectMenu. 'go to previous project'. true}.!
{#TheWorldMenu. #projectMenu. 'go to next project'. true}.!
{#TheWorldMenu. #projectMenu. 'jump to project...'. true}.!
{#TheWorldMenu. #projectMenu. 'save for future revert'. true}.!
{#TheWorldMenu. #projectMenu. 'revert to saved copy'. true}.!
{#TheWorldMenu. #projectThumbnail. ' (current)'. true}.!
{#TheWorldMenu. #projectThumbnail. 'Select a project'. true}.!
{#TheWorldMenu. #projectThumbnail. 'can''t seem to find that project'. true}.!
{#TheWorldMenu. #quitSession. 'Save changes before quitting?'. true}.!
{#TheWorldMenu. #readMorphFromAFile. '.morph'. false}.!
{#TheWorldMenu. #readMorphFromAFile. 'Choose a file
to load'. true}.!
{#TheWorldMenu. #readMorphFromAFile. 'Sorry, no suitable files found
(names should end with .morph, .gif,
.bmp, .jpeg, .jpe, .jp, or .form)'. true}.!
{#TheWorldMenu. #readMorphFromAFile. 'unrecognized image file format'. true}.!
{#TheWorldMenu. #readMorphFromAFile. '.morph'. false}.!
{#TheWorldMenu. #remoteMenu. 'Telemorphic'. true}.!
{#TheWorldMenu. #remoteMenu. 'local host address'. true}.!
{#TheWorldMenu. #remoteMenu. 'connect remote user'. true}.!
{#TheWorldMenu. #remoteMenu. 'disconnect remote user'. true}.!
{#TheWorldMenu. #remoteMenu. 'disconnect all remote users'. true}.!
{#TheWorldMenu. #saveWorldInFile. 'File name for this morph?'. true}.!
{#TheWorldMenu. #saveWorldInFile. '.morph'. false}.!
{#TheWorldMenu. #scriptingMenu. 'authoring tools...'. true}.!
{#TheWorldMenu. #scriptingMenu. 'objects (o)'. true}.!
{#TheWorldMenu. #scriptingMenu. 'A searchable source of new objects.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'view trash contents'. true}.!
{#TheWorldMenu. #scriptingMenu. 'The place where all your trashed morphs go.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'empty trash can'. true}.!
{#TheWorldMenu. #scriptingMenu. 'Empty out all the morphs that have accumulated in the trash can.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'new scripting area'. true}.!
{#TheWorldMenu. #scriptingMenu. 'A window set up for simple scripting.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'summary of scripts'. true}.!
{#TheWorldMenu. #scriptingMenu. 'Produces a summary of scripted objects in the project, and all of their scripts.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'status of scripts'. true}.!
{#TheWorldMenu. #scriptingMenu. 'Lets you view the status of all the scripts belonging to all the scripted objects of the project.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'remove all viewers'. true}.!
{#TheWorldMenu. #scriptingMenu. 'Remove all the Viewers from this project.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'unlock locked objects'. true}.!
{#TheWorldMenu. #scriptingMenu. 'If any items on the world desktop are currently locked, unlock them.'. true}.!
{#TheWorldMenu. #scriptingMenu. 'unhide hidden objects'. true}.!
{#TheWorldMenu. #scriptingMenu. 'If any items on the world desktop are currently hidden, make them visible.'. true}.!
{#TheWorldMenu. #setDisplayDepth. '<off>'. false}.!
{#TheWorldMenu. #setDisplayDepth. '<on>'. false}.!
{#TheWorldMenu. #setDisplayDepth. '  (little endian)'. true}.!
{#TheWorldMenu. #setDisplayDepth. '  (big endian)'. true}.!
{#TheWorldMenu. #setDisplayDepth. 'Choose a display depth'. true}.!
{#TheWorldMenu. #startMessageTally. 'MessageTally will start now,
and stop when the cursor goes
to the top of the screen'. true}.!
{#TheWorldMenu. #startThenBrowseMessageTally. 'MessageTally will start now,
and stop when the cursor goes
to the top of the screen'. true}.!
{#TheWorldMenu. #toggleFlapSuppressionInProject. 'This is an obsolete menu -- please delete it'. true}.!
{#TheWorldMenu. #uniTilesClassicString. '<no>classic tiles'. true}.!
{#TheWorldMenu. #uniTilesClassicString. '<yes>classic tiles'. true}.!
{#TheWorldMenu. #windowsMenu. 'windows'. true}.!
{#TheWorldMenu. #windowsMenu. 'find window'. true}.!
{#TheWorldMenu. #windowsMenu. 'Presents a list of all windows; if you choose one from the list, it becomes the active window.'. true}.!
{#TheWorldMenu. #windowsMenu. 'find changed browsers...'. true}.!
{#TheWorldMenu. #windowsMenu. 'Presents a list of browsers that have unsubmitted changes; if you choose one from the list, it becomes the active window.'. true}.!
{#TheWorldMenu. #windowsMenu. 'find changed windows...'. true}.!
{#TheWorldMenu. #windowsMenu. 'Presents a list of all windows that have unsubmitted changes; if you choose one from the list, it becomes the active window.'. true}.!
{#TheWorldMenu. #windowsMenu. 'find a transcript (t)'. true}.!
{#TheWorldMenu. #windowsMenu. 'Brings an open Transcript to the front, creating one if necessary, and makes it the active window'. true}.!
{#TheWorldMenu. #windowsMenu. 'find a fileList (L)'. true}.!
{#TheWorldMenu. #windowsMenu. 'Brings an open fileList  to the front, creating one if necessary, and makes it the active window'. true}.!
{#TheWorldMenu. #windowsMenu. 'find a change sorter (C)'. true}.!
{#TheWorldMenu. #windowsMenu. 'Brings an open change sorter to the front, creating one if necessary, and makes it the active window'. true}.!
{#TheWorldMenu. #windowsMenu. 'find message names (W)'. true}.!
{#TheWorldMenu. #windowsMenu. 'Brings an open MessageNames window to the front, creating one if necessary, and makes it the active window'. true}.!
{#TheWorldMenu. #windowsMenu. 'stagger: new windows positioned so you can see a portion of each one.
                tile: new windows positioned so that they do not overlap others, if possible.'. true}.!
{#TheWorldMenu. #windowsMenu. 'collapse all windows'. true}.!
{#TheWorldMenu. #windowsMenu. 'Reduce all open windows to collapsed forms that only show titles.'. true}.!
{#TheWorldMenu. #windowsMenu. 'expand all windows'. true}.!
{#TheWorldMenu. #windowsMenu. 'Expand all collapsed windows back to their expanded forms.'. true}.!
{#TheWorldMenu. #windowsMenu. 'close top window (w)'. true}.!
{#TheWorldMenu. #windowsMenu. 'Close the topmost window if possible.'. true}.!
{#TheWorldMenu. #windowsMenu. 'send top window to back (\)'. true}.!
{#TheWorldMenu. #windowsMenu. 'Make the topmost window become the backmost one, and activate the window just beneath it.'. true}.!
{#TheWorldMenu. #windowsMenu. 'move windows onscreen'. true}.!
{#TheWorldMenu. #windowsMenu. 'Make all windows fully visible on the screen'. true}.!
{#TheWorldMenu. #windowsMenu. 'delete unchanged windows'. true}.!
{#TheWorldMenu. #windowsMenu. 'Deletes all windows that do not have unsaved text edits.'. true}.!
{#TheWorldMenu. #windowsMenu. 'delete non-windows'. true}.!
{#TheWorldMenu. #windowsMenu. 'Deletes all non-window morphs lying on the world.'. true}.!
{#TheWorldMenu. #windowsMenu. 'delete both of the above'. true}.!
{#TheWorldMenu. #windowsMenu. 'deletes all unchanged windows and also all non-window morphs lying on the world, other than flaps.'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'help'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'changes'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'open'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'debug'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'projects'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'authoring tools'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'windows'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'playfield options'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'appearance'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'flaps'. true}.!
{#TheWorldMenu. #worldMenuHelp. ' - '. false}.!
{#TheWorldMenu. #worldMenuHelp. 'keep this menu up'. true}.!
{#TheWorldMenu. #worldMenuHelp. 'Where in the world menu is...'. true}.!


More information about the Squeak-dev mailing list