درود
قصد نوشتن ی سایت چند زبانه با پی اچ پی رو دارم
چجوری میتونم این کار رو از روی ای پی بصورت خودکار انجام بدم؟
منظورم اینکه مثلا وقتی ی ایرانی وارد سایتم میشه بصورت خودکار زبان سایتم فارسی شه ممنون میشم کمکم کنید
درود
قصد نوشتن ی سایت چند زبانه با پی اچ پی رو دارم
چجوری میتونم این کار رو از روی ای پی بصورت خودکار انجام بدم؟
منظورم اینکه مثلا وقتی ی ایرانی وارد سایتم میشه بصورت خودکار زبان سایتم فارسی شه ممنون میشم کمکم کنید
روشهای مختلفی داره یکیش اینه که واسه زبان های مختلف فایل های مختلف داشته باشید که مثلا متن تایتل منوها و... توش تعریف شده باشن حالا یا به وسیله آرایه یه define یا متغیر یا... و رنج آی پی رو بگیرید و بسته به اون یکی از فایلها رو اینکلود کنید...
سایت چند زبانه رو روش های زیادی دارد
ولی این بخش سوال که گفتی به صورت اتوماتیک باشه شما می تونی به راحتی آی پی کاربر رو بگیری بعد چک کنی ببینی از کدام کشور هست و بعد با زبان مورد نظر رو به کاربر نشون بدی
پکیج تصفیه فاضلاب
ثبت شرکت
ی مشکلی هست اونم اینکه اگر کاربری فارسی زبان با فیلتر شکن بیاد ای پیش مال ایران نیس دیگ
چجوری این مشکلو حل کنم؟
این کارو یکم سخت می کند احتمالا راهی هست ولی من در اطلاع نیستم ، ولی کم پیش میاد کسی با وی پی ان سایت های داخلی رو باز کند
پکیج تصفیه فاضلاب
ثبت شرکت
اینو بخون ، ۹۰٪ چنین کاربرانی را میشه شناسایی کرد.
روش خوبیه ولی صد در صد نیست من دنبال ی روش صددر صدیم
این مورد که شما میگید برای سایت های ساده هست
نظرتون در مورد ی پرسش در اولین بازدید کاربر درمورد زبانش چیه؟
انوقت چجوری این امکان رو فراهم کنم که وقتی کاربر زبانش رو انتخاب کرد ادرس در هر دو زبان یکی باشه
مثلا در نسخه فارسی namesite.ir/showthread.php
در نسخه انگلیسی namesite.ir/showthread.php
این روش اصلا درست نیست ! استفاده از Cookie یا Session برای زبان دردسر های زیادی داره ، مثلا فکر کن Google اگه Cookie شما را توی Crawler ش ست نکنه نمیتننه همه زبان های سایت شما را ایندکس کنه ! یا کسی که داره زبان عربی را میبینه اما پیش فرض شما فارسیه اگه لینکی را جایی توی سایتش بگذاره یا برای کسی بفرسته نسخه فارسی نمایش داده میشه چون مقدار session و Cookie ست نشده و بسیاری مشکلات و کاستی های دیکه !انوقت چجوری این امکان رو فراهم کنم که وقتی کاربر زبانش رو انتخاب کرد ادرس در هر دو زبان یکی باشه
درخواست زبان باید توی url به صورت query string یا با روش Url Rewriting باشه ، اینطوری :
forum.com/fa/thread.php?lang=fa&id=120
forum.com/fa/thread/120
فرمایش شما متین ولی سایت که من میخوام بنویسم باید ادرس در هردو زبانش یکی باشه وگرنه به مشکلی میخوره
دنبال ی روشم که این کار رو عملی کنم ؟
اصلا بحثم درمورد این نیست که چجوری زبان روکه کاربر انتخاب کرده ذخیره کنم
ببینین ، سایت های چند زبانه فرمت های شناخته شده ای دارن که همه از اونها استفاده میکنن.
کلا وقتی کاربر url اصلی سایت را فراخونی میکنه سه تا انتخاب هست :
۱ - به طور کلی اگه بیشتر کاربران سایت عموما از زبانی مثلا فارسی استفاده میکنن به صورت پیش فرض سایت با زبان فارسی نمایش داده میشه و در بخشی از سایت قابلیت تغییر به زبان دیگر مثل انگلیسی یا عربی وجود داره
۲ - اگه سایت بین المللی هست و از همه زبان ها بهش رجوع میشه. معمولا بیش از دو یا سه زبان برای انتخاب هست. یک صفحه ورودی داره که کاربر زبان را انتخاب میکنه و ادامه میده
۳ - یکی از متداول ترین کار ها هم اینه که از طریق ip کاربر کشورش شناسایی و زبان مرتبط نمایش داده بشه (اگه زبان کشورش باشه به زبان مورد نظر وگرنه به زبان پیش فرض)
برای این کار باید از سرویس های سایت هایی مثل https://www.ip2location.com/databases/db1-ip-country استفاده کنید.
اما در مورد بحث اینکه url برای همه زبان ها یکی باشه هنوز هم خدمتتون عرض میکنم کار اشتباهیه و هر کسی کلمه "باید" را میگذاره روش نمیدونه داره چیکار میکنه. من که تا حالا حتی یک نمونه سایت ندیدم به این شکل عمل کنه.
این روش که تو ایران 100 درصد جواب نمیده بنده هم نظرم اول همین بود
اینی که من میگم "باید"چون سایت ی سرویس ساب دامین دهی مثل وبلاگدهی;
شما خودتون بگید چجوری وبلاگ هارو دو زبانه کنم؟
مطمئنا نمیشه در نسخه فارسی ادرس blog.subdomin.com باشه و در نسخه انگلیسی blog.subdomin.com/en باشه میشه؟؟؟؟؟
اگه منظورتون استفاده از ف*ی*ل*ت*ر هست خوب با اون روشی که گفتم تا ۹۰ درصد مشکل حله ،در ضمن مگه چند درصد از کاربران همیشه با تغییر IP میان !؟ این مشکل را همه سایت ها دارن ،مثلا چون من از یه سرور آلمانی میانبر میزنم سایت php.net بعضی وقت ها مطالب را برای من آلمانی میاره ! تقصیری هم نداره. کاربر ایراین برای سایت ایراین نیاز نداره از ف*ل*ت*ر شکن استفاده کنه ! در کل میخوام بگم بهترین روش همچنان همینه.این روش که تو ایران 100 درصد جواب نمیده بنده هم نظرم اول همین بود
مشکل از اینجاست که شما نمیاین بگین کل قضیه چیه و یک سوال ناقص میپرسین و جواب ناقص میگیرین. همینجا هم سوال مطرحه :اینی که من میگم "باید"چون سایت ی سرویس ساب دامین دهی مثل وبلاگدهی;
شما خودتون بگید چجوری وبلاگ هارو دو زبانه کنم؟
۱- سایت وبلاگدهی اصلی با دامنه example.com باید چند زبانه باشه !؟
توی این حالت همون استفاده از example.com/fa یا en یا هر چی مشکل را حل میکنه.
۲ - وبلاگ ها باید بر اساس زبانی که کاربر توی example.com انتخاب کرده شکل بگیرن ؟
در زمان ایجاد وبلاگ مشخص میکنیم زبان وبلاگ بر اساس query string توی دامنه example.com چیه و بر اساس اون زبان وبلاگ ایجاد میشه ۷ در زمان نمایش هم چک میکینم زبان وبلاگ چیه و به همون زبان نشون میدیم !
۳ - وبلاگ ها خودشون میتونن چند زبانه باشن ؟
چرا نمیشه !؟ البته بهتره چه فارسی و چه زبان دیگه وبلاگ با اون زبان مشخص بشه blog.example.com/fa یا blog.example.com/en.مطمئنا نمیشه در نسخه فارسی ادرس blog.subdomin.com باشه و در نسخه انگلیسی blog.subdomin.com/en باشه میشه؟؟؟؟؟
همونطور که میبینین هنوز کل سناریو مشخص نیست و نمیشه جواب دقیق بهش داد
خیر ، اگه وبلاگ بتونه چند زبانه باشه هیچ مشکلی نداره !