|
Erhm, there are several ways to 'translate' your application. I'm also currently working on a project which must be able to support multiple languages. I choose to create a new set of controls to support multiple languages. Therefore created an interface containing translation methods, and make all controls (for example buttons and labels) member of this interface. Then as soon as the user changes the interface language, set the CultureInfo object to the new language, and call the translate method on every control member of the interface
However, VS.NET contains full support for multi-language apps (using resources) you should consider some options, and find 'the best solution' for you
|
|
|
|
|
Thanx Allot Eduard,
I am developing framework for mentioned project now, and I have done with the display part using resource files (i.e. to display label and button text dynamically from resource files). That works fine, problem is with data entry controls like TextBoxes, where IME comes into picture. I wanted to know how can I change IME mode (say from English to Japanese or any Asian language) programatically ?
Awaiting ur reply.
Prasad
|
|
|
|
|
iprasad007 wrote: 1. I willing provide a Button on UI which will toggle IME mode, say from English to Japanese. How can do that ?
All text in the UI is set using the control.Text property on each control. To change the text change that value.
Heres a search for how to use satallite assemblies to achive this.
http://www.google.co.uk/search?hl=en&q=c%23+localisation+satallite+assemblies&meta=[^]
iprasad007 wrote: 2. How can I detect if systems IME mode is changed by user ?
Not sure. You might be able to find out more about this whilst researching localisation.
iprasad007 wrote: 3. As well as above I want to transliterate the inputed text to english. Can I do it ?
It's possible theres some software out there that will do it badly. If you want decent results you'd have to get a human to do it.
Heres some computer translated text. I've no idea if it's mangled or not since I don't read japanese but it should give you an idea of the quality.
English:
This is an example of some computer translated text. It's probably not very good.
Japanese:
これはコンピュータによって翻訳されるテキストの例である。それは非常によくないおそらく。
|
|
|
|
|
Hi originSH,
It seems that u didn't got me correctly. U have told me about Text property of control, but I was talking about setting IME mode. U have told me about translation but I was asking about Transliteration.
Anyways thanx for ur efforts.
Regards
Prasad
|
|
|
|
|
|
Hi All,How can I create popup menu with images in C#...for example in iGoogle when we want to change the theme,it lists us several options with images...
Hi,Im Razana
|
|
|
|
|
Hello,
There are some articles here on CP which will help!
I found this one[^] written by John O'Byrne.
All the best,
Martin
|
|
|
|
|
Hey Martin I would like to do it in web form...
Hi,Im Razana
|
|
|
|
|
i want to know how can i write combobox items in a file
here is coding which i wrote but its giving error
StreamWriter sw = new StreamWriter(".\\ABCD.B");
for (int a = 0; a < am.Items.Count; a++)
{
sw.WriteLine(am.Items(a));
}
sw.Flush();
sw.Close();
where "am" is combobox
the error is
'System.Windows.Forms.ComboBox.Items' is a 'property' but is used like a 'method'
|
|
|
|
|
Hello,
Use "Items[a]".
xmen_xwk wrote: where "am" is combobox
You should really name it different, than you wouldn't have to explain it!
All the best,
Martin
|
|
|
|
|
oh thats it
Martin# wrote: You should really name it different
i changed the name for private purpose
|
|
|
|
|
xmen_xwk wrote: i changed the name for private purpose
And the first which came in your mind was "am"?
Don't care too much!
Glad I could help.
All the best,
Martin
|
|
|
|
|
Martin# wrote: And the first which came in your mind was "am"?
just shortform
|
|
|
|
|
am.Items[a] to be more safe am.Items[a].ToString()
|
|
|
|
|
Hello,
Nouman Bhatti wrote: to be more safe am.Items[a].ToString()
I'm not working with the StreamWriter to often so I'm currious.
What does it make more safe to pass the object as string?
All the best,
Martin
|
|
|
|
|
Yeah... I think the ToString() method is implicitly called.
Cheers,
Vıkram.
After all is said and done, much is said and little is done.
|
|
|
|
|
Hi
Is there any easy way to draw Digital Signal by using pixel level drawing in C#?
|
|
|
|
|
have you considered looking at WPF in .NET 3.0 for this ? I am assuming by digital signal you are implying something like a Sine or Cosine wave?
|
|
|
|
|
You probably mean Digital Signature? Just look at the system.drawing namespace.
Input would just need to associate the device (whatever it is) to defined events in your objects.
|
|
|
|
|
Hi all,
What is more efficient/better coding practice:
1. Copying objects using the new keyword and a copy constructor
2. Using a Copy member routine which essentially does the same thing as the copy constructor (except we don't actually allocate memory for it using the new keyword).
My gut tells me that (1) is most likely to be more inefficient (since memory has to be allocated and the 'old' value of the object has to be deallocated) but I'd like to confirm this.
cheers!
|
|
|
|
|
jozsurf wrote: Copying objects by value
You mean a deep copy? i.e. all contained objects wether they are value types or reference tpyes are copied? Or a shallow copy where the references to reference types are just copied rather than the values?
jozsurf wrote: 2. Using a Copy member routine which essentially does the same thing as the copy constructor (except we don't actually allocate memory for it using the new keyword).
You mean a static method that does the copy by passing by value?
I'm not very clear about what your suggesting here. If you give some more details I'll be happy to help
|
|
|
|
|
Hi,
if you have one instance of a class, and you suddenly need a second instance that initially
has the same value, you can go either way:
- instantiate the class with what you call a "copy constructor", i.e. a regular constructor
that takes its own type as an input argument and copies values from it (shallow copy);
- or create an instance method that creates a "clone" (=again a shallow copy), by first
instantiating a new instance, then copying values into it. Several CLI classes offer
such a Clone method, e.g. Array and ArrayList
I havent encountered a Copy method yet, one that takes two objects and copies values
from one into the other (DirectX has some Copy methods, but IMO they should have been called
Clone instead).
The cost for both approaches would be the same; they both create a new object and
initialize it. Nowhere in this an object gets deallocated.
Hope this helps.
|
|
|
|
|
Thanks both for your replies. Apologies for being unclear, as my class consists only of primitive/value types (i.e. bools, structs), I only need to do a shallow copy (I suppose a deep copy could be implemented by some form of reflection?).
The following snippet of code is what I'm trying to do:
<br />
<br />
public class SimpleClass<br />
{<br />
public SimpleClass ()<br />
{<br />
a = false;<br />
b = 0;<br />
}<br />
public SimpleClass (SimpleClass s)<br />
{<br />
a = s.a;<br />
b = s.b;<br />
}<br />
public Copy (SimpleClass s)<br />
{<br />
a = s.a;<br />
b = s.b;<br />
}<br />
public bool a;<br />
public int b;<br />
}<br />
<br />
and so my original question was: is there a performance difference between doing
<br />
SimpleClass a = new SimpleClass();<br />
foreach (SimpleClass y in ListOfSimpleClasses)<br />
x.Copy(y); <br />
and
<br />
SimpleClass a = new SimpleClass();<br />
foreach (SimpleClass y in ListOfSimpleClasses)<br />
a = new SimpleClass(y);<br />
Hope this is a little clearer.
cheers!
|
|
|
|
|
Hi,
When taking your examples literally (except for x.Copy which I read as a.Copy),
there is a performance difference, since the second case creates a lot of new objects,
whereas the first does not.
But none of them make any sense: the first copies all existing elements of ListOfSimpleClass
into a single one, one after another without using it at all; the second creates a lot
of objects, each one a copy from a list element, again without using them.
If you need the objects to exist next to each other, the second case is the right one;
if you need the objects only one at a time, there is no need to do the "new..." stuff;
if you only need to read the values anyhow, there is no need to do a Copy at all: just
read the members of y itself.
Hope this helps.
|
|
|
|
|
Apologies for the lousy example. I was trying to give an 'abstract' example and was a bit rushed for time. Guess it's better to spend a bit more time giving a proper example rather then screwing about with 'abstract' (ultimately incomprehensible) examples
What I need this for is to save some application settings as well as be able to load up default settings. If using simple assignment (=), which copies the reference rather then the value, we run the risk of changing the default values which should really be a static, constant value.
1. Load up default values
m_settings = SavedData.DefaultSettings;
2. Change the settings
3. Save the settings
SavedData.Settings = m_settings;
I'm sure you can see how I ended up changing both SavedData.Settings and SavedData.DefaultSettings, and indeed have made both data structures point to one and the same thing!
And so I realised that I needed to copy-by-value; which brought up my original question. I thought it would be a bit weird to do a m_settings = new SettingsClass(SavedData.DefaultSettings); everywhere I want to do a value copy; of course there is also the potential of a difference in performance (although in my case probably negligible, which is why I wanted to bring it up to check).
cheers!
|
|
|
|