Page MenuHomePhabricator

Users needs a way to navigate pages that aren't in their user language
Closed, ResolvedPublic

Description

Background/Goal

Wikifunctions is a multilingual platform. This means users can contribute, edit, and view content in any language/all languages. This is said with the understanding that the distribution of languages will not be equal since, at least in the beginning, we won't have translations in all languages. This means the majority of the platform's content will require fallbacks in order to display text and notation in such a way that all users can navigate all pages (i.e. a page in a language they do not understand).

The reality is our early adopters will primarily be people who read and write in English. This does not mean Wikifunctions is an English platform that is translated into other platforms. It will be designed and built so that every language can be the seed language for any object, and all functionality is possible in every language. There is no primacy of any language baked into the design of the platform. People can make functions that don't make sense in an English speaking culture. For example, if there is no way to translate a Hausa function into English, that is not a restriction on the Hausa function.

Example story

If there is a function for calculating the volume of a cylinder that was written in Portuguese, fully translated into Spanish, and partially translated into French, then any users who can read Portuguese, Spanish, or French can find, use, and edit it. If an English user who does not understand Portuguese or Spanish but has indicated French as a second-language finds this function (let's say the function is referenced somewhere on the internet), they will see whatever labels have been translated into French as the fallback, and notation indicating it is a fallback. All the other labels will only have the fallback notation.

User stories

  • As a Wikifunctions function user I need a way to understand/navigate/engage with whatever documentation, test cases, and input labels exist for a given function, so that I can use it properly.
  • As a function editor I need a way to understand/navigate/engage with whatever documentation, test cases, input labels, and implementations exist for a given function so that I can edit it if necessary.
  • As a non-technical contributor to Wikifunctions who’s interested in a specific set of functions, I need a way to know what content is missing in my language so that I can translate labels.

Considerations

  • Fallbacks are only for when text is missing in the user language
  • We don't want to clutter the page

Acceptance Criteria

  • A feature that encourages users to provide the translation of a label
  • Empty states for scenarios where there is no fallback language
Resources

Link to Figma file

Event Timeline

@DVrandecic is the example story correctly written?

@DVrandecic and thoughts on the user stories? I'd like to create a realistic scenario in which someone would need the fallback to do an important action so that I can sketch out different ideas for that scenario.

Brainstorming

  • Look at Instagram for ideas
  • Browse design system for possible components
  • Look at typographic styles

More brainstorming

  • Google translate

Think about the categories of other kinds of tools you want to be looking at e.g. translations that are happening within a tool
If you have a Wikipedia page about God, it might say 'God' in a few different languages
Think about RTL/LTR

Scenarios

  1. There is a translation in the user's fallback language ---> show them fallback notation
  2. There is no translation in the user's fallback language ---> show them an empty state
  3. The user has no fallback language ---> show them an empty state

Regarding the last scenarios, I'd suggest:

  1. There is a translation in the user's fallback language ---> show them fallback notation
  2. There is no translation in the user's fallback language, but in some other language ---> show them fallback notation
  3. The user has no fallback language, but there are labels in some language ---> show them fallback notation
  4. There is no label in any language --> show them empty state

I.e. we rather show what we have than the empty state.

thanks @DVrandecic ^ I think that's what I'd landed on since the last iteration.

You can see below that I've revised the user stories to more accurately represent the scenarios in which fallbacks will be used.

I removed the reference to documentation since fallbacks don't apply there, nor will they apply to examples/test cases on the 'About' page of a function.

As a Wikifunctions function user I need a way to understand/navigate/engage with whatever labels exist for a given function, so that I can use it properly.

I changed "function" to "ZObject" so that we design fallbacks for all object pages, not just functions.

As a Wikifunctions technical contributor I need a way to understand/navigate/engage with whatever labels exist for a given ZObject so that I can edit it if necessary.

No changes to this one.

As a non-technical contributor to Wikifunctions who is interested in a specific set of functions, I need a way to know what content is missing in my language so that I can translate labels.

Let me know what you think of these revisions!