Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
9a0367fa
Commit
9a0367fa
authored
Aug 09, 2012
by
Dries Buytaert
Browse files
- Patch
#1719488
by effulgentsia: Rename language_manager() to language() and related cleanup.
parent
49e12de3
Changes
46
Hide whitespace changes
Inline
Side-by-side
core/includes/bootstrap.inc
View file @
9a0367fa
...
...
@@ -7,6 +7,7 @@
use
Symfony\Component\DependencyInjection\Container
;
use
Symfony\Component\DependencyInjection\ContainerBuilder
;
use
Symfony\Component\DependencyInjection\Reference
;
use
Symfony\Component\DependencyInjection\Exception\RuntimeException
as
DependencyInjectionRuntimeException
;
use
Symfony\Component\HttpFoundation\Request
;
use
Drupal\Core\Language\Language
;
...
...
@@ -1457,7 +1458,7 @@ function t($string, array $args = array(), array $options = array()) {
// Merge in default.
if
(
empty
(
$options
[
'langcode'
]))
{
$options
[
'langcode'
]
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
)
->
langcode
;
$options
[
'langcode'
]
=
language
(
LANGUAGE_TYPE_INTERFACE
)
->
langcode
;
}
if
(
empty
(
$options
[
'context'
]))
{
$options
[
'context'
]
=
''
;
...
...
@@ -2600,13 +2601,13 @@ function get_t() {
/**
* Initializes all the defined language types.
*
* @see language
_manager
()
* @see language()
*/
function
drupal_language_initialize
()
{
if
(
language_multilingual
())
{
$types
=
language_types_get_all
();
foreach
(
$types
as
$type
)
{
language
_manager
(
$type
);
language
(
$type
);
}
// Allow modules to react on language system initialization in multilingual
// environments.
...
...
@@ -2615,56 +2616,61 @@ function drupal_language_initialize() {
}
/**
*
Initializes the passed i
n language type.
*
Returns the language object for a give
n language type.
*
* The 'language_manager' service is only available within the scope of a kernel
* request. When it's not available, we return a default language object,
* regardless of the type passed in.
*
* Note that this function is provided for legacy code that needs to get e.g.
* the interface language outside the scope of a request. Code that runs within
* the scope of a request should call
* drupal_container()->get('language_manager')->getLanguage($type)
* directly.
*
* @see Drupal\Core\Language\LanguageManager
*
* @param $type
* The type of language object needed, e.g. LANGUAGE_TYPE_INTERFACE. Passing
* NULL invokes a reset of the statically stored language type objects.
*/
function
language_manager
(
$type
=
NULL
)
{
// Keep track of whether we are in a multilingual environment.
static
$multilingual
=
FALSE
;
// Keep track of whether the language_manager service is available.
static
$language_manager_service
=
FALSE
;
if
(
$multilingual
&&
$language_manager_service
)
{
if
(
!
$type
)
{
drupal_container
()
->
get
(
'language_manager'
)
->
reset
();
return
;
}
return
drupal_container
()
->
get
(
'language_manager'
)
->
getLanguage
(
$type
);
}
if
(
language_multilingual
())
{
$multilingual
=
TRUE
;
* The type of language object needed, e.g. LANGUAGE_TYPE_INTERFACE.
* @param $reset
* TRUE to reset the statically cached language object for the type, or for
* all types if $type is NULL.
*/
function
language
(
$type
,
$reset
=
FALSE
)
{
// We don't use drupal_static() here because resetting is not a simple case of
// drupal_static_reset().
static
$languages
=
array
();
// Reset the language manager's cache and our own.
if
(
$reset
)
{
if
(
drupal_container
()
->
has
(
'language_manager'
))
{
$language_manager_service
=
TRUE
;
return
drupal_container
()
->
get
(
'language_manager'
)
->
getLanguage
(
$type
);
drupal_container
()
->
get
(
'language_manager'
)
->
reset
(
$type
);
}
if
(
!
isset
(
$type
))
{
$languages
=
array
();
}
elseif
(
isset
(
$languages
[
$type
]))
{
unset
(
$languages
[
$type
]);
}
}
// We can't use drupal_static() here because resetting is not a simple case of
// drupal_static_reset().
static
$languages
;
// If no type was passed in, reset the languages array.
if
(
!
$type
)
{
$languages
=
array
();
// If no type is passed (most likely when resetting all types), return.
if
(
!
isset
(
$type
))
{
return
;
}
// When the language_manager service exists (is both defined and the 'request'
// scope is active in the container), use it to get the language. Otherwise
// return the default language.
try
{
$language_manager
=
drupal_container
()
->
get
(
'language_manager'
,
Container
::
NULL_ON_INVALID_REFERENCE
);
}
// If this is not a multilingual environment or we have not yet entered the
// request scope, just use the default language regardless of $type.
if
(
!
isset
(
$languages
[
$type
]))
{
$languages
[
$type
]
=
language_default
();
catch
(
DependencyInjectionRuntimeException
$e
)
{
}
if
(
isset
(
$language_manager
))
{
return
$language_manager
->
getLanguage
(
$type
);
}
else
{
if
(
!
isset
(
$languages
[
$type
]))
{
$languages
[
$type
]
=
language_default
();
}
return
$languages
[
$type
];
}
return
$languages
[
$type
];
}
/**
...
...
core/includes/common.inc
View file @
9a0367fa
...
...
@@ -1599,7 +1599,7 @@ function filter_xss_bad_protocol($string, $decode = TRUE) {
* Arbitrary elements may be added using the $args associative array.
*/
function
format_rss_channel
(
$title
,
$link
,
$description
,
$items
,
$langcode
=
NULL
,
$args
=
array
())
{
$langcode
=
$langcode
?
$langcode
:
language
_manager
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
$langcode
=
$langcode
?
$langcode
:
language
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
$output
=
"<channel>
\n
"
;
$output
.
=
' <title>'
.
check_plain
(
$title
)
.
"</title>
\n
"
;
...
...
@@ -1901,7 +1901,7 @@ function format_date($timestamp, $type = 'medium', $format = '', $timezone = NUL
}
if
(
empty
(
$langcode
))
{
$langcode
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
)
->
langcode
;
$langcode
=
language
(
LANGUAGE_TYPE_INTERFACE
)
->
langcode
;
}
switch
(
$type
)
{
...
...
@@ -2077,7 +2077,7 @@ function _format_date_callback(array $matches = NULL, $new_langcode = NULL) {
* - 'language': An optional language object. If the path being linked to is
* internal to the site, $options['language'] is used to look up the alias
* for the URL. If $options['language'] is omitted, the language will be
* obtained from language
_manager
(LANGUAGE_TYPE_URL).
* obtained from language(LANGUAGE_TYPE_URL).
* - 'https': Whether this URL should point to a secure location. If not
* defined, the current scheme is used, so the user stays on http or https
* respectively. TRUE enforces HTTPS and FALSE enforces HTTP, but HTTPS can
...
...
@@ -2322,7 +2322,7 @@ function l($text, $path, array $options = array()) {
// Append active class.
if
((
$path
==
current_path
()
||
(
$path
==
'<front>'
&&
drupal_is_front_page
()))
&&
(
empty
(
$options
[
'language'
])
||
$options
[
'language'
]
->
langcode
==
language
_manager
(
LANGUAGE_TYPE_URL
)
->
langcode
))
{
(
empty
(
$options
[
'language'
])
||
$options
[
'language'
]
->
langcode
==
language
(
LANGUAGE_TYPE_URL
)
->
langcode
))
{
$options
[
'attributes'
][
'class'
][]
=
'active'
;
}
...
...
@@ -6017,7 +6017,7 @@ function drupal_render_cid_parts($granularity = NULL) {
// part.
if
(
language_multilingual
())
{
foreach
(
language_types_get_configurable
()
as
$language_type
)
{
$cid_parts
[]
=
language
_manager
(
$language_type
)
->
langcode
;
$cid_parts
[]
=
language
(
$language_type
)
->
langcode
;
}
}
...
...
core/includes/menu.inc
View file @
9a0367fa
...
...
@@ -1069,7 +1069,7 @@ function menu_tree_output($tree) {
*/
function
menu_tree_all_data
(
$menu_name
,
$link
=
NULL
,
$max_depth
=
NULL
)
{
$tree
=
&
drupal_static
(
__FUNCTION__
,
array
());
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Use $mlid as a flag for whether the data being loaded is for the whole tree.
$mlid
=
isset
(
$link
[
'mlid'
])
?
$link
[
'mlid'
]
:
0
;
...
...
@@ -1180,7 +1180,7 @@ function menu_tree_get_path($menu_name) {
function
menu_tree_page_data
(
$menu_name
,
$max_depth
=
NULL
,
$only_active_trail
=
FALSE
)
{
$tree
=
&
drupal_static
(
__FUNCTION__
,
array
());
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Check if the active trail has been overridden for this menu tree.
$active_path
=
menu_tree_get_path
(
$menu_name
);
...
...
@@ -1336,7 +1336,7 @@ function menu_build_tree($menu_name, array $parameters = array()) {
function
_menu_build_tree
(
$menu_name
,
array
$parameters
=
array
())
{
// Static cache of already built menu trees.
$trees
=
&
drupal_static
(
__FUNCTION__
,
array
());
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Build the cache id; sort parents to prevent duplicate storage and remove
// default parameter values.
...
...
core/includes/path.inc
View file @
9a0367fa
...
...
@@ -82,7 +82,7 @@ function drupal_lookup_path($action, $path = '', $langcode = NULL) {
// language. If we used a language different from the one conveyed by the
// requested URL, we might end up being unable to check if there is a path
// alias matching the URL path.
$langcode
=
$langcode
?
$langcode
:
language
_manager
(
LANGUAGE_TYPE_URL
)
->
langcode
;
$langcode
=
$langcode
?
$langcode
:
language
(
LANGUAGE_TYPE_URL
)
->
langcode
;
if
(
$action
==
'wipe'
)
{
$cache
=
array
();
...
...
core/includes/theme.inc
View file @
9a0367fa
...
...
@@ -1627,7 +1627,7 @@ function theme_link($variables) {
* http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
*/
function
theme_links
(
$variables
)
{
$language_url
=
language
_manager
(
LANGUAGE_TYPE_URL
);
$language_url
=
language
(
LANGUAGE_TYPE_URL
);
$links
=
$variables
[
'links'
];
$attributes
=
$variables
[
'attributes'
];
...
...
@@ -2398,7 +2398,7 @@ function _template_preprocess_default_variables() {
* @see html.tpl.php
*/
function
template_preprocess_html
(
&
$variables
)
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Compile a list of classes that are going to be applied to the body element.
// This allows advanced theming based on context (home page, node of certain type, etc.).
...
...
@@ -2530,7 +2530,7 @@ function template_preprocess_html(&$variables) {
* @see page.tpl.php
*/
function
template_preprocess_page
(
&
$variables
)
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$site_config
=
config
(
'system.site'
);
// Move some variables to the top level for themer convenience and template cleanliness.
...
...
@@ -2711,7 +2711,7 @@ function theme_get_suggestions($args, $base, $delimiter = '__') {
*/
function
template_preprocess_maintenance_page
(
&
$variables
)
{
global
$theme
;
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Retrieve the theme data to list all available regions.
$theme_data
=
list_themes
();
$regions
=
$theme_data
[
$theme
]
->
info
[
'regions'
];
...
...
core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
View file @
9a0367fa
...
...
@@ -33,7 +33,7 @@ public function onRespond(FilterResponseEvent $event) {
// @todo Receive the LanguageManager object as a constructor argument when
// the dependency injection container allows for it performantly:
// http://drupal.org/node/1706064.
$response
->
headers
->
set
(
'Content-language'
,
language
_manager
(
LANGUAGE_TYPE_INTERFACE
)
->
langcode
);
$response
->
headers
->
set
(
'Content-language'
,
language
(
LANGUAGE_TYPE_INTERFACE
)
->
langcode
);
// Because pages are highly dynamic, set the last-modified time to now
// since the page is in fact being regenerated right now.
...
...
core/lib/Drupal/Core/Language/LanguageManager.php
View file @
9a0367fa
...
...
@@ -14,8 +14,8 @@
*
* This service is dependent on the 'request' service and can therefore pass the
* Request object to the code that deals with each particular language type.
* This means the Request can be used directly for things like url-based
language
* negotiation.
* This means the Request can be used directly for things like url-based
*
language
negotiation.
*/
class
LanguageManager
{
...
...
@@ -32,12 +32,22 @@ public function getLanguage($type) {
}
// @todo Objectify the language system so that we don't have to do this.
include_once
DRUPAL_ROOT
.
'/core/includes/language.inc'
;
$this
->
languages
[
$type
]
=
language_types_initialize
(
$type
,
$this
->
request
);
if
(
language_multilingual
())
{
include_once
DRUPAL_ROOT
.
'/core/includes/language.inc'
;
$this
->
languages
[
$type
]
=
language_types_initialize
(
$type
,
$this
->
request
);
}
else
{
$this
->
languages
[
$type
]
=
language_default
();
}
return
$this
->
languages
[
$type
];
}
function
reset
()
{
$this
->
languages
=
array
();
public
function
reset
(
$type
=
NULL
)
{
if
(
!
isset
(
$type
))
{
$this
->
languages
=
array
();
}
elseif
(
isset
(
$this
->
languages
[
$type
]))
{
unset
(
$this
->
languages
[
$type
]);
}
}
}
core/modules/block/block.api.php
View file @
9a0367fa
...
...
@@ -329,7 +329,7 @@ function hook_block_view_MODULE_DELTA_alter(&$data, $block) {
*/
function
hook_block_list_alter
(
&
$blocks
)
{
global
$theme_key
;
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// This example shows how to achieve language specific visibility setting for
// blocks.
...
...
core/modules/block/block.module
View file @
9a0367fa
...
...
@@ -880,7 +880,7 @@ function block_block_list_alter(&$blocks) {
continue
;
}
foreach
(
$block_langcodes
[
$block
->
module
][
$block
->
delta
]
as
$language_type
=>
$langcodes
)
{
if
(
isset
(
$langcodes
[
language
_manager
(
$language_type
)
->
langcode
]))
{
if
(
isset
(
$langcodes
[
language
(
$language_type
)
->
langcode
]))
{
// Found a language type - langcode combination in the configuration
// that is applicable to the current request.
continue
2
;
...
...
core/modules/book/book.module
View file @
9a0367fa
...
...
@@ -1224,7 +1224,7 @@ function book_toc($bid, $depth_limit, $exclude = array()) {
*/
function
template_preprocess_book_export_html
(
&
$variables
)
{
global
$base_url
;
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$variables
[
'title'
]
=
check_plain
(
$variables
[
'title'
]);
$variables
[
'base_url'
]
=
$base_url
;
...
...
core/modules/comment/comment.module
View file @
9a0367fa
...
...
@@ -959,7 +959,7 @@ function comment_prepare_thread(&$comments) {
*/
function
comment_view
(
Comment
$comment
,
Node
$node
,
$view_mode
=
'full'
,
$langcode
=
NULL
)
{
if
(
!
isset
(
$langcode
))
{
$langcode
=
language
_manager
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
$langcode
=
language
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
}
// Populate $comment->content with a render() array.
...
...
@@ -1025,7 +1025,7 @@ function comment_view(Comment $comment, Node $node, $view_mode = 'full', $langco
*/
function
comment_build_content
(
Comment
$comment
,
Node
$node
,
$view_mode
=
'full'
,
$langcode
=
NULL
)
{
if
(
!
isset
(
$langcode
))
{
$langcode
=
language
_manager
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
$langcode
=
language
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
}
// Remove previously built content, if exists.
...
...
@@ -1683,7 +1683,7 @@ function comment_forms() {
*/
function
comment_form
(
$form
,
&
$form_state
,
Comment
$comment
)
{
global
$user
;
$language_content
=
language
_manager
(
LANGUAGE_TYPE_CONTENT
);
$language_content
=
language
(
LANGUAGE_TYPE_CONTENT
);
// During initial form build, add the comment entity to the form state for
// use during form building and processing. During a rebuild, use what is in
...
...
core/modules/comment/lib/Drupal/comment/Tests/CommentTokenReplaceTest.php
View file @
9a0367fa
...
...
@@ -23,7 +23,7 @@ public static function getInfo() {
* Creates a comment, then tests the tokens generated from it.
*/
function
testCommentTokenReplacement
()
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$url_options
=
array
(
'absolute'
=>
TRUE
,
'language'
=>
$language_interface
,
...
...
core/modules/contact/contact.pages.inc
View file @
9a0367fa
...
...
@@ -150,7 +150,7 @@ function contact_site_form_validate($form, &$form_state) {
*/
function
contact_site_form_submit
(
$form
,
&
$form_state
)
{
global
$user
;
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$values
=
$form_state
[
'values'
];
$values
[
'sender'
]
=
$user
;
...
...
@@ -292,7 +292,7 @@ function contact_personal_form($form, &$form_state, $recipient) {
*/
function
contact_personal_form_submit
(
$form
,
&
$form_state
)
{
global
$user
;
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$values
=
$form_state
[
'values'
];
$values
[
'sender'
]
=
$user
;
...
...
core/modules/entity/entity.module
View file @
9a0367fa
...
...
@@ -48,7 +48,7 @@ function entity_modules_disabled() {
* @see hook_entity_info_alter()
*/
function
entity_get_info
(
$entity_type
=
NULL
)
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Use the advanced drupal_static() pattern, since this is called very often.
static
$drupal_static_fast
;
...
...
core/modules/field/field.info.inc
View file @
9a0367fa
...
...
@@ -67,7 +67,7 @@ function field_info_cache_clear() {
* @see _field_info_collate_types_reset()
*/
function
_field_info_collate_types
()
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// Use the advanced drupal_static() pattern, since this is called very often.
static
$drupal_static_fast
;
...
...
core/modules/field/field.multilingual.inc
View file @
9a0367fa
...
...
@@ -258,7 +258,7 @@ function field_valid_language($langcode, $default = TRUE) {
if
(
in_array
(
$langcode
,
$languages
))
{
return
$langcode
;
}
return
$default
?
language_default
()
->
langcode
:
language
_manager
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
return
$default
?
language_default
()
->
langcode
:
language
(
LANGUAGE_TYPE_CONTENT
)
->
langcode
;
}
/**
...
...
core/modules/file/lib/Drupal/file/Tests/FileTokenReplaceTest.php
View file @
9a0367fa
...
...
@@ -23,7 +23,7 @@ public static function getInfo() {
* Creates a file, then tests the tokens generated from it.
*/
function
testFileTokenReplacement
()
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$url_options
=
array
(
'absolute'
=>
TRUE
,
'language'
=>
$language_interface
,
...
...
core/modules/filter/filter.module
View file @
9a0367fa
...
...
@@ -399,7 +399,7 @@ function filter_modules_disabled($modules) {
* @see filter_formats_reset()
*/
function
filter_formats
(
$account
=
NULL
)
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
$formats
=
&
drupal_static
(
__FUNCTION__
,
array
());
// All available formats are cached for performance.
...
...
core/modules/image/image.module
View file @
9a0367fa
...
...
@@ -965,7 +965,7 @@ function image_style_path($style_name, $uri) {
* @see image_effect_definition_load()
*/
function
image_effect_definitions
()
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// hook_image_effect_info() includes translated strings, so each language is
// cached separately.
...
...
core/modules/language/language.module
View file @
9a0367fa
...
...
@@ -243,7 +243,7 @@ function language_delete($langcode) {
* and checks to see if a related right to left CSS file should be included.
*/
function
language_css_alter
(
&
$css
)
{
$language_interface
=
language
_manager
(
LANGUAGE_TYPE_INTERFACE
);
$language_interface
=
language
(
LANGUAGE_TYPE_INTERFACE
);
// If the current language is RTL, add the CSS file with the RTL overrides.
if
(
$language_interface
->
direction
==
LANGUAGE_RTL
)
{
...
...
Prev
1
2
3
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment