翻译Laravel Spark计划功能

时间:2018-11-21 22:58:47

标签: vue.js laravel-blade laravel-spark laravel-localization

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

有什么主意,我该如何实现以处理多种语言?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

在Laravel星火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>