This commit is contained in:
		| @@ -14,7 +14,7 @@ export class DirectiveParser implements ParserInterface { | ||||
|  | ||||
| 		const nodes: TmplAstNode[] = this.parseTemplate(source, filePath); | ||||
| 		this.getTranslatableElements(nodes).forEach(element => { | ||||
| 			const key = this.getElementTranslateAttrValue(element) || this.getElementContents(element); | ||||
| 			const key = this.getElementTranslateAttrValue(element) || this.getElementContent(element); | ||||
| 			collection = collection.add(key); | ||||
| 		}); | ||||
|  | ||||
| @@ -35,7 +35,7 @@ export class DirectiveParser implements ParserInterface { | ||||
| 			return []; | ||||
| 		} | ||||
|  | ||||
| 		// If element has translate attribute all its contents is translatable | ||||
| 		// If element has translate attribute all its content is translatable | ||||
| 		// so we don't need to traverse any deeper | ||||
| 		if (this.isTranslatable(node)) { | ||||
| 			return [node]; | ||||
| @@ -73,10 +73,15 @@ export class DirectiveParser implements ParserInterface { | ||||
| 		return attr?.value ?? ''; | ||||
| 	} | ||||
|  | ||||
| 	protected getElementContents(element: TmplAstElement): string { | ||||
| 		const contents = element.sourceSpan.start.file.content; | ||||
| 	protected getElementContent(element: TmplAstElement): string { | ||||
| 		const content = element.sourceSpan.start.file.content; | ||||
| 		const start = element.startSourceSpan.end.offset; | ||||
| 		const end = element.endSourceSpan.start.offset; | ||||
| 		return contents.substring(start, end).trim(); | ||||
| 		const val = content.substring(start, end); | ||||
| 		return this.cleanKey(val); | ||||
| 	} | ||||
|  | ||||
| 	protected cleanKey(val: string): string { | ||||
| 		return val.replace(/\r?\n|\r|\t/g, ''); | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -85,4 +85,26 @@ describe('DirectiveParser', () => { | ||||
| 		const keys = parser.extract(contents, componentFilename).keys(); | ||||
| 		expect(keys).to.deep.equal([]); | ||||
| 	}); | ||||
|  | ||||
| 	it('should extract contents without line breaks', () => { | ||||
| 		const contents = ` | ||||
| 			<p translate> | ||||
| 				Please leave a message for your client letting them know why you  | ||||
| 				rejected the field and what they need to do to fix it. | ||||
| 			</p> | ||||
| 		`; | ||||
| 		const keys = parser.extract(contents, templateFilename).keys(); | ||||
| 		expect(keys).to.deep.equal(['Please leave a message for your client letting them know why you rejected the field and what they need to do to fix it.']); | ||||
| 	}); | ||||
|  | ||||
| 	it('should extract contents without indent spaces', () => { | ||||
| 		const contents = ` | ||||
| 			<div *ngIf="!isLoading && studentsToGrid && studentsToGrid.length == 0" class="no-students" mt-rtl translate>There  | ||||
| 				are currently no students in this class. The good news is, adding students is really easy! Just use the options  | ||||
| 				at the top. | ||||
| 			</div> | ||||
| 		`; | ||||
| 		const keys = parser.extract(contents, templateFilename).keys(); | ||||
| 		expect(keys).to.deep.equal(['There are currently no students in this class. The good news is, adding students is really easy! Just use the options at the top.']); | ||||
| 	}); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user