Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie die berechtigungsbasierte Mehrsprachenunterstützung in Laravel

So implementieren Sie die berechtigungsbasierte Mehrsprachenunterstützung in Laravel

PHPz
PHPzOriginal
2023-11-02 08:22:021037Durchsuche

So implementieren Sie die berechtigungsbasierte Mehrsprachenunterstützung in Laravel

So implementieren Sie berechtigungsbasierte Mehrsprachenunterstützung in Laravel

Einführung:
In modernen Websites und Anwendungen ist die Unterstützung mehrerer Sprachen eine sehr häufige Anforderung. Bei einigen komplexen Systemen müssen wir möglicherweise auch verschiedene Sprachübersetzungen basierend auf den Berechtigungen des Benutzers dynamisch anzeigen. Laravel ist ein sehr beliebtes PHP-Framework, das viele leistungsstarke Funktionen zur Vereinfachung des Entwicklungsprozesses bietet. In diesem Artikel wird erläutert, wie die erlaubnisbasierte Mehrsprachenunterstützung in Laravel implementiert wird, und es werden spezifische Codebeispiele bereitgestellt.

Schritt 1: Mehrsprachige Unterstützung konfigurieren

Zuerst müssen wir die mehrsprachige Unterstützung in Laravel konfigurieren. Öffnen Sie die Datei config/app.php, suchen Sie das Feld „locale“ und stellen Sie es auf die Standardsprache ein. Diese Sprache wird zur Grundsprache unserer Anwendungen.

Als nächstes suchen Sie das Feld „Gebietsschemas“ in der Datei config/app.php und stellen es auf die Liste der unterstützten Sprachen ein. Wir können es zum Beispiel auf Englisch und Französisch einstellen:

'locales' => [

'en',
'fr'

],

Dann müssen wir die entsprechenden Sprachdateien im Verzeichnis resources/lang erstellen. Laravel lädt automatisch die entsprechende Sprachdatei basierend auf dem aktuellen Gebietsschema.

Schritt 2: Erstellen Sie eine Berechtigungskontrolltabelle

Um die berechtigungsbasierte Sprachanzeige zu implementieren, müssen wir eine Berechtigungskontrolltabelle erstellen. Wir können eine Tabelle mit dem Namen „permissions“ in der Datenbank erstellen, um die Sprachkennungen zu speichern, die verschiedenen Berechtigungen entsprechen.

Verwenden Sie zunächst das Migrationstool von Laravel, um eine Migrationsdatei zu generieren, und führen Sie den folgenden Befehl aus:

php artisan make:migration create_permissions_table --create=permissions

Öffnen Sie dann die generierte Migrationsdatei und ändern Sie den Code in den folgenden Inhalt:

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class CreatePermissionsTable erweitert Migration
{

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('permissions', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('key');
        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('permissions');
}

}

Führen Sie den Migrationsbefehl aus, um die Tabellenstruktur zu erstellen:

php artisan. migrat e

Schritt 3: Berechtigungen konfigurieren. Sprache Übersetzung

us Berechtigungsbezogene Übersetzungsinhalte müssen der Sprachdatei hinzugefügt werden. Öffnen Sie die entsprechende Sprachdatei im Verzeichnis resources/lang und erstellen Sie eine Datei mit dem Namen „permissions.php“.

Fügen Sie dann den folgenden Code zur Datei „permissions.php“ hinzu:

return [

'admin' => 'Admin',
'user' => 'User',
'guest' => 'Guest',

];

Der „Administrator“, der „Benutzer“ und der „Gast“ entsprechen hier unterschiedlichen Berechtigungen. Die Spracherkennung kann an die tatsächlichen Bedürfnisse angepasst werden.

Schritt 4: Sprachübersetzungsfunktion mit Berechtigungen schreiben

Als nächstes müssen wir eine Funktion in die Anwendung schreiben, um die entsprechende Sprachübersetzung basierend auf Benutzerberechtigungen zu erhalten.

Öffnen Sie das Verzeichnis app/Helpers. Wenn das Verzeichnis nicht vorhanden ist, können Sie selbst eines erstellen.

Erstellen Sie eine Datei mit dem Namen LanguageHelper.php im Helpers-Verzeichnis und fügen Sie den folgenden Code hinzu:

namespace AppHelpers;

use IlluminateSupportFacadesAuth;

class LanguageHelper
{

public static function getPermissionTranslation($key)
{
    $permissions = [
        'admin' => __('permissions.admin'),
        'user' => __('permissions.user'),
        'guest' => __('permissions.guest'),
    ];

    $user = Auth::user();
    $role = $user->role->key;

    if (array_key_exists($role, $permissions)) {
        return $permissions[$role];
    }

    return '';
}

}

here Die Die Funktion getPermissionTranslation wird verwendet, um die Sprachübersetzung der entsprechenden Berechtigungen basierend auf der Rolle des Benutzers zu erhalten.

Schritt 5: Berechtigungssprachübersetzung in der Ansicht verwenden

Schließlich können wir die Berechtigungssprachenübersetzung in der Ansicht verwenden. Öffnen Sie die Ansichtsdatei und fügen Sie den folgenden Code hinzu:

{{ AppHelpersLanguageHelper::getPermissionTranslation(Auth::user()->role->key) }}

Auth:: Hier ist user()->role->key der Schlüssel zum Abrufen der aktuellen Benutzerrolle und zum Erhalten der entsprechenden Berechtigungsübersetzung über LanguageHelper.

Fazit:

Durch die oben genannten Schritte haben wir erfolgreich die berechtigungsbasierte Mehrsprachenunterstützung implementiert. Wenn sich die Berechtigungen eines Benutzers ändern, werden die Sprachübersetzungen auf der Seite entsprechend aktualisiert. Laravel bietet viele leistungsstarke Funktionen und Tools, die uns dabei helfen, verschiedene Anforderungen einfacher zu erfüllen. Ich hoffe, dass dieser Artikel Ihnen bei der Implementierung der erlaubnisbasierten Mehrsprachenunterstützung in Laravel hilfreich sein wird, und ich wünsche Ihnen, dass Sie bessere Anwendungen schreiben können.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die berechtigungsbasierte Mehrsprachenunterstützung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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