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åksapplikation VB 6.0

Postades av 2007-10-19 22:46:06 - Thomas Andersson, i forum visual basic - allmänt, Tråden har 6 Kommentarer och lästs av 910 personer

Hej,

Har letat men inte funnit någon återkoppling rörande VB 6.0 i detta ämne.

Ska påbörja ett projekt där jag ska internationalisera en applikation. Det ska vara möjligt att välja olika språk, engelska och spanska, sett till controller, löptext osv. Applikationen är skriven i VB 6.0.
Min tanke är att använda mig av en acticveX dll per språk. ActiveX:erna skapas i VB 6.0 och innehåller en resursfil samt en publik metod. Denna metod tar emot ett id och returnerar en sträng utifrån resursfilens index.
För att öka läsbarheten tänker jag använda mig av enumerations i stil med:

Public enum btnCaption
close = 101
open = 102
end enum
...
btnClose.Caption= Value.getValue( btnCaption.close)
' I klassen Value finns metoden getValue från vilken vi gör ett metodanrop till
' activeX dll:n. Använder mig av late bindning rörande activeX dll:n för att göra det möjligt för användaren att ändra språk.

Kommentarer mottages gärna,

Thomas


Svara

Sv: Flerspråksapplikation VB 6.0

Postades av 2007-10-20 00:15:45 - Niklas Jansson

Mitt svar: Nä, nä. För besvärligt och inte speciellt snyggt. Grundlösningen för mig i ett sånt här fall är en korrekt normaliserad fildatabas, SQLite eller Access. Import av nya språk sker som en automatiserad import till databasen (t.ex. från en XML-fil).


Svara

Sv:Flerspråksapplikation VB 6.0

Postades av 2007-10-20 19:49:22 - Thomas Andersson

Jag som tyckte detta var en utmärkt och enkel lösning. Vill jag ändra eller utöka språk byter jag eller lägger till en activeX component (med nytt språk) samt att jag använder resursfiler som är tänkta för bland annat just denna uppgift. Dessutom ligger dll:n i minnet så jag slipper diskaccess.
Kan du peka mig till ytterliggare information eller utveckla din lösning? Är inte riktigt med på hur denna funkar. Vad innebär automatiserad import via XML? Vidare blir det inte väldig massa diskaccess om app. ständigt behöver läsa värden från DB? Hur ser tabellerna ut i DB? En för varje språk? En för alla labels, buttons löptext osv?


Svara

Sv: Flerspråksapplikation VB 6.0

Postades av 2007-10-20 21:36:50 - Niklas Jansson

Alltså, ur min synvinkel. Jag tycker resursfiler är något för specialiserade och gillar dem inte. ActiveX är inte my cup of tea.

Jag köper dock resten, klart det blir smidigt i vissa delar.
Diskaccessen borde bli försumbar (och dessutom bara ske en gång), så det ser jag inte som ett problem

Min principlösning är typ:
Language
---
ID
Code
Name
Description
Default (bool)

Objects
---
ID

Captions
---
ObjectID
LanguageID
Text


Sen låter du varje objekt hålla reda på vad det har för ID, eller något i den stilen. Vid uppstart eller språkbyte hämtar du grejerna på nytt.

XML-grejen är mer hur man ska importera texter under tiden. Gör en enkel lösning som importerar ett nytt språk från en XML-fil (eller egen textfil etc.).


Svara

Sv:Flerspråksapplikation VB 6.0

Postades av 2007-10-20 22:43:23 - Thomas Andersson

Hm..är fortfarande inte helt med. Som jag förstår det:
Language, Objects och Captions är tabeller i en DB. Läses dessa upp i en struktur i minnet, så att endast diskaccess sker vid uppstart av app. eller runtime byte av språk? Tabellen Caption borde väl även innehålla (förstår att du i stora drag beskrivit tabellerna(?)) fältet controlName så att vi vet vilken control vi vill ändra caption på?




Svara

Sv: Flerspråksapplikation VB 6.0

Postades av 2007-10-21 12:48:10 - Niklas Jansson

Observera först och främst att det här är mina åsikter, om du tycker att det blir krångligt är det bättre att du gör på ditt sätt.

Principen är så här:
1. Det finns en funktion (eller "sub" som de vill kalla det i vb) som "gör en översättning". Den laddar in alla strängar som används i programmet. Varje kontroll, form, etc. måste själv hålla reda på vad den har för texter. Vissa grejer får ligga i variabler, t.ex. text i en msgbox. Vad funktionen gör är att den uppdaterar alla variabler, alla kontroller osv.
2. Denna funktion anropas när programmet startar, eller när man har valt att man vill byta språk.
3. Den tar en parameter ("språk"), och gör sen följande:
- Hämtar upp IDt för språket.
- Hämtar in alla översättningar för detta språk ("SELECT ... FROM Captions WHERE LanguageID = ...")
- Sätter översättningarna för varje kontroll (Cancel.Caption = ...)
Eller så hämtar man en gång per kontroll (sker detta i en transaktion går det nog rätt fort), typ
- Hämtar upp IDt för språket.
- För varje kontroll eller sträng:
- Hämta översättning ("SELECT ... FROM Captions WHERE LanguageID = ... AND ObjectID = ...")
- Använd översättning
Exakt hur man får fram IDt varierar according to taste. Antingen håller varje objekt reda på vad det har för ID, eller så lägger man till det som ett fält i Objects. Då gör man t.ex. "SELECT ID FROM Objects WHERE Name = cmd.name".


Svara

Sv:Flerspråksapplikation VB 6.0

Postades av 2007-10-22 20:13:50 - Thomas Andersson

Stort tack för dina synpunkter. Jag ska fundera vidare på din lösning jag känner dock att jag vill undvika allt som har med databaser att göra (i nuläget...). Du har rätt i att min ursprunglig lösning är lite krånglig. Det är ingen större nytta med att använda resursfiler om det ändå bara är strängar jag vill hämta och enumerations...ja, jag får fundera lite. Min lösning lutar nu mot en aktiveX komponent med strängkonstanter som hämtas från ett dictionary. Jag återkommer med en ny lösning och tar gärna emot fler kommentarer från dig.

Thomas


Svara

Nyligen

  • 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
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 725
27 958
271 751
417
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