I have a multilingual site (spanish/english). I created 1 role: translator.

I need the anonymous users to ONLY see the contents in english language and the translator users to see both.

How can I accomplish this?

  • I bet there can be a better solution than: Having a language switch block only visible for users with the role translator and as a second step hooking into node_load procedure and denying access(or redirect to english page) for anonymous users when they try to see a page in spanish. AsI said I believe there might be a better solution. – Potney Switters Nov 11 '14 at 13:32

A way to achieve it can be this. Note I am assuming you are using the standard node-based translations, and not entity-based translations.

Suppose the content is a node-type one and the content-type is called Page_en_es. Give permissions at /admin/people/permissions:

  1. View own unpublished content, Page_en_es: Edit any content etc to translator users
  2. View published content to anonymous users.

Then, whenever a translator edits or creates the Spanish content, s/he will set it (=node) to be not published. And the Spanish version won't be seen by anonymous users.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.