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