docs: Statement compileMessage(
        MsgPartsAndIds partsAndId, MsgNode msg, ImmutableList<SoyPrintDirective> escapingDirectives) {
      Expression soyMsgDefaultParts = compileDefaultMessagePartsConstant(partsAndId);
      Expression soyMsgParts =
          parameterLookup.getRenderContext().getSoyMsgParts(partsAndId.id, soyMsgDefaultParts);
      Statement printMsg;
      if (msg.isRawTextMsg()) {
        // Simplest case, just a static string translation
        printMsg = handleBasicTranslation(escapingDirectives, soyMsgParts);
      } else {
        // String translation + placeholders
        printMsg =
            handleTranslationWithPlaceholders(
                msg,
                escapingDirectives,
                soyMsgParts,
                parameterLookup.getPluginContext().getULocale(),
                partsAndId);
      }
      return Statement.concat(
          printMsg.withSourceLocation(msg.getSourceLocation()),
          detachState.detachLimited(appendableExpression));
    }