Founded in 2004, uShip is one of the world's largest and most trusted online transportation marketplace which serves freight, household goods and vehicle shipping markets. Consumers and businesses can compare and book upfront quotes, name their own price or receive auction-style bids from over 800,000 customer reviewed service providers, ranging from independent owner-operators to the largest freight carriers and brokers.
Launched in 2004, Austin-based uShip operates globally with localized sites in the U.S., Canada, The Netherlands, UK, Germany, France, Spain, Austria, the European Union and Latin America.
Every 30 seconds a new shipment is listed on uShip. From cars to cranes, freight to furniture, and households to horses, people and businesses use uShip because it's easy and affordable to price, book, and ship everything no matter if it's going local or long distance.
To support its presence in 18 countries and expansion to new markets, uShip created an in-house localization solution which was largely based on the .NET framework. This involved a bespoke web application and a storage schema for the final translation storage. uShip’s owntool modeled only the storage and retrieval of the data, but not the translator's workflow. Translators--lacking a way to keep track of their work--and developers--lacking time to improve the tool--resorted to spreadsheets to keep track of their localization and translation processes. Although the tool served its purpose for a long time and required very little maintenance, uShip's recent partnerships required them to localize into additional languages and enlist external translators to aid them with the process. Marina Parisi, uShip's l10n and i18n Manager, quickly identified several key difficulties with its existing system:
- Poor representation of translation workflow
- Poor usability for translators
- Lack of change audit
- Limited integration with continuous deployment
- No translator-controlled in-app preview.
With more than 20,000 content keys and RFC-4646 language identification tags understood only by a few current employees, something had to be done to alleviate the above issues and help uShip's transition to a microservices architecture.
When uShip began investigating the market for a solution to replace its in-house l10n and i18n tool, it didn't take long for them to find several solutions. Being a continuous integration and continuous deployment shop, each time a developer would commit his code to the version control system, the code would be built, tested, and deployed into all uShip's pre-production and production systems.
The solution had to meet the following criteria:
- Enable partner-specific terminology via “custom locales”
- Explicitly model translator workflow
- Provide an audit mechanism
- Provide reliable and translator-controlled continuous deployment integration
Phrase stood out from 4 competing products with its well-designed web service API. From the beginning, Phrase proved to be an “API first” product which appealed to uShip's developers who also relied heavily on their own public API. What they quickly learned is that the web service API was not limited to uploading and downloading resource files. In contrast to the competing offerings, Phrase’s API offered a RESTful representation of keys, tags, and locales, together with the ability to discover fine-grained changes to translations. uShip's CTO Nick Parker and his team of advisors and consultants unanimously concurred that Phrase was the right choice.
“Phrase è la soluzione più facile sul mercato per i developer e per il continuous deployment. Dal momento in cui abbiamo iniziato a cercare una soluzione, Phrase si è subito contraddistinto.”
In under 3 months, uShip successfully replaced its custom, legacy localization tool with Phrase. “The most time-consuming part of the process wasn't the integration of Phrase. That was the easy part. The hard part was understanding and reworking the existing old code that relied on idiosyncrasies of the preexisting system,” said Ed Vinyard, uShip’s Software Architect responsible for transition to a microservices architecture.
When asked about how much time their editors and translators are saving with Phrase, Vinyard said, “A lot,” and continues, “Our lead translator doesn't need to copy and paste each translated key into our homemade solution anymore. Phrase’s translation memory feature remembers previous translations and offers matching results while translating which saves a considerable amount of time for our translators.” With Phrase, uShip's l10n and i18n Manager has a much better overview of all translators and their activities and has a clear audit trail of all translation changes. Additionally, translators have completely stopped using spreadsheets and are now able to reliably preview all changes and new translations in pre-production environments, as well as to control which ones are promoted to production environment.
“It worked completely out-of-the-box, we were able to quickly integrate it with our automated development and it immediately proved its worth by supporting one of our company's key partnership.”
Aside from saving a considerable amount of time for translators, Phrase also saves time for uShip’s developers. Vinyard said “My guess is that we saved months of developers' time just to meet our new specific needs. Even more if you consider the benefits we wouldn't include if we had to write the code ourselves, such as the improved search functionalities and great performance.”
The Phrase In-Context Editor can be integrated within almost any web application and provides the possibility to translate content directly on your site.
As software projects grow and become more complex it helps to split them into modules to keep things manageable. The same holds true for the localization of software projects.
User Roles and Access Control
Organize your localization team by assigning dedicated roles and access rights to each team member according to projects and locales.