Tamamıyle ChatGPT 4 yardımıyla böyle bir şey hazırladım. Baya bi deneme yaptım. API sorunsuz çalışıyor. Eline emeğine sağlık.

HTML+JS kodunu paylaşıyorum.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<title>Çeviri Servisi</title>
</head>
<body class="bg-light">

<div class="container mt-5">
  <h1 class="mb-4">Çeviri Servisi (ZFC)</h1>
  <div class="form-group">
    <textarea id="sourceText" class="form-control" placeholder="Çevrilecek metni buraya yazın veya yapıştırın." rows="4"></textarea>
  </div>
  <div class="form-group">
    <select id="languageSelect" class="form-control">
      <!-- Dil seçeneklerinizi buraya ekleyin -->
  <option value="en">İngilizce (EN)</option>
  <option value="tr">Türkçe (TR)</option>
  <option value="de">Almanca (DE)</option>
  <option value="es">İspanyolca (ES)</option>
  <option value="fr">Fransızca (FR)</option>
  <option value="ja">Japonca (JA)</option>
  <option value="ko">Korece (KO)</option>
  <option value="nl">Hollandaca (NL)</option>
  <option value="pl">Lehçe (PL)</option>
  <option value="pt">Portekizce (PT)</option>
  <option value="ru">Rusça (RU)</option>
  <option value="zh-Hans">Çince (Basitleştirilmiş) (ZH)</option>
  <option value="zh-Hant">Çince (Geleneksel) (ZH)</option>
  <option value="zh">Çince (ZH)</option>
  <option value="bg">Bulgarca (BG)</option>
  <option value="cs">Çekçe (CS)</option>
  <option value="da">Danca (DA)</option>
  <option value="el">Yunanca (EL)</option>
  <option value="et">Estonyaca (ET)</option>
  <option value="fi">Fince (FI)</option>
  <option value="hu">Macarca (HU)</option>
  <option value="lt">Litvanca (LT)</option>
  <option value="lv">Letonca (LV)</option>
  <option value="ro">Romence (RO)</option>
  <option value="sk">Slovakça (SK)</option>
  <option value="sl">Slovence (SL)</option>
  <option value="sv">İsveççe (SV)</option>
      <!-- Diğer dil seçenekleri -->
    </select>
  </div>
  <button onclick="translateText()" class="btn btn-primary">Çevir</button>
  <button id="copyButton" onclick="copyToClipboard()" class="btn btn-success ml-2">Kopyala</button>

  <h2 class="mt-4">Ana Çeviri</h2>
  <p id="mainTranslation" class="p-3 bg-white rounded border"></p>

  <h5>Alternatif Çeviriler</h5>
  <ul id="alternativeTranslations" class="list-group">
    <!-- Alternatif çeviriler burada listelenecek -->
  </ul>
  <br><br>
</div>

<!-- Bootstrap ve bağımlılıkları -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.9/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>


<script>
function translateText() {
  var sourceText = document.getElementById('sourceText').value.trim(); // Metnin başında ve sonunda boşlukları temizle
  var selectedLang = document.getElementById('languageSelect').value;

  fetch('https://translate.zfc.com.tr/translate', {
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({text: sourceText, lang: selectedLang})
  })
  .then(response => response.json()) // Yanıtı JSON olarak işle
  .then(data => {
    // API'den dönen veriyi kontrol et
    if (data.status && data.data) {
      // Ana çeviri metnini bul ve sayfaya yansıt
      var mainTranslation = data.data.text || "Çeviri bulunamadı.";
      document.getElementById('mainTranslation').innerText = mainTranslation;

      // Alternatif çevirileri işle ve sayfaya yansıt
      var alternativesList = document.getElementById('alternativeTranslations');
      alternativesList.innerHTML = ""; // Alternatif çeviriler listesini temizle
      if (data.data.alternatives && data.data.alternatives.length > 0) {
        // Alternatif çevirileri listele
        data.data.alternatives.forEach(function(alt) {
          var listItem = document.createElement('li');
          listItem.innerText = alt.text;
          alternativesList.appendChild(listItem);
        });
      } else {
        // Alternatif çeviri yoksa, kullanıcıya bilgi ver
        alternativesList.innerHTML = "<li>Alternatif çeviri bulunamadı.</li>";
      }
    } else {
      // API'den geçerli bir çeviri gelmezse hata mesajı göster
      document.getElementById('mainTranslation').innerText = "Çeviri bulunamadı veya bir hata oluştu.";
      document.getElementById('alternativeTranslations').innerHTML = "";
    }
  })
  .catch(error => {
    // Hata yakalama
    console.error('Hata:', error);
    document.getElementById('mainTranslation').innerText = "Hata oluştu: " + error.message;
    document.getElementById('alternativeTranslations').innerHTML = "";
  });
}

function copyToClipboard() {
  var mainTranslationText = document.getElementById('mainTranslation').innerText;
  navigator.clipboard.writeText(mainTranslationText)
    .then(() => {
      var copyButton = document.getElementById('copyButton');
      copyButton.textContent = 'Kopyalandı!'; // Buton metnini değiştir
      setTimeout(function() {
        copyButton.textContent = 'Kopyala'; // 2 saniye sonra eski metnine dön
      }, 3000);
    })
    .catch(err => {
      console.error('Metni kopyalarken bir hata oluştu:', err);
    });
}
</script>

</body>
</html>