How to Translate Content type name using i18n module? I am developing a multilingual site that supports English and Norsk bokmal. I have set English as my default language. I wanted to translate the contents and the other things in the site.

My real problem started when I found that I was unable to see the translation of the content type's name. I went to admin/config/regional/translate/translate and translated everything, but still my content type's name is not translated.

I have attached a screenshot of the translation page. Still I don't find a way to translate the content type's name.
First, I must point out that if all you want is a single language non-English website you should not install the Internationalization project, and not enable the Multilingual content module (part of the Internationalization project).

If you have this problem with a single-language non-English web-site, all you need to enable the Locale module (part of core) and enable the Localization update module.  See the first part of this answer to see how to deal with this if you've a problem with content type names not being translated on a single language non-English website.

However, if you're creating a multi-language website where the user interface and the content shall be in multiple languages (due to various detection and selection strategies), then you need to install a project named Internationalization and enable several of its sub-modules, including one named Multilingual content.

However: Do not do this if all you want is to have the the site user interface and its content in a single language that is not English.  The Internationalization project is (IMHO) hard do configure correctly, and still have some serious bugs unfixed. Do not install it unless it is absolutely required.

If you need a multi-language website and you've configured it and you've configured the language settings and already set another default language than English, then the names of content types will not be translated by default, even if the translations for the names of these types are already present in the translated strings listed for the built-in interface.

When you enable the Multilingual content module, a column named Node types will appear in the translate interface overview (if this column do not appear, then the Multilingual content module is not enabled).  For  the names of the content types to appear, you ned to have these translated in the text group Node types as well.  The recipe below tells you how to do this.

I really think this is a bug in the Internationalization module, and as such is off-topic here.  See  Translate interface for nodes, fields, etc. show wrong language in the column for the issue.

However, I was able to get the node types translated at my site by doing the following:

First, I made sure that I installed the Internationalization module and all the required helper modules (such as Multilingual content) before I added any languages.  I also made sure that I used English as the default language all the way during the translation process.

So you do the following with English as the only language enabled (if you've got additional languages enabled, uninstall them, you will also need to disable and uninstall the Internationalization module and all its helper modules to get a clean start):


Download and install the Internationalization project.
Enable the Multilingual content module (part of the Internationalization project).


Then add any additional languages you want, but do not enable them.  This is supposed to add translations for the Built-in interface and Node types. However, to me it looks as if the translations for text group Node types is not automatically imported when you enable a new language after you enable Multilingual content.

You can confirm this by looking under the "Overview" tab of the translation interface:



If the percentage in the "Node types" for your second language is ("Norwegian Bokmål" in the image above) is 0%, the translated strings for the Node types has not been imported into the translation interface.  This means that even after you enable that language, the fallback English strings will be used.

However, it should now be possible to add these translation by hand.  Navigate to the translate tab of the translation interface, and limit search to Node types.



The strikethrough over the string with the two letters in the Languages column means that the translation is missing.  Click "edit" to add the missing translation.

This exact procedure fixed it for me as can be seen from the "Overview" tab below.  The percentage for "Node types" for "Norwegian Bokmål" in now 100%.



After doing all the above, it is OK to set a non-English language as default.