code: private ImmutableList<String> extractArgs() {
      ImmutableList.Builder<String> builder = ImmutableList.builder();
      String[] pieces = LanguageDictionary.specifierPattern.split(l10ned);
      String content = l10nFormatted;
  
      for (String s : pieces) {
        int start = content.indexOf(s);
        int end = start + s.length();
  
        if (start == 0) {
          content = content.substring(end);
        } else {
          String arg = content.substring(0, start);
          builder.add(arg);
          content = content.substring(start + s.length());
        }
      }
      if (content.length() != 0) {
        builder.add(content);
      }
      return builder.build();
    }
docs: /*
  Given e.g. l10ned="Hello %@, your %@ called." and l10nFormatted="Hello Dave, your mom called.", extract the args
  ["Dave", "mom"].  Note that it is possible for ambiguities to prevent reliable arg recovery.  For example,
  if l10ned="a%@a%@a" and l10nFormatted="aaaaaa", the args could be ["", "aaa"], ["a", "aa"], ..., ["aaa", ""].