Kom ihåg mig?
Home Menu

Menu


Göra sida tvåspråkig

 
Ämnesverktyg Visningsalternativ
Oläst 2005-11-01, 01:38 #1
henkealf henkealf är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 163
henkealf henkealf är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 163
Hur gör man enklast en websida tvåspråkig? Inget annat än språken ska variera.
Det handlar om ca 20 undersidor skrivna i php, med diverse formulär och annat meck.
Är det lättast att för varje textstycke skapa en variabel, och lagra alla dessa variablar i
en separatsida och sedan
require ("languagevariables.php");
längst upp i varje php-dokument?

Andra tips?
henkealf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 06:18 #2
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
En kombination av enkelhet och snygghet är väl att göra något istil med detta:

Kod:
language.php
-----------------

function translate($str,$lang)
{
 $LANG_EN['hej'] = 'hello';

 if ('en' == $lang) {
  if (isset($LANG[$str]))
   return $LANG[$str])
 }
 /* else if med fler språk om du har mer än 2 språk */
 
 return $str; /* Default language and fall through if string does not exist */
}

dina filer.php
----------------
require('language.php');

echo translate('ok','en');
echo translate('ok','se');
echo translate('hej','en');
echo translate('hej','se');
Sedan hur du bygger upp $LANG_EN (eller om engelska är default istf svenska) kan ju variera, men du förstår nog principen.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 06:38 #3
DeSotos avatar
DeSoto DeSoto är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2005
Inlägg: 323
DeSoto DeSoto är inte uppkopplad
Flitig postare
DeSotos avatar
 
Reg.datum: Oct 2005
Inlägg: 323
Jag hade delat upp texterna i XML-filer. Absolut inte en enda stor fil för all text, eftersom det vore onödigt krävande. Sen använder du en sessionsvariabel/cookie för att det ska bli något annat språk än svenska, och beroende på denna cookie så hämtar du olika XML-filer.
DeSoto är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 07:24 #4
Micke_Ns avatar
Micke_N Micke_N är inte uppkopplad
Medlem
 
Reg.datum: May 2004
Inlägg: 159
Micke_N Micke_N är inte uppkopplad
Medlem
Micke_Ns avatar
 
Reg.datum: May 2004
Inlägg: 159
Ett annat mycket enkelt sätt är att gör en mapp/subdomän som t ex heter ENG (eller vad som önskas) och så lägger du din översättning i denna.
Micke_N är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 07:41 #5
DeSotos avatar
DeSoto DeSoto är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2005
Inlägg: 323
DeSoto DeSoto är inte uppkopplad
Flitig postare
DeSotos avatar
 
Reg.datum: Oct 2005
Inlägg: 323
Citat:
Originally posted by Micke_N@Nov 1 2005, 08:24
Ett annat mycket enkelt sätt är att gör en mapp/subdomän som t ex heter ENG (eller vad som önskas) och så lägger du din översättning i denna.
Då blir det väl dubbelt av allt? Dvs all html och serverside-kod också? Eller hur menar du?
DeSoto är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 08:09 #6
Micke_Ns avatar
Micke_N Micke_N är inte uppkopplad
Medlem
 
Reg.datum: May 2004
Inlägg: 159
Micke_N Micke_N är inte uppkopplad
Medlem
Micke_Ns avatar
 
Reg.datum: May 2004
Inlägg: 159
Självklart. det blir dubbelt av allt(bara att kopiera allt till en annan mapp och översätta det som behövs översättas). Men eftersom jag inte har det minsta koll på hur du strukturerat upp din sida vilket jag inte heller kunde utläsa av ditt inlägg) så är mitt exempel nog det "enklaste" inte sagt att det är det effektivaste.

Men har du t ex redan Svenska språket (eller annat 1:a språk) i en databas så är det kanske enklare att bara lägga till ett språk x i databasen och skyffla ut det när det önskas.
Micke_N är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 10:29 #7
Henrik N Henrik N är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2005
Inlägg: 12
Henrik N Henrik N är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2005
Inlägg: 12
På en sida har jag kod enligt nedanstående, som lösning på detta. $nationality kommer ur http://www.maxmind.com/app/geoip_country men där gör man naturligtvis som man vill.

Är det databasdrivet är det förstås snyggare att sköta det där, men jag tycker detta är rätt okej om man ändå skulle ha texten inline. Separata språkfiler är ju elegantare men kanske overkill i vissa sammanhang.
Kod:
<?php

function sweEng($swe, $eng) {
	global $nationality;
	
	if ($nationality == 'SE')
 return $swe;
	else
 return $eng;
}

$thumbnail = sweEng('Miniatyr', 'Thumbnail');

?>

<img src="..." alt="..." title="<?php=sweEng('Fotografi av', 'Photo by')?> Foo Bar" />

...
Henrik N är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 12:40 #8
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Snacka om dom flesta här är värdelösa inom optimering...

I ALLA SPRÅK så är IF .. ELSE IF ... ELSE väldigt slött.

Har man många IF .. Else If .. Else så är det bättre att använda switch() / Select Case
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 13:05 #9
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
Det smidigaste sättet är antagligen att göra som phputvecklarna har tänkt sig att ni ska göra:

http://se.php.net/manual/en/function.define.php
kers är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-01, 13:06 #10
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
hint: ha en fil som definerar alla strängar/ord för ett särskilt språk och includa den
kers är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:44.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017