Weblate içerik aktarım ağını kullanarak HTML ve JavaScript çevirmek

Weblate 4.2 sürümünden başlayarak, JavaScript yerelleştirme CDN eklentisini kullanarak yerelleştirme bir içerik aktarımı ağı (CDN) üzerine dışa aktarılabilir.

Not

Bu özellik, Hosted Weblate hizmetinden yapılandırılır. Kurulumunuz için ek yapılandırma gerekir. Ayrıntılı bilgi almak için: LOCALIZE_CDN_URL ve LOCALIZE_CDN_PATH.

Bileşeninize kurulduktan sonra, kaydedilmiş çevirileri (ayrıntılı bilgi almak için: Lazy commit işlemeleri) içerik aktarım ağına iter ve bu çeviriler site sayfalarınızı yerelleştirmek için kullanılabilir.

Bileşen oluşturmak

İlk olarak, dizgelerinizi tutacak tek dilli bir bileşen oluşturmanız gerekir. Bununla ilgili genel yönergeler için Çeviri projelerini ve bileşenleri eklemek bölümüne bakın.

Başlamak için var olan bir deponuz varsa (HTML dosyalarının bulunduğu bir depo gibi), kaynak dil için depoda boş bir JSON dosyası oluşturun (ayrıntılı bilgi almak için: Kaynak dil). Örneğin locales/en.json. Nesnenin boş olduğunu belirtmek için içerik {} olmalıdır. Bundan sonra, depoyu Weblate üzerine aktarabilir ve bir eklenti yapılandırmasıyla başlayabilirsiniz.

İpucu

Var olan çevirileriniz varsa, bunları JSON dil dosyalarına yerleştirerek Weblate üzerinde kullanabilirsiniz.

Var olan depoyu kullanmak istemeyenler için (ya da bir deposu olmayanlar için), bileşen oluştururken Sıfırdan başla seçeneğini ve dosya biçimi olarak JSON dosyası seçeneğini seçin (bu noktada herhangi bir tek dilli biçim seçilmesi sorun değildir).

Weblate CDN eklentisini yapılandırmak

JavaScript yerelleştirme CDN eklentisi birkaç yapılandırma seçeneği sunar.

Çeviri eşiği

Bu eşiği aşan çeviriler içerik aktarım ağına katılır.

CSS seçici

HTML belgelerinde hangi dizgelerin çevrilebilir olduğunu yapılandırır. Ayrıntılı bilgi almak için: Weblate CDN için dizge ayıklamak ve Weblate CDN kullanarak HTML yerelleştirmek.

Dil tanımlama bilgisinin adı

Kullanıcının seçtiği dili içeren çerezin adı. JavaScript kod parçasında Weblate CDN kullanarak HTML yerelleştirmek için kullanılır.

Dizgeleri HTML dosyalarından ayıklama

Weblate tarafından çevrilebilir dizgelerin aranacağı ve bunları çeviri için sunulacağı depodaki dosyaların ya da adreslerin listesi. Ayrıntılı bilgi almak için: Weblate CDN için dizge ayıklamak.

Weblate CDN için dizge ayıklamak

Çeviri dizgeleri Weblate üzerinde bulunmalıdır. Bunları el ile yönetebilir, oluşturmak için API kullanabilir ya da HTML dosyalarından dizgeleri ayıkla komutunu kullanarak dosyaları ya da adresleri listeleyebilirsiniz. Weblate bunları kendiliğinden ayıklar. Dosyalar depoda ya da Weblate tarafından düzenli olarak indirilecek ve ayrıştırılacak uzak adreslerde bulunmalıdır.

CSS seçici için varsayılan yapılandırma, CSS sınıfı l10n olan ögeleri ayıklar. Örneğin aşağıdaki parçacıklardan iki dizge ayıklanır:

<section class="content">
    <div class="row">
        <div class="wrap">
            <h1 class="section-title min-m l10n">Maintenance in progress</h1>
            <div class="page-desc">
                <p class="l10n">We're sorry, but this site is currently down for maintenance.</p>
            </div>
        </div>
    </div>
</section>

Var olan kodu değiştirmek istemiyorsanız, tüm ögelerin işlenmesi için seçici olarak * kullanabilirsiniz.

Not

Şu anda, yalnızca ögelerin metni ayıklanıyor. Bu eklenti, öge özniteliklerinin ya da alt ögeleri olan ögelerin yerelleştirilmesini desteklemez.

Weblate CDN kullanarak HTML yerelleştirmek

Bir HTML belgesini yerelleştirmek için weblate.js betiğini yüklemelisiniz:

<script src="https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/weblate.js" async></script>

Yüklendikten sonra, eşleşen tüm çevrilebilir ögeler kendiliğinden bulunur (CSS seçici yapılandırmasına göre) ve metinleri bir çeviriyle değiştirir.

Kullanıcı dili, yapılandırılmış çerezden algılanır ve tarayıcıda yapılandırılan kullanıcı tarafından yeğlenen dillere döner.

Dil çerezi adı diğer uygulamalarla bütünleştirme için yararlı olabilir (örneğin, Django kullanırken django_language olarak seçin).

JavaScript yerelleştirmek

Tek tek çeviriler, içerik aktarım ağı altında iki dilli JSON dosyaları olarak hazırlanır. Birini almak için şu kodu kullanabilirsiniz:

fetch(("https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/cs.json")
  .then(response => response.json())
  .then(data => console.log(data));

Bu durumda gerçek yerelleştirme mantığının uygulanması gerekir.