Page MenuHomePhabricator

Don't hardcode separation strings, make them configurable
Closed, ResolvedPublic

Description

Author: z9z8z-wps

Description:
Add a MediaWiki message to enable replacing the "|" as separation string.

MediaWiki currently displays an ASCII vertical bar to separate categories in articles and options on special pages. (The use of $7c for such purposes
has its origin in the 1980s when ASCII graphics were state of the art.) Users might like to replace it by a middle dot, comma+<space>, an extended
space, dash, or something else to match other lists in the wiki or just to make it more readable.

Same goes for the "<" which is used as back arrow for example on Spezial:Whatlinkshere and does not match the &larr; that is used in other places.


Version: unspecified
Severity: normal

Details

Reference
bz7509

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 9:28 PM
bzimport set Reference to bz7509.
bzimport added a subscriber: Unknown Object (MLST).

You can edit [[MediaWiki:catseparator]] to replace | with another separator.

"<" has no MediaWiki message, at least I cannot find one.

jimmy.collins wrote:

  1. Alredy exists: [[MediaWiki:catseparator]]
  1. Added [[MediaWiki:whatlinkshere-barrow]] in r16824.

z9z8z-wps wrote:

Thanks, I did not see the MediaWiki:catseparator. But ...

1a) It would be nice to have a way to enter the full separation string including the surrounding spaces to enable a comma separated list ("cat1,
cat2, cat3").

1b) The catseparator does not affect the separation bars on special pages (like "50 | 100 | 250 | 500").
grep "' | '" includes/*
should give an idea of where it is used.

ayg wrote:

It's a flaw in internationalization if there's any hardcoded punctuation or spacing at all.

I think that all above issues have been addressed. Any remaining issues? If no feedback is received within a month or so, this issue will be closed as FIXED.

z9z8z-wps wrote:

Would you care to explain how to configure the following hardcoded separation strings?

grep "' | '" mediawiki-1.13.1/includes/*

includes/GlobalFunctions.php: $nums = wfNumLink( $offset, 20, $title, $query ) . ' | ' .
includes/GlobalFunctions.php: wfNumLink( $offset, 50, $title, $query ) . ' | ' .
includes/GlobalFunctions.php: wfNumLink( $offset, 100, $title, $query ) . ' | ' .
includes/GlobalFunctions.php: wfNumLink( $offset, 250, $title, $query ) . ' | ' .
includes/Linker.php: return ' (' . implode( ' | ', $items ) . ')';
includes/PageHistory.php: $s .= ' (' . implode( ' | ', $tools ) . ')';
includes/Pager.php: $limits = implode( ' | ', $limitLinks );
includes/Pager.php: $extra .= ' | ';
includes/Pager.php: $limits = implode( ' | ', $limitLinks );
includes/SearchPostgres.php: $searchstring .= ' | ';
includes/Skin.php: $s .= ' | ' . $disclaimer;
includes/Skin.php: $s .= ' | ' . $privacy;
includes/Skin.php: $s .= ' | ' . $this->makeKnownLinkObj( $wgTitle,
includes/Skin.php: $s .= ' | '.$undelete;
includes/Skin.php: $subpages .= ' | ';
includes/Skin.php: "returnto={$rt}" ) . ' | ' .
includes/Skin.php: $s .= ' | ' . $this->makeKnownLink( wfMsgForContent( 'helppage' ),
includes/Skin.php: $s .= ' | ' . Xml::element( 'a',
includes/Skin.php: if ( ! $first ) { $s .= ' | '; }
includes/WatchlistEditor.php: . $link . ' (' . implode( ' | ', $tools ) . ')' . '</li>';
includes/WatchlistEditor.php: return implode( ' | ', $tools );

Fixed in r40953. Message "pipe-separator" was added. You should now be able to use a bullet as separator, for example.

Reverted in r40997. This made the code harder to read and maintain and more prone to error by requiring the non-trivial formula to remember a funky message option _every dang time_ the standard pipe separator is to be used.

SO what do you suggestion,(In reply to comment #9)

Reverted in r40997. This made the code harder to read and maintain and more
prone to error by requiring the non-trivial formula to remember a funky message
option _every dang time_ the standard pipe separator is to be used.

So what do you suggest, Brion? WONTFIX, or what alternative for r40953?

It's pretty much begging to be encapsulated into a Language method to take an array and make a list out of it. Comma-friendly and pipe-friendly versions, perhaps?

I added a Language::commaList() function as an example; a pipe version to encapsulate the other message would be spiffy.

Fixed in r47046 Related commits are r47028, r47040, r47044. Originally committed as r40953, which was reverted in r40977, because if was too verbose. Language::pipeList, and Language::commaList should have resolved that.