The description is build using the following syntax: $rawdiscount $promorecurring $LANG.orderdiscount that is returned by the variable $promotiondescription.
This looks good in english, but in other languages it looks very awkward.
In english you will have €20 recurring discount , that's perfect.
In other languages you will have €20 recurriente descuento , or €20 recorrente desconto , that's like saying in english €20 discount recurring .
On the templates it's possible to fix this, using the variables of $rawdiscount $promorecurring $LANG.orderdiscount and putting them in the order that we need instead of using the variable $promotiondescription.
But we can't control the sentence that's added to the invoice that is the result of $promotiondescription, and that makes the promotion code feature impossible to use for us, as correct syntax use is very important in these cultures for the sake of company image.
When you build a multi-language system, you can never build a sentence using multiple words using a fixed position, as each language has its syntax.
What I suggest is that we have an option to format the order of the variables $rawdiscount $promorecurring $LANG.orderdiscount in $promotiondescription for each language.
PT - LANG_$promotiondescription = "$rawdiscount + $LANG.orderdiscount + $promorecurring"
ES - LANG_$promotiondescription = "$rawdiscount + $LANG.orderdiscount + $promorecurring"
En - LANG_$promotiondescription = "$rawdiscount + $promorecurring + $LANG.orderdiscount"