docs: private void copyLanguageNodes() {
  
          CmsObject cms = getCms();
          CmsMultiplexReport report = (CmsMultiplexReport)getReport();
          CmsFile file;
          CmsXmlContent content;
          int totalFiles = m_copyresources.length;
          int processedFiles = 0;
          Locale sourceLocale = CmsLocaleManager.getLocale(m_sourceLanguage);
          Locale targetLocale = CmsLocaleManager.getLocale(m_targetLanguage);
  
          for (int i = 0; i < m_copyresources.length; i++) {
              processedFiles++;
              report.print(
                  org.opencms.report.Messages.get().container(
                      org.opencms.report.Messages.RPT_SUCCESSION_2,
                      new Object[] {String.valueOf(processedFiles), String.valueOf(totalFiles)}),
                  I_CmsReport.FORMAT_NOTE);
  
              report.print(
                  Messages.get().container(Messages.RPT_LOCALIZATION_BYPASS_1, new Object[] {m_copyresources[i]}));
              report.print(org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_DOTS_0));
  
              try {
                  file = cms.readFile(m_copyresources[i]);
                  content = CmsXmlContentFactory.unmarshal(cms, file);
  
                  if (!content.hasLocale(sourceLocale)) {
                      report.println(
                          Messages.get().container(
                              Messages.GUI_REPORT_LANGUAGEC0PY_WARN_SOURCELOCALE_MISSING_1,
                              new Object[] {sourceLocale}),
                          I_CmsReport.FORMAT_WARNING);
                      CmsMessageContainer container = Messages.get().container(
                          Messages.GUI_REPORT_LANGUAGEC0PY_WARN_SOURCELOCALE_MISSING_2,
                          new Object[] {m_copyresources[i], sourceLocale});
                      report.addWarning(container);
                  } else if (content.hasLocale(targetLocale)) {
                      report.println(
                          Messages.get().container(
                              Messages.GUI_REPORT_LANGUAGEC0PY_WARN_TARGETLOCALE_EXISTS_1,
                              new Object[] {targetLocale}),
                          I_CmsReport.FORMAT_WARNING);
                      CmsMessageContainer container = Messages.get().container(
                          Messages.GUI_REPORT_LANGUAGEC0PY_WARN_TARGETLOCALE_EXISTS_2,
                          new Object[] {m_copyresources[i], targetLocale});
                      report.addWarning(container);
                  } else {
                      content.copyLocale(sourceLocale, targetLocale);
                      if (m_delete) {
                          content.removeLocale(sourceLocale);
                      }
                      file.setContents(content.marshal());
                      CmsLock lock = cms.getLock(file);
                      if (lock.isInherited()) {
                          unlockInherited(file.getRootPath());
                          cms.lockResource(m_copyresources[i]);
                      } else {
                          if (lock.isNullLock()) {
                              cms.lockResource(m_copyresources[i]);
                          } else {
                              if (!lock.isLockableBy(cms.getRequestContext().getCurrentUser())) {
                                  cms.changeLock(m_copyresources[i]);
                              }
                          }
                      }
                      cms.writeFile(file);
                      cms.unlockResource(m_copyresources[i]);
                      report.println(
                          org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_OK_0),
                          I_CmsReport.FORMAT_OK);
                  }
  
              } catch (Throwable f) {
                  CmsMessageContainer error = Messages.get().container(
                      Messages.GUI_REPORT_LANGUAGEC0PY_ERROR_2,
                      new String[] {m_copyresources[i], CmsException.getStackTraceAsString(f)});
  
                  report.println(
                      org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_FAILED_0),
                      I_CmsReport.FORMAT_ERROR);
                  // report.println(f);
                  report.addError(error);
  
              }
          }
      }