Laravel で許可ベースの多言語サポートを実装する方法

PHPz
リリース: 2023-11-02 08:22:02
オリジナル
1022 人が閲覧しました

Laravel で許可ベースの多言語サポートを実装する方法

Laravel で権限ベースの多言語サポートを実装する方法

はじめに:
最近の Web サイトやアプリケーションでは、多言語サポートは非​​常に一般的な要件です。 。一部の複雑なシステムでは、ユーザーの権限に基づいて異なる言語の翻訳を動的に表示する必要がある場合もあります。 Laravel は、開発プロセスを簡素化する多くの強力な機能を提供する非常に人気のある PHP フレームワークです。この記事では、Laravel でパーミッションベースの多言語サポートを実装する方法を紹介し、具体的なコード例を示します。

ステップ 1: 多言語サポートを構成する

まず、Laravel で多言語サポートを構成する必要があります。 config/app.php ファイルを開き、「locale」フィールドを見つけて、デフォルトの言語に設定します。この言語はアプリケーションの基本言語になります。

次に、config/app.php ファイル内の「locales」フィールドを見つけて、サポートされている言語のリストに設定します。たとえば、英語とフランス語に設定できます:

'locales' => [

'en',
'fr'
ログイン後にコピー

],

次に、対応するものをresource/lang ディレクトリの言語ファイル。 Laravel は、現在のロケールに基づいて、対応する言語ファイルを自動的にロードします。

ステップ 2: 権限制御テーブルを作成する

権限ベースの言語表示を実装するには、権限制御テーブルを作成する必要があります。データベースに「permissions」という名前のテーブルを作成し、さまざまな権限に対応する言語識別子を保存できます。

まず、Laravel の移行ツールを使用して移行ファイルを生成し、次のコマンドを実行します。

php 職人 make:migration create_permissions_table --create=permissions

次に、ファイルを移行し、コードを次のように変更します。

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class CreatePermissionsTable extends 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');
}
ログイン後にコピー

}

移行コマンドを実行してテーブル構造を作成します:

php 職人 移行

ステップ 3: 権限の言語翻訳を構成する

We言語ファイルで権限を設定する必要があります。権限に関連する翻訳コンテンツを追加します。 resource/lang ディレクトリ内の対応する言語ファイルを開き、permissions.php という名前のファイルを作成します。

次に、次のコードを Permissions.php ファイルに追加します:

return [

'admin' => 'Admin',
'user' => 'User',
'guest' => 'Guest',
ログイン後にコピー

];

ここでの「admin」、「user」、「guest」は、さまざまな権限に対応する言語識別子であり、実際のニーズに応じて調整できます。

ステップ 4: 権限言語翻訳関数の書き込み

次に、ユーザー権限に基づいて対応する言語翻訳を取得する関数をアプリケーションに記述する必要があります。

app/Helpers ディレクトリを開きます。ディレクトリが存在しない場合は、自分で作成できます。

Helpers ディレクトリに LanguageHelper.php という名前のファイルを作成し、次のコードを追加します:

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 '';
}
ログイン後にコピー

}

ここでの getPermissionTranslation 関数は、ユーザーのロールに基づいて、対応するアクセス許可の言語翻訳を取得するために使用されます。

ステップ 5: ビューでパーミッション言語翻訳を使用する

最後に、ビューでパーミッション言語翻訳を使用できます。ビュー ファイルを開き、次のコードを追加します:

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

ここでの Auth::user()->role->key は、現在のユーザー ロールを取得し、LanguageHelper を通じて対応する権限の変換を取得するためのキーです。

結論:

上記の手順により、許可ベースの多言語サポートを正常に実装できました。ユーザーの権限が変更されると、ページ上の言語翻訳もそれに応じて更新されます。 Laravel は、さまざまなニーズをより簡単に実現するために役立つ多くの強力な機能とツールを提供します。この記事が Laravel でパーミッションベースの多言語サポートを実装する際に役立つことを願っています。また、より良いアプリケーションを作成できることを願っています。

以上がLaravel で許可ベースの多言語サポートを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート