2

Ich habe eine Lösung mit drei Projekten:Verwenden PCL resx Strings in UWP

  1. Portable Klassenbibliothek enthält Funktionen und LocalizedStrings.resx Dateien für die Lokalisierung
  2. WPF-Anwendung für Windows 7
  3. Universal-App für Windows 10

In meiner WPF-Anwendung verwende ich den folgenden Code, um die Saiten von den resx Dateien zuzugreifen:

private ResourceManager localizedStrings; 

public MainWindow() 
{ 
    localizedStrings = new ResourceManager(typeof(LocalizedStrings)); 

    InitializeComponent(); 

    tbTest.Text = localizedStrings.GetString("headerToolData"); 

Jetzt möchte ich den gleichen Code in meiner UWP-App verwenden, aber es funktioniert nicht. Ich bekomme immer den Wert für die Sprache als "Standardsprache" im Paketmanifest.

Wie kann ich richtig auf Strings zugreifen, die in einer ResX-Datei definiert sind, die in einem PCL in UWP-Apps enthalten ist?

Antwort

2

Etwas, das Ihnen als Grund erscheint, warum Sie nur die Standardsprache in der UWP-Anwendung erhalten, ist, dass die App nicht weiß, dass sie andere Sprachen unterstützen sollte.

Die Art, wie ein UWP das wissen würde, ist durch Konvention. In einem UWP würden Sie normalerweise einen Ordner namens Strings und Unterordner für alle unterstützten Kulturen haben, der rew-Dateien enthalten würde.

Ich vermute, Sie haben diese Struktur nicht in Ihrer UWP-App. Um zu testen, ob dies der Fall ist, versuchen Sie, diese Struktur zu erstellen und mindestens eine Datei in den Ordnern hinzuzufügen, die mindestens eine Ressource enthalten.

Wenn dies nicht funktioniert, Sie an diesen beiden Links sehen möchten Shared localization for WP8 and W Share localization files between WP8 and Win8

Sie sind für Win8 writen aber sie sollten das gleiche für UWP arbeiten.

Kurz gesagt, was sie vorschlagen, ist eine Klasse erstellen, um die lokalisierten Ressourcen verfügbar zu machen.

+0

Die Beschreibung in Ihrem ersten Link ist wirklich toll. Ich habe zwei Strings in den Resw-Dateien hinzugefügt, einen für den App-Titel und einen zweiten für die App-Beschreibung. Auf diese Weise können diese beiden Werte leicht lokalisiert werden und alles funktioniert wie erwartet. – daengl

+0

Vielen Dank, dass der PCL-Ansatz mich ein oder zwei Tage gerettet hat. –

1

Wenn Ihre lokalisierten Ressourcen in Ihrem Startprojekt befindet, können Sie die unterstützten Sprachen in der package.appxmanifest angeben:

<Resources> 
    <Resource Language="de-AT"/> 
    <Resource Language="en-US"/> 
    </Resources> 
Verwandte Themen