Mehrsprachige Websites mit Codeigniter

CodeIgniter ist ein Framework für die Entwicklung von Webanwendungen , eine Reihe von Tools für Entwickler, die Websites mit PHP erstellen. Ihr Ziel ist es, Ihnen zu ermöglichen, Projekte viel schneller zu entwickeln als Sie es könnten, wenn Sie Code von Grund auf neu schreiben, und eine Reihe von Bibliotheken für Aufgaben wie das Verwalten von Sitzungen, Datenbanken sowie eine einfache Schnittstelle und logische Struktur für den Zugriff auf diese Bibliotheken bereitzustellen.

Mit CodeIgniter können Sie sich kreativ auf Ihr Projekt konzentrieren, indem Sie die für eine bestimmte Aufgabe erforderliche Codemenge minimieren. . Im Gegensatz zu anderen Frameworks ist es sehr schnell und verbraucht wenig RAM .

So installieren Sie Codeigniter auf unserem Computer

Wir müssen Codeigniter von der offiziellen Website herunterladen. Derzeit ist Version 3.0 verfügbar. Dann müssen wir die ZIP-Datei entpacken und in einen Ordner auf unserem lokalen Server kopieren.

In einem anderen Tutorial wird erklärt, wie Sie Xampp installieren, um Ihren Computer in einen Webserver umzuwandeln. Dies ist ein Server, der sowohl unter Windows als auch unter Linux auf dem Computer installiert werden kann.

codeigniter-lenguajes.jpg

Wir werden Basic Codeingiter nicht eingeben, aber wir können in diesem Tutorial sehen, wie es funktioniert

CodeIgniter definiert Modelle, Ansichten und Controller

Für dieses Tutorial haben wir einen Tutorial-Ordner erstellt und die darin enthaltenen dekomprimierten Dateien kopiert.

Dann können wir über den Browser http: //localhost/pro…dex.php/Welcome auf unser Web zugreifen, um es zu testen

con las reglas necesarias para quitar de la url index.php que es una ruta por defecto en Codeigniter. Als nächstes erstellen wir eine htaccess- Datei mit den notwendigen Regeln, um die URL index.php zu entfernen, die eine Standardroute in Codeigniter ist.

Wir erstellen eine Textdatei und weisen ihr den Namen .htaccess zu. Anschließend kopieren wir den folgenden Code:

 Optionen FollowSymLinks <IfModule mod_rewrite.c> RewriteEngine ein RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule ^ (. *) $ Index.php? / $ 1 [L] </ IfModule> <IfModule! Mod_rewrite.c> ErrorDocument 404 /index.php </ IfModule> 

Dies verhindert, dass die index.php angezeigt wird und wir können den Controller aufrufen.
Wenn Sie uns folgenden Fehler melden:

Msgstr “Ihr Ansichtsordnerpfad scheint nicht richtig eingestellt zu sein.

Bitte öffnen Sie die folgende Datei und korrigieren Sie diese: index.php ”

Dies weist darauf hin, dass der Webordner keine Berechtigungen hat. Daher müssen wir allen Dateien Lese- und Schreibberechtigungen erteilen. Unter Linux richten wir vom Terminal aus eine Ebene ein, die dem Projektordner übergeordnet ist, und weisen mit den folgenden Befehlen die Berechtigungen zu:

 sudo chmod -R 777 tuto 

Und Benutzererlaubnis:

 sudo chown -R Benutzer: tuto Benutzer 

Wenn es gut funktioniert, sollten wir den Codeigniter-Bildschirm sehen, der mit Standard geliefert wird:

codeigniter-lenguajes2.jpg

Dann müssen wir Unterstützungsbibliotheken erstellen oder von ci_i18n_library.zip herunterladen, einer Bibliothek, die von Jérôme Jaglale für Codeigniter erstellt wurde. Diese Bibliothek funktioniert in Codeigniter 2.x, obwohl Codeigniter eine Klasse zum Verwalten von Sprachen bringt, die nicht so gut ist.

Im Hauptordner erstellen wir die Datei MY_Config.php . Im Falle der Verwendung von Codeingiter 3.0 müssen wir einige Änderungen vornehmen und den Code für Codeigniter 3.0 aktualisieren.

 <? php if (! defined ('BASEPATH')) exit ('Kein direkter Skriptzugriff erlaubt'); Klasse MY_Config erweitert CI_Config { Funktion site_url ($ uri = '', $ protocol = NULL) { if (is_array ($ uri)) { $ uri = implode ('/', $ uri); } if (class_exists ('CI_Controller')) { $ CI = & get_instance (); $ uri = $ CI-> lang-> localized ($ uri); } return parent :: site_url ($ uri); } } ?> 

Als nächstes kopieren wir die Datei MY_Lang in den Hauptordner . Diese Datei ist kompatibel mit Version 2.x und 3.x.

See also  So entfernen oder setzen Sie führende Nullen in Excel 2016 und Excel 2019

Wir öffnen diese Datei und fügen Sprachen in der variablen Sprache hinzu oder ändern sie. Hier definieren wir, welche Ordner jede Sprache enthält.

 // sprachen var $ languages ​​= array ( 'en' => 'englisch', 'is' => 'spanisch' ); 

Dann müssen wir unsere Sprachdateien erstellen. Im Ordner Sprache erstellen wir zwei Ordner, Englisch (Englisch) und Spanisch (Spanisch).

codeigniter-lenguajes3.jpg

Denken Sie daran, dass wir in jedem Ordner eine index.html- Datei mit folgendem Code ablegen sollten:

 <! DOCTYPE html> <html> <head> <title> 403 Verboten </ title> </ head> <body> <p> Der Verzeichniszugriff ist verboten. </ p> </ body> </ html> 

Jeder, der versucht, ohne Erlaubnis oder aus böswilligen Gründen auf das Verzeichnis zuzugreifen, wird mit der Meldung konfrontiert: “Der Zugriff auf das Verzeichnis ist verboten” .

codeigniter-lenguajes4.jpg

, por ejemplo en ingles $lang[‘usuario’] = “User” . Als nächstes erstellen wir im Ordner Sprache / Englisch unsere Datei in Englisch, wo wir Variablen hinzufügen, die das darstellen, was wir übersetzen möchten. Wir verwenden immer eine Matrix $ lang [‘Variable’] = ‘Wort oder Phrase’] , zum Beispiel in Englisch $ lang [‘user’] = “Benutzer” .

Der Name der PHP-Dateien für Sprachen muss mit dem Namen “_lang” enden . Zum Beispiel languages_lang .

Idiomas_lang.php – Englische Version

 <? php $ lang ['user'] = "Benutzer"; $ lang ['surcharge'] = 'Für diese Zahlungsmethode wird eine Gebühr von 5 Euro erhoben.'; $ lang ['legend'] = 'Fülle das Kontaktformular aus'; $ lang ['title'] = 'Mein mehrsprachiges Beispiel'; ?> Dann konfigurieren wir die Datei für die Übersetzung ins Spanische. Idiomas_lang.php - Spanische Version <? php $ lang ['user'] = "Benutzer"; $ lang ['surcharge'] = 'Für dieses Formular wird ein Zuschlag von 5,00 Euro erhoben.'; $ lang ['leyenda'] = 'Fülle das Kontaktformular aus'; $ lang ['title'] = 'Mein mehrsprachiges Beispiel'; ?> Als nächstes müssen wir den Controller im Controller-Ordner erstellen, der Testidioma.php heißt und den folgenden Code enthält: <? php defined ('BASEPATH') ODER exit ('Kein direkter Skriptzugriff erlaubt'); Klasse Testidioma erweitert CI_Controller { Funktionsindex () { // Helfer hinzufügen, um Sprache und Links zu verwalten $ this-> load-> helper ('language'); $ this-> load-> helper ('url'); // Sprachdatei aktivieren $ this-> lang-> load ('languages'); // wir zeigen unsere ansicht $ this-> load-> view ('Startseite'); } } ?> Als nächstes erstellen wir die Ansicht, im Ansichtsordner erstellen wir die Datei Home.php und fügen den folgenden Code hinzu: <! DOCTYPE html> <html lang = "<? = $ this-> lang-> lang ();?>"> <head> <meta charset = "utf-8" /> <link rel = "stylesheet" type = "text / css" href = "<? = base_url ()?> css / 960.css" media = "screen" /> <link rel = "stylesheet" type = "text / css" href = "<? = base_url ()?> css / text.css" media = "screen" /> <link rel = "stylesheet" type = "text / css" href = "<? = base_url ()?> css / reset.css" media = "screen" /> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"> </ script> <title> <? = lang ('title')?> </ title> <style> span { Hintergrund: # 959595; Hintergrund: URL (data: image / svg + xml; Base64, PD94bWwgdmVyc2lvbj0iMS4wIiA / Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI + CiAgICA8c3RvcCBvZmZzZXQ9IjQ2JSIgc3RvcC1jb2xvcj0iIzBkMGQwZCIgc3RvcC1vcGFjaXR5PSIxIi8 CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzk1OTU5NSIgc3RvcC1vcGFjaXR5PSIxIi8 + + + + CiAgICA8c3RvcCBvZmZzZXQ9IjUzJSIgc3RvcC1jb2xvcj0iIzBhMGEwYSIgc3RvcC1vcGFjaXR5PSIxIi8 CiAgICA8c3RvcCBvZmZzZXQ9Ijc2JSIgc3RvcC1jb2xvcj0iIzRlNGU0ZSIgc3RvcC1vcGFjaXR5PSIxIi8 CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAxMDEwMSIgc3RvcC1vcGFjaXR5PSIxIi8 CiAgICA8c3RvcCBvZmZzZXQ9Ijg3JSIgc3RvcC1jb2xvcj0iIzM4MzgzOCIgc3RvcC1vcGFjaXR5PSIxIi8 + + + CiAgPHJlY3QgeD0iMC CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxYjFiMWIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ IgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc +); Hintergrund: -moz-linear-gradient (oben, # 959595 0%, # 0d0d0d 46%, # 010101 50%, # 0a0a0a 53%, # 4e4e4e 76%, # 383838 87%, # 1b1b1b 100%); Hintergrund: -webkit-Farbverlauf (linear, links oben, links unten, Farbstopp (0%, # 959595), Farbstopp (46%, # 0d0d0d), Farbstopp (50%, # 010101), Farbstopp Stopp (53%, # 0a0a0a), Farbstopp (76%, # 4e4e4e), Farbstopp (87%, # 383838), Farbstopp (100%, # 1b1b1b)); Hintergrund: -webkit-linear-gradient (oben, # 959595 0%, # 0d0d0d 46%, # 010101 50%, # 0a0a0a 53%, # 4e4e4e 76%, # 383838 87%, # 1b1b1b 100%); Hintergrund: -o-linearer Gradient (oben, # 959595 0%, # 0d0d0d 46%, # 010101 50%, # 0a0a0a 53%, # 4e4e4e 76%, # 383838 87%, # 1b1b1b 100%); Hintergrund: -ms-linearer-Gradient (oben, # 959595 0%, # 0d0d0d 46%, # 010101 50%, # 0a0a0a 53%, # 4e4e4e 76%, # 383838 87%, # 1b1b1b 100%); Hintergrund: linearer Farbverlauf (nach unten, # 959595 0%, # 0d0d0d 46%, # 010101 50%, # 0a0a0a 53%, # 4e4e4e 76%, # 383838 87%, # 1b1b1b 100%); filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 959595', endColorstr = '# 1b1b1b', GradientType = 0); Polsterung: 5px; Rand: 5px; Schwimmer: links; } a: link { Farbe: #ffffff; Textdekoration: keine; } a: besucht { Textdekoration: keine; Farbe: #ffffff; } a: schwebeflug { Textdekoration: keine; } </ style> </ head> <body> <p> <? = lang ('user')?> </ p> <p> <? = lang ('Aufpreis')?> </ p> <p> <? = lang ('legend')?> </ p> <br> <span> <? = anchor ('is / Testidioma', 'Spanish'); ?> </ span> <span> <? = Anker ('in / Testidiom', 'Englisch'); ?> </ span> Als nächstes gehen wir in den Ordner config und in der Datei routes.php müssen wir die Sprachrouten konfigurieren und angeben, welche die Steuerung der Homepage unseres Webs ist. $ route ['default_controller'] = 'Testidiom'; $ route ['404_override'] = ''; $ route ['translate_uri_dashes'] = True; // Verfügbare Sprachen anzeigen $ route ['^ is /(.+)$'] = "$ 1"; $ route ['^ en /(.+)$'] = "$ 1"; // Geben Sie an, welches die Heimat ist $ route ['^ is $'] = $ route ['default_controller']; $ route ['^ en $'] = $ route ['default_controller']; 

Jedes Mal, wenn wir eine Sprache hinzufügen möchten, müssen wir die Dateien my_lang und routes.php ändern, um die entsprechende Konfiguration hinzuzufügen. Jetzt können wir unser Beispiel testen, indem wir in diesem Fall auf die URL zugreifen.
http: // localhost / proyectos / tuto /

See also  So fälschen Sie die Position im Edge- und Chrome-Browser

codeigniter-lenguajes5.jpg

Wenn wir die spanische Taste drücken, werden wir sehen, wie sich die Sprache ändert.

codeigniter-lenguajes6.jpg

Ein weiterer wichtiger Aspekt ist, dass wir je nach Abschnitt oder Modul des Webs unterschiedliche Sprachdateien haben können.

Angenommen, ich möchte die Übersetzungen vom Backend oder Administrator und vom Web des Benutzers trennen, dann erstelle ich im Sprachordner zwei verschiedene Dateien, eine admin_lang mit der folgenden Struktur:

Wir definieren die Variablen als modulo.variable, so dass admin.usuario und usuarios.usuario unterschiedlich sind. Wir sehen die Dateien:

Im Ordner englisch (admin_lang.php)

 <? php $ lang ['admin.usuario'] = "Benutzeradministrator"; ?> 

Datei users_lang.php

 <? php $ lang ['users.user'] = "User Home"; ?> 

Im Ordner spanisch (admin_lang.php)

 <? php $ lang ['admin.user'] = "Administrator User"; 

Die andere Datei heißt users_lang

 <? php $ lang ['users.user'] = "User"; ?> 

Als nächstes fügen wir hinzu, um die zwei Sprachdateien jedes Moduls zu steuern.

 <? php defined ('BASEPATH') ODER exit ('Kein direkter Skriptzugriff erlaubt'); Klasse Testidioma erweitert CI_Controller { Funktionsindex () { $ this-> load-> helper ('language'); $ this-> load-> helper ('url'); // Sprachdatei laden $ this-> lang-> load ('admin'); $ this-> lang-> load ('Benutzer'); $ this-> load-> view ('Startseite'); } } ?> 

In der Ansicht rufen wir dann jede Variable folgendermaßen auf:

 <p> <? = lang ('users.user')?> </ p> <p> <? = lang ('admin.usuario')?> </ p> 

Dann führen wir im Browser aus, wir werden sehen, dass jede Variable die Übersetzung ihres Moduls berücksichtigt:

codeigniter-lenguajes7.jpg

Codeigniter startet standardmäßig immer in Englisch. Wenn es in einer anderen Sprache gestartet werden soll, müssen wir in den Konfigurationsordner gehen und in der Datei config.php nach der folgenden Zeile suchen:

 $ config ['language'] = 'english'; 

Und wir ändern es zum Beispiel für die Sprache, die wir wollen

 $ config ['language'] = 'spanish'; 

Sehen wir uns ein interessanteres Beispiel an:

So erstellen Sie ein Kontaktformular und ein übersichtliches Design

1. Wir erstellen die Formularansicht

 </ html> <html> <head> <title> CodeIgniter-Sprachklasse </ title> <link rel = "stylesheet" type = "text / css" href = "<? php echo base_url ();?> css / style.css"> <link href = 'http: //fonts.googleapis.com/css? family = Source + Sans + Pro | Open + Sans + Condensed: 300 | Raleway' rel = 'Stylesheet' type = 'text / css'> <style> Körper { Schriftart: 12px Arial, Helvetica, serifenlos; } .boton { Schwimmer: links; Hintergrundfarbe: # 1e5184; Rand: 0,1 em Feststoff # 555; Rand: 0,2em; Polsterung: 0,2em; Anzeige: Block; Farbe: #eee; } a: link, a: hover { Farbe: #ffffff; Schriftgröße: kühner; Textdekoration: keine; } Etikett { Rand rechts: 5px; } </ style> <script type = "text / javascript"> Funktion Senden () { var msg = "<? php echo $ msg_envianced;?>" alert (msg); } </ script> </ head> <body> <? php echo form_open ('/ Send', 'class = "email" id = "miform"'); ?> <div class = "main"> <div id = "content"> <h2 id = "form_head"> <? php echo $ title; ?> </ h2> <span class = "button"> <? = anchor ('is / Contact', 'Spanish'); ?> </ span> <span class = "button"> <? = anchor ('in / Contact', 'English'); ?> </ span> <br/> <br/> <hr> <div id = "form_input"> <? php echo form_label ($ name); $ html = array ( 'name' => 'name', 'class' => 'input_box' ); echo form_input ($ html); Echo '<br>'; echo form_label ($ email); $ html = array ( 'name' => 'email', 'class' => 'input_box' ); echo form_input ($ html); Echo '<br>'; echo "<div class = 'textarea_input'>"; echo form_label ($ message); Echo '<br>'; $ html = array ( 'rows' => 10, 'cols' => 50, 'name' => 'message' ); echo form_textarea ($ html); Echo "</ div>"; echo '<div id = "form_button">'; echo form_submit ('submit', $ send, 'id = "submit" onclick = "Send ()"'); Echo '</ div>'; echo form_close (); ?> </ div> </ div> </ body> </ html> 

Obwohl wir es noch nicht sehen können, weil der Treiber fehlt, sieht die Ansicht folgendermaßen aus:

See also  So deinstallieren Sie den Druckertreiber in Windows 10

codeigniter-lenguajes8.jpg

2. Wir erstellen den Controller

 <? php ob_start (); Klasse Contact erweitert CI_Controller { Funktion __construct () { parent :: __ construct (); } public function index () { $ this-> load-> helper ('language'); $ this-> load-> helper ('url'); $ this-> load-> helper ('form'); // Wir nehmen die Sprache, die durch die URL kommt, und bestimmen, welche $ language = $ this-> uri-> segment (1); if ($ language == 'is') { $ language = 'spanish'; } if ($ language == 'in') { $ language = 'english'; } // Wir rufen die Sprachdatei auf $ this-> lang-> load ('contact', $ language); // Wir erstellen eine Matrix mit den Daten, die wir an die Ansicht senden $ datosvista = array (); $ datosvista ['default'] = $ language; $ datosvista ['title'] = $ this-> lang-> line ('contact.title'); $ datosvista ['language'] = $ this-> lang-> line ('contact.language'); $ datosvista ['nombre'] = $ this-> lang-> line ('contacto.nombre'); $ datosvista ['mensaje'] = $ this-> lang-> line ('contacto.mensaje'); $ datosvista ['email'] = $ this-> lang-> line ('contacto.email'); $ datosvista ['msg_enviado'] = $ this-> lang-> line ('contacto.msg_enviado'); $ datosvista ['send'] = $ this-> lang-> line ('contacto.enviar'); // Abgerufene Daten an die angezeigte Seite senden $ this-> load-> view ('Kontakt', $ dataession); } } ?> 

(contancto_lang.php) 3. Wir haben die Übersetzungsdatei auf Spanisch erstellt (contancto_lang.php)

 <? php $ lang ['contact.title'] = 'Kontaktformular'; $ lang ['contact.name'] = 'Name'; $ lang ['contact.message'] = 'Nachricht'; $ lang ['contacto.email'] = 'Email'; $ lang ['contacto.msg_enviado'] = 'Vielen Dank! Ihre Nachricht wurde gesendet. '; $ lang ['contact.send'] = 'Senden'; ?> 

(contacto_lang.php) 4. Wir haben die Übersetzungsdatei in Englisch erstellt (contacto_lang.php)

 <? php $ lang ['contact.title'] = 'Kontaktformular'; $ lang ['contact.name'] = 'Name'; $ lang ['contact.message'] = 'Nachricht'; $ lang ['contacto.email'] = 'Email'; $ lang ['contacto.msg_enviado'] = 'Vielen Dank! Ihre Nachricht wurde gesendet. '; $ lang ['contact.enviate'] = 'Senden'; ?> 

Das übersetzte Formular lautet wie folgt:

codeigniter-lenguajes9.jpg

Wir können nach Bedarf jede Datei mit benutzerdefinierten Variablen erstellen oder einbinden, die für unsere Website erforderlich ist, um Fehlermeldungen und spezifische Meldungen der Anwendung bereitzustellen, oder um Übersetzungen von Webservices in andere Sprachen bereitzustellen.

Diese Übersetzungen oder neuen Sprachen sollten sich immer in Ihrer Sprache / Sprache / Verzeichnis befinden und gleich heißen, dh wenn wir eine Datei haben, sollte errors_lang in allen Sprachen und den entsprechenden Variablen gleich heißen.

CodeIgniter wird mit einer Reihe von Standard-Sprachdateien in englischer Sprache geliefert . Codeigniter enthält fertige Übersetzungen für Formularfehler, Datenbanken, Kalender, E-Mails in fast allen Sprachen, die aus dem Übersetzungs-Repository heruntergeladen werden können.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *