vb.net - How to create a multilingual project -
i'm new vb.net , i'm trying simple multilingual project.
so far i've created 2 resource files:
en-us.resx   pt-pt.resx   in both of them have same id's , diferent values (strings only) (these strings used across multiple forms)
when change laguage do:
thread.currentthread.currentculture = new cultureinfo("en-us")   or
thread.currentthread.currentculture = new cultureinfo("pt-pt")   based on language want see.
but dont know how access resource files properly, doing:
dim assembly system.reflection.assembly assembly = me.gettype.assembly dim resourcemanager new system.resources.resourcemanager("my.resources", assembly)   msgbox(resourcemanager.getstring("test"))     gives me exception system.resources.missingmanifestresourceexception' occurred in mscorlib.dll
what missing?
edit after first sugestion: 

this example requires text-based resource files listed in following table. each has single string resource named datestart.     
  culture    |     file name     |  resource name    |    resource value     en-us        datestrings.txt       datestart              today    pt-pt    datestrings.pt-pt.txt     datestart               hoje é   this code uses getstring(string, cultureinfo) method retrieve culture-specific resources. example's default culture english (en), , includes satellite assemblies portuguese (portugal) (pt-pt) culture.
module example    public sub main()    thread.currentthread.currentculture = cultureinfo.createspecificculture("en-us")   thread.currentthread.currentuiculture = cultureinfo.createspecificculture("pt-pt")    dim culturenames() string = { "en-us", "pt-pt" }   dim rm new resourcemanager("datestrings",gettype(example).assembly)       'access resource file     each culturename in culturenames              dim culture cultureinfo = cultureinfo.createspecificculture(culturename)              dim datestring string = rm.getstring("datestart", culture)              console.writeline("{0}: {1} {2}.", culture.displayname, datestring,                                                  date.now.tostring("m", culture))                                         console.writeline()     next     end sub end module       
Comments
Post a Comment