private Info resolveProperties(Info info, Map<String, Object> extensions, Locale locale) {
		resolveProperty(info::getTitle, info::title, propertyResolverUtils, locale);
		resolveProperty(info::getDescription, info::description, propertyResolverUtils, locale);
		resolveProperty(info::getVersion, info::version, propertyResolverUtils, locale);
		resolveProperty(info::getTermsOfService, info::termsOfService, propertyResolverUtils, locale);

		License license = info.getLicense();
		if (license != null) {
			resolveProperty(license::getName, license::name, propertyResolverUtils, locale);
			resolveProperty(license::getUrl, license::url, propertyResolverUtils, locale);
		}

		Contact contact = info.getContact();
		if (contact != null) {
			resolveProperty(contact::getName, contact::name, propertyResolverUtils, locale);
			resolveProperty(contact::getEmail, contact::email, propertyResolverUtils, locale);
			resolveProperty(contact::getUrl, contact::url, propertyResolverUtils, locale);
		}

		if (propertyResolverUtils.isResolveExtensionsProperties() && extensions != null) {
			Map<String, Object> extensionsResolved = propertyResolverUtils.resolveExtensions(locale, extensions);
			if (propertyResolverUtils.isOpenapi31())
				extensionsResolved.forEach(info::addExtension31);
			else
				info.setExtensions(extensionsResolved);
		}

		return info;
	}
Resolve properties info.

@param info       the info
@param extensions
@param locale     the locale
@return the info
springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/OpenAPIService.java