Weekly i18n Chat Notes – September 22, 2015

Earlier today a handful of us gathered to talk about life, the universe, and things that may or may not relate to the metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team and i18n. Here’s a bit of what we talked about:

  • Plugins: Last week imported our first set of plugins into translate.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/! Hurrah! Huzzah! 🎤⬇️ And because we were feeling good about it, we also sent out emails to the second batch of pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors (~200 plugins). That import will start today or tomorrow and we’ll send out emails for the next import soon.
  • Translate: The stats page got some love with the addition of the Waiting column (see #1202) and some improvements to the design (see #1238).
  • Theme Directory: @obenland started work on the Translations section by adding a link to translate any theme to the page. Check out the Twenty Sixteen theme page for an example.
  • WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more.: Set things up so the WordCamp theme can be translated (see #1076), pending deployment by the WordCamp team.
  • Forums: There was a mention that the Italian forums are not working. @ocean90 will investigate. Additionally, we’ve had a couple of requests for new forums. We think it’s okay to add new ones for testing purposes. For example, an RTL forum would be appropriate.

For the next week, we’re planning to work on the following:

  • Import and language pack status of plugins sent to a SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
  • Sorting / FilterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. finished up (or whatever we call it).
  • Streamline the process of adding per-project translation editors (see #1237 which requires #1240).
  • Work on updated design for project pages in Translate.
  • Possibly: More Theme Directory translation section additions.
  • Possibly: Rosetta headers fixed up (see #1201).
  • Possibly: Job system started.

See y’all next Tuesday at 11:00 UTC!

#forums, #i18n, #l10n, #meeting-notes, #plugins, #stats, #theme-directory, #translations, #wordcamp-org

Theme Directory Stats

Since my last post

After I wrote my post mortem for the Theme Directory launch, the last three weeks were spent fixing bugs and adding in enhancements that were not deemed launch blockers.

On the admin side a custom post status for suspended themes was added, as well as a custom view for themes that have new version pending. Also, there is now a simpler way to approve new versions and set them live from wp-admin. On the front-end the JS and CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. files that power most of the Directory were merged, removing the direct THX dependency that we had (it broke parts of the directory during betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.). Development on the Directory will not stop of course, but it will be part of ongoing maintenance and feature development.

Analytics Stats

At the beginning of the project there were no formulated stat goals. Personally, my goal was not to drop in stats too badly, in a way that would suggest a major flaw in the Directory’s new structure. I’m happy to say that with the exception of the Commercial Themes page, that is the case—we even saw a lot of nice improvements!

Let’s start with the negative. The Commercial Themes page saw a drop of ~40% in visitors between the old Directory and the new. That number was at 60% right after launch, but it recovered and continues to recover with some adjustments we made to the link placement on the site. We concluded that the image-heavy (instead of text-heavy) design is likely causing people to use the directory and not click on sub-links as frequently as they did with the previous design, and we’re satisfied with the preliminary result of our mitigation.

Since we were about to complete change the markup and technical makeup of the Directory, my biggest concern going into this project was to lose page-rank and experience a drop in overall visitors. Thankfully this is not the case, visitor numbers remain constant, as are the search engine referral numbers. Another KPI that remained constant were theme downloads, which also indicates that there were no bugs on the Themes APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. and download handler side on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/. Given the level of optimization of the old Directory, I consider those numbers a success! It’s hard to improve a #1 page rank, but with added semantic markup and more structured data around themes it should definitely be solidified.

The most overwhelming result has been the huge jump in user engagement though. Users stay longer on the site, look at a lot more pages, and are way less likely to leave without any interaction. Comparing the week before the relaunch with this past week, session duration is up 9%. The amount of pages a user looks at is up 34%. And the overall bounce rate went down from ~30% to under 10%. Even on the homepage, where the bounce rate was at around 45%, we can see that drop by 2/3.

Overall this is a nice step in the right direction. I’m looking forward to further improved numbers down the road, and easier to achieve improvements after the move to WordPress.

#theme-directory

New Theme Directory

The update to the WordPress Theme Directory from ten days ago marks the first time since its inception in 2008 that it has seen a major overhaul. The work on it is not done, but I want to take a few minutes and outline the objectives, what we gained from the update, and what still needs some work in the future.

The Goals

The WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ infrastructure is almost as old as WordPress itself, with lots of interdependencies, running a mix of GlotPress, an old version of bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org., BuddyPress, and WordPress. Since the Theme Directory was still based on bbPress, one the main goal was obviously to have it use WordPress. It was also in dire need of a design refresh and improvements to its search-ability.

The Gains

The Directory is now finally running on WordPress! It’s part of the WordPress.org multisiteMultisite Multisite is a WordPress feature which allows users to create a network of sites on a single WordPress installation. Available since WordPress version 3.0, Multisite is a continuation of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued and its features were included into WordPress core.https://codex.wordpress.org/Create_A_Network. network and reaping all the benefits that come with that. With the move to WordPress and the resulting data format change, the theme downloader was also rewritten, along with the info and update check endpoints of the Themes APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways., and the script that syncs theme review results. User profiles and theme ratings also saw a small update.

For the first time, the Directory is now open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. and the theme and plugin that do the heavy listing can be viewed, checked out, and contributed to on metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. and svn!

Front-end

The front-end is largely based on @matveb‘s work on THX and the theme installer, which results in a now consistent user experience between WordPress’ admin interface and the Directory. It also lets us take advantage of those super fast searches and front-end query caches that we have come accustomed to. The move also came with free improvements to the tag filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. (tag permalinks!) and introduced author “archives”. THX was built for the backend, so there were some adjustments needed to make all pages search engine accessible and to make URLs then also consistently work between the server and JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. side.

The pages from the left hand navigation were drastically simplified and merged, leaving us only with preamble page to the uploader, the uploader itself, and the page of commercial theme shops.

Commercial Theme Shops

Theme shops used to be a multidimensional array where each change meant a code change that had to be committed. They finally became a Custom Post TypeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. of their own, vastly simplifying their administration. If you look at their page, you’ll also notice that it reuses the regular theme UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing., nicely making them blend in with the rest of the Directory.

Needs more work

We wanted to get the new Directory into the hands of users as fast as responsibly possible, but that doesn’t mean that it’s finished or doesn’t need any more work. On the admin side a custom post status for suspended themes will be added, as well as a custom view for themes that have new version pending. Eventually there will probably also be a simpler way to approve new versions and set them live from wp-admin. On the front-end the JS and CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. files that power most of the Directory will be merged, removing the direct THX dependency that we currently have (it already broke parts of the directory during betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.), and also removing two file requests on a page load.

The #1 feature request for the Theme Directory is probably multi-author support. With the move, this is going to be infinitely easier to achieve and will also be available shortly. This should also make it possible to change authors on a theme without too much overhead.

Finally, the Directory is meant to also be made available to rosetta sites. The theme and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party are fully localized and already translated in a good amount of languages, it’s down to figuring out how we can integrate that site of the WordPress.org network with localized subdomains.

#theme-directory

After a bit of a longer two day…

After a bit of a longer two-day rollout than planned, the new theme directory is now live and functional.

If you find bugs (and we’ve already found a few), then please report them on the meta.tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. using the Theme Directory component to flag them up. But please, do make sure somebody else hasn’t beaten you to the ticket. Here’s the list of current tickets for the theme directory: Meta Trac

#theme-directory

Theme Directory Launch Checklist

Tomorrow we’re going live with the new Directory! We’ll start going through the checklist February 25th 2015 1700 UTC.

  • Disable uploads on bbpressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. themes. (@Otto42)
  • Disable themes.tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. sync process. (@Otto42)
  • Migrate themes to WP.
  • Switch over Directory to not use APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways..
  • Test themesnew API.
  • Test themesnew downloads.
  • Switch over downloads and API scripts.
  • Switch over URLs and redirect.
  • Switch over review sync script.
  • Enable theme uploads in directory pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party.
  • Notify Admins the ban has been lifted.

Disable uploads on bbpress themes.
Replace the uploader page with an “uploads temporarily offline” message.

Disable themes.trac sync process.

  • Announce launch in WPTRT meeting.
  • Commit an early return to sync-theme-review-results.php.
  • Inform Admins directly: No setting themes live between February 25th 2015 1600 UTC and the new directory is live.
  • Channel notification in #themereview.

Migrate themes to WP.
Run migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. script in /bin/themes/

Switch over Directory to not use API.

  • Commit https://cloudup.com/ckhD3Zl0Iso
  • Test on /themesnew.

Test themesnew API.

  • Switch to use themesnew.php on sandbox.
  • Test /wp-admin/theme-install.php locally.

Test themesnew downloads.

  • Switch to use themesnew.php on sandbox.
  • Test downloads locally and on /themesnew.

Up until here, no real damage is done, marks the last chance to postpone the launch.

Switch over downloads and API scripts.
mv index.php old-api.php
mv themesnew.php index.php

Switch over URLs and redirect.

  • Commit /themes removal.
  • Notify @seanosh about making the switch.
  • Commit mu-plugins commercial change.
  • Test the hell out of /themes.

Switch over review sync script.
mv sync-theme-review-results.php sync-theme-review-results-old.php
mv sync-theme-review-results-themesnew.php sync-theme-review-results.php

Enable theme uploads in directory plugin.
Remove custom message and uncomment upload handler.

#theme-directory, #themes-api

Theme Directory Update 2/23

Last week I fixed most of the fixable tickets for the Theme Directory, switched to using WP_Query instead of the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. for server-side rendering of themes, updated the WordPress-based Themes API with changes from the bbpressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org.-based one, and finished the import script for the new directory. @otto42 committed the new reviews code today, so we should be able to get those integrated today or tomorrow.

Which means that we’re going to launch on Wednesday or Thursday!

There is still a lot more work to be done, but everything that’s remaining can be added, changed, or improved with the new directory active. Most importantly we want to make it available to language sites, so that we have an internationalized theme directory, and there will be more to be done around that.

#theme-directory

Theme Directory Update 2/12

The two major parts of my week were fixing bug reports that came in after my post on make/themes, and getting started with adopting @melchoyce‘s modal design (Modal == modal + single). With the exception of reviews and support, I tried to stick as close as possible to the mockup. While I’m obviously not done yet, a first pass however is live (including some mobile styles).

@otto42 made progress on the rating integration, working on a solution that lets us use existing ratings/review with limited migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. efforts. He projected to be done with that around Wednesday next week.

Next week I’ll be focussing on switching the server-side rendering of themes from using the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to using WP_Query directly. Towards the end of the week I’d also like to have ratings/reviews integrated and my work on the modal finished.

#theme-directory

Theme Directory Update 2/5

A very busy week with lots of improvements! These are some previously mentioned TODOs that I was able to scratch off the list:

  • Rewrote the Theme APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.’s update endpoint to work with WordPress.
  • Made synchronizing theme review results a cron job.
  • Made sure uploaded theme files are always deleted, no matter the outcome.
  • Added navigational links to Upload and Commercial pages (r1211).

Additionally, I removed the Admin approval workflow form the Directory pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, since this is handled entirely on Themes TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/..

I also opened the floor to bug reports from the community. After doing that at last week’s update here with limited success, I added another call for volunteers on make/themes which resulted in 15 tickets so far.

Next week I’ll be working though the tickets, as well as @melchoyce‘s Directory mockups, and @otto42 is still working on theme reviews/ratings.

#theme-directory, #themes-api

Theme Directory Update 1/30

It’s been two weeks since my last update on the theme directory. I had a chance to get my downloader and Themes APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. code reviewed by @dd32, but between attending an Automattic meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area., a WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more., and taking a couple of days off, it was hard to continue the pace of the weeks prior.

  • @otto42 started working on migrating theme reviews from bbpressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org. to WordPress.
  • Chatted with @samuelsidler and @otto42 about how we want to make the switch from old to new.
  • I tracked down a bug with jumping modal contents on small screens.
  • Added smooth scrolling for iOSiOS The operating system used on iPhones and iPads. devices in the theme modal.
  • Spent a day trying to figure out a way how I can prevent background scrolling on iOS when the theme modal is open.

If anyone has a fix for the last mentioned bug, please let me know. My CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. and JS foo is failing me on this one, I have not idea how to fix it.

I think the directory (with the exception of the theme uploader) is to a point where it makes sense to open it up to bug reports. If you find anything wonky and out of the ordinary, please feel free to file a ticket over at meta.trac, and assign it to the Theme Directory component. Thanks so much for your help!

#theme-directory

Theme Directory Update 1/16

This week I finished converting the theme download script and the info endpoint of the Themes APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.. While working on the Themes API, I added some documentation to the Codex page and published a post about the changes to the API that were needed for the new directory.

Additionally I improved the directories front-end, mostly around single theme views and server-side rendering of themes. Now tag “archives” and author pages are working and testable. I also changed the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org structure for searches from /search.php?q=:query to /search/:query/ (more context) to align it with other parts of the directory.

Still to do:

  • Rewrite the Theme API’s update endpoint to work with WordPress.
  • Make synchronizing theme review results a cron job.
  • Make sure uploaded theme files are always deleted, no matter the outcome.
  • Import existing themes and ratings from bbpressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org..
  • Make the theme and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party available for translations.
  • Test localized versions.
  • Possibly add navigational links to Upload and Commercial pages.
  • Actually make the switch.

#theme-directory, #themes-api