This post is old, but still incredibly useful @GreenFlux!
Just for fun and to improve the user search experience, I propose a “boosted” version using Gemini features in Google Sheets.
Here is the result:
Google Sheets Setup
Here is how I set up the columns to generate the keywords automatically:
1. Name (Column A) Contains the FontAwesome icon name (e.g., address-book).
2. Language (Column D) The target language code for translation (respecting Google Translate requirements).
Examples:
ar, bn, cs, da, de, el, en, es, fi, fr, hi, hu, id, it, iw, ja, ko, nl, no, pl, pt, ro, ru, sv, th, tr, uk, vi, zh-CN, zh-TW
3. Translation (Column E) Translate the English name to the target language.
=GOOGLETRANSLATE(A2, "en", D2)
4. Key Words (Column F) This is the magic part! I use Gemini to generate synonyms in the target language to facilitate the search.
=GEMINI("Find maximum 5 synonyms to facilitate search. This is an icon name. The goal is to allow users to find this icon using these keywords. Separate the answers with ', ' and strictly include the original name. Respond in the received language. You will receive: Language and keyword", D2:E2)
5. Icon Visual (Optional) Just for visual reference in the spreadsheet.
=IMAGE(CONCATENATE("https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/svgs/solid/", A2, ".svg"))
Why this approach?
Standard searches often rely on exact matches against the technical filename. If an icon is named bars, a user searching for “menu” or “navigation” won’t find it.
By using Gemini, we generate a semantic tag list (synonyms) for each icon. The FILTER expression then searches within these expanded keywords. This allows users to search using natural language and concepts rather than technical terms, significantly improving the UX.
AppSheet Configuration
To use this in your app, you can use the following expression in the Suggested Values of your Enum or selection column:
FILTER("ICONS", CONTAINS([Key words], [_THISROW].[Input]))
Note: Ensure the Key words column is defined as Text or Long Text and Name as Key in your Data structure.