Avatar billede c-sharp Nybegynder
09. marts 2004 - 14:57 Der er 14 kommentarer og
1 løsning

Hjælp til Satellite assemblies

Jeg skal igang med at lave en hjemmeside på 3 sprog og havde tænkt mig at bruge Satellite assemblies, men er der nogen der har erfaring med Satellite assemblies, som evt. kunne hjælpe mig igang?

Jeg synes at have læst at teksten til de forskelige sprog compileres ned i dll filer, men hvad så når man skal rette teksten? Nogle af sider skal en ikke programør vedligeholde.

Nogen der kan hjælpe?
Avatar billede thor.ostergaard Nybegynder
09. marts 2004 - 15:29 #1
har skrevet lidt om globalisering af .net applikationer her:
http://www.kursusmaterialer.dk/ASP.NET_III/Globalisering/Et_par_tilgangsvinkler.aspx
men personligt ville jeg vælge at lægge de 3 sprog i en database/xml dokument i stedet.
Avatar billede c-sharp Nybegynder
09. marts 2004 - 15:37 #2
Hvorfor vil du vælge at lægge de 3 sprog i en database/XML dokument?
Avatar billede thor.ostergaard Nybegynder
09. marts 2004 - 15:40 #3
netop fordi det letter det daglige arbejde med sitet
Avatar billede snepnet Nybegynder
09. marts 2004 - 16:27 #4
Jeg kan godt hjælpe hvis du stadig mangler noget - bare sig til.
Du kan sagtens lave en løsning hvor sprogtekster skrives i xml-filer, og smides ned i en assembly som embedded resource, med efterfølgende mulighed for at redigere teksterne af en ikke-programmør, men det er lidt mere omstændigt (særligt for den der skal ændre teksterne), så hvis det er hensigten at forskellige brugere skal sidde og rette løs med jævne mellemrum, ville jeg også proppe det i databasen hvis du alligevel benytter sådan en i forvejen.
Avatar billede c-sharp Nybegynder
10. marts 2004 - 08:55 #5
Alternativt skulle jeg lave en side for hvert sprog, men vil det ikke være at fortrække at lave en dynamiskløsning(Satellite assemblies, database mm)?

Hvordan stukturer jeg en sådan løsnig pænest i databasen?
Avatar billede c-sharp Nybegynder
15. marts 2004 - 10:13 #6
Er der mere hjælp at hente her?
Avatar billede snepnet Nybegynder
20. marts 2004 - 22:48 #7
Sorry... havde ikke lige set at du havde skrevet igen... Har du stadig problemer med det, og i givet fald hvilke ?
Avatar billede c-sharp Nybegynder
24. marts 2004 - 13:43 #8
snepnet> hvordan kommer jeg så igang med statelite assemblies?
Avatar billede c-sharp Nybegynder
25. marts 2004 - 09:23 #9
Nå men nu har jeg leget lidt med det eksempel der ligger i .NET frameworket "worddocs", men i det eksempel bruges der txt filer, men snepnet du skriver noget om at bruge xml filer, hvad skal jeg vælge?

Er der noget i visual studio der gør det nemmere at styrre Satellite assemblies?
Avatar billede snepnet Nybegynder
25. marts 2004 - 22:14 #10
Jeg synes du skal bruge xml-filer. Du kan tilføje ressourcefiler til dit projekt (det er dem der hedder assembly resource files med extension resx).
Hvis du markerer dem som embedded resources (kan du gøre i property-vinduet under build-action), og navngiver dem iht. de sprog du vil understøtte - f.eks.
Resource.da-DK.resx
Resource.de-DE.resx
Desuden opretter du en
Resource.resx (denne bliver din fall-back ressource... altså hvis du ikke har angivet en tekst i en af dine sprogspecifikke ressourcer, tages værdien fra Resource.resx).

// adgang til ressourcer via statics (kan være behageligt)
using System;

using System.Globalization;
using System.Resources;
using System.Reflection;


namespace Snippets
{
  /// <summary>
  /// Summary description for ResMan.
  /// </summary>
  public class ResourceReader
  {
    private static UiResource res;
       
    static ResourceReader()
    {
    res = new UiResource("Snippets.Resource",Assembly.GetAssembly(typeof(UiResource)));
    }

    public static string GetString(string name)
    {
      return res.GetString(name);
    }

    public static string GetString(string name, CultureInfo cultureInfo)
    {
      return res.GetString(name, cultureInfo);
    }
   
    private class UiResource : ResourceManager
    {
      public UiResource(string baseName, System.Reflection.Assembly assembly) : base(baseName, assembly){}
    }
  }
}

Du kan så tilgå ressourcen som følger :
// angiv UiCulture
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK");
// udskriv værdi
Response.Write(ResourceReader.GetString("test"));
// angiv ny UiCulture
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
// udskriv værdi igen
Response.Write(ResourceReader.GetString("test"));

Hvis du benytter ovenstående, og har en Resource.resx, og en Resource.da-DK.resx i dit projekt vil etGetString("da-DK") kald give dig værdien angivet ved nøglen test i Resource.da-DK.resx, og det næste GetString("de-DE") give dig værdien angivet under nøglen i din Resource.resx (altså din fallback). Hvis du så skulle få lyst til at oprette dig en Resource.de-DE.resx en dag, vil du få værdien derfra.

At redigere filerne i vs fungerer fint, men du kan benytte en hvilken som helst xml-editor (eller bare en teksteditor til det).

Bemærk den filstruktur vs opretter i forbindelse med ovenstående (kig i dit bin-dir).

Hvis du skulle få lyst til at lade andre redigere i filerne (uden får vs), kan du lave små batches så du kan få kompileret de nye ressourcer ind.

Håber det var nok til at komme videre.
Avatar billede c-sharp Nybegynder
26. april 2004 - 08:36 #11
snepnet>> smid et svar så er der point, og mange tak for din hjælp.

Der skal også lyde en tak til thor.ostergaard for hans kommentar
Avatar billede snepnet Nybegynder
26. april 2004 - 09:03 #12
svar :o)
Avatar billede c-sharp Nybegynder
26. april 2004 - 09:19 #13
snepnet>> Hvis du har tid kan vi så fortsætte her: http://www.eksperten.dk/spm/493409 ?
Avatar billede snepnet Nybegynder
26. april 2004 - 09:53 #14
Jep.... men det bliver tidligst i aften - sorry !
Avatar billede c-sharp Nybegynder
26. april 2004 - 09:56 #15
ok, takker
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