code: private static String genGoogMsgPlaceholderName(String placeholderName) {
  
      Matcher suffixMatcher = UNDERSCORE_NUMBER_SUFFIX.matcher(placeholderName);
      if (suffixMatcher.find()) {
        String base = placeholderName.substring(0, suffixMatcher.start());
        String suffix = suffixMatcher.group();
        return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, base) + suffix;
      } else {
        return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, placeholderName);
      }
    }
docs: Converts a Soy placeholder name (in upper underscore format) into a JS variable name (in lower
  camel case format) used by goog.getMsg(). If the original name has a numeric suffix, it will be
  preserved with an underscore.
  
  <p>For example, the following transformations happen:
  <li>N : n
  <li>NUM_PEOPLE : numPeople
  <li>PERSON_2 : person_2
  <li>GENDER_OF_THE_MAIN_PERSON_3 : genderOfTheMainPerson_3
  
  @param placeholderName The placeholder name to convert.
  @return The generated goog.getMsg name for the given (standard) Soy name.