Team blog: Developers

A nicer language selector

The language list was starting to get cluttered (thanks to translators!), so we’re now using a dropdown, which should make things more manageable for some time to come.

Language selector dropdown

If you frequently change languages, two tips:

  • You can access the dropdown with the access key “L”, e.g., “Alt+L” in Chromium.
  • By typing the language code inside the dropdown, you can quickly select your favorite language, no matter what language the user interface is currently in.

(Note that this change adds a new interface text for the language button, which will take a little while to get translated into all the supported languages.)

  Permanent link

Search features deployed

We now have the first round of search features. This includes autocompletion (requires JavaScript):

Search autocompletion

And it includes full-text search across reviews, including highlighting:

Full-text match

See the search page for some tips on valid search operators (a full technical breakdown of supported operators can be found here).

A note on language support:

  • If you’re searching in a language other than English, content in that language will show up.
  • Content in English will always be searched.
  • In addition, we make certain fallback assumptions, e.g., Brazilian Portuguese also searches European Portuguese.

In future, it may be desirable to make those search options user-configurable, as well.

The search feature is based on ElasticSearch, an open source search backend used by many websites, including Wikipedia.

As always, please don’t hesitate to report bugs, or find us on #lib.reviews if you want to chat.

  Permanent link

ようこそ: Japanese is live!

Thanks to Higa4, the Japanese language version of lib.reviews is now live (preview).

Is your language still missing? See our earlier blog post for instructions on how to get involved in translating lib.reviews.

  Permanent link

Pretty URLs: Round two

Review subjects now have short URLs as well, such as:

https://lib.reviews/archive-webextension

Old “/thing/ID” URLs will continue to work. The short identifiers (“slugs”) are derived from a label associated with a review subject, and only in the original language that was used to create it (i.e. edits to translations will have no effect). In the absence of a label, the “/ID” URL schema is used.

If a thing with a given label already exists, a suffix like “-2” is automatically added. If a label changes, a redirect is kept in place. For now, we don’t limit the number of redirects/aliases, as we can trace a user’s edits and can simply undo excessive redirect use.

  Permanent link

Üdvözöljük: Hungarian is live

Thanks to BanKris, the Hungarian language version of lib.reviews is now live (preview).

Is your language still missing? See our earlier blog post for instructions on how to get involved in translating lib.reviews.

  Permanent link

Pretty URLs: Round one

To make lib.reviews more user-friendly, URLs to frequently accessed items will be increasingly human-readable, starting with team pages. Teams now have URLs such as:

https://lib.reviews/team/nonprofit-media

… instead of the more unwieldy:

https://lib.reviews/team/e7b911bb-9a13-4066-a70c-573d6d9ac7e7

The team name is translated into what we call a “slug”, a lower-case, hyphenated version stripped of invalid characters. Rename a team in its original language, and we’ll automatically create a redirect for you.

We’ll apply a similar scheme to “things” (review subjects), and perhaps to individual reviews/blog posts as well.

Pretty URLs are one major blocker before we move on to the most-requested feature: search.

  Permanent link

Welkom: Dutch is live

With big thanks to Effeietsanders, Hex, Keunes and Siebrand, the Dutch language version of lib.reviews is now live. Thanks also to Siebrand for preparing a pull request to enable the new language.

Is your language still missing? See our earlier blog post for instructions on how to get involved in translating lib.reviews.

  Permanent link

Preview a language by adding ?uselang=<language code> to the URL

You can now preview any user interface/content language by adding

?uselang=<language code>

to the end of the URL. This is useful for sending users links in a given language, and for testing translations. It only applies to the page you’re loading (but can be used to compose a review in the given language).

Example:
https://lib.reviews/?uselang=es - frontpage in Spanish

The list of language codes can be found here; some aren’t activated yet since they’re incomplete.

  Permanent link

Benvenuto: Italian is live

Thanks to translatewiki.net community members Anto, Beta16 and Fitoschido, lib.reviews is now also available in Italian. This brings the total number of supported languages to 13. Is your language still missing? Please see this earlier blog post for information how to get involved. Thanks to all translators who continually keep these translations updated, as well!

  Permanent link

Opening up: community-controlled growth with invite links

lib.reviews is still in early development (we started work on the project in the summer), but we have enough basic functionality now to open up a little bit more. More than 100 reviews have been written on the platform to date, we have support for multiple languages, and we can organize reviews in teams (a bit like subreddits).

To get a few more folks involved, any member of the community can now help it grow. Anytime you write a review, you earn an invite link that you can share with someone you trust. They can use it to sign up on the site, join your favorite teams, and write reviews. Just let them know that things are still rough around the edges and basic features like search are still to come, so they aren’t too disappointed. :) Development help is, of course, always welcome - this is a true open source project.

We track who came through what link, so if we see anything nefarious going on, we can respond fairly quickly. But mostly, we look forward to meeting new folks interested in joining our quest to review the world :)

  Permanent link

Older blog posts