code: public Expression generateMsgGroupVariable(MsgFallbackGroupNode node) {
      String tmpVarName = translationContext.nameGenerator().generateName("msg_s");
      Expression msg;
      if (node.numChildren() == 1) {
        translationContext
            .soyToJsVariableMappings()
            .setIsPrimaryMsgInUse(node, Expression.LITERAL_TRUE);
        msg = generateSingleMsgVariable(node.getChild(0), tmpVarName);
      } else { // has fallbackmsg children
        msg = generateMsgGroupVariable(node, tmpVarName);
      }
      // handle escaping
      for (SoyPrintDirective printDirective : node.getEscapingDirectives()) {
        msg =
            SoyJsPluginUtils.applyDirective(
                msg,
                (SoyJsSrcPrintDirective) printDirective,
                /* args= */ ImmutableList.of(),
                node.getSourceLocation(),
                errorReporter);
      }
      return msg;
    }
docs: Returns a code chunk representing a translated variable.
  
  <p>Example:
  
  <pre>
  {msg desc="Link to help content."}Learn more{/msg}
  {msg desc="Tells user how to access a product." hidden="true"}
  Click &lt;a href="}{$url}"&gt;here&lt;/a&gt; to access {$productName}.
  {/msg}
  </pre>
  
  might return the following code chunk:
  
  <pre>
  /** @desc Link to help content. *{@literal /}
  var MSG_UNNAMED_9 = goog.getMsg('Learn more');
  var msg_s9 = MSG_UNNAMED_9;
  /** @desc Tells user how to access a product.
  *  @hidden *{@literal /}
  var MSG_UNNAMED_10 = goog.getMsg(
  'Click {$startLink}here{$endLink} to access {$productName}.',
  {startLink: '&lt;a href="' + opt_data.url + '"&gt;',
  endLink: '&lt;/a&gt;',
  productName: opt_data.productName});
  </pre>