Jump to content
Mark
 Share


IPS 4.0: Internationalization and Localization

One of the things we wanted to focus on for IPS Social Suite 4.0 right from the beginning was providing better support for sites which do not use English or use multiple languages (or, as it was scribbled on my whiteboard, "++ i18n/L19n"). In this blog entry I'm going to cover some of those changes and new features.


Translatable Everything

Currently when you create a forum, user group, custom profile field, etc. you have to give it a title and can only do this in one language. If you have more that one language installed, you might want to provide different titles for different languages.

In 4.0 you can do exactly that - if you have only one language installed, these fields will continue to show as normal text boxes - however, if you have more than one installed you'll see several text boxes like this:



Visual Language Editor

One feature that has been really popular in IP.Board is the Visual Skin Editor - a tool which allows you to browse your site, and click on elements to bring up a colour selector to change it. What if we could take this idea and apply it to translating as well? Allowing you to click on any word or phrase on your site and translate it there immediately. In 4.0, you can.


Easier Language Management

In addition to the visual translation we've also made several improvements to the traditional translation method:

  • As you search for a language string, results appear as you type.
  • Editing a language string saves immediately without needing to click a save button.
  • Filter tabs can show you words/phrases which have not yet been translated or the translation is out of date (meaning we've changed the default English value for the word/phrase since it was translated).

We've also made importing/exporting much faster and more reliable - no matter how large your language is (it will grow as you add more applications of course) there is now no risk of hitting an error importing/exporting (for those interested in the technical side of how this is achieved, see this blog entry).

An exported language pack will also now maintain information on the version of each application it was exported from, so that the filter which shows outdated language strings is always accurate.


Automatic Language Detection

Let's say you have Spanish and French languages installed on your site - up until now, you'd have to choose one default language, and users who want the other would have to manually choose it (which can be extremely difficult to find how to do when you're browsing a site in a foreign language).

In 4.0, we automatically examine the information that the user's browser sends (which includes their preferred language) to choose the best one out of what's available, if that user hasn't already set an explicit preference.

Pluralisation

In English, pluralisation is very simple - for most nouns, you just append "s" on the end, with some variation for certain words.

This however, isn't the case in all languages - for example, I was speaking with the owner of a site in Slovak recently who was telling me that the word "records" changes depending on the number of records there are - for 2 records, it's "2 články", but for 5 records it's "5 článkov". Currently, most language strings only have a singular and plural form (as is all that's needed in English) - meaning having the site show "2 články"/"5 článkov" was impossible.

In 4.0, we've introduced some really basic logic into language strings to accommodate this. Rather than having, for example, two language strings with the singular and the plural, there is now one with a value like this:

{# [1:record][?:records]}


The # indicates where the number will go, then each set of square brackets represents a possible value - the number before the : indicating the number which will cause that to show, and ? meaning "all other numbers".

So for our Slovak example, we'd set the value to:

{# [1:článok][5:článkov][?:články]}


On display, it will automatically show the appropriate version.


Lists

Along a similar thread to pluralisation, we've also made the way lists are formatted to be customised through a special language string. For example, a list in English looks like "one, two and three". However, in Japanese, it's "一、二、三。" (the comma symbol is different and there's no "and") - similarly Arabic, Thai and others have similar differences. In 4.0, simply by changing an example language string, this can be changed.

In the default language, this language string is:

a, b and c


For our Japanese example, we'd just change it to:

a、b、c



UTF-8

Without wanting to get into too much technical detail - UTF-8 is the most common of many ways text can be encoded for storage and display on webpages. UTF-8 has been the default encoding in our software since IP.Board 3.0.

Some sites which have been around for a long while though may not be using UTF-8. This can cause issues with some features where UTF-8 encoding is expected (for example, many features which rely on JavaScript require UTF-8 due to JSON only supporting it and nothing else). In addition, some sites may try to use UTF-8, but content is actually stored differently as the database is set to a different encoding, which can also cause issues.

In 4.0, we're going all UTF-8. If you're not already on it, the upgrader will convert data. This means a much more reliable and compatible way of handling text.

 Share

Comments

Recommended Comments




There are no plans for us to distribute anything other than English, but the Marketplace is a great place to find other language packs.

Pretty much the only thing I can say in Japanese is "kagi wa teberu no ue ni arimasu" :tongue:

I will write a Japanese translation at some point in the future if it still doesn't exist

but it's not likely to be any near future

だから待っててね☆(ゝω・)vキャピ

Link to comment
Share on other sites

Sounds great.
 
But as for the sample "一、二、三" I am afraid it's Chinese.

It's kanji, they use Chinese characters in Japanese
In this case, both Chinese and Japanese mean the same but pronounce differently
Chinese: yi, er, san
Japanese: ichi, ni, san <- although in alphabet writing the word three is the same but in Japanese the sound sa and n is separate so it gives an n sound and last longer

Sent from my iPhone
Link to comment
Share on other sites

25 per page but again, it's AJAX pagination so moving is very quick... although perhaps this is an area where infinite scrolling would be a good idea.

Is infinite scrolling going to be a part of your JS framework?

Link to comment
Share on other sites

 

We have support for it, but don't expect to see it too much - it will be used very judiciously.

No that's fine. I asked because I want to use it, and if you have it all set up with documentation then all the better for me. Thanks. :smile:

Link to comment
Share on other sites

Is there any post/topic about release schedule and upgrade costs?

Yes, it will be released When It's Ready™ and the upgrade cost will be to have an active license for all of the apps you are using (so you will need to renew any inactive apps, otherwise you're good to go).

 

 

I'm still trying to get how this syntax works but is it possible that these plural phrases will be okay? I give example of Lithuanian language word atsakymas which means reply/replies.

 

1 atsakymas

2-9 atsakymai

10-20 atsakymų

21 atsakymas

22-29 atsakymai

30 atsakymų

31 atsakymas

32-39 atsakymai

 

and so on. possible?

 

It is now :smile:

{# [%1:atsakymas][%0:atsakymų][?:atsakymai]}

If I'm understanding it correctly, then that won't exactly work for the example he gave.  I'm looking at the 10-20 example.

I think it would be beneficial to do it similar to how you can print pages from a print screen..  1-3,5-7,9,12-17,19,21, etc.  Of course, with the % wildcard to make it so you don't have to list every possible number.

{# [%1:atsakymas][10-20,%0:atsakymų][?:atsakymai]}

 

Of course, match non wildcard values first (so 11 would fall within 10-20, even though %1 is listed first).

Link to comment
Share on other sites

Hello. First of all, thank you for internationalization/localization enhancements. It's really needed features and i hope it's only beginning.
 
I have some questions and requests:
 

Translatable Everything
 
Currently when you create a forum, user group, custom profile field, etc. you have to give it a title and can only do this in one language. If you have more that one language installed, you might want to provide different titles for different languages.
 
In 4.0 you can do exactly that - if you have only one language installed, these fields will continue to show as normal text boxes - however, if you have more than one installed you'll see several text boxes

1. So, if we will have one category(forum) with different languages in title we will get users who want to make posts in this forums in their native language. But some users will want to see topics only in their native language or only in languages that they understand. The filters for topics(by language) will be available?
2. The user will be able to specify the language of the topic (where default language will be current language)?
5. Furl of categories will use text from default language (i hope)?
Link to comment
Share on other sites

 

Hello. First of all, thank you for internationalization/localization enhancements. It's really needed features and i hope it's only beginning.
 
I have some questions and requests:
 

1. So, if we will have one category(forum) with different languages in title we will get users who want to make posts in this forums in their native language. But some users will want to see topics only in their native language or only in languages that they understand. The filters for topics(by language) will be available?
2. The user will be able to specify the language of the topic (where default language will be current language)?
5. Furl of categories will use text from default language (i hope)?

 

 

1. You (as an admin) can give a forum names in multiple languages, but all user-provided content can only be how they provide it.

2. As above.

3. That specific example is no longer relevant in 4.0, but generally yes, that sort of thing is translatable.

4. Within the ACP, we use flags to indicate each language - it hasn't been decided if that'll be done on the language selector yet, but they're there and could be included in the skin. The appropriate flag is detected automatically.

5. No, as this is bad SEO practice.

Link to comment
Share on other sites

OMG, I just LOVE IPB. You are incredible, guys. Thank you for pluralisation, because it's really difficult in Russian and Slovak. I'll purchase it immediatly as you release IPS 4.0.

Link to comment
Share on other sites

Uhm.... you forgot the localization and translation of content.

How about having the same content (articles for example) in multiple languages?

How about having a forum subject covered by a forum for each language?

Link to comment
Share on other sites

Uhm.... you forgot the localization and translation of content.

How about having the same content (articles for example) in multiple languages?

How about having a forum subject covered by a forum for each language?

 

As Mark noted, we are not going to create a situation where every user-provided content is (or can be) provided in multiple languages.  The changes outlined apply to admin-defined text, not user-supplied text.

 

I am unsure what you mean about having "a forum subject covered by a forum for each language" exactly.  You can still create multiple forums for each subject (one per-language) if you prefer.  Or you can have one forum and specify the forum title for each language individually.  That will be up to you.

Link to comment
Share on other sites

bfarber maybe some user of this forum did not understand that there will be multilingual forum, but the forum will always have the language defined by each individual user, am I wrong? I understand you correctly?

Link to comment
Share on other sites

What members of your forum write in things like posts, status updates, personal messages, etc., will not be translated.  What will be able to be translated are things that admins control, such as forum names, custom profile fields, help files, etc.

Link to comment
Share on other sites

I wouldn't mind having the ability to have IP.Content pages or databases in multiple languages so I can make my entire site's content multilingual. I use IP.Content to build a website, not a community so it certainly would be helpful but I doubt it'll happen.

Link to comment
Share on other sites

 

1. You (as an admin) can give a forum names in multiple languages, but all user-provided content can only be how they provide it.

2. As above.

I'm sorry, but it looks like you are misunderstood my question. I'll try to explain it in more detail.
 
So, for example i have 1 forum with 3 names in 3 different languages.
 
And we have some topics in all that languages collected in this one forum.
 
If user will be able to specify his language in the editor(when he starts a new topic), we will get one more field for filters and sorting. Then all other users will able to show/hide only topics with a specific language (or not indicated).
 
Sorry for my English.
Link to comment
Share on other sites

WOWOW i really like the sound of this article, it open up many possibilities

 

Having a community with members speaking/reading several language this will help a lot.

 

One quick technical question relate to article, inside the localization project what feature will be add to article database to allow multiple language version of the same article?

 

http://community.invisionpower.com/topic/389712-localize-content/

Link to comment
Share on other sites

This is all absolutely fantastic! I'm so glad IPS is hearing the pleas of us multi-language communities.  A couple of suggestions:
 

In 4.0 you can do exactly that - if you have only one language installed, these fields will continue to show as normal text boxes - however, if you have more than one installed you'll see several text boxes like this:
blogentry-108264-0-77513200-1372861493_t 

 
Before implementing a flags-as-languages system, please read this: http://flagsarenotlanguages.com/blog/why-flags-do-not-represent-language/
It is really better not to use flags to represent languages.  My site has mostly North and South American users.  English is spoken by people in US, Canada, and some Caribbean nations.  Spanish is spoken by many countries. And several countries (e.g. Canada) have multiple official languages.  Please don't make me choose an inappropriate flag to represent my language options!!
 
Also, when possible, please display all languages available instead of hiding names behind a dropdown menu.  I use lots of websites in non-English languages and its much easier to find the English version of the site if the word "English" is actually visible on the page.  The reciprocal is, I am sure, true for other languages.

Link to comment
Share on other sites

This is all absolutely fantastic! I'm so glad IPS is hearing the pleas of us multi-language communities.  A couple of suggestions:
 

 
Before implementing a flags-as-languages system, please read this: http://flagsarenotlanguages.com/blog/why-flags-do-not-represent-language/
It is really better not to use flags to represent languages.  My site has mostly North and South American users.  English is spoken by people in US, Canada, and some Caribbean nations.  Spanish is spoken by many countries. And several countries (e.g. Canada) have multiple official languages.  Please don't make me choose an inappropriate flag to represent my language options!!

 

These aren't actually representing languages, their representing locales. For example, the US flag is used in that screenshot is for "English (United States)" and when you're in that "language" it will do all the things Americans do like put the month before the day in dates and use a 12-hour clock.

 

They're only displayed in the ACP anyway though - it's just a way to indicate which input field is which once they've actually been filled in.

Link to comment
Share on other sites

I'd like to say thanks to the whole team for the hard work you've been doing.

 

With that being said, I've always wanted a feature to translate the whole board, same thing like,

http://www.vbenterprisetranslator.com/

I would really love to have that feature on my board.

 

 

Thank you once again.

Link to comment
Share on other sites

I'm yet to come across a translator that works very well.

 

 

(The above sentence put into Google Translate for example, to German, and then back, returns "I'm not a translator who will work very well.")

Link to comment
Share on other sites




Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...