{The Language Database Mechanism
The jstools applications (and other well-behaved applications built with the jldb package) support localisation of text (labels, command names, prompts, menu choices, etc.) presented by the application.  That is, just because the author of the application wrote it in English (or German) doesn't mean you have to use it in English (or German) - it can be customised to display it's messages and labels in any language.

This document describes the language database mechanism implemented by version 0.1 of the jldb package.  This document focusses on the use of language databases by the jstools applications, which require Tk, but the jldb package itself does not require Tk, so this mechanism can be used for non-graphical applications as well.
Introduction
When jstools applications display natural-language strings, they look them up with a key in a database, called the language database.  They then display the result.  So in order to make jedit display strings in Romanian, you need a Romanian natural-language database for jedit.  (Actually, you also need a natural-language database for the strings displayed by the jstools libraries, which jedit uses, and a font capable of displaying Romanian accented characters.)

Assuming the application used the jldb mechanism consistently for displaying strings to the user, this database can be provided by the author or distributor of the application, by the person who installed it at your site, or by you, the end user of the application.  Moreover, if you already have a database that has most of what you want, but you want to make a few changes in it, you don't need to create an entirely new database, you can just create one that has the changes you want in it and inherit most of your strings from the `parent' database.  (You could handle differences between Australian and US English this way - or you could just change a few strings to match terminology used at your site, or to make them more concise or more descriptive.)
The Language Database Hierarchy
Language databases are organised into a tree-structured hierarchy according to how specific they are.  This hierarchy is reflected in their names.

The least specific form of a language database name is just the official ISO 639 two-letter abbreviation for a language, such as en for English or fr for French.  Optionally, a two-letter country abbreviation can be appended, separated by a period, such as es.ar for Argentine Spanish or la.fr for Latin as spoken in Gaul.  (The country abbreviation is the same as a two-letter top-level Internet domain name, which mostly agrees with the ISO 3166 standard, except for uk instead of gb for Great Britain.)  This can optionally be followed by another period and an arbitrary string to identify a more specific language practise, such as en.us.mit for English as used at the Massachusetts Institute of Technology.  The process of tacking on more specific identifiers can continue indefinitely, so in theory you could specify US English as spoken by the President as en.us.dc.whitehouse.president, but in practise I suspect three levels - language, country, and perhaps an additional specifier for an organisation, a region within a country, or an individual - will be enough for most people.

When an application starts, it tries to read in your preferred language database, and all more general `parent' databases, starting with the most general database.  For instance, if your preferred database is en.uk.susan, then the application will first try to read in the en database, then the en.uk database, and finally the en.uk.susan database.  That way, strings specified in en.uk override strings in en, and strings in en.uk.susan override strings in either en or en.uk.  Only those strings which differ between UK English and other varieties of English need be specified in en.uk, and Susan only needs to specify those strings she wants to change in en.uk.susan.

It's perfectly fine for not all language databases in the hierarchy to exist.  For instance, if Sam's language preference is en.us.mit.sam and the are language databases called en and en.us.mit.sam for a particular application, but no databases called en.us or en.us.mit, then both existing databases will be read, and strings in en.us.mit.sam will override definitions in en.

If no language database at all is found for an application, it will use defaults specified by the application's author.
Where Databases Are Found
Language databases are searched for in the following directories, in order:
· ~/.tk/jldb/app
· ~/.tk/jldb/default
· jstools_library/pkg/jldb/app
· jstools_library/pkg/jldb/default
where app is the name of the application or package, and jstools_library is the place where the jstools library files are installed, typically /usr/lib/jstools.

The directory path above is searched for each database (e.g., for de and then again for de.ch), but when a particular database is found in one of these directories, it is used, and the remaining directories are skipped for this database (although they may be searched again for a more specific database).  An example will make this clearer:
An Example
Suppose you are running an application called notebook and you have a database called en.us.bill in your ~/.tk/jldb/notebook directory and there's also a system-wide English-language database for the application in /usr/local/jstools/lib/jldb/notebook/en (but no en.us database).  If your language database preference is en.us.bill, then when it starts, the notebook application will first look for a database named en.  It will check your ~/.tk/jldb/notebook and ~/.tk/jldb/default directories, but won't find anything.  It will then check /usr/local/jstools/jldb/notebook and find an en database there, so it will read it in.  It won't check /usr/local/jstools/lib/jldb/default, because it's already found a database.  Then it will search for a database named en.us, but (for our example) no such database will be found in any of the directories.  Finally, it will search for a database called en.us.bill.  This will be found in the first directory checked: ~/.tk/jldb/notebook, so it will be read in and none of the other directories will be checked.  The net result is that, presumably, most of the strings in the application are defined in the file /usr/local/jstools/lib/jldb/notebook/en, but some of them are overridden by definitions in the file ~/.tk/jldb/notebook/en.us.bill.  (Alternatively, you could have copied the entire en database for notebook to your directory and modified it, but it's better just to override the strings you want to change.)
Application and Library Databases
Actually, even the above is a slight simplification.  When an application that uses the jstools libraries starts up, it actually reads in two sets of databases: one for the jstools libraries and one for the application itself.  The library database is searched using jstools as the application/package name (i.e., it's searched for in ~/.tk/jldb/jstools, ~/.tk/jldb/default, jstools_library/pkg/jldb/jstools, and jstools_library/pkg/jldb/default).  Strings from both sets of files are loaded into the application.  The jstools library database is read first, so strings in any of the application-specific databases will override strings in any of the jstools library databases.  (E.g., a string in notebook/en can override a string in jstools/en.us.dc.whitehouse.)  It is intended, however, that there should be no conflicts - the jstools databases are for strings used by procedures in the jstools library, and the application-specific databases are for strings used by the application code itself.
Creating a Database for a New Language
To create a database for a new language for a jstools application, you should copy an existing database (provided by the application author) to a new name, and modify the natural-language strings.  You should use the two-letter language code in the ISO 639 international standard for your language as the name of your new database.  You will then need to choose the appropriate database as your preferred language in the jstools Global Preferences panel in order to see the new strings.  You need to do this both for the application's own database and for the database for the jstools libraries.

For instance, if you wanted to translate the strings used in jdoc into Welsh, you would copy the provided English-language database from (perhaps) /usr/local/lib/jstools/jldb/jdoc/en to /usr/local/lib/jstools/jldb/jdoc/cy (because cy is the two-letter code for Welsh in ISO 639) and replace the English strings with Welsh ones.  (Alternatively, you can copy it to ~/.tk/jldb/jdoc/cy, in case you don't have write permission under /usr/local.)  You'd also need to copy and modify the jstools library database, (e.g.) /usr/local/lib/jstools/jldb/jstools/en, unless you'd already done so for a different application.

For details of the syntax used in language databases, you should see the documentation for the ::jldb::set_strings procedure in the jldb package.  To summarise, however, the bulk of the database file consists of a series of entries, where each entry starts with a key.  The key is fixed and should not be changed, even if it looks like a natural-language string, because it's how the application looks things up in the database.  The second element of an entry is a string, which is the natural-language expression corresponding to the key in this particular language.  (The string can contain embedded references to Tcl variables or Tcl commands, which will be substituted before the string is used.)

Some keys have up to three additional values as well as the string: a numeric underline position in the string (used to indicate an Alt-key shortcut in a menu entry), a Tk event specification used to create an accelerator binding (not necessarily involving the Alt key), and a short string to indicate the accelerator binding in a menu entry.  All of these are optional.  Again, for more details, see the documentation for the jldb package.

If you translate strings for any of the jstools applications (or the library) into any other languages, I would be very grateful to receive copies, so I can incorporate support for languages other than English into future releases.
Customising the Strings Displayed in an Existing Language
To customise the strings displayed in an existing language database for a particular language group (whether that's your country, your region, your site, or just your own personal preferences), you create a new language database (named as specified above in The Language Database Hierarchy) which contains just those strings you want to override.  For instance, if you were adapting an application that had something to do with cars, which was provided with an English language database (which happens to contain American English strings), you might take the en database (English, which variety not defined) containing:
<pre>
        {tires {Tires}}
        {hood {Hood}}
        {seats {Seats}}
        {paint {Paint Job}}
        {windows {Windows}}
        {radio {Radio}}
        {red {Red}}
        {black {Black}}
        {silver {Silver}}
        {gray {Gray}}
        {gold {Gold}}
        {yellow {Yellow}}
</pre>
and create a new database en.uk specifying just those strings you want to change:
<pre>
        {tires {Tyres}}
        {hood {Bonnet}}
        {gray {Grey}}
</pre>
Now, assuming your new database is installed system-wide, anyone whose language preference is en (or en.us, assuming there isn't a separate en.us database - or en.za, for that matter) will see the original strings in the database distributed with the application, but anyone whose language preference is en.uk will see the modified versions of those strings that differ.} {{{list:level:1 {21.0 25.0}} {jdoc:anchor:anchorname {5.0 6.0 9.0 10.0 19.0 20.0 30.0 31.0 32.0 33.0 42.0 43.0}} {sel {33.417 33.453}} {jdoc:xref:link {2.4 2.11 2.73 2.89 4.168 4.175 6.186 6.191 12.73 12.104 12.175 12.208 12.329 12.349 31.84 31.105 33.213 33.241 33.417 33.453 33.573 33.594 35.61 35.65 37.95 37.114 37.128 37.144 39.423 39.439 43.258 43.289}} {richtext:font:roman {2.0 2.4 2.11 2.77 2.81 4.90 4.94 4.168 4.175 4.216 4.220 5.0 6.0 6.5 6.12 6.85 6.88 6.186 6.191 6.271 6.276 6.365 6.372 6.390 6.395 8.34 8.38 9.0 10.0 12.129 12.131 12.147 12.149 12.257 12.262 12.288 12.293 12.469 12.471 12.483 12.485 12.636 12.645 12.864 12.893 14.209 14.220 14.273 14.275 14.295 14.300 14.327 14.338 14.381 14.386 14.407 14.409 14.426 14.437 14.465 14.467 14.471 14.476 14.582 14.587 14.658 14.669 16.125 16.138 16.177 16.179 16.184 16.197 16.252 16.257 16.261 16.270 16.330 16.343 16.373 16.375 19.0 20.0 21.2 21.16 22.2 22.20 23.2 23.30 24.2 24.34 25.6 25.9 25.57 25.72 25.96 25.103 25.143 25.159 27.41 27.45 27.66 27.68 27.88 27.93 28.0 29.0 29.46 29.54 29.86 29.96 29.105 29.124 29.215 29.254 29.263 29.268 29.321 29.331 29.358 29.366 29.416 29.418 29.440 29.459 29.464 29.482 29.541 29.573 29.586 29.588 29.644 29.679 29.762 29.767 29.896 29.906 29.960 29.979 29.1154 29.1193 29.1254 29.1284 29.1336 29.1338 29.1352 29.1360 30.0 31.0 31.88 31.95 31.173 31.180 31.267 31.274 31.335 31.353 31.355 31.373 31.375 31.407 31.413 31.445 31.519 31.526 31.651 31.658 31.698 31.709 31.735 31.762 31.831 31.838 31.891 31.898 32.0 33.0 33.46 33.53 33.421 33.428 33.577 33.584 35.61 35.65 35.147 35.182 35.186 35.221 35.231 35.233 35.364 35.382 35.430 35.440 35.483 35.490 35.516 35.554 37.95 37.114 37.132 37.136 37.264 37.267 37.466 37.472 39.132 39.136 39.261 39.264 39.427 39.431 41.40 41.47 42.0 43.0 43.258 43.289 43.559 43.561 58.26 58.31 64.94 64.96 64.101 64.106 64.140 64.145 64.160 64.165 64.304 64.309 64.370}} {richtext:font:italic {6.85 6.88 21.13 21.16 23.2 23.17 23.27 23.30 24.2 24.17 25.6 25.9 25.57 25.72 27.41 27.45 31.375 31.390 31.413 31.428 37.264 37.267 37.466 37.472}} {richtext:font:bold {2.4 2.11 2.77 2.81 4.90 4.94 4.168 4.175 4.216 4.220 6.5 6.12 6.186 6.191 6.271 6.276 6.365 6.372 6.390 6.395 8.34 8.38 21.2 21.13 22.2 22.20 23.17 23.27 24.17 24.34 25.96 25.103 25.143 25.159 29.105 29.124 29.215 29.254 29.440 29.459 29.464 29.482 29.541 29.573 29.644 29.679 29.960 29.979 29.1154 29.1193 29.1254 29.1284 31.88 31.95 31.173 31.180 31.267 31.274 31.335 31.353 31.355 31.373 31.390 31.407 31.428 31.445 31.519 31.526 31.651 31.658 31.698 31.709 31.735 31.762 31.831 31.838 31.891 31.898 33.46 33.53 33.421 33.428 33.577 33.584 35.61 35.65 35.147 35.182 35.186 35.221 35.364 35.382 35.430 35.440 35.483 35.490 35.516 35.554 37.132 37.136 39.132 39.136 39.261 39.264 39.427 39.431 41.40 41.47}} {richtext:font:bolditalic {43.258 43.289}} {richtext:font:typewriter {12.129 12.131 12.147 12.149 12.257 12.262 12.288 12.293 12.469 12.471 12.483 12.485 12.636 12.645 12.864 12.893 14.209 14.220 14.273 14.275 14.295 14.300 14.327 14.338 14.381 14.386 14.407 14.409 14.426 14.437 14.465 14.467 14.471 14.476 14.582 14.587 14.658 14.669 16.125 16.138 16.177 16.179 16.184 16.197 16.252 16.257 16.261 16.270 16.330 16.343 16.373 16.375 27.66 27.68 27.88 27.93 29.46 29.54 29.86 29.96 29.263 29.268 29.321 29.331 29.358 29.366 29.416 29.418 29.586 29.588 29.762 29.767 29.896 29.906 29.1336 29.1338 29.1352 29.1360 35.231 35.233 37.95 37.114 43.559 43.561 58.26 58.31 64.94 64.96 64.101 64.106 64.140 64.145 64.160 64.165 64.304 64.309}} {richtext:font:heading0 {1.0 2.0}} {richtext:font:heading1 {5.0 6.0 9.0 10.0 19.0 20.0 30.0 31.0 32.0 33.0 42.0 43.0}} {richtext:font:heading2 {28.0 29.0}} {jdoc:link:jstools.jdoc {2.4 2.11 4.168 4.175}} {jdoc:link:jslibraries.jdoc {31.84 31.105 33.573 33.594}} {jdoc:link:jedit.jdoc {6.186 6.191}} {jdoc:anchorname:Introduction {5.0 6.0}} {jdoc:anchorname:The_Language_Database_Hierarchy {9.0 10.0}} {jdoc:anchorname:Where_Databases_Are_Found {19.0 20.0}} {jdoc:anchorname:Application_and_Library_Databases {30.0 31.0}} {jdoc:anchorname:Creating_a_Database_for_a_New_Language {32.0 33.0}} {jdoc:anchorname:Customising_the_Strings_Displayed_in_an_Existing_Language {42.0 43.0}} {jdoc:link:jdoc.jdoc {35.61 35.65}} {jdoc:link:#The_Language_Database_Hierarchy {43.258 43.289}} {jdoc:link:jldb.tcl.html {2.73 2.89 37.128 37.144 39.423 39.439}} {jdoc:link:language_codes.jhtml {33.213 33.241}} {jdoc:link:language_codes.html {12.73 12.104}} {jdoc:link:country_codes.jhtml {12.175 12.208 12.329 12.349}} {list:1:ul {21.0 25.0}} {jdoc:link:jldb.tcl.html#::jldb::set_strings {37.95 37.114}} {special:list_item:1 {21.0 21.1 22.0 22.1 23.0 23.1 24.0 24.1}} {special:html:literal {44.0 58.0 59.0 64.0}} {jdoc:link:prefpanel.html {33.417 33.453}}} {{convert:place:31.84 31.84} {convert:place:16.197 16.197} {convert:place:58.31 58.31} {convert:place:4.175 4.188} {convert:place:31.88 31.88} {convert:place:29.979 29.979} {richptr 4.0} {convert:place:29.46 29.46} {convert:place:33.0 33.0} {convert:place:14.300 14.300} {convert:place:31.95 31.95} {convert:place:29.358 29.358} {current 47.23} {matchend 31.512} {convert:place:29.54 29.54} {convert:place:14.295 14.295} {convert:place:29.679 29.679} {convert:place:29.366 29.366} {convert:place:29.0 29.0} {convert:place:30.0 30.0} {convert:place:31.173 31.173} {convert:place:29.1336 29.1336} {convert:place:6.12 6.12} {convert:place:29.1338 29.1338} {convert:place:33.417 33.417} {convert:place:4.216 4.216} {convert:place:5.0 5.0} {convert:place:31.180 31.180} {convert:place:33.421 33.421} {convert:place:21.13 21.13} {convert:place:4.220 4.220} {convert:place:37.95 37.95} {convert:place:14.327 14.327} {convert:place:31.823 31.831} {convert:place:21.16 21.16} {convert:place:31.511 31.519} {convert:place:33.428 33.428} {convert:place:29.1352 29.1352} {convert:place:37.264 37.264} {convert:place:31.830 31.838} {convert:place:16.252 16.252} {convert:place:12.104 12.104} {convert:place:29.86 29.86} {convert:place:37.267 37.267} {convert:place:2.0 2.0} {convert:place:31.518 31.526} {convert:place:14.338 14.338} {convert:place:23.0 23.0} {convert:place:29.1360 29.1360} {convert:place:16.257 16.257} {convert:place:23.1 23.1} {convert:place:2.4 2.4} {convert:place:23.2 23.2} {convert:place:44.0 44.0} {convert:place:16.261 16.261} {convert:place:14.658 14.658} {convert:place:29.96 29.96} {convert:place:65.0 65.0} {matchstart 31.501} {convert:place:35.364 35.364} {convert:place:29.416 29.416} {convert:place:29.418 29.418} {convert:place:16.270 16.270} {convert:place:29.105 29.105} {abbrevend 31.433} {convert:place:33.453 33.453} {convert:place:43.559 43.559} {convert:place:20.0 20.0} {convert:place:19.0 19.0} {convert:place:14.669 14.669} {convert:place:43.561 43.561} {convert:place:12.129 12.129} {convert:place:12.131 12.131} {convert:place:35.382 35.382} {convert:place:43.258 43.258} {convert:place:29.124 29.124} {convert:place:29.440 29.440} {convert:place:58.0 58.0} {convert:place:6.186 6.186} {convert:place:27.41 27.41} {convert:place:35.61 35.61} {convert:place:12.147 12.147} {convert:place:14.381 14.381} {convert:place:12.149 12.149} {convert:place:6.191 6.191} {convert:place:29.762 29.762} {convert:place:27.45 27.45} {convert:place:35.65 35.65} {convert:place:14.386 14.386} {convert:place:12.469 12.469} {convert:place:31.883 31.891} {convert:place:29.767 29.767} {convert:place:12.471 12.471} {convert:place:64.304 64.304} {convert:place:6.85 6.85} {convert:place:31.890 31.898} {convert:place:29.459 29.459} {convert:place:64.309 64.309} {convert:place:6.88 6.88} {convert:place:25.314 25.160} {convert:place:14.407 14.407} {convert:place:29.464 29.464} {convert:place:10.0 10.0} {convert:place:9.0 9.0} {convert:place:43.289 43.289} {convert:place:14.409 14.409} {convert:place:12.483 12.483} {convert:place:31.267 31.267} {anchor 33.418} {convert:place:31.0 31.0} {convert:place:12.485 12.485} {insert 33.453} {convert:place:39.261 39.261} {convert:place:27.66 27.66} {convert:place:16.330 16.330} {convert:place:35.430 35.430} {convert:place:27.68 27.68} {convert:place:12.175 12.175} {convert:place:39.264 39.264} {convert:place:31.274 31.274} {convert:place:6.0 6.0} {convert:place:35.440 35.440} {abbrevstart 31.433} {convert:place:29.482 29.482} {convert:place:16.343 16.343} {convert:place:14.426 14.426} {convert:place:6.5 6.5} {convert:place:33.213 33.213} {convert:place:64.94 64.94} {convert:place:64.96 64.96} {convert:place:41.40 41.40} {convert:place:27.88 27.88} {convert:place:14.437 14.437} {convert:place:12.208 12.208} {convert:place:27.93 27.93} {convert:place:24.0 24.0} {convert:place:24.1 24.1} {convert:place:41.47 41.47} {convert:place:24.2 24.2} {convert:place:35.147 35.147} {convert:place:29.1154 29.1154} {convert:place:21.0 21.0} {convert:place:21.1 21.1} {convert:place:16.373 16.373} {convert:place:12.73 12.73} {convert:place:33.241 33.241} {convert:place:21.2 21.2} {convert:place:42.0 42.0} {convert:place:16.375 16.375} {convert:place:33.46 33.46} {convert:place:6.271 6.271} {convert:place:31.643 31.651} {convert:place:29.215 29.215} {convert:place:64.370 64.370} {convert:place:14.465 14.465} {convert:place:12.864 12.864} {convert:place:6.276 6.276} {convert:place:33.53 33.53} {convert:place:14.467 14.467} {convert:place:35.483 35.483} {convert:place:31.650 31.658} {convert:place:31.335 31.335} {convert:place:14.471 14.471} {convert:place:33.573 33.573} {convert:place:35.490 35.490} {convert:place:29.541 29.541} {convert:place:59.0 59.0} {convert:place:14.476 14.476} {convert:place:33.577 33.577} {convert:place:35.182 35.182} {convert:place:35.186 35.186} {convert:place:33.584 33.584} {convert:place:31.353 31.353} {convert:place:37.114 37.114} {convert:place:31.355 31.355} {convert:place:29.1193 29.1193} {convert:place:12.257 12.257} {convert:place:25.57 25.57} {convert:place:35.516 35.516} {convert:place:12.262 12.262} {convert:place:4.90 4.90} {convert:place:24.17 24.17} {convert:place:12.893 12.893} {convert:place:33.594 33.594} {convert:place:4.94 4.94} {convert:place:25.103 25.103} {convert:place:64.101 64.101} {convert:place:2.11 2.11} {convert:place:37.128 37.128} {convert:place:32.0 32.0} {convert:place:29.254 29.254} {convert:place:25.72 25.72} {convert:place:37.132 37.132} {convert:place:24.30 24.34} {convert:place:31.373 31.373} {convert:place:64.106 64.106} {convert:place:29.573 29.573} {convert:place:31.375 31.375} {convert:place:31.690 31.698} {convert:place:31.701 31.709} {convert:place:37.136 37.136} {convert:place:35.221 35.221} {convert:place:29.263 29.263} {convert:place:16.125 16.125} {convert:place:14.209 14.209} {convert:place:28.0 28.0} {convert:place:29.896 29.896} {convert:place:29.906 29.906} {convert:place:29.268 29.268} {convert:place:37.144 37.144} {convert:place:12.288 12.288} {convert:place:29.586 29.586} {convert:place:35.231 35.231} {convert:place:29.588 29.588} {convert:place:35.233 35.233} {convert:place:31.390 31.390} {convert:place:12.293 12.293} {convert:place:14.220 14.220} {convert:place:37.466 37.466} {convert:place:16.138 16.138} {convert:place:31.403 31.407} {convert:place:25.96 25.96} {convert:place:35.554 35.554} {convert:place:25.0 25.0} {convert:place:37.472 37.472} {convert:place:31.409 31.413} {convert:place:31.727 31.735} {convert:place:25.6 25.6} {convert:place:23.17 23.17} {convert:place:25.143 25.143} {convert:place:29.1254 29.1254} {convert:place:64.140 64.140} {convert:place:25.9 25.9} {convert:place:1.0 1.0} {convert:place:12.636 12.636} {convert:place:23.23 23.27} {convert:place:31.105 31.105} {convert:place:6.365 6.365} {convert:place:64.145 64.145} {convert:place:22.0 22.0} {convert:place:23.26 23.30} {convert:place:22.1 22.1} {convert:place:22.2 22.2} {convert:place:31.424 31.428} {convert:place:8.34 8.34} {convert:place:43.0 43.0} {convert:place:12.329 12.329} {convert:place:6.372 6.372} {convert:place:12.645 12.645} {convert:place:64.0 64.0} {convert:place:8.38 8.38} {convert:place:39.423 39.423} {convert:place:29.321 29.321} {convert:place:39.427 39.427} {convert:place:64.160 64.160} {convert:place:31.437 31.445} {convert:place:25.165 25.159} {convert:place:31.754 31.762} {convert:place:39.431 39.431} {convert:place:2.73 2.73} {convert:place:16.177 16.177} {convert:place:25.168 25.160} {convert:place:64.165 64.165} {convert:place:2.77 2.77} {convert:place:16.179 16.179} {convert:place:29.644 29.644} {convert:place:6.390 6.390} {convert:place:29.331 29.331} {convert:place:29.960 29.960} {convert:place:29.1284 29.1284} {convert:place:2.81 2.81} {convert:place:12.349 12.349} {convert:place:14.582 14.582} {convert:place:16.184 16.184} {convert:place:39.439 39.439} {convert:place:6.395 6.395} {convert:place:14.273 14.273} {convert:place:14.587 14.587} {convert:place:39.132 39.132} {convert:place:4.168 4.188} {convert:place:14.275 14.275} {convert:place:2.89 2.89} {convert:place:58.26 58.26} {convert:place:22.20 22.20} {convert:place:39.136 39.136}}} {{body_alink #ff0000} {body_vlink #000080} {body_link #0000ff} {body_text #000000} {body_bgcolor #ffffff}}