Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 00:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Homepage mit Multi Lanuage

Discussion on Homepage mit Multi Lanuage within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 121
Join Date: Jan 2011
Posts: 99
Received Thanks: 13
Question Homepage mit Multi Lanuage

Hi ich habe eine Homepage und habe nun neben einigen Deutschen Besuchern auch einige Amerikaner zum Beispiel , diese Sprechen alle Englisch .
Nun möchte ich machen das eine language datei habe .
eine de.language und eine eng.language z.b.
da sind dann untereinander oder wie auch immer die verschiedenen worte drin
wie mache ich das meine webseite dann wenn man auf ein fähnchen z.b. klickt die eng.language geladen wird und die texte ( sind nicht viele) dann in englisch sind und nichtmehr in deutsch
kann mir da jemand helfen müsste eben auf php&/html basieren oder auch anderes ....
Hoffe das mir jemand da weiterhelfen kann
Greetz
Gravitax is offline  
Old 01/10/2012, 17:51   #2
 
Che's Avatar
 
elite*gold: 120
Join Date: Aug 2010
Posts: 7,448
Received Thanks: 2,756
Schreib dir alle Phrasen/Texte in ein Array und gebe dann nicht feste Texte aus sondern geb die Phrasen ausm Array aus.
Beispiel:
anstatt
PHP Code:
<?
echo "testtext";
?>
PHP Code:
<?
$en 
= new Array("this is a simple test-text""this is another test-text");
$de = new Array("Dies ist ein einfacher Testtext""das ist noch ein Testtext");
function 
english(){
echo 
$en[0]; //this is a simple test-text
echo $en[1]; //this is another test-text
}
function 
deutsch(){
echo 
$de[0]; //Dies ist ein einfacher Testtext
echo $de[1]; //das ist noch ein Testtext
}
if (isset(
$_GET['lang']) && $_GET['lang'] == "en"){
english();
}
else{
deutsch();
}
?>
So in der Art mach ich das immer, erst prüfen welche Sprache gesetzt ist, dann entscheiden was ausgegeben werden soll und dann ausgeben. Normalerweise mach ich das so:
PHP Code:
$en = new Array("header" => "blabla""bullshit" => "blabla""footer" => "footerblabla");
$de = new Array("header" => "deblabla""bullshit" => "deblabla""footer" => "defooterblabla");
if (isset(
$_GET['lang'] && $_GET['lang'] == ""$lang $_GET['lang'];
// irgendein source davor
echo ($lang == "en")?$en["footer"]:$de["footer"]
// irgendwas danach 
Che is offline  
Thanks
1 User
Old 01/10/2012, 22:48   #3
 
elite*gold: 121
Join Date: Jan 2011
Posts: 99
Received Thanks: 13
das ist ein ein Beispiel: echo '<hr><span style="font-weight:bold;">You may only enter 500 or less characters here.</span>';
ich will halt das dieser text von einer lang.php z.b. abgerufen wird
habe halt relativ viele dateien weshalb eine solche möglichkeit über eine datei wo eben alles raus gezigen wird praktischer wäre
...
Gravitax is offline  
Old 01/10/2012, 23:54   #4
 
Che's Avatar
 
elite*gold: 120
Join Date: Aug 2010
Posts: 7,448
Received Thanks: 2,756
Quote:
Originally Posted by Gravitax View Post
das ist ein ein Beispiel: echo '<hr><span style="font-weight:bold;">You may only enter 500 or less characters here.</span>';
ich will halt das dieser text von einer lang.php z.b. abgerufen wird
habe halt relativ viele dateien weshalb eine solche möglichkeit über eine datei wo eben alles raus gezigen wird praktischer wäre
...
In der lang.php packste die Arrays rein und inkludierst die Datei in allen anderen Dateien, in denen du so nen Textstring brauchst, Rest geht wie oben.
dh:
lang.php
PHP Code:
$en = new Array("header" => "blabla""bullshit" => "blabla""footer" => "footerblabla");
$de = new Array("header" => "deblabla""bullshit" => "deblabla""footer" => "defooterblabla"); 
zb index.php
PHP Code:
require_once './lang.php';
if (isset(
$_GET['lang'] && $_GET['lang'] == ""$lang $_GET['lang'];
// irgendein source davor
echo ($lang == "en")?$en["footer"]:$de["footer"]
// irgendwas danach 
Grundlagen mein Junge, Grundlagen.
Che is offline  
Thanks
1 User
Old 01/11/2012, 17:22   #5
 
elite*gold: 121
Join Date: Jan 2011
Posts: 99
Received Thanks: 13
hehe danke
grundlagen ja das wort kommt mir bekannt vor
habe nur ein problem mit sachen wieder ausm gehirn kramen und dann hab ich einfach keinen plan mehr
aber vielen dank
werd mal schaun wie ich das jetzt umsetze
Thx
Gravitax is offline  
Old 01/12/2012, 14:10   #6
 
elite*gold: 0
Join Date: Oct 2008
Posts: 319
Received Thanks: 88
Quote:
Originally Posted by 〤Che〤 View Post
In der lang.php packste die Arrays rein und inkludierst die Datei in allen anderen Dateien, in denen du so nen Textstring brauchst, Rest geht wie oben.
dh:
lang.php
PHP Code:
$en = new Array("header" => "blabla""bullshit" => "blabla""footer" => "footerblabla");
$de = new Array("header" => "deblabla""bullshit" => "deblabla""footer" => "defooterblabla"); 
zb index.php
PHP Code:
require_once './lang.php';
if (isset(
$_GET['lang'] && $_GET['lang'] == ""$lang $_GET['lang'];
// irgendein source davor
echo ($lang == "en")?$en["footer"]:$de["footer"]
// irgendwas danach 
Grundlagen mein Junge, Grundlagen.
Wenn man deine Methode verwenden würde müsste man einmal sein ganzes Script
umschreiben falls man eine neue Sprache hinzufügen will. Zu den Grundlagen gehört
übrigens auch seinen Code Wartbar zu machen. Hier wäre es besser ein
Multidimensionales Array anzulegen in dem alle Sprachen gespeichert werden, eine
Fallback Sprache festzulegen und dan eine Variable anzulegen in dem das Entgültige
Sprachpacket gespeichert wird. Somit kannst du bequem je nachdem wie du lustig
bist weitere Sprachdateien includieren, und musst nicht einmal deinen Ganzen Code
ändern. Eine noch bessere Variante wäre natürlich wenn man
einfach nur die Sprachdatei includiert die auch wirklich gebraucht wird, was ich hier
jetzt aber nicht getan habe. Was unten folgt ist nebenbei auch nur ein Beispielcode.

PHP Code:
// Array um alle Sprachen zwischenzuspeichern
$langc = array();

// Fallback Sprache
$fblang 'de';

// Inhalt der einer Sprachdatei (z.B. de.lang.php)
$langc['de']['phrase001'] = 'Hallo';
$langc['de']['phrase002'] = 'Welt';

// Inhalt einer anderen Sprachdatei (z.B en.lang.php)
$langc['en']['phrase001'] = 'Hello';
$langc['en']['phrase002'] = 'World';

$lang = ($_GET['lang']) ? ((isset($langc[$_GET['lang']])) ? $langc[$_GET['lang']] : $langc[$fblang] ) : $langc[$fblang];

/*
 * Wenn Sprache nun auf Englisch gesetzt wurde ergibt
 *  echo $lang['phrase001'] . $lang['phrase002'];
 * Hello World. Wenn jedoch auf Deutsch lautet die
 * Ausgabe Hallo Welt.
 */ 
Fratyr is offline  
Thanks
1 User
Old 01/12/2012, 21:47   #7
 
elite*gold: 121
Join Date: Jan 2011
Posts: 99
Received Thanks: 13
ok bei deinem blicke ich nich ganz durch wie ich das umsetzen soll ....
also eine de.lang.php anlegen soweit verstanden
da muss dann
$langc['de']['phrase001'] = 'Hallo';
$langc['de']['phrase002'] = 'Welt';
... rein
was muss ich aber z.b. in meine index.php reinmachen ???
Gravitax is offline  
Old 01/13/2012, 08:49   #8



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
Ich würde dir empfehlen, via Session eine standart sprache zu setzen und diese dann abzufragen.

PHP Code:
$_SESSION['lang'] = 'english'
und diese kannst du dann via links oder buttons oder was du willst ändern, dann würd es so aussehen:
PHP Code:
if( isset($_SESSION['lang']) ){
include(
'lang/'.$_SESSION['lang'].'.php')
}else{
include(
'lang/english.php')

Nun siehst du, dass ich da einen include nutze, um die Sprachdatei auszuwählen, dann müsstest du diese auch erstellen.

english.php:
PHP Code:
<?php

$lang
['homepage_title'] = 'Welcome to my homepage';
$lang['homepage_register'] = 'Register';

?>
und dann von der session her z.B. für deutsch

german.php:
PHP Code:
<?php

$lang
['homepage_title'] = 'Willkommen auf meiner Homepage';
$lang['homepage_register'] = 'Registration';

?>
So wäre es einfach zu realisieren, und ich nutze es oftmals.
Sedrika is offline  
Old 01/13/2012, 13:05   #9


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Gut, dass ich vor Ewigkeiten mal eine PHP-Klasse dafür geschrieben hab. Weiß grad nicht, ob sie überhaupt funktioniert, aber du kannst es ja gerne mal ausprobieren.

Ich hatte, nachdem ich die Klasse geschrieben habe, eine weitere Klasse erstellt, die die fehlenden Übersetzungen automatisch von Google holt und in einer Textdatei speichert. Da Google ja mittlerweile Geld dafür verlangt, hat sich das Thema auch erledigt



Das Ganze sollte selbsterklärend sein. Falls nicht - Fragen!
Whoknowsit is offline  
Old 01/13/2012, 15:13   #10
 
elite*gold: 121
Join Date: Jan 2011
Posts: 99
Received Thanks: 13
thx mal anschauen
Gravitax is offline  
Old 01/13/2012, 17:04   #11


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Nabend,

ich hab mir das Ganze jetzt mal angesehen. Funktioniert soweit, bis auf zwei kleine Fehler, die ich behoben habe.

Ferner habe ich das Beispiel erweitert. Dadurch musst du neu hinzugefügte Sprachen nicht mehr in deinem Template hinzufügen (siehe index.php, Zeilen 45-57). Außerdem sieht der Besucher auch, welche Sprache zZt. aktiv ist. Aber wirst du sicherlich sehen

Whoknowsit is offline  
Old 01/17/2012, 12:57   #12


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Dass hier nichts mehr kommt lässt darauf schließen, dass es funktioniert?
Whoknowsit is offline  
Old 01/26/2012, 21:14   #13
 
elite*gold: 121
Join Date: Jan 2011
Posts: 99
Received Thanks: 13
naja nich wirklich bleibe zum beispiel an sachen wie demhier hängen
PHP Code:
function basicsettings() {
    global 
$db,$ir,$c,$h,$userid,$set;
      if ( 
$ir['user_level'] != ) {
   echo 
'You cannot access this area.<br />> <a href="staff.php">Go Back</a>';
   die(
$h->endpage());
      }
        
$_POST['game_name'] = ( isset($_POST['game_name'])&&preg_match("/^[a-z0-9_.]+([\\s]{1}[a-z0-9_.]|[a-z0-9_.])+$/i"$_POST['game_name']) )?strip_tags($db->escape($_POST['game_name'])):'';
        
$_POST['game_owner'] = ( isset($_POST['game_owner'])&&preg_match("/^[a-z0-9_]+([\\s]{1}[a-z0-9_]|[a-z0-9_])+$/i"$_POST['game_owner']) )?strip_tags($db->escape($_POST['game_owner'])):'';
        
$_POST['game_description'] = ( isset($_POST['game_description']) )?strip_tags($db->escape($_POST['game_description'])):'';
        
$_POST['paypal'] = ( isset($_POST['paypal'])&&filter_input(INPUT_POST'paypal'FILTER_VALIDATE_EMAIL) ) ? $_POST['paypal'] : '';
        
$_POST['ct_refillprice'] = ( isset($_POST['ct_refillprice'])&&is_numeric($_POST['ct_refillprice']) )?abs(intval($_POST['ct_refillprice'])):'';
        
$_POST['ct_iqpercrys'] = ( isset($_POST['ct_iqpercrys'])&&is_numeric($_POST['ct_iqpercrys']) )?abs(intval($_POST['ct_iqpercrys'])):'';
        
$_POST['ct_moneypercrys'] = ( isset($_POST['ct_moneypercrys'])&&is_numeric($_POST['ct_moneypercrys']) )?abs(intval($_POST['ct_moneypercrys'])):'';
        
$_POST['willp_item'] = ( isset($_POST['willp_item'])&&is_numeric($_POST['willp_item']) )?abs(intval($_POST['willp_item'])):'';
        
$_POST['validate_on'] = ( isset($_POST['validate_on'])&&in_array($_POST['validate_on'],array('1','0')) )?$_POST['validate_on']:FALSE;
        
$_POST['validate_period'] = ( isset($_POST['validate_period'])&&in_array($_POST['validate_period'],array('5','15','60','login')) )?$_POST['validate_period']:FALSE;
        
$_POST['regcap_on'] = ( isset($_POST['regcap_on'])&&in_array($_POST['regcap_on'],array('1','0')) )?$_POST['regcap_on']:FALSE;
        
$_POST['sendcrys_on'] = ( isset($_POST['sendcrys_on'])&&in_array($_POST['sendcrys_on'],array('1','0')) )?$_POST['sendcrys_on']:FALSE;
        
$_POST['sendbank_on'] = ( isset($_POST['sendbank_on'])&&in_array($_POST['sendbank_on'],array('1','0')) )?$_POST['sendbank_on']:FALSE;
       if ( empty(
$_POST['game_name']) OR empty($_POST['game_owner']) OR empty($_POST['game_description']) OR empty($_POST['paypal']) OR empty($_POST['ct_refillprice']) OR empty($_POST['ct_iqpercrys']) OR empty($_POST['ct_moneypercrys']) OR is_bool($_POST['validate_on']) OR is_bool($_POST['validate_period']) OR is_bool($_POST['regcap_on']) OR is_bool($_POST['sendcrys_on']) OR is_bool($_POST['sendbank_on']) ) {
   echo 
"
<h3>Basic Settings</h3>
<hr />
<form action='staff.php?action=basicset' method='post'>
    Game Name: <input type='text' name='game_name' value='
{$set['game_name']}' /><br />
    Game Owner: <input type='text' name='game_owner' value='
{$set['game_owner']}' /><br />
    Game Description:<br />
    <textarea rows='7' cols='50' name='game_description'>
{$set['game_description']}</textarea><br />
    Paypal Address: <input type='text' name='paypal' value='
{$set['paypal']}' /><br />
    Gym/Crimes Validation: <select name='validate_on' type='dropdown'> 
Gravitax is offline  
Old 01/27/2012, 17:13   #14


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Reden wir noch vom selben Thema? Wo genau liegt denn dein Problem?

Ich sehe, du baust deine Seite auf englisch d.h. du musst sowieso erst einmal in der Klasse die Variable $_defaultlanguage auf en stellen.

Dann erstellst du dir eine Textdatei namens de.lng im translations-Verzeichnis und füllst diese Datei mit Inhalt:

Code:
You cannot access this area.=Sie können diesen Bereich nicht betreten
Go Back=Zurück gehen
In der PHP-Datei schreibst du dann an Stelle von

Code:
echo 'You cannot access this area.<br />> <a href="staff.php">Go Back</a>';
folgendes:

Code:
echo __('You cannot access this area.') .'<br />> <a href="staff.php">'. __('Go Back') . '</a>';
Die PHP-Funktion __() ist für die Übersetzung zuständig d.h. als Parameter wird der zu übersetzende String erwartet.

Soweit klar?
Whoknowsit is offline  
Old 01/27/2012, 18:27   #15
 
elite*gold: LOCKED
Join Date: Dec 2009
Posts: 434
Received Thanks: 396
Man kann es über PHP mit einer einfachen Variable managen.Einfach einmalig eine abfrage oder ggf. eine auswahl vornehmen wo der user sagt ob er deutsch oder englisch möchte und dann einfach auf subdomains weiterleiten (de.blabla.com / en.blabla.com) ,wäre am einfachsten.So hast du deinen code sehr vollgetopft mit strings.Aber selbst dann würde ich es auch über eine variable machen die du z.B. in vars.php definierst ,und über den index setzt,nehmen wir an die Variable ist $lang ,also wenn deutsch: $lang = 0; wenn englisch: $lang = 1;
Nun in allen datein (oder über den header include fals vorhanden) einen require_once ausführen ,und dann einfach so:
if($lang == 0) {
echo "german text";
}else if($lang==1){
echo "english";
}

Ich bevorzuge allerdings die subdomain variante da sie einfach den Code übersichtlicher hält.Und nicht mit strings überfüllt
Tipp: IP whois
KingClem™ is offline  
Reply


Similar Threads Similar Threads
[Service]Let me construct your homepage / Lass mich deine Homepage erstellen
06/16/2011 - elite*gold Trading - 23 Replies
English: Hello Com! I´m now ready with my schooling and have till oktober much time (Then begins my civilian service). I thought i can help those people to construct their homepage who can´t do it by them self. When you´re interested in my previous "projects" look here: LTSP-Server Adressverwaltung Dollart Fahrschule
[Homepage Release]Imba Homepage by TribalCriser [Top Desing , Viele Funktionen etc]
10/21/2010 - Metin2 PServer Guides & Strategies - 116 Replies
Hallo, Ich stelle euch hier eine neue Generation der Metin2 Privat Server Homepages zur verfügung, die Homepage ist einfach Gut sie bietet viele Funtkionen die fast keine Public Homepage bietet sie bietet noch mehr Funktionen als bekannt sind, ein Top Desing ist auch dabei. Informationen vorneweg (Wichtig: Bitte Lesen!):
Cabal programming lanuage
10/14/2009 - Cabal Online - 7 Replies
hi every1, does any1 know what programming langauage cabal was written? thanks :)



All times are GMT +1. The time now is 00:44.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.