2 package org.bull.novaforge.tools.tab2poConverter;
\r
4 import java.util.regex.Matcher;
\r
5 import java.util.regex.Pattern;
\r
7 public class MessageConverter
\r
9 protected static final Pattern PATTERN_PARAMETER2 = Pattern.compile("\\{(\\d+)\\}");
\r
11 private static final Pattern PATTERN_PARAMETER1 = Pattern.compile("\\$(\\d+)");
\r
13 public static final MessageConverter instance = new MessageConverter();
\r
15 private MessageConverter()
\r
19 public String toPoMessage(final String tabTranslation)
\r
21 // remplacement de " par \"
\r
22 String message = tabTranslation.replace("\"", "\\\"");
\r
24 // Prise en compte du remplacement de $1 par %1$s
\r
25 message = PATTERN_PARAMETER1.matcher(message).replaceAll(
\r
26 "%$1" + Matcher.quoteReplacement("$s"));
\r
28 // Prise en compte du remplacement de {0} par %1$s
\r
29 final Matcher m = PATTERN_PARAMETER2.matcher(message);
\r
30 final StringBuffer sb = new StringBuffer();
\r
33 final int index = Integer.parseInt(m.group(1)) + 1;
\r
34 final String repl = Matcher.quoteReplacement("%" + index + "$s");
\r
35 m.appendReplacement(sb, repl);
\r
39 message = sb.toString();
\r