Heim Backend-Entwicklung C#.Net-Tutorial Detaillierte Einführung in den Beispielcode für die mehrsprachige Implementierung des Asp.Net Core MVC-Projekts

Detaillierte Einführung in den Beispielcode für die mehrsprachige Implementierung des Asp.Net Core MVC-Projekts

Jun 04, 2017 am 09:48 AM

In diesem Artikel wird hauptsächlich die Asp.Net Core MVC-Projektimplementierung Mehrsprachigkeit (Globalisierung/Lokalisierung) vorgestellt Es hat einen gewissen Referenzwert.

Ich habe kürzlich eine mehrsprachige Funktion für ein Razor MVC-Projekt implementiert. was auch immer. Der endgültige Effekt besteht darin, die Sprache der gesamten Website mit einem Klick zu ändern und während der Entwicklung nur einen Satz Seiten zu schreiben.

Kommen wir zum Punkt

Zuerst müssen wir eine CultureConfigurer-Klasse erstellen, um Lokalisierungsressourcen zu verwalten und den Link „Übersetzung“ zu vervollständigen:

Hier habe ich verwendet Statische -Klasse und dann die Init()-Methode ausführen, wenn das MVC-Projekt StartUp tatsächlich etwas dumm ist. Natürlich können Sie auch zuerst eine Schnittstelle schreiben und dann Abhängigkeitsinjektion um einen Singleton zu erstellen.

using System.Collections.Generic;
using System.IO;
using System.Reflection;
using Newtonsoft.Json;

namespace Localization
{
  public enum Culture
  {
    Cn,
    En
  }

  public static class CultureConfigurer
  {
    private static Dictionary<string, string> _enDictionary;
    private static Dictionary<string, string> _cnDictionary;

    public static void Init()
    {
      var assembly = Assembly.Load(new AssemblyName("Localization"));

      var resourceNames = assembly.GetManifestResourceNames();
      foreach (var resourceName in resourceNames)
      {
        if (resourceName.EndsWith("en-US.json") || resourceName.EndsWith("zh-CN.json"))
        {
          using (var stream = assembly.GetManifestResourceStream(resourceName))
          {
            if (stream != null)
            {
              using (StreamReader reader = new StreamReader(stream))
              {
                var content = reader.ReadToEnd();
                Dictionary<string, string> localizationDictionary =
                  JsonConvert.DeserializeObject<Dictionary<string, string>>(content);
                if (resourceName.EndsWith("en-US.json"))
                {
                  _enDictionary = localizationDictionary;
                }
                else
                {
                  _cnDictionary = localizationDictionary;
                }
              }
            }
          }
        }
      }
    }

    public static string GetValue(string key, Culture culture)
    {
      switch (culture)
      {
        case (Culture.Cn):
          {
            if (_cnDictionary.ContainsKey(key))
            {
              return _cnDictionary[key];
            }
            else
            {
              return $"[{key}]";
            }
          }
        case (Culture.En):
          {
            if (_enDictionary.ContainsKey(key))
            {
              return _enDictionary[key];
            }
            else
            {
              return $"[{key}]";
            }
          }
        default:
          {
            return $"[{key}]";
          }
      }
    }
  }
}
Nach dem Login kopieren
Ein paar Punkte müssen hier beachtet werden:

1. Die Enum-Klasse Culture wird verwendet, um die zu implementierende Sprache darzustellen. Hier habe ich einfach Chinesisch und Englisch implementiert (I Verstehe die anderen nicht) ), die entsprechende CultureConfigurer-Klasse hat zwei Wörterbuch

in Chinesisch und Englisch 2. Verwenden Sie Assembly.Load, um die Assembly zu laden, der Parameter ist Ihr eigener Assemblyname, ich habe gerade einen hier geschrieben

 3. Ich habe die JSON-Datei als Ressourcendatei ausgewählt, auch um den Aufruf in js zu erleichtern. Natürlich können Sie auch

xml oder jedes andere Format verwenden, das Sie verwenden möchten Passen Sie die Analysemethode an und konvertieren Sie die Datei. Laden Sie einfach den Inhalt in das entsprechende Wörterbuch

 4. Wenn ich die Get

Value-Methode sehe, glaube ich, dass jeder sie verstanden hat, egal in welcher Sprache Das heißt, es verwendet ein bestimmtes Wort als Schlüssel und ruft dann diese Methode auf, um das Wort in die aktuelle Sprache zu „übersetzen“. Wenn beispielsweise „Open“ als Schlüssel verwendet wird, sollte es im chinesischen Wörterbuch ein KeyValuePair geben, das „Open“ lautet: „Open“, und die entsprechende englische Sprache sollte ein „Open“: „Open“ haben Wenn die Kultur auf Chinesisch ist, lautet die Anzeige „Open“, was auf Englisch „Open“ bedeutet.

5. Ressourcendateien können an einer beliebigen Stelle in der Assembly erstellt werden. Wenn Ihr Projekt über eine project.json-Datei verfügt, fügen Sie diese in den buildOptions hinzu. Passen Sie den Pfad entsprechend Ihrem eigenen Dateispeicherort an

"embed": {
   "include": [
    "Localization/SourceFiles/*.json"
   ]
  }
Nach dem Login kopieren
Wenn es sich um VS2017 handelt, handelt es sich um eine CSPROJ-Datei. Klicken Sie dann mit der rechten Maustaste auf die hinzuzufügende Ressourcendatei, wählen Sie „

Eigenschaften“, ändern Sie die Konfiguration in „Alle Konfigurationen“ und ändern Sie die „Operation generieren“ in den erweiterten Konfigurationseigenschaften ist „eingebettete Ressource“, wie unten gezeigt:

An diesem Punkt haben wir die Kernklasse geschrieben, um die Lokalisierung zu implementieren. Wir müssen das Problem lösen, wie es auf der Seite angezeigt wird:

Erstellen Sie eine neue Klasse MyRazorPage

using System;
using Microsoft.AspNetCore.Mvc.Razor;
using Localization;

namespace MVC.Views
{
  public abstract class MyRazorPage<TModel> : RazorPage<TModel>
  {
    public virtual string L(string source)
    {
      var value = Context.Request.Cookies["culture"];
      Culture c;
      if (string.IsNullOrEmpty(value) || !Enum.TryParse(value, out c))
      {
        c = Culture.Cn;
      }
      return CultureConfigurer.GetValue(source, c);
    }
  }
}
Nach dem Login kopieren
Beachten Sie, dass es sich bei dieser Klasse um ein

handelt abstrakte Klasse und erbt RazorPage Suchen Sie dann die Datei _ViewImports.cshtml im Ordner „Views“ und fügen Sie darin eine Zeile „@inherits MVC.Views.MyRazorPage“ hinzu, damit alle Ihre RazorPages die MyRazorPage-Klasse erben, was bedeutet, dass Sie die Methode selbst schreiben können verwenden möchten und Sie können es direkt in cshtml aufrufen. Hier habe ich eine L-Methode geschrieben und die GetValue-Methode von CultureConfigurer aufgerufen. Dann muss der zu übersetzende Text auf der Seite nur noch wie @L("Open") geschrieben werden. ​

Wie Sie sehen, speichere ich die Benutzersprache in Cookie und jeder kann hier seine eigenen Implementierungsmethoden haben. Meine Implementierungsmethode ist sehr einfach. Wenn der Benutzer die Sprache wechselt, greift er auf eine Schnittstelle zu, ändert das Cookie, das die Sprache darstellt, und aktualisiert dann die Seite.


Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Beispielcode für die mehrsprachige Implementierung des Asp.Net Core MVC-Projekts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So aktivieren Sie die Speicherintegritätsfunktion von Core Isolation in Windows 11 So aktivieren Sie die Speicherintegritätsfunktion von Core Isolation in Windows 11 May 10, 2023 pm 11:49 PM

Microsofts Windows 11 2022 Update (22H2) aktiviert standardmäßig den Speicherintegritätsschutz von CoreIsolation. Wenn Sie jedoch eine ältere Version des Betriebssystems ausführen, beispielsweise Windows 11 2022 Update (22H1), müssen Sie diese Funktion manuell aktivieren. Aktivieren Sie die Speicherintegritätsfunktion von CoreIsolation in Windows 11. Für Benutzer, die sich mit Core Isolation nicht auskennen: Es handelt sich um einen Sicherheitsprozess, der grundlegende Kernaktivitäten unter Windows vor Schadprogrammen schützen soll, indem er sie im Speicher isoliert. Dieser Prozess gewährleistet in Kombination mit der Speicherintegritätsfunktion

Was bedeutet Computerkern? Was bedeutet Computerkern? Sep 05, 2022 am 11:24 AM

Kern hat in Computern zwei Bedeutungen: 1. Der Kern, auch Kern genannt, ist der wichtigste Teil der CPU. Alle Berechnungen, die Annahme von Speicherbefehlen und die Verarbeitung von Daten der CPU werden vom Kern durchgeführt. Core ist der Prozessorname von Intel. Core ist die Prozessormarke, die Intel nach dem Pentium-Prozessor eingeführt hat. Derzeit werden Core-Prozessoren der zwölften Generation herausgebracht.

So nutzen Sie vue und Element-plus, um mehrsprachige und internationale Unterstützung zu erreichen So nutzen Sie vue und Element-plus, um mehrsprachige und internationale Unterstützung zu erreichen Jul 17, 2023 pm 04:03 PM

So nutzen Sie Vue und Element-Plus, um mehrsprachige und internationale Unterstützung zu erreichen. Einführung: Um auf die Bedürfnisse von Benutzern mit unterschiedlichen Sprachen und Kulturen zu reagieren, sind im heutigen globalisierten Zeitalter mehrsprachige und internationale Unterstützung zu wesentlichen Merkmalen geworden für viele Frontend-Projekte. In diesem Artikel wird erläutert, wie Sie mithilfe von Vue und Element-Plus mehrsprachige und internationale Unterstützung erreichen, sodass sich das Projekt flexibel an die Anforderungen verschiedener Sprachumgebungen anpassen kann. 1. Installieren Sie Element-plusElement-plus ist offiziell von Vue

So implementieren Sie eine mehrsprachige Website in PHP So implementieren Sie eine mehrsprachige Website in PHP May 22, 2023 am 11:31 AM

Mit der zunehmenden Beliebtheit des Internets müssen immer mehr Websites mehrere Sprachen unterstützen. Dies liegt daran, dass das Publikum der Website möglicherweise aus unterschiedlichen Regionen und mit unterschiedlichem kulturellen Hintergrund stammt. Wenn die Website nur in einer einzigen Sprache verfügbar ist, kann dies die Anzahl und das Erlebnis der Besucher einschränken. In diesem Artikel erfahren Sie, wie Sie eine mehrsprachige Website in PHP implementieren. 1. Erstellung und Design von Sprachdateien Sprachdateien sind Dateien, die alle Textzeichenfolgen und die entsprechenden Übersetzungen speichern und in einem bestimmten Format erstellt werden müssen. Beim Erstellen einer Sprachdatei müssen Sie folgende Aspekte berücksichtigen: 1. Benennung und Speicherort Der Dateiname sollte lauten

Tipps zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue Tipps zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue Jun 25, 2023 am 09:33 AM

Mit der kontinuierlichen Weiterentwicklung der Internationalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Umschaltfunktionen unterstützen. Als beliebtes Front-End-Framework bietet Vue ein Plug-In namens i18n, das uns bei der Umschaltung mehrerer Sprachen helfen kann. In diesem Artikel werden gängige Techniken zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue vorgestellt. Schritt 1: Installieren Sie das i18n-Plugin. Zuerst müssen wir das i18n-Plugin mit npm oder Yarn installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein: npminst

Wie geht CakePHP mit mehreren Sprachen um? Wie geht CakePHP mit mehreren Sprachen um? Jun 06, 2023 am 08:03 AM

CakePHP ist ein beliebtes PHP-Entwicklungsframework, das Entwicklern hilft, schnell hochwertige Webanwendungen zu erstellen. Mit der Entwicklung der Globalisierung müssen immer mehr Anwendungen mehrere Sprachen unterstützen, und CakePHP bietet auch entsprechende Unterstützung. In diesem Artikel wird erläutert, wie CakePHP mit mehreren Sprachen umgeht. 1. Mehrsprachige Unterstützung Die Unterstützung mehrerer Sprachen ist ein wichtiges Merkmal von CakePHP. Ab Version 2.0 unterstützt CakePHP das gettext-Dateiformat, das

So verwenden Sie PHP und Typecho, um eine Website mit Mehrsprachenunterstützung zu erstellen So verwenden Sie PHP und Typecho, um eine Website mit Mehrsprachenunterstützung zu erstellen Jul 21, 2023 pm 11:21 PM

So erstellen Sie mit PHP und Typecho eine Website mit Unterstützung für mehrere Sprachen. Einführung: Mit der Entwicklung der Globalisierung ist der Aufbau einer Website mit Unterstützung für mehrere Sprachen nach und nach zu einem Ziel geworden, das von Unternehmen und Einzelpersonen verfolgt wird. Als beliebte Programmiersprache kann PHP in Kombination mit Typecho, einem hervorragenden PHP-Open-Source-Blogprogramm, problemlos mehrsprachige Websites erstellen. In diesem Artikel wird erläutert, wie Sie mit PHP und Typecho eine Website mit mehrsprachiger Unterstützung erstellen, und relevante Codebeispiele bereitstellen. 1. Installieren und konfigurieren Sie zuerst Typecho

So beheben Sie den thermischen Auslösefehler des Prozessors in Windows 11/10 [Fix] So beheben Sie den thermischen Auslösefehler des Prozessors in Windows 11/10 [Fix] Apr 17, 2023 am 08:13 AM

Die meisten Geräte wie Laptops und Desktops werden seit langem stark von jungen Gamern und Programmierern genutzt. Das System hängt manchmal aufgrund einer Anwendungsüberlastung. Dies zwingt Benutzer dazu, ihre Systeme herunterzufahren. Dies passiert hauptsächlich Spielern, die umfangreiche Spiele installieren und spielen. Wenn das System nach einem erzwungenen Herunterfahren versucht, zu starten, wird auf einem schwarzen Bildschirm ein Fehler angezeigt, wie unten dargestellt: Nachfolgend sind die Warnungen aufgeführt, die während dieses Startvorgangs erkannt wurden. Diese können in den Einstellungen auf der Seite „Ereignisprotokoll“ eingesehen werden. Warnung: Überhitzung des Prozessors. Drücken Sie eine beliebige Taste, um fortzufahren. ..Diese Art von Warnmeldungen werden immer dann ausgegeben, wenn die Prozessortemperatur eines Desktops oder Laptops den Temperaturschwellenwert überschreitet. Nachfolgend sind die Gründe aufgeführt, warum dies auf Windows-Systemen geschieht. Viele schwere Anwendungen sind in

See all articles