These days we are supposed to think about
internationalisation and localisation.
The rather elderly and inadequate
'<1P> foobar<2?:s>' expandMacrosWith: n with: n = 1
works fine for English, but when you switch to
'<1P> foobar<2?:s>' translated
  expandMacrosWith: n with: n = 1
you run into the problem that there are
languages, such as Hebrew and Modern Standard
Arabic, with a dual number, so that you need
to distinguish 1, 2, >2 cases. Then there are
the oddball languages with a "paucal" number.

Generally it is better to rephrase the text,
'Number of foobars = <1P>' expandMacrosWith: n.

On Thu, 21 Feb 2019 at 10:08, Tim Mackinnon <tim@testit.works> wrote:

> I was browsing some of the Pharo issues (always worth doing) - and noticed
> an interesting one about Test results reporting and pluralisation
> (https://github.com/pharo-project/pharo/issues/2578)
>
> In it, I hadn't noticed String>>asPluralBasedOn: before (and judging from
> many messages in the image, many others hadn't either).
>
> I'm fixing something similar for a refactoring bug and can use this
> technique there (although from memory, it comes with a health warning as if
> ever we want to internalise the messages in Pharo, this will need a
> different approach). However we are probably a distance from doing that -
> so cleaning up what we have is a good start.
>
> Anyway I was curious if there is something to help with messages like:
>
> ‘There is 1 occurrence of {1}’  vs ‘There are many occurrences of {1}’,
> which I’d like to write something like:
>
> ‘There ‘,  (‘is 1 ’, ‘are many ’) pick: result size, ‘occurrence’
> asPluralBasedOn: result size, ‘ ‘,  result printString.
>
>
> Tim
>
>
>

Reply via email to