0

我想知道以多种不同语言显示我的 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>

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

4

2 回答 2

2

在 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>
于 2019-02-02T08:38:06.700 回答
0

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

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>
于 2018-11-29T23:49:29.780 回答