webForumDet fria alternativet

Tvåspråkig Webbplats

ASPur ASP

8 svar · 716 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej
Nu vet jag att många här kommer bli tokig över den här tråden, med tanke på att det finns 250 till ;)

Jag håller på och sliter håret här, har letat igenom de trådar som dyker upp när man söker på "språk", ja, det är ganska många.

Jag ska hur som helst ha två språk på min hemsida (Svenska+Engelska) och har nu lite problem.

Har löst själva översättningen av vissa saker, har bara lista variabler under varann, ex.:

mBB_Phrase_bIndex			= "Forumindex"
mBB_Phrase_bRules			= "Regler"
mBB_Phrase_Last_Reply		        = "Senaste Inlägg"
mBB_Phrase_Threads			= "Trådar"
mBB_Phrase_Thread			= "Tråd"
mBB_Phrase_Posts			= "Inlägg"
mBB_Phrase_No_Posts		        = "Inga Poster"
mBB_Phrase_Deleted			= "Raderad"
mBB_Phrase_Cause			= "Orsak"
mBB_Phrase_Not_Aviable			= "Ingen information hittades"
mBB_Phrase_Important			= "Viktigt"

Sen har jag bara (kort och gott) lagt "in" dessa variabler där de ska visas.
Det här funkar bra, men vet inte hur pass optimalt, då denna includefil som innehåller alla språkvariablar laddas om varje gång en ny sida laddas.
Problemet har jag kommit till nu, när jag ska översätta min fil med javascripten, dessa finns inuti en .js-fil som inkluderas.

Har tittat lite på phpBB, ett forum, där det används språkfiler. Det är php-filer med variabler, precis som hos mig, men sen verkar de använda XML eller något liknande, för att 'få in' språket på rätt ställen.

De har nämligen templatefiler (.tpl) och sen ex.: {MESSAGE_ERROR} när de tex. ska visa ett felmess.

Nu vill jag göra på något liknande sätt, med XML, det låter 'tufft' att prova på.

MEn jag skulle gärna vilja ha lite mer info och gä'rna scriptexempel på hur jag skulle kunna göra.
Har sett att många undrar över det här och får jag ihop detta blir jag kanonglad.

Tack för hjälpen!

Medlem sedan feb. 20034 441 inlägg
#2

Verkligen ingen som har några idéer?

Medlem sedan apr. 20022 743 inlägg
#3

Du skriver att du använder PHP-filer, detta är ju ASP forumet så vilket språk använder du?

Medlem sedan jan. 20011 154 inlägg
#4

Re: Tvåspråkig Webbplats

MickeA.com skrev:

Hej
Har tittat lite på phpBB

;)

Kika lite på denna tråd. Min syn på det hela och hur vi kör vårat system som är flerspråkigt.

http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=115085

Medlem sedan feb. 20034 441 inlägg
#5

Poffe skrev:

Du skriver att du använder PHP-filer, detta är ju ASP forumet så vilket språk använder du?

Menade att phpBB använder phpfiler, men formulerade meningen lite dumt.

Jag använder ASP och postade därför tråden där.

Medlem sedan feb. 20034 441 inlägg
#6

Re: Re: Tvåspråkig Webbplats

jonne skrev:

Kika lite på denna tråd. Min syn på det hela och hur vi kör vårat system som är flerspråkigt.http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=115085

Har redan sett den tråden och flera andra när jag sökte, men där står det inget konkret, bara "såhär har jag gjrot", men jag vet inte alls hur jag ska gå tillväga.

Har varit inne på en databaslösning, men hur ska jag göra för att göra allt på ett smidigt sätt, det kan ju inte vara särkilt optimalt att göra en databashämtning för varje ord, utan det verkar bättre att plocka ut ALL text högst upp på varje sida och sen "föra in dom" i variabler.

Vore supernice med lite mer info om hur jag jag ska lösa det här.

Medlem sedan okt. 2002257 inlägg
#7

Jag kör på följande sätt:

Har en "xml" fil för varje språk, som kan se ut ungefär så här för den engelska:

<?xml version="1.0" encoding="windows-1252"?>
 <language>English</language>
 <news>
  <str_newsadd>Add news</str_newsadd>
  <str_newsedit>Edit news</str_newsedit>
  <str_newsdelete>Delete news</str_newsdelete>
 </news>
</xml>

Och så här för svenska:

<?xml version="1.0" encoding="windows-1252"?>
 <language>Svenska</language>
 <news>
  <str_newsadd>Lägg till nyhet</str_newsadd>
  <str_newsedit>Ändra nyhet</str_newsedit>
  <str_newsdelete>Ta bort nyhet</str_newsdelete>
 </news>
</xml>

När man sen väljer språk sätter jag en sessionsvariabel till det och sen inkluderar jag en fil på varje sida med nedanstående kod. Den kollar vad sessionsvariabeln har för värde och om motsvarande finns som språkfil hämtas den in, annars blir det den engelska.

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 if objFSO.fileexists(server.MapPath("language/" & session("language") & ".lang.xml")) then
  StrLang = session("language")
 else
  StrLang = "English"
 end if
Set objFSO = nothing

StrLang = "language/" & StrLang & ".lang.xml"
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath(StrLang))
strXML = objTS.ReadAll
objTS.Close : Set objTS = Nothing
Set objFSO = Nothing 

Function glt(strLink)
  Set RegExp = New Regexp
  With RegExp
  .IgnoreCase = True
  .Global = False
  .Pattern = "<" & strLink & ">[^<]*</" & strLink & ">"
  set objMatches = RegExp.Execute(strXML)

  For Each Match In objMatches
    strMatch = Match.Value
  Next

  Set objMatches = Nothing

  .Global = True
  .Pattern = "<[^>]*>"
  strMatch = RegExp.Replace(strMatch, "")
  End With

  Set RegExp = Nothing

  If strMatch = "" Then strMatch = "No Value"
  glt = strMatch
End Function

För att sen få rätt sträng skriver jag ut den mha:

response.write glt("str_newsadd")

Så gör jag. Om det är rätt eller ej vet jag inte, men det funkar perfekt i alla fall.

Medlem sedan feb. 20034 441 inlägg
#8

Tack för ett mycket bra svar!
Det där ser ut som någon jag ska prova.

Nu använder jag en vanlig kaka istället för en session, men det är ju inga problem att ändra.
Använder kaka istället för att applikationen ska veta vilket språk besökaren valt, så detta väljs nästa gång man besöker sidan, visserligen kan man ha en egen kaka för det och sen sätta en session utifrån kakans värde, men den biten löser jag ikväll.

Ska prova det här nu då, men det ser riktigt bra ut!

Medlem sedan okt. 2002257 inlägg
#9

Ja, det spelar ju ingen roll om du använder en cookie istället. Jag använder session eftersom det används i ett CMS.

137 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)