Download & Extend

Multingual Nodequeues - Displaying nodes based on language

Project:Nodequeue
Version:7.x-2.x-dev
Component:Documentation
Category:support request
Priority:normal
Assigned:Unassigned
Status:closed (works as designed)

Issue Summary

Hi all,
I'm maintaining a nodequeue where translated versions of the nodes are available.
In the setting for the nodequeue - "Treat translation nodes as a single node" is selected.
The logic here is that if a queue is re-ordered/added to, then that would be reflected in all languages.
Is that correct?

Using the default view provided by nodequeue, only Nodes in English [base language] are provided.
path nodequeue/2
I added the view to a menu, and then translated that Menu item to Spanish.
However when view is displayed in Spanish
path es/nodequeue/2
no nodes are displayed.

Expected behaviour [from me !] would be to display the translated versions of the nodes.
Is there anyway to configure that behaviour?

Regards
Alan

Comments

#1

subscribe

#2

I should add that I'm using i18nviews module, with the 'Content negotiation' filter in the views.

#3

Hi Alan,

I'm facing the same problem as you, at this point I still can't quite figure out how Nodequeue handles translated nodes. The only way I managed for the nodes to show up in a single nodequeue view in two languages was to:

  1. Create node in one language and add to the queue;
  2. Create node in the second language and add to the same queue;
  3. Assign the translation relationship between the two nodes.

I was somewhat surprised as I read your post, since you mention a "Treat translation nodes as a single node" setting which I can seem to find in any Nodequeue configuration form. I'am also using version 6.x-2.9, so can you tell me where can I find that setting?

Thanks in advance,
Rolando Isidoro

#4

Hi Ronald
That setting is right at the bottom of the settings page for the individual nodequeue.
[I went with a different solution in the end, but I might be back to this issue in the future]

#5

Hi Alan,

after writing my reply, I noticed on my site status report that in order for nodequeue to handle translations I needed to install the Translation helpers module and so I did.

The "Treat translation nodes as a single node" setting is now showing at the bottom of the create/edit nodequeue form, but after enabling it the result remains the same, I still have to manage translation nodes in the queues on my own.

Can you tell me which solution did you end up with?

Regards,
Rolando Isidoro

#6

Hi Rolando
We didn't use nodequeue at all in the end.
Built some extra views.
But we may have to revisit.

#7

have the same here! i have an option called "Add translations of content to the queue as a group" at the bottom of edit nodequeue but i cannot change it..

#8

i don't know why it is not editable while on another instance of drupal it's ok. but i cannot reach other nodes than in default language that way.. well, not yet i hope :)

#9

Hi all,

Same problem here.

Also tested with latest dev version.

Jérémy

#10

Hello,

I've the same problem and I found why we don't have the nodes in another languages.

To get nodes from a nodequeue you need add relationship in the views if you've activated "Treat translation nodes as a single node" option you'll have only the source node in the nodequeue.

Until there it's normal, but the problem it's when you want show nodes from another language, because they aren't part of nodeque, I mean they aren't in nodequeue_nodes table, they're not selected by the relation.

I tried to find a solution with different configs, like Node translation : Sources and etc.. without success. I guess the only way how to fix it, is to add a possibility to tell nodequeue that the children nodes from source are also in nodequeue_nodes.

Regards,

#11

Hi again,

I was starting to do a smartqueue module for languages, that can help us in this issue and finally somebody else already start to do it. You can find it there, I installed and try it's work fine for me :)

http://drupal.org/project/smartqueue_language

Regards,

-- Yvan

#12

hi, you should look at this http://drupal.org/node/433930#comment-2759852.
i was very helpful to me.

#13

Status:active» fixed

Marking as fixed based on #12 and until proven otherwise :)

#14

Status:fixed» closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

#15

Version:6.x-2.9» 7.x-2.x-dev
Category:feature request» support request
Status:closed (fixed)» active

The Source Translation trick sort of worked for me too. But it shows only nodes which are already translated. Nodes without translation are not shown. I want simple thing: one multilingual limited (Queue size) nodequeue. So Internalization must be setup to "Treat translation nodes as a single node". And then display nodes in queue based on the current user language. It should not be dependent on whether the node is translated or not.

Example:

  1. I've put some nodes in English in my nodequeue.
  2. I setup the "Source Translation trick", and it returns nothing cause none of nodes have translation or better to say there is no "Source Translation" for nodes which is required ("Nodequeue: Queue" is required and got "realitionship" with "Content translation: Source translation").
  3. Then I translate one node to Spanish.
  4. When switching languages there is only one node (translated one) shown in my nodequeue.
  5. Then I translate one more node to Spanish. And there are show two nodes for English, two for Spanish.
  6. Same when I put untranslated node in Spanish to nodequeue. Until I translated it its not shown in nodequeue.
    I want to show all nodes in queue and than filter them via views lang filter Content translation: Language (= Current user's language).
    I have tried to use "Content translation: Translations" setup to show ALL translations.
    It really returns all nodes from my nodequeue, but setting up lang filter did nothing, still shows all translated nodes regardless of filter settings.
    What I'm missing?

    My setup:
    Drupal 7.0
    Internationalization 7.x-1.0-beta5
    Translation helpers 7.x-1.x-dev
    Nodequeue 7.x-2.0-alpha1

#16

Here's what worked for me:

You'll need 3 relationships & some funky filtering.

Relationships

  • Add the Content Translation: Source translation relationship.
    • Uncheck "Require this relationship".
  • Add the Nodequeue: Queue relationship
    • Select "Source translation" in the "Relationship" dropdown
    • Give it an identifier of "queue translated".
    • Uncheck "Require this relationship".
  • Add the Nodequeue: Queue relationship.
    • Select "Do not use a relationship" in the "Relationship" dropdown
    • Give it an identifier of "queue untranslated".
    • Uncheck "Require this relationship".

Filtering

  • Add "Nodequeue: In queue" filter
    • Select "queue untranslated" in the "Relationship" dropdown
    • Select True for "In queue".
  • Add another "Nodequeue: In queue" filter
    • Select "queue translated" in the "Relationship" dropdown
    • Select True for "In queue".
  • Create a new filter group that "or"'s the 2 filters you just added together and then "and"s them with any other filters you have (e.g. the language filter).
    • HINT: In the actions dropdown next to "Filter criteria", select "and/or" to get to the filter group configuration screen

#17

I can follow #16 only up to the very last step. How do I create a filter group in Views 3?

#18

Click the "and/or" option in the dropdown next to "Filter criteria" on the views configuration screen to create the filter group.

My screen looks like this:

screenshot

AttachmentSizeStatusTest resultOperations
Screen Shot 2011-10-11 at 8.16.45 PM.png57.5 KBIgnored: Check issue status.NoneNone

#19

Stevik THANX a LOT!! It works!! Great!

Hint for others:
For correct SORTING set SORT CRITERIA to

(queue untranslated) Nodequeue: Position (asc)
(queue translated) Nodequeue: Position (asc)

Stevik THANX a LOT again!

#20

Thanks Stevik for the clear, structured instructions and mattez for the additional hint!

I managed to get it right at the second try. I misread your post as if the additional filters, where you used the language filter as example were optional and the selection would be done through the relationships.

So for the folks to come - make sure you also set the language filter:

Content translation: Language = current user's language

#21

Component:Code» Documentation
Status:active» closed (works as designed)

Just do this for seeing translated nodes based on currents user language.

Relationships

Add the Content Translation: Source translation relationship.
Uncheck "Require this relationship".
Add the Nodequeue: Queue relationship
Select "Source translation" in the "Relationship" dropdown
Uncheck "Require this relationship".

Filtering

Filter By users current language

With this and with #16 and #18 all is done,
I close the issue

nobody click here