To replicate on demo:
Make the database multilingual and add another language. For example add French (French) (code fr_FR). Leave the default language at English US and do not choose inherit CMS language.
Translate a few strings on contribution page 1. Visit the contribution page and add "&lcMessages=fr_FR" to the url. You will see your translations in effect.
Create 2 word replacements:
"Confirm Contribution" >> "Proceed to Payment"
"Confirmer la contribution" >> "Procéder au paiement"
Visit the contribution page again with and without the "&lcMessages=fr_FR" in the url. No matter which you use the confirm button will always be "Proceed to Payment"
This is the main problem. It was also reported by another user on the forum last month:
This is also related to a problem during upgrade: For one of our installs the upgrade to 4.4 had also required some manual work because the customer had the same word replacement in the word replacements settings array twice - once for each language. This caused a constraint error during the upgrade migration to a table. We worked around this by patching the upgrade script to skip the constraint, then we manually cleaned up the tables and re-enabled the constraint.