Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: DeveloperTalk. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

1

07.10.2011, 19:38

7. Sprachdateien Teil 1

Jetzt werden wir uns mal um die Sprach-dateien kümmern. ;)
Dazu erstellen wir eine neue Datei namens "Lang.php", die in den Ordner "CMS/classes" kommt.
Die eig. Sprach-Dateien erben dann von dieser Datei.
Sie enthält eig. nur Variablen.
Sie sieht erst einmal so aus:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

abstract class Lang {

    public $connect_database_error "";//Datenbank-verbindung ist fehlgeschlagen.
    public $database_selected_error "";//Datenbank-Auswahl fehlgeschlagen.
    public $config_error "";//Wenn Config.ini nicht gefunden werden konnte.
    public $settings_error "";//Wennn eine Einstellung nicht gefunden werden konnte.
    public $table_doesnt_exists "";//Wenn Tabelle nicht existiert.
    public $offline "";//Wenn das CMS offline ist, also niemand darauf zugreifen darf.

}

?>


Später kommen mehr Variablen hinzu.

In der "index.php" - Datei müssen wir die Datei noch includieren.
Die "index.php" sieht jetzt so aus:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

error_reporting(E_ALL);

require("CMS/classes/database.php");//Hinweis: Ihr könnt die Klammern auch weglassen, nähere Infos gibt es bei Simon^^ (http://www.developertalk.de/user/2-simon/)
require("CMS/classes/lang.php");
require("CMS/classes/settings.php");
require("CMS/classes/DBManager.php");

$DBManager = new DBManager();

if (!$DBManager->isInit() || !$DBManager->getDBDriver()) {
    echo "Ein Fehler ist aufgetreten.";
    exit;
}

$db $DBManager->getDBDriver();
$db->connect();

?>
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »JuKu« (19.10.2011, 15:26)


Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

2

07.10.2011, 19:44

Lang muss wieder groß, da es ein Klassenname ist ;)

Außerdem müsste die abstrakt sein, weil es ja keinen Sinn macht, wenn man die Lang Klasse instanziiert...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

JuKu (07.10.2011)

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

3

07.10.2011, 19:48

Das Problem an diesem Foren-Editor ist, das er immer meine Leerzeichen (wenn Tabulator nicht geht^^) weg macht, wenn ich den Beitrag editiere. X( :evil:
Gibt es nicht irgendein Plugin für diese Foren-Software, das die leerzeichen erhalten bleiben? ^^ :D
Das wäre sehr schön. ;)
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

tom

Schüler

Beiträge: 54

Registrierungsdatum: 20.06.2011

Danksagungen: 18

  • Private Nachricht senden

4

07.10.2011, 19:49

Wie wärs mal mit GNU gettext ?

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

5

07.10.2011, 19:50

Hey,
wieso hast du hier wieder die Namengebung über Bord geworfen und die Klasse nicht: Lang oder Language genannt?
Ansonsten gehört die Klasse Lang noch abstract, oder soll man sie instanzieren können?


Ich würd für die Sprachdatei jedoch was viel einfacheres vorschlagen.

Eine Datei, in welcher ein PHP Array mit den Sprachkonstanten ist.
Dann eine Klasse Language, welcher die Sprache übergeben wird. Aus dieser Sprache lässt sich die Datei mit PHP-Array bestimmen.

Dann läd die Klasse das Array und stellt es durch Getter zur Verfügung.

Dann bräuchte man nicht für jede Klasse eine eigene Sprache ;)
Edit: Zu lange getippt:D
Manches wurde schon gesagt.

Bzgl. den Leerzeichen: Benutz einfach Tabs :D

Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

JuKu (15.03.2012)

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

6

07.10.2011, 19:56

Wie soll ich den hier Tabs benutzen?
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

7

07.10.2011, 19:58

Wie wärs mal mit GNU gettext ?
Das Forum löscht alle Leerzeichen, egal, mit welchem Programm ich das texte.
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

8

07.10.2011, 20:00

Hey,
wieso hast du hier wieder die Namengebung über Bord geworfen und die Klasse nicht: Lang oder Language genannt?
Ansonsten gehört die Klasse Lang noch abstract, oder soll man sie instanzieren können?


Ich würd für die Sprachdatei jedoch was viel einfacheres vorschlagen.

Eine Datei, in welcher ein PHP Array mit den Sprachkonstanten ist.
Dann eine Klasse Language, welcher die Sprache übergeben wird. Aus dieser Sprache lässt sich die Datei mit PHP-Array bestimmen.

Dann läd die Klasse das Array und stellt es durch Getter zur Verfügung.

Dann bräuchte man nicht für jede Klasse eine eigene Sprache ;)
Edit: Zu lange getippt:D
Manches wurde schon gesagt.

Bzgl. den Leerzeichen: Benutz einfach Tabs :D
Eig. ist das eine sehr gute Idee.
Aber ich überlege, ob ich eine Methode erstelle, mit der man variierte Fehlermeldungen, ... ausgeben kann.
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

9

07.10.2011, 20:10

Wenn es ein Wort in einer Sprache net gibt, würde ich erstmal das aus der Standartsprache nehmen, also englsich und wenn es die da auch net gibt, dann vielleicht eine Meldung stattdessen, aber net, dass das ganze Script wegen einem Wort wegnippelt ;)

Tabulator kann man net nehmen, weil man dann ja den Input im Formular wechselt :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

tom

Schüler

Beiträge: 54

Registrierungsdatum: 20.06.2011

Danksagungen: 18

  • Private Nachricht senden

10

07.10.2011, 20:15

Mit GNU gettext war http://de.wikipedia.org/wiki/GNU_gettext gemeint.

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

11

07.10.2011, 20:31

Ach so, Danke! :D
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Ähnliche Themen

Verwendete Tags

CMS, MYSQL, PHP, Programmieren