İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

PHP Gettext ile Çok Dilli Web Sitesi Oluşturma

oxcakmak

0
İyinet Üyesi
Katılım
2 Ağustos 2018
Mesajlar
158
Reaction score
47
Konum
Kocaeli
Günümüzün küreselleşen dünyasında, web sitenizin dünyanın farklı yerlerinden kullanıcılar tarafından erişilebilir olmasını sağlamak çok önemlidir. Bunu başarmanın bir yolu, çeşitli dil tercihlerine hitap eden çok dilli bir web sitesi oluşturmaktır. Gettext uzantısı sayesinde PHP ile çok dilli bir web sitesi oluşturmak kolaydır. Bu makalede, gettext kullanarak PHP web uygulamanızda birden çok dili uygulama sürecinde size rehberlik edeceğim.

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

1. Adım: Gettext'i Yükleme
PHP ve gettext ile çok dilli bir web sitesi oluşturmanın ilk adımı, gettext uzantısını yüklemektir. 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ı için PHP belgelerine bakın.

2. Adım: Çeviri Dosyaları Oluşturma
gettext uzantısını yükledikten sonra, desteklemek istediğiniz diller için çeviri dosyaları oluşturmanız gerekir. Çeviri dosyaları, web siteniz veya uygulamanız için çevrilmiş dizeleri içerir.

Bir çeviri dosyası oluşturmak için POedit aracını kullanın. POedit, çeviri dosyaları oluşturmanıza, düzenlemenize ve yönetmenize olanak tanıyan, platformlar arası bir gettext katalog düzenleyicisidir. POedit ile boş bir dosya açın ve dile karşılık gelen bir dosya adıyla kaydedin. Örneğin, bir İngilizce çeviri dosyası oluşturuyorsanız, onu en_US.po olarak adlandırın.

3. Adım: Çevrilecek Dizeleri Çıkarma
Çeviri dosyalarınızı oluşturduktan sonra, çevrilebilir dizeleri PHP kodunuzdan çıkarmanız gerekir. Bunu xgettext komut satırı aracını kullanarak yapabilirsiniz. Bu yardımcı program, PHP kodunuzu tarar ve tüm çevrilebilir dizeleri bir POT (Taşınabilir Nesne Şablonu) dosyasına çıkarır.

xgettext'i kullanmak için terminalde projenizin dizinine gidin ve aşağıdaki komutu çalıştırın:
Kod:
xgettext --language=PHP --output=messages.pot **/*.php
Bu komut, xgettext'e proje dizininizdeki tüm PHP dosyalarını taramasını ve message.pot adlı bir POT dosyası oluşturmasını söyler.
Adım 4: Dizeleri Çevirme
Çevrilecek dizeleri çıkardıktan sonra, bunları desteklemek istediğiniz dillere çevirmeniz gerekir. POedit, dizeleri çevirmeyi kolaylaştırır. Çeviri 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 çevrilmiş dizeyle eşleştirmek için kullandığı şeydir.

5. Adım: Çeviri Dosyalarını Derleme
.po dosyasındaki dizeleri çevirdikten sonra, bunları PHP uygulamanızın okuyabileceği bir biçimde derlemeniz gerekir. Bunu yapmak için gettext tarafından sağlanan msgfmt komut satırı aracını kullanın.

.po dosyasını bir ikili .mo dosyasına derlemek için terminalde projenizin dizinine gidin ve aşağıdaki komutu çalıştırın:
Kod:
msgfmt -o en_US.mo en_US.po
en_US'u çeviri dosyanızın dosya adıyla değiştirin.

Adım 6: Çevirileri PHP Kodunuza Yükleme
Çeviri dosyasını derledikten sonra, bunları PHP kodunuza yükleyin. Bunu yapmak için, 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');
Çevirileri yükledikten sonra, gettext işlevini çağırarak bunları PHP kodunuzda kullanmaya başlayabilirsiniz:
Kod:
echo _("Hello World");
Gettext işlevi, geçerli yerel ayara göre çevrilmiş dizeyi döndürür.

PHP web uygulamanız için çoklu dil desteği uygulamak, daha geniş bir kitleye ulaşmak için çok önemlidir. Güçlü gettext aracıyla, içeriği koddan ayırmak ve web sitenizi birden çok dile çevirmek kolaydır. Bu makalede belirtilen adımları izleyerek, dünyanın farklı yerlerinden kullanıcılara hitap eden PHP ve gettext ile çok dilli bir web sitesi oluşturabilirsiniz.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst