Skip to content

Commit

Permalink
Merge pull request zendframework#571 from bladeofsteel/fix/ru/zend.co…
Browse files Browse the repository at this point in the history
…nfig-translation

[RU] Zend\Config translation
  • Loading branch information
Maks3w committed Jan 15, 2013
2 parents f7a37c3 + d0400c9 commit 8083ae9
Show file tree
Hide file tree
Showing 6 changed files with 930 additions and 189 deletions.
71 changes: 71 additions & 0 deletions docs/languages/ru/modules/zend.config.factory.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
.. EN-Revision: 9e6907f
.. _zend.config.factory:

Фабрика
=======

Фабрика дает вам возможность загружать конфигурационные файлы в массив или в объект ``Zend\Config\Config``.
Фабрика имеет два назначения:

- Загрузка конфигурационного файла(ов)
- Сохранение конфигурационного файла

.. note::

Сохранение конфигурации будет выполнено для *одного* файла. Фабрике не известно об объединении двух и
более конфигураций, поэтому не может сохранить их в несколько файлов. Если вы хотите сохранить определенные
разделы конфигурации в отдельный файл, вы должны выделить их самостоятельно.

Загрузка файла конфигурации
---------------------------

Следующий пример демонстрирует как загрузить один файл конфигурации

.. code-block:: php
:linenos:
//Загружить файл как php-массив
$config = Zend\Config\Factory::fromFile(__DIR__.'/config/my.config.php');
//Загрузить xml-файл как объект Config
$config = Zend\Config\Factory::fromFile(__DIR__.'/config/my.config.xml', true);
Для объединения нескольких файлов конфигураций

.. code-block::php
:linenos:
$config = Zend\Config\Factory::fromFiles(
array(
__DIR__.'/config/my.config.php',
__DIR__.'/config/my.config.xml',
)
);
Сохранение файла конфигурации
-----------------------------

Иногда вы хотите сохранить конфигурацию в файл. Что ж, это действительно легко сделать.

.. code-block::php
:linenos:
$config = new Zend\Config\Config(array(), true);
$config->settings = array();
$config->settings->myname = 'framework';
$config->settings->date = '2012-12-12 12:12:12';
//Сохранение конфигурации
Zend\Config\Factory::toFile(__DIR__.'/config/my.config.php', $config);
//Сохранение массива
$config = array(
'settings' => array(
'myname' => 'framework',
'data' => '2012-12-12 12:12:12',
),
);
Zend\Config\Factory::toFile(__DIR__.'/config/my.config.php', $config);
61 changes: 22 additions & 39 deletions docs/languages/ru/modules/zend.config.introduction.rst
Original file line number Diff line number Diff line change
@@ -1,30 +1,24 @@
.. EN-Revision: none
.. EN-Revision: 9e6907f
.. _zend.config.introduction:

Введение
========

``Zend_Config`` создан для того, чтобы сделать более простым доступ к
конфигурационным данным и их использование внутри приложения.
Он предоставляет основанный на вложенных свойствах объектов
пользовательский интерфейс для доступа к конфигурационным
данным внутри приложения. Конфигурационные данные могут
храниться на различных носителях информации, поддерживающих
хранение данных в виде иерархии. На данный момент ``Zend_Config``
предоставляет адаптеры для конфигурационных данных,
хранящихся в текстовых файлах: :ref:`Zend\Config\Ini <zend.config.adapters.ini>` и
:ref:`Zend\Config\Xml <zend.config.adapters.xml>`.
``Zend\Config`` создан для упрощения доступа к конфигурационным данным приложения. Для доступа к
конфигурационным данным внутри приложения он предоставляет пользовательский интерфейс,
основанный на вложенных свойствах объектов. Конфигурационные данные могут поступать из различных источников,
поддерживающих иерархическое хранение данных. На данный момент ``Zend\Config`` предоставляет
адаптеры, которые могут читать и записывать данные сохраненные в .ini, JSON, YAML и XML файлах.

.. _zend.config.introduction.example.using:

.. rubric:: Использование Zend_Config
Использование Zend\\Config\\Config с классом-читателем
------------------------------------------------------

Обычно предполагается, что используется один из классов
адаптеров, например, :ref:`Zend\Config\Ini <zend.config.adapters.ini>` или
:ref:`Zend\Config\Xml <zend.config.adapters.xml>`. Но если конфигурационные данные
доступны в виде массива *PHP*, то можно передавать эти данные
конструктору ``Zend_Config``, чтобы использовать преимущества
простого объектно-ориентированного интерфейса.
Как правило, предполагается, что пользователи будут использовать один из
:ref:`классов для чтения <zend.config.reader>` конфигурационного файла, однако, если конфигурационные данные
доступны в виде *PHP*-массива, достаточно передать его в конструктор ``Zend\Config\Config`` для использования
простого объектно-ориентированного интерфейса:

.. code-block:: php
:linenos:
Expand All @@ -44,28 +38,16 @@
);
// Создание объектно-ориентированной обертки для конфигурационных данных
require_once 'Zend/Config.php';
$config = new Zend\Config\Config($configArray);
// Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
echo $config->webhost;
// Использование конфигурационных данных для соединения с базой данных
$db = Zend\Db\Db::factory($config->database->adapter,
$config->database->params->toArray());
Как показано в примере выше, ``Zend\Config\Config`` предоставляет возможность использовать вложенных свойств для
доступа к конфигурационным данным, переданным в конструктор.

// Альтернативный способ - просто передавайте объект Zend_Config.
// Фабрика Zend_Db знает, как его интерпретировать.
$db = Zend\Db\Db::factory($config->database);
Как показано в предыдущем примере, в ``Zend_Config`` для доступа к
конфигурационным данным, переданным его конструктору,
используется синтаксис вложенных свойств объектов.

Кроме объектно-ориентированного доступа к значениям данных,
``Zend_Config`` также предоставляет метод ``get()``, который будет
возвращать значение по умолчанию, если элемент данных не
существует. Например:
Наравне с объектно-ориентированным доступом к данным, ``Zend\Config\Config`` так же имеет метод ``get()``,
который возвращает значение по умолчанию, если такого элемента нет в конфигурационном массиве. Например:

.. code-block:: php
:linenos:
Expand All @@ -74,11 +56,11 @@
.. _zend.config.introduction.example.file.php:

.. rubric:: Использование Zend_Config с конфигурационным файлом PHP
Использование Zend\\Config\\Config с конфигурационным файлом на PHP
----------------------------------------------------------------

Часто требуется использовать конфигурационный файл,
основанный на "чистом"*PHP*. Следующий код показывает, как просто
этого достичь:
Часто возникает необходимость использовать конфигурационный файл на "чистом" *PHP*. В следующем примере показано
на сколько легко это можно сделать:

.. code-block:: php
:linenos:
Expand All @@ -96,11 +78,12 @@
)
)
);
.. code-block:: php
:linenos:
// Использование конфигурации
$config = new Zend\Config\Config(require 'config.php');
$config = new Zend\Config\Config(include 'config.php');
// Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
echo $config->webhost;
Expand Down
177 changes: 177 additions & 0 deletions docs/languages/ru/modules/zend.config.processor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
.. EN-Revision: 9e6907f
.. _zend.config.processor:

Zend\\Config\\Processor
=======================

``Zend\Config\Processor`` дает вам возможность выполнить некоторые операции над объектом ``Zend\Config\Config``.
``Zend\Config\Processor`` это интерфейс, который определяет два метода: ``process()`` и ``processValue()``. Эти
операции предоставляются следующими конкретными реализациями:

- ``Zend\Config\Processor\Constant``: управление значениями PHP-констант;

- ``Zend\Config\Processor\Filter``: фильтрация конфигурационных данных с помощью ``Zend\Filter``;

- ``Zend\Config\Processor\Queue``: управление очередью операций, применяемых к конфигурационным данным;

- ``Zend\Config\Processor\Token``: нахождение и замена определенных маркеров;

- ``Zend\Config\Processor\Translator``: перевод значений параметров на другие языки используя
``Zend\I18n\Translator``;

Ниже мы представили некоторые примеры для каждого типа процессора.

.. _zend.config.processor.constant:

Zend\\Config\\Processor\\Constant
---------------------------------

.. _zend.config.processor.constant.example:

.. rubric:: Использование Zend\\Config\\Processor\\Constant

Этот пример демонстрирует основы использования ``Zend\Config\Processor\Constant``:

.. code-block:: php
:linenos:
define ('TEST_CONST', 'bar');
// установим true у Zend\Config\Config для возможности модификации
$config = new Zend\Config\Config(array('foo' => 'TEST_CONST'), true);
$processor = new Zend\Config\Processor\Constant();
echo $config->foo . ',';
$processor->process($config);
echo $config->foo;
Этот пример возвращает вывод: ``TEST_CONST, bar.``.

.. _zend.config.processor.filter:

Zend\\Config\\Processor\\Filter
-------------------------------

.. _zend.config.processor.filter.example:

.. rubric:: Использование Zend\\Config\\Processor\\Filter

Этот пример демонстрирует основы использования ``Zend\Config\Processor\Filter``:

.. code-block:: php
:linenos:
use Zend\Filter\StringToUpper;
use Zend\Config\Processor\Filter as FilterProcessor;
use Zend\Config\Config;
$config = new Config(array ('foo' => 'bar'), true);
$upper = new StringToUpper();
$upperProcessor = new FilterProcessor($upper);
echo $config->foo . ',';
$upperProcessor->process($config);
echo $config->foo;
Этот пример возвращает вывод: ``bar,BAR``.

.. _zend.config.processor.queue:

Zend\\Config\\Processor\\Queue
------------------------------

.. _zend.config.processor.queue.example:

.. rubric:: Использование Zend\\Config\\Processor\\Queue

Этот пример демонстрирует основы использования ``Zend\Config\Processor\Queue``:

.. code-block:: php
:linenos:
use Zend\Filter\StringToLower;
use Zend\Filter\StringToUpper;
use Zend\Config\Processor\Filter as FilterProcessor;
use Zend\Config\Processor\Queue;
use Zend\Config\Config;
$config = new Config(array ('foo' => 'bar'), true);
$upper = new StringToUpper();
$lower = new StringToLower();
$lowerProcessor = new FilterProcessor($lower);
$upperProcessor = new FilterProcessor($upper);
$queue = new Queue();
$queue->insert($upperProcessor);
$queue->insert($lowerProcessor);
$queue->process($config);
echo $config->foo;
Этот пример возвращает вывод: ``bar``. Фильтры в очереди применяются по принципу *FIFO* ("First In, First
Out" - первым вошел, первым вышел).

.. _zend.config.processor.token:

Zend\\Config\\Processor\\Token
------------------------------

.. _zend.config.processor.token.example:

.. rubric:: Использование Zend\\Config\\Processor\\Token

Этот пример демонстрирует основы использования ``Zend\Config\Processor\Token``:

.. code-block:: php
:linenos:
// установим true у Config для возможности модификации
$config = new Config(array('foo' => 'Value is TOKEN'), true);
$processor = new TokenProcessor();
$processor->addToken('TOKEN', 'bar');
echo $config->foo . ',';
$processor->process($config);
echo $config->foo;
Этот пример возвращает вывод: ``Value is TOKEN,Value is bar``.

.. _zend.config.processor.translator:

Zend\\Config\\Processor\\Translator
-----------------------------------

.. _zend.config.processor.translator.example:

.. rubric:: Использование Zend\\Config\\Processor\\Translator

Этот пример демонстрирует основы использования ``Zend\Config\Processor\Translator``:

.. code-block:: php
:linenos:
use Zend\Config\Config;
use Zend\Config\Processor\Translator as TranslatorProcessor;
use Zend\I18n\Translator\Translator;
$config = new Config(array('animal' => 'dog'), true);
/*
* Следующее отношение должно быть загружено в экземпляр переводчика
* $italian = array(
* 'dog' => 'cane'
* );
*/
$translator = new Translator();
// ... настраиваем переводчик ...
$processor = new TranslatorProcessor($translator);
echo "English: {$config->animal}, ";
$processor->process($config);
echo "Italian: {$config->animal}";
Этот пример возвращает вывод: ``English: dog, Italian: cane``.


Loading

0 comments on commit 8083ae9

Please sign in to comment.