src/i18n_phase: use an escape custom to gettext
authorAlexis Laferrière <alexis.laf@xymus.net>
Fri, 19 Jun 2015 14:59:30 +0000 (10:59 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Sun, 21 Jun 2015 21:09:20 +0000 (17:09 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

src/frontend/i18n_phase.nit

index 6e373e6..32fa326 100644 (file)
@@ -130,8 +130,8 @@ end
 redef class AStringExpr
 
        redef fun accept_string_finder(v) do
-               var str = value.as(not null).escape_to_c
                var parse = v.toolcontext.parse_expr("\"{str}\".get_translation(\"{v.domain}\", \"{v.languages_location}\").unescape_nit")
+               var str = value.as(not null).escape_to_gettext
                replace_with(parse)
                v.add_string(str, location)
        end
@@ -152,7 +152,7 @@ redef class ASuperstringExpr
                                fmt += exprs.length.to_s
                        end
                end
-               fmt = fmt.escape_to_c
+               fmt = fmt.escape_to_gettext
                v.add_string(fmt, location)
                var parse = v.toolcontext.parse_expr("\"{fmt}\".get_translation(\"{v.domain}\", \"{v.languages_location}\").unescape_nit.format()")
                if not parse isa ACallExpr then
@@ -217,3 +217,10 @@ class POFile
                f.close
        end
 end
+
+redef class Text
+       private fun escape_to_gettext: String
+       do
+               return escape_to_c.replace("\{", "\\\{").replace("\}", "\\\}")
+       end
+end