@@ -893,17 +893,21 @@ public static String ConvertSingleQuote(String inputStr, MessagePatternEscape ms
893893 }
894894 finalOutput .append (output .substring (prevStart , output .length ())); // append any remaining substring in output
895895
896+ boolean icuCompatible = isICUMessagePatternCompatible (finalOutput .toString ());
897+ boolean javaMsgCompatible = isJavaMessageFormatCompatible (finalOutput .toString ());
898+ if (msgPatEsc == MessagePatternEscape .ALL && (icuCompatible || javaMsgCompatible )) {
899+ return finalOutput .toString ();
900+ }
896901 // Falling back to input string, if the operations yield a non message compatible string
897- if (!isMessagePatternCompatible ( finalOutput . toString ()) ) {
902+ if (!icuCompatible || ! javaMsgCompatible ) {
898903 System .out .println (finalOutput + " is not message pattern/java message format compatible" );
899904 return inputStr ;
900905 }
901906
902907 return finalOutput .toString ();
903908 }
904-
905909
906- public static boolean isMessagePatternCompatible (String inputStr ) {
910+ public static boolean isICUMessagePatternCompatible (String inputStr ) {
907911 MessagePattern msgPat = null ;
908912 try {
909913 msgPat = new MessagePattern (inputStr );
@@ -917,13 +921,23 @@ public static boolean isMessagePatternCompatible(String inputStr) {
917921 // just returns the input string.
918922 return false ;
919923 }
924+ return true ;
925+ }
926+
927+ public static boolean isJavaMessageFormatCompatible (String inputStr ) {
920928 try {
921929 java .text .MessageFormat .format (inputStr , (Object []) null );
922930 } catch (Exception e ) {
923931 return false ;
924932 }
925933 return true ;
926934 }
935+
936+ public static boolean isMessagePatternCompatible (String inputStr ) {
937+ boolean icuMsgCompatible = isICUMessagePatternCompatible (inputStr );
938+ boolean javaMsgCompatible = isJavaMessageFormatCompatible (inputStr );
939+ return icuMsgCompatible && javaMsgCompatible ;
940+ }
927941
928942 public static int findSingleQuote (String inputStr , int start ){
929943 return -1 ;
0 commit comments