Check your version

This video covers a topic in Drupal 7 which may or may not be the version you're using. We're keeping this tutorial online as a courtesy to users of Drupal 7, but we consider it archived.

Alternate resources: 

Case Study: Blue Peak Fanatics

Video loading...

  • 0:12
    USING DRUPAL: MULTILINGUAL SITES Case Study: Blue Peak Fanatics
  • 0:14
    with Addison Berry
  • 0:18
    Creating a website with a community on it is great,
  • 0:21
    but what if some or all of your community
  • 0:23
    doesn't read or write English?
  • 0:24
    It's a big world, and only about 6% of it
  • 0:26
    speaks English as a native language.
  • 0:29
    Multilingual sites allow you to reach out to your community members
  • 0:31
    and let them feel comfortable contributing.
  • 0:34
    Having multiple languages is not as simple as having users post content
  • 0:38
    in whichever language they like, however.
  • 0:40
    There are other things to consider, like navigation, date formatting,
  • 0:43
    and help text.
  • 0:44
    And what about having the same post available in multiple languages
  • 0:47
    and easily navigating between them?
  • 0:50
    Once you start thinking about it in detail,
  • 0:51
    there's a lot of ground to cover.
  • 0:53
    Luckily, Drupal core and a few contributed modules
  • 0:56
    have done a lot of the hard work for us,
  • 0:58
    so we can concentrate on building our community and content.
  • 1:02
    The two main concepts for multilingual sites are
  • 1:04
    internationalization-- often abbreviated "i18n"--
  • 1:08
    and localization-- abbreviated "L10n."
  • 1:11
    Internationalization is the underlying structure
  • 1:14
    that allows software to be adapted to different languages.
  • 1:17
    Localization is the process of actually translating
  • 1:20
    the software for use by a specific locale.
  • 1:23
    Localization is not necessarily limited to just translating text,
  • 1:27
    but also encompasses things like date formats and currency.
  • 1:30
    In this lesson, we'll get an overview of our case study
  • 1:34
    and look at the project that we're going to be working on.
  • 1:36
    And we're going to walk through the implementation notes
  • 1:38
    so we can see which modules we're going to use to get
  • 1:42
    the right features in place for our multilingual site.
  • 1:46
    So our client, Blue Peak Fanatics, is an international group
  • 1:50
    that loves to climb mountains.
  • 1:52
    And what they need is a website that's going to let everybody share
  • 1:56
    their information with each other.
  • 1:58
    And they want to be able to have language-specific areas
  • 2:01
    for discussion, and let people use the site in their preferred
  • 2:05
    language, since they are spread out among several different languages.
  • 2:10
    They also want to have a knowledge base
  • 2:12
    to actually share that information.
  • 2:14
    And so, those kinds of things, they want
  • 2:16
    to be able to translate and have various versions
  • 2:19
    of that information
  • 2:20
    because it's useful information to everyone,
  • 2:22
    not just someone in one language.
  • 2:25
    So they currently have members who speak three different languages,
  • 2:28
    which is English, Danish, and French.
  • 2:31
    But they do want to be able to add more in the future,
  • 2:34
    if they need to, as the group expands-- which is their hope.
  • 2:38
    So how are we actually going to go about building this site?
  • 2:40
    What are we going to use?
  • 2:41
    How are we going to do it?
  • 2:43
    Well, first thing we'll look at the forums.
  • 2:45
    And forums are actually pretty straightforward in Drupal,
  • 2:48
    because we have the core Forum module.
  • 2:52
    And so what Forum uses is, it creates a new content type for us,
  • 2:55
    so we have the Forum content type.
  • 2:57
    And then it's based on taxonomy, so it's
  • 3:00
    going to create a vocabulary for us.
  • 3:03
    As we create our forums, it's actually
  • 3:05
    creating a taxonomy in the background.
  • 3:07
    And then we can use that to help organize what we have going on.
  • 3:12
    Now, the other big piece of this was the knowledge base.
  • 3:16
    And for the knowledge base, what we're actually going to use
  • 3:18
    is the Book module.
  • 3:20
    And again, the Book module is part of Drupal core.
  • 3:24
    The Book module offers a really nice way
  • 3:26
    to have a "previous," and "next," and "up"--
  • 3:28
    like navigating through a book.
  • 3:30
    So I can add a child page very easily using the Book module,
  • 3:34
    and then navigate between those pages.
  • 3:36
    So I don't have to do anything fancy with that.
  • 3:40
    It also creates a nice printer-friendly version
  • 3:43
    that we could just use if we wanted to have something
  • 3:45
    plain text to print out really easily.
  • 3:48
    So that's how we'll be doing the knowledge base.
  • 3:52
    Now when it comes to the multiple languages,
  • 3:55
    we have two aspects of that.
  • 3:57
    One is the user interface.
  • 4:00
    The other is user-generated content.
  • 4:03
    And it's important to understand those differences because you
  • 4:06
    tackle them differently in Drupal.
  • 4:08
    Now by "user interface," what we mean
  • 4:10
    are things that are hard-coded into Drupal.
  • 4:14
    So things like the names of these menu items up here, or help text.
  • 4:18
    A lot of this stuff is in the Admin section.
  • 4:22
    So as you're clicking around doing things in Admin,
  • 4:25
    is the help text in Danish or is it in English?
  • 4:28
    These are UI pieces of text.
  • 4:33
    And these get translated a little differently.
  • 4:36
    So what we'll be doing is we need the Locale module, which is part
  • 4:39
    of Drupal core, in order to get the translation stuff going.
  • 4:45
    Locale is going to let us actually have any languages at all
  • 4:48
    to begin with, so that we can have Danish and French.
  • 4:52
    So that we can get those installed to begin with,
  • 4:54
    and so that we can make any additions to those translations
  • 4:58
    if everything's not done.
  • 5:00
    Now to make things a little nicer, to build on top of Locale module,
  • 5:04
    we're going to use the Localization Update module.
  • 5:07
    And that's going to make it super easy to add
  • 5:09
    a new language without any hassle.
  • 5:12
    And then we're also going to use the Localization Client module to give
  • 5:17
    us a much nicer interface for doing the translations for our interface.
  • 5:23
    So for example, if I was to switch to Danish,
  • 5:27
    you can see a lot of things are changed on our site.
  • 5:31
    But also, down at the bottom, I get this bar that gives me a really
  • 5:34
    nice, quick translation interface, so that I can go ahead and do
  • 5:39
    the translations as I'm working my way through the site.
  • 5:43
    It's very, very handy.
  • 5:46
    But again, only for the interface, not
  • 5:48
    for the actual pieces of content.
  • 5:51
    Which leads us to our user-generated content.
  • 5:56
    This is the final piece that we need to address.
  • 5:58
    And that is pretty easily handled, actually,
  • 6:01
    using the core Content Translation module.
  • 6:05
    It's going to do the majority of the work for the nodes
  • 6:08
    in terms of the actual content that we have inside here.
  • 6:11
    It's going to give us this "Translate" tab so that we can
  • 6:14
    manage and deal with our translations.
  • 6:17
    And it links those together.
  • 6:19
    So if you look at this node down here,
  • 6:21
    I can see that there's a Danish version
  • 6:24
    and I can switch very easily to the Danish version of this article.
  • 6:28
    On top of the core stuff, though, we also
  • 6:32
    are going to need the Internationalization module,
  • 6:34
    because that is what's giving us all the other little bits
  • 6:37
    of, quote unquote, "content."
  • 6:40
    But it's not content-type content.
  • 6:43
    It's not a node.
  • 6:44
    It's things like our site name, and the way that our menus work,
  • 6:49
    the way that taxonomy is being translated.
  • 6:52
    All of those things are part of internationalization,
  • 6:55
    and that's what's going to finally bring our site together
  • 6:58
    and actually make it feel consistently translated
  • 7:02
    into the correct language, and display the correct language
  • 7:05
    to people at the correct time, instead
  • 7:07
    of mixing them all together into a big jumble.
  • 7:12
    So this is the site we're going to be building.
  • 7:15
    Get ready to start working with internationalization
  • 7:18
    and multilingual sites.

Case Study: Blue Peak Fanatics

Loading...
Creating a website with community content is great, but what if some or all of your community doesn’t read or write English? It’s a big world, and only about 6% of it speaks English as a native language. Having multiple languages is not as simple as having users post content in whichever language they like. There are other things to consider, like navigation, date formatting, and help text. And what about having the same post available in multiple languages, and easily navigating between them? Once you start thinking about it in detail, there is a lot of ground to cover. Luckily, Drupal core and a few contributed modules have done a lot of that hard work for us so we can concentrate on building our community and content. In this series, we'll cover the two main concepts for multilingual sites: internationalization, often abbreviated i18n, and localization, often abbreviated l10n. Internationalization is the underlying structure that allows software to be adapted to different languages, and localization is the process of actually translating the software for use by a specific locale.
 
In this first lesson we'll kick things off with an overview of our case study with Blue Peak Fanatics, take a look at the site we're going to build, and discuss how we'll go about implementing the features we need.