Yii2 basic da 2 tilli qilish

0 ovoz
115 marta ko‘rilgan
so‘radi 02 avgust, 17 alfraganus (515 bal)

Assalomu Aleykum,

Men Yii2 basicda 2 tilli sayt qilishim kerek, lekin koop urindim eplolmadim, kop video uroklarni kordim, ularni deyarli hammasi yii2 advancedda qilsihgan ekan, va advanced bu farq qilarkan basic ga qaraganda, yordam.uz da oldin ham bu savol berilgan ekan manau havolada  https://yordam.uz/1852/yii2-da-sahifani-2-xil-tilda-qilish?show=1852#q1852 ammo bu yerda berilgan yechimda 2ta hatolik beryapdi va u yer da korsatilgan classlar not found deb hatoli beryapdi, akalar, menga yii2 basicda 2 til qilingan soddaroq biror bir video mi yoki textmi yoki ozilarda bolsa kodinitashlab bera olasizlarmi iltimos, bu bilan katta yordam bergan bo'lardinglar menga

izoh qoldirdi 03 avgust, 17 alfraganus (515 bal)
basic uchun internetta shuntirishlar kam ekan

4 Javoblar

+1 ovoz
javob berdi 02 avgust, 17 Sardor Dushamov (1,531 bal)
tanlangan 03 avgust, 17 alfraganus
 
Eng yaxshi javob
Quyidagi linkda batafsil tushuntirgan. Agar biror tushunmagan joyiz bo'lsa shu yerga yozsangiz yordam beramiz qo'ldan kelgancha.

https://code.tutsplus.com/tutorials/how-to-program-with-yii2-localization-with-i18n--cms-23140
izoh qoldirdi 03 avgust, 17 alfraganus (515 bal)
Assalomu Aleykum Sardor aka, sizga katta rahmat yordam berganingiz uchun, Sardor aka, osha siz bergan maqolani o'qib chiqdim va bir oz shunmagan joylarim bo'ldi aka, masalan birinchi shunmagan narsam bu boldi, yani hello degan papka ochib uni ichga confog file ochibdi, lekin buni yiida men qilolmadim:

"We're using the Yii2 basic application template for our demonstration application. This places our codebase below the /hello root directory. Yii's configuration files in /hello/config/* are loaded whenever page requests are made. We'll use Yii's I18n message scripts to build out a configuration file for I18n in the common/config path."


kegin message ichuga ham config ochilib, kegin i18n.php file kirarkan

"From our codebase root, we'll run the Yii message/config script:

1
./yii message/config @app/config/i18n.php"

va yana bir qancha narsalarga shuna olmadim, men yii2 endi kirib kelyapmanda aka, balki shunga menga juda qiyin bo'layotgandir, aka shu borada biror bir korsatma bera olasizmi?
izoh qoldirdi 03 avgust, 17 Sardor Dushamov (1,531 bal)
hello degan papka bu proyekt sourcelari turgan papka, yani dokument root. Bu sizda boshqacha nomda bolishi mumkin.
+1 ovoz
javob berdi 02 avgust, 17 Farhodjon (1,018 bal)
Agar siz Yii2 i18n ni tushunmayotgan bo'lsangiz. U holda boshqa yo'li ham bor. Buning uchun siteController da ixtiyoriy nomli action qilasiz. Actionda tilni sessiyaga yozib qo'yasiz. Masalan:

public function actionLanguage($lang) {

if ($lang == 'uz' || $lang == 'ru')

Yii::$app->session->set('siteLang', '$lang')

else

Yii::$app->session->set('siteLang', 'uz')

}

Budan so'ng view da shu actionga murojat qilasiz.

<a href='/site/language?lang=uz'>UZ</a>

<a href='/site/language?lang=ru'>UZ</a>

SiteControllerda:

public function init(){

if(!Yii::$app->session->has('siteLang'))

Yii::$app->session->set('siteLang', 'uz');

}

Bu method dastlab saytga kirilganda sessioyada siteLang bo'lmaydi shunda sessiyaga uz ni yozib qo'yish uchun kerak.

Endi bazani loyihalayotganizda: title_uz, title_ru kabi loyihalaysiz. View da bazadan chaqirishda esa:

View boshida:

$l = Yii::$app->session->get('siteLang');

...............

<h1 class='title'><?= $result["title_$l"] ?></h1>

Yoki

<h1 class='title'><?= $result['title_'.$l] ?></h1>

Shu kabi chqirasiz.
0 ovoz
javob berdi 02 avgust, 17 SedBigDaddy (1,232 bal)

Salom.  https://yordam.uz/1852/yii2-da-sahifani-2-xil-tilda-qilish?show=1852#q1852 uchun bu classni components  heplers deagan popka yasab  qo'shib qo'ying va ishlab ketadi.

namespace app\components\helpers;
class CookieHelper
{
    const COOKIE_LANGUAGE='language';
    public static function existsCookie($name){
        $cookies = Yii::$app->response->cookies;
        return Yii::$app->request->cookies->getValue($name)!=null;
    }
    public static function getCookie($name){
        $cookies = Yii::$app->request->cookies;
        return $cookies->getValue($name, null);
    }
    public static function generateCookie($name,$value,$expire){
        $cookie = new Cookie([
            'name' => $name,
            'value' => $value,
            'expire' => $expire,
        ]);
        $cookies = Yii::$app->response->cookies;
        $cookies->add($cookie);
    }
}
izoh qoldirdi 02 avgust, 17 Farhodjon (1,018 bal)
Shunaqa qilib ishlatganimda saytni cookiesini o'chirib saytni ishlatsam xatolik chiqyapti nimagadur. Shu nimadan?  https://yordam.uz/1852/yii2-da-sahifani-2-xil-tilda-qilish?show=1852#q1852 shu ssilka bo'yicha qilinsa bazadan ma'lumotlar qande chiqariladi?
0 ovoz

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...