frontend/i18n: escape % in internationalized strings
[nit.git] / src / frontend / i18n_phase.nit
index 0550caf..22010f6 100644 (file)
@@ -146,11 +146,13 @@ redef class ASuperstringExpr
                for i in n_exprs do
                        if i isa AStartStringExpr or i isa AEndStringExpr or i isa AMidStringExpr then
                                assert i isa AStringFormExpr
-                               fmt += i.value.as(not null)
+                               var str = i.value
+                               assert str != null
+                               fmt += str.replace("%", "%%")
                        else
                                fmt += "%"
                                exprs.push i
-                               fmt += exprs.length.to_s
+                               fmt += (exprs.length-1).to_s
                        end
                end
                fmt = fmt.escape_to_gettext