Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Flerspråkig sida

Postades av 2003-08-17 10:34:14 - Jonas Sjöblom, i forum asp - allmänt, Tråden har 24 Kommentarer och lästs av 1044 personer

Hade tänkt göra min sida flerspråkig utan att behöva göra dubletter av alla sidor, då tänkte jag att jag skulle använda databaser på något sätt, nu vill jag ha lite tips innan jag sätter igång, hur gör jag för att få det så lättanvänt och så lite prestandakrävande som möjligt?


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 11:12:54 - Linus Enbom

skapa en column i varje tabell som heter sprak.
Sen så för varje svenskt inlägg så sätter du sv och varje engelskt så sätter du en.

Sen då folk kommer in på sidan och får välja vilket språk så skapar du en session("sprak") = "en" eller "sv"

Och varje gång du ska hämta nå data så sätter du bara in en session i SQL anropet.

WHERE=" & session(""sprak) & "

Nåt sånt tror jag skulle funka....


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 11:26:11 - Stefan Brännström

Man kan också, förutom vad som nämndes ovan, använda sig av servervariabeln HTTP_ACCEPT_LANGUAGE så sker språkvalet "automatiskt" när användaren kommer till sidan.


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 11:26:22 - Jonas Sjöblom

varför en kolumn i varje tabell? borde man inte ha en tabell med alla språk i?


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 11:27:17 - Jonas Sjöblom

Hur funkar det?


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 12:10:55 - Stefan Brännström

Jag brukar i Session_OnStart i global.asa kolla värdet på HTTP_ACCEPT_LANGUAGE och lagra detta i en sessionsvariabel, typ:
<code>
Session("website_lang") = Left(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"),2)
</code>
Varför jag bara slänger in de två första tecknen är för att i t ex engelska så är värdet på variabeln "en-us" om det är "amerikanska" osv...

Sen där jag hämtar text / skriver ut text så kollar jag värdet på sessionsvariabeln i en select case-sats... alternativt i SQL-strängen som nämndes ovan.

Varför jag använder mig av en sessionsvariabel är för att ibland vill användaren ställa in språket själv... och då gör man en funktion för det.
Det automatiska sker ju bara en gång vid uppstart av sessionen...


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 12:48:13 - Oskar Johansson

Jag är säker på att det finns gott om information om det här ämnet om du söker lite. På tal om det här med prestanda. Det lättaste hade varit om du körde asp.net istället då du hade kunnat använda cache-klassen istället... Allt som finns på alla eller nästan alla sidor tycker jag att du skall lagra i application-objectet på nå't sätt, skriv gärna ett antal generella funktioner som kan försöka leta efter texten i först application-saken, sedan i databasen... Det du skall lagra i application-objectet är nå'n form av klass med t.ex. när texten användes sist, vilket språk texten är för, vilket id den har mot databasen samt texten i sig själv.


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 14:10:42 - Jonas Sjöblom

men nu kodar jag i vanlig asp... något sånt här hade jag tänkt mig att tabellen skulle se ut:



id - sprak - sida - text - idnamn


id = auto nummer
sprak = vilket språk
sida = vilken sida(för att ha det lite redigare)
text = texten som ska skrivas ut
idnamn = identifikationsnamn(samma för alla språk)


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 14:38:31 - Jesper Lind

Jag håller också på att gör flerspråkiga sajter. Min databasmodell tycker jag fungerar bra.


Jag lagrar först alla språken i en tabell:

tbl_site_language
site_language (primärnyckel) Innehåller (eng,swe,spa,ger,jap)
site_language_description Inehåller (English,Swedish....)


Sen för tex nyhetsspalten har jag först en huvudtabell:

tbl_news
id
show_in_site (true/false)


Sen en nyhets/språk tabell där man skriver in nyhetstexterna:

tbl_news_site_language
id
news_id (främmande nyckel från tbl_news)
title
news_text
site_language (främmande nyckel från tbl_site_language)


Så har jag löst det för nyhetsspalterna och övrig info i databasen.

För de statiska texterna på sidorna är jag inte riktigt nöjd. Jag har lagt alla texterna i en include fil med en if sats.

<code>
If site_language="swe" then
welcome_string = "Välkommen!"
ElseIf site_language="eng" Then
welcome_string = "Welcome!"
End If
</code>

Denna fil börjar bli väldigt lång och rörig så jag funderar på hur jag kan lösa det bättre. Svårt att komma ihåg vad man döpt alla sina strängnamn också. Xml kanske vore smidigare?

/Jeppe


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 15:45:44 - Linus Enbom

Du skulle kunna ha det som detta:

Tabell: site_language
Spalt:
id = Ger ett nytt nummer för varje postat språk
site_language = sv, en o.s.v.

id---site_language
1---sv
2---en


Tabell: news
Spalt:
id = Ger ett nytt nummer för varje postad nyhet
site_language = Det id för det språket du väljer
headline = Rubriken för nyheten
content = Texten som hör till rubriken

id---site_language---headline------------content-------
1----------------1---Svensk rubrik!!------Svensk Text!!
2----------------2---English Headline!!---English Text!!


Något sånt menar jag... Du kan ju som du själv sa ha språken i en egen spalt och då blir det sådär. Om man har som dom flesta andra har så kan det bli fel om någon från japan kommer in på sidan för att då har inte du det rätta språket...

Anropet blir nu detta... Då dom väljer språk så skapar du en session("site_language")= "id från site_language tabellen"

Sen varje gång du ska hämta data så sätter du bara in WHERE="" & Session("site_language") & ""


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 17:08:15 - Jonas Sjöblom

jo något sånt lär jag ju få göra, men jag tänker mest på den fasta texten nu som menyer, hjälptexter och annat sånt.


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 18:03:45 - Jesper Lind

Jo jag har också problem med de fasta texterna. Nu har jag tillsvidare lagt alla i en .inc fil som jag inkluderar på alla sidor. Nackdelen är att den laddar massa onödiga variabler på varje sida. Fördelen är att jag kan återanvända översättingar jag redan gjort. Här är ett litet utdrag ur filen:

<code>
If language = "swe" Then
'---VERB STRINGS---
add_string = "Lägg&nbsp;till"
send_string = "Skicka"
edit_string = "Ändra"
update_string = "Uppdatera"
upload_string = "Ladda upp"
delete_string = "Ta&nbsp;bort"
confirm_string = "Bekräfta"
show_in_site_string = "Visa på sidan"
yes_string = "Ja"
no_string = "Nej"
back_string = "Tillbaka"
next_step_string = "Nästa steg"
close_string = "Stäng"

'---MEMBER STRINGS---
login_string = "Logga in"
remember_me_string = "Kom ihåg mig."
forgot_password_string = "Glömt lösenord"
member_string = "Medlem"
resign_member_string = "Avsäg medlemskap"
new_member_string = "Bli medlem"
new_member_title_string = "Bli medlem"
edit_member_string = "Ändra uppgifter"
news_letter_string = "Nyhetsbrev"
order_string = "Orderfakturor"
confirmation_string = "Bekräftelse"

...osv...

ElseIf language = "eng" Then

... samma på engelska...

End If
</code>

Sen på sidorna lägger jag in strängarna där de behövs tex. <%=login_string%>

Att ha detta i en databas kan ju vara en ide men det känns som detta är lättare att ha det i en fil. Har en ide om att göra om allt till XML men måste nog kolla över mina kunskaper först lite.

/jeppe


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 18:09:52 - Jesper Lind

Det där inlägget blev inte så snyggt formaterat.. Klicka på svara så syns en del av texten bättre i översta rutan.

/J


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 18:44:36 - Oskar Johansson

Som jag skrev så vore det enklare med asp.net, men jag skrev ett förslag på lösning också med hjälp av application-objectet också... För de statiska texterna tycker jag att du skall satsa på att lägga dem också i db och sedan skriva lite funktioner för att hämta ut det, men cacha texterna i application-objectet som sagt...


Svara

Sv: Flerspråkig sida

Postades av 2003-08-17 22:21:46 - Benni Svensson

Jag håller på med ett ganska så stort project innom flerspråkiga sidor.
Alla html-filerna gör jag om till asp. Sen byter jag ut all text till en variabel, samma variabel oavset språk. Dessa variabler ligger sedan i olika textfiler, beroende på språk.
Via servervariables tar jag reda på klientens språk och laddar in den språkfilen default, men där finns också in listbox så att man kan ladda in ett annat språk. Med hjälp av coockies så kan man sedan hålla reda på vilket språk som användes sist.

Därefter så har jag gjort(ej färdig riktigt) ett VB-project, som gör att jag laddar upp mina HTML-filer, byter namn till asp, och gör så att jag enkelt kan byta ut texten mot variablerna, spara både ASP-filerna och de olika språkfilerna.

Jag har funnit att detta fungerar kanonbra, ialla fall för mig.


Svara

Sv: Flerspråkig sida

Postades av 2003-08-18 10:07:36 - Jonas Sjöblom

Tack, tror att jag börjar få en ide hur jag ska göra det nu, sätter en language mapp i varje mapp, där har jag olika textfiler för varje språk. sen includar jag bara rätt textfil och läser variablerna från den.


Svara

Sv: Flerspråkig sida

Postades av 2003-08-18 14:44:06 - Jonas Sjöblom

Uppstod ett litet problem nu, har svenska texten i en fil och engelska i en annan.. men hur ska jag göra för att hämta texten från rätt fil av dom två man kan ju inte använda asp i #include och om jag använder server.execute så kan jag ju ändå inte använda variablerna där jag vill ha dom..


Svara

Sv: Flerspråkig sida

Postades av 2003-08-21 20:39:09 - Linus Enbom

jag håller med Jeppe om att du kan fixa med en fil som du includerar...
Döp en fil till language.asp

language.asp<code>
Sub site_language(type)
if session("site_lang") = "sv" Then
Select Case type
Case Menu
Response.Write "==MENY==<br />" & vbcrlf
Response.Write "Startsidan<br />" & vbcrlf
Response.Write "Kontakta Mig" & vbcrlf
Case Headline
Response.Write "Välkommen!" & vbcrlf
End Select
elseif session("site_lang") = "en" Then
Select Case type
Case Menu
Response.Write "==MENU==<br />" & vbcrlf
Response.Write "First Page<br />" & vbcrlf
Response.Write "Contact Me" & vbcrlf
Case Headline
Response.Write "Welcome!" & vbcrlf
End Select
else
Select Case type
Case Menu
Response.Write "==MENY==<br />" & vbcrlf
Response.Write "Startsidan<br />" & vbcrlf
Response.Write "Kontakta Mig" & vbcrlf
Case Headline
Response.Write "Välkommen!" & vbcrlf
End Select
end if
End Sub</code>

Sen då du valt språk så skapar du en session..
session("site_lang") = "sv" eller session("site_lang") = "en"
beroende på vilket språk dom väljer...

Sen så på varje sida skriver du bara:<code>
<% call site_language(Menu) %></code>för att hämta menyn till exempel...
Du kan annars spara allt i en databas och hämta det beroende på vilket språk dom vill ha på sidan.


Svara

Sv: Flerspråkig sida

Postades av 2003-08-21 21:17:53 - Oskar Johansson

Jo, det går, men det är grötigt som bara den, en databas är lättare... Hur lätt är det att sitta & uppdatera det där tror du? :/


Svara

Sv: Flerspråkig sida

Postades av 2003-08-21 22:07:15 - Linus Enbom

Men om det var fasta värden så ska dom ju inte ändras men jag skulle föredra en databas och sedan spara sv eller en på varje postad sak...

Så är det lätt att hämta det bara via att skriva WHILE site_lang = sesison("site_lang")
och då sparar man sv eller en i sessionen site_lang för att sedan hämta den varje gång man ska hämta nå poster...


Svara

Sv: Flerspråkig sida

Postades av 2003-08-22 06:52:28 - Jonas Sjöblom

Ni har övertyat mig=) jag använder databas=)


Svara

Sv: Flerspråkig sida

Postades av 2003-08-28 23:30:56 - Roger Gusthage

Jag har löst samma problem genom att ha en databas per språk, samma tabellstruktur i båda databaserna. (Dessa ändras ju mindre sällan) och därefter så testar jag i början av min index-sida vilket språk som är aktuellt.

<code>lang = Response.QueryString("lang")</code>
Mina besökare väljer själva språk genom klick på flagga, där skapas QueryString:en.

Beroende på vilket språk så laddar jag olika databaser till min Connection-sträng. Databaserna är döpta eng_databas.mdb, swe_databas.mdb, tys_databas.mdb osv. Funkar bra och löser problemet med färre kodrader än vad jag orkade ta mig igenom här :)

Roger


Svara

Sv: Flerspråkig sida

Postades av 2003-08-29 08:51:05 - Jonas Sjöblom

det fungerar nu iaf, inte med caching men behöver bara skicka en databasfråga så får jag dom texter som jag behöver. har tänkt om databasstrukturen också

id - auto number
Lang - char
Textid - int
Text - Text
sida - char

sen använder jag bara:
<code>
set rs = connect.execute("select textid,text from Languages where sida = '" & sida & "' and lang = '" & lang & "'")
texter = rs.getrows
</code>


sen har jag en funktion som hämtar den texten jag vill ha
<code>
GetText(5,texter)
</code>

men då måste jag skicka med arrayen texter i funktionen, kom inte på någon annan lösning.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 795
27 960
271 761
2 354
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies