Dosya Dışa Aktarma Öncesi İşleme Modülü

Dışa aktarma öncesi modülü, dosyayı dışa aktarmadan önce dizgileri değiştirmenizi sağlar. Bu modül hem kaynak dizgilerle hem de bunların ilgili çevirileriyle çalışır. Dışa aktarma öncesi modülü, özellikle orijinal dosya yapısını korumak ve olduğu gibi dışa aktarmak, ancak çevrilmiş dizgilerde bazı değişiklikler yapmak istiyorsanız kullanışlıdır.

Dışa aktarma öncesi modülün yardımıyla, dışa aktarma için dosya içeriği ve dizgileri içeren bir yük alacaksınız. Dışa aktarma öncesi modülünü kullanarak, çevrilmiş dizgileri değiştirebilir ve dışa aktarma için geri gönderebilirsiniz. Bu, dosya içeriğini doğrudan değiştirmeden dizgileri özelleştirmenizi sağlar.

Not: Eğer dosya işleme uygulamanız, içe aktarma sonrası modülünü kullanarak dizgi miktarını değiştirdiyse, dışa aktarma öncesi modülünün orijinal dizgi miktarını dizgi uniqId’si ile birlikte döndürdüğünden emin olun.

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-export": [
    {
      "key": "dışa-aktarma-öncesi-modül-anahtarınız",
      "url": "/dışa-aktarma-dizgileri",
      "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 dışa aktarımında tetiklenen göreceli URL.

signaturePatterns

Tür: nesne

Açıklama: Bir çeviri dosyasını dışa aktarırken dosya türünü algılamak için kullanılan fileName ve/veya fileContent normal 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ı dışa aktarırken, sistem signaturePatterns parametresini kullanarak uygun bir dışa aktarma öncesi modülünü algılar ve kaynak dizgileri ve bunların ilgili çevirilerini içeren daha fazla işlem için uygulamanın URL’sine ($baseUrl . $url) bir HTTP isteğinde bulunur.

Dosya işleme uygulaması, dizgi çevirilerini ihtiyaçlarınıza göre değiştirecektir. Başarılı bir çeviri dışa aktarımı sağlamak için dışa aktarma öncesi modülünün orijinal dizgi miktarını dizgi uniqId’si ile birlikte döndürdüğünden emin olun. Değiştirilmiş dizgiler, dışa aktarma öncesi modülden döndürüldükten sonra, bir çeviri dosyası oluşturmak için kullanılı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-export",
    "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ı, dışa aktarma için bir öğe, çokdilli dosyalar için daha fazla olabilir
    }],
    "strings": [...],
    "stringsUrl": "https://tmp.downloads.crowdin.com/strings.ndjson",
}

Özellikler:

jobType

Tür: dizgi

Değer: file-pre-export

Açıklama: Dosyanın dışa 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).

strings, stringsUrl

Tür(strings): dizilim

Tür(stringsUrl) dizgi

Açıklama: Dosya dışa aktarımından önce kaynak dizgiler ve ilgili çevirileri için kullanılan parametreler. strings - dizgiler dizilimi. stringsUrl - dizgilere sahip yeni satırla ayrılmış json ortak URL’si.
Bu iki parametreden biri kullanılabilir (Not: En fazla istek yükü sınırı 5 MB’tır).

file-pre-export İş 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": {
        "strings": [...], // değiştirilmiş dizgiler dizilimi
        "stringsUrl": "https://app.example.com/jKe8ujs7a-segments.ndjson", // değiştirilmiş dizgileri olan yeni satırla ayrılmış json dosyası
    },
    "error": {
        "message": "Hata iletiniz"
    }
}

Özellikler:

data.strings, data.stringsUrl

Tür(data.strings): dizilim

Tür(data.stringsUrl) dizgi

Açıklama: Değiştirilmiş dizgilerin içeriğini geçirmek için kullanılan parametreler.
data.strings - değiştirilmiş dizgiler dizilimi.
data.stringsUrl - değiştirilmiş dizgileri olan yeni satırla ayrılmış json ortak URL’si.
Bu iki parametreden biri kullanılabilir (Not: En fazla istek yükü sınırı 5 MB’tır).

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.

Dizgilerin Dizilim Yapısı

Aşağıda, dışa aktarma işleminden önce uygulamanın alacağı dizgilerin bir örneğini görebilirsiniz. Aynı yapı, uygulama yanıtındaki değiştirilen dizgiler için kullanılır.

Yük örneği:

// dizgiler, URL ile geçirildiyse "yeni satırla ayrılmış json" biçiminde olmalıdır
[
    { // çoğul olmayan dizgi
        "uniqId": "9cdfb439c7876e703e307864c9167a15::1", // zorunlu, benzersiz kimlik 
        "identifier": "dizgi-anahtarı-1", // zorunlu
        "context": "Bazı bağlamlar", // isteğe bağlı
        "maxLength": 10, // isteğe bağlı, varsayılan null
        "isHidden": false, // isteğe bağlı, varsayılan null
        "hasPlurals": false, // isteğe bağlı, varsayılan false
        "labels": ["etiket-bir", "etiket-iki"], // isteğe bağlı, varsayılan []
        "text": "Dizgi kaynak metni", // zorunlu
        "translations": { // isteğe bağlı
            "tr": { // targetLanguage.id
                "text": "Metnin çevirisi", // zorunlu
                "status": "untranslated | translated | approved" // isteğe bağlı, varsayılan "translated"
            }
          // çok dilli için diğer diller olabilir, istek yükünde "targetLanguages" seçeneğini işaretleyin
        }
    },
    { // çoğul dizgi
        "uniqId": "9cdfb439c7876e703e307864c9167a15::2", // zorunlu, benzersiz kimlik
        "identifier": "dizgi-anahtarı-2",
        "context": "Bazı isteğe bağlı bağlamlar",
        "maxLength": 15,
        "isHidden": false,
        "hasPlurals": true,
        "labels": [],
        "text": { // sourceLanguage.pluralCategoryNames’ten gelen anahtarlar
            "one": "One file",
            "other": "%d files"
        },
        "translations": {
            "tr": {
                "text": { // targetLanguage.pluralCategoryNames’ten gelen anahtarlar
                    "one": "Bir dosya",
                    "few": "%d dosya",
                    "many": "%d dosya"
                },
                "status": {
                    "one": "untranslated",
                    "few": "translated",
                    "many": "approved"
                }
            }
        }
    }
]

Özellikler:

uniqId

Tür: dizgi

Açıklama: Dosya içinde benzersiz tanımlayıcı.

identifier

Tür: dizgi

Açıklama: Görünür dizgi anahtarı.

Bu makale yararlı oldu mu?