Frage

Ich habe in Lokalisierungsfunktionen gebaut mit dem .NET gespielt und sie scheinen alle verlassen sich auf Daten in resx Dateien setzen.

Aber die meisten Systeme können sich darauf nicht verlassen, weil sie Datenbank angetrieben sind. So wie lösen Sie dieses Problem? Gibt es ein in .NET Art und Weise gebaut, oder erstellen Sie eine Übersetzung Tabelle in SQL und tut es alle manuell? Und wenn Sie dies Ihre Websites auf der Mehrheit zu tun, gibt es keinen Grund, selbst die resx Art und Weise der Lokalisierung zu verwenden?

Ein Beispiel dafür ist, ich auf meiner Website eine FAQ-Liste habe, halte ich diese Liste in der Datenbank, so kann ich einfach hinzufügen / entfernen mehr, sondern sie in der Datenbank setzen, ich habe keine gute Möglichkeit, diese Informationen übersetzen in mehreren Sprachen.

War es hilfreich?

Lösung

Meiner Meinung nach ist lokalisierende dynamische Inhalte (zum Beispiel Ihre FAQ) sollte von Ihnen in Ihrer Datenbank durchgeführt werden. Je nachdem, wie Sie Ihre Fragen gespeichert sind, würde ich wahrscheinlich eine „locale“ Spalte erstellen und zu verwenden, dass, wenn aus der Datenbank die FAQ Fragen auswählen. Ich bin mir nicht sicher, ob dies wäre sehr gut skalieren, wenn Sie viele Tabellen gestartet lokalisierende.

Für statische Inhalte (beispielsweise Formularfeld Etiketten, statischer Text, Symbole, etc) Sie wahrscheinlich gut sein sollten, dateibasierte Ressourcen. Wenn Sie wirklich wollte, aber es sieht aus wie es nicht super schwer sein würde, eine benutzerdefinierte Ressource Provider-Implementierung zu erstellen, die damit umgehen können.

Hier einige Links zum Thema:

Andere Tipps

Für einen bestimmten Punkt in Ihrem Datenmodell, spaltete sich die Beschreibung Teil in einer lokalisierten Tabelle mit einer Landid Spalte (LCID).

So ist der Tisch für Produkt nicht in der Tat enthalten die Produkte Beschreibung oder den Namen, sondern nur seine harte und schnelle Werte (ProductId, EAN, NumberInStock, NextStockData, IsActive, IsPublished) etc.

Product dann enthält  ProductId, Name, Beschreibung LCID

ich in Kanada leben so Mehrsprachigkeit eine große Sache ist. Ich habe zwei Ansätze gesehen. Erste Option ist es, alle lokalisierten Daten für einen bestimmten Datensatz in einer anderen Tabelle zu speichern, zu der ursprünglichen Tabelle mit dem Primärschlüssel verknüpft, und das Gebietsschema. Die zweite Option ist ähnlich die erste, mit der Ausnahme, dass für jedes Gebietsschema gibt eine andere Tabelle, mit dem Lokalisierungs als Suffix für die Tabellennamen.

Option A

Item (ItemID, ...)
ItemLocal (ItemID,LocaleID,....)

Option B

Item (ItemID, ...)
Item_ENUS (ItemID,....)
Item_ENGB (ItemID,....)
Item_FR (ItemID,....)

Eine dritte Option, die ich von den letzten dachte, das ist wirklich schön wäre, wenn eine Datenbank unterstützt nativ die Werte für alle Einheimischen im gleichen Feld zu speichern wäre. Und wenn das Feld als varchar-multi eingerichtet wurde, dann würden Sie darauf zugreifen müssen, um durch einen Parameter übergeben Sie die Sprache angeben. Nichts davon existiert, wie ich es weiß, aber es ist etwas, das ich glaube wirklich, die Dinge viel einfacher und viel mehr Flüssigkeit machen würde.

Derzeit Übersetzung ist nicht etwas, das automatisch durchgeführt werden kann. Der beste Weg ist es, eine Person zu bekommen zu übersetzen und Nicks Methoden zu verwenden, um die richtige Sprache zu zeigen.

Wir verwenden eine Mischung aus RESX Dateien und Option A von Kibbee Antwort. Wir haben ein einfaches Werkzeug, um die RESX-Dateien online zu verwalten: http://blog.lavablast.com/post/ 2008/02 / RESX-Datei-Web-Editor.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top