Adding &lc=ES will only work on Buy Now buttons because PayPal provides no way for us to specify an arbitrary language or locale for cart-based checkouts. PayPal already jumps through a lot of hoops to guess the buyer's language preference accurately, so you may not need to do anything special anyway.
If the buyer has a language cookie set in their browser, PayPal will respect that; if the buyer has a language preference set in their Web browser, PayPal will respect that; if you are selling tangible goods that require a shipping address, PayPal will apply a language based on the country the buyer selected in their cart (if they have a language assigned for the selected country). Finally, regardless of what language PayPal uses on their initial checkout page, once the buyer logs into their PayPal account, the language preference in the buyer's PayPal account would be applied.