Forum
herkese merhaba
asp.net de 3 dil destekleye bır proje yapıyorum.. takıldıgım bır nokta var.. dili ingilizceye cevirgim zaman veri tabnında ki tr karşılındakı ing. verinin yuklenmesını istiyorum ugrastım ama yapamadım yardımcı olursanız sevınırım.
Google Translate API'si ile çevirtebilir ve sayfada gösterebilirsiniz. Ama Google veya başka bir translate'te kullansanız düzgün çevirmez.
yok ceviri olayı veri tabanında var. benım istedigim dill butonuna basıldıgı zaman veri tabanındaki o dille ilgi alanın yuklenmesi
Sitenin desteklediği dilleri veri tabanında saklarsın ve dillere ID verirsin mesela TR=0 İNG=1 vs. site içeriğini nasıl saklıyorsun bilmiyorum ama içeriğin yanına birde dilID eklersin butona basıldığında hangi dil seçildiyse veri tabanından o dille eşit olan verileri getirirsin
Sitenin desteklediği dilleri veri tabanında saklarsın ve dillere ID verirsin mesela TR=0 İNG=1 vs. site içeriğini nasıl saklıyorsun bilmiyorum ama içeriğin yanına birde dilID eklersin butona basıldığında hangi dil seçildiyse veri tabanından o dille eşit olan verileri getirirsin
guzel mantık örnek bır kodla yardımcı olabılırmısın
Link yapısını değiştirme bence. Bunun yerine dil seçeneğini session'a yaz.
Atıyorum eğer İngilizce butonuna basarsa buton'un click eventında Session["lang"] = "ingilizce"; yaz. Daha sonra masterpage ile yaptıysan masterpage'in pageload'unda session değerini kontrol et ve ona göre değer getir.
Ufak bir kod yazmak gerekirse:
if(!Page.IsPostBack)
{
string lang = Session["lang"].ToString();
SqlParamater[] sp = new SqlParameter[1];
sp[0] = new SqlParamater("@id", Request.Params.Get("ID"));
DataTable dtYazilar = dbHelper.runQueryWithParams("store_procedure_adi", sp);
if(dtYazilar.Rows.Count > 0)
{
if(lang == "ingilizce")
{
LabelYazi.Text = dtYazilar.Rows[0]["ing_yazi_icerigi"].ToString();
}
}
}
tesekkür ederim elıne saglık
Sorununu çözdün mü yoksa örnek bir kod yazıyım mı ?
sorunum hala devam etmekte
denem amaclı bir proje actım.
veri tabanı access bu arada tablolar
id ad soyad lang
1 a b tr-TR
2 b a en-Us
tr butona bastıgım zaman
protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie cookie = Request.Cookies["Dil"];
if (cookie == null) cookie = new HttpCookie("Dil");
cookie.Value = "tr-TR";
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("~/App_Data\\data.mdb"));
baglanti.Open();
OleDbDataAdapter data = new OleDbDataAdapter("select * from icerik Where lang ='" + cookie + "%' ", baglanti);
DataSet Ds = new DataSet();
data.Fill(Ds, "TBL");
Repeater1.DataSource = Ds.Tables[0];
Repeater1.DataBind();
Response.SetCookie(cookie);
Response.Redirect(Request.UrlReferrer.PathAndQuery);
}
olayını yakalamaya calısıyorum ama butonlarısı tam oluyor ama icerik degişmiyor.
yada ufak bir örnek proje yapabılırsen sevinirim ya kafam durdu kac gundur ugrasıyorum çözemedim.
Önce bir tablo Language içinde diller olmalı
SELECT [LanguageId]
,[Name]
,[LanguageCulture]
,[FlagImageFileName]
,[Published]
,[DisplayOrder]
FROM Language
sorgu sonucu aşağıdaki gibi olmalı.
1 English en-US us.png 1 2
2 Turkish tr-TR tr.png 1 1
Sonra içerik LocaleStringResource tablon olmalı.
SELECT [LocaleStringResourceID]
,[LanguageID]
,[ResourceName]
,[ResourceValue]
FROM LocaleStringResource
Sorgu sonucu aşğıdaki gibi olmalı
1- 1- AnaSayfa.Baslik- ABCPortal
2- 1- Anasayfa.Merhaba -ABC Portala HoşGeldiniz
3- 1- AnaSayfa.Detay -Detaylar için Tıklayın
4 -2- AnaSayfa.Baslik- ABCPortal
5 -2- Anasayfa.Merhaba- Welcome to ABC Portal
6 -2 -AnaSayfa.Detay- Plase click to Details
public string IcerikOku (int LanguageID, String IcerikKey)
{
database = db.context();
var Sorug = from tablo in database.Icerikler where tablo.LanguageID select tablo;
retrun Sorgu.SingleOrDefault();
}
çalıştır
label1.text = IcerikOku(1,"Anasayfa.Merhaba" );
Dil durumunu session da tutarsandaha iyi olur.
Bu örnek linqtosql kullanılarak yapılmıştır.
bu konuda bir çok firma subdomainlerle çalısıyor..
Elinize sağlık ancak merak ettim bir nokta söz konusu. Neden CultureInfo kullanmak yerine "lang" diye bir session kullandınız?
Merhabalar
Elinizde örnek bir uygulama varmı?
paylaşabilirmisiniz.