Dosya İçe Aktarma Sonrası İşleme Modülü

İçe aktarma sonrası modülü, dosya içe aktarımından sonra dosyalarınızdan ayrıştırılan dizgileri değiştirmenizi sağlar. Bu modül hem kaynak dizgilerle hem de bunların ilgili çevirileriyle çalışır. İçe aktarma öncesi modülü, özellikle orijinal dosya yapısını korumak ve olduğu gibi ayrıştırmak, ancak kaynak dizgilerde, bağlamda, dizgi çevirilerinde bazı değişiklikler yapmak veya etiketler ve çeviriler için en fazla uzunluk sınırları, vb. eklemek istiyorsanız kullanışlıdır.

İçe aktarma sonrası modülünün yardımıyla, dosya içeriği ve ondan ayrıştırılan dizgiler ile bir yük alacaksınız. İçe aktarma sonrası modülünü kullanarak, ayrıştırılan dizgileri çeşitli şekillerde değiştirebilir (örn. bölme, birleştirme veya yeni dizgiler ekleme) ve değiştirilen dizgileri geri getirebilirsiniz. Bu, dosya içeriğini doğrudan değiştirmeden dizgileri özelleştirmenizi sağlar.

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-post-import": [
    {
      "key": "içe-aktarma-sonrası-modül-anahtarınız",
      "url": "/içe-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 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, sistem signaturePatterns parametresini kullanarak uygun bir içe aktarma sonrası modülünü algılar ve çıkarılan dizgileri içeren daha fazla işlem için uygulamanın URL’sine ($baseUrl . $url) bir HTTP isteğinde bulunur.

Dosya işleme uygulaması, alınan dizgileri ihtiyaçlarınıza göre değiştirecektir. İçe aktarma sonrası modülü, bölmenize, birleştirmenize, yeni dizgiler eklemenize veya varolanların özniteliklerini düzenlemenizi sağlar. Değiştirilen dizgiler, içe aktarma sonrası modülden döndürüldükten sonra Crowdin projesine eklenir ve çeviri için kullanılabilir hale gelir.

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-post-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
    }],
    "strings": [...],
    "stringsUrl": "https://tmp.downloads.crowdin.com/strings.ndjson",
}

Özellikler:

jobType

Tür: dizgi

Değer: file-post-import

Açıklama: Dosyanın içe aktarma sonrası 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 içe aktarımından sonra çıkarılan dizgiler 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-post-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": {
        "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, içe aktarma işleminden sonra 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?