Selam forum üyeleri. Bazı PHP yazarları projelerine çoklu dil seçeneği eklemek istiyor fakat veritabanı ile uğraşmak istemediğinden dolayı zor olduğunu düşünüyor.
Sizlere veritabanı olmadan çoklu dil seçeneği sunmanın ne kadar basit olacağından bahsedeceğim!
Oluşturduğunuz proje dosyasında dil dosyalarınızın bulunacağı klasörü oluşturun. Ben, languages ismine sahip bir klasör oluşturdum.
Proje klasöründe ek bir PHP dosyası oluşturun ve içerisine şu kodları yapıştırın:
PHP:
<?php
require_once 'vendor/autoload.php';
use Symfony\Component\Translation\Loader\YamlFileLoader;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Exception\LogicException;
$userLanguage = "tr";
$translator = new Translator($userLanguage);
$translator -> addLoader('yaml', new YamlFileLoader());
$translator -> addResource('yaml', './languages/messages.' . $userLanguage . '.yml', $userLanguage); // Dil dosyasını seçiyor ve çekiyoruz.
$userLanguage şeklinde belirttiğimiz değişken, kullanıcının seçim yaptığı dildir. Kısaltma olarak kullanmanız en sağlıklısı olur.
"whats-this" veya "welcome-message" nedir? Onlar ise dil dosyalarındaki bizim belirlediğimiz dil değişkenleri diyelim. Şu şekilde:
YAML:
# Aşağıdaki seçenekler messages.en.yml dosyasına aittir, İngilizce dil dosyasıdır.
welcome-message: Welcome.
goodbye-message: Goodbye.
whats-this: Whats This?
main-page-title: Language Selections with No DB
# Aşağıdaki seçenekler messages.tr.yml dosyasına aittir, Türkçe dil dosyasıdır.
welcome-message: Hoşgeldiniz.
goodbye-message: Güle güle.
whats-this: Nedir?
main-page-title: PHP ile DB Olmadan Dil Sistemi
Her iki dil dosyasına da kendiniz bir değişken yazıp, karşısına çevirilerini yazarak örnekteki kullanım gibi kullanabilirsiniz. Herhangi bir hatanın çıkması durumunda yazarsanız yardımcı olabilirim. İyi forumlar.