Page 1 of 1
					
				Buttons with respective language
				Posted: Thu Mar 24, 2005 2:23 pm
				by Hroudtwolf
				Hello PB-World,
I want to make Buttons with the respective language of a country like in the requesters. 
In Example:
Button in Window with german as systemlanguage ->Fertig<-
Button in Window with english as systemlanguage ->Finish<-
Do anyone knows a way to realize this?
			 
			
					
				
				Posted: Thu Mar 24, 2005 3:28 pm
				by Rescator
				Use a ini file.
Make sure that you use
ReadPreferenceString("WINDOW_FINISH","Finish")
That way if a text is missing, it will default back to english.
Also you need to make a list() where the result of ReadPreferenceString() is put into.
Like:
list()=ReadPreferenceString("WINDOW_FINISH","Finish")
Use Enumeration to make the needed constants.
i.e #WINDOW_FINISH
Then simply make a procedure like this:
Procedure.s Lang(id.l)
 SelectElement(list(),id)
 ProcedureReturn list()
EndProcedure
Then to simply get/use the text for WINDOW_FINISH,
wether it is german on english or spanish being used.
Simply use:
Lang(#WINDOW_FINISH)
where you would normally have used
 "Finish"
in your code.
Then just allow the user to choose in the program settings
what language he wish to use.
Using a INI would make it easy for people to make translations too.
I.e:
German.ini
Swedish.ini
etc.
Maybe make a Languages\ folder they could be in,
and then automatically list them in a selection box in the preference window.
Just some ideas for you.
Sorry I don't have any actual sourcecode,
but I bet it won't be long until someone makes some ready to use code for this,
or maybe there allready is?
			 
			
					
				
				Posted: Thu Mar 24, 2005 3:34 pm
				by Tension
				Use dictionary or pref or ini files, as Rescator suggests.
PureBasic is an example of using files for languages, see the catalogs folder in the PureBasic folder.
Also I think JaPBe has similar.
And check out PureVision as there may be a solution there for you. Not  100% sure of this though, or how it works. Just saw something about languages.
			 
			
					
				
				Posted: Thu Mar 24, 2005 3:52 pm
				by Hroudtwolf
				In need it for a Requester-LIB. 
I can't make an INI with all languages on the earth.
In the other dialog and requesters of Windows exists also buttons
with respective language of the system settings.
I need the API of Dialog-Buttons. 
OK.
Finish.
Cancel
Yes
No.
			 
			
					
				
				Posted: Thu Mar 24, 2005 4:09 pm
				by Rescator
				Hmm. Yes Ok and so on are automatic.
And those are automatically changed.
A PB MessageRequester() Ok Yes button afaik should use the Windows API Yes text.
Just try to change the language of your computer to something else and you should see.
I have no idea how to "access" the Windows language database so you can use that text in your own program...
But anyway. for those interested, here is a working example of the thing I talked about. Maybe someone will find it interesting! 
Code: Select all
Enumeration
 #L_WINDOW_FINISH   ;This should get the value 0
 #L_WINDOW_FAILED   ;This should get the value 1
                    ;etc etc.
EndEnumeration
NewList language.s()
OpenPreferences("Language\German.ini")
 ;Make sure the order of lines below match the enumeration above
 AddElement(language()) : language()=ReadPreferenceString("WINDOW_FINISH","Finish") ;Becomes entry 0 in list
 AddElement(language()) : language()=ReadPreferenceString("WINDOW_FAILED","Failed") ;Becomes entry 1 in list
 ;etc etc.
ClosePreferences()
Procedure.s lang(id.l) ;This is the routine that will fetch the language strings.
 SelectElement(language(),id)
 ProcedureReturn language()
EndProcedure
;Example:
MessageRequester("Test",lang(#L_WINDOW_FAILED))
In the German.ini file the language lines would be stored as:
WINDOW_FINISH=Fertig wohoo!
WINDOW_FAILED=Felen, bah!
etc etc.
Have fun!
 
			 
			
					
				
				Posted: Thu Mar 24, 2005 4:23 pm
				by Tension