PoMemoryWriter.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * @file
  4. * Definition of Drupal\Component\Gettext\PoMemoryWriter.
  5. */
  6. /**
  7. * Defines a Gettext PO memory writer, to be used by the installer.
  8. */
  9. class PoMemoryWriter implements PoWriterInterface {
  10. /**
  11. * Array to hold all PoItem elements.
  12. *
  13. * @var array
  14. */
  15. private $_items;
  16. /**
  17. * Constructor, initialize empty items.
  18. */
  19. function __construct() {
  20. $this->_items = array();
  21. }
  22. /**
  23. * Implements PoWriterInterface::writeItem().
  24. */
  25. public function writeItem(PoItem $item) {
  26. if (is_array($item->getSource())) {
  27. $item->setSource(implode(L10N_UPDATE_PLURAL_DELIMITER, $item->getSource()));
  28. $item->setTranslation(implode(L10N_UPDATE_PLURAL_DELIMITER, $item->getTranslation()));
  29. }
  30. $context = $item->getContext();
  31. $this->_items[$context != NULL ? $context : ''][$item->getSource()] = $item->getTranslation();
  32. }
  33. /**
  34. * Implements PoWriterInterface::writeItems().
  35. */
  36. public function writeItems(PoReaderInterface $reader, $count = -1) {
  37. $forever = $count == -1;
  38. while (($count-- > 0 || $forever) && ($item = $reader->readItem())) {
  39. $this->writeItem($item);
  40. }
  41. }
  42. /**
  43. * Get all stored PoItem's.
  44. *
  45. * @return array PoItem
  46. */
  47. public function getData() {
  48. return $this->_items;
  49. }
  50. /**
  51. * Implements Drupal\Component\Gettext\PoMetadataInterface:setLangcode().
  52. *
  53. * Not implemented. Not relevant for the MemoryWriter.
  54. */
  55. function setLangcode($langcode) {
  56. }
  57. /**
  58. * Implements Drupal\Component\Gettext\PoMetadataInterface:getLangcode().
  59. *
  60. * Not implemented. Not relevant for the MemoryWriter.
  61. */
  62. function getLangcode() {
  63. }
  64. /**
  65. * Implements Drupal\Component\Gettext\PoMetadataInterface:getHeader().
  66. *
  67. * Not implemented. Not relevant for the MemoryWriter.
  68. */
  69. function getHeader() {
  70. }
  71. /**
  72. * Implements Drupal\Component\Gettext\PoMetadataInterface:setHeader().
  73. *
  74. * Not implemented. Not relevant for the MemoryWriter.
  75. */
  76. function setHeader(PoHeader $header) {
  77. }
  78. }