Crowdin Uygulamaları JS

Crowdin Uygulamaları JS, Crowdin ile daha kolay etkileşim için oluşturulmuş bir kütüphanedir. Bütünleştirme, iframe’leri kullandığından bu yana, pencereler arasındaki etkileşimde belirli sınırlamalar vardır: ortamlar saklanır ve sayfa içeriğine, koda, stillere ve sayfayla ilgili diğer bilgilere erişimi olmaz.

Crowdin Uygulamaları JS kütüphanesi, pencereler arası mesajlaşma teknolojisine dayanır ve birden çok pencere arasında etkileşim kurmak için postMessage () kullanır.

Başlarken

Bu kütüphaneyi kullanmak için aşağıdaki kodu sayfa üstbilgisine ekleyerek modül sayfasına bağlayın:

<script src="https://cdn.crowdin.com/apps/dist/iframe.js"></script>

Yukarıda bahsedilen kodu ekledikten sonra, genel AP değişkenini kullanabileceksiniz.

Not! iframe.js dosyasını indirmeyin ve bunu doğrudan uygulama sunucunuzdan sunmayın. Etki alanları arası mesajlaşma köprüsünün oluşturulması için iframe.js dosyası Crowdin tarafından sunulmak zorundadır. iframe.js dosyası sadece Crowdin içindeki bir iframe’de kullanılmak üzere tasarlanmıştır ve tek başına web sayfalarında çalışmaz.

Genel Eylemler

Genel eylemler, tüm modül sayfalarında bulunan eylemlerdir.

AP.getContext(geri çağrı)

Yöntem, şu anki sayfayla ilgili bağlam bilgisini alır ve geri çağırmaya koyar. Örneğin, modülün açıldığı proje kimliği veya sayfada kullanılan yerel ayar.

Örnek:

  AP.getContext(function(contextData) {
    console.log("Nesne: bağlam", contextData);
  });

Özellikler:

callback

Tür: işlev

Açıklama: Yanıt nesnesini işleyen geri çağrı.

Bu yöntemin kullanıldığı şu anki sayfaya bağlı olarak yük, farklı bir bağlam bilgisi kümesi içerebilir.

Yük örneği:

{
    "project_id": "12",
    "organization_id": "200000000",
    "editor": {
        "mode": "translate",
        "theme": "dark",
        "source_language_id": "en",
        "target_language_id": "tr",
        "file": 12345,
        "workflow_step": {
            "id": 7777,
            "title": "Çeviri",
            "type": "Translate"
        }
    }
}

Özellikler:

project_id

Tür: dizgi

Açıklama: Crowdin projesinin tanımlayıcısı.

organization_id

Tür: dizgi

Açıklama: Sadece Crowdin Enterprise. Crowdin Enterprise’daki kuruluşun tanımlayıcısı.

editor

Tür: nesne

Açıklama: Düzenleyici için ayarları ve bağlamı içerir.

editor.mode

Tür: dizgi

Açıklama: Düzenleyicinin etkin kipi.

editor.theme

Tür: dizgi

Açıklama: Düzenleyicinin etkin teması.

editor.source_language_id

Tür: dizgi

Açıklama: Kaynak dilin tanımlayıcısı.

editor.target_language_id

Tür: dizgi

Açıklama: Hedef dilin tanımlayıcısı.

editor.file

Tür: tamsayı

Açıklama: Crowdin projesindeki Düzenleyicide açık olan bir dosyanın sayısal tanımlayıcısı.

editor.workflow_step

Tür: nesne

Açıklama: Sadece Crowdin Enterprise. Düzenleyicideki şu anki iş akışı adımının ayrıntıları.

editor.workflow_step.id

Tür: tamsayı

Açıklama: İş akışı adımının sayısal tanımlayıcısı.

editor.workflow_step.title

Tür: dizgi

Açıklama: İş akışı adımının başlığı.

editor.workflow_step.type

Tür: dizgi

Açıklama: İş akışı adımının türü.

AP.getJwtToken(geri çağrı)

Yöntem bir JWT belirteç dizgisi alır. Şu anki bir belirteci almak için kullanılır. Eğer önceki belirtecin bir dakikadan kısa bir geçerlilik süresi varsa, yöntem yeni bir belirteç oluşturacak ve döndürecek.

Örnek:

  AP.getJwtToken(function(jwtToken) {
    console.log("Dizgi: JWT belirteci", jwtToken);
  });

Özellikler:

callback

Tür: işlev

Açıklama: Yanıt dizgisini işleyen geri çağrı.

AP.getTheme()

Yöntem, şu anda seçilmiş olan tema hakkında bilgileri alır.

Örnek:

  AP.getTheme(function(theme) {
    light | dark
  });

Özellikler:

callback

Tür: işlev

Açıklama: Yanıt dizgisini işleyen geri çağrı.

Düzenleyici Modülü Eylemleri

Düzenleyici modülü eylemleri, Düzenleyici kullanıcı arayüzünden bilgi alma imkanı sağlar. Bu eylemler, sadece Düzenleyici-panelleri modülünde bir iframe’e yüklenen sayfalarda kullanılabilir.

AP.editor.getString(geri çağrı)

Yöntem, Düzenleyicide seçilen dizgiyle ilgili bilgileri alır.

Örnek:

  AP.editor.getString(function(stringData) {
    console.log("Nesne: kaynak dizgi", stringData);
  });

Özellikler:

callback

Tür: işlev

Açıklama: Yanıt nesnesini işleyen geri çağrı.

AP.editor.getTranslations(geri çağrı)

Yöntem, Düzenleyicide şu anda seçilen dizgiye önerilen çevirilerin bir listesini alır. Ek olarak yanıt, çeviri yazarı, oy sayısı ve şu anki iş akışı adımındaki onay hakkında bilgiler içerir.

Örnek:

  AP.editor.getTranslations(function(translationsData) {
    console.log("Dizilim: çeviri nesneleri", translationsData);
  });

Özellikler:

callback

Tür: işlev

Açıklama: Yanıt dizilimini işleyen geri çağrı.

AP.editor.getTopTranslation(geri çağrı)

Yöntem, Düzenleyicide şu anda seçilen kaynak dizgi için en iyi çeviriyi (en yüksek önceliğe sahip çeviri) alır.

Örnek:

  AP.editor.getTopTranslation(function(topTranslationData) {
    console.log("Nesne: en iyi çeviri", topTranslationData);
  });

Özellikler:

callback

Tür: işlev

Açıklama: Yanıt nesnesini işleyen geri çağrı.

AP.editor.setTranslation(metin)

Yöntem, Düzenleyicide şu anda seçilen kaynak dizgi için çeviri metnini ayarlar.

Örnek:

AP.editor.setTranslation("Merhaba,");

Özellikler:

text

Tür: dizgi

Açıklama: Şu anda seçilen kaynak dizgi için ayarlanan çeviri metni.

AP.editor.appendTranslation(metin)

Yöntem, çeviri metnini Düzenleyicide şu anda seçilen kaynak dizgi için imlecin yanına ekler.

Örnek:

AP.editor.appendTranslation(" {user},");

Özellikler:

text

Tür: dizgi

Açıklama: Şu anda seçilen kaynak dizgi için imlecin yanına eklenen çeviri metni.

AP.editor.clearTranslation()

Yöntem, Düzenleyicide şu anda seçilen kaynak dizgi için çeviri metnini temizler.

Örnek:

AP.editor.clearTranslation();

AP.editor.setFocus()

Yöntem, Düzenleyicideki çeviri alanına odaklanmayı ayarlar.

Örnek:

AP.editor.setFocus();

AP.editor.noticeMessage(ileti)

Yöntem, bildirim iletisi metnini Düzenleyicide görüntüler.

Örnek:

AP.editor.noticeMessage("İleti metni");

Özellikler:

text

Tür: dizgi

Açıklama: Görüntülenmekte olan bildirim iletisi metni.

AP.editor.successMessage(ileti)

Yöntem, başarı iletisi metnini Düzenleyicide görüntüler.

Örnek:

AP.editor.successMessage("İleti metni");

Özellikler:

text

Tür: dizgi

Açıklama: Görüntülenmekte olan başarı iletisi metni.

AP.editor.errorMessage(ileti)

Yöntem, hata iletisi metnini Düzenleyicide görüntüler.

Örnek:

AP.editor.errorMessage("İleti metni");

Özellikler:

text

Tür: dizgi

Açıklama: Görüntülenmekte olan hata iletisi metni.

AP.editor.setApplicationNotification(1)

Yöntem, Düzenleyicideki sağ panelde uygulama simgesinin yanında bir bildirim sayısı ayarlar.

Örnek:

AP.editor.setApplicationNotification(1);

Özellikler:

count

Tür: tamsayı

Açıklama: Bildirim sayısı numarası.

AP.editor.clearApplicationNotification()

Yöntem, Düzenleyicideki sağ panelde uygulama simgesinin yanında bir bildirim sayısını temizler.

Örnek:

AP.editor.clearApplicationNotification();

Olay Modülü Eylemleri

Olay modülü eylemleri, olaylarla çalışma, Crowdin uygulamasının Crowdin kullanıcı arayüzünde meydana gelen olaylara yanıt vermesini ve kendi olaylarını tetiklemesini sağlar. Desteklenen olaylar hakkında daha fazlasını okuyun.

AP.events.once(event, callback)

Yöntem, belirli bir ada sahip olayları algılamak için tek seferlik bir dinleyiciye abone olur. İlk olay işlenir işlenmez dinleyici abonelikten çıkar.

Örnek:

  AP.events.once("event", function(eventData) {
    console.log("Olay verileri", eventData);
  });

Özellikler:

event

Tür: dizgi

Açıklama: İşlevin geri çağrısının tepki vermesi gereken olayın adı.

callback

Tür: işlev

Açıklama: Olayı işleyen geri çağrı. Olayın türüne bağlı olarak, geri çağrıda ya bir ya da birkaç bağımsız değişken olabilir.

AP.events.on(event, callback)

Yöntem, belirli bir ada sahip tüm olaylara bir dinleyiciyi abone yapar.

Örnek:

  AP.events.on("event", function(eventData) {
    console.log("Olay verileri", eventData);
  });

Özellikler:

event

Tür: dizgi

Açıklama: İşlevin geri çağrısının tepki vermesi gereken olayın adı.

callback

Tür: işlev

Açıklama: Olayı işleyen geri çağrı. Olayın türüne bağlı olarak, geri çağrıda ya bir ya da birkaç bağımsız değişken olabilir.

AP.events.off(event, callback)

Yöntem, belirli bir ada sahip bir olay için bir dinleyicinin aboneliğini kaldırır.

Örnek:

  function callback(eventData) {
    console.log("Olay verileri", eventData);
  };

  AP.events.on("event", callback);
  AP.events.off("event", callback);

Özellikler:

event

Tür: dizgi

Açıklama: İşlevin geri çağrısının aboneliğinin kaldırılması gereken olayın adı.

callback

Tür: işlev

Açıklama: Olaya daha önce abone olan geri çağrı.

AP.events.ofAll(event)

Yöntem, önceden abone olan tüm dinleyicilerin aboneliğini belirtilen olaydan kaldırır.

Örnek:

  AP.events.offAll("event");
event

Tür: dizgi

Açıklama: Tüm dinleyicilerin aboneliğinin kaldırılması gereken olayın adı.

AP.events.onAny(callback)

Yöntem, Crowdin kullanıcı arayüzünden gelen tüm olaylara abone olur.

Örnek:

  AP.events.onAny(function(event, data) {
    console.log("Olay adı dizgisi", event);
    console.log("Olay verileri", data);
  });

Özellikler:

callback

Tür: işlev

Açıklama: Olayın adını ve olaya aktarılan tüm verileri alan geri çağırma.

AP.events.offAny(callback)

Yöntem, bir dinleyicinin tüm olaylardan aboneliğini kaldırır.

Örnek:

  function callback(event, data) {
    console.log("Olay adı dizgisi", event);
    console.log("Olay verileri", data);
  };

  AP.events.onAny(callback);
  AP.events.offAny(callback);

Özellikler:

callback

Tür: işlev

Açıklama: Tüm olaylara abone olan geri çağrı.

Desteklenen Olaylar

Aşağıdaki tabloda Crowdin Apps JS kütüphanesine aktarılabilecek desteklenen olayların listesine göz atın:

Olay Örnek Açıklama
string.change

      {
        "id": 3939912,
        "text": "kaynak dizgi",
        "context": "dizgi bağlamı",
        "max_length": 35,
        "file": {
          "id": 26588,
          "name": "dosya adı.csv"
        }
      }
      
Bir kullanıcı bir dizgiden diğerine geçtiğinde yayılan olay.
textarea.edited

      {
        "id": 3939912,
        "text": "kaynak dizgi",
        "context": "dizgi bağlamı",
        "max_length": 0,
        "file": {
          "id": 26588,
          "name": "dosya adı.csv"
        },
        "oldText": "chaîne de caractères source",
        "newText": "chaîne source"
      }
      
Bir kullanıcı çeviri alanında herhangi bir değişiklik yaptığında yayılan olay.
translation.added

      {
        "id": 422648,
        "string_id": 3939912,
        "text": "kaynak dizgi",
        "target_language_id": "tr",
        "votes_rating": 0,
        "approved": false,
        "author": {
          "id": "1",
          "login": "user.login",
          "name": "Kullanıcı Adı",
          "avatar_url": "https://avatar.com/avatar.png"
        },
        "created_at": "2022-12-09T12:17:37-05:00"
      }
      
Bir kullanıcı şu anki dizgi için bir çeviriyi kaydettiğinde yayılan olay.
translation.deleted

      {
        "id": 422560,
        "string_id": 3939912
      }
      
Bir kullanıcı bir çeviriyi sildiğinde yayılan olay.
translation.restored

      {
        "id": 422648,
        "string_id": 3939912,
        "text": "kaynak dizgi",
        "target_language_id": "tr",
        "“votes_rating”": 0,
        "author": {
          "id": "1",
          "login": "user.login",
          "name": "Kullanıcı Adı",
          "avatar_url": "https://avatar.com/avatar.png"
        },
        "created_at": "2022-12-09T12:17:37-05:00"
      }
      
Bir kullanıcı silinmiş bir çeviriyi geri yüklediğinde yayılan olay.
translation.vote

      {
        "id": 422648,
        "string_id": 3939912,
        "text": "kaynak dizgi",
        "target_language_id": "tr",
        "votes_rating": 1,
        "approved": false,
        "author": {
          "id": "1",
          "login": "user.login",
          "name": "Kullanıcı Adı",
          "avatar_url": "https://avatar.com/avatar.png"
        },
        "created_at": "2022-12-09T12:17:37-05:00"
      }
      
Bir kullanıcı bir çeviri için oy verdiğinde yayılan olay.
translation.approve

      {
        "id": 422648,
        "string_id": 3939912,
        "text": "kaynak dizgi",
        "target_language_id": "tr",
        "votes_rating": 0,
        "approved": true,
        "author": {
          "id": "1",
          "login": "user.login",
          "name": "Kullanıcı Adı",
          "avatar_url": "https://avatar.com/avatar.png"
        },
        "created_at": "2022-12-09T12:17:37-05:00",
        "approver": {
          "id": "1",
          "login": "super.user",
          "name": "Super Kullanıcı",
          "avatar_url": "https://avatar.com/avatar.png"
        },
        "approved_at": "2022-12-09T17:20:28.655Z"
      }
      
Kullanıcı bir çeviriyi onayladığında yayılan olay.
translation.disapprove

      {
        "id": 422406,
        "string_id": 3939858,
        "text": "kaynak dizgi",
        "target_language_id": "tr",
        "votes_rating": 0,
        "approved": false,
        "author": {
          "id": "1",
          "login": "user.login",
          "name": "Kullanıcı Adı",
          "avatar_url": "https://avatar.com/avatar.png"
        },
        "created_at": "2022-12-08T12:29:07-05:00"
      }
      
Kullanıcı bir çeviri onayını kaldırdığında yayılan olay.
language.change

      {
        "project_id": "15",
        "organization_id": "200000000",
        "editor": {
          "mode": "translate",
          "theme": "dark;",
          "source_language_id": "en",
          "target_language_id": "tr",
          "file": 26588,
          "workflow_step": {
            "id": 77,
            "title": "Çeviri",
            "type": "Translate"
          }
        }
      }
      
Bir kullanıcı Düzenleyicide bir hedef dili değiştirdiğinde yayılan olay.
file.change

      {
        "project_id": "15",
        "organization_id": "200000000",
        "editor": {
          "mode": "translate",
          "theme": "dark;",
          "source_language_id": "en",
          "target_language_id": "tr",
          "file": 26574,
          "workflow_step": {
            "id": 77,
            "title": "Çeviri",
            "type": "Translate"
          }
        }
      }
      
Bir kullanıcı Düzenleyicide bir dosyayı değiştirdiğinde yayılan olay.
theme.changed

      "light"
      
Bir kullanıcı bir temadan diğerine geçtiğinde yayılan olay.

Bu makale yararlı oldu mu?