package org.jabref.logic.l10n; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; public class LocalizationKeyParams { private final LocalizationKey key; private final List<String> params; public LocalizationKeyParams(String key, String... params) { this.key = new LocalizationKey(key); this.params = Arrays.asList(params); if (this.params.size() > 10) { throw new IllegalStateException("Translations can only have at most 10 parameters"); } } public String replacePlaceholders() { String translation = key.getTranslationValue(); for (int i = 0; i < params.size(); i++) { String param = params.get(i); translation = translation.replaceAll("%" + i, Matcher.quoteReplacement(param)); } return translation; } }