Gunumuzun kureselleşen dunyasında, web sitenizin dunyanın farklı yerlerinden kullanıcılar tarafından erişilebilir olmasını sağlamak cok onemlidir. Bunu başarmanın bir yolu, ceşitli dil tercihlerine hitap eden cok dilli bir web sitesi oluşturmaktır. Gettext uzantısı sayesinde PHP ile cok dilli bir web sitesi oluşturmak kolaydır. Bu makalede, gettext kullanarak PHP web uygulamanızda birden cok dili uygulama surecinde size rehberlik edeceğim.

Gettext Nedir?
Gettext, program mesajlarını cevirmek icin bir GNU kitaplığıdır. Geliştiricilerin iceriği koddan ayırmasına olanak tanıyarak ceviriyi daha verimli hale getirir. gettext uzantısı PHP icin mevcuttur ve PHP web uygulamalarının uluslararasılaştırılmasını (i18n) ve yerelleştirilmesini (l10n) destekler. gettext ile farklı diller icin kolayca ceviri dosyaları oluşturabilir ve bunları PHP kodlarınıza entegre edebilirsiniz.

1. Adım: Gettext'i Yukleme
PHP ve gettext ile cok dilli bir web sitesi oluşturmanın ilk adımı, gettext uzantısını yuklemektir. Aşağıdaki komutu kullanarak gettext'i Ubuntu/debian tabanlı sistemlere kurabilirsiniz:
Kod:
sudo apt-get install php-gettext

Başka işletim sistemleri kullanıyorsanız kurulum talimatları icin PHP belgelerine bakın.

2. Adım: Ceviri Dosyaları Oluşturma
gettext uzantısını yukledikten sonra, desteklemek istediğiniz diller icin ceviri dosyaları oluşturmanız gerekir. Ceviri dosyaları, web siteniz veya uygulamanız icin cevrilmiş dizeleri icerir.

Bir ceviri dosyası oluşturmak icin POedit aracını kullanın. POedit, ceviri dosyaları oluşturmanıza, duzenlemenize ve yonetmenize olanak tanıyan, platformlar arası bir gettext katalog duzenleyicisidir. POedit ile boş bir dosya acın ve dile karşılık gelen bir dosya adıyla kaydedin. Orneğin, bir İngilizce ceviri dosyası oluşturuyorsanız, onu en_US.po olarak adlandırın.

3. Adım: Cevrilecek Dizeleri Cıkarma
Ceviri dosyalarınızı oluşturduktan sonra, cevrilebilir dizeleri PHP kodunuzdan cıkarmanız gerekir. Bunu xgettext komut satırı aracını kullanarak yapabilirsiniz. Bu yardımcı program, PHP kodunuzu tarar ve tum cevrilebilir dizeleri bir POT (Taşınabilir Nesne Şablonu) dosyasına cıkarır.

xgettext'i kullanmak icin terminalde projenizin dizinine gidin ve aşağıdaki komutu calıştırın:
Kod:
xgettext --language=PHP --output=messages.pot **/*.php

Bu komut, xgettext'e proje dizininizdeki tum PHP dosyalarını taramasını ve message.pot adlı bir POT dosyası oluşturmasını soyler.
Genişletmek icin tıkla ...

Adım 4: Dizeleri Cevirme
Cevrilecek dizeleri cıkardıktan sonra, bunları desteklemek istediğiniz dillere cevirmeniz gerekir. POedit, dizeleri cevirmeyi kolaylaştırır. Ceviri dosyasındaki her dize, mesaj kimliği olarak bilinen benzersiz bir tanımlayıcıya sahip olmalıdır. İleti kimliği, gettext'in orijinal dizeyi cevrilmiş dizeyle eşleştirmek icin kullandığı şeydir.

5. Adım: Ceviri Dosyalarını Derleme
.po dosyasındaki dizeleri cevirdikten sonra, bunları PHP uygulamanızın okuyabileceği bir bicimde derlemeniz gerekir. Bunu yapmak icin gettext tarafından sağlanan msgfmt komut satırı aracını kullanın.

.po dosyasını bir ikili .mo dosyasına derlemek icin terminalde projenizin dizinine gidin ve aşağıdaki komutu calıştırın:
Kod:
msgfmt -o en_US.mo en_US.po

en_US'u ceviri dosyanızın dosya adıyla değiştirin.

Adım 6: Cevirileri PHP Kodunuza Yukleme
Ceviri dosyasını derledikten sonra, bunları PHP kodunuza yukleyin. Bunu yapmak icin, gettext uzantısı tarafından sağlanan setlocale ve bindtextdomain işlevlerini kullanın.
Kod:
// Set locale to English (US) setlocale(LC_ALL, 'en_US'); // Bind text domain to the path containing your translation files bindtextdomain('messages', '/path/to/translations'); // Specify the domain name and path to the locale directory textdomain('messages');

Cevirileri yukledikten sonra, gettext işlevini cağırarak bunları PHP kodunuzda kullanmaya başlayabilirsiniz:
Kod:
echo _("Hello World");

Gettext işlevi, gecerli yerel ayara gore cevrilmiş dizeyi dondurur.

PHP web uygulamanız icin coklu dil desteği uygulamak, daha geniş bir kitleye ulaşmak icin cok onemlidir. Guclu gettext aracıyla, iceriği koddan ayırmak ve web sitenizi birden cok dile cevirmek kolaydır. Bu makalede belirtilen adımları izleyerek, dunyanın farklı yerlerinden kullanıcılara hitap eden PHP ve gettext ile cok dilli bir web sitesi oluşturabilirsiniz.