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]