557 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.


Transliteration of upload filenames

Provides one-way string transliteration (romanization) and cleans file names during upload by replacing unwanted characters.

Generally spoken, it takes Unicode text and tries to represent it in US-ASCII characters (universally displayable, unaccented characters) by attempting to transliterate the pronunciation expressed by the text in some other writing system to Roman letters.

Localization update

Localization update - Translation updates page

Automatically downloads and updates your translations by fetching them from localize.drupal.org or any other Localization server.


This is a collection of modules to extend Drupal core multilingual capabilities and be able to build real life multilingual sites. Some features:

  • Taxonomy translation (both, per language terms and translatable terms)
  • Multilingual variables
  • Multilingual blocks (control visibility per language and translate title and content)
  • Language selection (when you switch the site language you'll see only the content for that language)
  • Requires Variable module 2.x (Drupal 7)

Read a complete feature overview in the Internationalization handbook: Building multilingual sites .

Drupal 7 upgrade

Do read Upgrade from Drupal 6 to Drupal 7
Read more about new features on Internationalization for Drupal 7 and What's new in i18n.

CKEditor Link - A plugin to easily create links to Drupal internal paths

CKEditor Link - Use autocomplete to easily create a link to a Drupal node!

This module is an extension to the CKEditor module.

It also supports CKEditor installed through the Wysiwyg module.

This module allows to easily create links to Drupal internal paths through CKEditor's Link button and dialog.

It is composed of 2 parts:

  1. A client-side CKEditor plugin that adds features to CKEditor's default Link plugin.
  2. A server-side input format filter that converts the raw paths added through the plugin into aliased and, if applicable, language prefixed URLs.


A co-maintainer is badly needed for this project. If you feel qualified to apply, please get in touch!

While working on the new content translation system for Drupal 7, we (the Drupal core i18n team) faced the need to convert node titles to the Field API in order to make nodes fully translatable.

We were not able to make this happen in Drupal 7 core (#557292: TF #3: Convert node title to fields and #571654: Revert node titles as fields), so we decided to find a solution for this in contrib: the idea is replacing node titles with fields à la Automatic Nodetitles.

This will be exploited by the related Entity Translation project.


Title requires core version at least 7.15.


After enabling the module as usual, visit the Manage fields page of the content type, taxonomy vocabulary or "comment type" which you wish to replace fields of and click the replace link. That's all.

Bug fixing policy

This project is maintained mainly through voluntary and sponsored work, this means our resources are limited. Bug reports will be taken into consideration only if they allow to reproduce the reported issue:

    Entity Translation

    Allows (fieldable) entities to be translated into different languages, by introducing entity/field translation for the new translatable fields capability in Drupal 7. Maintained by the Drupal core i18n team.

    This project does not replace the Internationalization project, which focuses on enabling a full multilingual workflow for site admins/builders. Some features, e.g. content language negotiation or taxonomy translation, might overlap but most of them are unrelated.


    • Title module allows to replace entity labels with fields to make them translatable.


    Entity Translation requires core version at least 7.15.


    Language Icons

    Language Icons

    This module provides icons for language links, both for the Language switcher block and (optionally) for node links.

    Internationalization Views

    Translate views using Internationalization. This is a work in progress and not all Views properties can be translated yet. Requires Internationalization 6.x-1.5 or newer.

    This module has been moved from Internationalization package so we can have different branches compatible with each of the Views versions. Use the same branch of the Views version you are using (2.x. 3.x)


    Drupal 6 i18nviews 2.x

    The 2.x version has grown up over some time. It was already a long way to go and we've collected handler by handler to improve support for all possible cases. However we've also learned that views 2.x translation is sometimes very ugly and hackish. Performance is limited.

    Drupal 6 i18nviews 3.x

    Views 3 introduces a complete new translation layer. We have pushed views 3 improvements to have a clean next-generation translation system that allows cleaner solution with scaleable performance.
    We're working on a stable 3.x solution: We're almost there.

    Drupal 7

    There's a basic D7 port available now. Quality review and finalizing still pending. Your feedback appreciated. Note that we rely on the latest Views 7.x-3.x-dev version, not the alpha or rc.
    The work was primary done by Miro Dietiker of MD Systems and dereine of Erdfisch.

    New maintainer for i18nviews

    String Overrides

    String Overrides

    Provides a quick and easy way to replace any text on the site.


    • Easily replace anything that's passed through t()
    • Locale support, allowing you to override strings in any language
    • Ability to import/export *.po files, for easy migration from the Locale module
    • Note that this is not a replacement to Locale as having thousands of overrides can cause more pain then benefit. Use this only if you need a few easy text changes.

    Language Switcher Dropdown

    Language switcher dropdown with Language icons module

    Project Description

    Language Switcher Dropdown is a very simple module that exposes a new block, similar to the default Language Switcher block provided by Locale module.

    The new block allows site visitors to switch languages using a drop-down select list instead of using hyperlinks.

    The module also integrates well with Language Icons module if installed.

    The picture says it all.

    Domain Access

    Screen shot 2011-09-16 at 11.50.21 AM_0.png

    Drupal 8 status

    Alpha10 has been released. It should be considered a major upgrade. See the detailed release notes regarding the upgrade.

    See https://github.com/agentrickard/domain for the most current work.


    The Domain Access project is a suite of modules that provide tools for running a group of affiliated sites from one Drupal installation and a single shared database. The module allows you to share users, content, and configurations across a group of sites such as:

    • example.com
    • one.example.com
    • two.example.com
    • my.example.com
    • thisexample.com <-- can use any domain string
    • example.com:3000 <-- treats non-standard ports as unique

    By default, these sites share all tables in your Drupal installation.


    Drupal 7

    Module installation requires edits to your site's settings.php file. See the online installation guide for details.

    Drupal 8

    No changes are requires to install the module, but certain configurations need to be edited in services.yml. See the README for details.

    Technical background

    The module uses Drupal's Node Access system to determine what content is available on each site in the network. Unlike other multi-domain modules for Drupal, the Domain Access module determines user access based on the active domain that the user is viewing, rather than which group or site the user belongs to. For more information about Node Access in Drupal, see http://api.drupal.org/api/group/node_access/7

    This module uses some advanced Drupal concepts and requires that you understand and control your site's DNS configuration. See this case-study or this more recent Row Eleven Wine Co. post for more details about using Domain Access.

    You can also watch video of the DrupalCON Paris session "Managing Multiple Sites with Domain Access" (from 2009).

    If you are looking for a module to provide subdomains to users and groups and do not need to affiliate content, take a look at Subdomain.

    Localization client


    This module helps you fix translations on your site as you see the issues. Just by navigating around your pages, you'll be able to fix translations and fill in missing ones using the on-page translation editor. At the same time, if configured properly, the module also submits your translations back to the community, to localize.drupal.org or any other localization server.

    Related projects:

    • Localized Drupal, an install profile that will download translations automatically (and comes with Localization client and Localization update).
    • Localization update, which will help you automatically install and keep translations updated.


    • You can select text from the page and hit Ctrl+Shift+S to automatically search the string in l10n client

    Video demonstrations


    Administration Language


    This module lets the administrator see all administration pages in her preferred language.

    You can use this to display the frontend of the site in one language and still keep most of the backend in English (or another language of your choice).

    Translation helpers

    Translation helpers enables other modules to respond to changes in the "source translation" of a set of translated content. This functionality is useful for modules that track data by the "source translation" (node.tnid value).

    This module doesn't do anything on its own. You should install it only if it's suggested or required by another module you're using.

    The module also provides other methods for modules to use with translated content.

    Drupal 8

    A Drupal 8 version won't be needed. Translation Helpers addresses use cases related to the model of translation used in the Drupal 7 core Content Translation module, in which each language has its own node. Drupal 8 has switched to fields-based translation, in which the awkward workarounds of D7 will be a thing of the past.

    Translation Overview

    Translation Overview

    The Translation Overview page provides a table listing the site's nodes and showing what's been translated into each language. It also lets you assign priorities for translating nodes into the various languages.

    For translations of taxonomy terms and menu items check out the Translation table module.



    GTranslate uses Google power to translate your Drupal website. With 103 available languages your site will be available to more than 99% of internet users.

    You can check GTranslate Tour video to learn more.

    • Hides "Suggest better translation" pop-up
    • Hides Google top frame after translation
    • Mouse over effect
    • Google Analytics feature
    • Flags combined in one file to load faster
    • Option to open translated page in new window
    • Available styles Dropdown/Flags/Flags with dropdown/Nice dropdown with flags
    • Valid XHTML
    • You can manually correct translations (paid)
    • You can have sub-directory (example.com/es/) or sub-domain (es.example.com) URL structure (paid)
    • URL Translation is possible (example.com/about-us -> example.es/sobre-nosotros) (paid)

    Mail Editor

    The Mail Editor module lets you edit the bodies and subjects of all emails that go out from your site to your users through Drupal's drupal_mail() function. You are able to edit any email body text based on which email it is and which language it is being sent for. You may use token variables in your templates to better customize dynamic email text.

    Mail Editor has special support built-in for the User core module and the LoginToboggan module. Enable the Locale core module to activate non-English and even multi-lingual email template translation.

    Mail Editor was originally written for D5 by chx, and rewritten and expanded for D6 by litwol. Thanks to both! The D7 version was ported and adapted to use the new core tokens by salvis.

    Mail Editor for Drupal 7

    We recommend installing the Token module for assistance with editing the templates and to get access to the tokens that it provides.

    Client modules can enhance Mail Editor by exposing additional standard token types and even adding types of their own. The Subscriptions module does this extensively, and it also adds a preview feature to Mail Editor.

    Translation template extractor

    The Translation template extractor provides a web based and a command line Gettext translation template extractor interface for Drupal as well as a reusable API to look for translatable strings and translatability errors. This tool is used under the hood at http://localize.drupal.org/ as well to serve as a parsing machine for Drupal.org project releases.

    Translation templates are used by teams to translate Drupal to their language of choice. There are basically three ways to use the contents of this project:

    • Web based extraction: If you are a translator, install the module on a Drupal site as you would with any other module. Once potx module is turned on, you can go to the "Extract strings" tab on the Locale administration interface, select the module or theme you want to have a translation template for, and submit the form. You will get one single template file generated.
    • Web based code review: If you are a module or theme developer, install this module and the coder review module. Pick the Interface text translatability review offered by potx and check your module for translatability problems.



    Search engines use <link rel="alternate" hreflang="x" /> tags to serve the correct language or regional URL in search results.

    Hreflang is a simple module that automatically adds these tags to your pages. It has no dependencies, but works well with Entity Translation.

    More info about hreflang can be found at the article Use hreflang for language and regional URLs.

    Language Switcher


    Language Switcher for Drupal 7 is an enhancement for core language switcher block in local module. It's very useful for websites with multi-languages where you want to display content in different languages side-by-side. Watch this video to better understand the concept.


    Divide your website page to a number of sections where each sections contains nodes in one language (see the screenshot).


    • When #1164926: Nodes need to have languages specified separately for accessibility lands into D7 core, the code base for this module will be much simpler, and cleaner.
    • Currently with core locale module, there is two language switcher blocks, one for interface, and the other for the content. This module should only alter the content one, not the interface one. Currently, it alters the interface block!

    How to?

    1. Enable Locale and Content Translation modules.
    2. Add other languages, e.g. Arabic, French (admin/config/regional/language).
    3. Go to Language Switcher config page (admin/config/regional/language/language_switcher), select what mode you want to use.
    4. Go the content type you want the translation to be enabled on, select `Enable, with node translation` (e.g. admin/structure/types/manage/article).
    5. Add nodes, add translations.

    Accordion Menu

    This module will display a menu using a jQuery UI accordion effect.

    The 6.x-1.x and 7.x-1.x releases support the same features. Features in version 6.x-1.2 (and above) include:

    Field placeholder

    Field Placeholder module gives support to add HTML5 placeholder attribute to field widget forms.

    By default, this module integrates text, number and mail modules, but any other widget type can be added through hook_field_placeholder_info().

    Field placeholder adds a new option in field settings page to enter the placeholder value, which is included automatically when the widget is rendered.

    You can make the most of this module using it with Entityforms module.

    Translation table

    Screen shot 2010-08-13 at 16.00.20.png

    UI for quick translation of taxonomies and menus. The i18n module allows for translation of taxonomy terms and menu items, but the process is tedious - you need to look up strings you want to translate, there is no overview of what's already translated etc.

    This module presents your taxonomy terms or menu items in a table, and each language has a corresponding column. Just fill out the translations and click Save.

    Requires the i18n module, and either taxonomy or menu string translation.

    Autocomplete Widgets for Text and Number Fields

    This module adds 3 autocomplete widgets for CCK fields of type Text and Number.

    • Autocomplete for allowed values list: This widget can be used for Text and Number fields and it takes candidate values from the defined list of Allowed values of the fields. You can even generate your allowed values list using PHP, so the limit to provide a widget with autocomplete features is your imagination!
    • Autocomplete for existing field data: This widget can be used for Text only and it takes candidate values from existing values in the database for that field.
    • (7.x only) Autocomplete for predefined suggestions: This widget can be used for Text only and allows an admin to provide a list of suggestions but still allows users to enter anything they want in a text field. Use this widget to help avoid (but not prevent) variations of the same value. Ex: burger, hamburger, Burger ...
    • (7.x only) Autocomplete for existing field data and some node titles: This widget works just like the "existing field data" widget above except it will also suggest node titles for nodes of a specific content type(s).

    All widgets allow you to choose the size of the text element and the method used to match values between 'Starts with' and 'Contains'. You can also enable case sensitive or insensitive matches option. Note however that MySQL may ignore case sensitivity depending on the collation used in your database definition.

    When the Internationalization module is enabled, the 'Autocomplete for existing field data' widget also provides an option to filter values by the language assigned to their corresponding nodes. This option allows you to provide a different set of allowed values per language.

    Pathauto i18n

    As you know by default Pathauto creates alias only for one language or for all languages one alias.
    This module provides functionality to create aliases for each language. Also this module will be helpful, if you use field translation and you want show node on all language with paths, different from node/nid.


    When you create node without pathauto_i18n:
    English alias: en/articles/first_article
    Italiano alias: not exist
    Deutsche alias: not exist