protected Object decorate(String undecoratedResult, T proxiedObject, Method method) { final String[] keys; if (undecoratedResult != null) { keys = new String[]{undecoratedResult}; } else { keys = keyGenerator.keysFor(undecoratedResult, proxiedObject, method); } final String basename = keyGenerator.messageBundleNameFor(proxiedObject); return translationService.translate(localeProvider, basename, keys); }
@Override protected Object decorate(String undecoratedResult, T proxiedObject, Method method) { final Object decorated = super.decorate(undecoratedResult, proxiedObject, method); // two lines below copied from I18nTextMethodDecorator.decorate() final String[] keys = keyGen.keysFor(undecoratedResult, proxiedObject, method); final String basenameKG = keyGen.messageBundleNameFor(proxiedObject); final String theKeyThatShouldBe; if (keys[0].equals(undecoratedResult)) { theKeyThatShouldBe = keys[1]; } else { theKeyThatShouldBe = keys[0]; } final LegacyMessage legacyMessage = getLegacyMessage(localeProvider.getLocale(), basenameKG, keys); if (legacyMessage != null) { // System.out.println("> legacyMessage: " + legacyMessage.key+" ->"+legacyMessage.value); // System.out.println("legacyMessage[0].equals(keys[0]): " + legacyMessage.key.equals(keys[0])); // System.out.println(" --> we want new key: "+keys[1]+" and old translation:"+legacyMessage.value); genRes.add(new GeneratorResult.AddKeyToNewBundle(localeProvider.getLocale(), theKeyThatShouldBe, legacyMessage.value)); genRes.add(new GeneratorResult.RemoveKeyFromLegacyBundle(legacyMessage.basename, legacyMessage.key, /* we don't know the path yet */null)); } else if (undecoratedResult != null && Locale.ENGLISH.equals(localeProvider.getLocale())) { // we have a configured value, but no translation in the legacy files - assume it's an hard-configured text: genRes.add(new GeneratorResult.AddKeyToNewBundle(localeProvider.getLocale(), theKeyThatShouldBe, undecoratedResult)); } else { genRes.add(new GeneratorResult.AddUntranslatedKeyToNewBundle(localeProvider.getLocale(), theKeyThatShouldBe)); } return decorated; } };