Commit Graph

227 Commits

Author SHA1 Message Date
Jeremy Felt f93e24ca8e REST API: Render response in user locale with `?_locale=user`.
Introduces new `determine_locale()` function for deciding the proper locale to use for a response. Default value is `get_user_locale()` in the admin, and `get_locale()` on the frontend. Because REST API requests are considered frontend requests, `?_locale=user` can be used to render the response in the user's locale.

Also updates `wp-login.php?wp_lang` implementation to benefit from this abstraction.

Merges [43776] from the 5.0 branch to trunk.

Props flixos90, mnelson4, swissspidy, TimothyBlynJacobs.
Fixes #44758.

Built from https://develop.svn.wordpress.org/trunk@44134


git-svn-id: http://core.svn.wordpress.org/trunk@43964 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-14 01:32:39 +00:00
Gary Pendergast 56c162fbc9 Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.


Built from https://develop.svn.wordpress.org/trunk@43571


git-svn-id: http://core.svn.wordpress.org/trunk@43400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-17 01:51:36 +00:00
John Blackbourn 2361ca884f Docs: Document more parameters and properties using typed array notation.
See #41756

Built from https://develop.svn.wordpress.org/trunk@42876


git-svn-id: http://core.svn.wordpress.org/trunk@42706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-25 19:33:31 +00:00
Dominik Schilling 5c291d49de Pinking shears.
See #41057.
Built from https://develop.svn.wordpress.org/trunk@42843


git-svn-id: http://core.svn.wordpress.org/trunk@42673 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-18 14:23:33 +00:00
Pascal Birchler 5cde2018ea Docs: Remove erroneous period in the description for `esc_html__()`.
Props danieltj.
Fixes #43419.

Built from https://develop.svn.wordpress.org/trunk@42753


git-svn-id: http://core.svn.wordpress.org/trunk@42583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-02-26 15:57:32 +00:00
Drew Jaynes 6e665d1f15 Docs: Link to the "Conditional Tags" article in the Theme Developer Handbook from the descriptions for a variety of core conditional tag functions.
These notations largely serve to direct consumers (of both the source and the parsed code reference) to extended information on individual and related conditional tags throughout WordPress. The changeset also standardizes corresponding DocBlock summaries to use third-person singular verbs.

Notations been added for the following functions:

* comments_open()
* email exists()
* has_excerpt()
* has_post_thumbnail()
* has_tag()
* in_category()
* in_the_loop()
* is_404()
* is_active_sidebar()
* is_active_widget()
* is_admin()
* is_admin_bar_showing()
* is_archive()
* is_attachment()
* is_author()
* is_blog_installed()
* is_category()
* is_comments_popup()
* is_date()
* is_day()
* is_dynamic_sidebar()
* is_feed()
* is_front_page()
* is_home()
* is_local_attachment()
* is_main_query
* is_month()
* is_multi_author
* is_new_day()
* is_page()
* is_page_template()
* is_paged()
* is_plugin_active()
* is_plugin_active_for_network()
* is_plugin_inactive()
* is_plugin_page()
* is_post_type_archive()
* is_preview()
* is_rtl()
* is_search()
* is_single()
* is_singular()
* is_sticky()
* is_tag()
* is_tax()
* is_taxonomy_hierarchical()
* is_time()
* is_trackback()
* is_user_logged_in()
* is_year()
* pings_open()
* post_type_exists()
* taxonomy_exists()
* term_exists()
* username exists()
* wp_attachment_is_image()
* wp_script_is()

Props janalwin.
Fixes #43254.

Built from https://develop.svn.wordpress.org/trunk@42710


git-svn-id: http://core.svn.wordpress.org/trunk@42538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-02-13 16:54:31 +00:00
Sergey Biryukov a3f69ffaa3 Docs: Add missing `@staticvar` entries in `wp-includes/l10n.php`.
Props birgire.
Fixes #42800.
Built from https://develop.svn.wordpress.org/trunk@42399


git-svn-id: http://core.svn.wordpress.org/trunk@42228 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-12-15 05:08:51 +00:00
Gary Pendergast aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


Built from https://develop.svn.wordpress.org/trunk@42343


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00
Sergey Biryukov 54ff178923 I18N: Make sure `wp_dropdown_languages()` does not print out empty `name` and `id` attributes.
Props johnjamesjacoby, afercia.
Fixes #40829.
Built from https://develop.svn.wordpress.org/trunk@41734


git-svn-id: http://core.svn.wordpress.org/trunk@41568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-04 15:23:46 +00:00
Sergey Biryukov 35617e12dd I18N: In `wp_dropdown_languages()`, change the parsed arguments variable to `$parsed_args`, to prevent stomping the original `$args` array.
Props Mte90.
See #40829.
Built from https://develop.svn.wordpress.org/trunk@41733


git-svn-id: http://core.svn.wordpress.org/trunk@41567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-04 15:08:46 +00:00
John Blackbourn 28eda6f4bc General: Improve terminology used when referring to installations of WordPress and its extensions.
"Install" is not a noun, and while it might be acceptable to use the verb as a noun, it is not correct. Using the correct
noun, "installation", increases clarity, especially for non-native English speakers.

This change fixes the usage in user-facing text and in developer documentation.

Fixes #41620

Built from https://develop.svn.wordpress.org/trunk@41289


git-svn-id: http://core.svn.wordpress.org/trunk@41129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-22 11:52:48 +00:00
Drew Jaynes 6146ba0b33 Docs: Clarify the description for `esc_html__()` to note that the original text will be escaped on return if there is no translation, or the text domain isn't loaded.
Props brianlayman.
See #41017.

Built from https://develop.svn.wordpress.org/trunk@40932


git-svn-id: http://core.svn.wordpress.org/trunk@40782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-06-25 06:41:41 +00:00
Sergey Biryukov 33dc58fe70 I18N: Remove an extra slash between `.mo` file path and name in `load_muplugin_textdomain()`.
Props nsundberg.
Fixes #39168.
Built from https://develop.svn.wordpress.org/trunk@40362


git-svn-id: http://core.svn.wordpress.org/trunk@40269 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-04-01 14:26:40 +00:00
Dominik Schilling 2328e7b17a I18N: In `wp_dropdown_languages()` rename the new `show_site_locale_default` argument to `show_option_site_default`.
This makes it consistent with arguments of other `wp_dropdown_*()` functions.

Props SergeyBiryukov.
See #38632.
Fixes #38871.
Built from https://develop.svn.wordpress.org/trunk@39331


git-svn-id: http://core.svn.wordpress.org/trunk@39271 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-21 16:14:30 +00:00
Dominik Schilling f5b6731777 I18N: Add an additional caching layer for `_load_textdomain_just_in_time()`.
Previously, if no translation files exist for a text domain, `_load_textdomain_just_in_time()` went through the entire process each time it was called. This results in an increased call to `get_locale()` and its `locale` filter.
This change splits the logic into `_get_path_to_translation()` and `_get_path_to_translation_from_lang_dir()`. The former, which is used by `_load_textdomain_just_in_time()`, caches the result of the latter. It also removes some non-working code from `WP_Locale_Switcher::load_translations()`.

Props jrf, swissspidy, sharkomatic, ocean90.
Fixes #37997.
Built from https://develop.svn.wordpress.org/trunk@39330


git-svn-id: http://core.svn.wordpress.org/trunk@39270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-21 16:07:33 +00:00
Dominik Schilling a800e652c6 Docs: Apply documentation standards to the new `get_available_languages` filter.
See #38788.
Built from https://develop.svn.wordpress.org/trunk@39244


git-svn-id: http://core.svn.wordpress.org/trunk@39184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-15 09:52:32 +00:00
Gary Pendergast fc1255a2c7 I18N: Add the `get_available_languages` filter.
Sometimes, a language file may not exist in exactly the format or location that `get_available_languages()` expects it to be in - for sites with this level of customisation, they need to be able to add their own language files to the list of those available.

Props yoavf.
Fixes #38788.


Built from https://develop.svn.wordpress.org/trunk@39235


git-svn-id: http://core.svn.wordpress.org/trunk@39175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-15 01:19:31 +00:00
Dominik Schilling c3dc173799 I18N: Don't use `get_available_languages()` in `_load_textdomain_just_in_time()`.
`get_available_languages()` is only designed to work with translations for core. Using it for plugins/themes means unnecessary `strpos()` checks and incomplete results for plugins/themes whose names are beginning with `admin-` or `ms-`.

Props swissspidy, ocean90.
Fixes #38590.
Built from https://develop.svn.wordpress.org/trunk@39230


git-svn-id: http://core.svn.wordpress.org/trunk@39170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-14 21:07:30 +00:00
Pascal Birchler 548ac82b06 I18N: Add ability to change user's locale back to site's locale.
Previously there was no way to remove the user locale setting again, even though that might be desirable.

This adds a new 'Site Default' option to the user-specific language setting by introducing a new `show_site_locale_default` argument to `wp_dropdown_languages()`.

Props ocean90.
See #29783.
Fixes #38632.
Built from https://develop.svn.wordpress.org/trunk@39169


git-svn-id: http://core.svn.wordpress.org/trunk@39109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-08 23:01:31 +00:00
Dominik Schilling abada1fbdc I18N: In `get_user_locale()` ensure that `$user_id` isn't a falsy value before calling `get_user_by()`.
Fixes #38485.
Built from https://develop.svn.wordpress.org/trunk@39134


git-svn-id: http://core.svn.wordpress.org/trunk@39074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-04 17:15:26 +00:00
Pascal Birchler b1ee6c64d9 I18N: Use the user's locale when loading text domains in the admin.
Leverages `get_user_locale()` in `load_*_textdomain()` and `_load_textdomain_just_in_time()` to always load translations in the user's language when in the admin.

This re-introduces [39069], but now with additional tests and a `function_exists( 'wp_get_current_user' )` check in `get_user_locale()` in case it gets used early.

Props swissspidy, ocean90.
Fixes #38485.
Built from https://develop.svn.wordpress.org/trunk@39127


git-svn-id: http://core.svn.wordpress.org/trunk@39067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-04 17:11:59 +00:00
John Blackbourn 766ff15532 I18N: Revert [39069] as it needs some more work.
See #38485

Built from https://develop.svn.wordpress.org/trunk@39070


git-svn-id: http://core.svn.wordpress.org/trunk@39012 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-01 16:07:32 +00:00
Pascal Birchler 8bdd37fc58 I18N: Use the user's locale when loading text domains in the admin.
Leverages `get_user_locale()` in `load_*_textdomain()` and `_load_textdomain_just_in_time()` to always load translations in the user's language when in the admin.

Fixes #38485.
Built from https://develop.svn.wordpress.org/trunk@39069


git-svn-id: http://core.svn.wordpress.org/trunk@39011 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-01 09:24:29 +00:00
Pascal Birchler d7d8768ffd I18N: Remove unused `$wpdb` global from `get_locale()` after [39005].
Originally added in [38976], but reverted soon after.

Props johnjamesjacoby.
Fixes #38601.
Built from https://develop.svn.wordpress.org/trunk@39067


git-svn-id: http://core.svn.wordpress.org/trunk@39009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-01 07:38:31 +00:00
Dominik Schilling a1d18b7b8a I18N: Don't initialize `WP_Locale_Switcher` in `wp_load_translations_early()`.
`wp_load_translations_early()` is used when WordPress isn't fully initialized. Therefore using the `WP_Locale_Switcher` with `get_locale()`/`get_user_locale()` can cause PHP fatal errors.
This reverts [38976] and [38977], and instead removes `WP_Locale_Switcher` from `wp_load_translations_early()`.

See #29783.
Fixes #38535.
Built from https://develop.svn.wordpress.org/trunk@39005


git-svn-id: http://core.svn.wordpress.org/trunk@38947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-29 11:23:33 +00:00
Pascal Birchler e8af4e510d I18N: Apply the `locale` filter when returning early in `get_locale()`.
See [38976].
See #29783.
Built from https://develop.svn.wordpress.org/trunk@38978


git-svn-id: http://core.svn.wordpress.org/trunk@38921 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-27 06:40:33 +00:00
Gary Pendergast 1c5c130af9 I18N: Fix a PHP fatal when `get_locale()` is called before `$wpdb` is ready.
If WPDB needs to bail early, it loads the translations, which need to load the locale. Without WPDB, we can't get any database options, so can only rely on what's been loaded so far.

Fixes #29783.


Built from https://develop.svn.wordpress.org/trunk@38976


git-svn-id: http://core.svn.wordpress.org/trunk@38919 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-27 03:43:49 +00:00
Dominik Schilling 7819e2b4ba I18N: Introduce a locale-switching function.
With the introduction of user-specific languages in [38705] it's necessary to be able to switch translations on the fly. For example emails should be sent in the language of the recipient and not the one of the current user.

This introduces a new `WP_Locale_Switcher` class which is used for switching locales and translations. It holds the stack of locales whenever `switch_to_locale( $locale )` is called. With `restore_previous_locale()` you can restore the previous locale. `restore_current_locale()` empties the stack and sets the locale back to the initial value.

`switch_to_locale()` is added to most of core's email functions, either with the value of `get_locale()` (site language) or `get_user_locale()` (user language with fallback to site language).

Props yoavf, tfrommen, swissspidy, pbearne, ocean90.
See #29783.
Fixes #26511.
Built from https://develop.svn.wordpress.org/trunk@38961


git-svn-id: http://core.svn.wordpress.org/trunk@38904 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-26 15:36:31 +00:00
Dominik Schilling 49c5fb895d I18N: Add `$user_id` argument to `get_user_locale()`.
This allows to retrieve the locale of any user with the additional fallback to the site locale.

Fixes #38512.
See #29783, #26511.
Built from https://develop.svn.wordpress.org/trunk@38955


git-svn-id: http://core.svn.wordpress.org/trunk@38898 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-26 14:15:32 +00:00
Pascal Birchler 4a88d55054 I18N: Introduce a user-specific language setting.
By enabling the user to select their preferred locale when editing the profile, we allow for greater personalization of the WordPress admin and therefore a better user experience.

The back end will be displayed in the user's individual locale while the locale used on the front end equals the one set for the whole site. If the user didn't specify a locale, the site's locale will be used as a fallback. The new `locale` property of the `WP_User` class can be used to retrieve the user's locale setting.

Props ocean90, ipm-frommen, swissspidy.
Fixes #29783.
Built from https://develop.svn.wordpress.org/trunk@38705


git-svn-id: http://core.svn.wordpress.org/trunk@38648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-03 07:04:29 +00:00
Scott Taylor 3f51e08ac6 i18n: after r38364, check that `global $wp_locale` is an instance of `WP_Locale` before calling `->is_rtle()` in `is_rtl()`.
See #37827.

Built from https://develop.svn.wordpress.org/trunk@38438


git-svn-id: http://core.svn.wordpress.org/trunk@38379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-30 05:57:41 +00:00
Scott Taylor 6d87157eb9 i18n: move `is_rtl()` to `l10n.php` (which loads way earlier). Load `WP_Locale` file in `wp-settings.php`. Retire `wp-includes/locale.php` - it only loaded the class and the one function, `is_rtl()`. If someone loaded this file for fun somewhere else, it would be a fatal error.
See #37827.

Built from https://develop.svn.wordpress.org/trunk@38364


git-svn-id: http://core.svn.wordpress.org/trunk@38305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-26 10:20:29 +00:00
Scott Taylor ac6c22c392 L10N: improve accuracy of docs.
Props johnbillion.
Fixes #37585.

Built from https://develop.svn.wordpress.org/trunk@38360


git-svn-id: http://core.svn.wordpress.org/trunk@38301 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-26 09:38:28 +00:00
Sergey Biryukov 83bed74a2f Docs: Fix typo in `load_plugin_textdomain()` parameter description.
Props tivnet.
See #37318.
Built from https://develop.svn.wordpress.org/trunk@38284


git-svn-id: http://core.svn.wordpress.org/trunk@38225 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-19 14:29:30 +00:00
John Blackbourn dc3d64ed9c I18N: Correct the documented return types of `get_translations_for_domain()`.
See #32246

Built from https://develop.svn.wordpress.org/trunk@38198


git-svn-id: http://core.svn.wordpress.org/trunk@38139 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-04 22:13:29 +00:00
Drew Jaynes 6cc13f0c54 Docs: Fix formatting, tense, verb conjugation, and other syntax for wp-includes/* elements introduced or changed in 4.6.
Part 1/2.

See #37318.

Built from https://develop.svn.wordpress.org/trunk@38121


git-svn-id: http://core.svn.wordpress.org/trunk@38062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-07-20 16:57:32 +00:00
Sergey Biryukov 139387b7e5 Docs: Use 3-digit, x.x.x-style semantic versioning for `_doing_it_wrong()`, `_deprecated_function()`, `_deprecated_argument()`, and `_deprecated_file()` throughout core.
Props metodiew.
Fixes #36495.
Built from https://develop.svn.wordpress.org/trunk@37985


git-svn-id: http://core.svn.wordpress.org/trunk@37926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-07-06 12:40:29 +00:00
Jeremy Felt 6f3f00ea97 Multisite: Change `WP_Network` `id` property to an integer.
For consistency and developer sanity.

Props flixos90.
Fixes #37050.

Built from https://develop.svn.wordpress.org/trunk@37870


git-svn-id: http://core.svn.wordpress.org/trunk@37811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-26 14:26:29 +00:00
Drew Jaynes 558d5b371c Docs: Standardize filter docs in wp-includes/l10n.php to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.

Built from https://develop.svn.wordpress.org/trunk@37517


git-svn-id: http://core.svn.wordpress.org/trunk@37485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 18:48:28 +00:00
Dominik Schilling a673a71f94 I18N: In `get_translations_for_domain()` check if the global `$l10n` was set by `_load_textdomain_just_in_time()` before accessing it.
Props danielhuesken.
Fixes #34114.
Built from https://develop.svn.wordpress.org/trunk@37440


git-svn-id: http://core.svn.wordpress.org/trunk@37406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-16 15:10:29 +00:00
Pascal Birchler 64fb1a9e90 I18N: Add changes missed in [37415].
See #34114.
Built from https://develop.svn.wordpress.org/trunk@37416


git-svn-id: http://core.svn.wordpress.org/trunk@37382 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-10 20:31:27 +00:00
Pascal Birchler 3f6966907b I18N: Reverse the order of loading plugin and theme translations.
`load_theme_textdomain()`, `load_plugin_textdomain()` and `load_muplugin_textdomain()` now try to load the .mo file from the `wp-content/languages` directory first. After the introduction of language packs, translation files are more likely to be located there.

Props swissspidy, sebastian.pisula.
Fixes #34213.
Built from https://develop.svn.wordpress.org/trunk@37414


git-svn-id: http://core.svn.wordpress.org/trunk@37380 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-10 18:50:27 +00:00
Drew Jaynes fe3b007fdd Docs: Remove inline `@see` tags from function, class, and method references in inline docs.
Known functions, classes, and methods are now auto-linked in Code Reference pages following #meta1483.

Note: Hook references are still linked via inline `@see` tags due to the unlikelihood of reliably matching for known hooks based on a RegEx pattern.

See #32246.

Built from https://develop.svn.wordpress.org/trunk@37342


git-svn-id: http://core.svn.wordpress.org/trunk@37308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-02 04:00:28 +00:00
Sergey Biryukov 7c2ad56158 Docs: Correct description for `override_load_textdomain` and `override_unload_textdomain` filters.
Props dimadin.
Fixes #36537.
Built from https://develop.svn.wordpress.org/trunk@37214


git-svn-id: http://core.svn.wordpress.org/trunk@37180 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-04-15 17:19:28 +00:00
Sergey Biryukov bd4c250078 Docs: Correct `_n_noop()` and `_nx_noop()` descriptions to use third-person singular verbs.
Props realloc.
See #35961.
Built from https://develop.svn.wordpress.org/trunk@36765


git-svn-id: http://core.svn.wordpress.org/trunk@36732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-28 20:43:26 +00:00
Dominik Schilling 51473acfb3 i18n: Prevent `is_textdomain_loaded()` from returning true even if there are no translations for the domain.
In `get_translations_for_domain()` don't fill the global `$l10n` with `NOOP_Translations` instances, return a `NOOP_Translations` instance instead.

Props nacin, jrf.
Fixes #21319.
Built from https://develop.svn.wordpress.org/trunk@36538


git-svn-id: http://core.svn.wordpress.org/trunk@36505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 21:15:29 +00:00
John Blackbourn 045d7d3a18 I18N: Correct an argument description and return value for `wp_dropdown_languages()`.
Props realloc
See #35294

Built from https://develop.svn.wordpress.org/trunk@36290


git-svn-id: http://core.svn.wordpress.org/trunk@36257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-13 20:33:25 +00:00
Drew Jaynes 9b89047bf2 Docs: Add a missing notation for the `$context` parameter in the DocBlock for `_nx_noop()`.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@36012


git-svn-id: http://core.svn.wordpress.org/trunk@35977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-18 23:16:26 +00:00
Sergey Biryukov 6ffc7914f1 I18N: Add a unit test for `before_last_bar()`.
Props realloc.
Fixes #35073.
Built from https://develop.svn.wordpress.org/trunk@35959


git-svn-id: http://core.svn.wordpress.org/trunk@35923 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-16 08:04:26 +00:00
Dominik Schilling 6fb81e3338 L10n: Use an absolute path for the `is_dir()` check when looking for installed translations.
Avoids warnings when `open_basedir` restrictions are in effect.

Props Profforg.
Fixes #34526.
Built from https://develop.svn.wordpress.org/trunk@35856


git-svn-id: http://core.svn.wordpress.org/trunk@35820 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-10 23:09:27 +00:00
Jeremy Felt 9926983b66 Revert [34778], continue using `_site_option()` for the current network.
The `_network_option()` parameter order will be changing to accept `$network_id` first. The `_site_option()` functions will remain in use throughout core as our way of retrieving a network option for the current network.

See #28290.

Built from https://develop.svn.wordpress.org/trunk@34912


git-svn-id: http://core.svn.wordpress.org/trunk@34877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-07 17:11:25 +00:00
Boone Gorges 0e7c1d3b14 Use `wp_installing()` instead of `WP_INSTALLING` constant.
The `WP_INSTALLING` constant is a flag that WordPress sets in a number of
places, telling the system that options should be fetched directly from the
database instead of from the cache, that WP should not ping wordpress.org for
updates, that the normal "not installed" checks should be bypassed, and so on.

A constant is generally necessary for this purpose, because the flag is
typically set before the WP bootstrap, meaning that WP functions are not yet
available.  However, it is possible - notably, during `wpmu_create_blog()` -
for the "installing" flag to be set after WP has already loaded. In these
cases, `WP_INSTALLING` would be set for the remainder of the process, since
there's no way to change a constant once it's defined. This, in turn, polluted
later function calls that ought to have been outside the scope of site
creation, particularly the non-caching of option data. The problem was
particularly evident in the case of the automated tests, where `WP_INSTALLING`
was set the first time a site was created, and remained set for the rest of the
suite.

The new `wp_installing()` function allows developers to fetch the current
installation status (when called without any arguments) or to set the
installation status (when called with a boolean `true` or `false`). Use of
the `WP_INSTALLING` constant is still supported; `wp_installing()` will default
to `true` if the constant is defined during the bootstrap.

Props boonebgorges, jeremyfelt.
See #31130.
Built from https://develop.svn.wordpress.org/trunk@34828


git-svn-id: http://core.svn.wordpress.org/trunk@34793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-05 15:06:28 +00:00
Drew Jaynes bfa2a5295e Docs: Improve a variety of inline docs in wp-includes/l10n.php.
* Corrects phrasing used in the descriptions for and filters in `_n()` and `_nx()`, particularly with regard to the use of 'singular' instead of 'single' or '1', and 'plural' instead of 'not 1'.
* Adds example usage to `_n()`, `_nx()`, `_nx_noop()`, and `translate_nooped_plural()`.
* Adds hash notation `@return` doc for `_n_noop()` and `_nx_noop()`.
* Adds missing default values for the optional `$domain` parameter in several places.

Props johnbillion.
Fixes #34127.

Built from https://develop.svn.wordpress.org/trunk@34781


git-svn-id: http://core.svn.wordpress.org/trunk@34746 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 20:45:24 +00:00
Jeremy Felt 54512d64cb MS: Use `*_network_option()` functions throughout core.
Replaces all uses of `*_site_option()` with the corresponding "network" function.

This excludes one usage in `wp-admin/admin-footer.php` that needs more investigation.

Props spacedmonkey.
See #28290.

Built from https://develop.svn.wordpress.org/trunk@34778


git-svn-id: http://core.svn.wordpress.org/trunk@34743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 19:08:26 +00:00
Drew Jaynes e5e03e787c Docs: Link up a hook reference with an inline `@see` tag in the return description for `get_locale()`.
Missed in [34484].

See #32246.

Built from https://develop.svn.wordpress.org/trunk@34485


git-svn-id: http://core.svn.wordpress.org/trunk@34449 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-24 05:51:23 +00:00
Drew Jaynes 81e135955a Docs: Fix the summary for `get_locale()`.
Also update the description to properly link up hook references with inline `@see` tags.

See #32246.

Built from https://develop.svn.wordpress.org/trunk@34484


git-svn-id: http://core.svn.wordpress.org/trunk@34448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-24 05:50:24 +00:00
Drew Jaynes 1c761505b6 Docs: Clarify the file header summary for wp-includes/l10n.php and add the version it was introduced.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34483


git-svn-id: http://core.svn.wordpress.org/trunk@34447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-24 05:47:24 +00:00
Drew Jaynes f64c19aa95 Docs: Split the DocBlock summary for `__()` into a summary and description.
Also, notate the default value for the optional `$domain` parameter.

See #32246.

Built from https://develop.svn.wordpress.org/trunk@34482


git-svn-id: http://core.svn.wordpress.org/trunk@34446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-24 05:43:26 +00:00
Scott Taylor ef87172270 `foreach` is a statement, not a function.
See #33491.

Built from https://develop.svn.wordpress.org/trunk@33734


git-svn-id: http://core.svn.wordpress.org/trunk@33702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 20:28:22 +00:00
Mark Jaquith 4965581097 Don't blindly trust the output of `glob()` to be an array.
props kitchin
fixes #33093
Built from https://develop.svn.wordpress.org/trunk@33447


git-svn-id: http://core.svn.wordpress.org/trunk@33414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-27 18:05:24 +00:00
Drew Jaynes 71a7b8c5a4 Remove now-unnecessary inline `@see` tag from the DocBlock for `wp_dropdown_languages()`.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@33230


git-svn-id: http://core.svn.wordpress.org/trunk@33202 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 21:42:24 +00:00
Dominik Schilling 699dbedb03 l10n: Update `wp_get_installed_translations()` to support variants of a language.
* A variant of a language has its own locale, for example the locale of the formal variant of German is `de_DE_formal`.
* Update `remove_accents()` and some CSS rules to support `de_DE_formal`.
* Add tests for `get_bloginfo( 'language' )`.
* API changes will be deployed over the next few days.

see #28303.
Built from https://develop.svn.wordpress.org/trunk@33027


git-svn-id: http://core.svn.wordpress.org/trunk@32998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-01 15:43:24 +00:00
Scott Taylor b9e8ee95b5 `prep_atom_text_construct()` and `before_last_bar()` should strictly check against `false` when using `str(r)?pos()`.
Sidenote: there's a function named `before_last_bar`.

See #32444.

Built from https://develop.svn.wordpress.org/trunk@32940


git-svn-id: http://core.svn.wordpress.org/trunk@32911 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-25 16:49:25 +00:00
Scott Taylor 2787e0080a Add missing doc blocks to `l10n.php`
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32605


git-svn-id: http://core.svn.wordpress.org/trunk@32575 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-26 18:13:25 +00:00
Sergey Biryukov d40fe7d80b Allow `wp_dropdown_languages()` to return the markup instead of displaying.
props leewillis77, juliobox.
fixes #32432.
Built from https://develop.svn.wordpress.org/trunk@32510


git-svn-id: http://core.svn.wordpress.org/trunk@32480 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-19 00:33:26 +00:00
Sergey Biryukov e2f5a8094e Avoid a PHP notice in `wp_install_language_form()` and `wp_dropdown_languages()` if the language doesn't have a ISO 639-1 code.
props barrykooij.
fixes #31319.
Built from https://develop.svn.wordpress.org/trunk@31447


git-svn-id: http://core.svn.wordpress.org/trunk@31428 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-13 11:23:26 +00:00
Scott Taylor 60b0cd7943 The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words.
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs. 

See #30799.

Built from https://develop.svn.wordpress.org/trunk@31090


git-svn-id: http://core.svn.wordpress.org/trunk@31071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 07:05:25 +00:00
Scott Taylor a0df295f5c Improve various `@param` docs.
See #30224.

Built from https://develop.svn.wordpress.org/trunk@30674


git-svn-id: http://core.svn.wordpress.org/trunk@30664 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-30 23:24:25 +00:00
Drew Jaynes b8c612ca1c Ensure inline code is markdown-escaped as such, HTML tags are removed from summaries, and that code snippets in descriptions are properly indented.
Affects DocBlocks for the following core elements:
* Markdown-indent a code snippet in the file header for wp-admin/install-helper.php
* Add markdown formatting and two inline `@see` tags to the description for `translate()`
* Markdown-indent a code snippet in the description for `_n_noop()`
* Remove HTML tags from the summary for `get_media_embedded_in_content()`
* Remove an HTML tag from the summary for `wpview_media_sandbox_styles()`

Props rarst.
See #30473.

Built from https://develop.svn.wordpress.org/trunk@30542


git-svn-id: http://core.svn.wordpress.org/trunk@30531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-24 05:47:23 +00:00
John Blackbourn 3ace1fac81 Only output an optgroup for installed languages in `wp_dropdown_languages()` if translations are available.
See #30335

Built from https://develop.svn.wordpress.org/trunk@30495


git-svn-id: http://core.svn.wordpress.org/trunk@30484 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-21 03:20:22 +00:00
Drew Jaynes 51e7e8e695 Clarify/correct inline documentation in wp-includes/l10n.php.
* Add a missing `@return` description for `load_default_textdomain()`
* Clarify the `@param` description for `$locale` with an inline `@see` tag
* Ensure the correct parameter variable is used when documenting `$args` for `wp_dropdown_languages()`

Props camdensegal.
Fixes #30385.

Built from https://develop.svn.wordpress.org/trunk@30380


git-svn-id: http://core.svn.wordpress.org/trunk@30377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-18 18:47:22 +00:00
Andrew Nacin b922be3f71 Only use the 'Installed' optgroup in wp_dropdown_languages() if it's needed.
see #30335.

Built from https://develop.svn.wordpress.org/trunk@30340


git-svn-id: http://core.svn.wordpress.org/trunk@30339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-14 03:24:23 +00:00
Dominik Schilling 8fb6f317ff Site Language: Install translations on the fly.
The language dropdown now includes installed languages and all available translations when the filesystem is writable by WordPress.
Go to wp-admin/options-general.php, select one of the available translations, submit the form and let WordPress handle the rest.
Works for Multisite's Default Language too.

see #29395.
Built from https://develop.svn.wordpress.org/trunk@30335


git-svn-id: http://core.svn.wordpress.org/trunk@30334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-13 17:01:24 +00:00
John Blackbourn ae7cb843a0 Avoid double path separators in `load_theme_textdomain()`. Fixes #29122. Props bradyvercher
Built from https://develop.svn.wordpress.org/trunk@29984


git-svn-id: http://core.svn.wordpress.org/trunk@29726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-21 17:58:18 +00:00
Dominik Schilling 57c41263d7 Language packs: Remove translations when deleting a theme or a plugin.
This is for translation files in WP_LANG_DIR which are installed through a language pack.
Change `wp_get_installed_translations()` to only return a translation if the .mo file also exists.

fixes #29860.
Built from https://develop.svn.wordpress.org/trunk@29856


git-svn-id: http://core.svn.wordpress.org/trunk@29619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-08 19:05:20 +00:00
Dominik Schilling d544610681 Language packs: No WPLANG anymore.
* The WPLANG constant is no longer needed. Remove define('WPLANG', ''); from wp-config-sample.php. Populate WPLANG option based on the WPLANG constant. When get_option('WPLANG') is an empty string it will override WPLANG.
* Introduce translations_api() which is available to communicate with the translation API. Move translation install related functions to a new file.
* Replace mu_dropdown_languages() with wp_dropdown_languages(). wp_dropdown_languages() is now populated by the translation API.
* Remove wp_install_load_language() and allow load_default_textdomain() to switch a core translation.

fixes #13069, #15677, #19760, #28730, #29281. 
Built from https://develop.svn.wordpress.org/trunk@29630


git-svn-id: http://core.svn.wordpress.org/trunk@29404 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-26 19:59:16 +00:00
Drew Jaynes c5a59037f1 Inline documentation cleanup for 4.0 audit.
Various improvements:
* Adds `@see` reference for `wp_list_comments()` in 'wp_list_comments_args' filter docs, added in [28285]
* Various phpDoc tweaks for the 'run_wptexturize' filter docs, added in [28715]
* Sentence and wrapping changes for `is_https_url()`, added in [28894]
* Documents the `$args` parameter for `wp_dropdown_languages()`, added in [29007]
* Adds a period to the parameter description for `_update_posts_count_on_delete()`, added in [28835]
* Documents a global in `is_customize_preview()`, added in [28999]
* phpDoc tweaks, adds an access modifier for `wpdb::esc_like()`, added in [28711]

See #28885.

Built from https://develop.svn.wordpress.org/trunk@29163


git-svn-id: http://core.svn.wordpress.org/trunk@28947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-14 01:02:15 +00:00
Andrew Nacin 4e2f1bd155 Introduce wp_dropdown_languages() and use it on general settings.
Early rough cut. Obviously not fully implemented.

see #15677.

Built from https://develop.svn.wordpress.org/trunk@29007


git-svn-id: http://core.svn.wordpress.org/trunk@28795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-05 06:19:16 +00:00
Sergey Biryukov 575425ffbe Add @since for get_translations_for_domain().
props DrewAPicture.
see #28690.
Built from https://develop.svn.wordpress.org/trunk@28938


git-svn-id: http://core.svn.wordpress.org/trunk@28736 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-01 15:29:13 +00:00
Sergey Biryukov 2752456493 Document @return value for load_plugin_textdomain(). props jdgrimes.
Document $path parameter for load_child_theme_textdomain().

fixes #28690.
Built from https://develop.svn.wordpress.org/trunk@28924


git-svn-id: http://core.svn.wordpress.org/trunk@28723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-30 13:52:15 +00:00
Andrew Nacin c504fb41a1 Allow a language to be chosen before installing WordPress. First pass.
* Checks WordPress.org for available languages.
* In get_locale(), starts using the WPLANG option that has existed in multisite since the MU days.
* Adds new argument to wp_install() for setting WPLANG.

see #28577. 

Built from https://develop.svn.wordpress.org/trunk@28774


git-svn-id: http://core.svn.wordpress.org/trunk@28587 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-18 19:58:15 +00:00
Drew Jaynes 5e51ea9940 Priority fixes for various existing hook documentation.
Props kpdesign.
See #26869

Built from https://develop.svn.wordpress.org/trunk@28083


git-svn-id: http://core.svn.wordpress.org/trunk@27914 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-12 00:01:15 +00:00
Andrew Nacin d0cfa40983 Add jshintrc to qunit.
props jorbin.
see #25187.

Built from https://develop.svn.wordpress.org/trunk@25992


git-svn-id: http://core.svn.wordpress.org/trunk@25925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-30 14:39:10 +00:00
Andrew Nacin ddd4473714 Send back core translation information to the API. Update wp_get_installed_translations() to work with core translations. see #18200.
Built from https://develop.svn.wordpress.org/trunk@25652


git-svn-id: http://core.svn.wordpress.org/trunk@25569 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-30 19:47:12 +00:00
Drew Jaynes 88c8d66dc0 Standardize usage of 'text domain' in inline documentation for wp-includes/l10n.php.
Props ericlewis, SergeyBiryukov.
Fixes #16750.

Built from https://develop.svn.wordpress.org/trunk@25586


git-svn-id: http://core.svn.wordpress.org/trunk@25503 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-23 22:28:10 +00:00
Drew Jaynes 881506785b Inline documentation for hooks in wp-includes/l10n.php.
Props Nao.
Fixes #25382.

Built from https://develop.svn.wordpress.org/trunk@25565


git-svn-id: http://core.svn.wordpress.org/trunk@25483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-23 00:38:12 +00:00
Andrew Nacin 79df17be9c Accept and store translations data from the plugin and theme update check endpoints.
Send site locale. Rename wp_get_installed_language_data() to wp_get_installed_translations().

see #18200.

Built from https://develop.svn.wordpress.org/trunk@25536


git-svn-id: http://core.svn.wordpress.org/trunk@25456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-21 04:08:10 +00:00
Andrew Nacin aede88a822 Send installed language data to the plugin and theme update-check endpoints.
Introduces wp_get_installed_language_data() and wp_get_pomo_file_data().

see #18200.

Built from https://develop.svn.wordpress.org/trunk@25520


git-svn-id: http://core.svn.wordpress.org/trunk@25440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-20 19:13:09 +00:00
Drew Jaynes bd2425dd9c Clarify phpdoc descriptions for `esc_attr_x()` and `esc_html_x()`.
props ericlewis. Fixes #24212. 

Built from https://develop.svn.wordpress.org/trunk@25493


git-svn-id: http://core.svn.wordpress.org/trunk@25414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-19 04:41:10 +00:00
Drew Jaynes 4cab8cefd6 Add missing `$path` parameter phpdoc for `load_theme_textdomain()`.
see #16750.

Built from https://develop.svn.wordpress.org/trunk@25492


git-svn-id: http://core.svn.wordpress.org/trunk@25413 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-19 04:13:10 +00:00
Sergey Biryukov 354884205b Update inline documentation for l10n functions. props CharlesClarkson, DrewAPicture. fixes #16750.
Built from https://develop.svn.wordpress.org/trunk@25458


git-svn-id: http://core.svn.wordpress.org/trunk@25379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-16 20:17:09 +00:00
Ryan Boren f2f939fed4 Pinking shears
Built from https://develop.svn.wordpress.org/trunk@25085


git-svn-id: http://core.svn.wordpress.org/trunk@25069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-22 15:56:08 +00:00
Andrew Nacin d6b7c9ccc8 Allow for plugin translations to be loaded from WP_LANG_DIR/plugins/$domain-$locale.mo.
props dimadin.
see #18200.


Built from https://develop.svn.wordpress.org/trunk@25059


git-svn-id: http://core.svn.wordpress.org/trunk@25045 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-20 12:34:09 +00:00
Andrew Nacin f19377fb81 Inline documentation for esc_attr_x() and esc_html_x(). props fjarrett, fixes #24212.
git-svn-id: http://core.svn.wordpress.org/trunk@24825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-28 21:26:10 +00:00
Dion Hulse 57785c7fea Theme Translations: Allow for theme pomo files to be loaded from WP_LANG_DIR/themes/{$domain}-{$locale}.(p|m)o.
This directory format is what we have chosen for Language Packs (See #18200), but which is currently delayed.

By making this change, we can ship localised theme files within core for bundled themes, and avoid the issues associated with Theme Updates overwriting/removing the language files.

Fixes #18960



git-svn-id: http://core.svn.wordpress.org/trunk@22346 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-31 21:30:33 +00:00
Ryan Boren 3c09c184f3 Avoid 'Only variables should be assigned by reference' warning. Props knutsp. fixes #22013
git-svn-id: http://core.svn.wordpress.org/trunk@22113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-04 18:09:30 +00:00
Ryan Boren f483a85676 Remove unnecessary return by refs. Props wonderboymusic. fixes #21839
git-svn-id: http://core.svn.wordpress.org/trunk@21792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-10 17:00:11 +00:00
nacin 6e411a5ea9 Load the admin MO file on repair.php. props SergeyBiryukov. see #21039 for trunk.
git-svn-id: http://core.svn.wordpress.org/trunk@21109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-25 20:00:31 +00:00
ryan f6b643e971 Exclude admin pot files when calculating the list of installed languages in get_available_languages(). fixes #20676
git-svn-id: http://core.svn.wordpress.org/trunk@20788 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-14 17:58:06 +00:00
nacin c22a2e2d7a Allow nooped plurals to receive a textdomain on registration to then be used on translation.
This is good for when the code registering the plural is not also translating it. This occurs
in core with register_post_status(), which accepts a nooped plural as an argument, and then
calls translate_nooped_plural() without a domain.

translate_nooped_plural() can still be called with a domain. The argument will just be overridden
if the nooped plural contains a domain key.

fixes #20188.



git-svn-id: http://svn.automattic.com/wordpress/trunk@20648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-30 16:18:35 +00:00