SE522988C2 - Förfarande, datorprogramprodukt och datorprogramelement för realtidsöversättning av användargränssnitt i en godtycklig applikation - Google Patents
Förfarande, datorprogramprodukt och datorprogramelement för realtidsöversättning av användargränssnitt i en godtycklig applikationInfo
- Publication number
- SE522988C2 SE522988C2 SE0001798A SE0001798A SE522988C2 SE 522988 C2 SE522988 C2 SE 522988C2 SE 0001798 A SE0001798 A SE 0001798A SE 0001798 A SE0001798 A SE 0001798A SE 522988 C2 SE522988 C2 SE 522988C2
- Authority
- SE
- Sweden
- Prior art keywords
- language
- program module
- software
- application
- computer program
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/55—Rule-based translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Description
oacc- 20 25 30 522 988 o » o ~ u - . » .o 2 Ett annat sätt att utföra lokaliseringar på är att öppna kompilerade EXE- och DLL-filer med en extern programvara och göra översättningen där. Detta in- nebär ungefär lika mycket arbete som om man översätter i källkoden.
Det kan i många avseenden vara lättare eftersom det är lite mer visuellt, men det finns en risk i att filerna sinsemellan inte blir helt kompatibla eftersom de inte är kompilerade vid ett och samma tillfälle.
När det kommer buggfixar eller nya versioner av programmet så står man inför samma problem som om man hade översatt i källkoden.
Ett problem som kan uppstå beroende på vilken extern programvara man använder och vilket program man översätter är att man måste kunna lita på att det inte skrivs ner oönskade saker i filerna som orsakar krascher.
Sammanfattning av uppfinningen Det är ett ändamål med föreliggande uppfinning att lösa de ovan nämnda problemen.
Detta åstadkoms enligt en första aspekt av föreliggande uppfinning med ett förfarande för realtidsöversättning av användargränssnitt i en godtycklig appli- kation i ett första språk enligt patentkravet 1. Information från applikationen över- förs via en meddelandekö. Förfarandet använder en första programmodul vilken medelst hook-teknologi är ansluten till meddelandekön, en andra programmodul för kommunikation, vilken andra programmodul är ansluten till den första pro- grammodulen via ett minnesorgan, och en till den andra programmodulen ansluten programvara. Förfarandet innefattar stegen: - att välja ett från det första språket skilt språk för applikationen; - att den första programmodulen avlyssnar och analyserar meddelanden i meddelandekön; - att när en enhet eller ett objekt i ett grafiskt användargränssnitt identifi- erats översätts denna/detta av den fösta programmodulen till nämnd språk me- delst ett i minnesorganet lagrat lexikon; - att presentera den/det översatta enheten/objektet i det grafiska använ- dargränssnittet; och - att àterupprepa alla steg utom det första så länge det förekommer nya enheter/objekt, varvid programvaran styr utförandet av dessa steg. Förutom att man eliminerar de ovan nämnda problemen erhåller man ett antal ytterligare för- 15 20 25 30 522 ass === 3 delar. Det är ingen risk att någon kod kommer ut till obehöriga eller att man på nå- got annat sätt orsakar några fel i originalprogrammet.
Man slipper också de problem som uppkommer vid nya versioner eller buggfixar eftersom förfarandet enligt föreliggande uppfinning bygger på en extern ordlista och det enda som behöver kompletteras är nyheterna iden nya versionen, resterande återanvänds.
Att man inte ändrar något i källkoden gör också att man snabbare kan komma ut med lokaliserade versioner av programmet på flera språk.
En annan viktig fördel är att man också kan återanvända översättningar gjorda på andra program och på det viset spara en hel del tid och få en enhetlig terminologi vilket gör att användarna lättare känner igen sig mellan olika program och versioner.
En fördel i detta sammanhang är om i minnesorganet finns lagrat ett antal lexikon, varvid varje lexikon används för översättning mellan nämnda första språk och ett annat språk.
I detta sammanhang är det en fördel om programvaran utför följande steg: - att programvaran startas när ett från det första språket skilt språk för applikationen väljs; - att automatiskt eller manuellt starta applikationen om denna existerar; - vid ett jakande svar på det föregående steget, att ladda den andra pro- grammodulen för kommunikation; - att initiera med namn på aktuellt lexikon, vilket bestäms av det valda språket; - att om applikationen är aktiv, koppla en hook vilket indirekt startar den första programmodulen; - att överföra aktuell hook-handle till den första programmodulen; och - att programvaran stoppar när den erhåller stoppmeddelande från den första programmodulen.
En fördel i detta sammanhang är om den andra programmodulen utför följande steg: - att den andra programmodulen startas av programvaran; - att, när et initieringsmeddelande erhållits från programvaran, lagra namn på aktuellt lexikon, vilket bestäms av det valda språket, och aktuell hook- handle i minnesorganet; och .coca 15 20 25 30 n. a-o 4 - att den andra programmodulen stoppar om den aktuell tråd, det vill sä- ga den väg en process följer, är stoppad. l detta sammanhang är det en fördel om den första programmodulen utför följande steg: - att den första programmodulen startas av programvaran; - att ladda aktuellt lexikon, vilket bestäms av det valda språket, från min- nesorganet samt att sortera nämnda lexikon; - att, om något meddelande avlyssnats i meddelandekön, identifiera en enhet eller ett objekt i ett grafiskt användargränssnitt; - att översätta nämnda enhet eller objekt till det valda språket; - att upprepa de två närmast föregående stegen tills alla enheterna eller objekten i det grafiska användargränssnittet är översatta; och - att sända ett stoppmeddelande till programvaran.
En fördel i detta sammanhang är om enheterna eller objekten kan utgöras av exempelvis fönstertitel, meny eller dialogruta. l detta sammanhang är det en fördel om den första programmodulen dessutom utför steget: - att anpassa storleken på de översatta enheterna/objekten så att de ryms i det grafiska användargränssnittet.
En fördel i detta sammanhang är om den första respektive den andra pro- grammodulen anropas medelst DLL-teknik som en dynamisk länk.
Ett annat ändamål med föreliggande uppfinning är att åstadkomma åt- minstone en datorprogramprodukt direkt laddningsbar i det interna minnet hos åt- minstone en digital dator. Den åtminstone ena datorprogramprodukten innefattar programvarukodspartier för att utföra stegen enligt förfarandet enligt föreliggande uppfinning när nämnda åtminstone ena produkt körs på nämnda åtminstone ena dator. Förutom att man eliminerar de ovan nämnda problemen erhåller man ett antal ytterligare fördelar. Det är ingen risk att någon kod kommer ut till obehöriga eller att man på något annat sätt orsakar några fel i originalprogrammet.
Man slipper också de problem som uppkommer vid nya versioner eller buggfixar eftersom datorprogramprodukten enligt föreliggande uppfinning bygger på en extern ordlista och det enda som behöver kompletteras är nyheterna iden nya versionen, resterande återanvänds. auann 20 25 30 one nu~ a 1 nu a; . ~ n ~ nu n. a n o s n u o n n u a n 1 . n- s i. -. v a u n v u - a ~ ...u nu »en . - . v a a . i. - n n a t. .. n . p - - a . n a a o ~ v o n. nu u n n ; . ~ - Q n» 5 Att man inte ändrar något i källkoden gör också att man snabbare kan komma ut med lokaliserade versioner av programmet på flera språk.
En annan viktig fördel är att man också kan återanvända översättningar gjorda på andra program och på det viset spara en hel del tid och får en enhetlig terminologi vilket gör att användarna lättare känner igen sig mellan olika program och versioner.
Ett annat ändamål med föreliggande uppfinning är att åstadkomma åt- minstone ett datorprogramelement innefattande: datorprogramkodorgan för att åstadkomma att åtminstone en dator exekverar följande steg: - att datorprogramelementet/-elementen startas när ett från det första språket skilt språk för en applikation väljs; - att automatiskt eller manuellt starta applikationen om denna existerar; - vid ett jakande svar på det föregående steget, att ladda en andra pro- grammodul för kommunikation; - att initiera med namn på aktuellt lexikon, vilket bestäms av det valda språket; - att, om applikationen är aktiv, koppla en hook vilket indirekt startar en första programmodul; - att överföra aktuell hook-handle till den första programmodulen; - att datorprogramelementet/-elementen stoppar när det/de erhåller stoppmeddelande från den första programmodulen.
Ytterligare ett annat ändamål med föreliggande uppfinning är att åstad- komma ett datorprogramelement innefattande: datorprogramkodorgan för att åstadkomma att en dator exekverar följande steg: - att datorprogramelementet startas av en programvara; - att, när ett initieringsmeddelande erhållits från programvara, lagrar namn på aktuellt lexikon, vilket bestäms av det valda språket, och aktuell hook- handle i ett minnesorgan; och - att datorprogramelementet stoppar om en aktuell tråd, det vill säga den väg en process följer, är stoppad.
Ett annat ändamål med föreliggande uppfinning är att åstadkomma åt- minstone ett datorprogramelement innefattande: datorprogramkodorgan för att åstadkomma att åtminstone en dator exekverar följande steg: - att datorprogramelementet startas av en programvara; annan 15 20 25 30 nnn nnn n n nn nn - ~ » n -ø I *I n n. nn n n u. n n fl- ß- I n nn n. n n n. n o fl--v " nnn nnn n n n nn nn n n 0- v s . n n n n n. n n n n n n n n nn nn n n n n n n n n nn 6 - att ladda aktuellt lexikon, vilket bestäms av det valda språket, från ett minnesorgan samt att sortera nämnda lexikon; - att, om något meddelande avlyssnats i meddelandekön mellan ett an- vändargränssnitt och en applikation, identifiera en enhet eller ett objekt i ett gra- fiskt användargränssnitt; - att översätta nämnda enhet eller objekt till det valda språket; - att upprepa de två närmast föregående stegen tills alla enheterna eller objekten är översatta; och - att sända ett stoppmeddelande till programvaran.
Det skall betonas att termen "innefattar/innefattande” när den används i denna beskrivning skall ange närvaron av angivna egenskaper, steg eller kompo- nenter, men utesluter inte närvaron av en eller flera andra egenskaper, enheter, steg, komponenter eller grupper av detsamma.
Utföringsformer av uppfinningen kommer nu att beskrivas med hänvisning till de bifogade ritningarna, där: Kort beskrivninq av ritninqarna Figur_1 visar schematiskt interaktionen mellan en applikation och de gränssnitt som användaren ser enligt teknikens ståndpunkt; Figur 2 visar schematiskt interaktionen mellan en applikation och de gränssnitt som användaren ser enligt en utföringsform av föreliggande uppfinning; Figur 3 är ett flödesschema på ett förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt föreliggande uppfinning; Figur 4 är ett flödesschema på de steg som utförs av en programvara en- ligt föreliggande uppfinning; Figur 5 är ett flödesschema pà de steg som utförs av en andra program- modul enligt föreliggande uppfinning; Figur 6 är ett flödesschema på de steg som utförs av en första program- modul enligt föreliggande uppfinning; och Figur 7 visar en schematisk bild på några datorprogramprodukter och da- torprogramelement enligt föreliggande uppfinning.
Detaljerad beskrivning av utförinqsformer ana-o 20 25 30 . a u n .- 522 988 .as -0 7 l figur 1 visas schematiskt interaktionen mellan en applikation och de an- vändargränssnitt som användaren ser enligt teknikens ståndpunkt. I figur 1 visas en valfri applikation 10 vilken via en meddelandekö A är ansluten /hör samman med ett användargränssnitt 12. Användargränssnittet 12 kan exempelvis vara me- nyer, fönstertexter osv. Via meddelandekön A skickar applikationen 10 en mängd information till användargränssnittet 12, bland annat texter för olika element på en datorskärm. Meddelandena är kodade med en typbeteckning. Beroende på typ, varierar det övriga meddelandeinnehållet. l figur 2 visas schematiskt interaktionen mellan en applikation och de gränssnitt som användaren ser enligt en utföringsform av föreliggande uppfinning. l figur 2 visas en valfri applikation 20 och ett användargränssnitt 22 såsom i figur 1. Den valfria applikationen 20 kan exempelvis vara ett valfritt PC-datorprogram av Windows-typ. Däremot har meddelandekön en annorlunda utformning. Meddelan- dekön är här uppdelad i en första del A1 och en andra del A2 av meddelandekön. l figur 2 visas dessutom en första programmodul 24 vilken med hjälp av så kallad hook-teknologi hakar in sig på meddelandeströmmen i ett befintligt program. Väl på plats kan den inhakade programmodulen spionera på meddelanden och even- tuellt modifiera dem och sedan vidarebefordra dem till exempelvis användar- gränssnittet. l detta fall går den första delen A1 av meddelandekön mellan applika- tionen 20 och den första programmodulen 24 och den andra delen A2 av medde- landekön går från den första programmodulen 24 och användargränssnittet 22. l figur 2 visas dessutom en andra programmodul 26 för kommunikation. De båda programmodulerna 24, 26 är anslutna via ett gemensamt minnesorgan 28. Dess- utom visas slutligen en programvara 30 vilken är ansluten till den andra program- modulen 26. l denna tillämpning består den ovan nämnda modifieringen i en över- sättning. Med lösningen enligt figur 2 är det möjligt att göra simultanöversättning av användargränssnitt i godtycklig applikation. Genom att analysera meddelande- flödet mellan applikationen 20 och användargränssnittet 22 kan översättning göras vid rätt tidpunkt.
För användaren är det som att ha en extra upplaga av programmet. Vid programstart väljer användaren om han vill starta originalprogrammet, eller en översatt version. Väljer användaren att starta ett översatt program är det i själva verket programvaran 30 som startas. Programvaran 30 startar dock direkt målpro- grammet och lägger till den första programmodulen 24 med översättningen. Detta 15 20 25 30 a ~ » . .n 522 988 Q . - . - . . » ..- 8 gör att användaren enbart ser det som ett översatt program startas. Varefter an- vändaren väljer olika funktioner i applikationen översätts dessa innan de presente- ras på skärmen. l figur 3 visas ett flödesschema på ett förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt förelig- gande uppfinning. Förfarandet börjar vid blocket 40. Förfarandet fungerar i en så- dan miljö som visas i figur 2, det vill säga det finns en första respektive en andra programmodul, ett minnesorgan och en programvara. Vid blocket 42 fortsätter förfarandet med steget: att välja ett från det första språket skilt språk för applika- tionen. Om så inte är fallet behövs ju ingen översättning. Nästa steg, vid blocket 44, består av att den första programmodulen avlyssnar och analyserar meddelan- den i meddelandekön. Förfarandet fortsätter vid blocket 46 med steget: att när en enhet eller objekt i ett grafiskt användargränssnitt identifierats översätts den- na/detta av den första programmodulen till nämnda språk medelst ett i minnesor- ganet lagrat lexikon. Det skall påpekas att detta lexikon inte i första hand innefat- tande enstaka ord utan innefattar fraser och hela meningar. Nästa steg, vid block- et 48 består av att presentera den/det översatta enheten/objektet i det grafiska an- vändargränssnittet. Vid blocket 50 ställs frågan om det förekommer nya enhe- ter/objekt som skall översättas. Om svaret ärja återupprepas stegen 42-50. Om svaret däremot är nej avslutas förfarandet vid blocket 52. Det skall också påpekas att det är programvaran som styr utförandet av dessa steg. I minnesorganet finns lagrat ett antal olika lexikon, varvid varje lexikon används för översättning mellan nämnda första språk, originalspråket, och ett annat språk.
I figur 4 visas ett flödesschema på de steg som utföres av en programvara enligt föreliggande uppfinning. Den programvaran som avses är en i figur 2 visade programvaran 30. Förfarandet startar vid blocket 60. Förfarandet fortsätter sedan vid blocket 62 med att programvaran startas när ett från det första språket skilt språk för applikationen väljes. Vid blocket 64 ställes frågan om applikationer exis- terar svaret på denna fråga är nej avslutas förfarandet vid blocket 76. Om applika- tionen existerar startas densamma automatiskt eller manuellt. Om svaret däremot är jakande fortsätter förfarandet med blocket 66 varvid steget utföres att ladda den andraprogrammodulen för kommunikation. Nästa steg, vid blocket 68, består av att initiera med namn på aktuellt lexikon, vilket bestämmes av det valda språket.
Förfarandet fortsätter vid blocket 70 med steget: att, om applikationen är aktiv, 20 25 30 ø ~ a 4 nu u. 522 988 n . ø . . - - ~ »o 9 koppla en hook vilket indirekt startar den första programmodulen. Nästa steg, vid blocket 72, består av att överföra aktuell hook-handle till den första programmo- dulen. En s.k. handle är ett handtag, ett nummer eller ett värde som kan användas för att få tillgång till en enhet eller ett objekt som en fil, ett fönster eller en dialo- gruta i ett grafiskt användargränssnitt. Förfarandet fortsätter sedan vid blocket 74 med att programvaran stoppar när den erhåller ett stoppmeddelande fràn den första programmodulen. Förfarandet avslutas vid blocket 76. l figur 5 visas ett flödesschema på de steg som utföres av den andra pro- grammodulen (jämför figur 2) enligt föreliggande uppfinning. Förfarandet börjar vid blocket 80. Förfarandet fortsätter vid blocket 82 med steget: att den andra pro- grammodulen startas av programvaran. Nästa steg, vid blocket 84, består av att, när ett initieringsmeddelande erhållits från programvaran, lagrar man aktuellt lexi- kon, vilket bestämmes av det valda språket, och aktuell hook-handle i minnesor- ganet. Förfarandet fortsätter vid blocket 86 med steget: att den andra programmo- dulen stoppar om en aktuell tråd, dvs., den väg en process följer, är stoppad. För- farandet avslutas sedan vid blocket 88. l figur 6 visas ett flödesschema på de steg som utföres av den första pro- grammodulen (jämför figur 2) enligt föreliggande uppfinning. Förfarandet börjar vid blocket 90. Förfarandet fortsätter sedan vid blocket 92 med steget: att den första programmodulen startas av programvaran. Nästa steg, vid blocket 94, består av att ladda aktuellt lexikon, vilket bestämmes av det valda språket, från minnesorga- net samt att sortera nämnda lexikon. Att sortera ett lexikon innebär att lexikonets fraser läses från och sorteras i alfabetisk ordning i till exempel datorns RAM- minne, för att underlätta sökning av fraser i översättningsfasen. Förfarandet fort- sätter sedan vid blocket 96 med frågan om något meddelande avlyssnats i med- delandekön. Om svaret på frågan år nej utföres blocket 96 igen. Om svaret där- emot är jakande fortsätter förfarandet med blocket 98 varvid utföres att identifiera en enhet eller ett objekt i ett grafiskt användargränssnitt. Nästa steg, vid blocket 100, består av att översätta nämnda enhet eller objekt till det valda språket. Förfa- randet fortsätter sedan vid blocket 102 med frågan om alla enheterna eller objek- ten i det grafiska användargränssnittet är översatta. Om svaret på frågan är nej återupprepas stegen 98-102. Om svaret däremot ärjakande fortsätter förfarandet med blocket 104 varvid utföres att sända ett stoppmeddelande till programvaran.
Förfarandet slutar sedan vid blocket 106. an... 15 20 25 30 n . . . nu 522 988 10 u . u - » s - ~ -I De ovan nämnda enheterna eller objekten kan utgöras av exempelvis fönstertitel, meny eller dialogruta.
Det är dessutom en fördel om den första programmodulen utför steget: att anpassa storleken på det översatta enheterna/objekten så att de ryms i det grafis- ka användargränssnittet. Detta är synnerligen väsentligt om ett verktyg med text förekommer i användargränssnittet, eftersom det erforderliga utrymmet för exem- pelvis ett ord är begränsat och ett översatt ord kan vara mycket längre än det ur- sprungliga ordet på originalspråket.
Den första respektive den andra programmodulen anropas medelst DLL- teknik som är en dynamisk länk.
I figur 7 visas en schematisk bild pà några datorprogramprodukter enligt föreliggande uppfinning. Där visas olika digitala datorer 1O81,,__,108,,, där n är ett heltal. Där visas också n olika datorprogramprodukter 1101,...,110,,, här visade i olika form av CD-skivor. De olika datorprogramprodukterna 110,,...,110,, är direkt laddningsbara i det interna minnet i de olika digitala datorerna 1O81_____108,,_ Varje datorprogramprodukt 1101____110,, innefattar programvarukodpartier för att utföra vissa eller alla stegen enligt figur 3 när produkten/produkterna 1101,___,11O,, körs på datorn/datorerna 1O81,____108,,. Datorprogramprodukterna 1101_____110,, kan exem- pelvis vara i form av disketter, RAM-skivor, magnetband, opto-magnetiska skivor eller några andra lämpliga produkter. l figur 7 visas också några datorprogramelement 1121____112,,_ där n är ett heltal. Datorprogramelementet 1121____,112,, innefattar datorprogramkodorgan för att åstadkomma att åtminstone en dator exekverar stegen enligt figur 4, 5, eller 6.
Datorprogramelementet/elementen kan vara registrerat på åtminstone ett datorläsbart medium.
Uppfinningen är inte begränsad till de ovan beskrivna utföringsformerna.
Det kommer att vara uppenbart att många modifieringar är möjliga inom omfatt- ningen av de följande patentkraven.
Claims (13)
1. Förfarande för realtidsöversättnlng av användargränssnitt i en godtycklig applikation i ett första språk, varvid information från applikationen till användar- gränssnittet överföres via en meddelandekö, vilket förfarande använder en första programmodul, vilken medelst hook-teknologi är ansluten till meddelandekön, en andra programmodul för kommunikation, vilken andra programmodul är ansluten till den första programmodulen via ett minnesorgan, och en till den andra pro- grammodulen ansluten programvara, vilket förfarande innefattar stegen: - att välja ett från det första språket skilt språk för applikationen; - att den första programmodulen avlyssnar och analyserar meddelanden i med- delandekön; - att när en enhet eller ett objekt i ett grafiskt användargränssnitt identifierats översätts denna/detta av den första programmodulen till nämnda språk me- delst ett i minnesorganet lagrat lexikon; - att presentera den/det översatta enheten/objektet i det grafiska användar- gränssnittet; och - att återupprepa alla steg utom det första så länge det förekommer nya enhe- ter/objekt, varvid programvaran styr utförandet av dessa steg, varvid nämnda språk är mänskliga språk.
2. Förfarande för realtidsöversättnlng av användargränssnitt i en godtycklig applikation i ett första språk enligt patentkravet 1, kännetecknat av att i minnes- organet finns lagrat ett antal olika lexikon, varvid varje lexikon används för över- sättning mellan nämnda första språk och ett annat språk.
3. Förfarande för realtidsöversättnlng av användargränssnitt i en godtycklig applikation i ett första stråk enligt något av patentkraven 1 - 2, kännetecknat av att programvaran utför följande steg: - att programvaran startas när ett från det första språket skilt språk för applika- tionen väljs; - att automatiskt eller manuellt starta applikationen om denna existerar; - vid ett jakande svar på det föregående steget, att ladda den andra program- modulen för kommunikation; 20 25 30 - . o o »- 522 988 . » o . . . - - . g. si: oooirss-s 12 - att initiera med namn på aktuellt lexikon, vilket bestäms av det valda språket; - att, om applikationen är aktiv, koppla en hook vilket indirekt startar den första programmodulen; - att överföra aktuell hook-handle till den första programmodulen; och - att programvaran stoppar när den erhåller stoppmeddelande från den första programmodulen.
4. Förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt något av patentkraven 1 - 3, kännetecknat av att den andra programmodulen utför följande steg: - att den andra programmodulen startas av programvaran; - att, när ett initieringsmeddelande erhållits från programvaran, lagra namn på aktuellt lexikon, vilket bestäms av det valda språket, och aktuell hook-handle i minnesorganet; och - att den andra programmodulen stoppar om en aktuell tråd, det vill säga den väg en process följer, är stoppad.
5. Förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt något av patentkraven 1 - 4, kännetecknat av att den första programmodulen utför följande steg: - att den första programmodulen startas av programvaran; - att ladda aktuellt lexikon, vilket bestäms av det valda språket, från minnesor- ganet samt att sortera nämnda lexikon; - att, om något meddelande avlyssnats i meddelandekön, identifiera en enhet el- ler ett objekt i ett grafiskt användargränssnitt; - att översätta nämnda enhet eller objekt till det valda språket; - att upprepa de två närmast föregående stegen tills alla enheterna eller objek- ten i det grafiska användargränssnittet är översatta; och - att sända ett stoppmeddelande till programvaran.
6. Förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt något av patentkraven 1 - 5, kännetecknat av att enheterna eller objekten kan utgöras av exempelvis fönstertitel, meny eller dia- log ruta. 20 25 30 u . n. . ß - ~ . . .' .", "fl ~ - . n.. - . . , _ , _ . ~ .- .. u _ 0 .oo :nu s. 1, ,, '_ I a , _ z v a u a - Q . ' 2 ~ ~ . . ~ . . - n. a. a.. .n a.. n. se oooives-s 13
7. Förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt patentkravet 5, kännetecknat av att den första programmodulen dessutom utför steget: - att anpassa storleken på de översatta enheterna/objekten så att de ryms i det grafiska användargränssnittet.
8. Förfarande för realtidsöversättning av användargränssnitt i en godtycklig applikation i ett första språk enligt något av patentkraven 1 - 7, kännetecknat av att den första respektive den andra programmodulen anropas medelst DLL-teknik som en dynamisk länk.
9. Åtminstone en datorprogramprodukt (1101, 110,.) direkt laddningsbari det interna minnet hos åtminstone en digital dator (1081, 1081,), innefattar pro- gramvarukodspartier för att utföra stegen enligt patentkravet 1 när nämnda åtmin- stone ena produkt (1101, 110,1) körs på nämnda åtminstone ena dator (1081, 10811).
10. Åtminstone ett datorprogramelement (1121, 112,1) avsett/avsedda för samverkan med datorprogramelementen enligt patentkraven 11 och 12, innefat- tande: datorprogramkodorgan för att åstadkomma att åtminstone en dator exekve- rar följande steg: - att datorprogramelementet/-elementen startas när ett från det första språket skilt språk för en applikation väljs, varvid nämnda språk är mänskliga språk; - att automatiskt eller manuellt starta applikationen som denna existerar; - vid ett jakande svar på det föregående steget, att ladda en andra programmo- dul för kommunikation; - att initiera med namn på aktuellt lexikon, vilket bestäms av det valda språket; - att, om applikationen är aktiv, koppla en hook vilket indirekt startar en första programmodul; - att överföra aktuell hook-handle till den första programmodulen; - att datorprogramelementet/-elementen stoppar när det/de erhåller stoppmed- delande från den första programmodulen. 20 25 n . n» u . ., e . . , _ u.. a a ' ~- --.' 22 ' “ -~ -2 °'°Z n. .en . . , _ '. - .. , . ~ - o .u a a . , ' ° I o a .. - . . »- n .- n - u Q . . Q - . .. se oooivse-s 14
11. Ett datorprogramelement (112) avsett för samverkan med datorprogram- elementen enligt patentkraven 10 och 12, innefattande: datorprogramkodorgan för att åstadkomma att en dator exekverar följande steg: - att datorprogramelementet startas av en programvara; - att, när ett initieringsmeddelande erhållits från programvaran, lagra namn på aktuellt lexikon, vilket bestäms av det valda språket, och aktuell hook-handle i ett minnesorgan, varvid nämnda språk är mänskliga språk; och - att datorprogramelementet stoppar om en aktuell tråd, det vill säga den väg en process följer, är stoppad.
12. Åtminstone ett datorprogramelement (1121, 112,.) avsett/avsedda för samverkan med datorprogramelementen enligt patentkraven 10 och 11, innefat- tande: datorprogramkodorgan för att åstadkomma att åtminstone en dator exekve- rar följande steg: - att datorprogramelementet startas av en programvara; - att ladda aktuellt lexikon, vilket bestäms av det valda språket, från ett minnes- organ samt att sortera nämnda lexikon, varvid nämnda språk är mänskliga språk; - att, om något meddelande av lyssnats i meddelandekön mellan ett användar- gränssnitt och en applikation, identifiera en enhet eller ett objekt i ett grafiskt användargränssnitt; - att översätta nämnda enhet eller objekt till det valda språket; - att upprepa de två närmast föregående stegen tills alla enheterna eller objek- ten är översatta; och - att sända ett stoppmeddelande till programvaran.
13. Åtminstone ett datorprogramelement (1121, 112,1) enligt åtminstone ett av patentkraven 10 - 12 registrerat på åtminstone ett datorläsbart medium.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0001798A SE522988C2 (sv) | 2000-05-16 | 2000-05-16 | Förfarande, datorprogramprodukt och datorprogramelement för realtidsöversättning av användargränssnitt i en godtycklig applikation |
PCT/SE2001/001079 WO2001088704A1 (en) | 2000-05-16 | 2001-05-16 | Real time translation of user interfaces in an arbitrary application |
AU2001260895A AU2001260895A1 (en) | 2000-05-16 | 2001-05-16 | Real time translation of user interfaces in an arbitrary application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0001798A SE522988C2 (sv) | 2000-05-16 | 2000-05-16 | Förfarande, datorprogramprodukt och datorprogramelement för realtidsöversättning av användargränssnitt i en godtycklig applikation |
Publications (3)
Publication Number | Publication Date |
---|---|
SE0001798D0 SE0001798D0 (sv) | 2000-05-16 |
SE0001798L SE0001798L (sv) | 2002-02-11 |
SE522988C2 true SE522988C2 (sv) | 2004-03-23 |
Family
ID=20279683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE0001798A SE522988C2 (sv) | 2000-05-16 | 2000-05-16 | Förfarande, datorprogramprodukt och datorprogramelement för realtidsöversättning av användargränssnitt i en godtycklig applikation |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2001260895A1 (sv) |
SE (1) | SE522988C2 (sv) |
WO (1) | WO2001088704A1 (sv) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263605B2 (en) * | 2002-12-09 | 2007-08-28 | Intel Corporation | Decoupled hardware configuration manager that generates a user interface prior to booting using hardware configuration option data read from plurality of hardware devices |
SG125908A1 (en) * | 2002-12-30 | 2006-10-30 | Singapore Airlines Ltd | Multi-language communication method and system |
EP1870804A1 (en) * | 2006-06-22 | 2007-12-26 | Microsoft Corporation | Dynamic software localization |
GB2532763A (en) * | 2014-11-27 | 2016-06-01 | Ibm | Displaying an application in the graphical user interface of a computer display |
CN113244624B (zh) * | 2021-05-26 | 2024-07-09 | 网易(杭州)网络有限公司 | 一种游戏翻译方法和装置 |
CN113342437B (zh) * | 2021-06-10 | 2023-03-24 | 网易(杭州)网络有限公司 | 一种软件翻译方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62171036A (ja) * | 1986-01-23 | 1987-07-28 | Fujitsu Ltd | コンパイラのモジユ−ル共用方式 |
JPS62177628A (ja) * | 1986-01-31 | 1987-08-04 | Toshiba Corp | 図形言語エラ−処理システム |
JPH06309193A (ja) * | 1993-04-27 | 1994-11-04 | Toshiba Corp | 機械語プログラムの動作検証方法および装置 |
US5748961A (en) * | 1993-07-12 | 1998-05-05 | Digital Equipment Corporation | Efficient method and apparatus for compiling and linking modules of computer code in a large software system |
US5966539A (en) * | 1994-03-01 | 1999-10-12 | Digital Equipment Corporation | Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis |
US5579520A (en) * | 1994-05-13 | 1996-11-26 | Borland International, Inc. | System and methods for optimizing compiled code according to code object participation in program activities |
JPH08106444A (ja) * | 1994-10-05 | 1996-04-23 | Nec Eng Ltd | ロードモジュール取込み制御システム |
US5675804A (en) * | 1995-08-31 | 1997-10-07 | International Business Machines Corporation | System and method for enabling a compiled computer program to invoke an interpretive computer program |
JP3278603B2 (ja) * | 1998-01-12 | 2002-04-30 | エヌイーシーマイクロシステム株式会社 | コンパイル装置、コンパイラの最適化方法及びコンパイラの最適化手順を記録した記録媒体 |
-
2000
- 2000-05-16 SE SE0001798A patent/SE522988C2/sv not_active IP Right Cessation
-
2001
- 2001-05-16 AU AU2001260895A patent/AU2001260895A1/en not_active Abandoned
- 2001-05-16 WO PCT/SE2001/001079 patent/WO2001088704A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
SE0001798D0 (sv) | 2000-05-16 |
WO2001088704A1 (en) | 2001-11-22 |
SE0001798L (sv) | 2002-02-11 |
AU2001260895A1 (en) | 2001-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Padró et al. | Freeling 3.0: Towards wider multilinguality | |
US7509251B2 (en) | Mock translating software applications at runtime | |
US5392386A (en) | Method and apparatus for adding functionality to computer programs executing under graphical user interfaces | |
EP0370274A2 (en) | Personal computer/host emulation system for handling host data with personal computer application programs at personal computers | |
EP1018683A2 (en) | Executable for requesting a linguistic service | |
US5418941A (en) | Method and apparatus for a dynamic application test facility | |
KR102617753B1 (ko) | 텍스트 데이터 증강 장치 및 방법 | |
US20010029442A1 (en) | Translation system, translation processing method and computer readable recording medium | |
SE522988C2 (sv) | Förfarande, datorprogramprodukt och datorprogramelement för realtidsöversättning av användargränssnitt i en godtycklig applikation | |
US5946499A (en) | Method and apparatus for processing text inputs from multiple input devices in a plurality of applications | |
KR20060013637A (ko) | 레거시 운영체제에서 유니코드 입력을 가능하게 하는 장치및 방법 | |
KR20040065468A (ko) | 특허문서의 다국어 번역 처리방법 및 이 번역소프트웨어를 기록한 판독 가능한 기록매체 | |
JPH07230386A (ja) | データ処理装置及び制御ルーチン呼出し方法 | |
CN1290886B (zh) | 优化单字节字符处理的方法和系统 | |
JP2005293585A (ja) | コンピュータアプリケーションの性能を向上させる方法および装置 | |
US7318221B2 (en) | Windows™ F-language interpreter | |
JPH08153090A (ja) | かな漢字変換システム及びその辞書作成方法 | |
US5742746A (en) | Character output control method and apparatus for terminal | |
Monostori et al. | Parallel overlap and similarity detection in semi-structured document collections | |
JP2001508895A (ja) | コンピュータ・システム | |
JPH08147156A (ja) | プログラム移植システム | |
JPH07160490A (ja) | コーディング支援装置 | |
KR101900813B1 (ko) | 문법에 의하여 생성된 입력으로 제어흐름을 처방하기 위한 동적 제어흐름 분석 장치 및 방법 | |
JPH027121A (ja) | プログラムのコマンド入力制御方式 | |
Self | A ex {An Ada Lexical Analyzer Generator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |