ConfigurableLanguageManagerInterface.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace Drupal\language;
  3. use Drupal\Core\Language\LanguageInterface;
  4. use Drupal\Core\Language\LanguageManagerInterface;
  5. /**
  6. * Common interface for language negotiation services.
  7. */
  8. interface ConfigurableLanguageManagerInterface extends LanguageManagerInterface {
  9. /**
  10. * Rebuild the container to register services needed on multilingual sites.
  11. */
  12. public static function rebuildServices();
  13. /**
  14. * Returns the language negotiator.
  15. *
  16. * @return \Drupal\language\LanguageNegotiatorInterface
  17. * The language negotiator.
  18. */
  19. public function getNegotiator();
  20. /**
  21. * Injects the language negotiator.
  22. *
  23. * @param \Drupal\language\LanguageNegotiatorInterface $negotiator
  24. * The language negotiator.
  25. */
  26. public function setNegotiator(LanguageNegotiatorInterface $negotiator);
  27. /**
  28. * Returns all the defined language types including fixed ones.
  29. *
  30. * A language type maybe configurable or fixed. A fixed language type is a
  31. * type whose language negotiation methods are module-defined and not altered
  32. * through the user interface.
  33. *
  34. * @return array
  35. * An array of language type machine names.
  36. */
  37. public function getDefinedLanguageTypes();
  38. /**
  39. * Stores language types configuration.
  40. *
  41. * @param array $config
  42. * An indexed array with the following keys_
  43. * - configurable: an array of configurable language type names.
  44. * - all: an array of all the defined language type names.
  45. */
  46. public function saveLanguageTypesConfiguration(array $config);
  47. /**
  48. * Updates locked system language weights.
  49. */
  50. public function updateLockedLanguageWeights();
  51. /**
  52. * Gets a language config override object.
  53. *
  54. * @param string $langcode
  55. * The language code for the override.
  56. * @param string $name
  57. * The language configuration object name.
  58. *
  59. * @return \Drupal\language\Config\LanguageConfigOverride
  60. * The language config override object.
  61. */
  62. public function getLanguageConfigOverride($langcode, $name);
  63. /**
  64. * Gets a language configuration override storage object.
  65. *
  66. * @param string $langcode
  67. * The language code for the override.
  68. *
  69. * @return \Drupal\Core\Config\StorageInterface
  70. * A storage object to use for reading and writing the
  71. * configuration override.
  72. */
  73. public function getLanguageConfigOverrideStorage($langcode);
  74. /**
  75. * Returns the standard language list excluding already configured languages.
  76. *
  77. * @return array
  78. * A list of standard language names keyed by langcode.
  79. */
  80. public function getStandardLanguageListWithoutConfigured();
  81. /**
  82. * Gets the negotiated language method ID.
  83. *
  84. * @param string $type
  85. * (optional) The language type; e.g., the interface or the content
  86. * language.
  87. *
  88. * @return string
  89. * The negotiated language method ID.
  90. */
  91. public function getNegotiatedLanguageMethod($type = LanguageInterface::TYPE_INTERFACE);
  92. }