culturecreates / footlight-app

Footlight CMS Front-end
https://cms.footlight.io
3 stars 0 forks source link

Translating events/people/places/orgs - multiple languages #1371

Open saumier opened 1 month ago

saumier commented 1 month ago

User Story - Translating events/people/places/orgs

As a contributor to a multi-lingual website, like NAC Osaka, I specialize in one language (Japanese), or maybe 2 languages, and collaborate with my colleagues, who each specialize in their respective languages, to translate all the literals that will appear on websites. My work is ongoing and needs to happen in a timely fashion, sometimes in batch or sometimes last minute as changes occur. I focus on translating names, descriptions, ticketing notes, and Taxonomy concept names. I don't really need to translate any of the metadata like disambiguating descriptions. At the end of the day, I should feel confident that everything is translated, including last minute changes.

People Places Orgs

When I work on people, places and organizations to translate them into the language I specialize in, I need to see which entities are not translated, so I can work on those. My work happens in parallel with my colleagues.

Events

When editing events, I need to see which entities are not translated. Unlike other classes of entities, I may be editing an event after one of my colleagues has already published the event. If a last minute show is added, it will already be published before I have a chance to work on the translation. If a description is changed in one language, it may need to be re-translated in the other languages.

Suggestions for UI enhancements

Driven by the user story above, here are some ideas for enhancements for discussion.

1. Set user's "content language"

Allow a user to select "content language" in their profile settings EVEN WHEN the language is not one of the UI languages. a. This will make it easier to see which entities are not translated in the lists and spot mistakes. b. The read-only page should default to display my content language, so I don't always have to click on the tab to switch from english.
c. When I open the edit page, the tabs should default to my content language so I don't always have to click them to switch.

2. Only update language of touched fields

Saving an entity should only save the literals of the fields that I have clicked into (touched), and not all literals that were untouched. This will allow the translator to work only on their expert language.

3. Add a filter in the list views of events/people/places/org to select the name/description field missing a language.

The filter should allow a user to view the list of events/people/places/orgs that need translation.

4. Add a sort by "date modified"

The "date modified" property can be used to see if changes have happened to an event/person/place/org since I last worked on translations. I can then check if my translations need to be updated as well.

saumier commented 1 month ago

@troughc Please take a look.

saumier commented 1 month ago

@troughc I modified the user story so it does not contain solutions, and I added a section outside of the user story with ideas for solutions of which some or none can be chose for implementation.

troughc commented 1 month ago

Thanks @saumier. As discussed, I am going to see about retaining the language literal as is until someone explicitly edits/updates the content in another language (inherited content from another language). That way every user that views an edit form after saving can be more aware.

troughc commented 1 month ago

@SyamBabu-M regarding, retaining a language literal in a field until someone explicitly saves it as a new language literal: this is the ticket I was referring to. I would like to create an issue that is linked to this user story, that you could use to guide the new logic that needs to be implemented. Stay tuned.

troughc commented 1 month ago

@saumier can you explain this a bit more:

  1. Add a filter in the list views of events/people/places/org to select the name/description field missing a language. The filter should allow a user to view the list of events/people/places/orgs that need translation.

Do you mean we should add a filter that would display only entities that have language literals missing (i.e. entities that are using fallback languages)?

saumier commented 1 month ago

@troughc Yes. Based on the hypothetical user story, wouldn't it be useful for a translator to have a way to list the entities missing a translation?