Setting your preferred language on the developer network

By: John Kaster

Abstract: The developer network now supports content in many languages, and introduces a localized interface for languages

Throughout the first half of this year, we have been gradually implementing a new content management system built with Delphi 2006. The new membership services, new GetPublished system, and new BDN features are all part of this new system.

This article discusses the language preference options now supported by BDN.

    Language preference options

As discussed in the new BDN features article, we now support articles in any language. This required a change in the rules for listing articles as a user navigates through the site.

Previously, our content was primarily in English and we didn't distinguish between English and the occasional article written in another language. Now that we actively support and encourage articles in many languages, and provide support for translations of articles by anyone, we needed to change the presentation logic a bit.

We currently have a binary system in place: you either see content in your preferred language, or in English. If English is your preferred language, you will only see English articles listed. Here are the steps we take to select articles to list, as discussed in a QualityCentral report on this subject:

  1. Content in your preferred language is shown, if it is available.
  2. If content is not available in your preferred language, English is shown.
  3. If English is not available, that content is not shown to you when navigating through the content hierarchy. (For our article content, this hierarchy is usually referred to as communities, neighborhoods, and streets.)
  4. All available content in language <x> will still be available if you switch to that language by using the language selection URL pattern for that language (such as http://bdn.borland.com/jp/delphi to select Delphi content written in Japanese).
  5. For whatever content listed, translations of that content are available through clickable links. On the article page, you can click on translations for that article if any are available.

This language selection logic means that you may not see some articles because those articles are not available in your preferred language, or English. For example, an article that is available only in Japanese or French will not be displayed for you in any list while navigating the site if your preferred language is not Japanese or French.

(I should also mention that RSS feeds will be available only for English until we support Unicode for the RSS feeds. That should appear soon.)

    Setting your default language preference

You can set your default language preference by editing your account information in membership services.

Hide image

Image 1 Setting your default language preference

The language drop-down on the account information editing form allows you to specify your preferred language. When you set that language preference, it becomes part of your USER cookie, which is used to recognize you on the developer network systems, and other web sites in our domain.

You default language preference will always be used to filter the articles on the developer network, unless you either clear your USER cookie or override your default preferences, by explicitly using a language filtering URL pattern, discussed below.

    Language indicators

While we only show you content in your preferred language by default, we also want to let you know about translations in other languages. We've made this legend compact but very visible (and hopefully intuitive) by using an icon to indicate language options are available. The icon we currently use is a globe, as shown in the image below.

Hovering over this icon invokes a pop-up that will give you the appropriate options for that "languages" context.

    Language filtering

Every page that displays a list of items can be considered a "navigation page." As you navigate around the site, you are selected different lists based on the link you click on the page, until you choose a tertiary item, or leaf node (an article) to read. On the top right of every navigation page, you will find the pop-up that allows you to change your language selection criteria directly by indicating the language preference in your URL pattern. This overrides the default language preference you might have set for your user account (discussed above).

Hide image

Image 2 Language filtering pop-up

This pop-up displays the list of all languages currently available for our navigation and language selection logic, and is populated by looking at the same data table used by our GetPublished system.

When you click on one of the language filters, all URLs for the developer network have the language preference indicated on them. The URL pattern changes to have the two character language code prefix immediately after the primary url for the developer network. The following pattern is used to explicitly indicate a language filter:

http://bdn.borland.com/<lang>/remainder of url

By putting in values indicated by the language codes above, you can see that

http://bdn.borland.com/de/interbase

will display the InterBase community with German as the preferred language,

http://bdn.borland.com/fr/java

will display the Java community with French as the preferred language, and

http://bdn.borland.com/br/delphi

will display the Delphi community with Brazilian Portuguese as the preferred language.

Selecting "My Preferred Language" will actually simply remove the language code from the current navigation URL pattern, and reset it back to whatever you might have configured for your user account. If your user account is not set, the default language is English. See "Setting your default language preference" above for further information.

    Available translations

When an article list is displayed, the "languages" icon will appear if an article is available in multiple languages. The language pop-up will show you direct links to the available translations for that article.

Hide image

Image 3 Available translations in the list

As you can see from the image above, the InterBase article displayed is currently available in either English (en) or German (de). Clicking on the appropriate title will display the article in that language.

    Translations for this article

When you select a specific article to view, the languages icon will also be available at the top right of the article page. In this pop-up, you can select any of the translations available for the language, or submit a new translation yourself. If you click on the "submit translation" link that appears at the bottom center of the pop-up, you will be positioned at the appropriate place in the "article editing" page to submit a translation for the article you are currently viewing.

Hide image

Image 4 An article with translations

For the InterBase Licensing article, you can see that English and German language versions of the article are available.

Hide image

Image 5 Article without translations

For articles that don't currently have any translations, the languages icon is not displayed. Instead, only the "submit translation" link is available in its place.

Hide image

Image 6 Translations in other languages

    Submitting a translation

Anyone with a USER cookie can submit articles to BDN. (New article submission is discussed more in the GetPublished user guide.) We typically pay USD $200 for original content, and USD $50 for translations.

When you click on the "submit translation" link, you are placed in the "Submit New Version" section of the article editing page for the current article. You can specify the new language, the title and abstract in the translation language, and also upload the translated article body. The editing process for any translation is identical to the process for any other new article you might submit, but the translation will be linked (as a translation) to the article you are currently reading, so it will share the content mappings and other attributes of the original article.

Server Response from: ETNASC03