Compare commits

...

74 Commits
v1.16 ... v1.21

Author SHA1 Message Date
3f19d3aae0 Add an option to first display a greeting message, before showing messages 2016-08-29 13:12:17 +02:00
c05f1e613f Remove global variable for configuration 2016-08-28 21:44:18 +02:00
f8abff926b Set replace of a filter used for kicking as kickmessage 2016-08-28 21:05:05 +02:00
1ec5a6b562 Make /me work with custom texts 2016-08-28 18:20:20 +02:00
2d4ba6f902 Fix style in PM 2016-08-28 16:40:08 +02:00
8d9e6a70ce Remove global variable for present users 2016-08-28 15:57:38 +02:00
131c84a78f Simplify registration function 2016-08-27 16:41:24 +02:00
68d0f5d2b4 Remove global variable for members 2016-08-27 16:19:36 +02:00
064d5f6e4a Add external CSS setting for large stylesheets 2016-08-26 16:31:53 +02:00
9606d20a27 Don't keep track of moderator count globally, use new function instead. 2016-08-26 14:52:17 +02:00
61126c77eb Hash collisions are extremely unlikely, simplify check for it. 2016-08-25 14:59:50 +02:00
2ab29a0014 Prevent browser from caching at all. 2016-08-17 14:50:31 +02:00
0d9a9de558 Allow configuring password and nickname regex 2016-08-12 13:28:54 +02:00
37b0a323ad Instruct browser not to send referrer.
Enable image embedding without cookies as there is no more risk of session leakage.
2016-08-09 21:07:49 +02:00
2b8faa735a Prevent posting the same message twice, if no other message was posted in-between 2016-07-30 16:45:01 +02:00
2951780599 Allow ignoring incognito chatters 2016-07-25 12:26:57 +02:00
9d758146d1 Fix warning when ignoring a user, that has already left. 2016-07-25 08:19:44 +02:00
6a8442969d Don't show a kick button on your own session in the list of active sessions 2016-07-24 20:34:18 +02:00
7972453e42 Don't display empty option for system messages in delete messages by name 2016-07-24 10:19:34 +02:00
f9b53cb044 Allow deleting messages by name, when only PMs were sent. 2016-07-23 20:40:18 +02:00
24575374eb Use pre-calculated greyval instead of calculating it every time 2016-07-23 07:50:43 +02:00
18810a387c Delete messages based on public message limit, no buffer for private ones needed 2016-07-23 07:49:20 +02:00
8518536956 Use subqueries for less db traffic 2016-07-22 14:42:35 +02:00
0ebb5ddc82 Allow selectively deleting your own messages 2016-07-21 20:30:34 +02:00
643189d5ee Simplify ignore logic + disallow ignoring chatters with higher status 2016-07-21 09:12:07 +02:00
5c4586c04e Check permission before selectively deleting a message. 2016-07-19 23:01:33 +02:00
ba35a1c8d0 Don't hotlink schema links without protocol. 2016-07-15 17:56:41 +02:00
e8968d7712 Fix typo in CHANGELOG 2016-07-14 13:17:36 +02:00
35a2d5a524 Third attempt to fix the same bug 2016-07-12 20:43:36 +02:00
2cf52871b8 Fetch only relevant ignored data 2016-07-12 11:31:08 +02:00
309d86050b make $A and $P use same data layout 2016-07-12 11:02:52 +02:00
c8f3020f17 Yesterdays bugfix broke more than it fixed, refixed. 2016-07-10 10:38:15 +02:00
260dbdfd56 Fix bug preventing to send PMs to number-only nicknames 2016-07-09 17:52:29 +02:00
53211076a0 Making a moderator to member now sets incognito back to disabled 2016-06-13 19:55:09 +02:00
5ef5d5f701 Bugfix 2016-05-21 16:49:05 +02:00
b053e18e11 Make embed image option re-appear whith cookies disabled 2016-05-17 09:55:52 +02:00
eb13ee2d2f Completely fix link-redirection 2016-05-15 09:33:06 +02:00
dca1b81ef9 Add a lang_update.php script to auto-update language files 2016-05-11 12:46:50 +02:00
86b1de0ec8 Add setting in profile to allow offline inbox for: staff, members or everyone 2016-05-10 12:49:31 +02:00
147c511c61 Only use js if browser refresh stopped working 2016-05-10 08:16:25 +02:00
07ff78994e Remove JavaScript "load only new messages" feature, add JS auto-refresh to header instead 2016-05-07 10:37:56 +02:00
b09cb6b352 Fix parts of the offline inbox 2016-05-01 20:15:55 +02:00
e454b44f2b de-duplicate code 2016-04-30 15:29:41 +02:00
a72cd08cfb Fix duplicated class-tags and spelling mistake in SQL 2016-04-29 23:03:16 +02:00
190ec4c863 Allow deletion of member accounts in profile 2016-04-29 21:51:08 +02:00
3105cffaf1 Add an offline inbox for members 2016-04-29 21:47:32 +02:00
1a8eefc396 Fix wrong registration variables 2016-04-28 19:07:09 +02:00
47ffde6839 Better wording for registering applicants 2016-04-28 16:40:07 +02:00
ae3fe6d510 Optimize language-selection function 2016-04-28 11:59:23 +02:00
6ccce399b7 De-duplicate code 2016-04-28 11:05:09 +02:00
8538b22f6a simplify parse_sessions() and write_new_session() 2016-04-28 09:58:07 +02:00
a37026ca64 Add useful error message on failed login 2016-04-28 09:02:42 +02:00
555208a556 Combine Password reset and setting new nickname 2016-04-27 11:14:54 +02:00
d9c9dae6c0 Complete time zone feature 2016-04-27 09:57:34 +02:00
266523902f Avoid douple-parsing of sessions, when logging out or kicking 2016-04-26 13:25:44 +02:00
8408edd1f8 Fix incorrect header 2016-04-26 12:27:39 +02:00
7210a9fc90 Add timezone settings 2016-04-26 12:26:40 +02:00
37fbb7bc43 Allow disabling the chat completely 2016-04-20 15:48:12 +02:00
e72dc58d56 Simplify check_init() 2016-04-19 20:24:53 +02:00
b2df491ab7 Add disable PM option 2016-04-19 20:14:06 +02:00
63b4764ec4 Display a fatal error, if SQLite engine fails to connect to the database 2016-04-19 16:13:30 +02:00
15a4eb62bc Simplify SQL table creation by using common data types for all engines 2016-04-19 15:52:15 +02:00
60355735ee Make nocache refresh hack configurable in profile 2016-04-18 17:22:22 +02:00
0b8cdcc1e5 Remove nocache hack from message reload again
(scrolls back to top every time)
2016-04-17 08:12:48 +02:00
51ee2e1495 Split routing into several sub-functions 2016-04-16 21:04:41 +02:00
db86cb984b Fix a few forms to be used cookie-less 2016-04-15 16:07:15 +02:00
30d460b91e Improve invalid filter handling + allow new line match with \n 2016-04-15 15:16:18 +02:00
ea24d7ae5b Add caching hack for aggressively caching browsers (e.g. links) 2016-04-15 08:54:14 +02:00
6a8186d984 de-duplicate code by using new functions 2016-04-14 22:32:02 +02:00
2757f62d48 Properly escape some parameters 2016-04-14 22:08:20 +02:00
df140d0ee7 Fix warning on redirection of links without a scheme 2016-04-14 19:44:32 +02:00
6890bdb80a Allow extreme captcha to be solved in both directions 2016-04-14 19:12:15 +02:00
5c62bcef00 Add CSS classes and move more css to the database 2016-04-14 18:49:25 +02:00
f2c6d9fb95 Fixed a typo 2016-04-13 21:38:20 +02:00
12 changed files with 1525 additions and 1090 deletions

View File

@ -1,3 +1,80 @@
Version 1.21 - Aug. 29, 2016
Don't display empty option for system messages in delete messages by name
Don't show a kick button on your own session in the list of active sessions
Allow ignoring incognito chatters
Prevent posting the same message twice, if no other message was posted in-between
Instruct browser not to send referrer.
Enable image embedding without cookies as there is no more risk of session leakage.
Allow configuring password and nickname regex
Prevent browser from caching at all.
Add external CSS setting for large stylesheets
Make /me work with custom texts set under system messages in setup
Set replace of a filter used for kicking as kickmessage
Add an option to first display a greeting message, before showing messages
Version 1.20.6 - Jul. 23, 2016
Simplify ignore logic + disallow ignoring chatters with higher status
Delete messages based on public message limit, no buffer for private ones needed
Allow deleting messages by name, when only PMs were sent
Version 1.20.5 - Jul. 19, 2016
Check permission before selectively deleting a message.
Version 1.20.4 - Jul. 12, 2016
Third attempt to fix the same bug
Version 1.20.3 - Jul. 10, 2016
Yesterdays bugfix broke more than it fixed, refixed.
Version 1.20.2 - Jul. 9, 2016
Fix bug preventing to send PMs to number-only nicknames
Version 1.20.1 - Jun. 13, 2016
Bugfix when logging guests out via admin section
Don't hide image embedding option in profile with cookies disabled
Making a moderator to member now sets incognito back to disabled
Version 1.20 - May 15, 2016
Add setting in profile to allow offline inbox for: staff, members or everyone
Completely fix link-redirection
Version 1.19.2 - May 7, 2016
Remove JavaScript "load only new messages" feature
Add JS auto-refresh to header instead
Version 1.19.1 - May 1, 2016
Fix parts of the offline inbox
Version 1.19 - Apr. 29, 2016
Add an offline inbox for members
Allow deletion of member accounts in profile
Version 1.18 - Apr. 28, 2016
Add time zone settings
Combine Password reset and setting new nickname
Add useful error message on failed login
Version 1.17 - Apr. 20, 2016
Make nocache refresh hack configurable in profile
Add disable PM option
Allow disabling the chat completely
Version 1.16.4 - Apr. 15, 2016
Properly escape some parameters
Add caching hack for aggressively caching browsers (e.g. links)
Improve invalid filter handling + allow new line match with \n
Fix a few forms to be used cookie-less
Version 1.16.3 - Apr. 14, 2016
Fix warning on redirection of links without a scheme
Version 1.16.2 - Apr. 14, 2016
Add CSS classes and move more css to the database
Allow extreme captcha to be solved in both directions
Version 1.16.1 - Apr. 13, 2016
Fixed a typo
Version 1.16 - Apr. 13, 2016
Use constants for configuration
Simplify extreme captcha code generation

1
README
View File

@ -60,6 +60,7 @@ When you are done, you have to edit the chat script, to include your translation
'lang_code' =>'Language name',
to the $L array in the load_lang() function at the bottom, similar to what I did for the German translation.
Please share your translation with me, so I can add it to the official version.
To update your translation, you can copy each new string to your translation file or edit the automated lang_update.php script to reflect you language and run it.
REGEX:

View File

@ -64,6 +64,7 @@ When you are done, you have to edit the chat script, to include your translation
'lang_code' =>'Language name',
to the $L array in the load_lang() function at the bottom, similar to what I did for the German translation.
Please share your translation with me, so I can add it to the official version.
To update your translation, you can copy each new string to your translation file or edit the automated lang_update.php script to reflect you language and run it.
Regex:
------

2337
chat.php

File diff suppressed because it is too large Load Diff

View File

@ -25,9 +25,9 @@ $T=array(
'changelang' => 'Sprache ändern:',
'expire' => 'Ungültige/abgelaufene Sitzung',
'kicked' => 'Rausgeschmissen!',
'invalnick' => 'Ungültiger Nickname (Maximal %d Zeichen, keine Sonderzeichen erlaubt)',
'invalpass' => 'Ungültiges Passwort (Mindestens %d Zeichen)',
'noconfirm' => 'Passwordbestätigung stimmt nicht überein!',
'invalnick' => 'Ungültiger Nickname (Maximal %1$d Zeichen und muss dem regulären Ausdruck "%2$s" entsprechen)',
'invalpass' => 'Ungültiges Passwort (Mindestens %1$d Zeichen und muss dem regulären Ausdruck "%2$s" entsprechen)',
'noconfirm' => 'Passwortbestätigung stimmt nicht überein!',
'incorregex' => 'Ungültiger regulärer Ausdruck!',
'bottom' => 'Unten',
'top' => 'Oben',
@ -40,7 +40,7 @@ $T=array(
'suconfirm' => 'Passowrt bestätigen:',
'susuccess' => 'Erfolgreich registriert!',
'initbtn' => 'Chat initalisieren',
'initdbexist' => 'Datenbanktabellen existieren bereits! Um vortzufahren, musst du diese Tabellen zuerst manuell löschen.',
'initdbexist' => 'Datenbanktabellen existieren bereits! Um vortzufahren, müssem Sie diese Tabellen zuerst manuell löschen.',
'initsuexist' => 'Ein Superadmin existiert bereits!',
'initgosetup' => 'Zur Einrichtungsseite gehen',
'dbupdate' => 'Datenbank erfolgreich aktualisiert!',
@ -86,7 +86,7 @@ $T=array(
'guestwait' => 'Mit Warteraum erlauben',
'adminallow' => 'Moderator-Erlaubnis benötigen',
'guestdisallow' => 'Nur Mitglieder',
'addsuguest' => 'Anwerber hinzufügen',
'addsuguest' => 'Anwerber registrieren',
'register' => 'Registrieren',
'admmembers' => 'Mitglieder',
'memdel' => 'Aus der Datenbank löschen',
@ -111,7 +111,7 @@ $T=array(
'apply' => 'Anwenden',
'newfilter' => 'Neuer Filter:',
'add' => 'Hinzufügen',
'noframes' => 'Dieser Chat benutzt <b>Frames</b>. Bitte aktiviere Frames in deinem Browser oder benutze einen dafür geeigneten!',
'noframes' => 'Dieser Chat benutzt <b>Frames</b>. Bitte aktivieren Sie Frames in Ihrem Browser oder benutzen Sie einen dafür geeigneten!',
'delselmes' => 'Ausgewählte Nachrichten löschen',
'staffnotes' => 'Moderatornotizen',
'adminnotes' => 'Adminnotizen',
@ -119,8 +119,8 @@ $T=array(
'lastedited' => 'Zuletzt bearbeitet von %1$s um %2$s',
'savenotes' => 'Notizen speichern',
'waitingroom' => 'Warteraum',
'waittext' => 'Wilkommen %1$s, deine Anmeldung wurde verzögert, du kannst den Chat in %2$d Sekunden benutzen.',
'admwaittext' => 'Wilkommen %1$s, deine Anmeldung wurde verzögert, du kannst den Chat benutzen, sobald ein Moderator dich hereinlässt.',
'waittext' => 'Wilkommen %1$s, Ihre Anmeldung wurde verzögert, Sie können den Chat in %2$d Sekunden benutzen.',
'admwaittext' => 'Wilkommen %1$s, Ihre Anmeldung wurde verzögert, Sie könnent den Chat benutzen, sobald ein Moderator Sie hereinlässt.',
'waitreload' => 'Wenn diese Seite sich nicht alle %d Sekunden aktualisiert, benutze den Knopf unten, um die Seite manuell neu zu laden!',
'reload' => 'Aktualisieren',
'rules' => 'Regeln',
@ -135,12 +135,12 @@ $T=array(
'switchsingle' => 'Zu Einzel-Zeile wechseln',
'switchmulti' => 'Zu Mehrfach-Zeilen wechseln',
'help' => 'Hilfe',
'helpguest' => 'Alle Funktionen sollten recht selbsterklärend sein, benutze einfach die Knöpfe. In deinem Profil kannst du die Aktualisierungsrate, Schriftfarbe und deine gewünschte Postboxgröße anpassen.<br><u>Hinweis:</u> Dies ist ein Chat, wenn du also nichts schreibst, wirst du automatisch nach einiger Zeit abgemeldet.',
'helpembed' => 'Wenn du ein Bild einbetten möchtest, füge einfach ein [img] vor die Adresse deines Bildes. Beispiel: [img]http://example.com/images/file.jpg bettet das Bild in deinen Beitrag ein.',
'helpmem' => 'Mitglieder: Du wirst einige zusätzliche Optionen in deinem Profil haben. Du kannst deine Schriftart ändern und du kannst dein Passwort jederzeit ändern.',
'helpmod' => 'Moderatoren: Achte auf den Admin-Knof unten. Er bringt eine Seite auf, auf der du Nachrichten löschen kannst, Teilnehmer rausschmeißen kannst, alle aktive Sitzungen anzeigen lassen kannst und den Gastzugriff deaktivieren kannst, falls dies nötig sein sollte.',
'helpadm' => 'Admins: Du wirst zusätzlich in der Lage sein Gäste zu registrieren, Mitglieder zu verwalten und neue Nicknanem zu registrieren, ohne dass sie im Raum sind.',
'profile' => 'Dein Profil',
'helpguest' => 'Alle Funktionen sollten recht selbsterklärend sein, benutze einfach die Knöpfe. In Ihrem Profil könnsen Sie die Aktualisierungsrate, Schriftfarbe und Ihre gewünschte Postboxgröße anpassen.<br><u>Hinweis:</u> Dies ist ein Chat, wenn Sie also nichts schreiben, werden Sie automatisch nach einiger Zeit abgemeldet.',
'helpembed' => 'Wenn Sie ein Bild einbetten möchten, fügen Sie einfach ein [img] vor die Adresse des Bildes. Beispiel: [img]http://example.com/images/file.jpg bettet das Bild in Ihrem Beitrag ein.',
'helpmem' => 'Mitglieder: Sie werden einige zusätzliche Optionen in Ihrem Profil haben. Sie können Ihre Schriftart ändern und Ihr Passwort jederzeit ändern.',
'helpmod' => 'Moderatoren: Achte auf den Admin-Knof unten. Er bringt eine Seite auf, auf der Sie Nachrichten löschen können, Teilnehmer rausschmeißen können, alle aktive Sitzungen anzeigen lassen können und den Gastzugriff deaktivieren können, falls dies nötig sein sollte.',
'helpadm' => 'Admins: Sie werden zusätzlich in der Lage sein Gäste zu registrieren, Mitglieder zu verwalten und neue Nicknanem zu registrieren.',
'profile' => 'Ihr Profil',
'ignore' => 'Ignorieren',
'unignore' => 'Nicht mehr ignorieren',
'refreshrate' => 'Aktualisierungsrate (5-150 Sekunden)',
@ -151,9 +151,9 @@ $T=array(
'roomdefault' => 'Raumstandard',
'bold' => 'Fett',
'italic' => 'Kursiv',
'fontexample' => 'Beispiel für deine gewählte Schrift',
'fontexample' => 'Beispiel für Ihre gewählte Schrift',
'timestamps' => 'Zeitstempel anzeigen',
'embed' => 'Bilder einbetten (Benötigt Cookies)',
'embed' => 'Bilder einbetten',
'incognito' => 'Inkognito Modus',
'pbsize' => 'Postboxgröße',
'nbsize' => 'Notizboxgröße',
@ -175,9 +175,9 @@ $T=array(
'exit' => 'Chat verlassen',
'bye' => 'Auf Wiedersehen %s, besuche uns bald wieder!',
'colourtable' => 'Farbtabelle',
'backtoprofile' => 'Zurück zu deinem Profil',
'backtoprofile' => 'Zurück zu Ihrem Profil',
'copy' => 'Kopiere:',
'choosecol' => 'Gast, such dir eine Farbe aus:',
'choosecol' => 'Gast, suchen dir eine Farbe aus:',
'randomcol' => 'Zufällige Farbe',
'enter' => 'Chat beitreten',
'error' => 'Fehler',
@ -203,7 +203,7 @@ $T=array(
'succchg' => 'Status of %s successfully changed.',
'wrongpass' => 'Falsches Passwort!',
'wrongglobalpass' => 'Falsches gloables Passwort!',
'succprofile' => 'Dein Profil wurde erfolgreich gespeichert.',
'succprofile' => 'Ihr Profil wurde erfolgreich gespeichert.',
'backtologin' => 'Zurück zur Anmeldeseite.',
'backtochat' => 'Zurück zum Chat.',
'Beige' => 'Beige',
@ -254,9 +254,8 @@ $T=array(
'captchatime' => 'Captcha-Ablaufzeit (Sekunden)',
'messageexpire' => 'Nachrichten-Ablaufzeit (Minuten)',
'messagelimit' => 'Nachrichtenlimit (öffentliche)',
'keeplimit' => 'So viele Male zusätzliche Nachrichten behalten (PMs und Mitgliederchat)',
'maxmessage' => 'Maximale Nachrichenlänge',
'confirm' => 'Bist du sicher?',
'confirm' => 'Sind Sie sicher?',
'yes' => 'Ja',
'no' => 'Nein',
'colbg' => 'Hintergrundfarbe',
@ -277,21 +276,20 @@ $T=array(
'restore' => 'Wiederherstellen',
'settings' => 'Einstellungen',
'linkfilter' => 'Linkfilter',
'enablejs' => 'JavaScript für besseres Nachrichtenladen erlauben',
'chatname' => 'Chatname',
'destroy' => 'Chat zerstören',
'destroyed' => 'Chat erfolgreich zerstört',
'topic' => 'Thema',
'passreset' => 'Passwort zurücksetzen',
'cantresetpass' => 'Passwort kann nicht zurückgesetzt werden',
'succpassreset' => 'Password erfolgreich zurückgesetzt',
'succpassreset' => 'Passwort erfolgreich zurückgesetzt',
'entermsg' => '%s hat den Chat betreten.',
'exitmsg' => '%s hat den Chat verlassen.',
'memregmsg' => '%s ist jetzt ein registriertes Mitglied.',
'suregmsg' => '%s ist jetzt ein registrierter Anwerber.',
'kickmsg' => '%s wurde rausgeschmissen.',
'multikickmsg' => '%s wurden rausgeschmissen.',
'allkickmsg' => 'Alle Chatter wurden rausgeschmissen.',
'allkickmsg' => 'Alle Gäste wurden rausgeschmissen.',
'cleanmsg' => '%s wurde geleert.',
'sendallmsg' => '%s - ',
'sendmemmsg' => '[M] %s - ',
@ -308,8 +306,7 @@ $T=array(
'older' => 'Älter',
'newer' => 'Neuer',
'accessdenied' => 'Zugriff verweigert',
'loggedinas' => 'Du bist als %s angemeldet und hast keinen Zugriff auf diesen Bereich.',
'changenickname' => 'Nickname ändern',
'loggedinas' => 'Sie sind als %s angemeldet und haben keinen Zugriff auf diesen Bereich.',
'newnickname' => 'Neuer Nickname:',
'nicknametaken' => 'Nickname ist bereits vergeben',
'nopass' => 'Ungültiges Passwort (Mindestens %d Zeichen), Nickname nicht geändert',
@ -324,10 +321,37 @@ $T=array(
'mailsender' => 'E-Mail mit dieser Adresse versenden',
'mailreceiver' => 'E-Mail and diese Adresse senden',
'modfallback' => 'Auf Warteraum rückgreifen, falls kein Moderator anwesend ist, um Gäste hereinzulassen',
'regpass' => 'Zum registrieren<br>Passwort wiederholen<br>(optional)',
'regpass' => 'Zum registrieren<br>Passwort wiederholen',
'guestreg' => 'Gäste sich selbst registrieren lassen',
'asmember' => 'Als Mitglied',
'assuguest' => 'Als Anwerber',
'fatalerror' => 'Fataler Fehler'
'fatalerror' => 'Fataler Fehler',
'prevmatch' => 'Ihr regex war folgender',
'matchtoolong' => 'Ihr Match war zu lang. Sie können max. 255 Zeichen benutzen. Versuchen Sie diesen aufzuteilen.',
'nocache' => 'Neulade-Hack für alte Browser hinzufügen.<br>Aktiviere dies, falls Neuladen nicht funktioniert.',
'disablepm' => 'Private Nachrichten deaktivieren',
'disablechat' => 'Chat deaktivieren',
'disabletext' => 'Chat deaktiviert Nachricht (html)',
'disabledtext' => 'Kurzzeitig deaktiviert',
'defaulttz' => 'Standard Zeitzone',
'tz' => 'Zeitzone',
'optional' => '(optional)',
'userloggedin' => 'Ein Nutzer mit diesem Nicknamen ist bereits angemeldet.',
'regednick' => 'Dieser Nickname ist ein registeriertes Mitglied.',
'eninbox' => 'Offline Posteingang aktivieren',
'inboxmsgs' => '%d Nachrichten im Posteingang lesen',
'offline' => '(offline)',
'deleteacc' => 'Konto löschen',
'eninnone' => 'Für niemanden',
'eninall' => 'Für jeden',
'eninmem' => 'Nur für Mitglieder',
'eninstaff' => 'Nur für Moderatoren',
'eninadmin' => 'Nur für Administratoren',
'nickregex' => 'Nickname-Regex',
'passregex' => 'Passwort-Regex',
'externalcss' => 'Link zu externer CSS Datei',
'greetingmsg' => 'Willkommen %s!',
'entryhelp' => 'Falls dieser Frame nich in %d Sekunden neu lädt, muss automatische Weiterleitun (meta refresh) in Ihrem Browser aktiviert werden. Stellen Sie auch sicher, dass keine Web filter, locale Proxy oder Browser Plugins das automatische neu-laden verhindern! Dies könnte z.B. "Polipo", "NoScript", etc. sein.<br>Zur Not (oder im Falle von Server/Proxy Fehlern) können Sie die Knöpfe unten verwenden, um manuell neu zu laden.',
'enablegreeting' => 'Zeige eine Begrüßungsnachricht an, befor die Nachrichten geladen werden',
);
?>

View File

@ -25,8 +25,8 @@ $I=array(
'changelang' => 'Change language:',
'expire' => 'Invalid/expired session',
'kicked' => 'Kicked!',
'invalnick' => 'Invalid nickname (%d characters maximum, no special characters allowed)',
'invalpass' => 'Invalid password (At least %d characters)',
'invalnick' => 'Invalid nickname (%1$d characters maximum and has to match the regular expression "%2$s")',
'invalpass' => 'Invalid password (At least %1$d characters and has to match the regular expression "%2$s")',
'noconfirm' => 'Password confirmation does not match!',
'incorregex' => 'Incorrect regular expression!',
'bottom' => 'Bottom',
@ -86,7 +86,7 @@ $I=array(
'guestwait' => 'Allow with waitingroom',
'adminallow' => 'Require moderator approval',
'guestdisallow' => 'Only members',
'addsuguest' => 'Add applicant',
'addsuguest' => 'Register applicant',
'register' => 'Register',
'admmembers' => 'Members',
'memdel' => 'Delete from database',
@ -139,7 +139,7 @@ $I=array(
'helpembed' => 'If you want to embed an image in your post, simply put [img] in front of your image URL. Example: [img]http://example.com/images/file.jpg will embed the image in your post.',
'helpmem' => 'Members: You\'ll have some more options in your profile. You can adjust your font face and you can change your password anytime.',
'helpmod' => 'Moderators: Notice the Admin-button at the bottom. It\'ll bring up a page where you can clean the room, kick chatters, view all active sessions and disable guest access completely if needed.',
'helpadm' => 'Admins: You\'ll be furthermore able to register guests, edit members and register new nicks without them beeing in the room.',
'helpadm' => 'Admins: You\'ll be furthermore able to register guests, edit members and register new nicknames.',
'profile' => 'Your Profile',
'ignore' => 'Ignore',
'unignore' => 'Don\'t ignore anymore',
@ -153,7 +153,7 @@ $I=array(
'italic' => 'Italic',
'fontexample' => 'Example for your chosen font',
'timestamps' => 'Show Timestamps',
'embed' => 'Embed images (needs Cookies)',
'embed' => 'Embed images',
'incognito' => 'Incognito mode',
'pbsize' => 'Post box size',
'nbsize' => 'Notes box size',
@ -254,7 +254,6 @@ $I=array(
'captchatime' => 'Captcha timeout (seconds)',
'messageexpire' => 'Message timeout (minutes)',
'messagelimit' => 'Message limit (public)',
'keeplimit' => 'Keep this times additional messages (PMs and Member chat)',
'maxmessage' => 'Maximal message length',
'confirm' => 'Are you sure?',
'yes' => 'Yes',
@ -277,7 +276,6 @@ $I=array(
'restore' => 'Restore',
'settings' => 'Settings',
'linkfilter' => 'Linkfilter',
'enablejs' => 'Allow JavaScript for better message loading',
'chatname' => 'Chat name',
'destroy' => 'Destroy chat',
'destroyed' => 'Successfully destroyed chat',
@ -291,7 +289,7 @@ $I=array(
'suregmsg' => '%s is now a registered applicant.',
'kickmsg' => '%s has been kicked.',
'multikickmsg' => '%s have been kicked.',
'allkickmsg' => 'All chatters have been kicked.',
'allkickmsg' => 'All guests have been kicked.',
'cleanmsg' => '%s has been cleaned.',
'sendallmsg' => '%s - ',
'sendmemmsg' => '[M] %s - ',
@ -309,7 +307,6 @@ $I=array(
'newer' => 'Newer',
'accessdenied' => 'Access denied',
'loggedinas' => 'You are logged in as %s and don\'t have access to this section.',
'changenickname' => 'Change nickname',
'newnickname' => 'New nickname:',
'nicknametaken' => 'Nickname is already taken',
'nopass' => 'Invalid password (At least %d characters), not changing nickname',
@ -324,10 +321,37 @@ $I=array(
'mailsender' => 'Send mail using this address',
'mailreceiver' => 'Send mail to this address',
'modfallback' => 'Fallback to waiting room, if no moderator is present to approve guests',
'regpass' => 'Repeat password<br>to register<br>(optional)',
'regpass' => 'Repeat password<br>to register',
'guestreg' => 'Let guests register themselves',
'asmember' => 'As member',
'assuguest' => 'As applicant',
'fatalerror' => 'Fatal error'
'fatalerror' => 'Fatal error',
'prevmatch' => 'Your match was as follows',
'matchtoolong' => 'Your match was too long. You can use max. 255 characters. Try splitting it up.',
'nocache' => 'Add refresh hack for old browsers.<br>Enable, if refreshing doesn\'t work.',
'disablepm' => 'Disable private messages',
'disablechat' => 'Disable chat',
'disabletext' => 'Chat disabled message (html)',
'disabledtext' => 'Temporarily disabled',
'defaulttz' => 'Default time zone',
'tz' => 'Time zone',
'optional' => '(optional)',
'userloggedin' => 'A user with this nickname is already logged in.',
'regednick' => 'This nickname is a registered member.',
'eninbox' => 'Enable offline inbox',
'inboxmsgs' => 'Read %d messages in your inbox',
'offline' => '(offline)',
'deleteacc' => 'Delete account',
'eninnone' => 'For no one',
'eninall' => 'For everyone',
'eninmem' => 'For members only',
'eninstaff' => 'For staff only',
'eninadmin' => 'For admins only',
'nickregex' => 'Nickname regex',
'passregex' => 'Password regex',
'externalcss' => 'Link to external CSS file',
'greetingmsg' => 'Welcome %s!',
'entryhelp' => 'If this frame does not reload in %d seconds, you\'ll have to enable automatic redirection (meta refresh) in your browser. Also make sure no web filter, local proxy tool or browser plugin is preventing automatic refreshing! This could be for example "Polipo", "NoScript", etc.<br>As a workaround (or in case of server/proxy reload errors) you can always use the buttons at the bottom to refresh manually.',
'enablegreeting' => 'Show a greeting message before showing the messages',
);
?>

View File

@ -25,8 +25,6 @@ $T=array(
'changelang' => 'Cambiar idioma:',
'expire' => 'La sesión es inválida o expiró',
'kicked' => '¡Te expulsaron!',
'invalnick' => 'Apodo incorrecto (%d caracteres como máximo, no se permiten caracteres especiales)',
'invalpass' => 'Contraseña inválida (como mínimo %d caracteres)',
'noconfirm' => '¡La contraseña y su confirmación no coinciden!',
'incorregex' => '¡Expresión regular incorrecta!',
'bottom' => 'Inicio',
@ -153,7 +151,7 @@ $T=array(
'italic' => 'Bastardilla',
'fontexample' => 'Ejemplo de la tipografía seleccionada',
'timestamps' => 'Mostrar fecha y hora',
'embed' => 'Habilitar imágenes (necesita cookies)',
'embed' => 'Habilitar imágenes',
'incognito' => 'Modo incógnito',
'pbsize' => 'Tamaño de la caja de publicación',
'nbsize' => 'Tamaño de la caja de notas',
@ -276,7 +274,6 @@ $T=array(
'restore' => 'Restablacer copia',
'settings' => 'Configuración',
'linkfilter' => 'Filtro de enlaces',
'enablejs' => 'Permitir JavaScript para mejorar la carga de mensajes',
'chatname' => 'Nombre de la sala',
'destroy' => 'Destruir sala',
'destroyed' => 'Sala destruida satisfactoriamente',
@ -308,7 +305,6 @@ $T=array(
'newer' => 'Newer',
'accessdenied' => 'Acceso no permitido',
'loggedinas' => 'Estás identificado como %s y no tenés acceso a esta sección.',
'changenickname' => 'Cambiar apodo',
'newnickname' => 'Nuevo apodo:',
'nicknametaken' => 'Ese apodo ya fue tomado',
'nopass' => 'Constraseña incorrecta (al menos %d caracteres), no se cambia apodo'

View File

@ -25,8 +25,6 @@ $T=array(
'changelang' => 'Cambiar idioma:',
'expire' => 'La sesión es inválida o expiró',
'kicked' => '¡Te expulsaron!',
'invalnick' => 'Apodo incorrecto (%d caracteres como máximo, no se permiten caracteres especiales)',
'invalpass' => 'Contraseña inválida (como mínimo %d caracteres)',
'noconfirm' => '¡La contraseña y su confirmación no coinciden!',
'incorregex' => '¡Expresión regular incorrecta!',
'bottom' => 'Inicio',
@ -153,7 +151,7 @@ $T=array(
'italic' => 'Bastardilla',
'fontexample' => 'Ejemplo de la tipografía seleccionada',
'timestamps' => 'Mostrar fecha y hora',
'embed' => 'Habilitar imágenes (necesita cookies)',
'embed' => 'Habilitar imágenes',
'incognito' => 'Modo incógnito',
'pbsize' => 'Tamaño de la caja de publicación',
'nbsize' => 'Tamaño de la caja de notas',
@ -276,7 +274,6 @@ $T=array(
'restore' => 'Restaurar',
'settings' => 'Preferencias',
'linkfilter' => 'Filtro de enlaces',
'enablejs' => 'Permitir JavaScript para mejorar la carga de mensajes',
'chatname' => 'Nombre de la sala',
'destroy' => 'Destruir sala',
'destroyed' => 'Sala destruida satisfactoriamente',
@ -308,7 +305,6 @@ $T=array(
'newer' => 'Newer',
'accessdenied' => 'Acceso denegado',
'loggedinas' => 'Estás identificado como %s y no tenés acceso a esta sección.',
'changenickname' => 'Cambiar apodo',
'newnickname' => 'Nuevo apodo:',
'nicknametaken' => 'Ese apodo ya fue tomado',
'nopass' => 'Constraseña incorrecta (al menos %d caracteres), no se cambia apodo'

View File

@ -25,8 +25,6 @@ $T=array(
'changelang' => 'Changer la langue:',
'expire' => 'Session invalide / expirée',
'kicked' => 'Banni / éjecté!',
'invalnick' => 'pseudo valide (% de caractères maximum, pas de caractères spéciaux autorisés)',
'invalpass' => 'mot de passe invalide (au moins % caractères)',
'noconfirm' => 'Confirmation mot du passe ne correspond pas! ',
'incorregex' => 'Expression régulière incorrecte!',
'bottom' => 'Bas',
@ -153,7 +151,7 @@ $T=array(
'italic' => 'Italique',
'fontexample' => 'Exemple de choix de polices',
'timestamps' => 'Afficher l\'horodatage',
'embed' => 'Images imbriquées (besoin des Cookies)',
'embed' => 'Images imbriquées',
'incognito' => 'Mode incognito',
'pbsize' => 'Dimension de la boite du texte',
'nbsize' => 'Dimension de la boite du chat',
@ -276,7 +274,6 @@ $T=array(
'restore' => 'Récupérer',
'settings' => 'Paramètres',
'linkfilter' => 'Lien filtré',
'enablejs' => 'Autoriser JavaScript permet un meilleur chargement des messages ',
'chatname' => 'Nom du chat',
'destroy' => 'Destruction du chat',
'destroyed' => 'Chat supprimé',
@ -308,7 +305,6 @@ $T=array(
'newer' => 'Nouveau',
'accessdenied' => 'Accès interdit',
'loggedinas' => 'Vous êtes connecté en tant que %s et vous n\'avez pas accès à cette section.',
'changenickname' => 'Changer de Pseudo',
'newnickname' => 'Nouveau Pseudo:',
'nicknametaken' => 'Pseudo déjà pris',
'nopass' => 'Mot de passe invalide (au moins % caractères), ne pas changer le pseudo',

View File

@ -25,8 +25,6 @@ $T=array(
'changelang' => 'Ubah bahasa:',
'expire' => 'Sesi salah/kadaluarsa',
'kicked' => 'Diusir!',
'invalnick' => 'Nama pengguna salah (maksimal %d karakter, karakter spesial tak diizinkan)',
'invalpass' => 'Kata sandi salah (minimal %d karakter)',
'noconfirm' => 'Konfirmasi kata sandi tidak cocok!',
'incorregex' => 'Regular expression salah!',
'bottom' => 'Bawah',
@ -153,7 +151,7 @@ $T=array(
'italic' => 'Miring',
'fontexample' => 'Contoh untuk font yang anda pilih',
'timestamps' => 'Tunjukkan penanda waktu',
'embed' => 'Tanamkan gambar (Membutuhkan kuki)',
'embed' => 'Tanamkan gambar',
'incognito' => 'Mode penyamaran',
'pbsize' => 'Ukuran kotak pos',
'nbsize' => 'Ukuran otak catatan',
@ -276,7 +274,6 @@ $T=array(
'restore' => 'Pulihkan',
'settings' => 'Pengaturan',
'linkfilter' => 'penyaring-tautan',
'enablejs' => 'Izinkan javascript agar pemuatan pesan lebih baik',
'chatname' => 'Nama obrolan',
'destroy' => 'Musnahkan obrolan',
'destroyed' => 'Berhasil memusnahkan obrolan',
@ -308,7 +305,6 @@ $T=array(
'newer' => 'Baru',
'accessdenied' => 'Akses ditolak',
'loggedinas' => 'Anda masuk sebagai %s dan tak dapat mengakses bagian ini.',
'changenickname' => 'Ubah nama',
'newnickname' => 'Nama baru:',
'nicknametaken' => 'Nama sudah ada',
'nopass' => 'Kata sandi salah (Minimal %d karakter), tak merubah nama'

View File

@ -25,8 +25,6 @@ $T=array(
'changelang' => 'Изменить язык:',
'expire' => 'Недействительная/с истекшим сроком сессия',
'kicked' => 'Забанен!',
'invalnick' => 'Недействительный ник (%d символов максимум, никакие специальные разрешенные символы)',
'invalpass' => 'Неверный пароль (по крайней мере %d символов)',
'noconfirm' => 'Подтверждение пароля не совпадает!',
'incorregex' => 'Неправильное регулярное выражение!',
'bottom' => 'Вниз',
@ -153,7 +151,7 @@ $T=array(
'italic' => 'Курсив',
'fontexample' => 'Пример выбранного вами шрифта',
'timestamps' => 'Показать отметки времени',
'embed' => 'Вставить изображения (использует Cookies)',
'embed' => 'Вставить изображения',
'incognito' => 'Режим инкогнито',
'pbsize' => 'Размер окна сообщений',
'nbsize' => 'Размер окна заметок',

45
lang_update.php Normal file
View File

@ -0,0 +1,45 @@
<?php
$native = 'Deutsch'; // Native lanugae name
$english = 'German'; // Enlish language name
$code = 'de'; // Language code
ob_start();
echo "<?php
/*
* LE CHAT-PHP - a PHP Chat based on LE CHAT - $english translation
*
* Copyright (C) 2015-2016 Daniel Winzen <d@winzen4.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//Native language name: $native
\$T=array(
";
if(file_exists("lang_$code.php")){
include("lang_$code.php");
}
include('lang_en.php');
foreach($T as $id=>$value){
if(isSet($I[$id])){
$I[$id]=$value;
}
}
foreach($I as $id=>$value){
echo "\t'$id' => '".str_replace("'", "\'", $value)."',\n";
}
echo ");\n?>\n";
$file=ob_get_clean();
file_put_contents("lang_$code.php", $file);
?>