diff --git a/src/model/translationFileSerialization.spec.ts b/src/model/translationFileSerialization.spec.ts
index ba00dd9..4f9a809 100644
--- a/src/model/translationFileSerialization.spec.ts
+++ b/src/model/translationFileSerialization.spec.ts
@@ -294,7 +294,23 @@ describe('translationFileSerialization', () => {
`);
});
- it('should output additinalAttribute', () => {
+ it('should output id with quotes', () => {
+ const input = new TranslationFile([{
+ id: 'idWithQuote"',
+ source: 'some source',
+ locations: []
+ }], 'en', 'de', '');
+ expect(toXlf1(input, {prettyNestedTags: true})).toEqual(`
+
+
+
+
+
+
+
+`);
+ });
+ it('should output additionalAttribute', () => {
const input = new TranslationFile([{
id: 'ID1',
source: 'source val',
diff --git a/src/model/translationFileSerialization.ts b/src/model/translationFileSerialization.ts
index 53d232b..77c017f 100644
--- a/src/model/translationFileSerialization.ts
+++ b/src/model/translationFileSerialization.ts
@@ -123,7 +123,8 @@ export function toXlf2(translationFile: TranslationFile, options: Pick {
- const u = new XmlDocument(``);
+ const u = new XmlDocument(``);
+ u.attr.id = unit.id;
const segment = u.childNamed('segment')!;
if (unit.target !== undefined) {
segment.children.push(new XmlDocument(`${unit.target}`));
@@ -171,9 +172,10 @@ export function toXlf1(translationFile: TranslationFile, options: Pick {
- const transUnit = new XmlDocument(`
+ const transUnit = new XmlDocument(`
`);
+ transUnit.attr.id = unit.id;
if (unit.target !== undefined) {
const target = new XmlDocument(`${unit.target}`);
if (unit.state !== undefined) {