Change:
const breakpointType = logPoint ? nls.localize('logPoint', "Logpoint") : nls.localize('breakpoint', "Breakpoint"); const disable = breakpoints.some(bp => bp.enabled); <del> this.dialogService.show(severity.Info, nls.localize('breakpointHasCondition', "This {0} has a {1} that will get lost on remove. Consider {2} the {0} instead.", </del> <ins> const enabling = nls.localize('breakpointHasConditionDisabled', "This {0} has a {1} that will get lost on remove. Consider enabling the {0} instead.", </ins> breakpointType.toLowerCase(), <del> logPoint ? nls.localize('message', "message") : nls.localize('condition', "condition"), disable ? nls.localize('disabling', "disabling") : nls.localize('enabling', "enabling") ), [ nls.localize('removeLogPoint', "Remove {0}", breakpointType), nls.localize('disableLogPoint', "{0} {1}", disable ? nls.localize('disable', "Disable") : nls.localize('enable', "Enable"), breakpointType), nls.localize('cancel', "Cancel") ], { cancelId: 2 }).then(choice => { if (choice === 0) { breakpoints.forEach(bp => this.debugService.removeBreakpoints(bp.getId())); } if (choice === 1) { breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!disable, bp)); } }); </del> <ins> logPoint ? nls.localize('message', "message") : nls.localize('condition', "condition") ); const disabling = nls.localize('breakpointHasConditionEnabled', "This {0} has a {1} that will get lost on remove. Consider disabling the {0} instead.", breakpointType.toLowerCase(), logPoint ? nls.localize('message', "message") : nls.localize('condition', "condition") ); this.dialogService.show(severity.Info, disable ? disabling : enabling, [ nls.localize('removeLogPoint', "Remove {0}", breakpointType), nls.localize('disableLogPoint', "{0} {1}", disable ? nls.localize('disable', "Disable") : nls.localize('enable', "Enable"), breakpointType), nls.localize('cancel', "Cancel") ], { cancelId: 2 }).then(choice => { if (choice === 0) { breakpoints.forEach(bp => this.debugService.removeBreakpoints(bp.getId())); } if (choice === 1) { breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!disable, bp)); } }); </ins> } else { breakpoints.forEach(bp => this.debugService.removeBreakpoints(bp.getId())); }

Discussion:
For string below our translator suggested that it would be a lot easier to localize this resource without having to work with so many placeholders, as from we can see, placeholder {2} is going to get replaced with only two words. Can you please check this suggestion and let us know your opinion? Thanks! Original comment {0} and {1} are not a big problem if the gender of the word is as clear as in this case and if the translation for the respective word will be filled in for the tag. However, since {2} is a verb, it would be better to remove the placeholder and to fill in the word as it used to be. I have found a temporary solution for this sentence now, but I cannot judge how fine it will work if the placeholders get filled in since this highly depends on what will be filled in for them (especially for {2}). In general, it would not be good to use "enabling" or "disabling" in a German sentence. Context src/vs/workbench/parts/debug/electron-browser/debugEditorContribution:English (en):plaintext:breakpointHasCondition Resource vsworkbenchparts_debug String text This {0} has a {1} that will get lost on remove. Consider {2} the {0} instead.
I understand that his can be complex. Without the placeholder we would need 8 strings instead. For now I will keep it as it is, but in future cases I will try not to have as many placeholders as I understand the issue. Keeping this open if somebody wants to do a PR which cleans this up nicely.
Thank you very much! This would make life of some localizers a lot easier.
I would love to work on this issue. It would be really helpful if you can point out where to start from. (^_^)
There is a code pointer in the first comment
Wouldn't the best solution be to have two sentences, one for each verb? - I can do a quick pull request for it, if it's a good idea.
I did a quick pull request which splits the string into two easier translatable strings () - Let me know if you have any comments
thanks! That's great and it solves the issue that our translator had.
Good stuff! Just had an issue with formatting, but as soon as I've fixed it, the PR should be good to go.
Adding verified since I did a code review and tried it out thanks a lot!