Compare commits

...

51 Commits

Author SHA1 Message Date
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
8749eb0982 Fix language parameter overwrite 2016-04-13 20:08:20 +02:00
1c74441bb4 Better message routing and fixed handling of links with special characters 2016-04-13 20:01:26 +02:00
d4ef35e8ac Add better fatal error handling 2016-04-12 22:19:22 +02:00
0092abe964 Add option to let guests register themselves 2016-04-12 20:12:34 +02:00
333983a2c3 Fix guestaccess selection in setup 2016-04-11 16:20:28 +02:00
fd807ff5ff Add fallback option for moderator approval 2016-04-11 16:05:20 +02:00
bc3bb8e3a4 Attempt to create database when there is no connection 2016-04-11 16:05:07 +02:00
e181af4df5 Move some more settings to the database and add CSS to limit list of chatters hight 2016-04-11 16:02:27 +02:00
a22ffd83fd Several optimizations
Use constants for configuration
Simplify extreme captcha code generation
Add language setting to profile
Add checks for required extensions
2016-04-10 15:52:19 +02:00
12 changed files with 1784 additions and 1254 deletions

View File

@ -1,3 +1,66 @@
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
Add language setting to profile
Add checks for required extensions
Move some more settings to the database
Add CSS to limit list of chatters hight
Attempt to create database when there is no connection
Add fallback option for moderator approval
Fix guestaccess selection in setup
Add option to let guests register themselves
Add better fatal error handling
Fixed handling of links with special characters
Version 1.15.3 - Mar. 6, 2016
Allow using html tags in linkfilter without breaking dereferrer or image embed
Added French translation

31
README
View File

@ -1,21 +1,3 @@
LE CHAT-PHP - a PHP Chat based on LE CHAT
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/>.
GENERAL INFORMATION:
This is a PHP Chat based on LE CHAT v.1.14. An up-to-date copy of this script can be downloaded at https://github.com/DanWin/le-chat-php
@ -53,9 +35,15 @@ And more
INSTALLATION INSTRUCTIONS:
You'll need to have mysql, php and a web-server installed. For the captcha feature, you also need php5-gd.
If you want to make the script even faster, install a memcached server and php5-memcached and change the configuaration to use memcached. This will lessen the database load.
When you have everything installed, you'll have to create a database and a user for the chat in mysql.
You'll need to have php with pdo, pcre and date extension and a web-server installed.
You will also need the pdo_sqlite, pdo_mysql or pdo_pgsql extension, depending on which database you choose.
Optionally, you can install:
- the gd extension for the captcha feature
- the json extension for save/restore and a JavaScript helper for clients with enabled JavaScript.
- a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
- a MySQL or PostgreSQL server to use as an external database instead of SQLite
- the openssl extension for encryption of messages and notes in the database
When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat.
Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them.
Then copy the script to your web-server directory and call the script in your browser with a parameter like this:
http://(server)/(script-name).php?action=setup
@ -72,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

@ -38,9 +38,15 @@ Features:
Installation Instructions:
--------------------------
You'll need to have mysql, php and a web-server installed. For the captcha feature, you also need php5-gd.
If you want to make the script even faster, install a memcached server and php5-memcached and change the configuaration to use memcached. This will lessen the database load.
When you have everything installed, you'll have to create a database and a user for the chat in mysql.
You'll need to have php with pdo, pcre and date extension and a web-server installed.
You will also need the pdo_sqlite, pdo_mysql or pdo_pgsql extension, depending on which database you choose.
Optionally, you can install:
- the gd extension for the captcha feature
- the json extension for save/restore and a JavaScript helper for clients with enabled JavaScript.
- a memcached server and the memcached extension and change the configuaration to use memcached. This will lessen the database load a bit.
- a MySQL or PostgreSQL server to use as an external database instead of SQLite
- the openssl extension for encryption of messages and notes in the database
When you have everything installed and use MySQL or PostgreSQL, you'll have to create a database and a user for the chat.
Then edit the configuration at the bottom of the script to reflect the appropriate database settings and to modify the chat settings the way you like them.
Then copy the script to your web-server directory and call the script in your browser with a parameter like this:
http://(server)/(script-name).php?action=setup
@ -58,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:
------

2780
chat.php

File diff suppressed because it is too large Load Diff

View File

@ -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',
@ -180,7 +180,7 @@ $T=array(
'choosecol' => 'Gast, such dir eine Farbe aus:',
'randomcol' => 'Zufällige Farbe',
'enter' => 'Chat beitreten',
'error' => 'Fehler:',
'error' => 'Fehler',
'members' => 'Mitglieder',
'guests' => 'Gäste',
'approveguests' => '%d neue Gäste zum Hereinlassen',
@ -254,6 +254,7 @@ $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?',
'yes' => 'Ja',
@ -276,7 +277,6 @@ $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',
@ -308,9 +308,43 @@ $T=array(
'newer' => 'Neuer',
'accessdenied' => 'Zugriff verweigert',
'loggedinas' => 'Du bist als %s angemeldet und hast keinen Zugriff auf diesen Bereich.',
'changenickname' => 'Nickname ändern',
'newnickname' => 'Neuer Nickname:',
'nicknametaken' => 'Nickname ist bereits vergeben',
'nopass' => 'Ungültiges Passwort (Mindestens %d Zeichen), Nickname nicht geändert'
'nopass' => 'Ungültiges Passwort (Mindestens %d Zeichen), Nickname nicht geändert',
'gdextrequired' => 'Für diese Funktion wird die gd Erweiterung von PHP benötigt. Bitte installieren Sie diese zuerst.',
'memcachedextrequired' => 'Die memcached Erweiterung von PHP wird benötigt, um die Cache-Funktion zu benutzen. Bitte installieren Sie diese zuerst oder setzen Sie die memcached Einstellung zurück auf false.',
'opensslextrequired' => 'Die openssl Erweiterung von PHP wird benötigt, um die Verschlüsselungs-Funktion zu benutzen. Bitte installieren Sie diese zuerst oder setzen Sie die encrypted Einstellung zurück auf false.',
'pdo_mysqlextrequired' => 'Die pdo_mysql Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
'pdo_pgsqlextrequired' => 'Die pdo_pgsql Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
'pdo_sqliteextrequired' => 'Die pdo_sqlite Erweiterung von PHP wird für den ausgewählten Datenbanktreiber benötigt. Bitte installieren Sie diese zuerst.',
'jsonextrequired' => 'Für diese Funktion wird die json Erweiterung von PHP benötigt. Bitte installieren Sie diese zuerst.',
'sendmail' => 'E-Mail bei neuer Nachricht senden',
'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',
'guestreg' => 'Gäste sich selbst registrieren lassen',
'asmember' => 'Als Mitglied',
'assuguest' => 'Als Anwerber',
'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',
'eninall' => 'Für jeden',
'eninmem' => 'Nur für Mitglieder',
'eninstaff' => 'Nur für Moderatoren'
);
?>

View File

@ -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',
@ -180,7 +180,7 @@ $I=array(
'choosecol' => 'Guests, choose a colour:',
'randomcol' => 'Random Colour',
'enter' => 'Enter Chat',
'error' => 'Error:',
'error' => 'Error',
'members' => 'Members',
'guests' => 'Guests',
'approveguests' => '%d new guests to approve',
@ -254,6 +254,7 @@ $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',
@ -276,7 +277,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',
@ -308,9 +308,43 @@ $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'
'nopass' => 'Invalid password (At least %d characters), not changing nickname',
'gdextrequired' => 'The gd extension of PHP is required for this feature. Please install it first.',
'memcachedextrequired' => 'The memcached extension of PHP is required for the caching feature. Please install it first or set the memcached setting back to false.',
'opensslextrequired' => 'The openssl extension of PHP is required for the encryption feature. Please install it first or set the encrypted setting back to false.',
'pdo_mysqlextrequired' => 'The pdo_mysql extension of PHP is required for the selected database driver. Please install it first.',
'pdo_pgsqlextrequired' => 'The pdo_pgsql extension of PHP is required for the selected database driver. Please install it first.',
'pdo_sqliteextrequired' => 'The pdo_sqlite extension of PHP is required for the selected database driver. Please install it first.',
'jsonextrequired' => 'The json extension of PHP is required for this feature. Please install it first.',
'sendmail' => 'Send mail on new public message',
'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',
'guestreg' => 'Let guests register themselves',
'asmember' => 'As member',
'assuguest' => 'As applicant',
'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',
'eninall' => 'For everyone',
'eninmem' => 'For members only',
'eninstaff' => 'For staff only'
);
?>

View File

@ -180,7 +180,7 @@ $T=array(
'choosecol' => 'Invitado, elegí un color:',
'randomcol' => 'Color al azar',
'enter' => 'Entrar a la sala',
'error' => 'Error:',
'error' => 'Error',
'members' => 'Miembros',
'guests' => 'Invitados',
'approveguests' => '%d nuevos invitados para aprobar',
@ -276,7 +276,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 +307,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

@ -180,7 +180,7 @@ $T=array(
'choosecol' => 'Invitado, elija un color:',
'randomcol' => 'Color al azar',
'enter' => 'Ingresar a la sala',
'error' => 'Error:',
'error' => 'Error',
'members' => 'Miembros',
'guests' => 'Invitados',
'approveguests' => '%d nuevos invitados para aprobar',
@ -276,7 +276,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 +307,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

@ -180,7 +180,7 @@ $T=array(
'choosecol' => 'Invité, choisir une couleur:',
'randomcol' => 'Couleur aléatoire',
'enter' => 'Entrer',
'error' => 'Erreur:',
'error' => 'Erreur',
'members' => 'Membres',
'guests' => 'Invités',
'approveguests' => '%d nouveaux invités à approuver',
@ -276,7 +276,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 +307,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

@ -180,7 +180,7 @@ $T=array(
'choosecol' => 'Silahkan pilih warna:',
'randomcol' => 'Warna acak',
'enter' => 'Masuk obrolan',
'error' => 'Kesalahan:',
'error' => 'Kesalahan',
'members' => 'Anggota',
'guests' => 'Tamu',
'approveguests' => '%d tamu baru untuk disetujui',
@ -276,7 +276,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 +307,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

@ -180,7 +180,7 @@ $T=array(
'choosecol' => 'Гости выбирают цвет:',
'randomcol' => 'Случайный цвет',
'enter' => 'Войти в чат',
'error' => 'Ошибка:',
'error' => 'Ошибка',
'members' => 'Зарегистрированные',
'guests' => 'Гости',
'approveguests' => '%d новые гости для одобрения',

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);
?>