Ş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
Sık Kullanılanlar