SkPDF Fix PDF/A to be more valid

Some produced PDFs are recognized by veraPDF 0.13.2
(http://verapdf.org/software/) as valid PDF/A-2B.

BUG=skia:4535

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1864173004

Review URL: https://codereview.chromium.org/1864173004
diff --git a/src/pdf/SkPDFMetadata.cpp b/src/pdf/SkPDFMetadata.cpp
index 5a1d7aa..4ca1903 100644
--- a/src/pdf/SkPDFMetadata.cpp
+++ b/src/pdf/SkPDFMetadata.cpp
@@ -263,7 +263,7 @@
     // Validate that we haven't written outside of our string.
     SkASSERT(out == &output.writable_str()[output.size()]);
     *out = '\0';
-    return std::move(output);
+    return output;
 }
 
 SkPDFObject* SkPDFMetadata::createXMPObject(const UUID& doc,
@@ -285,7 +285,6 @@
             "<pdfaid:conformance>B</pdfaid:conformance>\n"
             "%s"  // ModifyDate
             "%s"  // CreateDate
-            "%s"  // MetadataDate
             "%s"  // xmp:CreatorTool
             "<dc:format>application/pdf</dc:format>\n"
             "%s"  // dc:title
@@ -303,7 +302,6 @@
 
     SkString creationDate;
     SkString modificationDate;
-    SkString metadataDate;
     if (fCreation) {
         SkString tmp;
         fCreation->toISO8601(&tmp);
@@ -318,25 +316,25 @@
         SkASSERT(0 == count_xml_escape_size(tmp));
         modificationDate = sk_string_printf(
                 "<xmp:ModifyDate>%s</xmp:ModifyDate>\n", tmp.c_str());
-        metadataDate = sk_string_printf(
-                "<xmp:MetadataDate>%s</xmp:MetadataDate>\n", tmp.c_str());
     }
-
-    SkString title =
-            escape_xml(get(fInfo, "Title"), "<dc:title><rdf:Alt><rdf:li>",
-                       "</rdf:li></rdf:Alt></dc:title>\n");
-    SkString author =
-            escape_xml(get(fInfo, "Author"), "<dc:creator><rdf:Bag><rdf:li>",
-                       "</rdf:li></rdf:Bag></dc:creator>\n");
+    SkString title = escape_xml(
+            get(fInfo, "Title"),
+            "<dc:title><rdf:Alt><rdf:li xml:lang=\"x-default\">",
+            "</rdf:li></rdf:Alt></dc:title>\n");
+    SkString author = escape_xml(
+            get(fInfo, "Author"), "<dc:creator><rdf:Bag><rdf:li>",
+            "</rdf:li></rdf:Bag></dc:creator>\n");
     // TODO: in theory, XMP can support multiple authors.  Split on a delimiter?
-    SkString subject = escape_xml(get(fInfo, "Subject"),
-                                  "<dc:description><rdf:Alt><rdf:li>",
-                                  "</rdf:li></rdf:Alt></dc:description>\n");
-    SkString keywords1 =
-            escape_xml(get(fInfo, "Keywords"), "<dc:subject><rdf:Bag><rdf:li>",
-                       "</rdf:li></rdf:Bag></dc:subject>\n");
-    SkString keywords2 = escape_xml(get(fInfo, "Keywords"), "<pdf:Keywords>",
-                                    "</pdf:Keywords>\n");
+    SkString subject = escape_xml(
+            get(fInfo, "Subject"),
+            "<dc:description><rdf:Alt><rdf:li xml:lang=\"x-default\">",
+            "</rdf:li></rdf:Alt></dc:description>\n");
+    SkString keywords1 = escape_xml(
+            get(fInfo, "Keywords"), "<dc:subject><rdf:Bag><rdf:li>",
+            "</rdf:li></rdf:Bag></dc:subject>\n");
+    SkString keywords2 = escape_xml(
+            get(fInfo, "Keywords"), "<pdf:Keywords>",
+            "</pdf:Keywords>\n");
 
     // TODO: in theory, keywords can be a list too.
     SkString creator = escape_xml(get(fInfo, "Creator"), "<xmp:CreatorTool>",
@@ -347,7 +345,7 @@
     SkASSERT(0 == count_xml_escape_size(instanceID));
     return new PDFXMLObject(sk_string_printf(
             templateString, modificationDate.c_str(), creationDate.c_str(),
-            metadataDate.c_str(), creator.c_str(), title.c_str(),
+            creator.c_str(), title.c_str(),
             subject.c_str(), author.c_str(), keywords1.c_str(),
             documentID.c_str(), instanceID.c_str(), keywords2.c_str()));
 }