1
0
mirror of https://github.com/DesignPatternsPHP/DesignPatternsPHP.git synced 2025-03-16 04:09:49 +01:00

add Chinese translation initial files

This commit is contained in:
Faust 2015-05-29 12:43:32 +02:00
parent ca591f9286
commit 4703828950
40 changed files with 2933 additions and 0 deletions
.gitignore
locale/zh_CN/LC_MESSAGES
Behavioral
ChainOfResponsibilities
Command
Iterator
Mediator
Memento
NullObject
Observer
README.po
Specification
State
Strategy
TemplateMethod
Visitor
Creational
AbstractFactory
Builder
FactoryMethod
Multiton
Pool
Prototype
README.po
SimpleFactory
Singleton
StaticFactory
More
Delegation
README.po
Repository
ServiceLocator
README.po
Structural
Adapter
Bridge
Composite
DataMapper
Decorator
DependencyInjection
Facade
FluentInterface
Proxy
README.po
Registry

1
.gitignore vendored

@ -3,3 +3,4 @@
/nbproject
/vendor/
_build/
*.mo

@ -0,0 +1,90 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/ChainOfResponsibilities/README.rst:2
msgid "`Chain Of Responsibilities`__"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:5
msgid "Purpose:"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:7
msgid ""
"To build a chain of objects to handle a call in sequential order. If one "
"object cannot handle a call, it delegates the call to the next in the chain "
"and so forth."
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:12
msgid "Examples:"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:14
msgid ""
"logging framework, where each chain element decides autonomously what to do "
"with a log message"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:16
msgid "a Spam filter"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:17
msgid ""
"Caching: first object is an instance of e.g. a Memcached Interface, if that "
"\"misses\" it delegates the call to the database interface"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:19
msgid ""
"Yii Framework: CFilterChain is a chain of controller action filters. the "
"executing point is passed from one filter to the next along the chain, and "
"only if all filters say \"yes\", the action can be invoked at last."
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:25
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:32
msgid "Code"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:34
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:36
msgid "Request.php"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:42
msgid "Handler.php"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:48
msgid "Responsible/SlowStorage.php"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:54
msgid "Responsible/FastStorage.php"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:61
msgid "Test"
msgstr ""
#: ../../Behavioral/ChainOfResponsibilities/README.rst:63
msgid "Tests/ChainTest.php"
msgstr ""

@ -0,0 +1,99 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Command/README.rst:2
msgid "`Command`__"
msgstr ""
#: ../../Behavioral/Command/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Command/README.rst:7
msgid "To encapsulate invocation and decoupling."
msgstr ""
#: ../../Behavioral/Command/README.rst:9
msgid ""
"We have an Invoker and a Receiver. This pattern uses a \"Command\" to "
"delegate the method call against the Receiver and presents the same method "
"\"execute\". Therefore, the Invoker just knows to call \"execute\" to "
"process the Command of the client. The Receiver is decoupled from the "
"Invoker."
msgstr ""
#: ../../Behavioral/Command/README.rst:15
msgid ""
"The second aspect of this pattern is the undo(), which undoes the method "
"execute(). Command can also be aggregated to combine more complex commands "
"with minimum copy-paste and relying on composition over inheritance."
msgstr ""
#: ../../Behavioral/Command/README.rst:21
msgid "Examples"
msgstr ""
#: ../../Behavioral/Command/README.rst:23
msgid ""
"A text editor : all events are Command which can be undone, stacked and "
"saved."
msgstr ""
#: ../../Behavioral/Command/README.rst:25
msgid ""
"Symfony2: SF2 Commands that can be run from the CLI are built with just the "
"Command pattern in mind"
msgstr ""
#: ../../Behavioral/Command/README.rst:27
msgid ""
"big CLI tools use subcommands to distribute various tasks and pack them in "
"\"modules\", each of these can be implemented with the Command pattern (e.g."
" vagrant)"
msgstr ""
#: ../../Behavioral/Command/README.rst:32
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Command/README.rst:39
msgid "Code"
msgstr ""
#: ../../Behavioral/Command/README.rst:41
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Command/README.rst:43
msgid "CommandInterface.php"
msgstr ""
#: ../../Behavioral/Command/README.rst:49
msgid "HelloCommand.php"
msgstr ""
#: ../../Behavioral/Command/README.rst:55
msgid "Receiver.php"
msgstr ""
#: ../../Behavioral/Command/README.rst:61
msgid "Invoker.php"
msgstr ""
#: ../../Behavioral/Command/README.rst:68
msgid "Test"
msgstr ""
#: ../../Behavioral/Command/README.rst:70
msgid "Tests/CommandTest.php"
msgstr ""

@ -0,0 +1,83 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Iterator/README.rst:2
msgid "`Iterator`__"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:7
msgid ""
"To make an object iterable and to make it appear like a collection of "
"objects."
msgstr ""
#: ../../Behavioral/Iterator/README.rst:11
msgid "Examples"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:13
msgid ""
"to process a file line by line by just running over all lines (which have an"
" object representation) for a file (which of course is an object, too)"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:18
msgid "Note"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:20
msgid ""
"Standard PHP Library (SPL) defines an interface Iterator which is best "
"suited for this! Often you would want to implement the Countable interface "
"too, to allow ``count($object)`` on your iterable object"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:25
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:32
msgid "Code"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:34
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:36
msgid "Book.php"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:42
msgid "BookList.php"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:48
msgid "BookListIterator.php"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:54
msgid "BookListReverseIterator.php"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:61
msgid "Test"
msgstr ""
#: ../../Behavioral/Iterator/README.rst:63
msgid "Tests/IteratorTest.php"
msgstr ""

@ -0,0 +1,78 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Mediator/README.rst:2
msgid "`Mediator`__"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:7
msgid ""
"This pattern provides an easy to decouple many components working together. "
"It is a good alternative over Observer IF you have a \"central "
"intelligence\", like a controller (but not in the sense of the MVC)."
msgstr ""
#: ../../Behavioral/Mediator/README.rst:11
msgid ""
"All components (called Colleague) are only coupled to the MediatorInterface "
"and it is a good thing because in OOP, one good friend is better than many. "
"This is the key-feature of this pattern."
msgstr ""
#: ../../Behavioral/Mediator/README.rst:16
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:23
msgid "Code"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:25
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:27
msgid "MediatorInterface.php"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:33
msgid "Mediator.php"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:39
msgid "Colleague.php"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:45
msgid "Subsystem/Client.php"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:51
msgid "Subsystem/Database.php"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:57
msgid "Subsystem/Server.php"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:64
msgid "Test"
msgstr ""
#: ../../Behavioral/Mediator/README.rst:66
msgid "Tests/MediatorTest.php"
msgstr ""

@ -0,0 +1,85 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Memento/README.rst:2
msgid "`Memento`__"
msgstr ""
#: ../../Behavioral/Memento/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Memento/README.rst:7
msgid ""
"Provide the ability to restore an object to its previous state (undo via "
"rollback)."
msgstr ""
#: ../../Behavioral/Memento/README.rst:10
msgid ""
"The memento pattern is implemented with three objects: the originator, a "
"caretaker and a memento. The originator is some object that has an internal "
"state. The caretaker is going to do something to the originator, but wants "
"to be able to undo the change. The caretaker first asks the originator for a"
" memento object. Then it does whatever operation (or sequence of operations)"
" it was going to do. To roll back to the state before the operations, it "
"returns the memento object to the originator. The memento object itself is "
"an opaque object (one which the caretaker cannot, or should not, change). "
"When using this pattern, care should be taken if the originator may change "
"other objects or resources - the memento pattern operates on a single "
"object."
msgstr ""
#: ../../Behavioral/Memento/README.rst:23
msgid "Examples"
msgstr ""
#: ../../Behavioral/Memento/README.rst:25
msgid "The seed of a pseudorandom number generator"
msgstr ""
#: ../../Behavioral/Memento/README.rst:26
msgid "The state in a finite state machine"
msgstr ""
#: ../../Behavioral/Memento/README.rst:29
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Memento/README.rst:36
msgid "Code"
msgstr ""
#: ../../Behavioral/Memento/README.rst:38
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Memento/README.rst:40
msgid "Memento.php"
msgstr ""
#: ../../Behavioral/Memento/README.rst:46
msgid "Originator.php"
msgstr ""
#: ../../Behavioral/Memento/README.rst:52
msgid "Caretaker.php"
msgstr ""
#: ../../Behavioral/Memento/README.rst:59
msgid "Test"
msgstr ""
#: ../../Behavioral/Memento/README.rst:61
msgid "Tests/MementoTest.php"
msgstr ""

@ -0,0 +1,103 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/NullObject/README.rst:2
msgid "`Null Object`__"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:7
msgid ""
"NullObject is not a GoF design pattern but a schema which appears frequently"
" enough to be considered a pattern. It has the following benefits:"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:11
msgid "Client code is simplified"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:12
msgid "Reduces the chance of null pointer exceptions"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:13
msgid "Fewer conditionals require less test cases"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:15
msgid ""
"Methods that return an object or null should instead return an object or "
"``NullObject``. ``NullObject``\\ s simplify boilerplate code such as ``if "
"(!is_null($obj)) { $obj->callSomething(); }`` to just "
"``$obj->callSomething();`` by eliminating the conditional check in client "
"code."
msgstr ""
#: ../../Behavioral/NullObject/README.rst:22
msgid "Examples"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:24
msgid "Symfony2: null logger of profiler"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:25
msgid "Symfony2: null output in Symfony/Console"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:26
msgid "null handler in a Chain of Responsibilities pattern"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:27
msgid "null command in a Command pattern"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:30
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:37
msgid "Code"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:39
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:41
msgid "Service.php"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:47
msgid "LoggerInterface.php"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:53
msgid "PrintLogger.php"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:59
msgid "NullLogger.php"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:66
msgid "Test"
msgstr ""
#: ../../Behavioral/NullObject/README.rst:68
msgid "Tests/LoggerTest.php"
msgstr ""

@ -0,0 +1,75 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Observer/README.rst:2
msgid "`Observer`__"
msgstr ""
#: ../../Behavioral/Observer/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Observer/README.rst:7
msgid ""
"To implement a publish/subscribe behaviour to an object, whenever a "
"\"Subject\" object changes it's state, the attached \"Observers\" will be "
"notified. It is used to shorten the amount of coupled objects and uses loose"
" coupling instead."
msgstr ""
#: ../../Behavioral/Observer/README.rst:13
msgid "Examples"
msgstr ""
#: ../../Behavioral/Observer/README.rst:15
msgid ""
"a message queue system is observed to show the progress of a job in a GUI"
msgstr ""
#: ../../Behavioral/Observer/README.rst:19
msgid "Note"
msgstr ""
#: ../../Behavioral/Observer/README.rst:21
msgid ""
"PHP already defines two interfaces that can help to implement this pattern: "
"SplObserver and SplSubject."
msgstr ""
#: ../../Behavioral/Observer/README.rst:25
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Observer/README.rst:32
msgid "Code"
msgstr ""
#: ../../Behavioral/Observer/README.rst:34
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Observer/README.rst:36
msgid "User.php"
msgstr ""
#: ../../Behavioral/Observer/README.rst:42
msgid "UserObserver.php"
msgstr ""
#: ../../Behavioral/Observer/README.rst:49
msgid "Test"
msgstr ""
#: ../../Behavioral/Observer/README.rst:51
msgid "Tests/ObserverTest.php"
msgstr ""

@ -0,0 +1,24 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/README.rst:2
msgid "Behavioral"
msgstr ""
#: ../../Behavioral/README.rst:4
msgid ""
"In software engineering, behavioral design patterns are design patterns that"
" identify common communication patterns between objects and realize these "
"patterns. By doing so, these patterns increase flexibility in carrying out "
"this communication."
msgstr ""

@ -0,0 +1,84 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Specification/README.rst:2
msgid "`Specification`__"
msgstr ""
#: ../../Behavioral/Specification/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Specification/README.rst:7
msgid ""
"Builds a clear specification of business rules, where objects can be checked"
" against. The composite specification class has one method called "
"``isSatisfiedBy`` that returns either true or false depending on whether the"
" given object satisfies the specification."
msgstr ""
#: ../../Behavioral/Specification/README.rst:13
msgid "Examples"
msgstr ""
#: ../../Behavioral/Specification/README.rst:15
msgid "`RulerZ <https://github.com/K-Phoen/rulerz>`__"
msgstr ""
#: ../../Behavioral/Specification/README.rst:18
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Specification/README.rst:25
msgid "Code"
msgstr ""
#: ../../Behavioral/Specification/README.rst:27
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Specification/README.rst:29
msgid "Item.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:35
msgid "SpecificationInterface.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:41
msgid "AbstractSpecification.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:47
msgid "Either.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:53
msgid "PriceSpecification.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:59
msgid "Plus.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:65
msgid "Not.php"
msgstr ""
#: ../../Behavioral/Specification/README.rst:72
msgid "Test"
msgstr ""
#: ../../Behavioral/Specification/README.rst:74
msgid "Tests/SpecificationTest.php"
msgstr ""

@ -0,0 +1,63 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/State/README.rst:2
msgid "`State`__"
msgstr ""
#: ../../Behavioral/State/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/State/README.rst:7
msgid ""
"Encapsulate varying behavior for the same routine based on an object's "
"state. This can be a cleaner way for an object to change its behavior at "
"runtime without resorting to large monolithic conditional statements."
msgstr ""
#: ../../Behavioral/State/README.rst:12
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/State/README.rst:19
msgid "Code"
msgstr ""
#: ../../Behavioral/State/README.rst:21
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/State/README.rst:23
msgid "OrderController.php"
msgstr ""
#: ../../Behavioral/State/README.rst:29
msgid "OrderFactory.php"
msgstr ""
#: ../../Behavioral/State/README.rst:35
msgid "OrderInterface.php"
msgstr ""
#: ../../Behavioral/State/README.rst:41
msgid "ShippingOrder.php"
msgstr ""
#: ../../Behavioral/State/README.rst:47
msgid "CreateOrder.php"
msgstr ""
#: ../../Behavioral/State/README.rst:54
msgid "Test"
msgstr ""

@ -0,0 +1,92 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Strategy/README.rst:2
msgid "`Strategy`__"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:5
msgid "Terminology:"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:7
msgid "Context"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:8
msgid "Strategy"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:9
msgid "Concrete Strategy"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:12
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:14
msgid ""
"To separate strategies and to enable fast switching between them. Also this "
"pattern is a good alternative to inheritance (instead of having an abstract "
"class that is extended)."
msgstr ""
#: ../../Behavioral/Strategy/README.rst:19
msgid "Examples"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:21
msgid "sorting a list of objects, one strategy by date, the other by id"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:22
msgid ""
"simplify unit testing: e.g. switching between file and in-memory storage"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:26
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:33
msgid "Code"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:35
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:37
msgid "ObjectCollection.php"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:43
msgid "ComparatorInterface.php"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:49
msgid "DateComparator.php"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:55
msgid "IdComparator.php"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:62
msgid "Test"
msgstr ""
#: ../../Behavioral/Strategy/README.rst:64
msgid "Tests/StrategyTest.php"
msgstr ""

@ -0,0 +1,83 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/TemplateMethod/README.rst:2
msgid "`Template Method`__"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:7
msgid "Template Method is a behavioral design pattern."
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:9
msgid ""
"Perhaps you have encountered it many times already. The idea is to let "
"subclasses of this abstract template \"finish\" the behavior of an "
"algorithm."
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:13
msgid ""
"A.k.a the \"Hollywood principle\": \"Don't call us, we call you.\" This "
"class is not called by subclasses but the inverse. How? With abstraction of "
"course."
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:17
msgid ""
"In other words, this is a skeleton of algorithm, well-suited for framework "
"libraries. The user has just to implement one method and the superclass do "
"the job."
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:21
msgid ""
"It is an easy way to decouple concrete classes and reduce copy-paste, that's"
" why you'll find it everywhere."
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:25
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:32
msgid "Code"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:34
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:36
msgid "Journey.php"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:42
msgid "BeachJourney.php"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:48
msgid "CityJourney.php"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:55
msgid "Test"
msgstr ""
#: ../../Behavioral/TemplateMethod/README.rst:57
msgid "Tests/JourneyTest.php"
msgstr ""

@ -0,0 +1,75 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Behavioral/Visitor/README.rst:2
msgid "`Visitor`__"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:7
msgid ""
"The Visitor Pattern lets you outsource operations on objects to other "
"objects. The main reason to do this is to keep a separation of concerns. But"
" classes have to define a contract to allow visitors (the ``Role::accept`` "
"method in the example)."
msgstr ""
#: ../../Behavioral/Visitor/README.rst:12
msgid ""
"The contract is an abstract class but you can have also a clean interface. "
"In that case, each Visitor has to choose itself which method to invoke on "
"the visitor."
msgstr ""
#: ../../Behavioral/Visitor/README.rst:17
msgid "UML Diagram"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:24
msgid "Code"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:26
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:28
msgid "RoleVisitorInterface.php"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:34
msgid "RolePrintVisitor.php"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:40
msgid "Role.php"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:46
msgid "User.php"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:52
msgid "Group.php"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:59
msgid "Test"
msgstr ""
#: ../../Behavioral/Visitor/README.rst:61
msgid "Tests/VisitorTest.php"
msgstr ""

@ -0,0 +1,91 @@
#
# FULL NAME <EMAIL@ADDRESS>, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: 2015-05-29 12:39+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ../../Creational/AbstractFactory/README.rst:2
msgid "`Abstract Factory`__"
msgstr "`抽象工厂`__"
#: ../../Creational/AbstractFactory/README.rst:5
msgid "Purpose"
msgstr "目的"
#: ../../Creational/AbstractFactory/README.rst:7
msgid ""
"To create series of related or dependent objects without specifying their "
"concrete classes. Usually the created classes all implement the same "
"interface. The client of the abstract factory does not care about how these "
"objects are created, he just knows how they go together."
msgstr "翻译。。。"
#: ../../Creational/AbstractFactory/README.rst:13
msgid "UML Diagram"
msgstr "UML 图"
#: ../../Creational/AbstractFactory/README.rst:20
msgid "Code"
msgstr "代码"
#: ../../Creational/AbstractFactory/README.rst:22
msgid "You can also find these code on `GitHub`_"
msgstr "在 `GitHub`_ 上查看代码"
#: ../../Creational/AbstractFactory/README.rst:24
msgid "AbstractFactory.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:30
msgid "JsonFactory.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:36
msgid "HtmlFactory.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:42
msgid "MediaInterface.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:48
msgid "Picture.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:54
msgid "Text.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:60
msgid "Json/Picture.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:66
msgid "Json/Text.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:72
msgid "Html/Picture.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:78
msgid "Html/Text.php"
msgstr ""
#: ../../Creational/AbstractFactory/README.rst:85
msgid "Test"
msgstr "测试"
#: ../../Creational/AbstractFactory/README.rst:87
msgid "Tests/AbstractFactoryTest.php"
msgstr ""

@ -0,0 +1,110 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/Builder/README.rst:2
msgid "`Builder`__"
msgstr ""
#: ../../Creational/Builder/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Creational/Builder/README.rst:7
msgid "Builder is an interface that build parts of a complex object."
msgstr ""
#: ../../Creational/Builder/README.rst:9
msgid ""
"Sometimes, if the builder has a better knowledge of what it builds, this "
"interface could be an abstract class with default methods (aka adapter)."
msgstr ""
#: ../../Creational/Builder/README.rst:12
msgid ""
"If you have a complex inheritance tree for objects, it is logical to have a "
"complex inheritance tree for builders too."
msgstr ""
#: ../../Creational/Builder/README.rst:15
msgid ""
"Note: Builders have often a fluent interface, see the mock builder of "
"PHPUnit for example."
msgstr ""
#: ../../Creational/Builder/README.rst:19
msgid "Examples"
msgstr ""
#: ../../Creational/Builder/README.rst:21
msgid "PHPUnit: Mock Builder"
msgstr ""
#: ../../Creational/Builder/README.rst:24
msgid "UML Diagram"
msgstr ""
#: ../../Creational/Builder/README.rst:31
msgid "Code"
msgstr ""
#: ../../Creational/Builder/README.rst:33
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/Builder/README.rst:35
msgid "Director.php"
msgstr ""
#: ../../Creational/Builder/README.rst:41
msgid "BuilderInterface.php"
msgstr ""
#: ../../Creational/Builder/README.rst:47
msgid "BikeBuilder.php"
msgstr ""
#: ../../Creational/Builder/README.rst:53
msgid "CarBuilder.php"
msgstr ""
#: ../../Creational/Builder/README.rst:59
msgid "Parts/Vehicle.php"
msgstr ""
#: ../../Creational/Builder/README.rst:65
msgid "Parts/Bike.php"
msgstr ""
#: ../../Creational/Builder/README.rst:71
msgid "Parts/Car.php"
msgstr ""
#: ../../Creational/Builder/README.rst:77
msgid "Parts/Engine.php"
msgstr ""
#: ../../Creational/Builder/README.rst:83
msgid "Parts/Wheel.php"
msgstr ""
#: ../../Creational/Builder/README.rst:89
msgid "Parts/Door.php"
msgstr ""
#: ../../Creational/Builder/README.rst:96
msgid "Test"
msgstr ""
#: ../../Creational/Builder/README.rst:98
msgid "Tests/DirectorTest.php"
msgstr ""

@ -0,0 +1,90 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/FactoryMethod/README.rst:2
msgid "`Factory Method`__"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:7
msgid ""
"The good point over the SimpleFactory is you can subclass it to implement "
"different ways to create objects"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:10
msgid "For simple case, this abstract class could be just an interface"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:12
msgid ""
"This pattern is a \"real\" Design Pattern because it achieves the "
"\"Dependency Inversion Principle\" a.k.a the \"D\" in S.O.L.I.D principles."
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:15
msgid ""
"It means the FactoryMethod class depends on abstractions, not concrete "
"classes. This is the real trick compared to SimpleFactory or StaticFactory."
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:20
msgid "UML Diagram"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:27
msgid "Code"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:29
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:31
msgid "FactoryMethod.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:37
msgid "ItalianFactory.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:43
msgid "GermanFactory.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:49
msgid "VehicleInterface.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:55
msgid "Porsche.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:61
msgid "Bicycle.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:67
msgid "Ferrari.php"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:74
msgid "Test"
msgstr ""
#: ../../Creational/FactoryMethod/README.rst:76
msgid "Tests/FactoryMethodTest.php"
msgstr ""

@ -0,0 +1,64 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/Multiton/README.rst:2
msgid "Multiton"
msgstr ""
#: ../../Creational/Multiton/README.rst:4
msgid ""
"**THIS IS CONSIDERED TO BE AN ANTI-PATTERN! FOR BETTER TESTABILITY AND "
"MAINTAINABILITY USE DEPENDENCY INJECTION!**"
msgstr ""
#: ../../Creational/Multiton/README.rst:8
msgid "Purpose"
msgstr ""
#: ../../Creational/Multiton/README.rst:10
msgid ""
"To have only a list of named instances that are used, like a singleton but "
"with n instances."
msgstr ""
#: ../../Creational/Multiton/README.rst:14
msgid "Examples"
msgstr ""
#: ../../Creational/Multiton/README.rst:16
msgid "2 DB Connectors, e.g. one for MySQL, the other for SQLite"
msgstr ""
#: ../../Creational/Multiton/README.rst:17
msgid "multiple Loggers (one for debug messages, one for errors)"
msgstr ""
#: ../../Creational/Multiton/README.rst:20
msgid "UML Diagram"
msgstr ""
#: ../../Creational/Multiton/README.rst:27
msgid "Code"
msgstr ""
#: ../../Creational/Multiton/README.rst:29
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/Multiton/README.rst:31
msgid "Multiton.php"
msgstr ""
#: ../../Creational/Multiton/README.rst:38
msgid "Test"
msgstr ""

@ -0,0 +1,81 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/Pool/README.rst:2
msgid "`Pool`__"
msgstr ""
#: ../../Creational/Pool/README.rst:4
msgid ""
"The **object pool pattern** is a software creational design pattern that "
"uses a set of initialized objects kept ready to use a \"pool\" rather "
"than allocating and destroying them on demand. A client of the pool will "
"request an object from the pool and perform operations on the returned "
"object. When the client has finished, it returns the object, which is a "
"specific type of factory object, to the pool rather than destroying it."
msgstr ""
#: ../../Creational/Pool/README.rst:11
msgid ""
"Object pooling can offer a significant performance boost in situations where"
" the cost of initializing a class instance is high, the rate of "
"instantiation of a class is high, and the number of instances in use at any "
"one time is low. The pooled object is obtained in predictable time when "
"creation of the new objects (especially over network) may take variable "
"time."
msgstr ""
#: ../../Creational/Pool/README.rst:18
msgid ""
"However these benefits are mostly true for objects that are expensive with "
"respect to time, such as database connections, socket connections, threads "
"and large graphic objects like fonts or bitmaps. In certain situations, "
"simple object pooling (that hold no external resources, but only occupy "
"memory) may not be efficient and could decrease performance."
msgstr ""
#: ../../Creational/Pool/README.rst:25
msgid "UML Diagram"
msgstr ""
#: ../../Creational/Pool/README.rst:32
msgid "Code"
msgstr ""
#: ../../Creational/Pool/README.rst:34
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/Pool/README.rst:36
msgid "Pool.php"
msgstr ""
#: ../../Creational/Pool/README.rst:42
msgid "Processor.php"
msgstr ""
#: ../../Creational/Pool/README.rst:48
msgid "Worker.php"
msgstr ""
#: ../../Creational/Pool/README.rst:55
msgid "Test"
msgstr ""
#: ../../Creational/Pool/README.rst:57
msgid "Tests/PoolTest.php"
msgstr ""
#: ../../Creational/Pool/README.rst:63
msgid "Tests/TestWorker.php"
msgstr ""

@ -0,0 +1,68 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/Prototype/README.rst:2
msgid "`Prototype`__"
msgstr ""
#: ../../Creational/Prototype/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Creational/Prototype/README.rst:7
msgid ""
"To avoid the cost of creating objects the standard way (new Foo()) and "
"instead create a prototype and clone it."
msgstr ""
#: ../../Creational/Prototype/README.rst:11
msgid "Examples"
msgstr ""
#: ../../Creational/Prototype/README.rst:13
msgid ""
"Large amounts of data (e.g. create 1,000,000 rows in a database at once via "
"a ORM)."
msgstr ""
#: ../../Creational/Prototype/README.rst:17
msgid "UML Diagram"
msgstr ""
#: ../../Creational/Prototype/README.rst:24
msgid "Code"
msgstr ""
#: ../../Creational/Prototype/README.rst:26
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/Prototype/README.rst:28
msgid "index.php"
msgstr ""
#: ../../Creational/Prototype/README.rst:34
msgid "BookPrototype.php"
msgstr ""
#: ../../Creational/Prototype/README.rst:40
msgid "BarBookPrototype.php"
msgstr ""
#: ../../Creational/Prototype/README.rst:46
msgid "FooBookPrototype.php"
msgstr ""
#: ../../Creational/Prototype/README.rst:53
msgid "Test"
msgstr ""

@ -0,0 +1,25 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/README.rst:2
msgid "Creational"
msgstr ""
#: ../../Creational/README.rst:4
msgid ""
"In software engineering, creational design patterns are design patterns that"
" deal with object creation mechanisms, trying to create objects in a manner "
"suitable to the situation. The basic form of object creation could result in"
" design problems or added complexity to the design. Creational design "
"patterns solve this problem by somehow controlling this object creation."
msgstr ""

@ -0,0 +1,72 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/SimpleFactory/README.rst:2
msgid "Simple Factory"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:7
msgid "ConcreteFactory is a simple factory pattern."
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:9
msgid ""
"It differs from the static factory because it is NOT static and as you know:"
" static => global => evil!"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:12
msgid ""
"Therefore, you can have multiple factories, differently parametrized, you "
"can subclass it and you can mock-up it."
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:16
msgid "UML Diagram"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:23
msgid "Code"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:25
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:27
msgid "ConcreteFactory.php"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:33
msgid "VehicleInterface.php"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:39
msgid "Bicycle.php"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:45
msgid "Scooter.php"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:52
msgid "Test"
msgstr ""
#: ../../Creational/SimpleFactory/README.rst:54
msgid "Tests/SimpleFactoryTest.php"
msgstr ""

@ -0,0 +1,75 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/Singleton/README.rst:2
msgid "`Singleton`__"
msgstr ""
#: ../../Creational/Singleton/README.rst:4
msgid ""
"**THIS IS CONSIDERED TO BE AN ANTI-PATTERN! FOR BETTER TESTABILITY AND "
"MAINTAINABILITY USE DEPENDENCY INJECTION!**"
msgstr ""
#: ../../Creational/Singleton/README.rst:8
msgid "Purpose"
msgstr ""
#: ../../Creational/Singleton/README.rst:10
msgid ""
"To have only one instance of this object in the application that will handle"
" all calls."
msgstr ""
#: ../../Creational/Singleton/README.rst:14
msgid "Examples"
msgstr ""
#: ../../Creational/Singleton/README.rst:16
msgid "DB Connector"
msgstr ""
#: ../../Creational/Singleton/README.rst:17
msgid ""
"Logger (may also be a Multiton if there are many log files for several "
"purposes)"
msgstr ""
#: ../../Creational/Singleton/README.rst:19
msgid ""
"Lock file for the application (there is only one in the filesystem ...)"
msgstr ""
#: ../../Creational/Singleton/README.rst:23
msgid "UML Diagram"
msgstr ""
#: ../../Creational/Singleton/README.rst:30
msgid "Code"
msgstr ""
#: ../../Creational/Singleton/README.rst:32
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/Singleton/README.rst:34
msgid "Singleton.php"
msgstr ""
#: ../../Creational/Singleton/README.rst:41
msgid "Test"
msgstr ""
#: ../../Creational/Singleton/README.rst:43
msgid "Tests/SingletonTest.php"
msgstr ""

@ -0,0 +1,75 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Creational/StaticFactory/README.rst:2
msgid "Static Factory"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:7
msgid ""
"Similar to the AbstractFactory, this pattern is used to create series of "
"related or dependent objects. The difference between this and the abstract "
"factory pattern is that the static factory pattern uses just one static "
"method to create all types of objects it can create. It is usually named "
"``factory`` or ``build``."
msgstr ""
#: ../../Creational/StaticFactory/README.rst:14
msgid "Examples"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:16
msgid ""
"Zend Framework: ``Zend_Cache_Backend`` or ``_Frontend`` use a factory method"
" create cache backends or frontends"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:20
msgid "UML Diagram"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:27
msgid "Code"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:29
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:31
msgid "StaticFactory.php"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:37
msgid "FormatterInterface.php"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:43
msgid "FormatString.php"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:49
msgid "FormatNumber.php"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:56
msgid "Test"
msgstr ""
#: ../../Creational/StaticFactory/README.rst:58
msgid "Tests/StaticFactoryTest.php"
msgstr ""

@ -0,0 +1,60 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../More/Delegation/README.rst:2
msgid "`Delegation`__"
msgstr ""
#: ../../More/Delegation/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../More/Delegation/README.rst:7 ../../More/Delegation/README.rst:12
msgid "..."
msgstr ""
#: ../../More/Delegation/README.rst:10
msgid "Examples"
msgstr ""
#: ../../More/Delegation/README.rst:15
msgid "UML Diagram"
msgstr ""
#: ../../More/Delegation/README.rst:22
msgid "Code"
msgstr ""
#: ../../More/Delegation/README.rst:24
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../More/Delegation/README.rst:26
msgid "Usage.php"
msgstr ""
#: ../../More/Delegation/README.rst:32
msgid "TeamLead.php"
msgstr ""
#: ../../More/Delegation/README.rst:38
msgid "JuniorDeveloper.php"
msgstr ""
#: ../../More/Delegation/README.rst:45
msgid "Test"
msgstr ""
#: ../../More/Delegation/README.rst:47
msgid "Tests/DelegationTest.php"
msgstr ""

@ -0,0 +1,16 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../More/README.rst:2
msgid "More"
msgstr ""

@ -0,0 +1,76 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../More/Repository/README.rst:2
msgid "Repository"
msgstr ""
#: ../../More/Repository/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../More/Repository/README.rst:7
msgid ""
"Mediates between the domain and data mapping layers using a collection-like "
"interface for accessing domain objects. Repository encapsulates the set of "
"objects persisted in a data store and the operations performed over them, "
"providing a more object-oriented view of the persistence layer. Repository "
"also supports the objective of achieving a clean separation and one-way "
"dependency between the domain and data mapping layers."
msgstr ""
#: ../../More/Repository/README.rst:16
msgid "Examples"
msgstr ""
#: ../../More/Repository/README.rst:18
msgid ""
"Doctrine 2 ORM: there is Repository that mediates between Entity and DBAL "
"and contains methods to retrieve objects"
msgstr ""
#: ../../More/Repository/README.rst:20
msgid "Laravel Framework"
msgstr ""
#: ../../More/Repository/README.rst:23
msgid "UML Diagram"
msgstr ""
#: ../../More/Repository/README.rst:30
msgid "Code"
msgstr ""
#: ../../More/Repository/README.rst:32
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../More/Repository/README.rst:34
msgid "Post.php"
msgstr ""
#: ../../More/Repository/README.rst:40
msgid "PostRepository.php"
msgstr ""
#: ../../More/Repository/README.rst:46
msgid "Storage.php"
msgstr ""
#: ../../More/Repository/README.rst:52
msgid "MemoryStorage.php"
msgstr ""
#: ../../More/Repository/README.rst:59
msgid "Test"
msgstr ""

@ -0,0 +1,94 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../More/ServiceLocator/README.rst:2
msgid "`Service Locator`__"
msgstr ""
#: ../../More/ServiceLocator/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../More/ServiceLocator/README.rst:7
msgid ""
"To implement a loosely coupled architecture in order to get better testable,"
" maintainable and extendable code. DI pattern and Service Locator pattern "
"are an implementation of the Inverse of Control pattern."
msgstr ""
#: ../../More/ServiceLocator/README.rst:12
msgid "Usage"
msgstr ""
#: ../../More/ServiceLocator/README.rst:14
msgid ""
"With ``ServiceLocator`` you can register a service for a given interface. By"
" using the interface you can retrieve the service and use it in the classes "
"of the application without knowing its implementation. You can configure and"
" inject the Service Locator object on bootstrap."
msgstr ""
#: ../../More/ServiceLocator/README.rst:20
msgid "Examples"
msgstr ""
#: ../../More/ServiceLocator/README.rst:22
msgid ""
"Zend Framework 2 uses Service Locator to create and share services used in "
"the framework(i.e. EventManager, ModuleManager, all custom user services "
"provided by modules, etc...)"
msgstr ""
#: ../../More/ServiceLocator/README.rst:27
msgid "UML Diagram"
msgstr ""
#: ../../More/ServiceLocator/README.rst:34
msgid "Code"
msgstr ""
#: ../../More/ServiceLocator/README.rst:36
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../More/ServiceLocator/README.rst:38
msgid "ServiceLocatorInterface.php"
msgstr ""
#: ../../More/ServiceLocator/README.rst:44
msgid "ServiceLocator.php"
msgstr ""
#: ../../More/ServiceLocator/README.rst:50
msgid "LogServiceInterface.php"
msgstr ""
#: ../../More/ServiceLocator/README.rst:56
msgid "LogService.php"
msgstr ""
#: ../../More/ServiceLocator/README.rst:62
msgid "DatabaseServiceInterface.php"
msgstr ""
#: ../../More/ServiceLocator/README.rst:68
msgid "DatabaseService.php"
msgstr ""
#: ../../More/ServiceLocator/README.rst:75
msgid "Test"
msgstr ""
#: ../../More/ServiceLocator/README.rst:77
msgid "Tests/ServiceLocatorTest.php"
msgstr ""

@ -0,0 +1,99 @@
#
# FULL NAME <EMAIL@ADDRESS>, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: 2015-05-29 12:37+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ../../README.rst:5
msgid "DesignPatternsPHP"
msgstr "PHP设计模式范例"
#: ../../README.rst:11
msgid ""
"This is a collection of known `design patterns`_ and some sample code how to "
"implement them in PHP. Every pattern has a small list of examples (most of "
"them from Zend Framework, Symfony2 or Doctrine2 as I'm most familiar with "
"this software)."
msgstr ""
"这里收集了一些知名的 `设计模式`_ 以及它们对应的 PHP 实现的代码,每个模式都附"
"有一个实际的例子大多来源于Zend Framework Symfony2 和 Doctrine2等。"
#: ../../README.rst:16
msgid ""
"I think the problem with patterns is that often people do know them but "
"don't know when to apply which."
msgstr "翻译。。。"
#: ../../README.rst:20
msgid "Patterns"
msgstr "模式"
#: ../../README.rst:22
msgid ""
"The patterns can be structured in roughly three different categories. Please "
"click on **the title of every pattern's page** for a full explanation of the "
"pattern on Wikipedia."
msgstr ""
"模式可以简单的被分为三大类。你可以点击每个模式页面下的标题来转到维基百科页"
"面,来获取关于该模式更为详细的解释。"
#: ../../README.rst:35
msgid "Contribute"
msgstr "贡献"
#: ../../README.rst:37
msgid ""
"Please feel free to fork and extend existing or add your own examples and "
"send a pull request with your changes! To establish a consistent code "
"quality, please check your code using `PHP CodeSniffer`_ against `PSR2 "
"standard`_ using ``./vendor/bin/phpcs -p --standard=PSR2 --ignore=vendor .``."
msgstr "翻译。。。"
#: ../../README.rst:44
msgid "License"
msgstr "协议"
#: ../../README.rst:46
msgid "(The MIT License)"
msgstr ""
#: ../../README.rst:48
msgid "Copyright (c) 2014 `Dominik Liebler`_ and `contributors`_"
msgstr ""
#: ../../README.rst:50
msgid ""
"Permission is hereby granted, free of charge, to any person obtaining a copy "
"of this software and associated documentation files (the 'Software'), to "
"deal in the Software without restriction, including without limitation the "
"rights to use, copy, modify, merge, publish, distribute, sublicense, and/or "
"sell copies of the Software, and to permit persons to whom the Software is "
"furnished to do so, subject to the following conditions:"
msgstr ""
#: ../../README.rst:58
msgid ""
"The above copyright notice and this permission notice shall be included in "
"all copies or substantial portions of the Software."
msgstr ""
#: ../../README.rst:61
msgid ""
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR "
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, "
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE "
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER "
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
"FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS "
"IN THE SOFTWARE."
msgstr ""

@ -0,0 +1,82 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Adapter/README.rst:2
msgid "`Adapter / Wrapper`__"
msgstr ""
#: ../../Structural/Adapter/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Adapter/README.rst:7
msgid ""
"To translate one interface for a class into a compatible interface. An "
"adapter allows classes to work together that normally could not because of "
"incompatible interfaces by providing it's interface to clients while using "
"the original interface."
msgstr ""
#: ../../Structural/Adapter/README.rst:13
msgid "Examples"
msgstr ""
#: ../../Structural/Adapter/README.rst:15
msgid "DB Client libraries adapter"
msgstr ""
#: ../../Structural/Adapter/README.rst:16
msgid ""
"using multiple different webservices and adapters normalize data so that the"
" outcome is the same for all"
msgstr ""
#: ../../Structural/Adapter/README.rst:20
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Adapter/README.rst:27
msgid "Code"
msgstr ""
#: ../../Structural/Adapter/README.rst:29
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Adapter/README.rst:31
msgid "PaperBookInterface.php"
msgstr ""
#: ../../Structural/Adapter/README.rst:37
msgid "Book.php"
msgstr ""
#: ../../Structural/Adapter/README.rst:43
msgid "EBookAdapter.php"
msgstr ""
#: ../../Structural/Adapter/README.rst:49
msgid "EBookInterface.php"
msgstr ""
#: ../../Structural/Adapter/README.rst:55
msgid "Kindle.php"
msgstr ""
#: ../../Structural/Adapter/README.rst:62
msgid "Test"
msgstr ""
#: ../../Structural/Adapter/README.rst:64
msgid "Tests/AdapterTest.php"
msgstr ""

@ -0,0 +1,78 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Bridge/README.rst:2
msgid "`Bridge`__"
msgstr ""
#: ../../Structural/Bridge/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Bridge/README.rst:7
msgid ""
"Decouple an abstraction from its implementation so that the two can vary "
"independently."
msgstr ""
#: ../../Structural/Bridge/README.rst:11
msgid "Sample:"
msgstr ""
#: ../../Structural/Bridge/README.rst:13
msgid "`Symfony DoctrineBridge <https://github.com/symfony/DoctrineBridge>`__"
msgstr ""
#: ../../Structural/Bridge/README.rst:17
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Bridge/README.rst:24
msgid "Code"
msgstr ""
#: ../../Structural/Bridge/README.rst:26
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Bridge/README.rst:28
msgid "Workshop.php"
msgstr ""
#: ../../Structural/Bridge/README.rst:34
msgid "Assemble.php"
msgstr ""
#: ../../Structural/Bridge/README.rst:40
msgid "Produce.php"
msgstr ""
#: ../../Structural/Bridge/README.rst:46
msgid "Vehicle.php"
msgstr ""
#: ../../Structural/Bridge/README.rst:52
msgid "Motorcycle.php"
msgstr ""
#: ../../Structural/Bridge/README.rst:58
msgid "Car.php"
msgstr ""
#: ../../Structural/Bridge/README.rst:65
msgid "Test"
msgstr ""
#: ../../Structural/Bridge/README.rst:67
msgid "Tests/BridgeTest.php"
msgstr ""

@ -0,0 +1,78 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Composite/README.rst:2
msgid "`Composite`__"
msgstr ""
#: ../../Structural/Composite/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Composite/README.rst:7
msgid ""
"To treat a group of objects the same way as a single instance of the object."
msgstr ""
#: ../../Structural/Composite/README.rst:11
msgid "Examples"
msgstr ""
#: ../../Structural/Composite/README.rst:13
msgid ""
"a form class instance handles all its form elements like a single instance "
"of the form, when ``render()`` is called, it subsequently runs through all "
"its child elements and calls ``render()`` on them"
msgstr ""
#: ../../Structural/Composite/README.rst:16
msgid ""
"``Zend_Config``: a tree of configuration options, each one is a "
"``Zend_Config`` object itself"
msgstr ""
#: ../../Structural/Composite/README.rst:20
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Composite/README.rst:27
msgid "Code"
msgstr ""
#: ../../Structural/Composite/README.rst:29
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Composite/README.rst:31
msgid "FormElement.php"
msgstr ""
#: ../../Structural/Composite/README.rst:37
msgid "Form.php"
msgstr ""
#: ../../Structural/Composite/README.rst:43
msgid "InputElement.php"
msgstr ""
#: ../../Structural/Composite/README.rst:49
msgid "TextElement.php"
msgstr ""
#: ../../Structural/Composite/README.rst:56
msgid "Test"
msgstr ""
#: ../../Structural/Composite/README.rst:58
msgid "Tests/CompositeTest.php"
msgstr ""

@ -0,0 +1,77 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/DataMapper/README.rst:2
msgid "`Data Mapper`__"
msgstr ""
#: ../../Structural/DataMapper/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/DataMapper/README.rst:7
msgid ""
"A Data Mapper, is a Data Access Layer that performs bidirectional transfer "
"of data between a persistent data store (often a relational database) and an"
" in memory data representation (the domain layer). The goal of the pattern "
"is to keep the in memory representation and the persistent data store "
"independent of each other and the data mapper itself. The layer is composed "
"of one or more mappers (or Data Access Objects), performing the data "
"transfer. Mapper implementations vary in scope. Generic mappers will handle "
"many different domain entity types, dedicated mappers will handle one or a "
"few."
msgstr ""
#: ../../Structural/DataMapper/README.rst:17
msgid ""
"The key point of this pattern is, unlike Active Record pattern, the data "
"model follows Single Responsibility Principle."
msgstr ""
#: ../../Structural/DataMapper/README.rst:21
msgid "Examples"
msgstr ""
#: ../../Structural/DataMapper/README.rst:23
msgid ""
"DB Object Relational Mapper (ORM) : Doctrine2 uses DAO named as "
"\"EntityRepository\""
msgstr ""
#: ../../Structural/DataMapper/README.rst:27
msgid "UML Diagram"
msgstr ""
#: ../../Structural/DataMapper/README.rst:34
msgid "Code"
msgstr ""
#: ../../Structural/DataMapper/README.rst:36
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/DataMapper/README.rst:38
msgid "User.php"
msgstr ""
#: ../../Structural/DataMapper/README.rst:44
msgid "UserMapper.php"
msgstr ""
#: ../../Structural/DataMapper/README.rst:51
msgid "Test"
msgstr ""
#: ../../Structural/DataMapper/README.rst:53
msgid "Tests/DataMapperTest.php"
msgstr ""

@ -0,0 +1,78 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Decorator/README.rst:2
msgid "`Decorator`__"
msgstr ""
#: ../../Structural/Decorator/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Decorator/README.rst:7
msgid "To dynamically add new functionality to class instances."
msgstr ""
#: ../../Structural/Decorator/README.rst:10
msgid "Examples"
msgstr ""
#: ../../Structural/Decorator/README.rst:12
msgid "Zend Framework: decorators for ``Zend_Form_Element`` instances"
msgstr ""
#: ../../Structural/Decorator/README.rst:13
msgid ""
"Web Service Layer: Decorators JSON and XML for a REST service (in this case,"
" only one of these should be allowed of course)"
msgstr ""
#: ../../Structural/Decorator/README.rst:17
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Decorator/README.rst:24
msgid "Code"
msgstr ""
#: ../../Structural/Decorator/README.rst:26
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Decorator/README.rst:28
msgid "RendererInterface.php"
msgstr ""
#: ../../Structural/Decorator/README.rst:34
msgid "Webservice.php"
msgstr ""
#: ../../Structural/Decorator/README.rst:40
msgid "Decorator.php"
msgstr ""
#: ../../Structural/Decorator/README.rst:46
msgid "RenderInXml.php"
msgstr ""
#: ../../Structural/Decorator/README.rst:52
msgid "RenderInJson.php"
msgstr ""
#: ../../Structural/Decorator/README.rst:59
msgid "Test"
msgstr ""
#: ../../Structural/Decorator/README.rst:61
msgid "Tests/DecoratorTest.php"
msgstr ""

@ -0,0 +1,107 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/DependencyInjection/README.rst:2
msgid "`Dependency Injection`__"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:7
msgid ""
"To implement a loosely coupled architecture in order to get better testable,"
" maintainable and extendable code."
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:11
msgid "Usage"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:13
msgid ""
"Configuration gets injected and ``Connection`` will get all that it needs "
"from ``$config``. Without DI, the configuration would be created directly in"
" ``Connection``, which is not very good for testing and extending "
"``Connection``."
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:18
msgid ""
"Notice we are following Inversion of control principle in ``Connection`` by "
"asking ``$config`` to implement ``Parameters`` interface. This decouples our"
" components. We don't care where the source of information comes from, we "
"only care that ``$config`` has certain methods to retrieve that information."
" Read more about Inversion of control `here "
"<http://en.wikipedia.org/wiki/Inversion_of_control>`__."
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:26
msgid "Examples"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:28
msgid ""
"The Doctrine2 ORM uses dependency injection e.g. for configuration that is "
"injected into a ``Connection`` object. For testing purposes, one can easily "
"create a mock object of the configuration and inject that into the "
"``Connection`` object"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:32
msgid ""
"Symfony and Zend Framework 2 already have containers for DI that create "
"objects via a configuration array and inject them where needed (i.e. in "
"Controllers)"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:37
msgid "UML Diagram"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:44
msgid "Code"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:46
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:48
msgid "AbstractConfig.php"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:54
msgid "Parameters.php"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:60
msgid "ArrayConfig.php"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:66
msgid "Connection.php"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:73
msgid "Test"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:75
msgid "Tests/DependencyInjectionTest.php"
msgstr ""
#: ../../Structural/DependencyInjection/README.rst:81
msgid "Tests/config.php"
msgstr ""

@ -0,0 +1,87 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Facade/README.rst:2
msgid "`Facade`__"
msgstr ""
#: ../../Structural/Facade/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Facade/README.rst:7
msgid ""
"The primary goal of a Facade Pattern is not to avoid you to read the manual "
"of a complex API. It's only a side-effect. The first goal is to reduce "
"coupling and follow the Law of Demeter."
msgstr ""
#: ../../Structural/Facade/README.rst:11
msgid ""
"A Facade is meant to decouple a client and a sub-system by embedding many "
"(but sometimes just one) interface, and of course to reduce complexity."
msgstr ""
#: ../../Structural/Facade/README.rst:15
msgid "A facade does not forbid you the access to the sub-system"
msgstr ""
#: ../../Structural/Facade/README.rst:16
msgid "You can (you should) have multiple facades for one sub-system"
msgstr ""
#: ../../Structural/Facade/README.rst:18
msgid ""
"That's why a good facade has no ``new`` in it. If there are multiple "
"creations for each method, it is not a Facade, it's a Builder or a "
"[Abstract\\|Static\\|Simple] Factory [Method]."
msgstr ""
#: ../../Structural/Facade/README.rst:22
msgid ""
"The best facade has no ``new`` and a constructor with interface-type-hinted "
"parameters. If you need creation of new instances, use a Factory as "
"argument."
msgstr ""
#: ../../Structural/Facade/README.rst:27
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Facade/README.rst:34
msgid "Code"
msgstr ""
#: ../../Structural/Facade/README.rst:36
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Facade/README.rst:38
msgid "Facade.php"
msgstr ""
#: ../../Structural/Facade/README.rst:44
msgid "OsInterface.php"
msgstr ""
#: ../../Structural/Facade/README.rst:50
msgid "BiosInterface.php"
msgstr ""
#: ../../Structural/Facade/README.rst:57
msgid "Test"
msgstr ""
#: ../../Structural/Facade/README.rst:59
msgid "Tests/FacadeTest.php"
msgstr ""

@ -0,0 +1,66 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/FluentInterface/README.rst:2
msgid "`Fluent Interface`__"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:7
msgid ""
"To write code that is easy readable just like sentences in a natural "
"language (like English)."
msgstr ""
#: ../../Structural/FluentInterface/README.rst:11
msgid "Examples"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:13
msgid "Doctrine2's QueryBuilder works something like that example class below"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:15
msgid "PHPUnit uses fluent interfaces to build mock objects"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:16
msgid "Yii Framework: CDbCommand and CActiveRecord use this pattern, too"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:19
msgid "UML Diagram"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:26
msgid "Code"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:28
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:30
msgid "Sql.php"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:37
msgid "Test"
msgstr ""
#: ../../Structural/FluentInterface/README.rst:39
msgid "Tests/FluentInterfaceTest.php"
msgstr ""

@ -0,0 +1,59 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Proxy/README.rst:2
msgid "`Proxy`__"
msgstr ""
#: ../../Structural/Proxy/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Proxy/README.rst:7
msgid "To interface to anything that is expensive or impossible to duplicate."
msgstr ""
#: ../../Structural/Proxy/README.rst:10
msgid "Examples"
msgstr ""
#: ../../Structural/Proxy/README.rst:12
msgid ""
"Doctrine2 uses proxies to implement framework magic (e.g. lazy "
"initialization) in them, while the user still works with his own entity "
"classes and will never use nor touch the proxies"
msgstr ""
#: ../../Structural/Proxy/README.rst:17
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Proxy/README.rst:24
msgid "Code"
msgstr ""
#: ../../Structural/Proxy/README.rst:26
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Proxy/README.rst:28
msgid "Record.php"
msgstr ""
#: ../../Structural/Proxy/README.rst:34
msgid "RecordProxy.php"
msgstr ""
#: ../../Structural/Proxy/README.rst:41
msgid "Test"
msgstr ""

@ -0,0 +1,23 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/README.rst:2
msgid "Structural"
msgstr ""
#: ../../Structural/README.rst:4
msgid ""
"In Software Engineering, Structural Design Patterns are Design Patterns that"
" ease the design by identifying a simple way to realize relationships "
"between entities."
msgstr ""

@ -0,0 +1,67 @@
#
msgid ""
msgstr ""
"Project-Id-Version: DesignPatternsPHP 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-29 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../Structural/Registry/README.rst:2
msgid "`Registry`__"
msgstr ""
#: ../../Structural/Registry/README.rst:5
msgid "Purpose"
msgstr ""
#: ../../Structural/Registry/README.rst:7
msgid ""
"To implement a central storage for objects often used throughout the "
"application, is typically implemented using an abstract class with only "
"static methods (or using the Singleton pattern)"
msgstr ""
#: ../../Structural/Registry/README.rst:12
msgid "Examples"
msgstr ""
#: ../../Structural/Registry/README.rst:14
msgid ""
"Zend Framework: ``Zend_Registry`` holds the application's logger object, "
"front controller etc."
msgstr ""
#: ../../Structural/Registry/README.rst:16
msgid ""
"Yii Framework: ``CWebApplication`` holds all the application components, "
"such as ``CWebUser``, ``CUrlManager``, etc."
msgstr ""
#: ../../Structural/Registry/README.rst:20
msgid "UML Diagram"
msgstr ""
#: ../../Structural/Registry/README.rst:27
msgid "Code"
msgstr ""
#: ../../Structural/Registry/README.rst:29
msgid "You can also find these code on `GitHub`_"
msgstr ""
#: ../../Structural/Registry/README.rst:31
msgid "Registry.php"
msgstr ""
#: ../../Structural/Registry/README.rst:38
msgid "Test"
msgstr ""
#: ../../Structural/Registry/README.rst:40
msgid "Tests/RegistryTest.php"
msgstr ""