Page MenuHomePhabricator

patch.diff

Authored By
bzimport
Nov 21 2014, 10:24 PM
Size
120 KB
Referenced Files
None
Subscribers
None

patch.diff

diff -U 3 -H -b -w -B -E -d -t -r -N -- Cite r44396/Cite.i18n.php Cite my manual merge/Cite.i18n.php
--- Cite r44396/Cite.i18n.php 2008-12-04 10:00:18.000000000 +0000
+++ Cite my manual merge/Cite.i18n.php 2008-12-14 21:36:59.000000000 +0000
@@ -23,8 +23,6 @@
# User errors
'cite_error' => 'Cite error: $1',
- 'cite_error_ref_numeric_key' => 'Invalid <code>&lt;ref&gt;</code> tag;
-name cannot be a simple integer. Use a descriptive title',
'cite_error_ref_no_key' => 'Invalid <code>&lt;ref&gt;</code> tag;
refs with no content must have a name',
'cite_error_ref_too_many_keys' => 'Invalid <code>&lt;ref&gt;</code> tag;
@@ -44,31 +42,46 @@
'cite_error_references_no_text' => 'Invalid <code>&lt;ref&gt;</code> tag;
no text was provided for refs named <code>$1</code>',
'cite_error_included_ref' => 'Closing &lt;/ref&gt; missing for &lt;ref&gt; tag',
+ 'cite_error_references_nested' => 'Cite tags cannot be nested inside each other (ref was: $1)',
/*
Output formatting
*/
- 'cite_reference_link_key_with_num' => '$1_$2',
- # Ids produced by <ref>
+ # Ids produced by <ref> - note to be XHTML compliant, both of these prefixes start with [a-zA-Z] and are not empty.
'cite_reference_link_prefix' => 'cite_ref-',
'cite_reference_link_suffix' => '',
# Ids produced by <references>
'cite_references_link_prefix' => 'cite_note-',
'cite_references_link_suffix' => '',
- 'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
- 'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
- 'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
- 'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
+ 'cite_references_link_nearseparator' => ', ',
+ 'cite_references_link_farseparator' => '&ndash;',
+
+ 'cite_references_footnote_labels' => '* † ⁑ ‡ § ‖ ¶',
+
+ //The only alternative to hard-coding the style of the links in the text is to have four constants:
+ 'cite_reference_pre' => '<sup class="reference">',
+ 'cite_reference_post' => '</sup>',
+ 'cite_reference_pre_bracket' => '[',
+ 'cite_reference_post_bracket' => ']',
+ //These fit together to make the link as "pre[[bra...cket]]post" or "prebra[[...,...,...]]cketpost"
+
+ //Note that $4 is a new addition with footnotes, and is needed for the symbols to show up correctly.
+ 'cite_references_link_one' => '<li id="$1">$4[[#$2|↑]] $3</li>',
+ 'cite_references_link_many' => '<li id="$1">$4↑ $2 $3</li>',
+ 'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',//$2 holds <major.minor>, $3 alternate
# An item from this set is passed as $3 in the message above
'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
'cite_references_link_many_sep' => " ",
'cite_references_link_many_and' => " ",
+ 'cite_references_footnote_prefix' => '<div style="margin-left:-2em;width:1.5em;text-align:right;float:left;">$1</div>&nbsp;',
- # Although I could just use # instead of <li> above and nothing here that
+ # Although I could just use # instead of <li> above and nothing here, that
# will break on input that contains linebreaks
'cite_references_prefix' => '<ol class="references">',
'cite_references_suffix' => '</ol>',
+ 'cite_footnote_references_prefix' => '<ol class="references" style="list-style:none;margin-left: 3.2em;">',
+ 'cite_footnote_references_suffix' => '</ol>',
);
/** Message documentation (Message documentation)
@@ -81,7 +94,6 @@
$messages['qqq'] = array(
'cite_desc' => 'Extension description for cite. Shown in [[Special:Version]]. Do not translate or change tag names.',
'cite_error' => 'Cite extension. This is used when there are errors in ref or references tags. The parameter $1 is an error message.',
- 'cite_error_ref_numeric_key' => 'Cite extension. Error message shown if the name of a ref tag only contains digits. Examples that cause this error are <code>&lt;ref name="123" /&gt;</code> or <code>&lt;ref name="456"&gt;input&lt;/ref&gt;</code>',
'cite_error_ref_no_key' => 'Cite extension. Error message shown when ref tags without any content (that is <code>&lt;ref/&gt;</code>) are used without a name.',
'cite_error_ref_too_many_keys' => 'Cite extension. Error message shown when ref tags has parameters other than name. Examples that cause this error are <code>&lt;ref name="name" notname="value" /&gt;</code> or <code>&lt;ref notname="value" &gt;input&lt;ref&gt;</code>',
'cite_error_ref_no_input' => 'Cite extension. Error message shown when ref tags without names have no content. An example that cause this error is <code>&lt;ref&gt;&lt;/ref&gt;</code>',
@@ -113,7 +125,6 @@
'cite_error_key_str_invalid' => 'Error interna; $str y/u $key no conforme(s). Isto no abría d\'escaizer nunca.',
'cite_error_stack_invalid_input' => "Error interna; clau de pila no conforme. Isto no abría d'escaizer nunca.",
'cite_error' => 'Error en a zita: $1',
- 'cite_error_ref_numeric_key' => "Etiqueta <code>&lt;ref&gt;</code> incorreuta; o nombre d'a etiqueta no puede estar un numero entero, faiga serbir un títol descriptibo",
'cite_error_ref_no_key' => 'Etiqueta <code>&lt;ref&gt;</code> incorreuta; as referenzias sin de conteniu han de tener un nombre',
'cite_error_ref_too_many_keys' => 'Etiqueta <code>&lt;ref&gt;</code> incorreuta; nombres de parametros incorreutos.',
'cite_error_ref_no_input' => 'Etiqueta <code>&lt;ref&gt;</code> incorreuta; as referenzias sin nombre no han de tener conteniu',
@@ -140,8 +151,6 @@
مفتاح ستاك غير صحيح.
هذا لا يجب أن يحدث أبدا.',
'cite_error' => 'خطأ استشهاد: $1',
- 'cite_error_ref_numeric_key' => 'وسم <code>&lt;ref&gt;</code> غير صحيح؛
-الاسم لا يمكن أن يكون عددا صحيحا بسيطا. استخدم عنوانا وصفيا',
'cite_error_ref_no_key' => 'وسم <code>&lt;ref&gt;</code> غير صحيح؛
المراجع غير ذات المحتوى يجب أن تمتلك اسما',
'cite_error_ref_too_many_keys' => 'وسم <code>&lt;ref&gt;</code> غير صحيح؛
@@ -179,8 +188,6 @@
مفتاح ستاك مش صحيح.
ده لازم مايحصلش ابدا',
'cite_error' => 'المرجع غلط: $1',
- 'cite_error_ref_numeric_key' => 'التاج <code>&lt;ref&gt;</code> مش صحيح؛
-الاسم ماينفعش يكون عدد صحيح بسيط. استخدم عنوان بيوصف',
'cite_error_ref_no_key' => 'التاج <code>&lt;ref&gt;</code> مش صحيح؛
المراجع اللى من غير محتوى لازميكون ليها اسم',
'cite_error_ref_too_many_keys' => 'التاج <code>&lt;ref&gt;</code> مش صحيح؛
@@ -212,7 +219,6 @@
'cite_error_key_str_invalid' => 'Error internu; $str y/o $key non válidos. Esto nun habría asoceder nunca.',
'cite_error_stack_invalid_input' => 'Error internu; clave de pila non válida. Esto nun habría asoceder nunca.',
'cite_error' => 'Error de cita: $1',
- 'cite_error_ref_numeric_key' => 'Etiqueta <code>&lt;ref&gt;</code> non válida; el nome nun pue ser un enteru simple, usa un títulu descriptivu',
'cite_error_ref_no_key' => 'Etiqueta <code>&lt;ref&gt;</code> non válida; les referencies ensin conteníu han tener un nome',
'cite_error_ref_too_many_keys' => 'Etiqueta <code>&lt;ref&gt;</code> non válida; nomes non válidos (p.ex. demasiaos)',
'cite_error_ref_no_input' => 'Etiqueta <code>&lt;ref&gt;</code> non válida; les referencies ensin nome han tener conteníu',
@@ -242,8 +248,6 @@
نامعتربین دسته کلیت.
شی نبایدن هچ وهد پیش کیت.',
'cite_error' => 'حطا ارجاع: $1',
- 'cite_error_ref_numeric_key' => 'نامعتبر <code>&lt;ref&gt;</code>تگ;
-نام یک سادگین هوری نه نه بیت. یک توضیحی عنوانی استفاده کنیت',
'cite_error_ref_no_key' => 'نامعتبر<code>&lt;ref&gt;</code>تگ;
مراجع بی محتوا بایدن نامی داشته بنت',
'cite_error_ref_too_many_keys' => 'نامعتبر<code>&lt;ref&gt;</code>تگ;
@@ -280,7 +284,6 @@
'cite_error_key_str_invalid' => 'Вътрешна грешка: невалиден параметър $str и/или $key. Това не би трябвало да се случва никога.',
'cite_error_stack_invalid_input' => "'''Вътрешна грешка:''' невалиден ключ на стека. Това не би трябвало да се случва никога.",
'cite_error' => 'Грешка при цитиране: $1',
- 'cite_error_ref_numeric_key' => "'''Грешка в етикет <code>&lt;ref&gt;</code>:''' името не може да бъде число, използва се описателно име",
'cite_error_ref_no_key' => "'''Грешка в етикет <code>&lt;ref&gt;</code>:''' етикетите без съдържание трябва да имат име",
'cite_error_ref_too_many_keys' => "'''Грешка в етикет <code>&lt;ref&gt;</code>:''' грешка в името, например повече от едно име на етикета",
'cite_error_ref_no_input' => "'''Грешка в етикет <code>&lt;ref&gt;</code>:''' етикетите без име трябва да имат съдържание",
@@ -304,7 +307,6 @@
'cite_error_key_str_invalid' => 'আভ্যন্তরীন ত্রুটি; অবৈধ $str এবং/অথবা $key। এটা কখনই ঘটা উচিত নয়।',
'cite_error_stack_invalid_input' => 'আভ্যন্তরীন ত্রুটি; অবৈধ স্ট্যাক কি। এটা কখনই ঘটা উচিত নয়।',
'cite_error' => 'উদ্ধৃতি ত্রুটি: $1',
- 'cite_error_ref_numeric_key' => 'অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; নাম কোন সরল পূর্ণসংখ্যা হতে পারবেনা, একটি বিবরণমূলক শিরোনাম ব্যবহার করুন',
'cite_error_ref_no_key' => 'অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; বিষয়বস্তুহীন refসমূহের অবশ্যই নাম থাকতে হবে',
'cite_error_ref_too_many_keys' => 'অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; অবৈধ নাম (যেমন- সংখ্যাতিরিক্ত)',
'cite_error_ref_no_input' => 'অবৈধ <code>&lt;ref&gt;</code> ট্যাগ; নামবিহীন refসমূহের অবশ্যই বিষয়বস্তু থাকতে হবে',
@@ -327,8 +329,6 @@
alc'hwez pil direizh.
Ne zlefe ket c'hoarvezout gwezh ebet.",
'cite_error' => 'Fazi arroud : $1',
- 'cite_error_ref_numeric_key' => "Fazi implijout ar valizenn <code>&lt;ref&gt;</code> ;
-n'hall ket an anv bezañ un niver anterin. Grit gant un titl deskrivus",
'cite_error_ref_no_key' => "Fazi implijout ar valizenn <code>&lt;ref&gt;</code> ;
ret eo d'an daveennoù goullo kaout un anv",
'cite_error_ref_too_many_keys' => 'Fazi implijout ar valizenn <code>&lt;ref&gt;</code> ;
@@ -373,8 +373,6 @@
el valor d'emmagatzematge no és vàlid.
Aquesta situació no s'hauria de donar mai.",
'cite_error' => 'Error de cita: $1',
- 'cite_error_ref_numeric_key' => 'Etiqueta <code>&lt;ref&gt;</code> no vàlida;
-el nom no pot ser un nombre. Empreu una paraula o un títol descriptiu',
'cite_error_ref_no_key' => 'Etiqueta <code>&lt;ref&gt;</code> no vàlida;
les refs sense contingut han de tenir nom',
'cite_error_ref_too_many_keys' => 'Etiqueta <code>&lt;ref&gt;</code> no vàlida;
@@ -405,7 +403,6 @@
'cite_error_key_str_invalid' => 'Vnitřní chyba; neplatný $str',
'cite_error_stack_invalid_input' => 'Vnitřní chyba; neplatný klíč zásobníku',
'cite_error' => 'Chybná citace $1',
- 'cite_error_ref_numeric_key' => 'Chyba v tagu <code>&lt;ref&gt;</code>; názvem nesmí být prosté číslo, použijte popisné označení',
'cite_error_ref_no_key' => 'Chyba v tagu <code>&lt;ref&gt;</code>; prázdné citace musí obsahovat název',
'cite_error_ref_too_many_keys' => 'Chyba v tagu <code>&lt;ref&gt;</code>; chybné názvy, např. je jich příliš mnoho',
'cite_error_ref_no_input' => 'Chyba v tagu <code>&lt;ref&gt;</code>; citace bez názvu musí mít vlastní obsah',
@@ -439,8 +436,6 @@
Allwedd pentwr annilys.
Ni ddylai hyn fyth ddigwydd.',
'cite_error' => 'Gwall cyfeirio: $1',
- 'cite_error_ref_numeric_key' => 'Tag <code>&lt;ref&gt;</code> annilys;
-ni all enw fod yn rif yn unig. Defnyddiwch deitl disgrifiadol.',
'cite_error_ref_no_key' => 'Tag <code>&lt;ref&gt;</code> annilys;
rhaid i dagiau ref sydd heb gynnwys iddynt gael enw',
'cite_error_ref_too_many_keys' => 'Tag <code>&lt;ref&gt;</code> annilys;
@@ -462,7 +457,6 @@
'cite_error_key_str_invalid' => 'Intern fejl: Ugyldig $str og/eller $key. Dette burde aldrig forekomme.',
'cite_error_stack_invalid_input' => 'Intern fejl: Ugyldig staknøgle. Dette burde aldrig forekomme.',
'cite_error' => 'Fodnotefejl: $1',
- 'cite_error_ref_numeric_key' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag; "name" kan ikke være et simpelt heltal, brug en beskrivende titel',
'cite_error_ref_no_key' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag: Et <code>&lt;ref&gt;</code>-tag uden indhold skal have et navn',
'cite_error_ref_too_many_keys' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag: Ugyldige navne, fx for mange',
'cite_error_ref_no_input' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag: Et <code>&lt;ref&gt;</code>-tag uden navn skal have indhold',
@@ -481,7 +475,6 @@
'cite_error_key_str_invalid' => 'Interner Fehler: ungültiger $str und/oder $key. Dies sollte eigentlich gar nicht passieren können.',
'cite_error_stack_invalid_input' => 'Interner Fehler: ungültiger „name“-stack. Dies sollte eigentlich gar nicht passieren können.',
'cite_error' => 'Referenz-Fehler: $1',
- 'cite_error_ref_numeric_key' => 'Ungültige <tt>&lt;ref&gt;</tt>-Verwendung: „name“ darf kein reiner Zahlenwert sein, benutze einen beschreibenden Namen.',
'cite_error_ref_no_key' => 'Ungültige <tt>&lt;ref&gt;</tt>-Verwendung: „ref“ ohne Inhalt muss einen Namen haben.',
'cite_error_ref_too_many_keys' => 'Ungültige <tt>&lt;ref&gt;</tt>-Verwendung: „name“ ist ungültig oder zu lang.',
'cite_error_ref_no_input' => 'Ungültige <tt>&lt;ref&gt;</tt>-Verwendung: „ref“ ohne Namen muss einen Inhalt haben.',
@@ -497,7 +490,6 @@
* @author Raimond Spekking
*/
$messages['de-formal'] = array(
- 'cite_error_ref_numeric_key' => 'Ungültige <tt>&lt;ref&gt;</tt>-Verwendung: „name“ darf kein reiner Zahlenwert sein, benutzen Sie einen beschreibenden Namen.',
'cite_error_references_invalid_input' => 'Ungültige <tt>&lt;references&gt;</tt>-Verwendung: Es ist kein zusätzlicher Text erlaubt, verwenden Sie ausschließlich <tt><nowiki><references /></nowiki></tt>.',
'cite_error_references_invalid_parameters' => 'Ungültige <tt>&lt;references&gt;</tt>-Verwendung: Es sind keine zusätzlichen Parameter erlaubt, verwenden Sie ausschließlich <tt><nowiki><references /></nowiki></tt>.',
);
@@ -532,8 +524,6 @@
nevalida staka ŝlosilo.
Ĉi tio verŝajne neniam okazus.',
'cite_error' => 'Citaĵa eraro: $1',
- 'cite_error_ref_numeric_key' => 'Nevalida etikedo <code>&lt;ref&gt;</code>;
-nomo ne povas esti simpla entjero. Uzu priskriban titolon.',
'cite_error_ref_no_key' => "Nevalida etikedo <code>&lt;ref&gt;</code>;
''ref'' kun nenia enhava nomo devas havi nomon",
'cite_error_ref_too_many_keys' => 'Nevalida etikedo <code>&lt;ref&gt;</code>;
@@ -568,8 +558,6 @@
la clave de la pila no es válida.
Esto nunca debe ocurrir.',
'cite_error' => 'Error en la cita: $1',
- 'cite_error_ref_numeric_key' => 'El elemento <code>&lt;ref&gt;</code> no es válido;
-el nombre no puede ser un número entero simple. Use un título descriptivo',
'cite_error_ref_no_key' => 'El elemento <code>&lt;ref&gt;</code> no es válido;
las referencias sin contenido deben tener un nombre',
'cite_error_ref_too_many_keys' => 'El elemento <code>&lt;ref&gt;</code> no es válido;
@@ -600,7 +588,6 @@
'cite_error_key_str_invalid' => 'خطای داخلی؛ $str و/یا $key غیر مجاز. این خطا نباید هرگز رخ دهد.',
'cite_error_stack_invalid_input' => 'خطای داخلی؛ کلید پشته غیرمجاز. این خطا نباید هرگز رخ دهد.',
'cite_error' => 'خطای یادکرد: $1',
- 'cite_error_ref_numeric_key' => 'برچسب <code><ref></code> غیرمجاز؛ نام نمی‌تواند یک عدد باشد. عنوان واضح‌تری را برگزینید',
'cite_error_ref_no_key' => 'برچسب <code><ref></code> غیرمجاز؛ یادکردهای بدون محتوا باید نام داشته باشند',
'cite_error_ref_too_many_keys' => 'برچسب <code><ref></code> غیرمجاز؛ نام‌های غیرمجاز یا بیش از اندازه',
'cite_error_ref_no_input' => 'برچسب <code><ref></code> غیرمجاز؛ یادکردهای بدون نام باید محتوا داشته باشند',
@@ -625,7 +612,6 @@
'cite_error_key_str_invalid' => 'Sisäinen virhe: kelpaamaton $str ja/tai $key.',
'cite_error_stack_invalid_input' => 'Sisäinen virhe: kelpaamaton pinoavain.',
'cite_error' => 'Viittausvirhe: $1',
- 'cite_error_ref_numeric_key' => 'Kelpaamaton <code>&lt;ref&gt;</code>-elementti: nimi ei voi olla numero – käytä kuvaavampaa nimeä.',
'cite_error_ref_no_key' => 'Kelpaamaton <code>&lt;ref&gt;</code>-elementti: sisällöttömille refeille pitää määrittää nimi.',
'cite_error_ref_too_many_keys' => 'Kelpaamaton <code>&lt;ref&gt;</code>-elementti: virheelliset nimet, esim. liian monta',
'cite_error_ref_no_input' => 'Kelpaamaton <code>&lt;ref&gt;</code>-elementti: viitteillä ilman nimiä täytyy olla sisältöä',
@@ -652,8 +638,6 @@
clé de pile incorrecte.
Ceci ne devrait jamais se produire.',
'cite_error' => 'Erreur de citation : $1',
- 'cite_error_ref_numeric_key' => 'Balise <code>&lt;ref&gt;</code> incorrecte ;
-Le nom ne peut être un entier simple. Utilisez un titre descriptif.',
'cite_error_ref_no_key' => 'Balise <code>&lt;ref&gt;</code> incorrecte ;
les références sans contenu doivent avoir un nom.',
'cite_error_ref_too_many_keys' => 'Balise <code>&lt;ref&gt;</code> incorrecte ;
@@ -683,7 +667,6 @@
'cite_error_key_str_invalid' => 'Èrror de dedens ; $str atendua.',
'cite_error_stack_invalid_input' => 'Èrror de dedens ; cllâf de pila envalida.',
'cite_error' => 'Èrror de citacion $1',
- 'cite_error_ref_numeric_key' => 'Apèl envalido ; cllâf pas entègrâla atendua.',
'cite_error_ref_no_key' => 'Apèl envalido ; niona cllâf spècefiâ.',
'cite_error_ref_too_many_keys' => 'Apèl envalido ; cllâfs envalides, per ègzemplo, trop de cllâfs spècefiâs ou ben cllâf fôssa.',
'cite_error_ref_no_input' => 'Apèl envalido ; niona entrâ spècefiâ.',
@@ -704,8 +687,6 @@
'cite_error_key_str_invalid' => 'Erro interno; $str e/ou $key inválidos. Isto non debera ocorrer.',
'cite_error_stack_invalid_input' => 'Erro interno; stack key inválido. Isto non debera ocorrer.',
'cite_error' => 'Erro no código da cita: $1',
- 'cite_error_ref_numeric_key' => 'etiqueta <code>&lt;ref&gt;</code> non válida;
-o nome non pode ser un simple entero: use un título descritivo',
'cite_error_ref_no_key' => 'etiqueta <code>&lt;ref&gt;</code> non válida;
as referencias que non teñan contido deben ter un nome',
'cite_error_ref_too_many_keys' => 'etiqueta <code>&lt;ref&gt;</code> non válida;
@@ -747,7 +728,6 @@
'cite_error_key_str_invalid' => 'שגיאה פנימית; $str ו/או $key שגויים. זהו באג בתוכנה.',
'cite_error_stack_invalid_input' => 'שגיאה פנימית; מפתח שגוי במחסנית. זהו באג בתוכנה.',
'cite_error' => 'שגיאת ציטוט: $1',
- 'cite_error_ref_numeric_key' => 'תגית <code>&lt;ref&gt;</code> שגויה; שם לא יכול להיות מספר פשוט, יש להשתמש בכותרת תיאורית',
'cite_error_ref_no_key' => 'תגית <code>&lt;ref&gt;</code> שגויה; להערות שוליים ללא תוכן חייב להיות שם',
'cite_error_ref_too_many_keys' => 'תגית <code>&lt;ref&gt;</code> שגויה; שמות שגויים, למשל, רבים מדי',
'cite_error_ref_no_input' => 'תגית <code>&lt;ref&gt;</code> שגויה; להערות שוליים ללא שם חייב להיות תוכן',
@@ -772,7 +752,6 @@
ऐसा होना नहीं चाहियें।',
'cite_error_stack_invalid_input' => 'आंतर्गत गलती; गलत स्टॅक की। ऐसा होना नहीं चाहियें।',
'cite_error' => 'गलती उद्घृत करें: $1',
- 'cite_error_ref_numeric_key' => '<code>&lt;ref&gt;</code> गलत कोड; नाम यह पूर्णांकी संख्या नहीं हो सकता, कृपया माहितीपूर्ण शीर्षक दें',
'cite_error_ref_no_key' => '<code>&lt;ref&gt;</code> गलत कोड; खाली संदर्भोंको नाम होना आवश्यक हैं',
'cite_error_ref_too_many_keys' => '<code>&lt;ref&gt;</code> गलत कोड; गलत नाम, उदा. ढेर सारी',
'cite_error_ref_no_input' => '<code>&lt;ref&gt;</code> गलत कोड; नाम ना होने वाले संदर्भोंमें ज़ानकारी देना आवश्यक हैं',
@@ -794,7 +773,6 @@
'cite_error_key_str_invalid' => 'Unutrašnja greška: loš $str i/ili $key. Ovo se nikada ne bi smjelo dogoditi.',
'cite_error_stack_invalid_input' => 'Unutrašnja greška; loš ključ stacka. Ovo se nikada ne bi smjelo dogoditi.',
'cite_error' => 'Greška u citiranju: $1',
- 'cite_error_ref_numeric_key' => 'Loša <code>&lt;ref&gt;</code> oznaka; naziv ne smije biti jednostavni broj, koristite opisni naziv',
'cite_error_ref_no_key' => 'Loša <code>&lt;ref&gt;</code> oznaka; ref-ovi bez sadržaja moraju imati naziv',
'cite_error_ref_too_many_keys' => 'Loša <code>&lt;ref&gt;</code> oznaka; loš naziv, npr. previše naziva',
'cite_error_ref_no_input' => 'Loša <code>&lt;ref&gt;</code> oznaka; ref-ovi bez imena moraju imati sadržaj',
@@ -818,7 +796,6 @@
'cite_error_key_str_invalid' => 'Interny zmylk: njepłaćiwy $str a/abo $key. To njeměło ženje wustupić.',
'cite_error_stack_invalid_input' => 'Interny zmylk; njepłaćiwy kluč staploweho składa. To njeměło ženje wustupić.',
'cite_error' => 'Referencny zmylk: $1',
- 'cite_error_ref_numeric_key' => 'Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; "name" njesmě jednora hódnota integer być, wužij wopisowace mjeno.',
'cite_error_ref_no_key' => 'Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; "ref" bjez wobsaha dyrbi mjeno měć.',
'cite_error_ref_too_many_keys' => 'Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; njepłaćiwe mjena, na př. předołho',
'cite_error_ref_no_input' => 'Njepłaćiwe wužiwanje taflički <code>&lt;ref&gt;</code>; "ref" bjez mjena dyrbi wobsah měć',
@@ -846,7 +823,6 @@
kle pil an pa bon ditou.
Sa pa te dwe janm rive',
'cite_error' => 'Erè nan sitasyon : $1',
- 'cite_error_ref_numeric_key' => 'Apèl ou fè an pa bon ; se kle ki pa entegral, ki pat long nou tap tann',
'cite_error_ref_no_key' => 'Apèl sa pa bon : nou pa bay pyès kle',
'cite_error_ref_too_many_keys' => 'Apèl ou fè an pa bon ; kle yo pa bon, pa egzanp, nou bay twòp kle oubyen kle yo pa bon oubyen nou pa byen rantre yo nan sistèm an.',
'cite_error_ref_no_input' => 'Apèl ou fè an pa bon ; ou pa presize pyès antre',
@@ -872,7 +848,6 @@
'cite_error_key_str_invalid' => 'Belső hiba; érvénytelen $str és/vagy $key. Ennek soha nem kellene előfordulnia.',
'cite_error_stack_invalid_input' => 'Belső hiba; érvénytelen kulcs. Ennek soha nem kellene előfordulnia.',
'cite_error' => 'Hiba a forráshivatkozásban: $1',
- 'cite_error_ref_numeric_key' => 'Érvénytelen <code>&lt;ref&gt;</code> tag; a name értéke nem lehet csupán egy szám, használj leíró címeket',
'cite_error_ref_no_key' => 'Érvénytelen <code>&lt;ref&gt;</code> tag; a tartalom nélküli ref-eknek kötelező nevet (name) adni',
'cite_error_ref_too_many_keys' => 'Érvénytelen <code>&lt;ref&gt;</code> tag; hibás nevek, pl. túl sok',
'cite_error_ref_no_input' => 'Érvénytelen <code>&lt;ref&gt;</code> tag; a név (name) nélküli ref-eknek adni kell valamilyen tartalmat',
@@ -897,8 +872,6 @@
clave de pila invalide.
Isto non deberea jammais occurrer.',
'cite_error' => 'Error de citation: $1',
- 'cite_error_ref_numeric_key' => 'Etiquetta <code>&lt;ref&gt;</code> invalide;
-le nomine non pote esser un numero integre. Usa un titulo descriptive',
'cite_error_ref_no_key' => 'Etiquetta <code>&lt;ref&gt;</code> invalide;
le refs sin contento debe haber un nomine',
'cite_error_ref_too_many_keys' => 'Etiquetta <code>&lt;ref&gt;</code> invalide;
@@ -930,7 +903,6 @@
'cite_error_key_str_invalid' => 'Kesalahan internal; $str tak sah',
'cite_error_stack_invalid_input' => 'Kesalahan internal; kunci stack tak sah',
'cite_error' => 'Kesalahan pengutipan $1',
- 'cite_error_ref_numeric_key' => 'Kesalahan pemanggilan; diharapkan suatu kunci non-integer',
'cite_error_ref_no_key' => 'Kesalahan pemanggilan; tidak ada kunci yang dispesifikasikan',
'cite_error_ref_too_many_keys' => 'Kesalahan pemanggilan; kunci tak sah, contohnya karena terlalu banyak atau tidak ada kunci yang dispesifikasikan',
'cite_error_ref_no_input' => 'Kesalahan pemanggilan; tidak ada masukan yang dispesifikasikan',
@@ -955,7 +927,6 @@
'cite_error_key_str_invalid' => 'Errore interno: $str errato',
'cite_error_stack_invalid_input' => 'Errore interno: chiave di stack errata',
'cite_error' => 'Errore nella funzione Cite $1',
- 'cite_error_ref_numeric_key' => "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: il nome non può essere un numero intero. Usare un titolo esteso",
'cite_error_ref_no_key' => "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: i ref vuoti non possono essere privi di nome",
'cite_error_ref_too_many_keys' => "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: nomi non validi (ad es. numero troppo elevato)",
'cite_error_ref_no_input' => "Errore nell'uso del marcatore <code>&lt;ref&gt;</code>: i ref privi di nome non possono essere vuoti",
@@ -981,7 +952,6 @@
'cite_error_key_str_invalid' => '内部エラー; 無効な $str',
'cite_error_stack_invalid_input' => '内部エラー; 無効なスタックキー',
'cite_error' => '引用エラー $1',
- 'cite_error_ref_numeric_key' => '無効な <code>&lt;ref&gt;</code> タグ: 名前に単純な数値は使用できません。',
'cite_error_ref_no_key' => '無効な <code>&lt;ref&gt;</code> タグ: 引用句の内容がない場合には名前 (<code>name</code> 属性)が必要です',
'cite_error_ref_too_many_keys' => '無効な <code>&lt;ref&gt;</code> タグ: 無効な名前(多すぎる、もしくは誤った指定)',
'cite_error_ref_no_input' => '無効な <code>&lt;ref&gt;</code> タグ: 名前 (<code>name</code> 属性)がない場合には引用句の内容が必要です',
@@ -1002,7 +972,6 @@
'cite_error_key_str_invalid' => 'Intern fejl: Ugyldeg $str og/æller $key. Dette burde aldreg førekåm.',
'cite_error_stack_invalid_input' => 'Intern fejl: Ugyldeg staknøgle. Dette burde aldreg førekåm.',
'cite_error' => 'Fodnåtfejl: $1',
- 'cite_error_ref_numeric_key' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag; "name" kan ikke være et simpelt heltal, brug en beskrivende titel',
'cite_error_ref_no_key' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag: Et <code>&lt;ref&gt;</code>-tag uden indhold skal have et navn',
'cite_error_ref_too_many_keys' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag: Ugyldege navne, fx før mange',
'cite_error_ref_no_input' => 'Ugyldigt <code>&lt;ref&gt;</code>-tag: Et <code>&lt;ref&gt;</code>-tag uden navn skal have indhold',
@@ -1026,8 +995,6 @@
stack key ora absah.
Iki samesthine ora kadadéan.',
'cite_error' => 'Kaluputan sitat (pangutipan) $1',
- 'cite_error_ref_numeric_key' => 'Tag <code>&lt;ref&gt;</code> ora absah;
-jenengé ora bisa namung angka integer waé. Gunakna irah-irahan (judhul) dèskriptif',
'cite_error_ref_no_key' => 'Tag <code>&lt;ref&gt;</code> ora absah;
refs tanpa isi kudu duwé jeneng',
'cite_error_ref_too_many_keys' => 'Tag <code>&lt;ref&gt;</code> ora absah;
@@ -1055,7 +1022,6 @@
'cite_error_key_str_invalid' => 'ٸشكٸ قاتە; جارامسىز $str',
'cite_error_stack_invalid_input' => 'ٸشكٸ قاتە; جارامسىز ستەك كٸلتٸ',
'cite_error' => 'دٵيەكسٶز الۋ $1 قاتەسٸ',
- 'cite_error_ref_numeric_key' => 'جارامسىز <code>&lt;ref&gt;</code> بەلگٸشەسٸ; اتاۋ كٵدٸمگٸ بٷتٸن سان بولۋى مٷمكٸن ەمەس, سيپپاتاۋىش اتاۋ قولدانىڭىز',
'cite_error_ref_no_key' => 'جارامسىز <code>&lt;ref&gt;</code> بەلگٸشەسٸ; ماعلۇماتسىز تٷسٸنٸكتەمەلەردە اتاۋ بولۋى قاجەت',
'cite_error_ref_too_many_keys' => 'جارامسىز <code>&lt;ref&gt;</code> بەلگٸشە; جارامسىز اتاۋلار, مىسالى, تىم كٶپ',
'cite_error_ref_no_input' => 'جارامسىز <code>&lt;ref&gt;</code> بەلگٸشە; اتاۋسىز تٷسٸنٸكتەمەلەردە ماعلۇماتى بولۋى قاجەت',
@@ -1070,7 +1036,6 @@
'cite_error_key_str_invalid' => 'Ішкі қате; жарамсыз $str',
'cite_error_stack_invalid_input' => 'Ішкі қате; жарамсыз стек кілті',
'cite_error' => 'Дәйексөз алу $1 қатесі',
- 'cite_error_ref_numeric_key' => 'Жарамсыз <code>&lt;ref&gt;</code> белгішесі; атау кәдімгі бүтін сан болуы мүмкін емес, сиппатауыш атау қолданыңыз',
'cite_error_ref_no_key' => 'Жарамсыз <code>&lt;ref&gt;</code> белгішесі; мағлұматсыз түсініктемелерде атау болуы қажет',
'cite_error_ref_too_many_keys' => 'Жарамсыз <code>&lt;ref&gt;</code> белгіше; жарамсыз атаулар, мысалы, тым көп',
'cite_error_ref_no_input' => 'Жарамсыз <code>&lt;ref&gt;</code> белгіше; атаусыз түсініктемелерде мағлұматы болуы қажет',
@@ -1085,7 +1050,6 @@
'cite_error_key_str_invalid' => 'İşki qate; jaramsız $str',
'cite_error_stack_invalid_input' => 'İşki qate; jaramsız stek kilti',
'cite_error' => 'Däýeksöz alw $1 qatesi',
- 'cite_error_ref_numeric_key' => 'Jaramsız <code>&lt;ref&gt;</code> belgişesi; ataw kädimgi bütin san bolwı mümkin emes, sïppatawış ataw qoldanıñız',
'cite_error_ref_no_key' => 'Jaramsız <code>&lt;ref&gt;</code> belgişesi; mağlumatsız tüsiniktemelerde ataw bolwı qajet',
'cite_error_ref_too_many_keys' => 'Jaramsız <code>&lt;ref&gt;</code> belgişe; jaramsız atawlar, mısalı, tım köp',
'cite_error_ref_no_input' => 'Jaramsız <code>&lt;ref&gt;</code> belgişe; atawsız tüsiniktemelerde mağlumatı bolwı qajet',
@@ -1119,9 +1083,6 @@
Der <i lang="en">stack</i>-Schößel stemmp nit.
Dat sull nie optredde.',
'cite_error' => 'Fähler in <i lang="en">cite</i> met Refenenze: $1',
- 'cite_error_ref_numeric_key' => 'Fähler en <i lang="en">cite</i>:
-Ene <code>&lt;ref&gt;</code>-Name kann kei Zahl sin.
-Nemm enne Tittel, dä jät säht.',
'cite_error_ref_no_key' => 'Fähler en <i lang="en">cite</i>:
E <code>&lt;ref&gt;</code> oohne Enhalt moß ene Name han.
Nemm enne Tittel, dä jät säht.',
@@ -1169,8 +1130,6 @@
ongëltege ''stack''-Schlëssel.
Dës sollt eigentlech guer net geschéien.",
'cite_error' => 'Zitéierfeeler: $1',
- 'cite_error_ref_numeric_key' => 'Ongëltegen <code>&lt;ref&gt;</code> Tag;
-De Numm ka keng einfach ganz Zuel sinn. Benotzt w.e.g. een Titel den eng Beschreiwung gëtt',
'cite_error_ref_no_key' => 'Ongëltegen <code>&lt;ref&gt;</code> Tag;
Referenzen ouni Inhalt mussen e Numm hunn',
'cite_error_ref_too_many_keys' => 'Ongëltege <code>&lt;ref&gt;</code> Tag;
@@ -1199,7 +1158,6 @@
'cite_error_key_str_invalid' => 'Interne fout; ónzjuuste $str en/of $key. Dit zów noeaits mótte veurkómme.',
'cite_error_stack_invalid_input' => 'Interne fout; ónzjuuste stacksleutel. Dit zów noeaits mótte veurkómme.',
'cite_error' => 'Citeerfout: $1',
- 'cite_error_ref_numeric_key' => "Ónzjuuste tag <code>&lt;ref&gt;</code>; de naam kin gein simpele integer zeen, gebroek 'ne besjrievendje titel",
'cite_error_ref_no_key' => "Ónzjuuste tag <code>&lt;ref&gt;</code>; refs zónger inhoud mótte 'ne naam höbbe",
'cite_error_ref_too_many_keys' => 'Ónzjuuste tag <code>&lt;ref&gt;</code>; ónzjuuste name, beveurbeildj te väöl',
'cite_error_ref_no_input' => 'Ónzjuuste tag <code>&lt;ref&gt;</code>; refs zónger naam mótte inhoud höbbe',
@@ -1218,7 +1176,6 @@
'cite_error_key_str_invalid' => 'Vidinė klaida; neleistinas $str',
'cite_error_stack_invalid_input' => 'Vidinė klaida; neleistinas steko raktas',
'cite_error' => 'Citavimo klaida $1',
- 'cite_error_ref_numeric_key' => 'Neleistina <code>&lt;ref&gt;</code> gairė; vardas negali būti tiesiog skaičius, naudokite tekstinį pavadinimą',
'cite_error_ref_no_key' => 'Neleistina <code>&lt;ref&gt;</code> gairė; nuorodos be turinio turi turėti vardą',
'cite_error_ref_too_many_keys' => 'Neleistina <code>&lt;ref&gt;</code> gairė; neleistini vardai, pvz., per daug',
'cite_error_ref_no_input' => 'Neleistina <code>&lt;ref&gt;</code> gairė; nuorodos be vardo turi turėti turinį',
@@ -1246,8 +1203,6 @@
ഇതു ഒരിക്കലും സംഭവിക്കാന്‍ പാടില്ലായിരുന്നു.',
'cite_error_stack_invalid_input' => 'ആന്തരിക പിഴവ്; അസാധുവായ സ്റ്റാക് കീ. ഇതു ഒരിക്കലും സംഭവിക്കാന്‍ പാടില്ലായിരുന്നു.',
'cite_error' => 'ഉദ്ധരിച്ചതില്‍ പിഴവ്: $1',
- 'cite_error_ref_numeric_key' => 'അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;
-നാമത്തില്‍ സംഖ്യ മാത്രമായി അനുവദനീയമല്ല. എന്തെങ്കിലും ലഘുവിവരണം ഉപയോഗിക്കുക.',
'cite_error_ref_no_key' => 'അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;
ഉള്ളടക്കമൊന്നുമില്ലാത്ത അവലംബത്തിനും ഒരു പേരു വേണം.',
'cite_error_ref_too_many_keys' => 'അസാധുവായ <code>&lt;ref&gt;</code> ടാഗ്;
@@ -1273,7 +1228,6 @@
'cite_error_key_str_invalid' => 'अंतर्गत त्रुटी; चुकीचे $str आणि/किंवा $key. असे कधीही घडले नाही पाहिजे.',
'cite_error_stack_invalid_input' => 'अंतर्गत त्रुटी; चुकीची स्टॅक चावी. असे कधीही घडले नाही पाहिजे.',
'cite_error' => 'त्रूटी उधृत करा: $1',
- 'cite_error_ref_numeric_key' => '<code>&lt;ref&gt;</code> चुकीचा कोड; नाव हे पूर्णांकी संख्या असू शकत नाही, कृपया माहितीपूर्ण शीर्षक द्या',
'cite_error_ref_no_key' => '<code>&lt;ref&gt;</code> चुकीचा कोड; रिकाम्या संदर्भांना नाव असणे गरजेचे आहे',
'cite_error_ref_too_many_keys' => '<code>&lt;ref&gt;</code> चुकीचा कोड; चुकीची नावे, उदा. खूप सारी',
'cite_error_ref_no_input' => '<code>&lt;ref&gt;</code> चुकीचा कोड; निनावी संदर्भांमध्ये माहिती असणे गरजेचे आहे',
@@ -1293,7 +1247,6 @@
'cite_error_key_str_invalid' => 'Ralat dalaman; str dan/atau $key tidak sah.',
'cite_error_stack_invalid_input' => 'Ralat dalaman; kunci tindanan tidak sah.',
'cite_error' => 'Ralat petik: $1',
- 'cite_error_ref_numeric_key' => 'Tag <code>&lt;ref&gt;</code> tidak sah; nombor ringkas tidak dibenarkan, sila masukkan tajuk yang lebih terperinci',
'cite_error_ref_no_key' => 'Tag <code>&lt;ref&gt;</code> tidak sah; rujukan tanpa kandungan mestilah mempunyai nama',
'cite_error_ref_too_many_keys' => 'Tag <code>&lt;ref&gt;</code> tidak sah; nama-nama tidak sah, misalnya terlalu banyak',
'cite_error_ref_no_input' => "'Tag <code>&lt;ref&gt;</code> tidak sah; rujukan tanpa nama mestilah mempunyai kandungan",
@@ -1315,7 +1268,6 @@
'cite_error_key_str_invalid' => 'Internen Fehler: ungülligen $str un/oder $key. Dat schull egentlich nie vörkamen.',
'cite_error_stack_invalid_input' => 'Internen Fehler: ungülligen Stack-Slötel. Dat schull egentlich nie vörkamen.',
'cite_error' => 'Zitat-Fehler: $1',
- 'cite_error_ref_numeric_key' => 'Ungülligen Tag <tt>&lt;ref&gt;</tt>: de Naam dröff keen reine Tall wesen, bruuk en Naam, de de Saak beschrifft.',
'cite_error_ref_no_key' => 'Ungülligen Tag <tt>&lt;ref&gt;</tt>: „ref“ ahn Inholt mutt en Naam hebben.',
'cite_error_ref_too_many_keys' => 'Ungülligen Tag <tt>&lt;ref&gt;</tt>: ungüllige Naams, to’n Bispeel to veel.',
'cite_error_ref_no_input' => 'Ungülligen Tag <tt>&lt;ref&gt;</tt>: „ref“ ahn Naam mutt en Inholt hebben.',
@@ -1339,9 +1291,6 @@
onjuiste stacksleutel.
Dit zou niet voor moeten komen.',
'cite_error' => 'Citefout: $1',
- 'cite_error_ref_numeric_key' => 'Onjuiste tag <code>&lt;ref&gt;</code>;
-de naam kan geen eenvoudige integer zijn.
-Gebruik een beschrijvende titel',
'cite_error_ref_no_key' => 'Onjuiste tag <code>&lt;ref&gt;</code>;
refs zonder inhoud moeten een naam hebben',
'cite_error_ref_too_many_keys' => 'Onjuiste tag <code>&lt;ref&gt;</code>;
@@ -1372,7 +1321,6 @@
'cite_error_key_str_invalid' => 'Intern feil: Ugyldig $str og/eller $key. Dette burde aldri skjedd.',
'cite_error_stack_invalid_input' => 'Intern feil; ugyldig stakknøkkel. Dette burde aldri skjedd.',
'cite_error' => 'Referansefeil: $1',
- 'cite_error_ref_numeric_key' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; namnet kan ikkje vere eit enkelt heiltal, bruk ein skildrande tittel',
'cite_error_ref_no_key' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; referansar utan innhald må innehalde namn',
'cite_error_ref_too_many_keys' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; ugyldige namn, t.d. for mange',
'cite_error_ref_no_input' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; referansar uten namn må ha innhald',
@@ -1395,7 +1343,6 @@
'cite_error_key_str_invalid' => 'Intern feil: Ugyldig $str og/eller $key. Dette burde aldri forekomme.',
'cite_error_stack_invalid_input' => 'Intern feil; ugyldig stakknøkkel. Dette burde aldri forekomme.',
'cite_error' => 'Siteringsfeil: $1',
- 'cite_error_ref_numeric_key' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; navnet kan ikke være et enkelt heltall, bruk en beskrivende tittel',
'cite_error_ref_no_key' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; referanser uten innhold må inneholde navn',
'cite_error_ref_too_many_keys' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; ugyldige navn, f.eks. for mange',
'cite_error_ref_no_input' => 'Ugyldig <code>&lt;ref&gt;</code>-kode; referanser uten navn må ha innhold',
@@ -1417,7 +1364,6 @@
'cite_error_key_str_invalid' => 'Error intèrna ; $str esperada',
'cite_error_stack_invalid_input' => 'Error intèrna ; clau de pila invalida',
'cite_error' => 'Error de citacion : $1',
- 'cite_error_ref_numeric_key' => 'Ampèl invalid ; clau non-integrala esperada',
'cite_error_ref_no_key' => 'Ampèl invalid ; cap de clau pas especificada',
'cite_error_ref_too_many_keys' => 'Ampèl invalid ; claus invalidas, per exemple, tròp de claus especificadas o clau erronèa',
'cite_error_ref_no_input' => 'Ampèl invalid ; cap de dintrada pas especificada',
@@ -1453,7 +1399,6 @@
'cite_error_key_str_invalid' => 'Błąd wewnętrzny – nieprawidłowy tekst $str i/lub klucz $key. To nigdy nie powinno się zdarzyć.',
'cite_error_stack_invalid_input' => 'Błąd wewnętrzny – nieprawidłowy klucz sterty. To nigdy nie powinno się zdarzyć.',
'cite_error' => "Błąd rozszerzenia ''cite'': $1",
- 'cite_error_ref_numeric_key' => 'Nieprawidłowy znacznik <code>&lt;ref&gt;</code>. Nazwa nie może być liczbą, użyj nazwy opisowej.',
'cite_error_ref_no_key' => 'Nieprawidłowy znacznik <code>&lt;ref&gt;</code>. Odnośnik ref z zawartością musi mieć nazwę.',
'cite_error_ref_too_many_keys' => 'Nieprawidłowe nazwy parametrów elementu <code>&lt;ref&gt;</code>.',
'cite_error_ref_no_input' => 'Bład w składni elementu <code>&lt;ref&gt;</code>. Przypisy bez podanej nazwy muszą posiadać treść',
@@ -1479,7 +1424,6 @@
'cite_error_key_str_invalid' => 'Erro interno; $str inválido',
'cite_error_stack_invalid_input' => 'Erro interno; chave fixa inválida',
'cite_error' => 'Erro de citação $1',
- 'cite_error_ref_numeric_key' => 'Código <code>&lt;ref&gt;</code> inválido; o nome não pode ser um número. Utilize um nome descritivo',
'cite_error_ref_no_key' => 'Código <code>&lt;ref&gt;</code> inválido; refs sem conteúdo devem ter um parâmetro de nome',
'cite_error_ref_too_many_keys' => 'Código <code>&lt;ref&gt;</code> inválido; nomes inválidos (por exemplo, nome muito extenso)',
'cite_error_ref_no_input' => 'Código <code>&lt;ref&gt;</code> inválido; refs sem parâmetro de nome devem possuir conteúdo a elas associado',
@@ -1508,8 +1452,6 @@
stivă cheie invalidă.
Acestea nu ar trebui să se întâmple.',
'cite_error' => 'Eroare la citare: $1',
- 'cite_error_ref_numeric_key' => 'Etichetă <code>&lt;ref&gt;</code> invalidă;
-numele nu poate fi un număr. Foloseşte un titlu descriptiv',
'cite_error_ref_no_key' => 'Etichetă <code>&lt;ref&gt;</code> invalidă;
ref-urile fără conţinut trebuie să aibă un nume',
'cite_error_ref_too_many_keys' => 'Etichetă <code>&lt;ref&gt;</code> invalidă;
@@ -1543,7 +1485,6 @@
Неверный ключ стека.
Это никогда не должно происходить.',
'cite_error' => 'Ошибка цитирования $1',
- 'cite_error_ref_numeric_key' => 'Неправильный вызов: ожидался нечисловой ключ',
'cite_error_ref_no_key' => 'Неправильный вызов: ключ не был указан',
'cite_error_ref_too_many_keys' => 'Неправильный вызов: неверные ключи, например было указано слишком много ключей или ключ был неправильным',
'cite_error_ref_no_input' => 'Неверный вызов: нет входных данных',
@@ -1568,7 +1509,6 @@
'cite_error_key_str_invalid' => 'Иһинээҕи сыыһа: $str уонна/эбэтэр $key сыыһалар.',
'cite_error_stack_invalid_input' => 'Иһинээҕи сыыһа: stack key сыыһалаах',
'cite_error' => 'Цитата сыыһата: $1',
- 'cite_error_ref_numeric_key' => 'Неправильный вызов: ожидался нечисловой ключ',
'cite_error_ref_no_key' => '<code>&lt;ref&gt;</code> тиэк алҕаһа (Неправильный вызов): аата (күлүүһэ) ыйыллыбатах',
'cite_error_ref_too_many_keys' => '<code>&lt;ref&gt;</code> тиэк алҕаһа (Неправильный вызов): аата сыыһа ыйыллыбыт, эбэтэр наһаа элбэх аат суруллубут',
'cite_error_ref_no_input' => '<code>&lt;ref&gt;</code> тиэк алҕастаах (Неверный вызов): иһинээҕитэ сыыһа',
@@ -1594,8 +1534,6 @@
අනීතික ඇසිරුම් යතුර.
මෙය කිසිදින සිදුනොවිය යුතුය.',
'cite_error' => 'උපන්‍යාස දෝෂය: $1',
- 'cite_error_ref_numeric_key' => 'අනීතික <code>&lt;ref&gt;</code> ටැගය;
-නම සරල පූර්ණාංකයක් විය නොහැක. විස්තරශීලි ශිර්ෂයක් භාවිතා කරන්න',
'cite_error_ref_no_key' => 'අනීතික <code>&lt;ref&gt;</code> ටැගය;
පෙළ විරහිත ආශ්‍රේය සඳහා නමක් තිබිය යුතුය',
'cite_error_ref_too_many_keys' => 'අනීතික <code>&lt;ref&gt;</code> ටැගය;
@@ -1633,7 +1571,6 @@
'cite_error_key_str_invalid' => 'Vnútorná chyba; neplatný $str',
'cite_error_stack_invalid_input' => 'Vnútorná chyba; neplatný kľúč zásobníka',
'cite_error' => 'Chyba citácie $1',
- 'cite_error_ref_numeric_key' => 'Neplatné volanie; očakáva sa neceločíselný typ kľúča',
'cite_error_ref_no_key' => 'Neplatné volanie; nebol špecifikovaný kľúč',
'cite_error_ref_too_many_keys' => 'Neplatné volanie; neplatné kľúče, napr. príliš veľa alebo nesprávne špecifikovaný kľúč',
'cite_error_ref_no_input' => 'Neplatné volanie; nebol špecifikovaný vstup',
@@ -1656,7 +1593,6 @@
'cite_error_key_str_invalid' => 'Унутрашња грешка; лош $str и/или $key. Ово не би требало никад да се деси.',
'cite_error_stack_invalid_input' => 'Унутрашња грешка; лош кључ стека. Ово не би требало никад да се деси.',
'cite_error' => 'Грешка цитата: $1',
- 'cite_error_ref_numeric_key' => 'Лоша ознака <code>&lt;ref&gt;</code>; име не може бити једноставни интеџер. Користи описни наслов.',
'cite_error_ref_no_key' => 'Лоша ознака <code>&lt;ref&gt;</code>; ref-ови без садржаја морају имати име.',
'cite_error_ref_too_many_keys' => 'Лоша ознака <code>&lt;ref&gt;</code>; лоша имена, односно много њих.',
'cite_error_ref_no_input' => 'Лоша ознака <code>&lt;ref&gt;</code>; ref-ови без имена морају имати садржај.',
@@ -1676,7 +1612,6 @@
'cite_error_key_str_invalid' => 'Internen Failer: ungultigen $str',
'cite_error_stack_invalid_input' => 'Internen Failer: uungultigen „name“-stack. Dit schuul eegentelk goarnit passierje konne.',
'cite_error' => 'Referenz-Failer $1',
- 'cite_error_ref_numeric_key' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ duur naan scheenen Taalenwäid weese, benutsje n beschrieuwenden Noome.',
'cite_error_ref_no_key' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „ref“ sunner Inhoold mout n Noome hääbe.',
'cite_error_ref_too_many_keys' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ is uungultich of tou loang.',
'cite_error_ref_no_input' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „ref“ sunner Noome mout n Inhoold hääbe.',
@@ -1709,7 +1644,6 @@
'cite_error_key_str_invalid' => 'Internt fel; $str eller $key är ogiltiga. Det här borde aldrig hända.',
'cite_error_stack_invalid_input' => 'Internt fel; ogiltig nyckel i stacken. Det här borde aldrig hända.',
'cite_error' => 'Referensfel: $1',
- 'cite_error_ref_numeric_key' => "Ogiltig <code>&lt;ref&gt;</code>-tag; parametern 'name' kan inte vara ett tal, använd ett beskrivande namn",
'cite_error_ref_no_key' => 'Ogiltig <code>&lt;ref&gt;</code>-tag; referenser utan innehåll måste ha ett namn',
'cite_error_ref_too_many_keys' => "Ogiltig <code>&lt;ref&gt;</code>-tag; ogiltiga parametrar, den enda tillåtna parametern är 'name'",
'cite_error_ref_no_input' => 'Ogiltig <code>&lt;ref&gt;</code>-tag; referenser utan namn måste ha innehåll',
@@ -1733,7 +1667,6 @@
'cite_error_key_str_invalid' => 'అంతర్గత పొరపాటు: తప్పుడు $str మరియు/లేదా $key. ఇది ఎప్పుడూ జరగకూడదు.',
'cite_error_stack_invalid_input' => 'అంతర్గత పొరపాటు: తప్పుడు స్టాక్ కీ. ఇది ఎప్పుడూ జరగకూడదు.',
'cite_error' => 'ఉదహరింపు పొరపాటు: $1',
- 'cite_error_ref_numeric_key' => 'తప్పుడు <code>&lt;ref&gt;</code> టాగు; పేరు సరళ సంఖ్య అయివుండకూడదు, వివరమైన శీర్షిక వాడండి',
'cite_error_ref_no_key' => 'సరైన <code>&lt;ref&gt;</code> ట్యాగు కాదు; విషయం లేని ref లకు తప్పనిసరిగా పేరొకటుండాలి',
'cite_error_ref_too_many_keys' => 'సరైన <code>&lt;ref&gt;</code> ట్యాగు కాదు; తప్పు పేర్లు, ఉదాహరణకు మరీ ఎక్కువ',
'cite_error_ref_no_input' => 'సరైన <code>&lt;ref&gt;</code> ట్యాగు కాదు; పేరు లేని ref లలో తప్పనిసరిగా విషయం ఉండాలి',
@@ -1752,7 +1685,6 @@
'cite_error_key_str_invalid' => 'Хатои дохилӣ; $str ва/ё $key ғайримиҷоз. Ин хато набояд ҳаргиз рух диҳад.',
'cite_error_stack_invalid_input' => 'Хатои дохилӣ; клиди пушта ғайримиҷоз. Ин хато набояд ҳаргиз рух диҳад.',
'cite_error' => 'Хатои ёдкард: $1',
- 'cite_error_ref_numeric_key' => 'Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; ном наметавонад як адад бошад, унвони возеҳтареро истифода кунед',
'cite_error_ref_no_key' => 'Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; ёдкардҳо бидуни мӯҳтаво бояд ном дошта бошанд',
'cite_error_ref_too_many_keys' => 'Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; номҳои ғайримиҷоз ё беш аз андоза',
'cite_error_ref_no_input' => 'Барчасби <code>&lt;ref&gt;</code> ғайримиҷоз; ёдкардҳои бидуни ном бояд мӯҳтаво дошта бошанд',
@@ -1791,8 +1723,6 @@
неправильний $str і/або $key.',
'cite_error_stack_invalid_input' => 'Внутрішня помилка: неправильний ключ стека.',
'cite_error' => 'Помилка цитування: $1',
- 'cite_error_ref_numeric_key' => 'Неправильний виклик <code>&lt;ref&gt;</code>:
-назва не може містити тільки цифри.',
'cite_error_ref_no_key' => 'Неправильний виклик <code>&lt;ref&gt;</code>:
порожній тег <code>ref</code> повинен мати параметр name.',
'cite_error_ref_too_many_keys' => 'Неправильний виклик <code>&lt;ref&gt;</code>:
@@ -1829,7 +1759,6 @@
ciave de stack sbaglià.
Sta roba no la dovarìa mai capitar.',
'cite_error' => 'Eror ne la funsion Cite $1',
- 'cite_error_ref_numeric_key' => "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: el nome no'l pode mìa èssar un nùmaro intiero. Dòpara un titolo esteso",
'cite_error_ref_no_key' => "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: i ref vodi no i pol no verghe un nome",
'cite_error_ref_too_many_keys' => "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: nomi mìa validi (ad es. nùmaro massa elevà)",
'cite_error_ref_no_input' => "Eror ne l'uso del marcator <code>&lt;ref&gt;</code>: i ref che no gà un nome no i pol mìa èssar vodi",
@@ -1854,7 +1783,6 @@
'cite_error_key_str_invalid' => 'Lỗi nội bộ; $str và/hoặc $key không hợp lệ. Điều này không bao giờ nên xảy ra.',
'cite_error_stack_invalid_input' => 'Lỗi nội bộ; khóa xác định chồng bị sai. Đáng ra không bao giờ xảy ra điều này.',
'cite_error' => 'Lỗi chú thích: $1',
- 'cite_error_ref_numeric_key' => 'Thẻ <code>&lt;ref&gt;</code> sai; tên không thể chỉ là số nguyên, hãy dùng tựa đề có tính miêu tả',
'cite_error_ref_no_key' => 'Thẻ <code>&lt;ref&gt;</code> sai; thẻ ref không có nội dung thì phải có tên',
'cite_error_ref_too_many_keys' => 'Thẻ <code>&lt;ref&gt;</code> sai; thông số tên sai, như, nhiều thông số tên quá',
'cite_error_ref_no_input' => 'Mã <code>&lt;ref&gt;</code> sai; thẻ ref không có tên thì phải có nội dung',
@@ -1877,7 +1805,6 @@
'cite_error_key_str_invalid' => 'Pöl ninik: $str e/u $key no lonöföl(s). Atos no sötonöv jenön.',
'cite_error_stack_invalid_input' => 'Pöl ninik; kumakik no lonöföl. Atos neai sötonöv jenön.',
'cite_error' => 'Saitamapöl: $1',
- 'cite_error_ref_numeric_key' => 'Nem ela <code>&lt;ref&gt;</code> no lonöföl. Nem no kanon binädön te me numats; gebolös bepenami.',
'cite_error_ref_no_key' => 'Geb no lonöföl ela <code>&lt;ref&gt;</code>: els ref nen ninäd mutons labön nemi',
'cite_error_ref_too_many_keys' => 'El <code>&lt;ref&gt;</code> no lonöfon: labon nemis no lonöfikis, a. s. tumödikis',
'cite_error_ref_no_input' => 'El <code>&lt;ref&gt;</code> no lonöfon: els ref nen nem mutons labön ninädi',
@@ -1893,8 +1820,6 @@
'cite_desc' => 'לייגט צו <nowiki><ref[ name=id]></nowiki> און <nowiki><references/></nowiki> טאַגן, פֿאר ציטירונגען (אין הערות)',
'cite_croak' => 'טעות אין ציטירונג; $1: $2',
'cite_error' => 'ציטירן גרײַז: $1',
- 'cite_error_ref_numeric_key' => 'גרײַזיגער <code>&lt;ref&gt;</code> טאַג;
-נאמען טאר נישט זײַן קיין פשוטער נומער. ניצט א באשרײַבדיק קעפל',
'cite_error_ref_no_key' => 'אומגילדיגער <code>&lt;ref&gt;</code> טאַג;
א רעפֿערענץ אָן תוכן מוז האבן א נאמען',
'cite_error_ref_too_many_keys' => 'אומגילטיגער <code>&lt;ref&gt;</code> טאַג;
@@ -1914,7 +1839,6 @@
'cite_error_key_str_invalid' => '內部錯誤; 無效嘅 $str',
'cite_error_stack_invalid_input' => '內部錯誤; 無效嘅堆疊匙',
'cite_error' => '引用錯誤 $1',
- 'cite_error_ref_numeric_key' => '無效嘅呼叫; 需要一個非整數嘅匙',
'cite_error_ref_no_key' => '無效嘅呼叫; 未指定匙',
'cite_error_ref_too_many_keys' => '無效嘅呼叫; 無效嘅匙, 例如: 太多或者指定咗一個錯咗嘅匙',
'cite_error_ref_no_input' => '無效嘅呼叫; 未指定輸入',
@@ -1935,7 +1859,6 @@
'cite_error_key_str_invalid' => '内部错误;非法的 $str',
'cite_error_stack_invalid_input' => '内部错误;非法堆栈键值',
'cite_error' => '引用错误 $1',
- 'cite_error_ref_numeric_key' => '无效呼叫;需要一个非整数的键值',
'cite_error_ref_no_key' => '无效呼叫;没有指定键值',
'cite_error_ref_too_many_keys' => '无效呼叫;非法键值,例如:过多或错误的指定键值',
'cite_error_ref_no_input' => '无效呼叫;没有指定的输入',
@@ -1956,7 +1879,6 @@
'cite_error_key_str_invalid' => '內部錯誤;非法的 $str',
'cite_error_stack_invalid_input' => '內部錯誤;非法堆疊鍵值',
'cite_error' => '引用錯誤 $1',
- 'cite_error_ref_numeric_key' => '無效呼叫;需要一個非整數的鍵',
'cite_error_ref_no_key' => '無效呼叫;沒有指定鍵',
'cite_error_ref_too_many_keys' => '無效呼叫;非法鍵值,例如:過多或錯誤的指定鍵',
'cite_error_ref_no_input' => '無效呼叫;沒有指定的輸入',
diff -U 3 -H -b -w -B -E -d -t -r -N -- Cite r44396/Cite_body.php Cite my manual merge/Cite_body.php
--- Cite r44396/Cite_body.php 2008-10-05 00:00:07.000000000 +0100
+++ Cite my manual merge/Cite_body.php 2008-12-14 22:32:24.000000000 +0000
@@ -23,54 +23,42 @@
*/
/**
- * Datastructure representing <ref> input, in the format of:
+ * Datastructure representing <ref> input.
+ * It is an array of groups, so
* <code>
- * array(
- * 'user supplied' => array(
- * 'text' => 'user supplied reference & key',
- * 'count' => 1, // occurs twice
- * 'number' => 1, // The first reference, we want
- * // all occourances of it to
- * // use the same number
- * ),
- * 0 => 'Anonymous reference',
- * 1 => 'Another anonymous reference',
- * 'some key' => array(
- * 'text' => 'this one occurs once'
- * 'count' => 0,
- * 'number' => 4
- * ),
- * 3 => 'more stuff'
- * );
+ * $mRefs = array(CITE_DEFAULT_GROUP => groupdata, "footnote" => groupdata, ...)
* </code>
*
- * This works because:
- * * PHP's datastructures are guarenteed to be returned in the
- * order that things are inserted into them (unless you mess
- * with that)
- * * User supplied keys can't be integers, therefore avoiding
- * conflict with anonymous keys
+ * In turn, each groupdata element is an array of the form
+ * <code>
+ * groupdata = array(
+ * 'id' => array(
+ * 'text' => (str) 'the text entered as the contents of the <ref>',
+ * 'number' => (int) the position in the list of all references, named or not
+ * 'count' => (int) how many <ref>s link to this reference (so =1 if the
+ * ref is unnamed)
+ * )
+ * )
+ * </code>
+ * 'id' is either the key prefixed by 'name:', or an integer generated when there is no key prefixed by "int:".
+ *
+ * NB: The text needs to be parsed recursively; the keys to mRefs (the group names) are NOT SAFE (escape),
+ * and the ids are NOT SAFE.
*
* @var array
**/
var $mRefs = array();
/**
- * Count for user displayed output (ref[1], ref[2], ...)
+ * Datastructure representing the [#] tags output to the page, holding the text, HTML id, and href of each
+ * one, to allow the actual markup to be made later after globbing together adjacent tags.
*
- * @var int
- */
- var $mOutCnt = 0;
- var $mGroupCnt = array();
-
- /**
- * Internal counter for anonymous references, separate from
- * $mOutCnt because anonymous references won't increment it,
- * but will incremement $mOutCnt
+ * Entries have the form
+ * array('id' => string, 'href' => string, 'text' => string, 'group' => string, 'number' => int).
*
- * @var int
+ * @var array
*/
- var $mInCnt = 0;
+ var $mRefDB = array();
/**
* The backlinks, in order, to pass as $3 to
@@ -82,6 +70,14 @@
var $mBacklinkLabels;
/**
+ * The footnote labels used to produce the footnote symbols.
+ * After the list runs out, start repeating symbols.
+ *
+ * @var array
+ */
+ var $mFootnoteLabels;
+
+ /**
* @var object
*/
var $mParser;
@@ -94,13 +90,26 @@
*/
var $mInCite = false;
+ /**
+ * These are the main styling variables for the links in the text, used so often
+ * in the parser faff that they are stored here.
+ *
+ * They fit together to make the link as "pre[[bra...cket]]post" or "prebra[[...,...,...]]cketpost".
+ */
+ var $mPre, $mPost, $mBra, $mKet;
+
/**#@-*/
/**
* Constructor
*/
function Cite() {
+ wfLoadExtensionMessages( 'Cite' );
$this->setHooks();
+ $this->mPre = wfMsgForContentNoTrans( 'cite_reference_pre');
+ $this->mPost = wfMsgForContentNoTrans( 'cite_reference_post');
+ $this->mBra = wfMsgForContentNoTrans( 'cite_reference_pre_bracket');
+ $this->mKet = wfMsgForContentNoTrans( 'cite_reference_post_bracket');
}
/**#@+ @access private */
@@ -115,7 +124,7 @@
function ref( $str, $argv, $parser ) {
wfLoadExtensionMessages( 'Cite' );
if ( $this->mInCite ) {
- return htmlspecialchars( "<ref>$str</ref>" );
+ return $this->error( 'cite_error_references_nested', htmlspecialchars( $str ) );
} else {
$this->mInCite = true;
$ret = $this->guardedRef( $str, $argv, $parser );
@@ -124,38 +133,34 @@
}
}
- function guardedRef( $str, $argv, $parser, $default_group=CITE_DEFAULT_GROUP ) {
+ function guardedRef( $str, $argv, $parser ) {
$this->mParser = $parser;
- # The key here is the "name" attribute.
+ # key is here the "name" attribute.
list($key,$group) = $this->refArg( $argv );
+ if ( $key === false ) {
+ //An error occured parsing the tags: probably some unknown options were passed in.
+ return $this->error( 'cite_error_ref_too_many_keys' );
+ }
+
if( $str === '' ) {
# <ref ...></ref>. This construct is invalid if
- # it's a contentful ref, but OK if it's a named duplicate and should
- # be equivalent <ref ... />, for compatability with #tag.
- if ( $key == false )
+ # it's a contentful ref, but OK if it's a named duplicate, in which
+ # case it is equivalent to <ref ... /> (needed for compatability with #tag).
+ if ( is_null( $key ) )
return $this->error( 'cite_error_ref_no_input' );
else
$str = null;
}
- if( $key === false ) {
- # TODO: Comment this case; what does this condition mean?
- return $this->error( 'cite_error_ref_too_many_keys' );
- }
-
- if( $str === null and $key === null ) {
- # Something like <ref />; this makes no sense.
+ if( $key === '' ) {
return $this->error( 'cite_error_ref_no_key' );
}
- if( preg_match( '/^[0-9]+$/', $key ) ) {
- # Numeric names mess up the resulting id's, potentially produ-
- # cing duplicate id's in the XHTML. The Right Thing To Do
- # would be to mangle them, but it's not really high-priority
- # (and would produce weird id's anyway).
- return $this->error( 'cite_error_ref_numeric_key' );
+ if( is_null( $str ) and is_null ( $key ) ) {
+ # Something like '<ref />'; this makes no sense.
+ return $this->error( 'cite_error_ref_no_key' );
}
if( preg_match(
@@ -175,14 +180,14 @@
return $this->error( 'cite_error_included_ref' );
}
- # Split these into groups.
+ #Put everything in a group.
if( $group === null ) {
- $group = $default_group;
+ $group = CITE_DEFAULT_GROUP;
}
if( is_string( $key ) or is_string( $str ) ) {
# We don't care about the content: if the key exists, the ref
- # is presumptively valid. Either it stores a new ref, or re-
+ # is presumably valid. Either it stores a new ref, or re-
# fers to an existing one. If it refers to a nonexistent ref,
# we'll figure that out later. Likewise it's definitely valid
# if there's any content, regardless of key.
@@ -200,27 +205,21 @@
* @static
*
* @param array $argv The argument vector
- * @return mixed false on invalid input, a string on valid
- * input and null on no input
+ * @return array(false,false) on invalid input, else an array with two values, 0=>$key, 1=>$group,
+ * with $key and $group NULL if not passed in argv.
*/
function refArg( $argv ) {
- global $wgAllowCiteGroups;
$cnt = count( $argv );
$group = null;
$key = null;
- if ( $cnt > 2 )
- // There should only be one key and one group
- return false;
- else if ( $cnt >= 1 ) {
if ( isset( $argv['name'] ) ) {
// Key given.
- $key = Sanitizer::escapeId( $argv['name'] );
+ $key = $argv['name'];
unset( $argv['name']);
--$cnt;
}
if ( isset( $argv['group'] ) ){
- if (! $wgAllowCiteGroups ) return array(false); //remove when groups are fully tested.
// Group given.
$group = $argv['group'];
unset( $argv['group']);
@@ -230,70 +229,37 @@
if ( $cnt == 0)
return array ($key,$group);
else
- // Invalid key
+ // Invalid parameters
return array(false,false);
}
- else
- // No key
- return array(null,$group);
- }
/**
* Populate $this->mRefs based on input and arguments to <ref>
*
- * @param string $str Input from the <ref> tag
- * @param mixed $key Argument to the <ref> tag as returned by $this->refArg()
+ * @param string $str Inner text from the <ref>...</ref> tag, or null if none given
+ * @param mixed $key "name" argument to the <ref> tag, or null if none given
+ * @param string $group "group" argument to the <ref> tag, or CITE_DEFAULT_GROUP if none given
* @return string
*/
- function stack( $str, $key = null, $group ) {
+ function stack( $str, $key, $group ) {
if (! isset($this->mRefs[$group]))
$this->mRefs[$group]=array();
- if (! isset($this->mGroupCnt[$group]))
- $this->mGroupCnt[$group]=0;
- if ( $key === null ) {
- // No key
- //$this->mRefs[$group][] = $str;
- $this->mRefs[$group][] = array('count'=>-1, 'text'=>$str, 'key'=>++$this->mOutCnt);
+ if ( $key !== null ) $key = "name:$key";
+ if ( $key !== null and isset( $this->mRefs[$group][$key] ) ) $number = $this->mRefs[$group][$key]['number'];
+ else $number = count( $this->mRefs[$group] ) + 1;
+ if ( $key === null ) $key = "int:$number";
- return $this->linkRef( $group, $this->mInCnt++ );
- } else if ( is_string( $key ) ) {
- // Valid key
- if ( ! isset( $this->mRefs[$group][$key] ) || ! is_array( $this->mRefs[$group][$key] ) ) {
- // First occurance
- $this->mRefs[$group][$key] = array(
- 'text' => $str,
- 'count' => 0,
- 'key' => ++$this->mOutCnt,
- 'number' => ++$this->mGroupCnt[$group]
- );
- $this->mInCnt++;
- return
- $this->linkRef(
- $group,
- $key,
- $this->mRefs[$group][$key]['key']."-".$this->mRefs[$group][$key]['count'],
- $this->mRefs[$group][$key]['number'],
- "-".$this->mRefs[$group][$key]['key']
- );
+ if ( isset( $this->mRefs[$group][$key] ) ) {
+ //We have linked to this reference before
+ if ( $this->mRefs[$group][$key]['text'] === null ) $this->mRefs[$group][$key]['text'] = $str;
+ $count = ++$this->mRefs[$group][$key]['count'];
} else {
- // We've been here before
- if ( $this->mRefs[$group][$key]['text'] === null && $str !== '' ) {
- // If no text found before, use this text
- $this->mRefs[$group][$key]['text'] = $str;
- };
- return
- $this->linkRef(
- $group,
- $key,
- $this->mRefs[$group][$key]['key']."-".++$this->mRefs[$group][$key]['count'],
- $this->mRefs[$group][$key]['number'],
- "-".$this->mRefs[$group][$key]['key']
- ); }
+ //This is a brand new reference
+ $this->mRefs[$group][$key] = array('text'=>$str, 'number'=>$number, 'count'=>1);
+ $count = 1;
}
-
- else
- $this->croak( 'cite_error_stack_invalid_input', serialize( array( $key, $str ) ) );
+ return $this->referencePlaceText($group, $key, $number, $count);
}
/**
@@ -306,11 +272,7 @@
function references( $str, $argv, $parser ) {
wfLoadExtensionMessages( 'Cite' );
if ( $this->mInCite ) {
- if ( is_null( $str ) ) {
- return htmlspecialchars( "<references/>" );
- } else {
- return htmlspecialchars( "<references>$str</references>" );
- }
+ return $this->error( 'cite_error_references_nested' );
} else {
$this->mInCite = true;
$ret = $this->guardedReferences( $str, $argv, $parser );
@@ -319,24 +281,19 @@
}
}
- function guardedReferences( $str, $argv, $parser, $group = CITE_DEFAULT_GROUP ) {
- global $wgAllowCiteGroups;
-
+ function guardedReferences( $str, $argv, $parser ) {
$this->mParser = $parser;
if ( strval( $str ) !== '' )
return $this->error( 'cite_error_references_invalid_input' );
-
- if ( isset( $argv['group'] ) and $wgAllowCiteGroups) {
+ $group = CITE_DEFAULT_GROUP;
+ if ( isset( $argv['group'] ) ) {
$group = $argv['group'];
unset ($argv['group']);
-
}
- if ( count( $argv ) && $wgAllowCiteGroups )
- return $this->error( 'cite_error_references_invalid_parameters_group' );
- elseif ( count( $argv ) )
+ if ( count( $argv ) )
return $this->error( 'cite_error_references_invalid_parameters' );
else
return $this->referencesFormat($group);
@@ -355,10 +312,12 @@
wfProfileIn( __METHOD__ .'-entries' );
$ent = array();
foreach ( $this->mRefs[$group] as $k => $v )
- $ent[] = $this->referencesFormatEntry( $k, $v );
+ $ent[] = $this->referencesFormatEntry( $k, $v, $group );
- $prefix = wfMsgForContentNoTrans( 'cite_references_prefix' );
- $suffix = wfMsgForContentNoTrans( 'cite_references_suffix' );
+ if ( $group == "footnote" ) $footnote = '_footnote';
+ else $footnote = '';
+ $prefix = wfMsgForContentNoTrans( "cite{$footnote}_references_prefix" );
+ $suffix = wfMsgForContentNoTrans( "cite{$footnote}_references_suffix" );
$content = implode( "\n", $ent );
wfProfileOut( __METHOD__ .'-entries' );
@@ -370,7 +329,6 @@
//done, clean up so we can reuse the group
unset ($this->mRefs[$group]);
- unset($this->mGroupCnt[$group]);
return $ret;
}
@@ -378,59 +336,40 @@
/**
* Format a single entry for the referencesFormat() function
*
- * @param string $key The key of the reference
- * @param mixed $val The value of the reference, string for anonymous
- * references, array for user-suppplied
+ * @param string $key The key of the reference, or the number
+ * @param array $val array(
+ * 'text' => (str) 'the text entered as the contents of the <ref>',
+ * 'number' => (int) the position in the list of all references, named or not
+ * 'count' => (int) how many <ref>s link to this reference (so =1 if the
+ * ref is unnamed)
+ * )
* @return string Wikitext
*/
- function referencesFormatEntry( $key, $val ) {
- // Anonymous reference
- if ( ! is_array( $val ) )
- return
- wfMsgForContentNoTrans(
- 'cite_references_link_one',
- $this->referencesKey( $key ),
- $this->refKey( $key ),
- $val
- );
- else if ($val['text']=='') return
- wfMsgForContentNoTrans(
- 'cite_references_link_one',
- $this->referencesKey( $key ),
- $this->refKey( $key, $val['count'] ),
- $this->error( 'cite_error_references_no_text', $key )
- );
- if ( $val['count'] < 0 )
- return
- wfMsgForContentNoTrans(
- 'cite_references_link_one',
- $this->referencesKey( $val['key'] ),
- #$this->refKey( $val['key'], $val['count'] ),
- $this->refKey( $val['key'] ),
+ function referencesFormatEntry( $key, $val, $group ) {
+ if ($group == "footnote") $f = wfMsgForContentNoTrans( 'cite_references_footnote_prefix',
+ $this->referencesFormatEntryFootnoteLabel($val['number']));
+ else $f = '';
- ( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $key ) )
- );
- // Standalone named reference, I want to format this like an
- // anonymous reference because displaying "1. 1.1 Ref text" is
- // overkill and users frequently use named references when they
- // don't need them for convenience
- else if ( $val['count'] === 0 )
+ preg_match( '/(name|int):(.*)/', $key, $keyname );
+ $keyname = $keyname[2]; //No need to escape; we are outputting wikitext, not HTML.
+
+ if ( $val['count'] < 2 )
return
wfMsgForContentNoTrans(
'cite_references_link_one',
- $this->referencesKey( $key ."-" . $val['key'] ),
- #$this->refKey( $key, $val['count'] ),
- $this->refKey( $key, $val['key']."-".$val['count'] ),
- ( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $key ) )
+ $this->referencesKey( $group, $val['number'] ),
+ $this->refKey( $group, $val['number'], $val['count'] ),
+ ( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $keyname ) ),
+ $f
);
// Named references with >1 occurrences
else {
$links = array();
//for group handling, we have an extra key here.
- for ( $i = 0; $i <= $val['count']; ++$i ) {
+ for ( $i = 1; $i <= $val['count']; ++$i ) {
$links[] = wfMsgForContentNoTrans(
- 'cite_references_link_many_format',
- $this->refKey( $key, $val['key']."-$i" ),
+ 'cite_references_link_many_format',//<sup>[[#$1|$2]]</sup>
+ $this->refKey( $group, $val['number'], $i ),
$this->referencesFormatEntryNumericBacklinkLabel( $val['number'], $i, $val['count'] ),
$this->referencesFormatEntryAlternateBacklinkLabel( $i )
);
@@ -439,10 +378,11 @@
$list = $this->listToText( $links );
return
- wfMsgForContentNoTrans( 'cite_references_link_many',
- $this->referencesKey( $key ."-" . $val['key'] ),
+ wfMsgForContentNoTrans( 'cite_references_link_many',//<li id="$1">$4↑ $2 $3</li>
+ $this->referencesKey( $group, $val['number'] ),
$list,
- ( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $key ) )
+ ( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $keyname ) ),
+ $f
);
}
}
@@ -482,8 +422,8 @@
if ( !isset( $this->mBacklinkLabels ) ) {
$this->genBacklinkLabels();
}
- if ( isset( $this->mBacklinkLabels[$offset] ) ) {
- return $this->mBacklinkLabels[$offset];
+ if ( isset( $this->mBacklinkLabels[$offset - 1] ) ) {
+ return $this->mBacklinkLabels[$offset - 1];
} else {
// Feed me!
return $this->error( 'cite_error_references_no_backlink_label' );
@@ -491,68 +431,82 @@
}
/**
+ * Generate a footnote symbol given an offset
+ *
+ * @param int $value The offset
+ *
+ * @return string
+ */
+ function referencesFormatEntryFootnoteLabel( $value ) {
+ if ( !isset( $this->mFootnoteLabels ) ) {
+ $this->genFootnoteLabels();
+ }
+ return str_repeat($this->mFootnoteLabels[($value - 1) % count($this->mFootnoteLabels)],
+ ($value - 1) / count($this->mFootnoteLabels) + 1);
+ }
+
+ /**
* Return an id for use in wikitext output based on a key and
- * optionally the number of it, used in <references>, not <ref>
- * (since otherwise it would link to itself)
+ * optionally the number of it, used to link from <references> to <ref>
*
* @static
*
- * @param string $key The key
- * @param int $num The number of the key
- * @return string A key for use in wikitext
+ * @param int $number The number of the reference (not ref)
+ * @param int $count The index into all the refs pointing to this reference
+ * @return string An id for use in markup, links
*/
- function refKey( $key, $num = null ) {
+ function refKey( $group, $number, $count ) {
$prefix = wfMsgForContent( 'cite_reference_link_prefix' );
$suffix = wfMsgForContent( 'cite_reference_link_suffix' );
- if ( isset( $num ) )
- $key = wfMsgForContentNoTrans( 'cite_reference_link_key_with_num', $key, $num );
-
- return $prefix . $key . $suffix;
+ return Sanitizer::escapeId( $prefix . $group . '::' . $number . '::' . $count . $suffix );
}
/**
* Return an id for use in wikitext output based on a key and
- * optionally the number of it, used in <ref>, not <references>
- * (since otherwise it would link to itself)
+ * optionally the number of it, used to link from <ref> to <references>
*
* @static
*
- * @param string $key The key
- * @param int $num The number of the key
- * @return string A key for use in wikitext
+ * @param int $number The number of the reference (not ref)
+ * @return string An id for use in markup, links
*/
- function referencesKey( $key, $num = null ) {
+ function referencesKey( $group, $number ) {
$prefix = wfMsgForContent( 'cite_references_link_prefix' );
$suffix = wfMsgForContent( 'cite_references_link_suffix' );
- if ( isset( $num ) )
- $key = wfMsgForContentNoTrans( 'cite_reference_link_key_with_num', $key, $num );
-
- return $prefix . $key . $suffix;
+ return Sanitizer::escapeId( $prefix . $group . '::' . $number . $suffix );
}
/**
- * Generate a link (<sup ...) for the <ref> element from a key
+ * Generate a link (<sup>...) for the <ref> element from a key
* and return XHTML ready for output
*
- * @param string $key The key for the link
+ * @param string $group The group the ref belongs to
+ * @param string $key The key for the link, either a name or a generated number
+ * @param int $number The number of the reference (not ref)
* @param int $count The index of the key, used for distinguishing
* multiple occurances of the same key
- * @param int $label The label to use for the link, I want to
- * use the same label for all occourances of
- * the same named reference.
* @return string
*/
- function linkRef( $group, $key, $count = null, $label = null, $subkey = '' ) {
+ function referencePlaceText( $group, $key, $number, $count ) {
global $wgContLang;
- return
- $this->parse(
- wfMsgForContentNoTrans(
- 'cite_reference_link',
- $this->refKey( $key, $count ),
- $this->referencesKey( $key . $subkey ),
- (($group == CITE_DEFAULT_GROUP)?'':"$group ").$wgContLang->formatNum( is_null( $label ) ? ++$this->mGroupCnt[$group] : $label )
- )
- );
+
+ if ( $group == "footnote" ) {
+ $text = $this->referencesFormatEntryFootnoteLabel($number);
+ } else {
+ $groupname = ( $group == CITE_DEFAULT_GROUP ) ? ( '' ) : ( htmlspecialchars( $group )."&nbsp;" );
+ $text = $groupname.$wgContLang->formatNum( $number );
+ }
+
+ //What is happening here: the actual proper wikitext for the [#] tag is made later, when we handle globbing.
+ //Here, we make an entry in the big global array of all [#] tags in the article, and put a placeholder index
+ //in the actual wikitext, to be resolved later.
+ $this->mRefDB[] = array( 'id' => $this->refKey( $group, $number, $count ),
+ 'href' => $this->referencesKey( $group, $number ),
+ 'text' => $text,
+ 'number' => $number,
+ 'group' => $group, );
+ end($this->mRefDB);
+ return "<ref>".key($this->mRefDB)."</ref>";
}
/**
@@ -649,6 +603,16 @@
}
/**
+ * Generate the footnote labels, specified as a whitespace-separated list.
+ */
+ function genFootnoteLabels() {
+ wfProfileIn( __METHOD__ );
+ $text = wfMsgForContentNoTrans( 'cite_references_footnote_labels' );
+ $this->mFootnoteLabels = preg_split( '#[\n\t ]#', $text );
+ wfProfileOut( __METHOD__ );
+ }
+
+ /**
* Gets run when Parser::clearState() gets run, since we don't
* want the counts to transcend pages and other instances
*/
@@ -658,10 +622,8 @@
if($this->mInCite)
return true;
- $this->mGroupCnt = array();
- $this->mOutCnt = -1;
- $this->mInCnt = 0;
$this->mRefs = array();
+ //$this->mRefDB = array();
return true;
}
@@ -676,6 +638,17 @@
$wgParser->setHook( 'references' , array( &$this, 'references' ) );
$wgHooks['ParserClearState'][] = array( &$this, 'clearState' );
+ $wgHooks['ParserBeforeTidy'][] = array(&$this, 'referenceMerge');
+ }
+
+ /**
+ * This function is a processor which scans the page for any processed ref tags and merges
+ * adjacent ones, to create a neater apperance.
+ */
+ function referenceMerge(&$parser, &$text) {
+ //This regexp really is robust, but relies on the properties of the id validation. Note this must be greedy.
+ $text = preg_replace_callback("#(<ref>(?>[\d]*)</ref>)+#", array(&$this,'callbackMerge'), $text);
+ return true;
}
/**
@@ -708,6 +681,84 @@
wfDebugDieBacktrace( wfMsgForContent( 'cite_croak', $this->error( $error ), $data ) );
}
+ function callbackMerge($merge) {
+ $keys = preg_split( '#((</ref>)?<ref>|</ref>)#' , $merge[0], -1, PREG_SPLIT_NO_EMPTY);
+ //Now we have an array $keys holding the internal mRefDB id of the refs in this glob.
+ if ( count($keys) == 0 ) return $this->croak('Somehow matched a ref, but found no key', 'callbackMerge');
+ if ( count($keys) == 1 ) {
+ $ref = $this->mRefDB[(int)$keys[0]];
+ return "{$this->mPre}<a href=\"#{$ref['href']}\" id=\"{$ref['id']}\">{$this->mBra}{$ref['text']}{$this->mKet}</a>{$this->mPost}";
+ } //else we must split the input up and do some globbing
+
+ $refs;
+ foreach ( $keys as $key ) {
+ $ref = $this->mRefDB[(int)$key];
+ $refs[$ref['group']][$ref['number']] = $ref;
+ }
+
+ return $this->referenceFormat( $refs );
+ }
+
+ /**
+ * A presentational function which takes an array indexed by group, each element holding all the refs of
+ * that group in the current glob. Some sorting magic should be done and the final linked and prettified
+ * markup output. This is a nasty function and has lots of branches just to place commas in the right place.
+ *
+ * @param array $refs The array of arrays of refs
+ */
+ function referenceFormat($refs) {
+ $comma = wfMsgForContentNoTrans('cite_references_link_nearseparator');
+ $dash = wfMsgForContentNoTrans('cite_references_link_farseparator');
+
+ //We have an array refs holding the refs separated out into groups, and each group has its refs held by number.
+ //We just have to sort, and run a globbing function to insert commas and dashes correctly.
+ //We will not sort the groups (leave them in the order they came).
+ $output = "{$this->mPre}{$this->mBra}";
+ //The text to put before new groups; initially empty, then $comma forever after.
+ $first = '';
+ foreach ($refs as $groupname => $group) {
+ ksort($group);
+ //The number of the last thing actually printed; -10 at the start of a new group
+ $last = -10;
+
+ //First run: we split our array of numbers into runs, with the indices grouped in $dashing.
+ unset( $dashing );
+ foreach ( $group as $number => $ref) {
+ if ( $number == $last + 1 ) $dashing[count( $dashing ) - 1][] = $number;
+ else $dashing[][] = $number;
+ $last = $number;
+ }
+
+ //Second run: now we print out the groups, putting in dashes for runs of more than three.
+ foreach ( $dashing as $dashinggroup ) {
+ if ( $groupname == 'footnote' or count( $dashinggroup ) < 3 ) {//We use just commas
+ foreach ( $dashinggroup as $number ) {
+ $output .= "$first<a href=\"#{$group[$number]['href']}\" " .
+ " id=\"{$group[$number]['id']}\">{$group[$number]['text']}</a>";
+ $first = $comma;
+ }
+ } else {//We are dashing this group
+ //Start and end of this run of consecutive refs.
+ $start = $group[$dashinggroup[0]];
+ $end = $group[$dashinggroup[count($dashinggroup) - 1]];
+
+ $output .= "$first<a href=\"#{$start['href']}\" " .
+ " id=\"{$start['id']}\">{$start['text']}</a>$dash";
+ $first = $comma;
+
+ for ( $i = $dashinggroup[0] + 1; $i < $dashinggroup[count( $dashinggroup ) - 1]; ++$i ) {
+ $output .= "<a id=\"{$group[$i]['id']}\" href=\"#\"></a>";
+ }
+
+ $output .= "<a href=\"#{$end['href']}\" " .
+ " id=\"{$end['id']}\">{$end['text']}</a>";
+ }
+ }
+ }
+ $output .= "{$this->mKet}{$this->mPost}";
+ return $output;
+ }
+
/**#@-*/
}
diff -U 3 -H -b -w -B -E -d -t -r -N -- Cite r44396/citeParserTests.txt Cite my manual merge/citeParserTests.txt
--- Cite r44396/citeParserTests.txt 2008-11-17 22:00:08.000000000 +0000
+++ Cite my manual merge/citeParserTests.txt 2008-12-14 22:28:37.000000000 +0000
@@ -4,12 +4,14 @@
references
!! endhooks
+##NB: all descriptions match the regex "<ref", so the tests can be run as "php parserTests.php --regex='<ref'"
+
!! test
Simple <ref>, no <references/>
!! input
Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
!! result
-<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Wikipedia rocks!<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
!! end
@@ -20,9 +22,9 @@
<references/>
!! result
-<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Wikipedia rocks!<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
!! end
@@ -41,9 +43,9 @@
<references/>
!! result
-<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Templating<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> A <i>simple</i> template.</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> A <i>simple</i> template.</li></ol>
!! end
@@ -54,9 +56,9 @@
<references/>
!! result
-<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Templating<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> {{simple template}}</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> {{simple template}}</li></ol>
!! end
@@ -92,9 +94,9 @@
<references/>
!! result
-<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Templating<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Text</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> Text</li></ol>
!! end
@@ -107,7 +109,7 @@
<references/>
!! result
-<p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
<table class="gallery" cellspacing="0" cellpadding="0">
<tr>
@@ -118,7 +120,7 @@
</div></td>
</tr>
</table>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> one</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> one</li></ol>
!! end
@@ -127,7 +129,7 @@
!! input
{{REVISIONID}}<ref>elite</ref>
!! result
-<p>1337<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>1337<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
</p>
!! end
@@ -141,7 +143,7 @@
!! end
!! test
-Blank ref followed by ref with content
+Blank <ref> followed by <ref> with content
!! input
<ref name="blank"/>
@@ -149,15 +151,15 @@
<references/>
!! result
-<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
-</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
+<p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
+</p><p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::2">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1" title="">1.1</a></sup> content</li></ol>
+<ol class="references"><li id="cite_note-::1">↑ <sup><a href="#cite_ref-::1::1" title="">1.1</a></sup> <sup><a href="#cite_ref-::1::2" title="">1.2</a></sup> content</li></ol>
!! end
!! test
-Regression: non-blank ref "0" followed by ref with content
+Regression: non-blank <ref> "0" followed by <ref> with content
!! input
<ref name="blank">0</ref>
@@ -165,15 +167,15 @@
<references/>
!! result
-<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
-</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
+<p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
+</p><p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::2">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1" title="">1.1</a></sup> 0</li></ol>
+<ol class="references"><li id="cite_note-::1">↑ <sup><a href="#cite_ref-::1::1" title="">1.1</a></sup> <sup><a href="#cite_ref-::1::2" title="">1.2</a></sup> 0</li></ol>
!! end
!! test
-Regression sanity check: non-blank ref "1" followed by ref with content
+Regression sanity check: non-blank <ref> "1" followed by <ref> with content
!! input
<ref name="blank">1</ref>
@@ -181,75 +183,108 @@
<references/>
!! result
-<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
-</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
+<p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
+</p><p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::2">[1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1" title="">1.1</a></sup> 1</li></ol>
+<ol class="references"><li id="cite_note-::1">↑ <sup><a href="#cite_ref-::1::1" title="">1.1</a></sup> <sup><a href="#cite_ref-::1::2" title="">1.2</a></sup> 1</li></ol>
!! end
!! test
-Ref names containing a number
+<ref> names containing a number
!! input
<ref name="test123test">One</ref>
<ref name="123test">Two</ref>
<ref name="test123">Three</ref>
+<ref name="123">Four</ref>
<references />
!! result
-<p><sup id="cite_ref-test123test_0-0" class="reference"><a href="#cite_note-test123test-0" title="">[1]</a></sup>
-<sup id="cite_ref-123test_1-0" class="reference"><a href="#cite_note-123test-1" title="">[2]</a></sup>
-<sup id="cite_ref-test123_2-0" class="reference"><a href="#cite_note-test123-2" title="">[3]</a></sup>
+<p><sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
+<sup class="reference"><a href="#cite_note-::2" id="cite_ref-::2::1">[2]</a></sup>
+<sup class="reference"><a href="#cite_note-::3" id="cite_ref-::3::1">[3]</a></sup>
+<sup class="reference"><a href="#cite_note-::4" id="cite_ref-::4::1">[4]</a></sup>
</p>
-<ol class="references"><li id="cite_note-test123test-0"><a href="#cite_ref-test123test_0-0" title="">↑</a> One</li>
-<li id="cite_note-123test-1"><a href="#cite_ref-123test_1-0" title="">↑</a> Two</li>
-<li id="cite_note-test123-2"><a href="#cite_ref-test123_2-0" title="">↑</a> Three</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> One</li>
+<li id="cite_note-::2"><a href="#cite_ref-::2::1" title="">↑</a> Two</li>
+<li id="cite_note-::3"><a href="#cite_ref-::3::1" title="">↑</a> Three</li>
+<li id="cite_note-::4"><a href="#cite_ref-::4::1" title="">↑</a> Four</li></ol>
!! end
!! test
-Erroneous refs
+Erroneous <ref>s and <reference>s
!! input
-<ref name="0">Zero</ref>
+==Ref: We can get things wrong either with the name, the group, the text, or extra parameters.==
-<ref>Also zero, but differently! (Normal ref)</ref>
+Firstly, extra parameters: <ref extra/> <ref even="more"></ref> <ref and="further">stuff</ref>
+The parser picks up problems like this for us: <ref name="bar" name="baz" />
-<ref />
+Null text is false without a name: <ref /><ref group="dummy" />
+Empty text is treated the same: <ref></ref><ref group="dummy"></ref>
-<ref name="foo" name="bar" />
+The group can be anything (so this is not an error): <ref group="">good</ref>
-<ref name="blankwithnoreference" />
+The name cannot be absent if the string is empty: <ref name="correct" />
+The name must not be an empty string: <ref name="">bad</ref>
+==References: we need to make sure that no parameters appart from 'group' are accepted, and no text==
<references>I'm a references with something to say!</references>
-<references name="quasit" />
+<references dummy="quasit" /> <references group="test" dummy="quasit" />
+<references dummy="quasit"></references> <references group="test" dummy="quasit"></references>
+<references dummy="quasit">text</references> <references group="test" dummy="quasit">text</references>
+
+==(Tester tag to check output)==
<references />
!! result
-<p><strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
-name cannot be a simple integer. Use a descriptive title</strong>
-</p><p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
-</p><p><strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+<a name="Ref:_We_can_get_things_wrong_either_with_the_name.2C_the_group.2C_the_text.2C_or_extra_parameters."></a><h2><span class="editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Ref: We can get things wrong either with the name, the group, the text, or extra parameters.">edit</a>]</span> <span class="mw-headline">Ref: We can get things wrong either with the name, the group, the text, or extra parameters.</span></h2>
+<p>Firstly, extra parameters: <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+invalid names, e.g. too many</strong> <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+invalid names, e.g. too many</strong> <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+invalid names, e.g. too many</strong>
+The parser picks up problems like this for us: <sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
+</p><p>Null text is false without a name: <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no content must have a name</strong><strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
refs with no content must have a name</strong>
-</p><p><sup id="cite_ref-bar_1-0" class="reference"><a href="#cite_note-bar-1" title="">[2]</a></sup>
-</p><p><sup id="cite_ref-blankwithnoreference_2-0" class="reference"><a href="#cite_note-blankwithnoreference-2" title="">[3]</a></sup>
-</p><p><strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+Empty text is treated the same: <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no name must have content</strong><strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no name must have content</strong>
+</p><p>The group can be anything (so this is not an error): <sup class="reference"><a href="#cite_note-::2" id="cite_ref-::2::1">[2]</a></sup>
+</p><p>The name cannot be absent if the string is empty: <sup class="reference"><a href="#cite_note-::3" id="cite_ref-::3::1">[3]</a></sup>
+The name must not be an empty string: <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+refs with no content must have a name</strong>
+</p>
+<a name="References:_we_need_to_make_sure_that_no_parameters_appart_from_.27group.27_are_accepted.2C_and_no_text"></a><h2><span class="editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: References: we need to make sure that no parameters appart from 'group' are accepted, and no text">edit</a>]</span> <span class="mw-headline">References: we need to make sure that no parameters appart from 'group' are accepted, and no text</span></h2>
+<p><strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
no input is allowed. Use <code>&lt;references /&gt;</code></strong>
</p><p><strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
no parameters are allowed.
+Use <code>&lt;references /&gt;</code></strong> <strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+no parameters are allowed.
Use <code>&lt;references /&gt;</code></strong>
+<strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+no parameters are allowed.
+Use <code>&lt;references /&gt;</code></strong> <strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+no parameters are allowed.
+Use <code>&lt;references /&gt;</code></strong>
+</p><p><strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+no input is allowed. Use <code>&lt;references /&gt;</code></strong> <strong class="error">Cite error: Invalid <code>&lt;references&gt;</code> tag;
+no input is allowed. Use <code>&lt;references /&gt;</code></strong>
</p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Also zero, but differently! (Normal ref)</li>
-<li id="cite_note-bar"><a href="#cite_ref-bar_0" title="">↑</a> <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
-no text was provided for refs named <code>bar</code></strong></li>
-<li id="cite_note-blankwithnoreference"><a href="#cite_ref-blankwithnoreference_0" title="">↑</a> <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
-no text was provided for refs named <code>blankwithnoreference</code></strong></li></ol>
+<a name=".28Tester_tag_to_check_output.29"></a><h2><span class="editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: (Tester tag to check output)">edit</a>]</span> <span class="mw-headline">(Tester tag to check output)</span></h2>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>baz</code></strong></li>
+<li id="cite_note-::2"><a href="#cite_ref-::2::1" title="">↑</a> good</li>
+<li id="cite_note-::3"><a href="#cite_ref-::3::1" title="">↑</a> <strong class="error">Cite error: Invalid <code>&lt;ref&gt;</code> tag;
+no text was provided for refs named <code>correct</code></strong></li></ol>
!! end
!! test
-Simple <ref>, with <references/> in group
+Simple <ref>, with <references/>, in group
!! input
Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
Wikipedia rocks!<ref group=note>Proceeds of Rockology, vol. XXI</ref>
@@ -257,32 +292,87 @@
<references/>
<references group=note/>
!! result
-<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
-Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1" title="">[note 1]</a></sup>
+<p>Wikipedia rocks!<sup class="reference"><a href="#cite_note-::1" id="cite_ref-::1::1">[1]</a></sup>
+Wikipedia rocks!<sup class="reference"><a href="#cite_note-note::1" id="cite_ref-note::1::1">[note&nbsp;1]</a></sup>
</p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
-<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
+<ol class="references"><li id="cite_note-::1"><a href="#cite_ref-::1::1" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
+<ol class="references"><li id="cite_note-note::1"><a href="#cite_ref-note::1::1" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
!! end
!! test
-Simple <ref>, with <references/> in group, with groupname in chinese
+Simple <ref>, with <references/> in group, with groupnames in chinese and containing escape characters
!! input
-AAA<ref group="参">ref a</ref>BBB<ref group="注">note b</ref>CCC<ref group="参">ref c</ref>
+AAA<ref group="参">ref a</ref>BBB<ref group="注">note b</ref>CCC<ref group="参">ref c</ref>DDD<ref group="-:%A_\/&amp;">test</ref>EEE<ref group="-:%A_\/&">test</ref>
;refs
<references group="参" />
;notes
<references group="注" />
+;escape
+<references group="-:%A_\/&amp;" />
!! result
-<p>AAA<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[参 1]</a></sup>BBB<sup id="cite_ref-1" class="reference"><a href="#cite_note-1" title="">[注 1]</a></sup>CCC<sup id="cite_ref-2" class="reference"><a href="#cite_note-2" title="">[参 2]</a></sup>
+<p>AAA<sup class="reference"><a href="#cite_note-.E5.8F.82::1" id="cite_ref-.E5.8F.82::1::1">[参&nbsp;1]</a></sup>BBB<sup class="reference"><a href="#cite_note-.E6.B3.A8::1" id="cite_ref-.E6.B3.A8::1::1">[注&nbsp;1]</a></sup>CCC<sup class="reference"><a href="#cite_note-.E5.8F.82::2" id="cite_ref-.E5.8F.82::2::1">[参&nbsp;2]</a></sup>DDD<sup class="reference"><a href="#cite_note--:.25A_.5C.2F.26::1" id="cite_ref--:.25A_.5C.2F.26::1::1">[-:%A_\/&amp;&nbsp;1]</a></sup>EEE<sup class="reference"><a href="#cite_note--:.25A_.5C.2F.26::2" id="cite_ref--:.25A_.5C.2F.26::2::1">[-:%A_\/&amp;&nbsp;2]</a></sup>
</p>
<dl><dt>refs
</dt></dl>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> ref a</li>
-<li id="cite_note-2"><a href="#cite_ref-2" title="">↑</a> ref c</li></ol>
+<ol class="references"><li id="cite_note-.E5.8F.82::1"><a href="#cite_ref-.E5.8F.82::1::1" title="">↑</a> ref a</li>
+<li id="cite_note-.E5.8F.82::2"><a href="#cite_ref-.E5.8F.82::2::1" title="">↑</a> ref c</li></ol>
<dl><dt>notes
</dt></dl>
-<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1" title="">↑</a> note b</li></ol>
+<ol class="references"><li id="cite_note-.E6.B3.A8::1"><a href="#cite_ref-.E6.B3.A8::1::1" title="">↑</a> note b</li></ol>
+<dl><dt>escape
+</dt></dl>
+<ol class="references"><li id="cite_note--:.25A_.5C.2F.26::1"><a href="#cite_ref--:.25A_.5C.2F.26::1::1" title="">↑</a> test</li>
+<li id="cite_note--:.25A_.5C.2F.26::2"><a href="#cite_ref--:.25A_.5C.2F.26::2::1" title="">↑</a> test</li></ol>
+
+!! end
+
+!! test
+<ref>s using special footnote symbols
+!! input
+footnote a<ref group="footnote">aa</ref>
+footnote b<ref group="footnote" name="tester">bb</ref>
+
+<references group="footnote"/>
+!! result
+<p>footnote a<sup class="reference"><a href="#cite_note-footnote::1" id="cite_ref-footnote::1::1">[*]</a></sup>
+footnote b<sup class="reference"><a href="#cite_note-footnote::2" id="cite_ref-footnote::2::1">[†]</a></sup>
+</p>
+<ol class="references" style="list-style:none;margin-left: 3.2em;"><li id="cite_note-footnote::1"><div style="margin-left:-2em;width:1.5em;text-align:right;float:left;">*</div>&nbsp;<a href="#cite_ref-footnote::1::1" title="">↑</a> aa</li>
+<li id="cite_note-footnote::2"><div style="margin-left:-2em;width:1.5em;text-align:right;float:left;">†</div>&nbsp;<a href="#cite_ref-footnote::2::1" title="">↑</a> bb</li></ol>
+
+!! end
+
+!! test
+Comprehensive test of <ref> globbing, using every feature
+!! input
+<ref name="1"/><ref name="2"/>
+<ref name="1"/><ref name="2"/><ref name="3"/>
+
+<ref name="1"/><ref name="2"/><ref name="4"/>
+
+<ref name="5"/><ref name="3"/><ref name="4"/><ref name="1"/>
+
+<ref name="1" group="footnote"/><ref name="2" group="footnote"/>
+
+<ref name="1" group="footnote"/><ref name="2" group="footnote"/><ref name="3" group="footnote"/>
+
+<ref name="1" group="footnote"/><ref name="2" group="footnote"/><ref name="4" group="footnote"/>
+
+<ref name="5" group="footnote"/><ref name="3" group="footnote"/><ref name="4" group="footnote"/><ref name="1" group="footnote"/>
+
+<ref name="5"/><ref name="5" group="footnote"/><ref name="3" group="footnote"/><ref name="1"/><ref name="3"/><ref name="4" group="footnote"/><ref name="4"/><ref name="1" group="footnote"/>
+!! result
+<p><sup class="reference">[<a href="#cite_note-::1" id="cite_ref-::1::1">1</a>, <a href="#cite_note-::2" id="cite_ref-::2::1">2</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-::1" id="cite_ref-::1::2">1</a>&ndash;<a id="cite_ref-::2::2" href="#"></a><a href="#cite_note-::3" id="cite_ref-::3::1">3</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-::1" id="cite_ref-::1::3">1</a>, <a href="#cite_note-::2" id="cite_ref-::2::3">2</a>, <a href="#cite_note-::4" id="cite_ref-::4::1">4</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-::1" id="cite_ref-::1::4">1</a>, <a href="#cite_note-::3" id="cite_ref-::3::2">3</a>&ndash;<a id="cite_ref-::4::2" href="#"></a><a href="#cite_note-::5" id="cite_ref-::5::1">5</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-footnote::1" id="cite_ref-footnote::1::1">*</a>, <a href="#cite_note-footnote::2" id="cite_ref-footnote::2::1">†</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-footnote::1" id="cite_ref-footnote::1::2">*</a>, <a href="#cite_note-footnote::2" id="cite_ref-footnote::2::2">†</a>, <a href="#cite_note-footnote::3" id="cite_ref-footnote::3::1">⁑</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-footnote::1" id="cite_ref-footnote::1::3">*</a>, <a href="#cite_note-footnote::2" id="cite_ref-footnote::2::3">†</a>, <a href="#cite_note-footnote::4" id="cite_ref-footnote::4::1">‡</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-footnote::1" id="cite_ref-footnote::1::4">*</a>, <a href="#cite_note-footnote::3" id="cite_ref-footnote::3::2">⁑</a>, <a href="#cite_note-footnote::4" id="cite_ref-footnote::4::2">‡</a>, <a href="#cite_note-footnote::5" id="cite_ref-footnote::5::1">§</a>]</sup>
+</p><p><sup class="reference">[<a href="#cite_note-::1" id="cite_ref-::1::5">1</a>, <a href="#cite_note-::3" id="cite_ref-::3::3">3</a>&ndash;<a id="cite_ref-::4::3" href="#"></a><a href="#cite_note-::5" id="cite_ref-::5::2">5</a>, <a href="#cite_note-footnote::1" id="cite_ref-footnote::1::5">*</a>, <a href="#cite_note-footnote::3" id="cite_ref-footnote::3::3">⁑</a>, <a href="#cite_note-footnote::4" id="cite_ref-footnote::4::3">‡</a>, <a href="#cite_note-footnote::5" id="cite_ref-footnote::5::2">§</a>]</sup>
+</p>
!! end

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4848
Default Alt Text
patch.diff (120 KB)

Event Timeline