Commit graph

295 commits

Author SHA1 Message Date
Umherirrender
4e7f4c353d languages: Enforce namespace and special page aliases without spaces
Enforce underscores as used by the most languages in the namespace
aliases and special page aliases

Change-Id: I53d895f4b1d241954bd31973ad4996beed91bfb2
2023-03-17 20:57:43 +01:00
Amir E. Aharoni
4cebfd38b9 Update namespaces and special page aliases for Karakalpak
The changes are in namespaces, special page aliases, and link trails.

The orthography was changed in 2016, and letters with apostrophes were
changed into letters with acute accents.

The old namespace names and special page aliases are kept for
backwards compatibility.

There are also a few other changes:
* The namespaces "Help" and "Template" are updated
  to be consistent with translations.
* The namespace "File" is updated from "Image".
* The translation of the word "redirect" in special page aliases
  is made consistent with the message translations.
* Spelling fix in the alias for Special:Shortpages.

Discussed at
https://kaa.wikipedia.org/w/index.php?oldid=53261#Namespaces

Change-Id: Icbe80c572de40f48cb065df11316cc30c2000756
2023-01-03 13:20:08 +00:00
Stang
aa3fac56b4 Remove twn-related comment from languages/messages/* files
Bug: T304802
Change-Id: Iccacf6288d758e526c95df69861385a4ac2d0f55
2022-11-13 22:46:44 -05:00
Timo Tijhof
939700e8ff language: Continue doc Languages subgroup for msg files and subclasses
Follows-up I301f471f86ba2.

For ease of navigation, move Converter subclasses to a group called
"Languages", which for documentation purposes is a subgroup of
"Language". The next commit does the same for Messages* files,
and Language subclasses (done separately for ease of review).

Change-Id: If1cef9aa15f536ebaedd4477ad7453426e7f3b85
2022-06-29 00:13:45 +00:00
Thiemo Kreuz
5d08c94ef6 Make SpecialPageAliasTest more strict
The underscores are not strictly necessary, but appear to be good
practice. The vast majority of special page aliases we have already
use underscores (94% according to my test).

I made this a warning in the test for now, not an error.

Change-Id: I18827eb795f84bdb7895793d00bc3c895abebc7a
2022-05-13 18:06:00 +02:00
Umherirrender
673477a4b4 Sort special page alises alphabetically
Use @phpcs-require-sorted-array from new codesniffer release 32.0.0

Bug: T255826
Change-Id: I827d1f5010d000609324ec398beeb142d9bac299
2020-10-30 09:59:17 +01:00
Bartosz Dziewoński
0313128b10 Use PHP 7 "\u{NNNN}" Unicode codepoint escapes in string literals
In cases where we're operating on text data (and not binary data),
use e.g. "\u{00A0}" to refer directly to the Unicode character
'NO-BREAK SPACE' instead of "\xc2\xa0" to specify the bytes C2h A0h
(which correspond to the UTF-8 encoding of that character). This
makes it easier to look up those mysterious sequences, as not all
are as recognizable as the no-break space.

This is not enforced by PHP, but I think we should write those in
uppercase and zero-padded to at least four characters, like the
Unicode standard does.

Note that not all "\xNN" escapes can be automatically replaced:
* We can't use Unicode escapes for binary data that is not UTF-8
  (e.g. in code converting from legacy encodings or testing the
  handling of invalid UTF-8 byte sequences).
* '\xNN' escapes in regular expressions in single-quoted strings
  are actually handled by PCRE and have to be dealt with carefully
  (those regexps should probably be changed to use the /u modifier).
* "\xNN" referring to ASCII characters ("\x7F" and lower) should
  probably be left as-is.

The replacements in this commit were done semi-manually by piping
the existing "\xNN" escapes through the following terrible Ruby
script I devised:

  chars = eval('"' + ARGV[0] + '"').force_encoding('utf-8')
  puts chars.split('').map{|char|
    '\\u{' + char.ord.to_s(16).upcase.rjust(4, '0') + '}'
  }.join('')

Change-Id: Idc3dee3a7fb5ebfaef395754d8859b18f1f8769a
2018-06-04 16:20:13 +00:00
Bartosz Dziewoński
eb6bb6b7b9 Generalize non-digit-grouping of four-digit numbers
In some languages it's conventional not to insert a thousands
separator in numbers that are four digits long (1000-9999).
Rather than copy-paste the custom code to do this between 13 files,
introduce another option and have the base Language class handle it.

This also fixes an issue in several languages where this logic
previously would not work for negative or fractional numbers.

To implement this, a new option is added to MessagesXx.php files,
`$minimumGroupingDigits = 2;`, with the meaning as defined in
<http://unicode.org/reports/tr35/tr35-numbers.html>. It is a little
roundabout, but it could allow us to migrate the number formatting
(currently all custom code) to some generic library easily.

Bug: T177846
Change-Id: Iedd8de5648cf2de1c94044918626de2f96365d48
2018-01-02 11:17:25 +01:00
Fomafix
ce6f7faadd Remove trailing empty lines in PHP
Performed using
find . -name \*.php -exec sed -i -e :a -e '/./,$!d;/^\n*$/{$d;N;};/\n$/ba' {} \;

Change-Id: I5d0627f94c73690cf3a8a453539c22c760c2aa60
2017-01-16 22:06:43 +01:00
Kunal Mehta
6e9b4f0e9c Convert all array() syntax to []
Per wikitech-l consensus:
 https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html

Notes:
* Disabled CallTimePassByReference due to false positives (T127163)

Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
2016-02-17 01:33:00 -08:00
Mark A. Hershberger
97e9cdd2ef Remove references to Popularpages alias
The bit being removed here causes a NOTICE with HitCounters.

Change-Id: I318eb641d4ed4b50dea0a172cf7970045b3a49e7
2015-07-25 15:45:44 -04:00
Niklas Laxström
b382478944 Cleanup message file documentation
* Interface strings are now elsewhere
* MessagesQQQ no longer exists
* Prefer https for translatewiki.net

Change-Id: I76652ea94cca80441cd5d978029e4707ee41c4fd
2014-06-05 14:06:25 +00:00
Siebrand Mazeland
0dd91d5396 Migrate translations for core to JSON format
Largest patch set in the history of MediaWiki!

Change-Id: I918cfdc46c099017ca3622d1bcbbdd30c4fd00f6
2014-04-01 21:25:43 +00:00
Translation updater bot
8f2e73f9b3 Localisation updates from https://translatewiki.net.
Change-Id: I31ee0d1685cdf6b315cb5336b30e548c76d67a95
2014-03-26 20:37:55 +00:00
Translation updater bot
e14f84ab9c Localisation updates from https://translatewiki.net.
Change-Id: I18970accbce3b383e4ad89df2b5cd0d638861e26
2014-03-21 20:46:11 +00:00
Translation updater bot
f2a16ab59c Localisation updates from https://translatewiki.net.
Change-Id: I9ed903822cabaf2a845d01f1a68ee34ac444d980
2014-02-01 19:37:45 +00:00
Translation updater bot
4dd6a41af7 Localisation updates from https://translatewiki.net.
Change-Id: I78257c1482d2a8a5a36693082c3228a63d0f4b8f
2013-12-10 20:48:26 +00:00
Translation updater bot
9ffcc282ab Localisation updates from https://translatewiki.net.
Change-Id: Id4b89fcef61ccf1e329710f6beff9398669fdadb
2013-12-08 20:26:31 +00:00
Translation updater bot
4767a49bf9 Localisation updates from https://translatewiki.net.
Change-Id: Id32d5c87533081016e6a00312703f450782a1d6d
2013-12-07 10:46:45 +00:00
Translation updater bot
5531631535 Localisation updates from https://translatewiki.net.
Change-Id: I91af046a42d410457d6ccb6ce44657a29d184434
2013-12-05 21:22:40 +00:00
Translation updater bot
f3eacb22b9 Localisation updates from https://translatewiki.net.
Change-Id: Ic4c5e76d04630a9da5bde0590db09b55d30132ec
2013-12-04 20:29:19 +00:00
Siebrand Mazeland
87a4320444 Localisation updates from https://translatewiki.net.
Updates for translations of special page aliases.

Change-Id: I061d2f9c8f5b3f4df58060fae4101e340c68a04d
2013-12-02 09:38:25 +01:00
Translation updater bot
e7e842ad37 Localisation updates from https://translatewiki.net.
Change-Id: Iac7415ec17a0a30026e8c542f5ddd98d67b35d59
2013-11-24 20:26:31 +00:00
Translation updater bot
4484261325 Localisation updates from http://translatewiki.net.
Change-Id: I0eb353cd0cadf0bed7cd17d4c3eb2c7e108f6aa6
2013-11-20 21:03:52 +00:00
Translation updater bot
09519accc3 Localisation updates from http://translatewiki.net.
Change-Id: I5a74c20de10a3203ff81d453de6c739a8a476081
2013-11-18 06:37:41 +00:00
Brad Jorsch
db9c4cb3cf Remove linkprefix message, add $linkPrefixCharset
The existing "linkprefix" message is unlikely to be accurately
customized by message translators (as shown by the fact that, of the 10
distinct customizations prior to Iaa7eaa44 (which made them even more
complicated), 3 were broken or entirely ineffective, 1 was half
ineffective, and 2 more seem to have included the Latin-1 Supplement by
accident) or by local wiki admins. So, like linktrail before it, let's
move it out of the system messages and into a separate language
variable.

At the same time, let's make it a simple character set (like
$wgLegalTitleChars) rather than a complicated regular expression. The
complicated regex now lives in the parser.

This also adjusts the output of the API's action=query&meta=siteinfo and
adds an accessor parallel to the linkTrail accessor to Language.

Note the following changes that are not simply extracting the existing
charset from the linkprefix message for $linkPrefixCharset:
* The En message matched all non-ASCII UTF-8 characters by matching the
  component bytes (\\x80-\\xff). The new character set is equivalent.
* Various languages were identical to En and so have no $linkPrefixCharset
  set. These are: Ary Az Ce Ga Id Ka Kiu Km Ltg Mk Ms Ne Nn Ro Roa_tara Sc Si
  Sr_ec Sr_el Tl Tt_cyrl Tt_latn Ug_arab War
* Cu, Uk, and Udm are changed to match any number of „ or « in the prefix.
* Cv tried to include "«" that was redundant to the range \\x80-\\xff
  (see En comment). This was removed.
* Diq was entirely bogus, and so was removed.
* Gu included many additional UTF-8 characters that are redundant to the
  range \\x80-\\xff (see En comment). These were removed, and the
  resulting character set is equivalent to En.
* Mt has been broken since it was introduced in r37242. The charset used is
  equivalent to the broken regex.

Bug: 56031
Change-Id: I3369851b33113fc118a1bace38f3ac310cdd9725
2013-10-29 19:06:15 -04:00
Translation updater bot
ab65effabe Localisation updates from http://translatewiki.net.
Change-Id: I7d7dfd1a1e1a395c639b30489bacceedfbfc6330
2013-10-24 20:56:36 +00:00
Brad Jorsch
c800638273 Improve linkprefix regular expressions
The regular expression in the linkprefix message is run against the
entire page up to each wikilink, and is expected to capture one group
having everything except the prefix and another having only the prefix.
For long pages this winds up being a lot of text, so inefficient regular
expressions are going to cause problems.

The current regex is this:

  /^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD

This is not efficient: it will scan through the string trying to match
against every run of one or more letters/non-ASCII characters,
backtracking at every one except possibly the last. The only reason this
hasn't been a huge problem everywhere is because only a few languages
have this feature enabled.

This change replaces this with this regex:

  /^((?>.*(?<![a-zA-Z\\x80-\\xff])))(.+)$/sD

This is rather more efficient: it will grab the whole string (which is
actually fast even for huge strings), then back off character by
character until it finds one that isn't a letter/non-ASCII.

Note that the above could be simplified somewhat:

  /^((?>.*[^a-zA-Z\\x80-\\xff]|))(.+)$/sD

The performance improvement here is minor, and Gujarati, Church Slavic,
Udmurt, and Ukrainian would still need the other style for their current
implementations.

For Gujarati, we also use another regex trick: a look-behind assertion
in PCRE must be fixed length, so something like (?<!a|bb) won't work.
But that regex fragment is equivalent to (?<!a)(?<!bb) which is allowed,
so we use that instead.

Bug: 52865
Change-Id: Iaa7eaa446b3f045a9ce970affcb2a889f44bdefd
2013-10-24 09:44:33 +00:00
Translation updater bot
a78bddbee1 Localisation updates from http://translatewiki.net.
Change-Id: I922e660fafc7a952129beebeaed001712f5c2bc1
2013-10-21 19:42:49 +00:00
Translation updater bot
d4018551b0 Localisation updates from http://translatewiki.net.
Change-Id: I4f52889299ffc8ae8d49634fd8b36d73c66d8b5a
2013-09-07 19:47:58 +00:00
Translation updater bot
5f7a37f271 Localisation updates from http://translatewiki.net.
Change-Id: I5e7da5913a10c7f75cdf223f2166cc7873134949
2013-09-04 19:50:47 +00:00
Translation updater bot
e49190fd3e Localisation updates from http://translatewiki.net.
Change-Id: Iad6b538be6d172d232b8e593ff98faf3d5707abe
2013-08-18 19:39:15 +00:00
Translation updater bot
6a7f812143 Localisation updates from http://translatewiki.net.
Change-Id: I58a2089e69b39aba80162197b47b655b9dbac39b
2013-08-10 19:25:21 +00:00
Translation updater bot
73cb0b10ed Localisation updates from http://translatewiki.net.
Change-Id: Idfa4331722672da932fe8a124bc9618de0e31fea
2013-07-01 19:39:13 +00:00
Translation updater bot
55582fc211 Localisation updates from http://translatewiki.net.
Change-Id: I4e865f40a8c69fdc7520bd3a89ec61ca9af57337
2013-06-18 19:46:42 +00:00
Translation updater bot
cc7b23822a Localisation updates from http://translatewiki.net.
Change-Id: I599770c4c8b53d0d46c74f1426168a5c3d963a81
2013-06-12 19:14:13 +00:00
Translation updater bot
3154b26868 Localisation updates from http://translatewiki.net.
Change-Id: Ic862c638ed6ce33d3fe4dad9743c88136d832433
2013-05-20 12:08:40 +00:00
MatmaRex
8672dc7998 SpecialWatchlist: Page header cleanup
Format the three messages in header as one paragraph with three
sentences, instead of a paragraph and two split unordered lists with
one item each and inconsistent full stops.

Message changes: In 'wlheader-enotif' and 'wlheader-showupdated',
remove initial bullet point if present and add final full stop if
missing. First used the regexes below, then went through each language
file and manually changed the messages if applicable (e.g., Thai not
using full stops at all, Asian languages using '。', Devanagari
languages using '।' etc.)
  Find: ('wlheader-[^']+'\s*=>\s*)(['"])(?:\*\s*)?([\s\S]+?)\.?\2,\n
  Replace with: $1$2$3.$2,\n

Bug: 48615
Change-Id: I856f71f36d7f4b4baff5e968d88e4d3f7aeecce2
2013-05-19 17:53:14 +02:00
Translation updater bot
87c8cf4c71 Localisation updates from http://translatewiki.net.
Change-Id: Ie28bd2d1bce13b5a78eeb8573d8b5b9527b1afeb
2013-03-16 20:59:30 +00:00
Translation updater bot
80324ed926 Localisation updates from http://translatewiki.net.
Change-Id: If7185aa1d59b6c4207765127204270ce2bc91217
2013-01-25 20:08:39 +00:00
Translation updater bot
b8df7ed2d8 Localisation updates from http://translatewiki.net.
Change-Id: Ia14126efb5937b32606d7abb2334a6537eae8544
2013-01-11 20:13:24 +00:00
Translation updater bot
34b3630699 Localisation updates from http://translatewiki.net.
Change-Id: If3901d13b72f526be319d8626e3d101767eccdbc
2013-01-08 20:13:16 +00:00
Translation updater bot
ed19c2bdd4 Localisation updates from http://translatewiki.net.
Change-Id: Iecaef86923bb32e102dd69ec12651824565bc3ed
2012-12-16 20:36:18 +00:00
Translation updater bot
abdda85097 Localisation updates from http://translatewiki.net.
Change-Id: Ib22bb939459977f160056d83697434b5a456474b
2012-12-02 20:21:23 +00:00
Translation updater bot
67f448c364 Localisation updates from http://translatewiki.net.
Change-Id: Ie33d83a4d96477c2ed53bba8ee01bc760b980351
2012-10-28 21:04:20 +00:00
Translation updater bot
e118bada90 Localisation updates from http://translatewiki.net.
Change-Id: I1b2cf70c578511ef44a2381e506ee168cc57c7ec
2012-10-07 20:22:26 +00:00
Translation updater bot
6c84db2f8c Localisation updates from http://translatewiki.net.
Change-Id: I766bdb2f0fd630144b1bd56f0fa5135af8fbdf5d
2012-10-03 19:34:49 +00:00
Translation updater bot
f207729442 Localisation updates from http://translatewiki.net.
Change-Id: Icadd46b1444aae30f60f9348d570fea9b70f42e9
2012-05-21 19:55:05 +00:00
Translation updater bot
c3c43983c7 Localisation updates from http://translatewiki.net.
Change-Id: I6f811ac3d564cb4d114cdd03a1e4bb3fe833181c
2012-05-16 18:38:16 +00:00
Translation updater bot
8c5402e99f Localisation updates from http://translatewiki.net.
Change-Id: Ib40693a628c4ff0d7dab68c37af49e91e9c3583d
2012-05-12 16:21:11 +00:00