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 > > >