summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/HTTPClient.php14
-rw-r--r--inc/html.php13
-rw-r--r--inc/init.php2
-rw-r--r--inc/io.php16
-rw-r--r--inc/lang/da/denied.txt2
-rw-r--r--inc/lang/da/lang.php101
-rw-r--r--inc/lang/es/lang.php4
-rw-r--r--inc/lang/fr/lang.php2
-rw-r--r--inc/lang/he/lang.php26
-rw-r--r--inc/lang/he/resetpwd.txt3
-rw-r--r--inc/lang/ru/index.txt2
-rw-r--r--inc/lang/ru/lang.php6
-rw-r--r--inc/lang/zh/lang.php2
-rw-r--r--inc/parser/code.php5
-rw-r--r--inc/parser/renderer.php12
-rw-r--r--inc/parser/xhtml.php16
-rw-r--r--inc/template.php42
-rw-r--r--inc/utf8.php30
18 files changed, 199 insertions, 99 deletions
diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php
index 76d973c38..092216c57 100644
--- a/inc/HTTPClient.php
+++ b/inc/HTTPClient.php
@@ -592,18 +592,22 @@ class HTTPClient {
// set correct peer name for verification (enabled since PHP 5.6)
stream_context_set_option($socket, 'ssl', 'peer_name', $requestinfo['host']);
- // Because of older PHP versions having trouble with TLS (enable_crypto returns true, but
- // the conection still borks) we try SSLv3 first
- if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) {
+ // because SSLv3 is mostly broken, we try TLS connections here first.
+ // according to https://github.com/splitbrain/dokuwiki/commit/c05ef534 we had problems with certain
+ // setups with this solution before, but we have no usable test for that and TLS should be the more
+ // common crypto by now
+ if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
$requesturl = $requestinfo['path'];
return true;
}
- // If the proxy does not support SSLv3 we try TLS
- if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
+ // if the above failed, this will most probably not work either, but we can try
+ if (@stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)) {
$requesturl = $requestinfo['path'];
return true;
}
+
+ throw new HTTPClientException('Failed to set up crypto for secure connection to '.$requestinfo['host'], -151);
}
throw new HTTPClientException('Failed to establish secure proxy connection', -150);
diff --git a/inc/html.php b/inc/html.php
index 3a93a6604..4bf784502 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -232,6 +232,14 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='',$label=false
return $ret;
}
+/**
+ * show a revision warning
+ *
+ * @author Szymon Olewniczak <dokuwiki@imz.re>
+ */
+function html_showrev() {
+ print p_locale_xhtml('showrev');
+}
/**
* Show a wiki page
@@ -265,7 +273,10 @@ function html_show($txt=null){
echo '</div></div>';
}else{
- if ($REV||$DATE_AT) print p_locale_xhtml('showrev');
+ if ($REV||$DATE_AT){
+ $data = array('rev' => &$REV, 'date_at' => &$DATE_AT);
+ trigger_event('HTML_SHOWREV_OUTPUT', $data, 'html_showrev');
+ }
$html = p_wiki_xhtml($ID,$REV,true,$DATE_AT);
$html = html_secedit($html,$secedit);
if($INFO['prependTOC']) $html = tpl_toc(true).$html;
diff --git a/inc/init.php b/inc/init.php
index 91bc77f98..bc9ab6d70 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -535,7 +535,7 @@ function nice_die($msg){
</body>
</html>
EOT;
- exit;
+ exit(1);
}
/**
diff --git a/inc/io.php b/inc/io.php
index 3ed227162..0636a4b62 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -101,7 +101,7 @@ function _io_readWikiPage_action($data) {
*
* @param string $file filename
* @param bool $clean
- * @return string
+ * @return string|bool the file contents or false on error
*/
function io_readFile($file,$clean=true){
$ret = '';
@@ -114,7 +114,7 @@ function io_readFile($file,$clean=true){
$ret = file_get_contents($file);
}
}
- if($clean){
+ if($ret !== false && $clean){
return cleanText($ret);
}else{
return $ret;
@@ -124,22 +124,28 @@ function io_readFile($file,$clean=true){
* Returns the content of a .bz2 compressed file as string
*
* @author marcel senf <marcel@rucksackreinigung.de>
+ * @author Andreas Gohr <andi@splitbrain.org>
*
* @param string $file filename
- * @return string content
+ * @return string|bool content or false on error
*/
function bzfile($file){
$bz = bzopen($file,"r");
+ if($bz === false) return false;
+
$str = '';
while (!feof($bz)){
//8192 seems to be the maximum buffersize?
- $str = $str . bzread($bz,8192);
+ $buffer = bzread($bz,8192);
+ if(($buffer === false) || (bzerrno($bz) !== 0)) {
+ return false;
+ }
+ $str = $str . $buffer;
}
bzclose($bz);
return $str;
}
-
/**
* Used to write out a DokuWiki page to file, and send IO_WIKIPAGE_WRITE events.
*
diff --git a/inc/lang/da/denied.txt b/inc/lang/da/denied.txt
index 7bf3b8b9b..217d8937e 100644
--- a/inc/lang/da/denied.txt
+++ b/inc/lang/da/denied.txt
@@ -1,3 +1,3 @@
-====== Adgang nægtet! ======
+====== Adgang nægtet ======
Du har ikke rettigheder til at fortsætte.
diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php
index 3b353d50c..e7c597f2b 100644
--- a/inc/lang/da/lang.php
+++ b/inc/lang/da/lang.php
@@ -19,6 +19,7 @@
* @author soer9648 <soer9648@eucl.dk>
* @author Søren Birk <sbi@eucl.dk>
* @author Søren Birk <soer9648@eucl.dk>
+ * @author Jacob Palm <mail@jacobpalm.dk>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -58,7 +59,7 @@ $lang['btn_resendpwd'] = 'Vælg ny adgangskode';
$lang['btn_draft'] = 'Redigér kladde';
$lang['btn_recover'] = 'Gendan kladde';
$lang['btn_draftdel'] = 'Slet kladde';
-$lang['btn_revert'] = 'Reetablér';
+$lang['btn_revert'] = 'Gendan';
$lang['btn_register'] = 'Registrér';
$lang['btn_apply'] = 'Anvend';
$lang['btn_media'] = 'Media Manager';
@@ -76,7 +77,7 @@ $lang['fullname'] = 'Fulde navn';
$lang['email'] = 'E-mail';
$lang['profile'] = 'Brugerprofil';
$lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.';
-$lang['badpassconfirm'] = 'Kodeordet var desværre forkert';
+$lang['badpassconfirm'] = 'Adgangkode var desværre forkert';
$lang['minoredit'] = 'Mindre ændringer';
$lang['draftdate'] = 'Kladde automatisk gemt d.';
$lang['nosecedit'] = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.';
@@ -88,26 +89,26 @@ $lang['regsuccess2'] = 'Du er nu oprettet som bruger.';
$lang['regmailfail'] = 'Dit adgangskode blev ikke sendt. Kontakt venligst administratoren.';
$lang['regbadmail'] = 'E-mail-adressen er ugyldig. Kontakt venligst administratoren, hvis du mener dette er en fejl.';
$lang['regbadpass'] = 'De to adgangskoder er ikke ens, vær venlig at prøve igen.';
-$lang['regpwmail'] = 'Dit DokuWiki password';
+$lang['regpwmail'] = 'Dit adgangskode til DokuWiki';
$lang['reghere'] = 'Opret en DokuWiki-konto her';
$lang['profna'] = 'Denne wiki understøtter ikke ændring af profiler';
$lang['profnochange'] = 'Ingen ændringer, intet modificeret.';
$lang['profnoempty'] = 'Tomt navn eller e-mail adresse er ikke tilladt.';
$lang['profchanged'] = 'Brugerprofil opdateret korrekt.';
-$lang['profnodelete'] = 'Denne wiki supporterer ikke sletning af brugere';
-$lang['profdeleteuser'] = 'Slet Konto';
+$lang['profnodelete'] = 'Denne wiki understøtter ikke sletning af brugere';
+$lang['profdeleteuser'] = 'Slet konto';
$lang['profdeleted'] = 'Din brugerkonto er blevet slettet fra denne wiki';
$lang['profconfdelete'] = 'Jeg ønsker at slette min konto fra denne wiki. <br/> Denne handling kan ikke fortrydes.';
-$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få et nyt';
-$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af nyt adgangskode.';
-$lang['resendpwd'] = 'Vælg ny adgangskode for';
+$lang['pwdforget'] = 'Har du glemt dit adgangskode? Få en ny';
+$lang['resendna'] = 'Denne wiki understøtter ikke udsendelse af ny adgangskode.';
+$lang['resendpwd'] = 'Vælg en ny adgangskode for';
$lang['resendpwdmissing'] = 'Du skal udfylde alle felter.';
$lang['resendpwdnouser'] = 'Vi kan ikke finde denne bruger i vores database.';
$lang['resendpwdbadauth'] = 'Beklager, denne autoriseringskode er ikke gyldig. Kontroller venligst at du benyttede det fulde link til bekræftelse.';
-$lang['resendpwdconfirm'] = 'Et henvisning med bekræftelse er blevet sendt med email.';
-$lang['resendpwdsuccess'] = 'Dit nye adgangskode er blevet sendt med e-mail.';
-$lang['license'] = 'Med mindre andet angivet, vil indhold på denne wiki blive frigjort under følgende licens:';
-$lang['licenseok'] = 'Note: ved at ændre denne side, acceptere du at dit indhold bliver frigivet under følgende licens:';
+$lang['resendpwdconfirm'] = 'En e-mail med et link til bekræftelse er blevet sendt.';
+$lang['resendpwdsuccess'] = 'Din nye adgangskode er blevet sendt med e-mail.';
+$lang['license'] = 'Med mindre andet angivet, vil indhold på denne wiki blive udgivet under følgende licens:';
+$lang['licenseok'] = 'Bemærk - ved at redigere denne side, accepterer du at dit indhold bliver frigivet under følgende licens:';
$lang['searchmedia'] = 'Søg filnavn';
$lang['searchmedia_in'] = 'Søg i %s';
$lang['txt_upload'] = 'Vælg den fil der skal overføres:';
@@ -117,76 +118,76 @@ $lang['maxuploadsize'] = 'Upload max. %s pr. fil.';
$lang['lockedby'] = 'Midlertidig låst af:';
$lang['lockexpire'] = 'Lås udløber kl:.';
$lang['js']['willexpire'] = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.';
-$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet
+$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet.
Fortsæt alligevel?';
$lang['js']['searchmedia'] = 'Søg efter filer';
$lang['js']['keepopen'] = 'Hold vindue åbent ved valg';
$lang['js']['hidedetails'] = 'Skjul detaljer';
$lang['js']['mediatitle'] = 'Link indstillinger';
$lang['js']['mediadisplay'] = 'Link type';
-$lang['js']['mediaalign'] = 'Juster';
+$lang['js']['mediaalign'] = 'Justering';
$lang['js']['mediasize'] = 'Billede størrelse';
-$lang['js']['mediatarget'] = 'Link mål';
+$lang['js']['mediatarget'] = 'Link destination';
$lang['js']['mediaclose'] = 'Luk';
$lang['js']['mediainsert'] = 'Indsæt';
$lang['js']['mediadisplayimg'] = 'Vis billedet';
$lang['js']['mediadisplaylnk'] = 'Vis kun linket';
$lang['js']['mediasmall'] = 'Lille version';
-$lang['js']['mediamedium'] = 'Medium version';
+$lang['js']['mediamedium'] = 'Mellem version';
$lang['js']['medialarge'] = 'Stor version';
$lang['js']['mediaoriginal'] = 'Original version';
$lang['js']['medialnk'] = 'Link til detajle side';
$lang['js']['mediadirect'] = 'Direkte link til originalen';
$lang['js']['medianolnk'] = 'Intet link';
-$lang['js']['medianolink'] = 'Link ikke billedet';
+$lang['js']['medianolink'] = 'Link ikke til billedet';
$lang['js']['medialeft'] = 'Juster billedet til venstre';
$lang['js']['mediaright'] = 'Juster billedet til højre';
$lang['js']['mediacenter'] = 'Centreret';
$lang['js']['medianoalign'] = 'Brug ingen justering';
$lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer.
Du kan stadig kopiere og indsætte linket.';
-$lang['js']['linkwiz'] = 'guiden til henvisninger';
-$lang['js']['linkto'] = 'Henvise til:';
+$lang['js']['linkwiz'] = 'Guiden til henvisninger';
+$lang['js']['linkto'] = 'Henvis til:';
$lang['js']['del_confirm'] = 'Slet valgte post(er)?';
-$lang['js']['restore_confirm'] = 'Vil du virkeligt genskabe denne version?';
+$lang['js']['restore_confirm'] = 'Er du sikker på at du vil genskabe denne version?';
$lang['js']['media_diff'] = 'Vis forskelle:';
$lang['js']['media_diff_both'] = 'Side ved Side';
-$lang['js']['media_diff_opacity'] = 'Skin-igennem';
+$lang['js']['media_diff_opacity'] = 'Skin igennem';
$lang['js']['media_diff_portions'] = 'Skub';
$lang['js']['media_select'] = 'Vælg filer...';
-$lang['js']['media_upload_btn'] = 'Upload';
+$lang['js']['media_upload_btn'] = 'Overfør';
$lang['js']['media_done_btn'] = 'Færdig';
-$lang['js']['media_drop'] = 'Drop filer her for at uploade';
+$lang['js']['media_drop'] = 'Træk filer hertil for at overføre';
$lang['js']['media_cancel'] = 'fjern';
$lang['js']['media_overwrt'] = 'Overskriv eksisterende filer';
-$lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: ';
+$lang['rssfailed'] = 'Der opstod en fejl ved hentning af dette feed: ';
$lang['nothingfound'] = 'Søgningen gav intet resultat.';
$lang['mediaselect'] = 'Vælg mediefil';
-$lang['fileupload'] = 'Overføre mediefil';
-$lang['uploadsucc'] = 'Overførelse var en succes';
-$lang['uploadfail'] = 'Overførelse fejlede. Der er muligvis problemer med rettighederne.';
-$lang['uploadwrong'] = 'Overførelse afvist. Filtypen er ikke tilladt.';
+$lang['fileupload'] = 'Overfør mediefil';
+$lang['uploadsucc'] = 'Overførels blev fuldført';
+$lang['uploadfail'] = 'Overførslen fejlede. Der er muligvis problemer med rettighederne.';
+$lang['uploadwrong'] = 'Overførslen blev afvist. Filtypen er ikke tilladt.';
$lang['uploadexist'] = 'Filen eksisterer allerede.';
-$lang['uploadbadcontent'] = 'Overføret indhold tilsvaret ikke til %s fil-endelsen.';
+$lang['uploadbadcontent'] = 'Det overført indhold svarer ikke til %s fil-endelsen.';
$lang['uploadspam'] = 'Overførelsen blev blokeret af spam sortlisten.';
$lang['uploadxss'] = 'Overførelsen blev blokeret på grund af mulig skadeligt indhold.';
-$lang['uploadsize'] = 'Den overføret fil var for stor (max. %s)';
+$lang['uploadsize'] = 'Den overførte fil var for stor (maksimal størrelse %s)';
$lang['deletesucc'] = 'Filen "%s" er blevet slettet.';
-$lang['deletefail'] = '"%s" kunne ikke slettes - check rettighederne.';
-$lang['mediainuse'] = 'Filen "%s" er ikke slettet - den er stadig i brug.';
+$lang['deletefail'] = '"%s" kunne ikke slettes - kontroller rettighederne.';
+$lang['mediainuse'] = 'Filen "%s" kan ikke slettes - den er stadig i brug.';
$lang['namespaces'] = 'Navnerum';
$lang['mediafiles'] = 'Tilgængelige filer i';
-$lang['accessdenied'] = 'Du har ikke tilladelse til at se denne side';
+$lang['accessdenied'] = 'Du har ikke tilladelse til at se denne side.';
$lang['mediausage'] = 'Brug den følgende syntaks til at henvise til denne fil:';
$lang['mediaview'] = 'Vis oprindelig fil';
$lang['mediaroot'] = 'rod';
$lang['mediaupload'] = 'Overføre en fil til det nuværende navnerum her. For at oprette under-navnerum, tilføj dem til "Overføre som" filnavnet, adskilt af kolontegn.';
-$lang['mediaextchange'] = 'Filudvidelse ændret fra .%s til .%s!';
+$lang['mediaextchange'] = 'Filtype ændret fra .%s til .%s!';
$lang['reference'] = 'Henvisning til';
$lang['ref_inuse'] = 'Filen kan ikke slettes, da den stadig er i brug på følgende sider:';
-$lang['ref_hidden'] = 'Nogle henvisninger er i dokumenter du ikke har læserettigheder til';
+$lang['ref_hidden'] = 'Nogle henvisninger er på sider du ikke har læserettigheder til';
$lang['hits'] = 'Besøg';
-$lang['quickhits'] = 'Tilsvarende dokumentnavne';
+$lang['quickhits'] = 'Tilsvarende sidenavne';
$lang['toc'] = 'Indholdsfortegnelse';
$lang['current'] = 'nuværende';
$lang['yours'] = 'Din version';
@@ -195,7 +196,7 @@ $lang['diff2'] = 'Vis forskelle i forhold til de valgte revision
$lang['difflink'] = 'Link til denne sammenlinings vising';
$lang['diff_type'] = 'Vis forskelle:';
$lang['diff_inline'] = 'Indeni';
-$lang['diff_side'] = 'Side ved Side';
+$lang['diff_side'] = 'Side ved side';
$lang['diffprevrev'] = 'Forrige revision';
$lang['diffnextrev'] = 'Næste revision';
$lang['difflastrev'] = 'Sidste revision';
@@ -208,26 +209,26 @@ $lang['lastmod'] = 'Sidst ændret:';
$lang['by'] = 'af';
$lang['deleted'] = 'slettet';
$lang['created'] = 'oprettet';
-$lang['restored'] = 'gammel udgave reetableret (%s)';
+$lang['restored'] = 'gammel udgave gendannet (%s)';
$lang['external_edit'] = 'ekstern redigering';
-$lang['summary'] = 'Redigerings resumé';
-$lang['noflash'] = 'Den <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> er nødvendig til at vise denne indehold.';
-$lang['download'] = 'Hente kodestykke';
+$lang['summary'] = 'Resumé af ændrigner';
+$lang['noflash'] = 'Du skal installere <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a> for at kunne se dette indhold.';
+$lang['download'] = 'Hent kodestykke';
$lang['tools'] = 'Værktøjer';
$lang['user_tools'] = 'Brugerværktøjer';
$lang['site_tools'] = 'Webstedsværktøjer';
$lang['page_tools'] = 'Sideværktøjer';
$lang['skip_to_content'] = 'hop til indhold';
$lang['sidebar'] = 'Sidebjælke';
-$lang['mail_newpage'] = 'dokument tilføjet:';
-$lang['mail_changed'] = 'dokument ændret:';
-$lang['mail_subscribe_list'] = 'sider ændret i navnerum';
+$lang['mail_newpage'] = 'side tilføjet:';
+$lang['mail_changed'] = 'side ændret:';
+$lang['mail_subscribe_list'] = 'sider ændret i navnerum:';
$lang['mail_new_user'] = 'Ny bruger';
-$lang['mail_upload'] = 'fil overføret:';
+$lang['mail_upload'] = 'fil overført:';
$lang['changes_type'] = 'Vis ændringer af';
$lang['pages_changes'] = 'Sider';
-$lang['media_changes'] = 'Media filer';
-$lang['both_changes'] = 'Både sider og media filer';
+$lang['media_changes'] = 'Mediefiler';
+$lang['both_changes'] = 'Både sider og medie filer';
$lang['qb_bold'] = 'Fed';
$lang['qb_italic'] = 'Kursiv';
$lang['qb_underl'] = 'Understregning';
@@ -239,7 +240,7 @@ $lang['qb_h3'] = 'Niveau 3 overskrift';
$lang['qb_h4'] = 'Niveau 4 overskrift';
$lang['qb_h5'] = 'Niveau 5 overskrift';
$lang['qb_h'] = 'Overskrift';
-$lang['qb_hs'] = 'Vælg overskriften';
+$lang['qb_hs'] = 'Vælg overskrift';
$lang['qb_hplus'] = 'Højere overskriftsniveau';
$lang['qb_hminus'] = 'Lavere overskriftsniveau';
$lang['qb_hequal'] = 'Samme overskriftsniveau';
@@ -247,7 +248,7 @@ $lang['qb_link'] = 'Intern henvisning';
$lang['qb_extlink'] = 'Ekstern henvisning';
$lang['qb_hr'] = 'Vandret linje';
$lang['qb_ol'] = 'Nummereret liste';
-$lang['qb_ul'] = 'Unummereret liste';
+$lang['qb_ul'] = 'Punktopstilling';
$lang['qb_media'] = 'Tilføj billeder og andre filer';
$lang['qb_sig'] = 'Indsæt signatur';
$lang['qb_smileys'] = 'Smileys';
@@ -255,7 +256,7 @@ $lang['qb_chars'] = 'Specialtegn';
$lang['upperns'] = 'Gå til overordnet navnerum';
$lang['admin_register'] = 'Tilføj ny bruger';
$lang['metaedit'] = 'Rediger metadata';
-$lang['metasaveerr'] = 'Skrivning af metadata fejlede';
+$lang['metasaveerr'] = 'Fejl under skrivning af metadata';
$lang['metasaveok'] = 'Metadata gemt';
$lang['img_title'] = 'Titel:';
$lang['img_caption'] = 'Billedtekst:';
diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php
index 8f4cb2977..865110ab9 100644
--- a/inc/lang/es/lang.php
+++ b/inc/lang/es/lang.php
@@ -37,6 +37,7 @@
* @author Antonio Castilla <antoniocastilla@trazoide.com>
* @author Jonathan Hernández <me@jhalicea.com>
* @author pokesakura <pokesakura@gmail.com>
+ * @author Álvaro Iradier <airadier@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -98,7 +99,7 @@ $lang['badpassconfirm'] = 'Lo siento, la contraseña es errónea';
$lang['minoredit'] = 'Cambios menores';
$lang['draftdate'] = 'Borrador guardado automáticamente:';
$lang['nosecedit'] = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.';
-$lang['searchcreatepage'] = "Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón ''Crea esta página''.";
+$lang['searchcreatepage'] = 'Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón \'\'Crea esta página\'\'.';
$lang['regmissing'] = 'Lo siento, tienes que completar todos los campos.';
$lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.';
$lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.';
@@ -369,3 +370,4 @@ $lang['currentns'] = 'Espacio de nombres actual';
$lang['searchresult'] = 'Resultado de la búsqueda';
$lang['plainhtml'] = 'HTML sencillo';
$lang['wikimarkup'] = 'Etiquetado Wiki';
+$lang['page_nonexist_rev'] = 'La página no existía en %s. Por tanto fue creada en <a href="%s">%s</a>.';
diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php
index 9deff1220..fb3890c9e 100644
--- a/inc/lang/fr/lang.php
+++ b/inc/lang/fr/lang.php
@@ -228,7 +228,7 @@ $lang['restored'] = 'ancienne révision (%s) restaurée';
$lang['external_edit'] = 'modification externe';
$lang['summary'] = 'Résumé';
$lang['noflash'] = 'L\'<a href="http://www.adobe.com/products/flashplayer/">extension Adobe Flash</a> est nécessaire pour afficher ce contenu.';
-$lang['download'] = 'Télécharger un extrait';
+$lang['download'] = 'Télécharger cet extrait';
$lang['tools'] = 'Outils';
$lang['user_tools'] = 'Outils pour utilisateurs';
$lang['site_tools'] = 'Outils du site';
diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php
index 5e2ecbdff..1b8710df9 100644
--- a/inc/lang/he/lang.php
+++ b/inc/lang/he/lang.php
@@ -13,6 +13,7 @@
* @author alex <ralexay@gmail.com>
* @author matt carroll <matt.carroll@gmail.com>
* @author tomer <tomercarolldergicz@gmail.com>
+ * @author itsho <itsho.itsho@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'rtl';
@@ -57,6 +58,8 @@ $lang['btn_register'] = 'הרשמה';
$lang['btn_apply'] = 'ליישם';
$lang['btn_media'] = 'מנהל המדיה';
$lang['btn_deleteuser'] = 'להסיר את החשבון שלי';
+$lang['btn_img_backto'] = 'חזרה אל %s';
+$lang['btn_mediaManager'] = 'צפה במנהל מדיה';
$lang['loggedinas'] = 'נכנסת בשם:';
$lang['user'] = 'שם משתמש';
$lang['pass'] = 'ססמה';
@@ -188,6 +191,11 @@ $lang['difflink'] = 'קישור לתצוגה השוואה זו';
$lang['diff_type'] = 'הצגת הבדלים:';
$lang['diff_inline'] = 'באותה השורה';
$lang['diff_side'] = 'זה לצד זה';
+$lang['diffprevrev'] = 'הגירסה הקודמת';
+$lang['diffnextrev'] = 'הגירסה הבאה';
+$lang['difflastrev'] = 'הגירסה האחרונה';
+$lang['diffbothprevrev'] = 'גירסה קודמת בשני הצדדים';
+$lang['diffbothnextrev'] = 'הגירסה הבאה בשני הצדדים';
$lang['line'] = 'שורה';
$lang['breadcrumb'] = 'ביקורים אחרונים:';
$lang['youarehere'] = 'זהו מיקומך:';
@@ -244,7 +252,6 @@ $lang['admin_register'] = 'הוספת משתמש חדש';
$lang['metaedit'] = 'עריכת נתוני העל';
$lang['metasaveerr'] = 'אירע כשל בשמירת נתוני העל';
$lang['metasaveok'] = 'נתוני העל נשמרו';
-$lang['btn_img_backto'] = 'חזרה אל %s';
$lang['img_title'] = 'שם:';
$lang['img_caption'] = 'כותרת:';
$lang['img_date'] = 'תאריך:';
@@ -257,7 +264,6 @@ $lang['img_camera'] = 'מצלמה:';
$lang['img_keywords'] = 'מילות מפתח:';
$lang['img_width'] = 'רוחב:';
$lang['img_height'] = 'גובה:';
-$lang['btn_mediaManager'] = 'צפה במנהל מדיה';
$lang['subscr_subscribe_success'] = '%s נוסף לרשימת המינויים לדף %s';
$lang['subscr_subscribe_error'] = 'אירעה שגיאה בהוספת %s לרשימת המינויים לדף %s';
$lang['subscr_subscribe_noaddress'] = 'אין כתובת המשויכת עם הכניסה שלך, נא ניתן להוסיף אותך לרשימת המינויים';
@@ -287,6 +293,7 @@ $lang['i_modified'] = 'משיקולי אבטחה סקריפט זה י
<a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
$lang['i_funcna'] = 'פונקציית ה-PHP&rlm; <code>%s</code> אינה זמינה. יתכן כי מארח האתר חסם אותה מסיבה כלשהי?';
$lang['i_phpver'] = 'גרסת PHP שלך <code>%s</code> נמוכה מ <code>%s</code> הצורך. אתה צריך לשדרג PHP שלך להתקין.';
+$lang['i_mbfuncoverload'] = 'יש לבטל את mbstring.func_overload בphp.ini בכדי להריץ את DokuWiki';
$lang['i_permfail'] = '<code>%s</code> אינה ניתנת לכתיבה על ידי DokuWiki. עליך לשנות הרשאות תיקייה זו!';
$lang['i_confexists'] = '<code>%s</code> כבר קיים';
$lang['i_writeerr'] = 'אין אפשרות ליצור את <code>%s</code>. נא לבדוק את הרשאות הקובץ/תיקייה וליצור את הקובץ ידנית.';
@@ -326,3 +333,18 @@ $lang['media_sort_date'] = 'תאריך';
$lang['media_namespaces'] = 'בחר מרחב שמות';
$lang['media_files'] = 'קבצים ב s%';
$lang['media_upload'] = 'להעלות s%';
+$lang['media_search'] = 'חיפוש ב%s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s ב %s';
+$lang['media_edit'] = 'ערוך %s';
+$lang['media_history'] = 'היסטוריה של %s';
+$lang['media_meta_edited'] = 'metadata נערך';
+$lang['media_perm_read'] = 'מצטערים, אין לך הרשאות לקרוא קבצים.';
+$lang['media_perm_upload'] = 'מצטערים, אין לך הרשאות להעלות קבצים.';
+$lang['media_update'] = 'העלה גירסה חדשה';
+$lang['media_restore'] = 'שחזר גירסה זו';
+$lang['currentns'] = 'שם מרחב נוכחי';
+$lang['searchresult'] = 'תוצאות חיפוש';
+$lang['plainhtml'] = 'HTML פשוט';
+$lang['page_nonexist_rev'] = 'העמוד לא קיים ב%s. העמוד נוצר במקום זאת ב<a href="%s">%s</a>.';
+$lang['unable_to_parse_date'] = 'לא ניתן לפענח פרמטר "%s".';
diff --git a/inc/lang/he/resetpwd.txt b/inc/lang/he/resetpwd.txt
new file mode 100644
index 000000000..bd7b5ace4
--- /dev/null
+++ b/inc/lang/he/resetpwd.txt
@@ -0,0 +1,3 @@
+====== קבע סיסמה חדשה ======
+
+אנא הכנס סיסמה חדשה לחשבון שלך בויקי זה. \ No newline at end of file
diff --git a/inc/lang/ru/index.txt b/inc/lang/ru/index.txt
index fc42f87ff..ab669918a 100644
--- a/inc/lang/ru/index.txt
+++ b/inc/lang/ru/index.txt
@@ -1,4 +1,4 @@
====== Содержание ======
-Перед вами список доступных страниц, упорядоченный по ([[doku>namespaces|пространствам имён]]).
+Перед вами список доступных страниц, упорядоченный по [[doku>namespaces|пространствам имён]].
diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php
index ffe513386..96278d53b 100644
--- a/inc/lang/ru/lang.php
+++ b/inc/lang/ru/lang.php
@@ -107,7 +107,7 @@ $lang['profchanged'] = 'Профиль пользователя усп
$lang['profnodelete'] = 'Удалённый пользователь не может работать с этим документом';
$lang['profdeleteuser'] = 'Удалить аккаунт';
$lang['profdeleted'] = 'Ваш аккаунт был удален из этой вики';
-$lang['profconfdelete'] = 'Я хочу удалить мой аккаунт из этой вики.<br />Это действие необратимо.';
+$lang['profconfdelete'] = 'Я хочу удалить свой аккаунт из этой вики. <br /> Это действие необратимо.';
$lang['profconfdeletemissing'] = 'Флажок подтверждения не установлен';
$lang['pwdforget'] = 'Забыли пароль? Получите новый';
$lang['resendna'] = 'Данная вики не поддерживает повторную отправку пароля.';
@@ -179,7 +179,7 @@ $lang['uploadexist'] = 'Файл с таким именем сущес
$lang['uploadbadcontent'] = 'Содержание файла не соответствует расширению %s.';
$lang['uploadspam'] = 'Загрузка заблокирована спам-фильтром.';
$lang['uploadxss'] = 'Загрузка заблокирована по соображениям безопасности.';
-$lang['uploadsize'] = 'Загруженный файл был слишком большой. (макс. %s)';
+$lang['uploadsize'] = 'Загруженный файл был слишком большой. (Макс. %s)';
$lang['deletesucc'] = 'Файл «%s» был удалён.';
$lang['deletefail'] = 'Невозможно удалить файл «%s». Проверьте права доступа к файлу.';
$lang['mediainuse'] = 'Файл «%s» не был удалён — файл всё ещё используется.';
@@ -307,7 +307,7 @@ $lang['i_modified'] = 'Из соображений безопасно
<a href="http://www.dokuwiki.org/install">инструкции по установке «Докувики»</a>';
$lang['i_funcna'] = 'Функция PHP <code>%s</code> недоступна. Может быть, она по какой-то причине заблокирована вашим хостером?';
$lang['i_phpver'] = 'Ваша версия PHP (<code>%s</code>) ниже требуемой (<code>%s</code>). Вам необходимо обновить установленную версию PHP.';
-$lang['i_mbfuncoverload'] = 'Для запуска "Докувики" необходимо отключить параметр mbstring.func_overload в php.ini';
+$lang['i_mbfuncoverload'] = 'Для запуска «Докувики» необходимо отключить параметр mbstring.func_overload в php.ini';
$lang['i_permfail'] = '<code>%s</code> недоступна для записи «Докувики». Вам необходимо исправить системные права доступа для этой директории!';
$lang['i_confexists'] = '<code>%s</code> уже существует';
$lang['i_writeerr'] = 'Не удалось создать <code>%s</code>. Вам необходимо проверить системные права доступа к файлу и директориям, и создать файл вручную. ';
diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php
index d960eb799..6f55834d0 100644
--- a/inc/lang/zh/lang.php
+++ b/inc/lang/zh/lang.php
@@ -360,3 +360,5 @@ $lang['currentns'] = '当前命名空间';
$lang['searchresult'] = '搜索结果';
$lang['plainhtml'] = '纯HTML';
$lang['wikimarkup'] = 'Wiki Markup 语言';
+$lang['page_nonexist_rev'] = '页面在 %s 不存在。它曾创建于 <a href="%s">%s</a>。';
+$lang['unable_to_parse_date'] = '无法解析参数 "%s"。';
diff --git a/inc/parser/code.php b/inc/parser/code.php
index 00b956c27..2353e0dfa 100644
--- a/inc/parser/code.php
+++ b/inc/parser/code.php
@@ -21,6 +21,11 @@ class Doku_Renderer_code extends Doku_Renderer {
$filename = utf8_basename($filename);
$filename = utf8_stripspecials($filename, '_');
+ // send CRLF to Windows clients
+ if(strpos($INPUT->server->str('HTTP_USER_AGENT'), 'Windows') !== false) {
+ $text = str_replace("\n", "\r\n", $text);
+ }
+
if($this->_codeblock == $INPUT->str('codeblock')) {
header("Content-Type: text/plain; charset=utf-8");
header("Content-Disposition: attachment; filename=$filename");
diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php
index e1d28267a..35bdd0e3f 100644
--- a/inc/parser/renderer.php
+++ b/inc/parser/renderer.php
@@ -708,6 +708,18 @@ class Doku_Renderer extends DokuWiki_Plugin {
}
/**
+ * Open a table body
+ */
+ function tabletbody_open() {
+ }
+
+ /**
+ * Close a table body
+ */
+ function tabletbody_close() {
+ }
+
+ /**
* Open a table row
*/
function tablerow_open() {
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index c68d206be..d1bf91a02 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -1290,6 +1290,20 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
/**
+ * Open a table body
+ */
+ function tabletbody_open() {
+ $this->doc .= DOKU_TAB.'<tbody>'.DOKU_LF;
+ }
+
+ /**
+ * Close a table body
+ */
+ function tabletbody_close() {
+ $this->doc .= DOKU_TAB.'</tbody>'.DOKU_LF;
+ }
+
+ /**
* Open a table row
*/
function tablerow_open() {
@@ -1753,7 +1767,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$out .= '</audio>'.NL;
return $out;
}
-
+
/**
* _getLastMediaRevisionAt is a helperfunction to internalmedia() and _media()
* which returns an existing media revision less or equal to rev or date_at
diff --git a/inc/template.php b/inc/template.php
index 646f0873a..a4ace1a63 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -840,6 +840,7 @@ function tpl_searchform($ajax = true, $autocomplete = true) {
print '<input type="hidden" name="do" value="search" />';
print '<input type="text" ';
if($ACT == 'search') print 'value="'.htmlspecialchars($QUERY).'" ';
+ print 'placeholder="'.$lang['btn_search'].'" ';
if(!$autocomplete) print 'autocomplete="off" ';
print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />';
print '<input type="submit" value="'.$lang['btn_search'].'" class="button" title="'.$lang['btn_search'].'" />';
@@ -893,12 +894,12 @@ function tpl_breadcrumbs($sep = '•') {
* @author Nigel McNie <oracle.shinoda@gmail.com>
* @author Sean Coates <sean@caedmon.net>
* @author <fredrik@averpil.com>
- * @todo May behave strangely in RTL languages
+ * @author Mark C. Prins <mprins@users.sf.net>
*
* @param string $sep Separator between entries
* @return bool
*/
-function tpl_youarehere($sep = ' » ') {
+function tpl_youarehere($sep = ' → ') {
global $conf;
global $ID;
global $lang;
@@ -909,12 +910,15 @@ function tpl_youarehere($sep = ' » ') {
$parts = explode(':', $ID);
$count = count($parts);
- echo '<span class="bchead">'.$lang['youarehere'].' </span>';
-
+ echo '<nav><h2 class="bchead">'.$lang['youarehere'].': </h2>';
+ echo '<ul class="navlist">';
// always print the startpage
- echo '<span class="home">';
- tpl_pagelink(':'.$conf['start']);
- echo '</span>';
+ if ($count > 1) {
+ echo '<li class="home">'.html_wikilink(':'.$conf['start']).$sep.'</li>';
+ } else {
+ echo '<li class="home">'.$conf['start'].'</li>';
+ }
+
// print intermediate namespace links
$part = '';
@@ -923,18 +927,28 @@ function tpl_youarehere($sep = ' » ') {
$page = $part;
if($page == $conf['start']) continue; // Skip startpage
- // output
- echo $sep;
- tpl_pagelink($page);
+ echo '<li>'.html_wikilink($page);
+ if ($i < $count - 2) {
+ echo $sep.'</li>';
+ } else {
+ echo '</li>';
+ }
}
// print current page, skipping start page, skipping for namespace index
resolve_pageid('', $page, $exists);
- if(isset($page) && $page == $part.$parts[$i]) return true;
+ if(isset($page) && $page == $part.$parts[$i]) {
+ echo '</li></ul></nav>';
+ return true;
+ }
+
$page = $part.$parts[$i];
- if($page == $conf['start']) return true;
- echo $sep;
- tpl_pagelink($page);
+ if($page == $conf['start']) {
+ echo '</li></ul></nav>';
+ return true;
+ }
+
+ echo $sep.'</li><li class="curid">'.noNSorNS($page).'</li></ul></nav>';
return true;
}
diff --git a/inc/utf8.php b/inc/utf8.php
index f86217686..2b6a0c498 100644
--- a/inc/utf8.php
+++ b/inc/utf8.php
@@ -356,8 +356,12 @@ if(!function_exists('utf8_strtolower')){
* @return string
*/
function utf8_strtolower($string){
- if(UTF8_MBSTRING) return mb_strtolower($string,'utf-8');
-
+ if(UTF8_MBSTRING) {
+ if (class_exists("Normalizer", $autoload = false))
+ return normalizer::normalize(mb_strtolower($string,'utf-8'));
+ else
+ return (mb_strtolower($string,'utf-8'));
+ }
global $UTF8_UPPER_TO_LOWER;
return strtr($string,$UTF8_UPPER_TO_LOWER);
}
@@ -1066,11 +1070,11 @@ if(!UTF8_MBSTRING){
"z"=>"Z","y"=>"Y","x"=>"X","w"=>"W","v"=>"V","u"=>"U","t"=>"T","s"=>"S","r"=>"R","q"=>"Q",
"p"=>"P","o"=>"O","n"=>"N","m"=>"M","l"=>"L","k"=>"K","j"=>"J","i"=>"I","h"=>"H","g"=>"G",
"f"=>"F","e"=>"E","d"=>"D","c"=>"C","b"=>"B","a"=>"A","ῳ"=>"ῼ","ῥ"=>"Ῥ","ῡ"=>"Ῡ","ῑ"=>"Ῑ",
- "ῐ"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","ᾳ"=>"ᾼ","ᾱ"=>"Ᾱ","ᾰ"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"ᾮ","ᾥ"=>"ᾭ","ᾤ"=>"ᾬ",
+ "ῐ"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","ᾳ"=>"ᾼ","ᾱ"=>"Ᾱ","ᾰ"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"ᾮ","ᾥ"=>"ᾭ","ᾤ"=>"ᾬ",
"ᾣ"=>"ᾫ","ᾢ"=>"ᾪ","ᾡ"=>"ᾩ","ᾗ"=>"ᾟ","ᾖ"=>"ᾞ","ᾕ"=>"ᾝ","ᾔ"=>"ᾜ","ᾓ"=>"ᾛ","ᾒ"=>"ᾚ","ᾑ"=>"ᾙ",
- "ᾐ"=>"ᾘ","ᾇ"=>"ᾏ","ᾆ"=>"ᾎ","ᾅ"=>"ᾍ","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","ᾁ"=>"ᾉ","ᾀ"=>"ᾈ","ώ"=>"Ώ",
- "ὼ"=>"Ὼ","ύ"=>"Ύ","ὺ"=>"Ὺ","ό"=>"Ό","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"Ὶ","ή"=>"Ή","ὴ"=>"Ὴ","έ"=>"Έ",
- "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ",
+ "ᾐ"=>"ᾘ","ᾇ"=>"ᾏ","ᾆ"=>"ᾎ","ᾅ"=>"ᾍ","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","ᾁ"=>"ᾉ","ᾀ"=>"ᾈ","ώ"=>"Ώ",
+ "ὼ"=>"Ὼ","ύ"=>"Ύ","ὺ"=>"Ὺ","ό"=>"Ό","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"Ὶ","ή"=>"Ή","ὴ"=>"Ὴ","έ"=>"Έ",
+ "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ",
"ὗ"=>"Ὗ","ὕ"=>"Ὕ","ὓ"=>"Ὓ","ὑ"=>"Ὑ","ὅ"=>"Ὅ","ὄ"=>"Ὄ","ὃ"=>"Ὃ","ὂ"=>"Ὂ","ὁ"=>"Ὁ","ὀ"=>"Ὀ",
"ἷ"=>"Ἷ","ἶ"=>"Ἶ","ἵ"=>"Ἵ","ἴ"=>"Ἴ","ἳ"=>"Ἳ","ἲ"=>"Ἲ","ἱ"=>"Ἱ","ἰ"=>"Ἰ","ἧ"=>"Ἧ","ἦ"=>"Ἦ",
"ἥ"=>"Ἥ","ἤ"=>"Ἤ","ἣ"=>"Ἣ","ἢ"=>"Ἢ","ἡ"=>"Ἡ","ἕ"=>"Ἕ","ἔ"=>"Ἔ","ἓ"=>"Ἓ","ἒ"=>"Ἒ","ἑ"=>"Ἑ",
@@ -1145,11 +1149,11 @@ if(!UTF8_MBSTRING){
"Z"=>"z","Y"=>"y","X"=>"x","W"=>"w","V"=>"v","U"=>"u","T"=>"t","S"=>"s","R"=>"r","Q"=>"q",
"P"=>"p","O"=>"o","N"=>"n","M"=>"m","L"=>"l","K"=>"k","J"=>"j","I"=>"i","H"=>"h","G"=>"g",
"F"=>"f","E"=>"e","D"=>"d","C"=>"c","B"=>"b","A"=>"a","ῼ"=>"ῳ","Ῥ"=>"ῥ","Ῡ"=>"ῡ","Ῑ"=>"ῑ",
- "Ῐ"=>"ῐ","ῌ"=>"ῃ","Ι"=>"ι","ᾼ"=>"ᾳ","Ᾱ"=>"ᾱ","Ᾰ"=>"ᾰ","ᾯ"=>"ᾧ","ᾮ"=>"ᾦ","ᾭ"=>"ᾥ","ᾬ"=>"ᾤ",
+ "Ῐ"=>"ῐ","ῌ"=>"ῃ","Ι"=>"ι","ᾼ"=>"ᾳ","Ᾱ"=>"ᾱ","Ᾰ"=>"ᾰ","ᾯ"=>"ᾧ","ᾮ"=>"ᾦ","ᾭ"=>"ᾥ","ᾬ"=>"ᾤ",
"ᾫ"=>"ᾣ","ᾪ"=>"ᾢ","ᾩ"=>"ᾡ","ᾟ"=>"ᾗ","ᾞ"=>"ᾖ","ᾝ"=>"ᾕ","ᾜ"=>"ᾔ","ᾛ"=>"ᾓ","ᾚ"=>"ᾒ","ᾙ"=>"ᾑ",
- "ᾘ"=>"ᾐ","ᾏ"=>"ᾇ","ᾎ"=>"ᾆ","ᾍ"=>"ᾅ","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"ᾁ","ᾈ"=>"ᾀ","Ώ"=>"ώ",
- "Ὼ"=>"ὼ","Ύ"=>"ύ","Ὺ"=>"ὺ","Ό"=>"ό","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"ὶ","Ή"=>"ή","Ὴ"=>"ὴ","Έ"=>"έ",
- "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ",
+ "ᾘ"=>"ᾐ","ᾏ"=>"ᾇ","ᾎ"=>"ᾆ","ᾍ"=>"ᾅ","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"ᾁ","ᾈ"=>"ᾀ","Ώ"=>"ώ",
+ "Ὼ"=>"ὼ","Ύ"=>"ύ","Ὺ"=>"ὺ","Ό"=>"ό","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"ὶ","Ή"=>"ή","Ὴ"=>"ὴ","Έ"=>"έ",
+ "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ",
"Ὗ"=>"ὗ","Ὕ"=>"ὕ","Ὓ"=>"ὓ","Ὑ"=>"ὑ","Ὅ"=>"ὅ","Ὄ"=>"ὄ","Ὃ"=>"ὃ","Ὂ"=>"ὂ","Ὁ"=>"ὁ","Ὀ"=>"ὀ",
"Ἷ"=>"ἷ","Ἶ"=>"ἶ","Ἵ"=>"ἵ","Ἴ"=>"ἴ","Ἳ"=>"ἳ","Ἲ"=>"ἲ","Ἱ"=>"ἱ","Ἰ"=>"ἰ","Ἧ"=>"ἧ","Ἦ"=>"ἦ",
"Ἥ"=>"ἥ","Ἤ"=>"ἤ","Ἣ"=>"ἣ","Ἢ"=>"ἢ","Ἡ"=>"ἡ","Ἕ"=>"ἕ","Ἔ"=>"ἔ","Ἓ"=>"ἓ","Ἒ"=>"ἒ","Ἑ"=>"ἑ",
@@ -1355,11 +1359,11 @@ global $UTF8_SPECIAL_CHARS2;
if(empty($UTF8_SPECIAL_CHARS2)) $UTF8_SPECIAL_CHARS2 =
"\x1A".' !"#$%&\'()+,/;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•�'.
'�—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½�'.
- '�¿×÷ˇ˘˙˚˛˜˝̣̀́̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'.
+ '�¿×÷ˇ˘˙˚˛˜˝̣̀́̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'.
'�ׁׂ׃׳״،؛؟ـًٌٍَُِّْ٪฿‌‍‎‏–—―‗‘’‚“”�'.
- '��†‡•…‰′″‹›⁄₧₪₫€№℘™Ωℵ←↑→↓↔↕↵'.
+ '��†‡•…‰′″‹›⁄₧₪₫€№℘™Ωℵ←↑→↓↔↕↵'.
'⇐⇑⇒⇓⇔∀∂∃∅∆∇∈∉∋∏∑−∕∗∙√∝∞∠∧∨�'.
- '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌐⌠⌡〈〉⑩─�'.
+ '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌐⌠⌡〈〉⑩─�'.
'��┌┐└┘├┤┬┴┼═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠'.
'╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌▐░▒▓■▲▼◆◊●�'.
'�★☎☛☞♠♣♥♦✁✂✃✄✆✇✈✉✌✍✎✏✐✑✒✓✔✕�'.