docs: protected void getTranslatedTopicForTopicNode(final BuildData buildData, final ITopicNode topicNode,
              final Map<String, BaseTopicWrapper<?>> translatedTopics) throws BuildProcessingException {
          final TopicWrapper topic;
          if (topicNode.getRevision() != null) {
              topic = topicProvider.getTopic(topicNode.getDBId(), topicNode.getRevision());
          } else if (buildData.getBuildOptions().getMaxRevision() != null) {
              topic = topicProvider.getTopic(topicNode.getDBId(), buildData.getBuildOptions().getMaxRevision());
          } else {
              topic = topicProvider.getTopic(topicNode.getDBId());
          }
  
          // Check if the spec topic has a matching translated topic node, if not then create a dummy topic
          if (topicNode.getTranslationUniqueId() != null) {
              final TranslatedCSNodeWrapper translatedCSNode = translatedCSNodeProvider.getTranslatedCSNode(
                      Integer.parseInt(topicNode.getTranslationUniqueId()));
  
              // Check if the translated node has a specific conditional translated topic, otherwise find the normal translated topic
              if (translatedCSNode.getTranslatedTopics() != null && !translatedCSNode.getTranslatedTopics().isEmpty()) {
                  // Get the matching latest translated topic and pushed translated topics
                  final Pair<TranslatedTopicWrapper, TranslatedTopicWrapper> latestTranslations = getLatestTranslations(buildData,
                          translatedCSNode.getTranslatedTopics(), topicNode.getRevision(), topic.getLocale());
                  final TranslatedTopicWrapper latestTranslatedTopic = latestTranslations.getFirst();
                  final TranslatedTopicWrapper latestPushedTranslatedTopic = latestTranslations.getSecond();
  
                  // If the latest translation and latest pushed topic matches, then use that if not a dummy topic should be created
                  TranslatedTopicWrapper translatedTopic = null;
                  if (latestTranslatedTopic != null && latestPushedTranslatedTopic != null && latestPushedTranslatedTopic.getTopicRevision
                          ().equals(
                          latestTranslatedTopic.getTopicRevision())) {
                      latestTranslatedTopic.setTopic(topic);
                      translatedTopic = latestTranslatedTopic;
                  } else if (latestPushedTranslatedTopic != null) {
                      latestPushedTranslatedTopic.setTopic(topic);
                      translatedTopic = createDummyTranslatedTopicFromExisting(latestPushedTranslatedTopic, buildData.getBuildLocaleWrapper());
                  } else {
                      translatedTopic = createDummyTranslatedTopic(topic, buildData.getBuildLocaleWrapper());
                  }
                  translatedTopic.setTranslatedCSNode(translatedCSNode);
  
                  // Create the key and add the topic to the build database
                  String key = DocBookBuildUtilities.getTranslatedTopicBuildKey(translatedTopic, translatedCSNode);
                  translatedTopics.put(key, translatedTopic);
                  buildData.getBuildDatabase().add(topicNode, key);
              } else {
                  getLatestTranslatedTopicForTopicNode(buildData, topicNode, topic, translatedTopics);
              }
          } else {
              getLatestTranslatedTopicForTopicNode(buildData, topicNode, topic, translatedTopics);
          }
      }