Some cosmetic problems remain, and possibly some functional ones as well, but I’ve checked off the major boxes on my to-do list for this site, and I’m ready to invite a few people to start using it.
Some development notes:
Job offers and links are implemented using custom post types, with Gravity Forms for the submission forms.
User profiles are implemented in BuddyPress. This has been the most difficult feature to implement, and I’m still not entirely happy with how it has turned out. I had to do more hacking than I’m happy with to get the custom profile fields to work with the translator/interpreter search, because BuddyPress doesn’t give me any way to manage the “slugs,” meaning I could have field titles that either look right to humans or look right to machines, but not both. Wound up using machine-readable field titles, created a function that fixes these to be human readable, and invoked this function wherever the field titles are displayed on screen.
BuddyPress is overkill for this feature, but it has a significant developer base, and if I choose, it will let me add a lot of additional features to the site relatively easily.
The theme is a child theme of WordPress’ default twentytwelve—the changes are mostly to the header, and a bunch of special-casing to handle different content types and BuddyPress.
The invitation-code functionality was coded up by Jeremiah Sturgill. This makes it easier to rope off added-value areas of the site for translators without preventing random people from registering for accounts.
I wound up spending a lot of time playing around with different configurations. It seemed that for every feature I wanted to implement, there were several ways to approach it, each with its pros and cons, and the choice came down to a question of “which problems will be the easiest to overcome?”