翻译 Laravel Spark 计划功能

Translate Laravel Spark plan features

我想知道用多种不同语言显示我的 Spark 计划功能的最佳方式是什么。

假设我有以下特征

Spark::plan('Premium', 'monthly-artist-premium')
        ->price(10)
        ->trialDays(14)
        ->features([
            'Online profile', 'Access To More Features',
        ]);

我考虑过使用 Laravel 的翻译工具和翻译键来做这样的事情

Spark::plan('Premium', 'monthly-premium')
        ->price(10)
        ->trialDays(14)
        ->features([
            'base.Online_profile', 'base.Access_to_more_features',
        ]);

然后在使用 Vue 渲染计划时我会做这样的事情,但它不是翻译。

<li class='pricing-feature' v-for="feature in plan.features">
    @lang('@{{ feature }}')
</li>

知道如何实现它来处理多种语言吗?

不是最好的解决方案,但这是我最终做的:

Spark::freePlan('Basic')
        ->features([
            'free_plan'
]);

然后在register-common.blade.php中显示计划时

我为每个不同的计划用 v-if 条件做了类似的事情

<ul v-if="plan.features[0] === 'free_plan'" class='pricing-feature-list'>
    <li class="pricing-feature">
        @lang('base.Online_profile')
    </li>
</ul>

在 Laravel Spark 7.0 上,我设法通过以下方式翻译功能列表:

  1. 将翻译后的密钥附加到 .json 语言文件中。
  2. SparkServiceProvider::booted() 方法中将这些键用于功能列表。
  3. resources/views/vendor/spark/modals/plan-details.blade.phpspark/resources/views/modals/plan-details.blade.php

    <!-- Modal Body -->
    <div class="modal-body">
        <ul class="plan-feature-list p-0 m-0">
            <li v-for="feature in detailingPlan.features">
                @{{ feature }}
            </li>
        </ul>
    </div>
    

更改为:

    <!-- Modal Body -->
    <div class="modal-body">
        <ul class="plan-feature-list p-0 m-0">
            <li v-for="feature in detailingPlan.features">
                @{{ __(feature) }}
            </li>
        </ul>
    </div>