PDA

View Full Version : دیتابیس سایت دوزبانه



bbc_sh
جمعه 08 شهریور 1387, 19:26 عصر
سلام
وقتی یه سایت داریم که دوتا زبان داره یکی انگلیسی و یکی فارسی , ساختار دیتا بیس باید چه طوری باشه(ساختار جدول ها)اطلاعاتی که قراره از دیتابیس گرفته بشه هم فارسی هست و هم انگلیسی.

Behrouz_Rad
جمعه 08 شهریور 1387, 19:35 عصر
اگر داده هایی مثل عنوان خبر و متن اون مد نظر هست، به سادگی دو فیلد اضافه که عنوان و متن خبر رو به زبان دیگه می گیره هم به جدول اضافه کنید. برای عناوین دیگه مثل متن یک Button یا Label از Resource ها استفاده کنید.

موفق باشید.

bbc_sh
شنبه 06 مهر 1387, 14:33 عصر
اگه زبان ها فارسی و انگلیسی باشه ,واسه فارسی هم باید ریسورس بسازیم یا فقط انگلیسی ریسورس میخواد.

merlin_vista
شنبه 06 مهر 1387, 14:37 عصر
اگه زبان ها فارسی و انگلیسی باشه ,واسه فارسی هم باید ریسورس بسازیم یا فقط انگلیسی ریسورس میخواد.

براي هر تعداد زباني كه ميخواهي يك صفحه داشته باشه بايد يم ريسورس بسازيد .
در اينجا چون دو زبان هست بايد دو عدد ريسورس ساخته بشه و تحت قوانين خاصي كه در msdn مجود است نام گزاري شود
مثلاً : انگليسي ميشه en و فارسي ميشه fa-ir

bbc_sh
شنبه 06 مهر 1387, 15:05 عصر
یه ریسورس انگلیسی برای تمام سایت کافیه دیگه؟یعنی به تعداد صفحه های انگلیسی ربطی نداره دیگه.حالا اگه آیدی چندتا از کنترل ها مثل هم بود چی؟

Behrouz_Rad
شنبه 06 مهر 1387, 15:24 عصر
یه ریسورس انگلیسی برای تمام سایت کافیه دیگه؟یعنی به تعداد صفحه های انگلیسی ربطی نداره دیگه.

بله کافیه. شما نیاز به Resource پیش فرض داری. از اونجایی که Culture پیش فرض سایت شما، انگلیسی هست، اون Resource نیاز به نامگذاری طبق قواعد خاصی که merlin_vista گفت نداره. برای Culture فارسی نیاز به Resource داری.


حالا اگه آیدی چندتا از کنترل ها مثل هم بود چی؟

در این حالت باید از Page-level Resources استفاده کنی نه Global Resources.


موفق باشید.

bbc_sh
شنبه 06 مهر 1387, 15:58 عصر
در این حالت باید از Page-level Resources استفاده کنی نه Global Resources.
میشه بیشتر توضیح بدید.توی قسمت tools و generate local resource برای هر صفحه یه ریسورس درست میکنه این واسه چه زمانیه؟

Behrouz_Rad
شنبه 06 مهر 1387, 21:40 عصر
این برای زمانیه که همون مشکلی که گفتی پیش میاد. یعتی دو کنترل ممکنه نام های یکسان داشته باشن.
پوشه ی Local_Resources به همین منظور استفاده میشه. در موردش تحقیق کن.

موفق باشید.

bbc_sh
جمعه 12 مهر 1387, 19:09 عصر
سلام
من اومدم برای هر صفحه دوتا لوکال ریسورس گذاشتم.یکی فارسی و یکی انگلیسی.زبان پیش فرض من فرسی هست .توی دیتابیس هم به ازای هر ستون فارسی یه ستون انگلیسی هست.حالا من یه دیتالیست دارم که که توی اون یه سری هایپر لینک هست ومن اونارو بایند کردم به یه ستون فارسی.چه طوری میشه دیتاسورس رو تغییر داد و به انگلیسی تبدیل کرد؟(وقتی که قراره از دیتابیس یه چیزی خونده بشه.)

Behrouz_Rad
جمعه 12 مهر 1387, 20:05 عصر
Culture برای دیتابیس نیست. برای Resource هاست. تعیین زبان برای نمایش محتویات بر مبنای زبان رو در حالت ساده می تونی با یک شرط IF اعمال کنی.

موفق باشید.

bbc_sh
جمعه 12 مهر 1387, 20:42 عصر
من وقتی میخواستم اطلاعات رو توی مثلا گریدویو نشون بدم کد ننوشتم که بعد از اون بخوام بگم :gridview1.databind()
و مستقیما از قسمت گریدویو تسک اونو وصل کردم به دیتابیس.حالا واسه انگلیسی ها باید کد نوشته بشه فقط یا فارسی ها رو هم(پیش فرض) باید با روش کد نوشتن وصل کنم.

Behrouz_Rad
جمعه 12 مهر 1387, 20:51 عصر
دنیای WIZARD، دنیای نابودیه! کد بنویس.

bbc_sh
جمعه 12 مهر 1387, 22:23 عصر
یه مشکلی پیدا شد.من دوتا دستور سلکت جدا نوشتم یکی برای ستون های فارسی و یکی هم برای انگلیسی.توی دیتابیس مثلا g1 فارسی هست و g2 انگلیسی.من یه دیتالیست دارم که توی اون یه هایپر لینکه. توی قسمت template مقدار تکست این هایپر لینک به کدوم ستون باید بایند بشه؟Eval(" ? ").نمیخواد اسم همون ستونی که توی دیتابیس هست باشه؟یه اسم دلخواه هست که مقدار اون reader بهش بایند میشه؟

Behrouz_Rad
جمعه 12 مهر 1387, 22:56 عصر
شرط SELECT رو با T-SQL و SP بنویس و نام ستون رو ALIAS در نظر بگیر تا مشکلی نباشه:


IF (@flag = 'fa')
SELECT bodyFA AS body FROM myTable
ELSE
SELECT bodyEN AS body FROM myTable

حالا body رو برای Eval در نظر بگیر. به همین سادگی :)

موفق باشید.

mahdi_farhani
جمعه 12 مهر 1387, 23:00 عصر
همانطور که استاید توضیح دادن شما باید برای label و button و .... از Resource ها استفاده کنی .که این خودش بحث جدایی داره .
بحث دوم اینه که شما میخواهی محتویات را بر اساس فرهنگ جاری برای صفحه نشون بدی (CurrentCultre)
احتیاج به دو تا Table و یا دو تا Coulmn یکی برای فارسی یکی برای انگلیسی و یا دوتا SP ندارید.
بلکه احتیاج به یک ستون برای تعیین زبان که مقدارش میتونه هرچیزی باشه ، به نظر من اگر عددی باشه و یک کلید خارجی به جدول زبانها باشه خیلی بهتره و بعدش در هنگام صدا زدن SP که اطلاعات را Select میکنه با یک پارمتر ورودی و یک شرط Where اطلاعات مربوط به زبان جاری رو Load میکنید . و ...........

bbc_sh
جمعه 12 مهر 1387, 23:42 عصر
IF (@flag = 'fa')

@flag رو به عنوان پارامتر از برنامه پاس میدم به sp ؟مقدارش 'fa' هست؟
اینطوری؟
cmd.parameter.addwithvalue(@flag,'fa') وتوی برنامه چک شده که اگه فارسی بوده 'fa' فرستاده بشه؟

Behrouz_Rad
شنبه 13 مهر 1387, 00:14 صبح
بله. دقیقاً.

bbc_sh
جمعه 10 آبان 1387, 16:44 عصر
با چه کدی میشه تشخیص دادکه زبان پیشفرض مرورگر چیه؟چون میخوام بسته به اون از یه css دیگه استفاده کنم(واسه چپ چین و راست چین).(من از localresource استفاده کردم )