I am developing a multilingual web application that has a nice looking UI. I thought using CSS 3's font-face property to make it even nicer UI, but I'm not really sure if that's a good idea. According to some people I have talked to, different languages need different fonts. This means that there is no single font that can display characters of all languages, because the same character may look different across languages.
For example, according to Wikipedia, the Unicode code point U+4EE4 looks different in Korean and Japanese languages.
So my question is, would it make most sense to contain the fonts within the language packs -- or within the themes of my UI?
If you're going multi-language, use the lang or xml:lang attributes to properly call out the language of a text snippet or the page to the browser and let the browser decide the proper font. This should work much more reliable than trying to do this from CSS.
Related
While my site is manually translated to dozens of languages, the forum entries in it obviously aren't. That's where auto-translation can be useful. I've been using Google's Translate button but currently experiencing problems with it (in this question).
So I've decided to try Bing Translate Widget which doesn't seem to deliver as the auto-detect finds a single language on the page and translates only from it. So my multi-language forum topic doesn't get translated with it at all.
1/ Is there a quick way to make the widget be aware of different languages in the same page?
2/ Is there a way using Javascript to instruct it to translate by which will obviously produce better results?
Thanks
Doing some software review for a RIA project - I was hoping to use Flex but need to make sure it has full UTF-8 support - I'm talking all fonts for all languages - everything from English, to Finish, to Russian, to Japanese to Thai to Sanskrit...
I haven't worked with Flash/Flex/ActionScript in years - but I seem to remember it's up to the font you embed into the movie - so if you have, say MS Arial UniCode that has the full character set you simply include in the movie and the support is there to display the characters? Is this right?
Also including that level of character support(that large a font) -how much does that bloat the application?
Any insight would be helpful as I am still in the information gather stage.
Other software suggestions would also be appreciated.
Thanks
JD
If you use ActionScript 3 (and you should), all strings are Unicode.
And if you use the newer text components (Flash 10) then the text engine supports complex scripts (including Russia, Japanese, and Indic scripts).
All you would have to do is make sure you have the right fonts. You might embed your own (with the mandatory bloat that you can't avoid if you embed a 30 MB Chinese font :-)
In practice you will probably just use the system fonts.
Among others because there are no free and good quality Chinese/Japanese fonts. And you have not right to embed the font without the proper licensing (and the prices are not low :-)
I have a small application that will be used by both spanish and english users. The application has about four webpages with various asp.net functions. The database backend is sound.
What is the best approach for the front end / UI? Two websites with the different languages ? A single website with all text in both EN, ES? Or a single website with text appearing in the language of their choosing?
EDIT: This is an ASP.NET application
Two websites with different languages is a lot of maintenance. Any modifications made will need to be done twice. For this reason, as a programmer, I dislike it. However, if the person maintaining the site prefers it this way, then by all means, go this route.
However, if you are looking to provide a proper bilingual solution, you would definitely be better off with a single website instance, with a multilingual data provider.
There is a pretty good one for Wordpress that I have been playing with lately, called LangSwitcher. I have no idea how you have your website setup, or what you are using to develop it. Just throwing out an idea for you.
I'm unsure how to do it specifically in .NET, but a solution is to store the text in a database, and select which language as the page is generated (ideally by either URL (like /en) or cookie setting). Any resources can be stored in "en" and "es" folders, which should use the same logic to select. Then, as long as you're consistent, your translators / graphics people can just look at the raw, un-translated files, translate, put in the proper folder / database location, and viola.
Any number of languages can be handled, easily extending in the future, and it can even handle most language-specific layouts if you do the same with your CSS files. You should be using CSS to do all layout / styling anyway, in part for reasons just like this.
No matter what, you need more than one of every kind of language-specific data, so you're best off using as much text as possible so your graphics people don't have to pull double-duty in addition to the translators. Using CSS to put the text over the image lets you use a single image for any number of languages, and you can do some pretty impressive stuff with just CSS styling of text. If you want to get tricky, and don't mind breaking the site for older browsers, consider rendering things with the <canvas>. Just pull in the language-specific text & definition with Javascript.
In the meantime, there are a bunch of website widgets to do automatic translation, though they obviously don't touch images (another reason to stick with text wherever possible: anyone using a translation tool will be able to read it). I'm personally a fan of Google's: http://translate.google.com/translate_tools
None are perfect, but it's better than nothing.
I've been asked to research what the best practices are when building the international version of your site.
The main question being asked of me is how we handle Chinese and Arabic.
For example, when the user selects Arabic as a language, should only text be right aligned or should our nav, logo and general layout also switch around?
When comparing to other large corporations, Apple and IBM don't change their layout but Microsoft switches almost everything around.
My good friend Google hasn't been much help so I was hoping someone here could help me out. Does anybody have answers? Some tips and/or resources?
This is a very broad topic, but you did mention that Microsoft "switches everything around," so I'll talk a little about that.
There are a few components to supporting many cultures with your application. Some of the considerations might be:
According to the W3C, internationalization refers to preparing your application for other cultures by removing hard-coded strings and making other kinds of resources, like images, localizable. This should be part of your software design/build/test process from the beginning.
Localization can be broken down into two specific areas:
Language localization is the focus of most international software. Strings and images are converted to another language and loaded dynamically using the current culture.
Cultural localization (something for which Microsoft is famous) is the practice of changing UI elements to better-fit other cultures. For example, in the US, red implies an error or unfavorable message. In other countries, this is not always the case.
For software to genuinely be cross-cultural, you need to address both types of localization. For your web site, though, it's probably sufficient to localize the language strings and images as appropriate; you probably don't have the resources to have user interaction designers working on laying out your application for different cultures.
As ever in UI design, "it depends."
In this case the things you want to check include:
What kind of users are you expecting? What technical level?
What Web experience are they used to?
What resources do you have for the localisation?
Technical users (e.g. developers) will most likely prefer the same layout on the site as other content.
For Arabic, while Web-savvy users are reasonably familar with left-to-right usage, it feels "wrong" and so your site will need to be quite compelling to make sure people stay. If you can change your layout then do.
For both Arabic and Chinese there are many customs and idioms that are quite different, especially when it comes to graphic design. Popular sites in particular look much "noisier" than is usual in the West: a site like stackoverflow.com would be very minimalist in these cultures.
Similarly be careful with things like lucky and unlucky numbers, colours with traditional associations, and suchlike. (This naturally goes everywhere: I could mention the comments we had from Northern Ireland about a very orange-branded theme that was once chosen for a site I worked on...)
What I'd recommend is that you allocate some of your translation budget to a local native-speaking UI consultant. They'd be able to give you proper advice on what bits of your site need to be localised as well as translated.
This guy has a raft of information. Beyond that, my problem is that I'm used to helping people do this via a multi-day consultation, and I'm not sure how to summarize into a post that fits here. That really isn't our business any more, so, honestly, I'm not shilling for work.
I'm looking for an asp.net control capable of formatting code written in certain programming languages (as in StackOverflow or the "Language" functionality in Notepad++), with automatic syntax highlighting/indentation depending on the language.
Do you know of any such control?
I don't know any asp.net control that does that, but you could use a JavaScript syntax highlighter, like this one : http://code.google.com/p/syntaxhighlighter/.
The main advantage is that it moves the rendering cost to the client side, which can be a huge gain for a highly-frequented website with a lot of code (eg programming forum/website like SO.. wait... they do that too, right ?).