Webcam kullanan insan
Megapat
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!
Projeye şuradan da ulaşabilirsiniz: GitHub - vFurky/language-option-no-db: PHP ile veritabanına gerek kalmadan, Composer yardımıyla, kullanıcılarınıza dil seçeneği sunun!
Öncelikle, cihazınıza Composer kurun.
Şu adresten kurabilirsiniz: Composer
Devamında, bir proje dosyası oluşturun.
Oluşturduğunuz proje dosyasında PowerShell'i açın.
Composer yardımıyla
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:
Kullanım:
"whats-this" veya "welcome-message" nedir? Onlar ise dil dosyalarındaki bizim belirlediğimiz dil değişkenleri diyelim. Şu şekilde:
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.
Sizlere veritabanı olmadan çoklu dil seçeneği sunmanın ne kadar basit olacağından bahsedeceğim!
Projeye şuradan da ulaşabilirsiniz: GitHub - vFurky/language-option-no-db: PHP ile veritabanına gerek kalmadan, Composer yardımıyla, kullanıcılarınıza dil seçeneği sunun!
Öncelikle, cihazınıza Composer kurun.
Şu adresten kurabilirsiniz: Composer
Devamında, bir proje dosyası oluşturun.
Oluşturduğunuz proje dosyasında PowerShell'i açın.
Composer yardımıyla
symfony/translation
ve symfony/yaml
paketlerini kurun:
Kod:
composer require symfony/translation
composer require symfony/yaml
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.Kullanım:
PHP:
<?php require("./language.php"); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo $translator -> trans('main-page-title'); ?></title>
</head>
<body>
<p><?php echo $translator -> trans('whats-this'); ?></p>
<p><?php echo $translator -> trans('welcome-message'); ?></p>
<p><?php echo $translator -> trans('goodbye-message'); ?></p>
</body>
</html>
"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.
Son düzenleme: