
# Çeviriler

Blockstudio çevirilerini `languages` klasöründe sunar. Site dili veya kullanıcı profilindeki dil bunlardan biriyle eşleştiğinde WordPress bu çevirileri kullanır. Bu, Blockstudio bir eklenti, zorunlu kullanım eklentisi veya Composer paketi olarak çalıştırıldığında da aynı şekilde işler.

## Kullanılabilir diller

Blockstudio, bölgesel ve resmî/günlük dil biçimleri de dahil olmak üzere, paketlenmiş `languages/locales.json` içinde kayıtlı WordPress yerel ayarı için çeviriler içerir. İngilizce (`en_US`) kaynak dildir ve bir çeviri dosyasına ihtiyaç duymaz. Liste, GlotPress'te WordPress tarafından desteklenen yerel ayarları, WordPress çekirdek çeviri API'sında bulunan varyantlarla birleştirir.

Mevcut Almanca (`de_DE`) ve resmî Almanca (`de_DE_formal`) çevirileri korunmuştur. Ek çeviriler GPT-6 Luna kullanılarak yapay zekâ tarafından oluşturulmuş ve `.po` başlıklarında makine üretimi olarak işaretlenmiştir. Otomatik tamlık ve biçim denetimlerinden geçerler, ancak hepsi ana dili konuşan kişilerce gözden geçirilmemiştir. Düzeltmeler memnuniyetle karşılanır.

Çeviriler, blok düzenleyicisindeki alan kontrollerini, yönetici sayfasını, tuvali, devtools katmanını ve REST uç noktalarının mesajlarını kapsar. Kendi `block.json` dosyalarınızdaki etiketler ve yardım metinleri temanıza veya eklentinize aittir ve onun metin alanını kullanır.

Dili **Settings > General > Site Language** bölümünden seçin veya WordPress profilinizde kişisel bir dil belirleyin. Blockstudio bu yerel ayarı otomatik olarak kullanır. WordPress dil seçicisine yeni diller eklemez: yerel ayarın WordPress kurulumunuzda da bulunması gerekir. Sitenizde yapay zekâ isteği, çeviri aboneliği veya ek bir çalışma zamanı ayarı gerekmez.

## Bir çeviriyi geçersiz kılma

`wp-content/languages/plugins` içindeki çeviri dosyaları, PHP dizeleri (`blockstudio-de_DE.mo` veya `blockstudio-de_DE.l10n.php`) ve betikler (her betik tanıtıcısı için bir dosya; örneğin `blockstudio-de_DE-blockstudio-blocks.json`) için paketlenmiş dosyalara öncelik tanır.

## Çeviriye katkıda bulunun

Her dil, herhangi bir metin düzenleyiciyle veya Poedit gibi bir çeviri aracıyla düzenleyebileceğiniz bir `.po` dosyasıdır. Düzeltmeler ve yeni diller için pull request'ler memnuniyetle karşılanır.

1. Dil eklemek için `languages/blockstudio.pot` dosyasını `languages/blockstudio-<locale>.po` konumuna kopyalayın; örneğin `blockstudio-fr_FR.po`. Ardından `Language` ve `Plural-Forms` başlıklarını ayarlayın. Bir dili iyileştirmek için mevcut `.po` dosyasını düzenleyin.
2. Dizeleri çevirin. Çeviride `%1$s` gibi yer tutucuları koruyun.
3. `npm run i18n` komutunu çalıştırın. Bu komut, WordPress tarafından yüklenen `.mo`, `.l10n.php` ve `.json` dosyalarını yazar.
4. `.po` dosyasını oluşturulan dosyalarla birlikte kaydedin ve bir pull request açın.

`npm` komutunu çalıştıramıyorsanız, yalnızca `.po` dosyasını içeren bir pull request de uygundur. Oluşturulan dosyalar birleştirme öncesinde eklenebilir.

## Eksik çevirileri oluşturma

Bakımcılar, kimlik doğrulaması yapılmış bir Codex CLI ile eksik girdiler oluşturabilir. Bu isteğe bağlı bir geliştirme komutudur; WordPress tarafından çalıştırılmaz:

```bash
npm run i18n:translate -- --dry-run
npm run i18n:translate
```

Varsayılan model `gpt-6-luna`'dır. Tek bir yerel ayarda çalışmak için `npm run i18n:translate -- --locale fr_FR` kullanın. Komut en güncel kaynak dizeleri çıkarır, eksik çevirileri tamamlar, ardından `.mo`, `.l10n.php` ve betik başına `.json` dosyalarını derler. Codex'a yalnızca herkese açık arayüz dizeleri, bunların bağlamı ve mevcut biçimler gönderilir; site içeriği veya kullanıcı verileri gönderilmez.

Mevcut, boş olmayan çevirilerin üzerine asla yazılmaz. Tamamlanan gruplar kaydedilir; böylece kesinti sonrasında komutu yeniden çalıştırmak eksik işleri sürdürür. `%1$s`, HTML biçimlendirmesi, teknik tanımlayıcılar ve gerekli çoğul biçimleri kaydetmeden önce doğrulanır. Bulanık girdiler ve değişen kaynak çoğul biçimleri, çevirmenin incelemesine bırakılır. İstenen model kullanılamıyorsa yedek bir model kullanılmaz.

`npm run i18n:locales`, yerel ayar listesini ve çoğul kurallarını WordPress/GlotPress'ten açıkça yeniler. `npm run i18n:coverage`, depoda tutulan listedeki her yerel ayarın eksiksiz olduğunu denetler. Ne kapsam denetimleri ne de normal CI, yapay zekâyı çağırır veya yerel ayar verilerini getirir. Gruplama, eşzamanlılık ve kurtarma seçenekleri için depo README dosyasına bakın.

## Koddaki çevrilebilir dizeler

- PHP: `blockstudio` metin alan adıyla WordPress işlevlerini kullanın; örneğin `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: `@/utils/__` kaynağından `__` içe aktarın ve sabit bir metin dizesi iletin; örneğin `__( 'Add row' )`. Çalışma zamanında oluşturulan bir dize çevrilemez; bu nedenle her varyant için tek bir sabit dize kullanın.
- Çevrilebilir dizeler içeren yeni bir betik paketi için `scripts/i18n.ts` içinde bir kayıt ve aynı tanıtıcı ile `Translations::script_path()` kullanılarak yapılan bir `wp_set_script_translations()` çağrısı gerekir.

Dizeleri değiştirdikten sonra `npm run i18n` komutunu çalıştırın. Bu komut `languages/blockstudio.pot` ve tüm `.po` dosyalarını günceller. Bir çevirmen veya `npm run i18n:translate` bunları tamamlayana kadar yeni dizeler İngilizce kalır. CI, güncel olmayan derlenmiş dosyaları, çıkarım sorunlarını veya eksik yerel ayar kapsamını reddeden `npm run i18n:check` ve `npm run i18n:coverage` komutlarını çalıştırır. Oluşturma, bakım sorumlusunun açık bir eylemi olarak kalır.
