Translation by rule