Dosya İçe Aktarma Öncesi İşleme Modülü

İçe aktarma öncesi modülü, dosyalarınızı Crowdin’e aktarmadan önce değiştirmenizi sağlar. İçe aktarma öncesi modülü ile seçilen dosyalara otomatikleştirilmiş değişiklikler uygulayabilirsiniz. Bu modül, içeriklerini özelleştirmek için TXT, XML, JSON ve çok daha fazlası gibi çok çeşitli dosya biçimleriyle çalışabilir.

Crowdin uygulamanızdaki içe aktarma öncesi modülünü kullanarak dosya biçimini, yapısını ve içeriğini ayarlayabilirsiniz. Modül, Crowdin dosyayı içe aktarmadan önce çalıştırıldığından, dosya sistem tarafından işlenmeden önce içerikte ince ayar yapabilirsiniz.

Bu modüle aşağıdaki kullanıcı kategorilerinden biri için erişim verebilirsiniz:

Crowdin için:

  • Sadece ben (yani proje sahibi)
  • Tüm proje üyeleri
  • Seçilen kullanıcılar

Crowdin Enterprise için:

  • Sadece kuruluş üst yöneticileri
  • Kuruluş projelerindeki tüm kullanıcılar
  • Seçilen kullanıcılar

Yapı

{
  "file-pre-import": [
    {
      "key": "içe-aktarma-öncesi-modül-anahtarınız",
      "url": "/içe-aktarma-dosyası",
      "signaturePatterns": {
        "fileName": "^.+\\.xml$",
        "fileContent": "<properties>\\s*<property\\s+name=.*value=.*/>"
      }
    }
  ]
}

Özellikler

key

Tür: dizgi

Zorunlu: evet

Açıklama: Crowdin uygulaması içindeki modül tanımlayıcısı.

url

Tür: dizgi

Zorunlu: evet

Açıklama: Dosya içe aktarma, güncelleme ve çeviri yüklemede tetiklenen göreceli URL.

signaturePatterns

Tür: nesne

Açıklama: Kullanıcı arayüzü (veya belirtilen type parametresi olmadan API aracılığıyla) aracılığıyla yeni bir kaynak dosya yüklerken dosya türünü algılamak için kullanılan fileName ve/veya fileContent düzenli ifadelerini içerir.

Not: fileContent düzenli ifadesi, dosya içeriğinin sadece ilk 64 KB’ını denetler.

Dosya İşleme Uygulaması ve Crowdin arasındaki İletişim

Bir dosyayı içe aktarırken Crowdin, signaturePatterns parametresini kullanarak uygun bir modül algılar ve daha fazla işleme için uygulamanın URL’sine ($baseUrl . $url) bir HTTP isteğinde bulunur.

İlave olarak, dosyayı içe aktarma sırasında Crowdin, uygun dosya işleme uygulaması modülleriyle eşleştiğinden emin olmak için dosya adını ve içeriğini de doğrulayacaktır. Bu süreç, içe aktarılmadan önce dosyanın içeriğini değiştirmek için içe aktarma öncesi işleme modülünü ve dosyadan çıkarılan dizgileri değiştirmek için içe aktarma sonrası işleme modülünü içerebilir.

Dosya içeriğini değiştirmek için sistem önce uygun içe aktarma öncesi modülünü bulur ve dosya içeriğini ona gönderir. Modül daha sonra dosya biçimi değişikliklerini, yapıyı ve içerik güncellemelerini içerebilen önceden belirlenmiş değişiklikleri gerçekleştirir.

İçe aktarma öncesi modülü dosya değişikliklerini tamamladıktan sonra, Crowdin yeni bir dosya adı veya varsa uzantısının yanı sıra değiştirilen dosya içeriğini alır.

Dosya İşleme Uygulamasına İstek

İstek yükü örneği:

// en fazla istek yükü - 5 MB
// bekleme zaman aşımı - 2 dakika
{
    "jobType": "file-pre-import",
    "organization": {
        "id": 1,
        "domain": "{etki_alanı}",
        "baseUrl": "https://{etki_alanı}.crowdin.com",
        "apiBaseUrl": "https://{etki_alanı}.api.crowdin.com"
    },
    "project": {
        "id": 1,
        "identifier": "proje-tanımlayıcınız",
        "name": "Proje Adınız"
    },
    "file": {
        "id": 1,
        "name": "dosya.xml",
        "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 kodlanmış kaynak dosya içeriği
        "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/dosya.xml?aws-signature=..." // kaynak dosya ortak URL’si
    },
    "sourceLanguage": {
        "id": "tr",
        "name": "Turkish",
        "editorCode": "tr",
        "twoLettersCode": "tr",
        "threeLettersCode": "tur",
        "locale": "tr-TR",
        "androidCode": "tr-rTR",
        "osxCode": "tr.lproj",
        "osxLocale": "tr",
        "pluralCategoryNames": ["one"],
        "pluralRules": "(n != 1)"
    },
    "targetLanguages": [
        {
            // sourceLanguage ile aynı yapı, yeni bir kaynak dosya yüklerken boş, çevirileri içe aktarma için bir öğe, çokdilli dosyalar için daha fazla olabilir
        }
    ]
}

Özellikler:

jobType

Tür: dizgi

Değer: file-pre-import

Açıklama: Dosyanın içe aktarma öncesi modülünün eylemini belirtir.

file.content, file.contentUrl

Tür: dizgi

Açıklama: Base64 kodlanmış kaynak dosya içeriğini (file.content) veya bir kaynak dosya ortak URL’sini (file.contentUrl) geçirmek için kullanılan parametreler.
Bu iki parametreden biri kullanılabilir (Not: En fazla istek yükü sınırı 5 MB’tır).

file-pre-import İş Türü için Uygulamadan Beklenen Yanıt

Yanıt yükü örneği:

// en fazla yanıt yükü - 5 MB
// bekleme zaman aşımı - 2 dakika
{
    "data": {
        "content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 kodlanmış değiştirilmiş dosya içeriği
        "contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=...", // değiştirilmiş dosya ortak URL’si
        "fileName": "dosya.html" // isteğe bağlı, uzantıya sahip yeni dosya adı
        "fileType": "webxml"  // isteğe bağlı, Crowdin’in bir dosyayı içe aktarmak için kullanması gereken bir içe aktarıcı
    },
    "error": {
        "message": "Hata iletiniz"
    }
}

Özellikler:

data.content, data.contentUrl

Tür(data.content) dizgi

Tür(data.contentUrl) dizgi

Açıklama: Base64 kodlanmış değiştirilmiş dosya içeriğini (data.content) veya bir değiştirilmiş dosya ortak URL’sini (data.contentUrl) geçirmek için kullanılan parametreler.
Bu iki parametreden biri kullanılabilir (Not: En fazla yanıt yükü sınırı 5 MB’tır).

fileName

Tür: dizgi

Açıklama: Bir dosya adının ve uzantısının üzerine yenisini yazmak için kullanılan isteğe bağlı parametre.

fileType

Tür: dizgi

Açıklama: Crowdin’in bir dosyayı içe aktarmak amacıyla kullanması gereken bir içe aktarıcı belirtmek için isteğe bağlı parametre.

error.message

Tür: dizgi

Açıklama: Uygulamadan Crowdin’e geçirilebilen ve kullanıcı arayüzündeki bir kullanıcı tarafından görülebilecek bir hata iletisi.

Bu makale yararlı oldu mu?