Ceviz Forum'a hoşgeldiniz.
Toplam 2 sayfadan 2. sayfa İlkİlk 1 2
17 sonuçtan 11 ile 17 arası gösteriliyor
  1. #11
    Ceviz Üyesi
    Üyelik Tarihi
    08/2008
    Mesaj
    92

    Varsayılan

    Sayın anov,

    Daha deneme fırsatım olmadı ama sanırım sorununuzu çözecektir:

    Öncelikle yeni bir class oluşturun (kodlarım vb )

    Imports Microsoft.VisualBasic
    Imports System.Threading
    Imports System.Globalization
    Imports System.Web

    Public Class clsPage
    Inherits System.Web.UI.Page

    Protected Overrides Sub InitializeCulture()
    Dim lang As String = Request("lang")

    If lang IsNot Nothing Or lang <> "" Then
    Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang)
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang)
    End If

    End Sub


    End Class


    Ondan sonrada şu şekilde sınıfınızı çağırın.

    Partial Class Sample2
    Inherits clsPage

    End Class

    Bu şekilde bütün sayfalarınıza Cultur larınızı yüklemiş olursunuz.

    İyi çalışmalar

  2. #12
    Varlığa izin veren boşluk
    Üyelik Tarihi
    04/2004
    Yer
    Mavi kabarcığın içi
    Mesaj
    3,413

    Varsayılan

    Teşekkürler modalı, o kadar işime yaradı ki.

    Bahsettiğin mantık güzel, kodları C# a çevirdim ve App_Code içinde PageWithCulture.cs adında bir c sharp dosyası oluşturdum, kodları :

    PageWithCulture.cs
    Kod:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    
    /// <summary>
    /// Summary description for PageWithCulture
    /// </summary>
    public class PageWithCulture : Page
    {
    	public PageWithCulture()
    	{
    		//
    		// TODO: Add constructor logic here
    		//
    	}
        #region InitializeCulture
        protected override void InitializeCulture()
        {
            string dil = "";
            if (Request.QueryString["dil"] == null)
            {
                dil = "tr";
            }
            else
            {
                dil = Request.QueryString["dil"];
            }
            //-------------------------------------
            switch (dil)
            {
                case "tr":
                default:
                    UICulture = "tr-TR";
                    Culture = "tr-TR";
                    break;
                case "en":
                    UICulture = "en-US";
                    Culture = "en-US";
                    break;
                case "ru":
                    UICulture = "ru-RU";
                    Culture = "ru-RU";
                    break;
                case "sa":
                    UICulture = "ar-SA";
                    Culture = "ar-SA";
                    break;
            }
    
            base.InitializeCulture();
        }
        #endregion
    }
    Sonra sayfaların birinin başlangıcındaki o InitializeCulture bloğunu kaldırıp o sayfayı PageWithCulture sınıfından türettim. İşe yarıyor.

    Tekrar teşekkürler.
    İyi çalışmalar.

  3. #13
    Ceviz Üyesi
    Üyelik Tarihi
    11/2006
    Mesaj
    2

    Varsayılan

    anov hocam,
    masterpage için de page withculture den türetme yapabilirmiyiz..

  4. #14
    Varlığa izin veren boşluk
    Üyelik Tarihi
    04/2004
    Yer
    Mavi kabarcığın içi
    Mesaj
    3,413

    Varsayılan

    Merhaba leafclover;

    Şimdi bir örnek proje açıp, masterpage içinde this.Page.Init += new EventHandler gibi bir deneme yapmaya çalıştım, ancak masterpage içinde Page nesnesinin InitializeCulture metodunu ezemediğim için sonuçlandıramadım.

    Şu an bildiğim tek yol, PageWithCulture ile sayfa türetmek. Masterpage ile o zaman da yapamamıştık, şimdi de başaramadım.

    Ama yapılabilirse kod çok daha merkezi olacaktır.

  5. #15
    Ceviz Üyesi
    Üyelik Tarihi
    08/2008
    Mesaj
    92

    Varsayılan

    Şimdi benim kullandığım yöntemi söyleyeyim:

    Masterpage de dropdown list içinde seçilecek diller var.

    Bir adet basepage.vb uzantılı kod sayfam var içeriği:

    Kod:
     
    Imports Microsoft.VisualBasic
    Imports System.Threading
    Imports System.Globalization
    ''' <summary>
    ''' Custom base page used for all web forms.
    ''' </summary>
    Public Class BasePage
    Inherits System.Web.UI.Page
    Protected Overrides Sub InitializeCulture()
    Thread.CurrentThread.CurrentUICulture = New CultureInfo(Session("MyCulture").ToString)
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Session("MyCulture").ToString)
    End Sub
    
    End Class

    Bu classı eklediğim hersayfadan çağırıyorum.

    Hiç codebehind olmayan sayfada:

    Kod:
     
    Partial Class örnekSayfa
    Inherits BasePage
    End Class

    Şimdi benim kullandığım yöntemi söyleyeyim:

    Gelelim master page deki kodlara:

    Page Load olayına:

    Kod:
     
    IfNot Page.IsPostBack Then
    ddlLanguage.SelectedValue = Session("MyCulture")
    End If
    Drop down listin kodları:

    Kod:
     
    Protected Sub ddlLanguage_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlLanguage.SelectedIndexChanged
    If Not Session("MyCulture") = ddlLanguage.SelectedValue Then
    Session("MyCulture") = ddlLanguage.SelectedValue
    Dim aCookie As New HttpCookie("deneme")
    aCookie.Values("languagePref") = Session("MyCulture")
    aCookie.Expires = System.DateTime.Now.AddDays(21)
    Response.Cookies.Add(aCookie)
    End If
    Response.Redirect(Request.Url.ToString)
    End Sub
    Masterpage içinde kullandığım görünen yazılar için ise GlobalRecources kullanıyorum.

    Masterpage içinde ise:

    Kod:
    <asp:Literal ID="Literal1" runat="server" Text="<%$ Resources:default, txtanasayfa%>" />
    şeklinde çağırıyorum.

    Menüler için ise yine GlobalRecource içine ayrı bir demet kullanıyorum (sitemap.resx) kullanıyorum ve site map içinde ise.

    Kod:
    <siteMapNode url="~/Default.aspx" title="$resources:sitemap,anasayfa" description="" SecurityTrimmingEnabled="true" roles ="*"/>
    olarak kullanıyorum.

    İyi çalışmalar




  6. #16
    Ceviz Üyesi
    Üyelik Tarihi
    05/2007
    Mesaj
    556

    Varsayılan

    culture için pre init ide kullanabilirsin.

  7. #17
    Ceviz Üyesi
    Üyelik Tarihi
    02/2007
    Mesaj
    145

    Varsayılan

    henüz ben de yeni araştırmaya başladım bu konuyu, bilgiler için tşkler internetten 2 örnek proje buldum. henüz tam incelemedim ama faydası olabilir. http://www.codeproject.com/KB/aspnet...onPackage.aspx ve http://www.codeproject.com/KB/locale...alization.aspx


 

Konu Bilgileri

Users Browsing this Thread

Şu an 1 kullanıcı bu konuya bakıyor. (0 üye ve 1 ziyaretçi)

Benzer Konular

  1. 2 dilli site
    By babyface in forum PHP
    Cevap: 1
    En Son Mesaj: 30/09/2007, 20:10
  2. Yapı (Build XXX) nedir?
    By zafercelenk in forum Pascal / Delphi / Delphi.NET
    Cevap: 4
    En Son Mesaj: 19/09/2006, 09:22
  3. Tatlı Dilli Ceren
    By MEHMET in forum Kültür ve Sanat
    Cevap: 25
    En Son Mesaj: 21/08/2006, 01:24
  4. Organizasyon yapı scripti?
    By pirilti in forum Javascript / DHTML / Ajax
    Cevap: 0
    En Son Mesaj: 31/08/2005, 18:44
  5. PHP ile Yapı Kredi Posnet
    By musto in forum PHP
    Cevap: 1
    En Son Mesaj: 09/12/2004, 21:20

Sık Kullanılanlar

Sık Kullanılanlar

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz
  •  
Yukarı Çık