Wie können konfigurierbare Elemente in einer mehrsprachigen Webanwendung konvertiert und gespeichert werden?

8

Ich habe eine mehrsprachige Webanwendung . Ich konvertiere alle Steuerelemente, d. H. Etiketten, Dropdown, Text und Nachrichten mit Ressource-Datei .

Problem:

Zum Beispiel hat Registrierungsseite Drop-Down-Präfix-Herr, Frau, Fräulein usw. Diese Präfix-Daten kommt aus einer Tabelle und ist konfigurierbar, d. h. Wir haben eine Konfigurations-Webseite für die gleichen.

Es gibt viele andere konfigurierbare Dinge und entsprechende Seiten.

Meine Frage ist, wie man diese Daten in eine andere Sprache konvertiert und wie man dasselbe speichert, wie es mit der Ressourcendatei nicht möglich ist.

Wer praktische Ideen hat, kann mich führen.

    
Veer 03.07.2015, 11:06
quelle

7 Antworten

1

Probieren Sie das XML-Format aus, um Ihre Sprache zu unterscheiden

%Vor%     
Edward Islam 08.07.2015 16:39
quelle
1

Wenn es vom Benutzer konfiguriert werden kann, ist es nicht praktisch, Ressourcendateien zu verwenden, denn Benutzer können alles konfigurieren, was sie brauchen.

Also, wenn ich es richtig verstanden habe, denke ich, dass die einzige praktische Lösung darin besteht, Übersetzungen für jeden Wert, den Benutzer eingeben, in einer Tabelle zu haben.

Da Benutzer Werte in jeder Sprache eingeben können, kann es schwierig werden.

Ich würde eine Standardsprache wählen, sprich Englisch. Wenn Benutzer die Werte verwalten (Titel oder Präfix in Ihrem Beispiel), müssen sie sie paarweise verwalten, also ihre Sprache und ihr Englisch.

Wenn also das Gebietsschema französisch ist, wenn sie den Index der Titel überprüfen, sehen sie zwei Spalten, eine für Französisch und eine für Englisch.

Wenn der französische Benutzer zum ersten Mal die Ansicht eingibt, dann gibt es keine französischen Werte, daher muss der Benutzer die französische Übersetzung für die bereits eingetragenen englischen Werte hinzufügen.

Wenn der Benutzer einen neuen [französischen] Wert hinzufügt, muss er / sie auch die englische Übersetzung eingeben.

Es sieht ein wenig umständlich aus und ist vielleicht nicht sehr praktisch, aber es ist eine Option!

Am besten,

PD: Hey, teilen Sie bitte die Lösung, wenn Sie dazu kommen!

    
Miguel Veloso 09.07.2015 04:26
quelle
1

Microsoft .NET bietet Unterstützung für das Arbeiten mit kulturspezifischen Informationen mit der CultureInfo-Klasse im System.Globalization-Namespace. Kulturinformationen können sowohl auf Seitenebene als auch auf Anwendungsebene festgelegt werden.

%Vor%

Um die Culture-Informationen auf Anwendungsebene festzulegen, verwenden Sie Folgendes im Abschnitt "Globalisierung" der Datei web.config.

%Vor%

versuche das,

%Vor%     
sriharichander 09.07.2015 17:26
quelle
0

Die Art und Weise, wie ich derzeit mehrsprachige Unterstützung in Anwendungen implementiere, geschieht durch die folgende Methode.

  • Erstellen Sie eine abstrakte Klasse namens Language, von der alle Sprachen abstammen.
  • Fügen Sie eine abstrakte Zeichenfolge für jede Textzeichenfolge hinzu, die übersetzt werden muss.
  • Jede Sprache, die von der Basissprachklasse erbt, gibt einfach die lokalisierte Version der Zeichenfolge zurück.
  • Erstellen Sie eine globale Eigenschaft zum Speichern der aktuell ausgewählten Sprachklasse.
  • Abrufen von Zeichenfolgenwerten, die von globaler Eigenschaft übersetzt werden müssen, statt lokal festzulegen.

Obwohl das Hinzufügen der übersetzten Zeichenfolgen mühsam ist, finde ich, dass diese Methode sicherstellt, dass alle benötigten Teile übersetzt werden, während der UI-Code so einfach wie möglich gehalten wird.

Die Verwendung einer Basisklasse ermöglicht auch die Wiederverwendung von Methoden oder Eigenschaften, die in allen Sprachen verwendet werden können.

Um zu versuchen, einen grundlegenden Überblick zu geben, würde die Struktur so gehen.

// Basissprachklasse

%Vor%

// Beispiel englischer Sprachkurs

%Vor%

// Beispiel Spanischunterricht

%Vor%

Sie haben dann einfach irgendwo eine globale Eigenschaft.

%Vor%

Alle Elemente, die übersetzt werden müssen, können dann auf die CurrrentLanguage-Eigenschaft verweisen, um die gewünschte Zeichenfolge zurückzugeben.

XAML Beispiel:

%Vor%

Codebeispiel:

%Vor%     
sidjames 07.07.2015 04:01
quelle
0

Das Erweitern des Ressourcenanbieters ist wahrscheinlich der Ansatz, den Sie durchführen möchten.

Überprüfen Sie Folgendes:

Ссылка (Der Kontext dieses Artikels ist ASP.Net WebForms; sehen Sie sich an der Abschnitt "Erstellen eines Datenbankressourcenanbieters".)

Ссылка (dieser Blog-Eintrag gilt tatsächlich was in dem obigen MSDN-Artikel behandelt wird, sondern in ASP.Net MVC anstelle von WebForms.)

Ich bin nicht sicher, welche Art von ASP.Net-Anwendung Sie erstellen, also dachte ich, es wäre sinnvoll, Referenzen für WebForms und MVC aufzunehmen.

Was in diesen beiden Referenzen erwähnt wird, sollte Ihnen eine gute Grundlage geben, um Ihre eigene Lösung zu implementieren.

    
Lawrence 07.07.2015 18:58
quelle
0

Um Konfigurationsdaten zu speichern, die dynamisch von Benutzern in Ressourcen eingegeben werden, können Sie IResourceWriter so:

%Vor%     
S.Akbari 07.07.2015 20:03
quelle
0
  

Zum Beispiel hat die Registrierungsseite Drop-down von Prefix - Mr, Mrs, Miss   usw. Diese Präfixdaten stammen aus einer Tabelle und sind konfigurierbar, d.h.   haben eine Konfigurationswebseite für das gleiche.

Da die Werte der Dropdownliste in der Datenbank sind, sollte die Übersetzung ebenfalls in der Datenbank enthalten sein.

Der einfachste Weg ist, ein Feld für jede Sprache in Ihrer Tabelle titles zu haben:

%Vor%

Dies wird jedoch nicht gut skalieren, wenn Sie mehr Sprache haben oder wenn Sie in der Zukunft Sprachen hinzufügen möchten.

So würde ich eine localized_string -Tabelle wie folgt hinzufügen:

%Vor%

In Ihrer Titeltabelle und in anderen Tabellen, in denen Sie einen lokalisierten_String benötigen, speichern Sie die ID des Strings:

%Vor%

Auf diese Weise können Sie die lokalisierte Zeichenfolge in jeder Sprache abfragen, und Sie können so viele Sprachen hinzufügen, wie Sie möchten, ohne das Datenbankschema zu ändern.

    
Mathieu Pagé 12.07.2015 13:08
quelle