This commit is contained in:
parent
8aa2774eca
commit
6ed962fa6e
@ -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.']);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user