簡體   English   中英

laravel Blade @lang() 本地化中的多元化?

[英]Pluralization in laravel blade @lang() localization?

Laravel 5 使用 @lang 助手提供翻譯

<!-- file: template.blade.php -->
@lang('some text')

Laravel 5 還可以根據變量對字符串進行復數。

// file: controller.php
echo trans_choice('messages.apples', 10);

然后翻譯文件將包含以下行來翻譯蘋果:

// file: /resources/lang/en
'apples' => 'There is one apple|There are many apples',

現在,我想在刀片模板中使用復數形式,但我不知道如何使用它。 我嘗試了以下方法:

<!-- file: template.blade.php -->
Course duration: {{ $course.days }} @lang('day|days', $course.days)

這對我來說感覺是邏輯語法,但這只會給我一個關於輸入參數 2 需要是數組的錯誤。 我也試過這個:

<!-- file: template.blade.php -->
Course duration: {{ $course.days }} @lang('day|days', [$course.days])

和這個:

<!-- file: template.blade.php -->
Course duration: {{ $course.days }} @lang(['day|days', $course.days])

對此有一個@choice刀片指令。

Course duration: {{ $course->days }} @choice('day|days', $course->days)

您可以將它與這樣的變量一起使用

//plurals.php
'day' => 'one day| :n days',

您可以在刀片文件中執行此操作:

{{ trans_choice('plurals.day', $course->days), ['n' => $course->days] }} 

你甚至可以使用這個

{{ trans_choice('plurals.like', $post->likes), ['n' => $post->likes] }} 
'like' => '{0} Nobody likes this|[1,19] :n users like this|[20,*] Many users like this'

您必須在其中一個翻譯文件中注冊一個新的鍵控條目,比如說plurals.php 那么正確的方法是:

//in plurals.php
//...
'day' => 'day|days',
//...

然后你可以像這樣檢索條目

{{trans_choice('plurals.day', $course->days)}} //assuming the arrow syntax is how you retrieve a property in php :P

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM