Laravel 本地化:两种翻译方式 1 个改进

通常来讲,本地化有两种方式:

使用短键

通常,翻译字符串都存放在 resources/lang 目录下的文件里。在此目录中,但凡应用支持的每种语言都应该有一个对应的子目录:

/resources
    /lang
        /en
            messages.php
        /es
            messages.php

所有语言文件都返回键值对数组,例如:

<?php

// resources/lang/en/messages.php

return [
    'welcome' => 'Welcome to our application'
];

使用翻译字符串作为键

对于有大量翻译需求的应用,如果每条翻译语句都要一一使用 『短键』 来定义,那么当你在视图中尝试去引用这些 『短键』 的时候,很容易变得混乱。因此, Laravel 也支持使用字符串 『默认』 翻译作为关键字来定义翻译字符串。

使用翻译字符串作为键的翻译文件以 JSON 格式存储在 resources/lang 目录中。例如,如果你的应用中有西班牙语翻译,你应该在该目录下新建一个 resources/lang/es.json 文件:

{
    "I love programming.": "Me encanta programar."
}

检索翻译字符串

你可以使用辅助函数 __ 从语言文件中检索, __ 函数接受翻译字符串所在的文件名加键名作为其第一个参数。例如,我们要检索 resources/lang/messages.php 语言文件中的翻译字符串 welcome :

echo __('messages.welcome');

echo __('I love programming.');

如果你正使用 Blade 模板引擎 ,你可以在视图文件中使用 {{ }} 语法或者使用 @lang 指令来打印翻译字符串:

{{ __('messages.welcome') }}

@lang('messages.welcome')

如果指定的翻译字符串不存在,那么 __ 函数会直接返回该翻译字符串的键名。所以,如果上述示例中的翻译字符串对应的键值对不存在, __ 函数将会直接返回 messages.welcome 。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!