code: protected String getLocaleSpecificTitle(Locale locale) {
  
          String result = null;
  
          try {
  
              if (isDetailRequest()) {
                  // this is a request to a detail page
                  CmsResource res = getDetailContent();
                  CmsFile file = m_cms.readFile(res);
                  CmsXmlContent content = CmsXmlContentFactory.unmarshal(m_cms, file);
                  result = content.getHandler().getTitleMapping(m_cms, content, m_cms.getRequestContext().getLocale());
                  if (result == null) {
                      // title not found, maybe no mapping OR not available in the current locale
                      // read the title of the detail resource as fall back (may contain mapping from another locale)
                      result = m_cms.readPropertyObject(
                          res,
                          CmsPropertyDefinition.PROPERTY_TITLE,
                          false,
                          locale).getValue();
                  }
              }
              if (result == null) {
                  // read the title of the requested resource as fall back
                  result = m_cms.readPropertyObject(
                      m_cms.getRequestContext().getUri(),
                      CmsPropertyDefinition.PROPERTY_TITLE,
                      true,
                      locale).getValue();
              }
          } catch (CmsException e) {
              LOG.debug(e.getLocalizedMessage(), e);
          }
          if (CmsStringUtil.isEmptyOrWhitespaceOnly(result)) {
              result = "";
          }
  
          return result;
      }
docs: Returns the title according to the given locale.
  @param locale the locale for which the title should be read.
  @return the title according to the given locale