dict := (NaturalLanguageTranslator localeID: (LocaleID isoLanguage: 'fr')) translations. newDict := Dictionary new. dict at: ' is greater than ' put: ' est plus grand que'; at: 'flower' put: ' fleur '; at: ' dog ' put: ' chien '. dict keysAndValuesDo: [ :key :value | |kstart kend vstart vend| kstart := key findFirst: [ :c | c isSeparator not]. kend := key findLast: [ :c | c isSeparator not]. vstart := value findFirst: [ :c | c isSeparator not]. vend := value findLast: [ :c | c isSeparator not]. vstart < vend ifTrue: [(kstart = vstart and: [(key size - kend) = (value size - vend)]) ifFalse: [|prefix suffix| prefix := (kstart > 1) ifFalse: [''] ifTrue: [key copyFrom: 1 to: kstart - 1]. suffix := (kend < key size) ifFalse: [''] ifTrue: [key copyFrom: kend + 1 to: key size]. newDict at: key put: prefix , (value copyFrom: vstart to: vend) , suffix]]]. Transcript show: (newDict size asString) , ' occurences ont été transformées.' ; cr. newDict keysAndValuesDo: [ :key :value | dict at: key put: value]