Some great suggestions here guys - I had forgotten there were conditionals in 
expandMacros… that is the better solution.

Although I do kind of think that something on OrderedCollection like:

chooseBasedOn: count

        ^self at: ((count max: 1) min: self size)

Would be a nice general solution for other things (I’m kind of suprised there 
isn’t something like that there)

> On 20 Feb 2019, at 21:21, Esteban Maringolo <emaring...@gmail.com> wrote:
> 
> Why not use the condition macro so you have a single string literal, that in 
> the future could be used for translation?
> 
> E.g. 
> | occurences |
> occurences := 3.
> 'There <1?is:are> <2p> <1?occurrence:ocurrences> of <3p>' expandMacrosWith: 
> occurences = 1 with: 3 with: 'Foo'
> 
> 
> Esteban A. Maringolo
> 
> 
> El mié., 20 feb. 2019 a las 18:08, Tim Mackinnon (<tim@testit.works>) 
> escribió:
> 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 
> <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