![]() |
Citat:
|
Citat:
med "include" läses väl hela sidan in i modersidan? |
Citat:
|
Det här var den flummigaste tråden på länge. Jag har inte ett bra svar men jag vet att det finns ett mycket bra svar sedan gammalt här på WN. Tips för den som inte hittar: kika på hur phpBB & co. gjort.
Skillnaden på include() och require() är att include() genererar en Warning om filen saknas medans require() genererar ett Fatal Error. "In other words, use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless." - se.php.net/include Edit. Att lägga allting i XML låter iofs som en bra metod. |
Citat:
Menar du att du skulle göra en xml-fil för t ex varje undersida? Hur skulle textstyckena/orden lagras och hämtas? Jag tar tacksamt emot ett exempel på hur detta skulle kunna lösas med xml. |
Skapa en fil för varje språk, och includa beroende på vilket man valt.
gb.lang.php: <?php define("_LANG_START_TOPIC", "Welcome"); define("_LANG_START_TEXT", "This is my page"); ?> se.lang.php: <?php define("_LANG_START_TOPIC", "Välkommen"); define("_LANG_START_TEXT", "Detta är min sida"); ?> Sen kan du t.ex requira beroende på vilket land IP är ifrån mha GeoIP: require_once("geoip/geoip.inc"); $ip = $_SERVER['REMOTE_ADDR']; $gi = geoip_open("geoip/geoip.dat",GEOIP_STANDARD); $countrycode = geoip_country_code_by_addr($gi, $ip); geoip_close($gi); $countrycode = strtolower($countrycode); switch($countrycode) { case 'se': // Swedish require_once('languages/se.lang.php'); break; default: // Default to English require_once('languages/gb.lang.php'); break; } Texten bytar du förståss ut mot konstanterna. Sen bör du bygga ut så att man kan välja språk själv, spara valet i en cookie t.ex. Funkar utmärkt även med väldigt mycket besökare, statiska filer går snabbt att ladda jämfört med att t.ex tugga sönder databasen för att hämta konstanterna. |
Har använt XML, dock inte genom att separera sidor, men tekniken jag använt fungerar även med separata översättningar per sida. Nyckeln till lösningen är att använda XPATH för att hämta rätt sträng.
Exempel: Kod:
XML filen: Kod:
/dictionary/page[@name='exempel1']/language[@name='se']/words[@key='WELCOME_MSG'] |
Citat:
Men den lösningen är nog smidigast för större projekt och flera språk. Det tar lite tid att sätta upp det där har jag en känsla av. Jag brukar testa på webläsaren för att bestämma vilket språk som skall visas. Geoip berättar ju bara vilket land surfaren kommer ifrån och sitter jag i kina så är jag tacksam om jag får engelska som visas istället för kinesiska. Sannolikheten för att jag surfar på en dator med en webbläsare vars språk jag förstår är nog större än att jag med säkerhet kan säga att landet=språket. vilket språk ska man visa i Finland, Schweiz eller Kanada? Require-filer med defines eller variabler brukar jag tycka är enkelt. byt språk genom att sätta en ny session bara. Variabler tenderar dock att vara något snabbare än konstanthanteringen i PHP. |
Citat:
|
Gettext var det jag syftade på. Tack för påminnelsen!
|
Alla tider är GMT +2. Klockan är nu 18:37. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson