I definitely think you should display in the language that matches the item in the button list Reasons: If it's not the language you're interested in, you won't mind if you don't understand it, as long as you can find your own language Think about the last time you called customer service. How many times have you heard something like, "Para Espanol, marque dos"? It's very common, accepted practice to mix different languages in one UI (whether visual or audible) Think about how you'd feel if you went to a Spanish site, and you couldn't find your language under "E".
Maybe, eventually, you'd notice "Ingles", and think it probably translated to "English", but it's definitely better to save the user the trouble of translating and mentally alphabetizing.
I definitely think you should display in the language that matches the item in the button list. Reasons: If it's not the language you're interested in, you won't mind if you don't understand it, as long as you can find your own language. Think about the last time you called customer service.
How many times have you heard something like, "Para Espanol, marque dos"? It's very common, accepted practice to mix different languages in one UI (whether visual or audible). Think about how you'd feel if you went to a Spanish site, and you couldn't find your language under "E".
Maybe, eventually, you'd notice "Ingles", and think it probably translated to "English", but it's definitely better to save the user the trouble of translating and mentally alphabetizing.
I would say it's best to display the language in "its own language" (option #3). You can not necessarily expect the user to know the currently selected language, nor expect him to know English. What's tricky is how to display the "Select your language" button in a language neutral way.
I usually go for a flag indicating the current language since that tends to get the message across eventhough there's not always a 1:1 mapping between country and languages.
The standard (in both senses of the word, i.e. What is actually used in the real world, and what the IETF/W3C/ISO says) is to use ISO 639-1 Alpha-2 language codes. Maybe augmented with either the full name of the language in English, the language itself, a romanic transliteration of the name in the language itself or any combination thereof.So, to keep with your example: de German - Deutsch en English fr French - Français ja Japanese - 日本語 (Nihongo).
Two options, first the name of the language in the selected locale or English, then the name of the language in itself between parens, or the other way around, e.g. : English French (Français) German (Deutsch) Spanish (Español) or English Français (French) Deutsch (German) Español (Spanish).
English language name: Pros: Predictable sorting. No need to think about different text flows. Cons: Users who doesn't speak English might have ha harder time finding their language.
If the rest of the application is translated, it might look sloppy or grammatically wrong: Ditt språk är English/votre langue est English. Language in its own name: Pros: Easier for the non-English speaker. You have to think about encoding and text flow; A useful exercise.
:-) Cons: Harder to navigate if the user is used to English or has her mind set on finding an English name. You have to consider all language variants. What is right really depends on the rest of your application.
You might want to consider having all language names translated to all languages. If english is choosen, then you get to pick from: English Swedish French If Swedish: Engelska Svenska Franska ...and French: Anglais Suédois Français But then the translantion problem has turned from O(n) to O(n^2), which might be acceptable depending on what your current value of n is. EDIT As deceze points out.
You will also have to handle the case when a user accidentally switches to a language she doesn't understand, and provide a way back - for example by always including a few major languages.
3 I'd vote against translating all languages into all languages. It's not only O(n^2), but good luck switching to English when faced with the choice of 日本語ã€? Éイツ語ã€?
Ãシア語ã€? È‹±èªž. :) – deceze Feb 18 '10 at 8:54 Good point deceze, I'll edit the answer to reflect that.
– Anders Lindahl Feb 18 '10 at 8:55.
I find it harder to find "Magyar" in a list of languages. Because there are languages with non-latin character set, this is not a simple first-letter-lookup, as I lose focus when I first meet one of these. Where should I look?
At 'M' - Magyar? But where is M? EDIT: M in the (current language's) alphabet, not on the keyboard.
Have a look at this (from Wikipedia): БългарÑки - I know, this is Bulgarian, but བོད་ཡིག - what is this? Bosanski Català Česky Dansk Deutsch Ελληνικά I would prefer something like this: A... B... C... . .
Hungarian (Magyar) If the UI was Japanese, I would ctrl+f-ing "Magyar", though.
But the first letter of "Magyar" in Magyar might be pretty easy to type for someone who has a keyboard that's set up to write that language. – Joachim Sauer Feb 18 '10 at 9:07 བོད་ཡིག is Tibetan, apparently pronounced bod skad. :o) – deceze Feb 18 '10 at 9:39.
Whatever you do don't use the IP location to set the language. Google is very annoying about this -- when logging on from a new location I get google in the local language and script. This is really annoying particularly, anywhere southeast of Croatia.
The worse offender though is Microsoft. When trying to purchase software thier servers keep switching languages depending on your location and in many cases makes it impossible pay for anything by Credit Card as the addresses and zip codes etc. Are validated in the local format and not where your credit card was actually issued.( By the way MS the first four digits of a credit card number indicate the issuing institution which is tied to a particular country so its not rocket science to work out a UK postcode format is required rather than say a six digit german ZIP code.
Use country-flags in combination with the language name in that language (Deutsch, Francais, Nederlands, ...).
2 This works for the many common languages, but note that there is in general not a 1-1 relationship between countries and languages. – JesperE Feb 18 '10 at 7:50 Yes, and depending on the language/country this might even become offensive. – Daniel Rikowski Feb 18 '10 at 7:58 Living in Belgium I got used to web sites that offer me a dutch flag to click on if I want to choose the dutch language.
That doesn't offend me anymore. Showing a Belgian flag is hopeless since we have 3 languages here (dutch/flemish, french and german). – Patrick Feb 18 '10 at 10:20.
I don't know about any programming related conventions about this but I would prefer to see the name of a language in its own language. For example: English Türkçe Deutsch.
Have a look at your Regional Settings. This is how Microsoft implemented it. Seems like your version 1.
But you can't change the language in Windows without a reinstall, so there is no risk of accidentally switching to chinese and then have to trial-n-error your way back :) – truppo Feb 18 '10 at 8:59 2 @truppo: I think Windows 7 can do that with language pack and there was limited support for that in earlier versions as well. – Joachim Sauer Feb 18 '10 at 9:09.
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely. The earliest programming languages predate the invention of the computer, and were used to direct the behavior of machines such as Jacquard looms and player pianoscitation needed.
Thousands of different programming languages have been created, mainly in the computer field, with many being created every year. Most programming languages describe computation in an imperative style, i.e. , as a sequence of commands, although some languages, such as those that support functional programming or logic programming, use alternative forms of description.
The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning). Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard), while other languages, such as Perl 5 and earlier, have a dominant implementation that is used as a reference. A programming language is a notation for writing programs, which are specifications of a computation or algorithm.
1 Some, but not all, authors restrict the term "programming language" to those languages that can express all possible algorithms. Function and target: A computer programming language is a language3 used to write computer programs, which involve a computer performing some kind of computation4 or algorithm and possibly control external devices such as printers, disk drives, robots,5 and so on. For example PostScript programs are frequently created by another program to control a computer printer or display.
More generally, a programming language may describe computation on some, possibly abstract, machine. It is generally accepted that a complete specification for a programming language includes a description, possibly idealized, of a machine or processor for that language. 6 In most practical contexts, a programming language involves a computer; consequently, programming languages are usually defined and studied this way.
7 Programming languages differ from natural languages in that natural languages are only used for interaction between people, while programming languages also allow humans to communicate instructions to machines. Abstractions: Programming languages usually contain abstractions for defining and manipulating data structures or controlling the flow of execution. The practical necessity that a programming language support adequate abstractions is expressed by the abstraction principle;8 this principle is sometimes formulated as recommendation to the programmer to make proper use of such abstractions.
Expressive power: The theory of computation classifies languages by the computations they are capable of expressing. All Turing complete languages can implement the same set of algorithms. ANSI/ISO SQL and Charity are examples of languages that are not Turing complete, yet often called programming languages.
Markup languages like XML, HTML or troff, which define structured data, are not generally considered programming languages. 121314 Programming languages may, however, share the syntax with markup languages if a computational semantics is defined. XSLT, for example, is a Turing complete XML dialect.
151617 Moreover, LaTeX, which is mostly used for structuring documents, also contains a Turing complete subset. The term computer language is sometimes used interchangeably with programming language. 20 However, the usage of both terms varies among authors, including the exact scope of each.
One usage describes programming languages as a subset of computer languages. 21 In this vein, languages used in computing that have a different goal than expressing computer programs are generically designated computer languages. For instance, markup languages are sometimes referred to as computer languages to emphasize that they are not meant to be used for programming.
22 Another usage regards programming languages as theoretical constructs for programming abstract machines, and computer languages as the subset thereof that runs on physical computers, which have finite hardware resources. 23 John C. Reynolds emphasizes that formal specification languages are just as much programming languages as are the languages intended for execution.
He also argues that textual and even graphical input formats that affect the behavior of a computer are programming languages, despite the fact they are commonly not Turing-complete, and remarks that ignorance of programming language concepts is the reason for many flaws in input formats. All programming languages have some primitive building blocks for the description of data and the processes or transformations applied to them (like the addition of two numbers or the selection of an item from a collection). These primitives are defined by syntactic and semantic rules which describe their structure and meaning respectively.
A programming language's surface form is known as its syntax. Most programming languages are purely textual; they use sequences of text including words, numbers, and punctuation, much like written natural languages. On the other hand, there are some programming languages which are more graphical in nature, using visual relationships between symbols to specify a program.
The syntax of a language describes the possible combinations of symbols that form a syntactically correct program. The meaning given to a combination of symbols is handled by semantics (either formal or hard-coded in a reference implementation). Since most languages are textual, this article discusses textual syntax.
Programming language syntax is usually defined using a combination of regular expressions (for lexical structure) and Backus–Naur Form (for grammatical structure). A list is a matched pair of parentheses, with zero or more expressions inside it. Not all syntactically correct programs are semantically correct.
Many syntactically correct programs are nonetheless ill-formed, per the language's rules; and may (depending on the language specification and the soundness of the implementation) result in an error on translation or execution. In some cases, such programs may exhibit undefined behavior. Even when a program is well-defined within a language, it may still have a meaning that is not intended by the person who wrote it.
"Colorless green ideas sleep furiously." is grammatically well-formed but has no generally accepted meaning. "John is a married bachelor." is grammatically well-formed but expresses a meaning that cannot be true.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.