We have some code to set PayPal’s “LOCALECODE” to FR if the language in the order is set to French. The initial URL’s always the same, but I think PayPal sets the customer’s redirect based on the LOCALECODE that’s sent.
The key thing is that the language for the order gets set to FR. If it’s set to FR, the LOCALECODE for PayPal should get set to FR, and that’s what determines the language displayed.
What are your shipping settings on your CartThrob->Payments->PayPal page?
I did some testing and it looks like you need to have it set to “Let PayPal handle shipping addresses” for the language variable and LOCALECODE to have an affect. Otherwise, the redirect appears to be based on your shipping country code.
I change to “Let PayPal handle shipping addresses” and have <input type=“hidden” value=“language” name=“FR” /> above gateway_fields (also tried below) and PayPal still comes up in French.
In your testing you can actually get it to come up in French?