Forum

asp.net de dil
 
Bildirimler
Hepsini Temizle

asp.net de dil

14 Yazılar
7 Üyeler
0 Reactions
587 Görüntüleme
(@ErgunGursoy)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

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.

 

 
Gönderildi : 05/07/2012 14:07

(@kadiravci)
Gönderiler: 202
Üye
 

Google Translate API'si ile çevirtebilir ve sayfada gösterebilirsiniz. Ama Google veya başka bir translate'te kullansanız düzgün çevirmez.

 
Gönderildi : 05/07/2012 14:59

(@ErgunGursoy)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

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

 
Gönderildi : 05/07/2012 15:03

(@VehbiBiRCAN)
Gönderiler: 14
Eminent Member
 

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

 
Gönderildi : 06/07/2012 11:32

(@ErgunGursoy)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

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 

 
Gönderildi : 06/07/2012 15:21

(@kadiravci)
Gönderiler: 202
Üye
 

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();

}

}

 
Gönderildi : 09/07/2012 14:12

(@ErgunGursoy)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

tesekkür ederim elıne saglık

 
Gönderildi : 10/07/2012 20:05

(@VehbiBiRCAN)
Gönderiler: 14
Eminent Member
 

Sorununu çözdün mü yoksa örnek bir kod yazıyım mı ?

 
Gönderildi : 10/07/2012 23:39

(@ErgunGursoy)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

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. 

 
Gönderildi : 11/07/2012 16:40

(@ErgunGursoy)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

yada ufak bir örnek proje yapabılırsen sevinirim ya kafam durdu kac gundur ugrasıyorum çözemedim.

 
Gönderildi : 11/07/2012 17:05

(@MustafaPAT)
Gönderiler: 26
Eminent Member
 

Ö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

 

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.

 
Gönderildi : 12/07/2012 20:30

(@SelimYilmaz)
Gönderiler: 82
Estimable Member
 

bu konuda bir çok firma subdomainlerle çalısıyor..

 
Gönderildi : 13/07/2012 15:22

(@mertsarac)
Gönderiler: 13
Eminent Member
 

Elinize sağlık ancak merak ettim bir nokta söz konusu. Neden CultureInfo kullanmak yerine "lang" diye bir session kullandınız?

 
Gönderildi : 20/07/2012 15:53

(@sehmuzaltin)
Gönderiler: 2
New Member
 

Merhabalar

Elinizde örnek bir uygulama varmı?

paylaşabilirmisiniz.

 

 
Gönderildi : 25/03/2014 15:32

Paylaş: