Have you ever considered delivering your content for multiple regions and in multiple languages? More and more websites are going internatio...
Have you ever considered delivering your content for multiple regions and in multiple languages? More and more websites are going international (being made available in multiple languages) these days, and you can easily see why. The broader the audience, the better. And unless you have a region specific website, there's no reason why you should not go international. However, there's a lot more to it than just translation, as emphasised by these quick tips from Google for internationalization.
Recommended: Should you blog in other languages?
1. Change your markup instead of your style sheets
Learn where to use markup and where to use CSS for internationalization (shortened to i18n after the starting character i, and the 18 character spaces between the first and the last n). Things like language are inherent to the content present on page. So in this case, markup should be used for i18n. You can't always rely on CSS. So use attributes like lang and dir (for direction) with the html tag as shown below.
<html lang="en" dir="ltr">
Note: In some cases, i18n markup might not be supported by the markup language, as is the case with XML. In such cases, CSS may be used.
2. Use a single CSS file
When using different languages and directions (LTR or RTL), do not use a separate style sheet for each locale. Use a single CSS file, and bundle together existing CSS rules with their international counterparts. A single file makes it easier to maintain things, and only a single file needs to be loaded. Consider a scenario where the default CSS file loaded, but the international file failed to load. A single file approach would be better in that case.
3. Use [dir='rtl'] attribute selector
A language can either have an RTL (Right to Let) or LTR (Left to Right) directionality. RTL directionality requires different markup than LTR. So you can use the [dir='rtl'] attribute selector in this case. For example;
aside { float: right;}[dir='rtl'] aside { float: left;}
4. Look carefully at position properties
As in the example above, you often need to reverse or mirror the position properties for RTL and LTR languages. For example, what's aligned left in LTR should be aligned right in RTL. So you should look at all the position-related properties for LTR, and mirror them for RTL. These include margins, padding, text-align, float, clear, and so on. There are tools out there as well that do the job for you, such as CSSJanos .
5. Look closely at the details
Just like with CSS positioning properties, you might want to mirror some other details as well, such as box-shadow for images, text-shadow for text, arrows, background, markers, and so on. Same goes for JavaScript positioning and animations.
Another very important aspect is the fonts and font sizes. A font size for one language might seem adequate, but it may be too small for other languages. For example, Arabic texts usually need to be bigger than English texts because they're difficult to see in a smaller font.
So keep an eye out for details, and feel free to contact us if there's a problem. We'd love to help. Cheers :)
COMMENTS