Weblate platformunu özelleştirmek

Django ve Python kullanarak zenginleştirebilir ve özelleştirebilirsiniz. Herkesin yararlanabilmesi için değişikliklerinizi yukarı akışa katın. Bu yöntem, bakım maliyetlerinizi azaltır. İç arayüzler değiştirilirken veya kod yeniden düzenlenirken Weblate üzerindeki kod ele alınır.

İpucu

Weblate görünümünü Görünüm özelleştirmesi bölümünden de özelleştirebilirsiniz.

Uyarı

Ne iç arayüzler ne de kalıplar kararlı bir API olarak kabul edilmez. Lütfen her yükseltme için kendi özelleştirmelerinizi gözden geçirin. Arayüzler veya bağlamları önceden bildirilmeksizin değişebilir.

Bir Python modülü oluşturmak

Python ile ilgili değilseniz, temel bilgileri açıklayan ve eğitimlerin bulunduğu Yeni başlayanlar için Python bölümüne bakmak isteyebilirsiniz.

Özel Python kodu (modül olarak adlandırılır) içeren bir dosya yazmak için, sistem yolunda (genellikle /usr/lib/python3.12/site-packages/ gibi bir şey) veya yorumlayıcı arama yoluna da eklenen Weblate klasöründe bir depolama alanına gerek duyulur.

İpucu

Docker kullanıldığında, Python modüllerini /app/data/python/ (see Docker kapsayıcısı birimleri) içine yerleştirebilirsiniz. Böylece Weblate bunları yükleyebilir. Örneğin bir ayar değiştirme dosyası kullanabilirsiniz.

Daha da iyisi, özelleştirmenizi uygun bir Python paketine dönüştürebilirsiniz:

  1. Paketiniz için bir klasör oluşturun (weblate_customization kullanacağız).

  2. İçinde paketi açıklayan bir pyproject.toml dosyası oluşturun:

    [build-system]
    requires = ["uv_build>=0.8.18,<0.9.0"]
    build-backend = "uv_build"
    
    [project]
    name = "weblate-customization"
    version = "0.1.0"
    description = "Add your description here"
    requires-python = ">=3.13"
    dependencies = []
    
  3. Python modülü için bir klasör oluşturun src/weblate_customization

  4. İçinde bir __init__.py dosyası oluşturarak modülün Python tarafından içe aktarabildiğinden emin olun.

  5. Bu paket artık uv pip install -e kullanılarak kurulabilir. Ayrıntılı bilgi almak için: Düzenlenebilir paketler belgeleri.

  6. Kurulduktan sonra, modül Weblate yapılandırmasında kullanılabilir (weblate_customization.checks.FooCheck gibi).

Paket yapınız şöyle görünmelidir:

weblate_customization
├── pyproject.toml
└── src
    └── weblate_customization
        ├── __init__.py
        ├── addons.py
        └── checks.py

<https://github.com/WeblateOrg/customize-example> adresinde bir Weblate özelleştirme örneği bulabilirsiniz. Bu örnek aşağıda açıklanan tüm konuları kapsar.

Özel kalite denetimleri, eklentiler, kendiliğinden öneriler ve kendiliğinden düzeltmeler

Weblate üzerine Özel kendiliğinden düzeltmeler, Kendi denetimlerinizi oluşturmak, Özel makine çevirisi ya da Eklenti yazma kodunuzu kurmak için:

  1. Dosyaları Weblate özelleştirmesinin bulunduğu Python modülünüze yerleştirin (ayrıntılı bilgi almak için: Bir Python modülü oluşturmak veya Kodu özelleştirmek).

  2. Özel ayarlardaki Python sınıfına tam yolunu ekleyin:

# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)

# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)

# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)

# Automatic suggestions
WEBLATE_MACHINERY += ("weblate_customization.machinery.SampleTranslation",)