الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سكربت تعدد لغات

بدأه HUSSEin-AHMeD في 12 نوفمبر 2011 · 8 رد · 1,021 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم ,

السلام عليكم و رحمة الله ,

بحثت كتير و تعبت في ايجاد موضوع عن تعدد اللغات و بصراحة كل المواضيع مفهمتش منها حاجة لحد ما ذاكرت OOP لقيت حل لتعدد اللغات

ارجوا الناس تقولي رايها فيه و اذا كان عملي و سريع ولا لآ ,

صفحة index.php

<?php

/**
 * @author HUSSEin-AHMeD
 * @copyright 2011
 */

// here we include head.html and edit on it :D
class languages {
    public $lang_name;

    public function _loadfile ($filename){
        $this->lang_name = file_get_contents($filename);
    }

    public function _strrep ($rep,$str){
        $this->lang_name = str_replace("{$rep}",$str, $this->lang_name);
    }

    public function _display (){
        eval("?>".$this->lang_name."<?");
    }
}
/*<?$_SERVER['PHP_SELF']?>*/
$lang = new languages();

echo "
<form method='POST' action='lang.php'>
    <input type='image' src='img/ar.png' name='ar' value='lang'/>
    <input type='image' src='img/en.png' name='en' value='lang'/>
    <input type='image' src='img/fr.png' name='fr' value='lang'/>
</form>";

if(isset($_COOKIE['ar'])){
    include "langs/ar.php";
}
if(isset($_COOKIE['en'])){
    include "langs/en.php";
}
if(isset($_COOKIE['fr'])){
    include "langs/fr.php";
}
if(!isset($_COOKIE['en']) && !isset($_COOKIE['ar']) && !isset($_COOKIE['fr']))
{
    include "langs/en.php";
}



$lang->_loadfile("head.html");
$lang->_strrep("{sitename}",$sitename);
$lang->_strrep("{name}",$name);
echo $lang->_display();
?>

صفحة lang.php التي يتم فيها تسجيل الكوكي الخاص باللغة ثم التحويل للرئيسية

<?

/**
 * @author HUSSEin-AHMeD
 * @copyright 2011
 */

ob_start();
if($_POST['en']){
    setcookie("ar",'language',time()-3610);
    setcookie("fr",'language',time()-3610);
    setcookie("en",'language',time()+3600);
    header("location:index.php");
}
elseif($_POST['ar']){
    setcookie("en",'language',time()-3610);
    setcookie("fr",'language',time()-3610);
    setcookie("ar",'language',time()+3600); 
    header("location:index.php"); 
}
elseif($_POST['fr']){
    setcookie("en",'language',time()-3610);
    setcookie("ar",'language',time()-3610);
    setcookie("fr",'language',time()+3600); 
    header("location:index.php"); 
}
ob_end_flush();
?>

صفحة head.html الي بتظهر للمتصفح الي فيها المتغيرات الي بيتم استبدالها علي حسب الكوكي

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<meta http-equiv="content-type" content="text/html; charset=windows-1256" />
	<meta name="author" content="HUSSEin-AHMeD" />

	<title>{sitename}</title>
</head>

<body>

<h1>{name}</h1>

</body>
</html>

صفحات اللغة نفسها ar.php || en.php || fr.php علي الترتيب

<?php

/**
 * @author HUSSEin-AHMeD
 * @copyright 2011
 */

    $sitename = "مرحبا بكم في موقعنا";
    $name     = "اسمي: حسين أحمد";

?>

<?php

/**
 * @author HUSSEin-AHMeD
 * @copyright 2011
 */

    $sitename = "Welcome to our site";
    $name     = "My name is: HUSSEin";

?>

<?php

/**
 * @author HUSSEin-AHMeD
 * @copyright 2011
 */

    $sitename = "Bienvenue sur notre site";
    $name     = "Je m'apple: HUSSEin";

?>

و الصور في المرفقات اتمني التعليق حتي تعم الفائدة .

post-243154-055808900 1321112675_thumb.p

post-243154-016747300 1321112681_thumb.p

post-243154-064577100 1321112686_thumb.p

المرفقات
ar.pngen.pngfr.png
2

@My Twitter

[spacing]

EGYPT

[/spacing]

#2

صورة من السكربت

post-243154-020939900 1321113169_thumb.p

المرفقات
Untitled-3.png

@My Twitter

[spacing]

EGYPT

[/spacing]

#3

طريقة حلوه وممكن تعملها بأكثر من طريقة

اهم شي يكون المفهوم واضح والفكرة واضحه

تعدد اللغات ببساطة يرتكز على شغلتين , الشغلة الاولى اتجاه اللغة الي هي Direction والنصوص Text

اعتقد انت اهملت اتجاه اللغة وركزت على النصوص

وكذلك زيدت الضغط على السيرفر والموضوع بسيط ما يحتاج تعقيد كثير

سويت هذا المثال البسيط لتعدد اللغات بأستخدام XML مع jQuery

هذا ملف xml للغة

<?xml version='1.0' encoding='utf-8'?>
	<language>
		<name>English</name>
		<dir>ltr</dir>

		<text1>Hellow World</text1>
	</language>

وهذه صفحة html

<!DOCTYPE html>
<html>
<head>
	<title>title</title>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript">
	$(document).ready(function()
	{
		var languageFile = "en.xml";
		$.ajax({
                 type: "GET",
                 url: languageFilr,
                 dataType: "xml",
                 success: function(xml)
				{

						dir   = $(xml).find('dir').text();
						name  = $(xml).find('name').text();
						text1 = $(xml).find('text1').text();

						$('html').css("direction",dir);
						document.title = name;
						$( "#text1" ).html( text1 );


					}
});

	});
  </script>
</head>
<body>

<p id="text1"></p>



<script>


</script>

</body>
</html>

لاحظ الكود بسيط جدا ً وقللت الضغط على السيرفر

هذه فكرة بسيطة جدا ً وممكن تسطها اكثر اهم شي تركز على النقطتين الي قلت لك عليهم وراح تجي لك افكار كثيرة لتعدد اللغات

موفق ان شاء الله

تم تعديل هذه المشاركة بواسطة M.B.O في 13 نوفمبر 2011 في 02:10

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#4

تمام اتجاه اللغة انا اهملته بالفعل بس لان كان الاهم ان النص يتغير بالنسبة لي ,

بس اعتقد ممكن يكون مع اللغة العربية مثلا ملف css مختلف عن الاصلي و هكذا .

بالنسبة للمثال بتاعك هو بالفعل بسيط جدا ,,

بس اعذرني انا لسة معرفش اي شئ اي xml و ال jQuery يا دوب بدات اذاكره ,,

فانا فهمت المثال تمام بس : لما اجي اعمل ملف للغة العربية هضيفه ازاي بحيث لما العضو يدوس علي رابط اللغة العربية يتغير كل حاجة ,

ولا هل انت تقصد اني هعمل لكل لغة ملف اندكس منفصل ؟

@My Twitter

[spacing]

EGYPT

[/spacing]

#6

السلام عليكم

قمت بتغيير الكلاس لكي يستعمل ob_start دون فتح الملف header.html مع بعض التغييرات الاخرى

lang-switch.zip

#7

تمام شكرا جزيلا يا صديقي العزيز ,

و اعذرني لكن ما الفائدة من التغيير حتي افهم لاني مازلت مبتدأ .

@My Twitter

[spacing]

EGYPT

[/spacing]

#8

choclatboy معلش يا صديقي مساعدة صغيرة لاني عجزت عن حلها

ازاي اضيف ملف css مع اللغة العربية عشان يحول اتجاه الصفحة معلش لاني مبتدا جدا في ال OOP و احداث الثورة في مصر مخلية الوقت ضيق .

@My Twitter

[spacing]

EGYPT

[/spacing]

#9

حليت المشكلة شكرا .

@My Twitter

[spacing]

EGYPT

[/spacing]

مواضيع مشابهة