[josm-dev] Localisation policy for quotes etc.
Karl Guggisberg
karl.guggisberg at guggis.ch
Sun Jan 10 15:31:03 GMT 2010
Hi,
> It's always a single quite in English, but perhaps they're double
> quotes in the JOSM source to work around something?:
tr("abc") doesn't use MessageFormat. A single quote in tr("...") therefore isn't a meta-character and is copied to the output.
tr("a single quote ' ") -> "a single quote '"
tr("a {0}", "test") uses MessageFormat. There, single quotes are meta-character. A single quote is the (close) equivalent to \ in regexp: it allows to escape curly braces. '} is }, '' is '.Therefore, if you have a I18n string with format placeholders and single quotes, you MUST escape them with two quotes. If you don't MessageFormat won't process the format placeholders correctly and single quotes are deleted.
tr("a single quote '' - {0} ", "OK") -> "a single quote ' - OK"
tr("a single quote ' - {0} ", "NOK") -> "a single quote - NOK" (or "a single quote - {0}" because formatting fails)
At least that's what you have to do today unless somebody changes the tr() implementations in I18n. If tr("...") was to use MessageFormat too, single quotes would always have to be escaped with another single quote.
> The HTML is rendered by some internal Java stuff, both of those tags
> work just as well when fed to it so I don't think it needs to be fixed
> either way.
AFAIK, the internal Java stuff doesn't support "<br/>". Even worse, if you use it instead of"<br>" the HTML rendering is sometimes messed up. This holds for labels, tooltips and for JEditorPane.
Regards
Karl
Am 10.01.2010 16:13, schrieb Ævar Arnfjörð Bjarmason:
> On Sun, Jan 10, 2010 at 15:00, Andre Hinrichs<andre.hinrichs at gmx.de> wrote:
>
>> Hi List!
>>
>> Since I currently check all translatable texts I found that sometimes
>> quotes are single and sometimes double. E.g. "isn't" is sometimes simply
>> "isn't" and sometimes "isn''t".
>>
>> Which is the correct way?
>>
> It's always a single quite in English, but perhaps they're double
> quotes in the JOSM source to work around something?:
>
> aoeu josm (r2766) $ ack "tr\(.*isn''t" src
> src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
> 219: setErrorMessage(tfLatValue,tr("The string ''{0}''
> isn''t a valid double value.", tfLatValue.getText()));
> 251: setErrorMessage(tfLonValue,tr("The string ''{0}''
> isn''t a valid double value.", tfLonValue.getText()));
>
> src/org/openstreetmap/josm/gui/widgets/BoundingBoxSelectionPanel.java
> 160: feedbackInvalid(tr("The string ''{0}'' isn''t a
> valid double value.", getComponent().getText()));
> 200: feedbackInvalid(tr("The string ''{0}'' isn''t a
> valid double value.", getComponent().getText()));
>
> src/org/openstreetmap/josm/gui/dialogs/changeset/query/AdvancedChangesetQueryPanel.java
> 533: throw new IllegalStateException(tr("Current
> value ''{0}'' for user ID isn''t valid", tfUid.getText()));
>
>
>> Forthermore I find sometimes american english (e.g. 'initialize').
>> Wasn't the overall policy to use british english?
>>
> I thought the source default was en_US since if it was en_GB the
> existing en_GB translation would be pointless (and we'd need a en_US
> one).
>
>
>> And finally sometimes I find XHTML style end tags in translated texts
>> (e.g. '<br />' instead of'<br>'). By now I haven't found any in the
>> source. Is it ok to use them or should these be fixed?
>>
> The HTML is rendered by some internal Java stuff, both of those tags
> work just as well when fed to it so I don't think it needs to be fixed
> either way.
>
> _______________________________________________
> josm-dev mailing list
> josm-dev at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/josm-dev
>
>
More information about the josm-dev
mailing list