jelix/simplelocalization

一个用于操作本地化消息的简单类

v1.7.2 2022-10-13 08:58 UTC

This package is not auto-updated.

Last update: 2024-09-26 18:37:29 UTC


README

这是一个用于加载和提供翻译字符串的简单类,用于本地化。

它以前在Jelix框架中使用。

安装

您可以使用Composer安装它。在您的项目中

composer require "jelix/simplelocalization"

用法

首先创建语言文件。您可以将所有语言的字符串存储在单个文件中,或者每个语言一个文件。每个文件都是一个PHP数组,每个字符串都有一个键。

示例。这是一个英文字符串的文件 translation.en.php

<?php

return array(
    'welcome' => 'Hello world',
    'thank.you' => 'Thank you'
);

现在为法语文本的 translation.fr.php

<?php

return array(
    'welcome' => 'Bonjour le monde',
    'thank.you' => 'Merci'
);

或者如果您选择一个文件 translation.php

<?php

return array(
    'en' => array(
        'welcome' => 'Hello world',
        'thank.you' => 'Thank you'
    ),
    'fr' => array(
        'welcome' => 'Bonjour le monde',
        'thank.you' => 'Merci'
    )
);

现在在您的PHP代码中,实例化一个容器

// with multiple files
$locales = new \Jelix\SimpleLocalization\Container('translation.%LANG%.php');
// note that %LANG% in the path will be replace by a lang code

// with a single file
$locales = new \Jelix\SimpleLocalization\Container('translation.php');

// with an array of file name. You can mix path with `%LANG%` tag and path without it
$locales = new \Jelix\SimpleLocalization\Container(array('translation.%LANG%.php', 'other_translation.php'));


// with an array of strings
$locales = new \Jelix\SimpleLocalization\Container(array(
    'en' => array(
        'welcome' => 'Bonjour le monde',
        'thank.you' => 'Merci'
    ),
    'fr' => array(
        'welcome' => 'Bonjour le monde',
        'thank.you' => 'Merci'
    )
));

构造函数的第二个参数,您可以提供一个语言代码。如果没有提供,当前语言将从 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 中猜测;

现在,从其键检索字符串

$str = $locales->get('welcome');

就是这样...