import { IChange } from "../../model/types.js"; import { MergeCommand } from "./command.js"; export default class I18nPropertiesMergeCommand extends MergeCommand { private i18nPath; private prefix; private mergePaths; private copyPaths; constructor(i18nPath: string, prefix: string, manifestChanges: ReadonlyArray); accept: (filename: string) => boolean; private analyzeAppVariantManifestChanges; execute(files: Map, filename: string, appVariantContent: string): Promise; /** * Filters out specific lines from the given string. * Removes lines matching: * - __ldi.translation.uuid\s*=\s*(.*) * - ABAP_TRANSLATION * - SAPUI5 TRANSLATION-KEY */ private filterTranslationMetaLines; /** * Merge/Append base property file with property file from app variant * FIXME Currently merge could duplicate keys which causes undefined * behavior => Existing keys which are in merge content must be removed => * Actually only descriptor texts are relevant for merge which always have * app variant Id as prefix => If we filter on them we do not need to remove * existing overwritten keys (as there should be none) */ private mergePropertiesFiles; }