aboutsummaryrefslogtreecommitdiffstats
path: root/includes/Message
Commit message (Collapse)AuthorAgeFilesLines
* Namespace MessageSpecifier under Wikimedia\Message\Bartosz Dziewoński2024-07-282-2/+2
| | | | | | | | | | In change I625a48a6ecd3fad5c2ed76b23343a0fef91e1b83 I am planning to make Wikimedia\Message\MessageValue use it, and we try to pretend that it is a library separate from MediaWiki, so it makes sense to move MessageSpecifier to the same namespace under Wikimedia\. Bug: T353458 Change-Id: I9ff4ff7beb098b60c92f564591937c7d789c6684
* language: Improve behavior of RawMessage used as MessageSpecifierBartosz Dziewoński2024-07-161-2/+2
| | | | | | | | | | | | | | | | | | | | | We have some code that expects that if you disassemble a MessageSpecifier using its getKey() and getParams() methods, then assemble a new MessageSpecifier using the return values, you will get (at least approximately) the same message. This was not the case with RawMessage, even though it implements the MessageSpecifier interface, because its "keys" are not real message keys, and this operation would mess it up. Override the MessageSpecifier methods on RawMessage so that they're compatible with how everyone expects a MessageSpecifier to work. Add some tests for OutputPage, Message\Converter and Status to verify some scenarios that would previously have failed. Depends-On: I41991989515b4791bc1746f26bd404bf4f17dbdb Depends-On: I612361dd20ff8aad4c0069f1c5af78e3e13b9692 Change-Id: Iddd14efa8b9536277c372257d5a7be135f26a540
* Move code comment that breaks Gerrit's syntax highlightingBartosz Dziewoński2024-06-261-1/+1
| | | | | | Weird. https://phabricator.wikimedia.org/F55883982 Change-Id: I16a60c2240f6cfeb8419d42e7f512d84803036ca
* Message: Rename 'interface' prop because of syntax highlightingBartosz Dziewoński2024-06-261-9/+9
| | | | | | | | | | | | | Some syntax highlighters, in particular Gerrit's, incorrectly handle code that uses a property named 'interface' (which is a PHP keyword). https://phabricator.wikimedia.org/F55884039 Rename it to avoid problems. Message isn't '@stable to extend', so this is not a breaking change. I couldn't find any extensions that refer to it anyway. Change-Id: I6676421222921b7bb1aeeefef79dd06072c1c2ac
* Merge "Fix $msg->params( getMockMessage( … ) ) not mocking inner message"jenkins-bot2024-06-161-1/+2
|\
| * Fix $msg->params( getMockMessage( … ) ) not mocking inner messageBartosz Dziewoński2024-06-131-1/+2
| | | | | | | | | | | | | | | | | | | | When using MediaWikiTestCaseTrait::getMockMessage(), if the mock message was passed as a parameter to another non-mock message, its format() method was called, which is private and can't be mocked, and causes "LogicException: Premature access to service container" in unit tests. Call the public toString() instead. Change-Id: I8718cf7890f05c09a6e5712ee3dc4d171a6637cf
* | Add "implements Stringable" to every class with "function __toString()"Bartosz Dziewoński2024-06-131-1/+1
|/ | | | | | | | | | | | | In PHP 8, but not in PHP 7.4, every class with a __toString() function implicitly implements the Stringable interface. Therefore, the behavior of checks like "instanceof Stringable" differs between these PHP versions when such classes are involved. Make every such class implement the interface so that the behavior will be consistent. The PHP 7.4 fallback for the Stringable interface is provided by symfony/polyfill-php80. Change-Id: I3f0330c2555c7d3bf99b654ed3c0b0303e257ea1
* Deprecate Message::objectParams() and related codeBartosz Dziewoński2024-05-282-1/+9
| | | | | | | | | | | | | | | | | | | | This functionality was introduced in 2021 (commit 349819dc5a) to support the addition of UserGroupMembershipParam, which was never used, and no other use case appeared. Its existence is now preventing us from allowing serializing of MessageValue objects as JSON (since the parameters can't be guaranteed to be serializable). Deprecate: * method: MessageValue::objectParams() * method: Message::objectParams() * method: Message::objectParam() * class: UserGroupMembershipParam * constant: ParamType::OBJECT * Passing Stringable objects to ScalarParam Change-Id: I492edabb7ea1d75774b45eb9fd18261b39963f9f
* Merge "Show overridden message keys when using &uselang=qqx"jenkins-bot2024-05-041-1/+14
|\
| * Show overridden message keys when using &uselang=qqxBartosz Dziewoński2024-04-301-1/+14
| | | | | | | | | | | | | | | | | | | | When displaying messages, the requested message key can be overridden by hooks such as 'MessageCacheFetchOverrides'. If this happened, display the overridden key when using &uselang=qqx, to help users and developers track down where a message is coming from. Bug: T363729 Change-Id: I81d814278ca810035066ce4632f617f30536f1ab
* | Don't use content language in Message::getTitle()Jon Harald Søby2024-05-011-1/+2
|/ | | | | | | | | | | | | | | Change the Message::getTitle() function to not use the wiki's content language when generating links to pages in the MediaWiki namespace. Message::getTitle() returns the uppercased version of the message name as a title object. For some languages, such as Azeri and Turkish, this can lead to some transformations we don't want. For instance, when you uppercase "i" in Azerbaijani, it becomes "İ" (dotted I), leading to links to "MediaWiki:İpbreason-dropdown" on Special:Block. Bug: T362654 Change-Id: Id37c226270c53352760790ddd461ca98920b5910
* Message: add strict type to protected Message::$languageC. Scott Ananian2024-04-101-4/+4
| | | | Change-Id: Idbb28719cc6561b236d47ca99ea2d217021981a8
* Message::inLanguage(): accept Bcp47Code as well as string and LanguageC. Scott Ananian2024-04-101-4/+10
| | | | | | | Bug: T327379 Followup-To: I982e0df706a633b05dcc02b5220b737c19adc401 Followup-To: I24932449b8c40e3a5072748d87667184f4befa67 Change-Id: Id99e5695bcfd347170cb4f2f80a557d189df6d44
* Standardise all our class alias deprecation comments for ease of greppingJames D. Forrester2024-03-191-1/+1
| | | | Change-Id: I7f85d931d3b79da23e87b4e5692b2e14be8fcaa0
* Merge "REST: Introduce trait for handling Status objects"jenkins-bot2024-03-121-3/+4
|\
| * REST: Introduce trait for handling Status objectsdaniel2024-03-121-3/+4
| | | | | | | | | | | | | | The new trait provides conveniance methods for logging and throwing errors based on StatusValue instances. Change-Id: Id7cbacb744bee79cd8a6f61291a26b36e6243053
* | message: Don't load user language when a specific language was requestedTim Starling2024-03-041-3/+35
|/ | | | | | | | | | | | | | | | | | | Message::setContext() called $context->getLanguage(), loading the user options from the database, which is unnecessary if Message::inLanguage() is called immediately afterwards. In a ResourceLoader module, RequestContext::getLanguage() throws an exception due to MW_NO_SESSION being defined. For example, an exception was thrown if any HTTP client error was encountered, since log message formatting includes a call to Message::setContext(). So defer the call to RequestContext::getLanguage() by having Message::setContext() make a closure which later fetches the language if necessary. Add an integration test which previously failed. Change-Id: I326c7e3a9492952d721fb52f1868ab9c1033e683
* Move Parser to Mediawiki\Parser namespaceSubramanya Sastry2024-02-161-1/+1
| | | | | | | | Bug: T166010 Co-Authored-By: Daimona Eaytoy <daimona.wiki@gmail.com> Co-Authored-By: James Forrester <jforrester@wikimedia.org> Co-Authored-By: Subramanya Sastry <ssastry@wikimedia.org> Change-Id: I79b4e732c45095eedbaa80afa5eb7479b387ed8a
* Namespace Message, move to appropriate directoryJames D. Forrester2024-02-144-3/+1593
| | | | | Bug: T353458 Change-Id: I088cbc53fbcdb974e5b05b45a62e91709dacc024
* user: Deprecate UserGroupMembership::getGroupMemberNameUmherirrender2022-12-211-0/+3
| | | | | | | | | | Add @since to the replacement code (349819d) Also notice UserGroupMembership::getGroupName in release notes, there was no entry in the deprecation commit fb4e7a8 Bug: T325673 Follow-Up: Ib4990f87d4ad70b7525d7aa05c8b97e90c121674 Change-Id: Iae3a26dbc0b95b0d4edb59f03126295fc67c856e
* Add Message/MessageValue user group member parameter typeTChin2021-11-161-0/+52
| | | | | | | * Added ParamType::OBJECT, which allows Stringable objects to be passed into MessageValue Bug: T278482 Change-Id: Ib4990f87d4ad70b7525d7aa05c8b97e90c121674
* UserNameUtils: use ITextFormatter instead of MessageLocalizerPetr Pchelko2020-04-132-4/+26
| | | | | Bug: T249045 Change-Id: Ica1e1e4788d4b9f9dfcf9f8c8b4136147d92b32e
* Coding style: Auto-fix MediaWiki.Classes.UnsortedUseStatements.UnsortedUseJames D. Forrester2020-01-101-1/+1
| | | | Change-Id: I94a0ae83c65e8ee419bbd1ae1e86ab21ed4d8210
* Coding style: Auto-fix MediaWiki.Comment.FunctionComment.*James D. Forrester2020-01-101-1/+1
| | | | Change-Id: Ia1b9b527f177d96c8b4a2dd658921b8557076f4a
* MediaWiki\Message: Extract Message↔MessageValue conversion from TextFormatterBrad Jorsch2019-11-263-45/+136
| | | | | | | | | | The Action API is going to need to convert between the two at various boundaries where it receives a Status from business logic. Also when we make HtmlFormatter and the like, that'll initially need the same conversion logic too. Change-Id: Id5b216b033718f3ef38bfd4be1715218ee07bb93
* Add missing @param and @return to documentationUmherirrender2019-11-101-0/+1
| | | | Change-Id: Ibc5849cc8ea7e7c4eb30ded9c1cfa5f52187c377
* TextFormatter: Remove a pointless type checkMax Semenik2019-10-071-15/+11
| | | | | | | The function signature guarantees that this parameter can't be of any other type. Change-Id: I08f80e3ae7515f21f88b7f1f4f395ddbbb7b70ab
* lib/Message: Support MessageValue as a parameterBrad Jorsch2019-08-301-5/+14
| | | | | | | Fixes an overstrict test in ListParam, and has TextFormatter convert to Message recursively where necessary. Change-Id: I387754b6857fbdeedea6afd222a2fdba1ebe1a9c
* MessageFormatterFactoryTim Starling2019-08-282-0/+103
An injectable service interface for message formatting, somewhat narrowed compared to Message. Only the text format is implemented in this framework so far, with getTextFormatter() returning a formatter that converts to the text format. Other formatters could be added to MessageFormatterFactory. Bug: T226598 Change-Id: Id053074c1dbcb692e8309fdca602f94a385bca0c