Firefox2/L10n Requirements

From MozillaWiki
Jump to: navigation, search

for Firefox3

There is a new set of Firefox 3 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 according to the following formula: http[s]://%LOCALE%.%SERVICE%.mozilla.com/%LOCALE%/%APP%[/%VERSION%]/... (eg, http://en-US.www.mozilla.com/en-US/firefox/community). 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.  %VERSION% is used for all links to addons.mozilla.com, otherwise only where necessary.
  • (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 (bug 347944 and bug 348076)
  • (P2) URLs should use a localized site when available. If one is not available, you could 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]".

Approval

To help us reach our goal of a consistent worldwide user experience, we're asking localizers to undergo a short review, like we already do for code. This applies to all URLs in the browser (search plugins, bookmarks, sample RSS feed, any other URL), but not all changes require approval.

  • To copy a link from the en-US branding, you do not need approval.
  • To change to a localized version of a site that is part of the en-US branding -- for example, changing from English to German version of Yahoo -- you do not need approval.
  • To link to a site that is not part of the en-US branding, please request approval.

To request approval, please file a bug using this link.

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

en-US includes search plugins for Google, Yahoo, Amazon.com, Answers.com, Creative Commons, and eBay. Other locales are welcome to include localized versions of these sites without approval, or file an approval bug to substitute or append other sites.

Localizers are free to translate the names of the search engines unless specifically prohibited by the engine's terms of service. If you have any questions, please ask.

Here are some guidelines for decisions you can make about your new locale. We usually provide up to 6 search engine's for the local version. The first few should cover search generally e.g., a local version of Google or Yahoo. We will also consider a local search engine that searches best in your language and is liked by users of your language. Then we provide search engines that search books/shopping/auction, it could be Amazon, eBay or a local language version. Wikipedia in your language, if available, is normally included or a local equivalent. Again, any questions, please ask me, mic@mozilla.com.

Search Order

  • (P1) Unless a localized version does not exist, all locales must list Google first and Yahoo! second, with the following exceptions:
    • (P1) Russian (ru) may list Yandex as second.
    • If Google or Yahoo does not provide a version for your language or locale, you may omit it.

There is no specified order for other plugins.

How to:

Add to the region.properties file the appropriate search order for your locale. The most common example, with Google first, is:

browser.search.defaultenginename = Google
browser.search.order.1 = Google
browser.search.order.2 = Yahoo

The code does not support specific order for more than two plugins.

Google

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:

http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official

q=MY+IMPORTANT+SEARCH Search term
ie=utf-8 Input encoding
oe=utf-8 Output encoding
client=firefox-a Used when Google ships as the default search engine
client=firefox Used when Google ships as the non-default search engine
rls=org.mozilla:en-US:official Will vary based on locale
hl=ja Interface language. Value is language portion of locale. For those languages that differ by country, should include both (pt-BR, zh-TW).

How To:

All locales should use the en-US version of the Google plugin, because it will do the right thing worldwide. The recipe is simple:

  • Remove the localized google*.xml file, if any
  • Add "google" to browser/searchplugins/list.txt
  • Modify your region.properties file to set the appropriate search order (see above)

Google Search Suggest

If you just use the en-US Google plugin as described above, it will automatically use search suggest. No further action is required on your part. For the record, the URL it uses is:

http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&qu={searchTerms}


As at November 15, 2006, Google has asked that we add an "aq=t" parameter to Google search queries that originate from the searchbar. (This parameter identifies the query as coming from a suggest-enabled searchbox.) See Bug 359880 for additional context.

Yahoo!

Yahoo! URLs follow this basic formula:

http://%DOMAIN%/search?p={searchTerms}&ei=UTF-8&fr=%IDENTIFIER%

 %DOMAIN% Select from the table below, or visit world.yahoo.com
p=MY+IMPORTANT+SEARCH Search term
ei=UTF-8 Encoding
fr=moz2  %IDENTIFIER% when Yahoo is in the #2 search position in any non-CJKT locale
fr=moz1  %IDENTIFIER% when Yahoo Japan, Taiwan or Korea is in the #2 search position for mozilla partner distributed builds
fr=moz2  %IDENTIFIER% when Yahoo Japan, Taiwan or Korea is in the #1 search position for any mozilla distributed builds
fr=moz2y  %IDENTIFIER% when Yahoo Japan, Taiwan or Korea is in the #1 search position for any Yahoo! distributed builds
f=D3_g  %IDENTIFIER% when Yahoo! China is in the #1 search position for any Mozilla distributed builds (Note: China is the only exception to the above rule)
f=D4_g  %IDENTIFIER% when Yahoo China is in the #1 search position for any Yahoo! distributed builds (Note: China is the only exception to the above rule)
f=D5_g  %IDENTIFIER% when Yahoo! China is in the #2 search position for any Mozilla partner distributed builds (Note: China is the only exception to the above rule)

Below is the list of domains for all tier 1 and 2 locales. If the domain is empty, Yahoo does not appear to support that locale.

cs
da dk.search.yahoo.com
de de.search.yahoo.com
en-GB uk.search.yahoo.com
en-US search.yahoo.com
es-AR ar.search.yahoo.com
es-ES es.search.yahoo.com
fi fi.search.yahoo.com
fr fr.search.yahoo.com
hu
it it.search.yahoo.com
ja search.yahoo.co.jp
ko kr.search.yahoo.com
nl nl.search.yahoo.com
pl
pt-BR br.search.yahoo.com
ru ru.search.yahoo.com
sv-SE se.search.yahoo.com
tr
zh-CN search.cn.yahoo.com
zh-TW tw.search.yahoo.com

Yahoo Search Suggest

Yahoo supports search suggest in en-US, de, jp, and ko. There are two separate URL formats: Japan and the others.

Japan: http://api.search.yahoo.co.jp/AssistSearchService/V2/webassistSearch?output=fxjson&p={searchTerms}
Everywhere else: http://%DOMAIN%/gossip?output=fxjson&command={searchTerms}

de de.ff.search.yahoo.com
en-US ff.search.yahoo.com
ja search.yahoo.co.jp
ko kr.ff.search.yahoo.com

To enable this functionality, add these lines to your yahoo.xml search plugin, substituting your own URL as appropriate; the "&" is intentional.

<Url type="application/x-suggestions+json" method="GET"
    template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />

Amazon

Amazon.com URLs follow this basic formula:

http://%DOMAIN%/exec/obidos/external-search/?field-keywords={searchTerms}&mode=blended&tag=mozilla-20&sourceid=Mozilla-search

 %DOMAIN% Select from the table below
field-keywords=MY+SEARCH Search term
mode=blended Show results from all parts of the store
tag=%TAG% Mozilla identifier #1, from table below
sourceid=Mozilla-search Mozilla identifier #2

If your domain is not listed, then Amazon may not provide a site for your locale. Most other locales used www.amazon.com in Firefox 1.5:

locale domain tag
en-CA www.amazon.ca tag=mozilla-20
en-GB www.amazon.co.uk tag=firefox-de-21
en-US www.amazon.com tag=mozilla-20
de www.amazon.de tag=firefox-de-21
fr www.amazon.fr tag=firefox-fr-21
ja www.amazon.co.jp tag=mozillajapan-fx-22

Answers.com

Answers.com provides an English language dictionary search with the following URL:

http://www.answers.com/main/ntquery?gwp=13&s={searchTerms}

Answers.com Search Suggest

To enable Answers.com search suggest, add these lines to the answers.xml search plugin, substituting your own URL as appropriate; the "&amp;" is intentional.

<Url type="application/x-suggestions+json" method="GET"
    template="http://www.answers.com/main/startswith?output=json&amp;client=firefox&amp;s={searchTerms}"/>

Creative Commons

Creative Commons provides only an English language search of their content, from this URL:

http://search.creativecommons.org/?q={searchTerms}&sourceid=Mozilla-search

eBay

eBay URLs follow this basic formula:

http://%DOMAIN%/search/search.dll

with a vast number of arguments:

query=SEARCH+TERMS
MfcISAPICommand=GetResult
ht=1
ebaytag1=ebayreg
srchdesc=n
maxRecordsReturned=300
maxRecordsPerPage=50
SortProperty=MetaEndSort

Of the tier 1 and 2 locales, these are the domains for those supported by eBay:

de search.ebay.de
en-GB search.ebay.co.uk
en-US search.ebay.com
es-ES search.ebay.es
fr search.ebay.fr
it search.ebay.it
nl search.ebay.nl
pl search.ebay.pl
sv-SE search.ebay.se
zh-CN search.ebay.com.cn
zh-TW search.tw.ebay.com

Quicksearches

Because quicksearches are invisible to novice users, and easily added by experienced users, Firefox 2 will ship without quicksearches in the default bookmarks.

  • (P1) All locales should remove all quicksearches from the bookmarks.html

Start Page

This section is purely informative. No action is required from localizers at this time.

All three URLs are or will be automatically generated, and removed from the l10n properties files (see bug 348076 and bug 347944). These URLs were originally defined in bug 314119.

When the new web site goes live, locales will have the opportunity to translate the start page text for their users. Further details as the web site refresh progresses.

Bookmarks

For Firefox 2, we have substantially overhauled the list of bookmarks, with the goal of having fewer links to portal pages with better information.

The en-US bookmarks.html has been updated, and all of the bookmarks use the now-standard localizable URL format.

Owners should follow this process for localizing bookmarks:

  • Copy the en-US bookmark file into the locale directory
  • Change the locale in the URLs (ie, replace "en-US" with the locale identifier)
  • Translate the titles into the local language

It has been suggested that "About Mozilla" is better than "About Us" in some locales. As always, we will trust your judgment about which is best in your situation.

l10n teams will have the opportunity to provide localized versions of the web content. These pages would be the appropriate place to put links to the l10n community site for end-user support, getting involved, etc.

User Dictionaries

User dictionaries will be shipped as add-ons (bug 343076). For more information about how to ship a dictionary for your locale, see http://benjamin.smedbergs.us/blog/2006-07-26/dictionaries-in-firefoxthunderbird-2/

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

  • (P1) Locales must add contentHandlers to region.properties -- these are new for Firefox 2, and if you don't, your locale won't have any RSS feed handlers!
  • (P1) If you want to suggest alternative RSS feed handlers which may be more appropriate for your locale (localized, larger market share, better user experience), please file an approval bug (see Approval above).

The feed handlers 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=My Yahoo
browser.contentHandlers.types.1.uri=http://add.my.yahoo.com/rss?url=%s
browser.contentHandlers.types.2.title=Google Reader
browser.contentHandlers.types.2.uri=http://fusion.google.com/add?feedurl=%s

Phishing Protection

There are three sets of localizable content for phishing protection: strings in the browser, content on mozilla.com, and content hosted by the service provider.

Strings in the browser are localized like all other strings; nothing special here.

Additional product information will be hosted on mozilla.com: you can see the current mockup at http://www.mozilla.org/projects/bonecho/anti-phishing/. This information will be localizable along with the rest of mozilla.com when the new content management system arrives, and the final URL will follow the generic mozilla.com URL scheme. No action is currently required on the part of the localizers.

Google is the phishing protection service provider for Firefox 2.0, and they will localize the web content that resides on their servers. Please note that Google may not provide this content for tier 3 locales, and that those users will receive English as a fallback. No action is currently required on the part of the localizers.

For more information, see bug 346242 and bug 329724.

addons.mozilla.org (AMO)

This section is purely informative. No action is required from localizers at this time.

All AMO URLs in the client will have a standard pattern across all locales and services (bug 346689): http://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/.../

These URLs will be removed from the l10n properties files and automatically generated (bug 348076).

http://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/add-ons/
http://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/plugins/
http://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/themes/
http://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/extensions/
http://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/search-engines/

In the short term, those URLs will redirect to English versions of the PFS/AMO. The new AMO site is designed to be localizable.

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.