asp.net локализует текст из файлов в папке \ bin - PullRequest
0 голосов
/ 01 апреля 2011

Я пытаюсь получить значения из правильного strings.txt в моих файлах ресурсов в папке \ bin при переключении языков.

[default.aspx.vb]

Partial Class _Default
    Inherits System.Web.UI.Page

    Shared rm As ResourceManager = HttpContext.Current.Application("RM")

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label.Text = rm.GetString("homewelcome") '"Alles over trouwen, voor je perfecte bruiloft"
    End Sub

    Protected Overrides Sub InitializeCulture()
        SetLanguage(Request.Url.ToString)
    End Sub

    Public Shared Sub SetLanguage(ByVal URL As String)
        Dim lang As String = ""
        If URL.Contains("www.domain.nl") Then
            lang = "nl"
        ElseIf URL.Contains("www.domain.com") Then
            lang = "en"
        End If
        System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo(lang)
        System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(lang)
    End Sub
End Class

[global.asax]

    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        Application("RM") = New ResourceManager("strings", Assembly.Load("strings"))
    End Sub

В моей папке bin есть:

Bin \ Strings.txt
бен \ п \ strings.nl.txt
bin \ en \ strings.en.txt

Я генерирую dll примерно так:

resgen strings.txt strings.resources
al /embed:strings.resources,strings.resources /out:strings.dll
resgen nl\strings.nl.resources
al /embed:nl\strings.nl.resources,strings.nl.resources /out:nl\strings.resources.dll /c:nl
resgen en\strings.en.resources
al /embed:en\strings.en.resources,strings.en.resources /out:en\strings.resources.dll /c:en

Теперь все файлы, похоже, созданы правильно.

Однако, когда я захожу на www.domain.com, используются значения в bin \ strings.txt, а НЕ (как я и ожидал) значения из bin \ en \ strings.en.txt

Почему?

1 Ответ

0 голосов
/ 02 апреля 2011

Я попробовал ваш фрагмент кода на компьютере .NET 4.0 Windows 2008. Это сработало так, как вы этого хотите.

Единственное, о чем я мог подумать ... на компьютере, на котором я его пробовал, был установлен Windows MUI. Хотите знать, если это фактор?

...