Avatar billede pablopablo Nybegynder
29. januar 2008 - 12:36 Der er 5 kommentarer og
1 løsning

Java script og localization

Hejsa...

Min asp.net 2.0 site bentter en ekstern java script fil, som indholder nogle statiske tekster. Men det skal spille sammen med en multi-sproget side. Så hvordan fikser jeg den lettest??

Jeg benytter globale resx filer til den resterende del af siden, men det kan jeg vel næppe ref. til i JS?

Mvh. PabloPablo
Avatar billede jokkejensen Novice
29. januar 2008 - 13:35 #1
du kan godt lade en aspx side generere dit JS.

<script type="text/javascript" src="js.aspx"></script>

Alternativt deklarerer du bare de variable JS tekst strenge i toppen af dit dokument når det render, så de kommer til at ligge med det korrekte sprog fra resx filerne.

ala:

<script type="text/javascript">
var User;
var User.Name = <%# HentFraResx("brugernavn") %>
var User.PassWord =  <%# HentFraResx("kodeord") %>
</script>

<!-- Her i kan du så bruge ex User.Name -->
<script type="text/javascript" src="DinJsFil.js"></script> 

/JJ
Avatar billede jokkejensen Novice
29. januar 2008 - 13:52 #2
Mener forresten også bare du kan lade .net, gennem IIS servicere JS filerne..
(kan sikkert også klares gennem web.config, add httphandler for js filer)

Så de lige bliver renderet.

/JJ
Avatar billede pablopablo Nybegynder
29. januar 2008 - 14:42 #3
hej...jeg er med på ideen...

Men jeg skal virkelig bruge den nøjagtige syntakst og ovenstående ser ikke ud til at virke og jeg er ikke særlig sej til script og js...så vil sætte stor pris på et virkende eksempel...samt hvordan jeg reelt bruger user.Name i JS filen...
Avatar billede jokkejensen Novice
30. januar 2008 - 13:13 #4
okay..

I din <head> blok, skal du have genereret alle de tekst strenge du har behov for at benytte i din js fil. De skal deklareres før du smider dit script ind, så kan du benytte dem i script filen.

<head>
<script type="text/javascript">
var UserName = <%# HentFraResx("brugernavn") %>;
var UserPassWord =  <%# HentFraResx("kodeord") %>;
</script>

<script type="text/javascript" src="DinJsFil.js"></script> 
</head>

Outputtet skulle så gerne blive (for det engelske site) :
<head>
<script type="text/javascript">
var UserName = "Username:";
var UserPassWord =  "Password:";
</script>

<script type="text/javascript" src="DinJsFil.js"></script> 
</head>

I JS filen kan du så bare benytte de variabler du har benyttet.

function minMetode()
{
document.write(UserName + " " + UserPassWord);
}

<%# HentFraResx() %> er blot den metode du benytter til at hente fra resx filerne..

Bemærk at siden nok skal databindes, Page.DataBind(), ellers benyt <%= HentFraResx() %>

Du kan med "vis kilde" let se om den henter de korrekte tekststrenge ud.

Ulempen ved at ligge tekst strengene i <head> og ikke i en selvstændig JS fil, er at browseren får svært ved at cache variablerne, og skal generere dem på ny hver gang, for hver side. Men der kan vel bygges noget caching logik ind i din HentFraResx() metode..

Sig til hvis det skal yderligere beskrives.

/JJ
Avatar billede pablopablo Nybegynder
30. januar 2008 - 14:19 #5
i got it! mange tak...læg blot et svar!
Avatar billede jokkejensen Novice
01. februar 2008 - 11:23 #6
selv tak !

/JJ
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester