code: public static String wordBased(Period period, Locale locale) {
          Objects.requireNonNull(period, "period must not be null");
          Objects.requireNonNull(locale, "locale must not be null");
          ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_NAME, locale);
          UnitFormat[] formats = {
              UnitFormat.of(bundle, WORDBASED_YEAR),
              UnitFormat.of(bundle, WORDBASED_MONTH),
              UnitFormat.of(bundle, WORDBASED_WEEK),
              UnitFormat.of(bundle, WORDBASED_DAY)};
          WordBased wb = new WordBased(formats, bundle.getString(WORDBASED_COMMASPACE), bundle.getString(WORDBASED_SPACEANDSPACE));
  
          Period normPeriod = oppositeSigns(period.getMonths(), period.getYears()) ? period.normalized() : period;
          int weeks = 0, days = 0;
          if (normPeriod.getDays() % DAYS_PER_WEEK == 0) {
              weeks = normPeriod.getDays() / DAYS_PER_WEEK;
          } else {
              days = normPeriod.getDays();
          }
          int[] values = {normPeriod.getYears(), normPeriod.getMonths(), weeks, days};
          return wb.format(values);
      }
docs: Formats a period to a string in a localized word-based format.
  <p>
  This returns a word-based format for the period.
  The year and month are printed as supplied unless the signs differ, in which case they are normalized.
  The words are configured in a resource bundle text file -
  {@code org.threeten.extra.wordbased.properties} - with overrides per language.
  
  @param period  the period to format
  @param locale  the locale to use
  @return the localized word-based format for the period