Source:
private String getLocalizedIUProperty(IInstallableUnit iu, String actualKey, String locale) { String localizedKey = makeLocalizedKey(actualKey, locale); String localizedValue = null; if (iu instanceof InstallableUnit) localizedValue = ((InstallableUnit) iu).getLocalizedProperty(localizedKey); if (localizedValue == null) localizedValue = iu.getProperty(localizedKey); if (localizedValue != null) return localizedValue; final List<String> locales = buildLocaleVariants(locale); final IInstallableUnit theUnit = iu; IQueryResult<IInstallableUnit> localizationFragments = getLocalizationFragments(locales, locale); IExpressionFactory factory = ExpressionUtil.getFactory(); IQuery<IInstallableUnit> iuQuery = QueryUtil.createMatchQuery(IInstallableUnitFragment.class, factory.matchExpression(haveHostMatch, theUnit)); IQueryResult<IInstallableUnit> collected = iuQuery.perform(localizationFragments.iterator()); if (!collected.isEmpty()) { String translation = null; for (Iterator<IInstallableUnit> iter = collected.iterator(); iter.hasNext() && translation == null;) { IInstallableUnit localizationIU = iter.next(); for (String string : locales) { String localeKey = makeLocalizedKey(actualKey, string); translation = localizationIU.getProperty(localeKey); if (translation != null) return cacheResult(iu, localizedKey, translation); } } } for (String nextLocale : locales) { String localeKey = makeLocalizedKey(actualKey, nextLocale); String nextValue = iu.getProperty(localeKey); if (nextValue != null) return cacheResult(iu, localizedKey, nextValue); } return cacheResult(iu, localizedKey, actualKey); }

Target:
private String getLocalizedIUProperty(IInstallableUnit iu, String actualKey, String locale) { String localizedKey = makeLocalizedKey(actualKey, locale); String localizedValue = null; if (iu instanceof InstallableUnit) localizedValue = ((InstallableUnit) iu).getLocalizedProperty(localizedKey); if (localizedValue == null) localizedValue = iu.getProperty(localizedKey); if (localizedValue != null) return localizedValue; final List<String> locales = buildLocaleVariants(locale); final IInstallableUnit theUnit = iu; IQueryResult<IInstallableUnit> localizationFragments = getLocalizationFragments(locales, locale); IExpressionFactory factory = ExpressionUtil.getFactory(); IQuery<IInstallableUnit> iuQuery = QueryUtil.createMatchQuery(IInstallableUnitFragment.class, factory.matchExpression(haveHostMatch, theUnit)); IQueryResult<IInstallableUnit> collected = iuQuery.perform(localizationFragments.iterator()); if (!collected.isEmpty()) { String translation = null; for (Iterator<IInstallableUnit> iter = collected.iterator(); iter.hasNext() && translation == null;) { IInstallableUnit localizationIU = iter.next(); for (String unitlocale : locales) { String localeKey = makeLocalizedKey(actualKey, unitlocale); translation = localizationIU.getProperty(localeKey); if (translation != null) return cacheResult(iu, localizedKey, translation); } } } for (String nextLocale : locales) { String localeKey = makeLocalizedKey(actualKey, nextLocale); String nextValue = iu.getProperty(localeKey); if (nextValue != null) return cacheResult(iu, localizedKey, nextValue); } return cacheResult(iu, localizedKey, actualKey); }