Firefox2/L10n Requirements
Goals
The Firefox brand already represents a faster, better, and more secure web experience for tens of millions of users, but the main focus for most people has been on en-US -- about 30% of the internet population. An amazing number of localizations shipped simultaneously on the 1.5 release date, and it is time for us to put more effort into helping the international volunteer community deliver the best possible browser experience in their locale, and to maintain a strong and consistent worldwide Firefox brand.
For Firefox 2, there are a number of principal locales designated as Tier 1 or 2. These are the locales with the largest internet population, number of Firefox users, or potential for growth. These locales are being treated as first-class citizens, as important as en-US, which is to say that any Tier 1 or 2 locale that does not meet the requirements will block the release of Firefox 2.
We know that QA is usually difficult, tedious, and under-appreciated. So we're producing a plan and dedicating resources to provide the same level of QA coverage for locales as for en-US.
Finally, I use the word "must" often below, in the same way it's used in other requirements documents, but please don't read unintended meaning into that. This is about trying to ensure that Firefox means something, whether you're in Belgium, Japan, or Australia. I hope that consistency of user experience is a shared goal for the entire community.
To summarize:
- Designate many locales as being as important as en-US, and work hard to help ensure that they're ready.
- Demonstrate our commitment to localization, by striving to provide the same level of QA coverage for Tier 1 and 2 localized elements that we provide for en-US.
- Exchange timely feedback with the localizers, and help converge on a release-ready product.
- If a localization team needs assistance, help develop a plan to improve it.
Strategy
- Prioritize our help
The community localizers have submitted or promised as many as 70 locales for Firefox 2, but we won't be able to add resources everywhere. Deciding where to draw the line is very difficult.
The Tier 1 and 2 locales for this release represent the largest group of existing or potential Firefox users, and those will receive the focused effort. Naturally, any improvements made to our automated localization tests will benefit all locales.
As always, we welcome and want to assist any team or individual who wants to help localize Firefox. All localizations that have passed through the QA process and been approved will be posted on the official web site.
- Provide extra QA coverage
Everyone agrees that fresh eyes catch new issues, especially with new users that are not steeped in the product on a daily basis. Mozilla is preparing to engage a team of translators to provide feedback to the localization teams, to assist with that portion of QA most difficult to automate.
To be clear: the localization teams continue to own the locales. These temporary translation assistants will provide feedback, which can be addressed according to its merit, in the usual open process.
- Automate where possible
Apart from the strings, there are dozens of feature and user experience hooks to validate, and the numbers are daunting: seventy locales multiplied by three or four platforms, plus numerous one-off builds. Manual QA of even the URLs in 200+ builds on an ongoing basis would appear to be impractical. Automatic verification of UE hooks for a given distribution and locale will address a large number of the requirements.
- Provide clear requirements and process for everyone
In preparing this effort, the most common feedback has been that Mozilla could do a better job communicating requirements and process to the localizers and QA community.
This document is the first of several iterative steps to hopefully improve this situation.
- Raise the profile of localization
We'd like to do more to build localization into our institutional thinking and processes. Developers can help by thinking about localization early and often, as they've learned to do with UI. If we consider the impact on localizers, and explicitly plan it into the schedule, we'll have fewer last-minute scrambles and stop-ship l10n issues.
Timeline
Summary: We'll attempt to complete the translation review between beta 2 and RC1. We ask that all URL changes requiring approval be submitted before beta 2 ships, so that we can lock down those changes for RC1. Beginning with RC2, l10n bugs will begin to block en-US releases.
We'll get them added to the main calendar shortly.
- Tentative window for translation review: August 9-20
- Last day to request approval for feature and user-experience changes: when Beta 2 ships
- Approval process complete: on the RC1 lockdown date
- Goal to have all translation-review bugs closed: on the RC2 lockdown date
- RC2 ships: if Tier 1+2 locales are ready
Requirements
This section is intended to clarify the requirements already in place from Firefox 1.5, describe new features in Firefox 2.0, and provide a basis for a localization QA plan.
For consistency, this page uses the priority conventions specified in the Firefox 2 requirements document.
General
The basis for all of these requirements is an attempt to provide a consistent experience for users worldwide. In addition, we're asking for everyone's help to minimize legal risk to the project. For example, if a site goes down because of traffic caused by a Firefox bookmark, they may try to hold Mozilla liable. Part of our approval process (coming in a separate document) is to try to secure appropriate permissions.
As we did with Firefox 1.5, we are asking teams handling the most popular locales to request approval to deviate from the en-US branding.
- (P1) To provide a consistent user experience and quality of service worldwide, all Mozilla web content will be hosted on mozilla.com or mozilla.org
- (P1) With the exception of the start page, described below, all URLs that point to mozilla can be generated by added the locale as the first element in the path (eg, http://www.mozilla.com/en-US/firefox). This will display the localized page if available, fall back to a similar locale if available (eg, use es-ES if an es-AR page does not exist), and finally fall back to en-US as a last resort.
- (P2) Now that URLs are of a standard format, we can begin to generate them in the code and remove them from the locale files.
Regarding non-Mozilla web content:
- (P1) If you want to link to a localized version of a site that is part of the en-US branding, you do not need approval.
- (P1) To link to your local Mozilla community site, you do not need approval.
- (P1) If you want to link to a site that is not part of the en-US branding, please request approval.
- (P2) URLs should use a localized site when available. If one is not available, a locale might use the English site or request approval for an appropriate local substitute.
- (P1) If an English site is used when a localized site is not available, the name must indicate such by appending " [en]".
Open Bugs
- (P1) Tier 1 and 2 locales must be free of P1 localization bugs.
- (P3) Tier 3 locales may ship at the discretion of the owner, provided that they meet the other P1 requirements.
Translation
- If proper translation is hampered by the code -- for example, string parts in a fixed order that prohibit a grammatically-correct translation in a particular language -- it is probably too late to fix in Firefox 2. Please file those bugs as soon as possible for consideration in an update or Firefox 3.
- (P1) There should be no known translation errors (except those that require a code change).
- (P1) External QA review will likely happen on beta 2 and pre-beta-2 builds of Tier 1 and 2 locales.
- (P1) Please make every effort to address this feedback in one way or another as it comes in.
- (P1) For changes made after the translation review, please make an extra effort to get review from your peers.
Search Plugins
- (P1) Unless a localized version does not exist, all locales must list Google first and Yahoo! second except:
- (P1) Simplified Chinese (zh-CN) must list Yahoo! first.
- (P1) Traditional Chinese (zh-TW) must list Yahoo! first.
- (P1) Korean (ko) must list Yahoo! first.
- (P1) Japanese (ja and ja-x-mac) must list "Yahoo! Japan Search" first.
A spreadsheet with URL arguments for these and other search plugins will follow.
Google URL
Unlike past releases, Google would like all locales to use www.google.com, and let Google handle the redirection. We have also received feedback that some parameters are unnecessary, so we can reduce the set of arguments to these few:
| q=MY+IMPORTANT+SEARCH | Search term |
| ie=utf-8 | Input encoding |
| oe=utf-8 | Output encoding |
| client=firefox-a | Identifier of official builds |
| rls=org.mozilla:en-US:official | Will vary based on locale |
See bug 335460 for related work.
Yahoo! URL
The en-US URL is:
http://search.yahoo.com/search?p=SEARCH+TERM&ei=UTF-8&fr=moz2&rls=org.mozilla:en-US:official
To discover the correct domain for your locale, follow this process:
- Visit http://world.yahoo.com/
- Select your location; if your location is not listed, Yahoo does not have version for your locale.
- Do a test search
- It will redirect you one more time, to a domain that contains the word "search". It's not always the same format -- for example, search.yahoo.co.jp for Japan, and ar.search.yahoo.com for Argentina.
| p=MY+IMPORTANT+SEARCH | Search term |
| ei=UTF-8 | Encoding |
| fr=moz2 | Identifier of official builds |
| rls=org.mozilla:en-US:official | Will vary based on locale |
Quicksearches
- (P1) Quicksearches should be localized according to the same general guidelines as other bookmarks.
- (P1) Where a Quicksearch refers to a search partner (like Google or Yahoo), use the same URL arguments as above.
- For reference, en-US includes additional Dictionary.com, Stock Symbol, and Wikipedia quicksearches.
Search Suggest
- (P1) If a localized Search Suggest for a given tier 1 or 2 locale is available, please use it.
It is unclear which engines will support Search Suggest for which locales; we'll let you know as soon as we find out.
Start Page
There is some hope that code will land at the last minute to generate these URLs automatically, instead of duplicating them in every locale file. beltzner is going to file a bug, and I'll add it here once he does.
- (P1) The first-run page (homepage_welcome_url) is shown when a new profile is used for the first time. It must be of the format http://www.mozilla.com/LOCALE/firefox/2.0.0.0/central (bug 314119)
- (P1) The just-updated page (homepage_override_url) is shown when an existing profile is updated. It must be of the format http://www.mozilla.com/LOCALE/firefox/2.0.0.0/whatsnew/
- (P1) The start page URL is the default home page for a new profile. It must be of the format http://LOCALE.start.mozilla.com/firefox
- (P1) Translated versions of start pages must be available (new for Firefox 2).
Bookmarks
The general strategy is one of consistency: take the en_US bookmarks, provide localized versions of the same sites where available, otherwise get approval to replace them with appropriate local equivalents. Requested bookmarks should be useful to a wide audience, and should not be political or religious in nature.
- (P1) The "Firefox Start Page" bookmark must match the start page URL (above).
- (P1) All locales must include a "Bookmark Addons..." link (bug 343023).
- (P3) In general, locales should not have more bookmarks than are found in en_US.
User Dictionaries
Because acquiring licenses for the dictionaries is difficult and time-consuming, they won't be ready for most languages in time for Firefox 2.0. Instead they will be shipped as add-ons (bug 343076).
- (P1) Because virtually all dictionaries will need a special license, all user dictionaries for all locales must receive approval.
RSS Sample
The principal purpose of the RSS sample is to demonstrate a feature that users might not otherwise be aware of.
- (P1) en_US is using the BBC News feed; the BBC has a large number of translations, which makes it a reasonable worldwide default.
- (P1) If a locale wants to use something other than the BBC, that's fine -- but because it's so easy to melt servers with RSS, approval is required.
The intent is not to force everyone worldwide to read the BBC, just to make sure that the RSS feed is appropriate and used with permission.
RSS Feed Handlers
The three RSS feed handlers are now localizable. As an example of the format, here are the placeholders from en-US:
browser.contentHandlers.types.0.title=Bloglines browser.contentHandlers.types.0.uri=http://www.bloglines.com/login?r=/sub/%s browser.contentHandlers.types.1.title=Google browser.contentHandlers.types.1.uri=http://fusion.google.com/add?feedurl=%s browser.contentHandlers.types.2.title=My Yahoo browser.contentHandlers.types.2.uri=http://add.my.yahoo.com/rss?url=%s
If you want to suggest alternative RSS feed handlers which may be more appropriate (localized, larger market share, better user experience) for a given locale. Please file an approval bug for these requests as soon as possible!
Safesearch (Anti-Phishing)
According to bug 329724, the following resources need to be localized:
- the warning message itself, including links to mozilla.com (bug 343084)
- links to report a false positive
- link for "get me out of here" (bug 339032)
Plugin Finder Service (PFS)
Best current information is that PFS localization will be handled on the server. It is not clear whether there will be IT resources available to provide PFS templates for localization in time for Firefox 2.
- (P1) The more_plugins_url will be similar to the standard mozilla URL (see General), with a few additional fields. See bug 346689, but expect something close to http://addons.mozilla.org/$locale/$appname/$appversion/plugins/
- In the short term, those URLs will redirect to English versions of the PFS.
- If server pages become available for localization, it would be nice for them to be translated. Further details as the site redesign progresses.
addons.mozilla.org URLs
As with the PFS, we now have a standard URL for AMO content (see bug 346689).
In toolkit/chrome/mozapps/extensions/extensions.properties:
extensions.getMoreExtensionsURL=http://addons.mozilla.com/$locale/$appname/$appversion/extensions/ extensions.getMoreThemesURL=http://addons.mozilla.com/$locale/$appname/$appversion/themes/
In region.properties:
searchEnginesURL=http://addons.mozilla.com/$locale/$appname/$appversion/themes/
Examples of locale, appname, and appversion are "en-US", "firefox", and "2.0.0.0", respectively.
Trademark Policy
There are a small number of additional requirements in the Trademark Policy document. After we receive feedback on this document, we will apply some effort to combining them and/or removing duplicate information.
- (P1) All locales must meet the requirements in the Mozilla Trademark Policy for Localization Projects.