da ve k1312/translation

引导 illuminate/translation 包

v0.0.3 2017-04-09 12:47 UTC

This package is auto-updated.

Last update: 2024-09-20 08:10:43 UTC


README

引导 illuminate/translation 包。

安装

该包可在 Packagist 上找到,您可以使用 Composer 进行安装。

composer require davek1312/translation

配置

vendor/davek1312/translation/davek1312 文件夹复制到您的应用程序根目录。

要定义默认区域设置,编辑 /davek1312/translation/config/translation.php

<?php

return [

    'default_locale' => 'en',

];

语言文件

应用程序语言文件

语言文件存储在 davek1312/translation/lang 中。对于您应用程序支持的所有语言,您应该有一个子目录

/davek1312
    /translation
        /lang
            /en
            test.php
            /fr
            test.php

每个语言文件只是一个简单的关联数组,例如

<?php 

return [
    'key' => 'value',
];

包语言文件

如果您正在开发一个包并希望使用语言文件,您可以按照上述方式创建它们,但您还需要注册语言文件。要注册您的语言文件,请查看 davek1312\app 文档。

用法

基本用法

<?php 

use Davek1312\Translation\Translator;

$translator = new Translator();

//Retrieve a value language value for a key using the default locale
$translator->trans('file-name.key');

//Retrieve a value language value for a key with a different locale 
$translator->trans('file-name.key', [], 'fr');

//Retrieve a packages langauge file value
$translator->trans('package-name::file-name.key');

在语言字符串中替换参数

您可以通过在文本前添加 : 来在语言文件中创建参数

'welcome' => 'Hello :name'

要使用参数值替换参数,提供参数值数组

// This will return "Hello David"
$translator->trans('file-name.welcome', ['name' => 'David']);

覆盖包语言文件

如果您想覆盖一个包,可以将覆盖文件放在 davek1312/translation/lang/vendor/{package-name}/{locale}

例如,如果您想覆盖名为 other-package 的包中的 messages.php 中的值,您将创建以下文件:davek1312/translation/lang/vendor/{other-package}/{locale}/messages.php。在此文件中,您应该仅定义要覆盖的翻译字符串。您未覆盖的任何翻译字符串将仍然从包的原始语言文件中加载。