Bug 828674: Add MWC 2013 updates.

Fix bug 840650, 840960, 842285, 842761, 843358
Fix bug 843687, 828671, 829011, 832523, 833468
Fix bug 833871, 839678, 841231, 843323, 843354
Fix bug 843648, 843678, 843692, 843716

Thanks to contributions from:

@sgarrity
@jpetto
@craigcook
@pmclanahan
@Sancus
This commit is contained in:
Steven Garrity 2013-01-21 16:04:17 -04:00 коммит произвёл Paul McLanahan
Родитель 3663130fd1
Коммит 4465d420ac
169 изменённых файлов: 5188 добавлений и 12639 удалений

Просмотреть файл

@ -10,7 +10,10 @@ from l10n_utils.dotlang import _
# WebTrends click tracking code.
PLAY_DOWNLOAD_ONCLICK = "dcsMultiTrack('DCS.dcssip','www.mozilla.org','DCS.dcsuri',window.location.pathname,'WT.ti','Link: Download from Google Play','WT.dl',99,'WT.nv','SMS error, invalid number');"
PLAY_DOWNLOAD_ONCLICK = ("dcsMultiTrack('DCS.dcssip','www.mozilla.org',"
"'DCS.dcsuri',window.location.pathname,'WT.ti',"
"'Link: Download from Google Play','WT.dl',99,"
"'WT.nv','SMS error, invalid number');")
class SMSSendForm(forms.Form):
@ -29,3 +32,28 @@ class SMSSendForm(forms.Form):
'download directly from Google Play.</a>'
) % ('http://mzl.la/OgZo6k', PLAY_DOWNLOAD_ONCLICK))
return mobile
class WebToLeadForm(forms.Form):
# l10n handled in the template
interest_choices = (
('Firefox for Android', 'Firefox for Android'),
('Firefox Marketplace', 'Firefox Marketplace'),
('Firefox OS', 'Firefox OS'),
('Other', 'Other'),
)
first_name = forms.CharField(max_length=40, required=False)
last_name = forms.CharField(max_length=80, required=False)
title = forms.CharField(max_length=40, required=False)
company = forms.CharField(max_length=40, required=False)
URL = forms.URLField(max_length=80, required=False)
email = forms.EmailField(max_length=80, required=False)
phone = forms.CharField(max_length=40, required=False)
mobile = forms.CharField(max_length=40, required=False)
interest = forms.MultipleChoiceField(choices=interest_choices,
required=False)
description = forms.CharField(required=False)
# uncomment below to debug salesforce
# debug = forms.IntegerField(required=False)
# debugEmail = forms.EmailField(required=False)

Просмотреть файл

@ -30,27 +30,37 @@
<section>
<hgroup>
<h1>{{_('Firefox for Android')}}</h1>
<h2>{{_('Fast. Smart. Safe.')}}</h2>
</hgroup>
<div id="download-column">
{{ mobile_download_button('primary-download-mobile') }}
<div id="rating-column">
<span>4.5 star rating</span>
</div>
{{ mobile_download_button('download-mobile', 'mobile_small_landing') }}
</div>
<div id="photo-column">
<img src="{{ media('/img/firefox/fx/mobile-phone.jpg') }}" alt="{{_('Firefox on Android')}}" />
<span id="phone-screen"></span>
</div>
<ul class="sub-features">
<li id="supported">
<a class="link" href="{{ url('firefox.mobile.platforms') }}">{{ _('Find out if your device is supported&nbsp;»') }}</a>
</li>
<li id="firefox-mobile">
<a class="link" href="{{ url('firefox.mobile.features') }}">{{ _('Learn more about Firefox for Android&nbsp;»') }}</a>
</li>
<li id="playstore-mobile">
<a class="link" href="https://market.android.com/details?id=org.mozilla.firefox">{{ _('Get Firefox for Android free from the Google Play Store&nbsp;»') }}</a>
</li>
</ul>
<aside id="phone-tablet-image">
<img alt="Android Phone and Tablet" src="/media/img/firefox/fx/android-phone-tablet.png">
</aside>
</section>
<ul class="sub-features">
<li id="playstore-mobile">
<a class="mobile-link" href="https://market.android.com/details?id=org.mozilla.firefox">
<h3>Get Firefox for Android</h3>
<span class="link">{{_('Get the mobile browser that\'s got your back for free from Google Play&nbsp;»')}}</span>
</a>
</li>
<li id="firefox-mobile">
<a class="mobile-link" href="{{ url('firefox.mobile.features') }}">
<h3>Learn More</h3>
<span class="link">{{_('Explore Firefox for Android features &nbsp;»')}}</span>
</a>
</li>
<li id="supported">
<a class="mobile-link" href="{{ url('firefox.mobile.platforms') }}">
<h3>Supported devices</h3>
<span class="link">{{_('Find out if your device is supported &nbsp;»')}}</span>
</a>
</li>
</ul>
</div>
<div class="pager-page desktop-content" id="desktop">

Просмотреть файл

@ -34,27 +34,28 @@
<section id="fast">
<h2>{{_('Fast')}}</h2>
<p>{{_('Get to the Web quickly with speedy start up and page load times.')}}</p>
<p>{{_('The <a href="%s">Awesome Screen</a> gets to know you as you browse so you can search easier and get to your destination faster.')|format('http://support.mozilla.org/kb/use-awesome-screen-search-firefox-android') }}</p>
<p>{{_('Type less, browse more with the <a href="%s">Awesome Bar</a> and <a href="%s">Awesome Screen</a>.')|format('http://support.mozilla.org/kb/use-awesome-screen-search-firefox-android', 'http://support.mozilla.org/kb/use-awesome-screen-search-firefox-android')}}</p>
<p>{{_('Browse multiple sites at once, simply and easily, with easy-to-use <a href="%s">tabs.</a>')|format('http://support.mozilla.org/kb/use-awesome-screen-search-firefox-android')}}</p>
</section>
<section id="safe">
<h2>{{_('Safe')}}</h2>
<p class="icon privacy"><span class="img"></span>{{_('Control your privacy and how much data you share on the Web with features like Do Not Track. <a class="more" href="%s">Learn more</a>')|format('http://support.mozilla.org/kb/configure-mobile-privacy-and-security-settings') }}</p>
<p>{{_('Enjoy the latest in security preferences to easily customize the settings for your passwords, private data, cookies, images and add-ons.')}}</p>
<p>{{_('Enjoy the latest security features to easily customize settings for passwords, private data, cookies and more. <a class="more" href="%s">Learn more</a>')|format('http://support.mozilla.org/kb/configure-mobile-privacy-and-security-settings') }}</p>
<p class="icon privacy"><span class="img"></span>{{_('Control what you share on the Web with features like <a href="%s">Do Not Track</a>.')|format('http://www.mozilla.org/dnt/') }}</p>
<p>{{_('Browse without worry thanks to built-in <a href="%s">phishing and malware protection.</a>')|format('http://www.mozilla.org/firefox/phishing-protection/')}}</p>
</section>
</div>
<div class="col2">
<section id="smart">
<h2>{{_('Smart')}}</h2>
<p class="icon html5"><span class="img"></span>{{_('Experience the unlimited possibilities of the mobile Web with full support for HTML5 and Web APIs. <a class="more" href="%s">Learn more</a>')|format('https://developer.mozilla.org/en/Mobile')}}</p>
<p class="icon html5"><span class="img"></span>{{_('Experience the unlimited possibilities of the mobile Web with full support for HTML5 and Web APIs. <a class="more" href="%s">Learn more</a>')|format('https://developer.mozilla.org/en-US/docs/HTML/HTML5')}}</p>
<p class="icon sync"><span class="img"></span>{{_('<a href="%s">Sync</a> your desktop history, bookmarks and passwords to all your devices for a painless browsing experience on mobile.')|format('http://support.mozilla.org/kb/how-do-i-set-up-firefox-sync')}}</p>
<p class="icon addons"><span class="img"></span>{{_('Personalize features and functionality with add-ons. <a class="more" href="%s">Get add-ons</a>')|format('http://addons.mozilla.org/android/')}}</p>
<p>{{_('Effortlessly switch between <a href="%s">tabs</a> with live thumbnail images that show you updated snapshots of your sites.')|format('http://support.mozilla.org/kb/tabs-quickly-switch-websites-firefox-mobile')}}</p>
</section>
<section id="get">
<p><a href="https://market.android.com/details?id=org.mozilla.firefox">{{_('Get Firefox for Android free from the Google Play Store')}}</a></p>
<p>{{_('Get Firefox for Android free from <a href="%s">Google Play</a>')|format('https://market.android.com/details?id=org.mozilla.firefox')}}</a></p>
</section>
</div>

Просмотреть файл

@ -0,0 +1,697 @@
{# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. #}
{% extends "base-resp.html" %}
{% block body_id %}firefox-partners{% endblock %}
{% block body_class %}sky{% endblock %}
{% block extrahead %}
{{ css('partners') }}
<!--[if lte IE 7]>
{{ css('partners-ie7') }}
<![endif]-->
<script>
COMMON_JS_FILES = {{ js_common|safe }};
MOBILE_JS_FILES = {{ js_mobile|safe }};
DESKTOP_JS_FILES = {{ js_desktop|safe }};
</script>
{% endblock %}
{% block site_js %}
{{ js('mozorg-resp') }}
{% endblock %}
{% block js %}
{{ js('partners') }}
{% endblock %}
{% block page_title_prefix %}{% endblock %}
{% block page_title %}{{ _('Firefox at Mobile World Congress 2013') }}{% endblock %}
{% block string_data %}
{# L10N: This is the label for a button that closes a modal dialog #}
data-close="{{ _('Close') }}"
{% endblock %}
{% block mwc_badge %}{% endblock %}
{% block site_header %}
<header id="masthead">
<a href="http://www.mozilla.org/" id="tabzilla">{{ _('Mozilla') }}</a>
{% block site_header_nav %}
<nav id="nav-main" role="navigation">
<span class="toggle" role="button" aria-controls="nav-main-menu" tabindex="0">{{_('Menu')}}</span>
<ul id="nav-main-menu">
<li class="first"><a href="#overview">{{_('Overview')}}</a></li>
<li><a href="#os">{{_('Firefox OS')}}</a></li>
<li><a href="#marketplace">{{_('Marketplace')}}</a></li>
<li class="last"><a href="#android">{{_('Android')}}</a></li>
</ul>
</nav>
{% endblock %}
</header>
<h3 id="explore">{{_('Explore the site') }}</h3>
<nav id="partner-nav" role="navigation">
<ul id="partner-menu" class="menu">
<li id="menu-overview" class="active"><a href="#overview">{{_('Overview')}}</a></li>
<li id="menu-os"><a href="#os">{{_('Firefox OS')}}</a></li>
<li id="menu-marketplace"><a href="#marketplace">{{_('Marketplace')}}</a></li>
<li id="menu-android"><a href="#android">{{_('Android')}}</a></li>
</ul>
<ul id="mwc-menu" class="menu">
<li class="title">{{ _('MWC') }}</li>
<li id="menu-location"><a class="modal" href="#location">{{_('Location')}}</a></li>
<li id="menu-schedule"><a class="modal" href="#schedule">{{_('Schedule')}}</a></li>
</ul>
</nav>
<ul id="overlay-menu" class="menu">
<li id="menu-form"><a href="#form" class="no-scroll toggle-form">{{_('Get involved')}}</a></li>
</ul>
{% endblock %}
{% block content %}
<div class="phone-container" id="phone-common">
<div class="phone">
<div id="screen-overview" class="screen"><div id="foxtail"></div></div>
<div id="screen-os" class="screen"></div>
<div id="screen-marketplace" class="screen"></div>
<div class="phone-overlay" class="screen"></div>
</div>
</div>
<div id="article-wrapper">
<div class="marketplacegiantfox giantfox-background"></div>
<div class="marketplacegiantfox giantfox-foreground"></div>
<article id="overview" class="partner-article">
<section class="section-1" data-current="1">
<div class="phone-shadow visible"></div>
<div class="article-content">
<h2>{{ _('Blaze Your Own Path') }}</h2>
<div class="intro">
<p>{% trans url1='class="nav" href="#os"'|safe, url2='class="nav" href="#marketplace"'|safe, url3='class="nav" href="#android"'|safe %}
Were enabling operators, phone manufacturers and developers to manage, customize and own relationships with their customers directly through our mobile products: <a {{url1}}>Firefox OS</a>, <a {{url2}}>Firefox Marketplace</a> and <a {{url3}}>Firefox for Android</a>.
{% endtrans %}</p>
<ul class="overview-actions">
<li class="location"><a class="modal" href="#location"><span></span>{{ _('Join us at Stand F20, Hall 8.1, App Planet') }}</a></li>
<li class="schedule"><a class="modal" href="#schedule"><span></span>{{ _('Our keynote & other scheduled events') }}</a></li>
<li class="twitter"><a href="https://twitter.com/firefox"><span></span>{{ _('Firefox tweets from MWC in Barcelona') }}</a></li>
</ul>
<p class="partner-button"><a href="#form" class="button toggle-form">{{ _('Partner with us') }}</a></p>
<div id="overview-news">
<img src="{{ media('img/firefox/partners/mwc-logo.png') }}" alt="{{ _('Mobile World Congress, Barcelona, 25 - 28 February 2013') }}" />
<h3>{{ _('Recent news') }}</h3>
<ul>
<li><a href="{{ locale_os_url }}">{{ _('Mozilla Announces Global Expansion for Firefox OS') }}</a></li>
</ul>
</div>
<div class="partner-logos">
<div class="pager pager-with-tabs pager-no-history pager-auto-rotate">
<div class="pager-content">
<div class="pager-page default-page">
<ul class="logos">
<li><img src="{{ media('img/firefox/partners/logos/light/telefonica.png') }}" alt="Telefonica" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/dt.png') }}" alt="DT" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/lg.png') }}" alt="LG" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/qualcomm.png') }}" alt="Qualcomm" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/zte.png') }}" alt="ZTE" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/telenor.png') }}" alt="Telenor" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/americamovil.png') }}" alt="America Movil" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/tcl.png') }}" alt="TCL" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/telecomitalia.png') }}" alt="Telecom Italia" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/chinaunicom.png') }}" alt="China Unicom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/kddi.png') }}" alt="KDDI" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/sprint.png') }}" alt="Sprint" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/singtel.png') }}" alt="SingTel" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/etisalat.png') }}" alt="Etisalat" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/koreatelecom.png') }}" alt="Korea Telecom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/vimpelcom.png') }}" alt="VimpelCom" ></li>
</ul>
</div>
<div class="pager-page">
<ul class="logos">
<li><img src="{{ media('img/firefox/partners/logos/light/smartcom.png') }}" alt="SMART Communications" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/portugaltelecom.png') }}" alt="Portugal Telecom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/megafon.png') }}" alt="Megafon" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/facebook.png') }}" alt="Facebook" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/twitter.png') }}" alt="Twitter" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/soundcloud.png') }}" alt="SoundCloud" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/here-com.png') }}" alt="Here.com" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/box.png') }}" alt="Box" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/ea.png') }}" alt="EA" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/ebay.png') }}" alt="eBay" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/cuttherope.png') }}" alt="Cut the Rope" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/wikipedia.png') }}" alt="Wikipedia" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/wired.png') }}" alt="Wired" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/terra.png') }}" alt="Terra" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/airbnb.png') }}" alt="Airbnb" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/disney.png') }}" alt="Disney" ></li>
</ul>
</div>
</div><!--/pager-content-->
<ul class="pager-tabs">
<li><a href="#p1"></a></li>
<li><a href="#p2"></a></li>
</ul>
</div><!--/pager-->
</div><!--/partner-logos-->
<p id="more-partners">{{_('See more partners') }}</p>
</div>
</div>
</section>
</article>
<article id="os" class="partner-article dark" data-section="os-overview">
<div class="giantfox"><div class="giantfox-foreground"></div></div>
<div class="article-header">
<h2 id="os-overview-headline" class="tween">
<img src="{{ media('img/firefox/partners/firefoxos-title.png')}}" alt="{{ _('Firefox OS') }}" />
</h2>
<nav class="tween">
<a href="" class="view-section" data-section="os-overview"><span>{{ _('Overview') }}</span></a>
<a href="" class="view-section" data-section="os-operators"><span>{{ _('For Operators & Manufacturers') }}</span></a>
</nav>
</div>
<section id="os-overview" class="section-1" data-pos="1" data-current="1">
<div class="phone-shadow"></div>
<div class="article-content">
<div id="os-overview-intro" class="intro tween">
<h4>{{ _('The Web is the platform')}}</h4>
<p>{% trans url='class="view-section" data-section="os-operators" href="#"'|safe %}
Backed by some of the biggest names in the industry, Firefox OS is an open platform that fosters greater participation in the value chain. <a {{ url }}>See how you can get involved.</a>
{% endtrans %}</p>
<h4 class="narrow">{{ _('Made of the Web') }}</h4>
<p class="narrow">{{ _('Built entirely using HTML5 and other open Web standards, Firefox OS is free from the rules and restrictions of existing proprietary platforms.') }}</p>
<h4 class="narrow">{{ _('Made by Firefox') }}</h4>
<p class="narrow">{{ _('For the past 15 years, weve been instrumental in innovating and shaping the Web to keep it open and accessible to all. As a result of our efforts, one fifth of all Web activity today happens through Firefox products.') }}</p>
</div>
</div>
</section>
<section id="os-operators" class="section-2" data-pos="2">
<div class="article-content">
<div id="os-operators-intro" class="intro tween">
<h3 id="os-operators-headline" class="tween">{{ _('The difference the Open Web makes') }}</h3>
<div class="left">
<h4>{{ _('Firefox OS offers:') }}</h4>
<ul>
<li>{{ _('A level playing field against other OS and marketplace providers') }}</li>
<li>{{ _('Greater participation in the value chain') }}</li>
<li>{{ _('Ownership and control over relationships with customers') }}</li>
<li>{{ _('Customized phones that meet the specific needs of various target markets') }}</li>
</ul>
<p class="partner-button"><a href="#form" class="button toggle-form">{{ _('Partner with us') }}</a></p>
<div id="os-promos" class="promos">
<div>
<h4>{{ _('Get involved') }}</h4>
<a href="#form" class="toggle-form">{{ _('Contact our business development team to get on board') }}</a>
</div>
</div>
</div>
<ul id="os-operators-logos1" class="logos">
<li><img src="{{ media('img/firefox/partners/logos/dark/telefonica.png') }}" alt="Telefonica" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/dt.png') }}" alt="DT" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/lg.png') }}" alt="LG" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/qualcomm.png') }}" alt="Qualcomm" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/zte.png') }}" alt="ZTE" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/telenor.png') }}" alt="Telenor" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/kddi.png') }}" alt="KDDI" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/tcl.png') }}" alt="TCL" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/telecomitalia.png') }}" alt="Telecom Italia" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/chinaunicom.png') }}" alt="China Unicom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/sprint.png') }}" alt="Sprint" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/vimpelcom.png') }}" alt="VimpelCom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/singtel.png') }}" alt="SingTel" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/etisalat.png') }}" alt="Etisalat" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/koreatelecom.png') }}" alt="Korea Telecom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/smartcom.png') }}" alt="SMART Communications" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/megafon.png') }}" alt="Megafon" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/portugaltelecom.png') }}" alt="Portugal Telecom" ></li>
<li><img src="{{ media('img/firefox/partners/logos/dark/americamovil.png') }}" alt="American Movil" ></li>
</ul>
</div>
</div>
</section>
</article>
<article id="marketplace" class="partner-article" data-section="marketplace-overview">
<div class="article-header">
<h2 class="tween">
<img src="{{ media('img/firefox/partners/marketplace-title.png')}}" alt="{{ _('Firefox Marketplace') }}" />
</h2>
<nav class="tween">
<a href="" class="view-section" data-section="marketplace-overview"><span>{{ _('Overview') }}</span></a>
<a href="" class="view-section" data-section="marketplace-operators"><span>{{ _('For Operators & Manufacturers') }}</span></a>
<a href="" class="view-section" data-section="marketplace-developers"><span>{{ _('For Developers') }}</span></a>
</nav>
</div>
<section id="marketplace-overview" class="section-1" data-pos="1" data-current="1">
<div class="phone-shadow"></div>
<div class="article-content">
<div id="marketplace-overview-intro" class="intro tween">
<h4>{{ _('HTML5 apps for all')}}</h4>
<p class="narrow">{% trans url1='class="view-section" data-section="marketplace-operators" href="#"'|safe, url2='class="view-section" data-section="marketplace-developers" href="#"'|safe %}
Discover a new way to participate in an ecosystem that features the worlds most popular apps as well as more relevant, targeted content to suit customers local needs. See how that can help <a {{ url1 }}>operators and manufacturers</a> as well as <a {{ url2 }}>developers</a>.
{% endtrans %}</p>
<h4>{{ _('Your needs') }}</h4>
<p>{{ _('Grow your business by combining your own customer payment plans with our open source service offerings, reach new markets and customize purchasing and app experiences to meet your specific needs.') }}</p>
<h4>{{ _('Our experience') }}</h4>
<p>{{ _('Our proven track record of providing excellent user experiences and serving content to huge global audiences runs through everything we do. Our directory of add-ons serves content to hundreds of millions of users worldwide.') }}</p>
<div id="marketplace-promos" class="promos">
<div class="promo-testimonials icon">
<span></span>
<h4>{{ _('Testimonials') }}</h4>
<a class="modal" href="#testimonials">{{ _('See what Box, SoundCloud and others have to say') }}</a>
</div>
<div class="promo-conversation icon">
<span></span>
<h4>{{ _('Join the Conversation') }}</h4>
<a target="_blank" href="https://twitter.com/firefoxapps">{{ _('Follow @firefoxapps on Twitter') }}</a>
<a target="_blank" href="https://blog.mozilla.org/apps/">{{ _('Read more on the Apps Blog') }}</a>
</div>
</div>
</div>
</div>
</section>
<section id="marketplace-operators" class="section-2" data-pos="2">
<div class="article-content">
<div class="intro tween">
<h3>{{ _('The worlds largest developer community') }}</h3>
<div class="left">
<h4>{{ _('Marketplace offers:') }}</h4>
<ul>
<li>{{ _('Commitment from well-known, tier 1 developers') }}</li>
<li>{{ _('Micro-targeted content for every use-case to meet customers local needs') }}</li>
<li>{{ _('Lower barriers to entry for local app developers in both resource and cost') }}</li>
</ul>
<p class="partner-button">
<a href="#form" class="button toggle-form">{{ _('Partner with us') }}</a>
<a class="button modal" href="#demo-schedule">{{ _('MWC demonstrations') }}</a>
</p>
</div>
<ul class="logos tween">
<li><img src="{{ media('img/firefox/partners/logos/light/abril.png') }}" alt="Abril" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/accuweather.png') }}" alt="Accuweather.com" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/airbnb.png') }}" alt="Airbnb" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/bostonglobe.png') }}" alt="Boston Globe" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/box.png') }}" alt="Box" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/chillingo.png') }}" alt="Chillingo" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/ea.png') }}" alt="EA" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/disney.png') }}" alt="Disney" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/engadget.png') }}" alt="Engadget" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/facebook.png') }}" alt="Facebook" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/foxnews.png') }}" alt="Fox News" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/ebay.png') }}" alt="eBay" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/pulse.png') }}" alt="Pulse" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/soundcloud.png') }}" alt="Soundcloud" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/sportv.png') }}" alt="SporTV" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/terra.png') }}" alt="Terra" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/timeout.png') }}" alt="Time Out" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/twitter.png') }}" alt="Twitter" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/wired.png') }}" alt="Wired" ></li>
<li><img src="{{ media('img/firefox/partners/logos/light/zeptolab.png') }}" alt="Zeptolab" ></li>
</ul>
</div>
</div>
</section>
<section id="marketplace-developers" class="section-3" data-pos="3">
<div class="article-content">
<div class="intro tween">
<h3>{{ _('Developed with developers in mind') }}</h3>
<div class="left">
<h4>{{ _('Marketplace offers:') }}</h4>
<ul>
<li>{{ _('Apps that customers can access across multiple platforms, devices and operating systems') }}</li>
<li>{{ _('Flexible business models and multiple payment monetization options') }}</li>
<li>{{ _('Optional carrier billing in regional currencies') }}</li>
<li>{{ _('The ability to connect with hundreds of millions of Firefox supporters around the world') }}</li>
<li>{{ _('Access to relatively untapped markets') }}</li>
</ul>
</div>
<div class="promos">
<div>
<h4>{{ _('Developer hub') }}</h4>
<a href="https://marketplace.firefox.com/developers/">{{ _('Learn how to make HTML5 apps for an open marketplace') }}</a>
</div>
<div>
<h4>{{ _('Have an app?') }}</h4>
<a href="https://developer.mozilla.org/en-US/docs/Apps/Publishing/Submitting_an_app">{{ _('Submit it to the Firefox Marketplace today') }}</a>
</div>
<div class="wipjam icon">
<span></span>
<h4>WIPJam</h4>
<a href="http://www.wipconnector.com/wipjam/entry/mwc2013">{{ _('Jam with us, learn about new tools, meet other developers and more') }}</a>
</div>
<div class="register partner-button">
<a href="http://www.wipconnector.com/wipjam/entry/mwc2013" class="button">{{ _('Register') }}</a>
</div>
</div>
</div>
</div>
</section>
</article>
<article id="android" class="partner-article dark" data-section="android-overview">
<div class="android-tablet">
<div class="tablet-screen"></div>
<div class="android-dude"></div>
</div>
<div class="article-header">
<h2 class="tween">
<img src="{{ media('img/firefox/partners/android-title.png')}}" alt="{{ _('Firefox for Android') }}" />
</h2>
<nav class="tween">
<a href="" class="view-section" data-section="android-overview"><span>{{ _('Overview') }}</span></a>
<a href="" class="view-section" data-section="android-partner"><span>{{ _('Partner Opportunities') }}</span></a>
</nav>
</div>
<section id="android-overview" class="section-1" data-pos="1" data-current="1">
<div class="article-content">
<div class="intro tween">
<h4>{{ _('A superior Web experience') }}</h4>
<a href="https://market.android.com/details?id=org.mozilla.firefox"><img src="{{ media('img/firefox/partners/google-play.png') }}" alt="{{ _('Get it on Google Play') }}" class="play" /></a>
<p>{% trans url='class="view-section" data-section="android-partner" href="#"'|safe %}
With high-performance, advanced cross-platform features and the latest in security, our top-rated browser offers an alternative to closed platforms, giving you the flexibility to design, distribute and charge as you see fit. <a {{ url }}>Learn more about partner opportunities.</a>
{% endtrans %}</p>
<h4>{{ _('Strengthen customer relationships') }}</h4>
<p>{{ _('Create your own unique branded sections of Firefox for Android and Firefox Marketplace for a more engaging user experience and to increase the visibility of your brand.') }}</p>
<h4 class="narrow">{{ _('Create new value for both you and your users') }}</h4>
<p class="narrow">{{ _('Take advantage of service opportunities like Firefox Marketplace and WebRTC to create new, platform-independent offerings and establish direct customer billing.') }}</p>
</div>
</div>
</section>
<section id="android-partner" class="section-2" data-pos="2">
<div class="article-content">
<div class="intro tween">
<div class="android-dude"></div>
<h3>{{ _('Stand out from the crowd') }}</h3>
<p>{{ _('Take advantage of our strong brand and service offerings to differentiate your product and drive sales.') }}</p>
<h4>{{ _('Firefox for Android lets you:') }}</h4>
<ul>
<li>
<h5>{{ _('Customize the experience') }}</h5>
<p>{{ _('Add your brand and content to increase customer touchpoints, improve retention and drive future sales.') }}</p>
</li>
<li>
<h5>{{ _('Build new service offerings') }}</h5>
<p>{{ _('Integrate services directly into the browser with Firefox Marketplace and WebRTC to free yourself from the constraints of proprietary platforms.') }}</p>
</li>
<li>
<h5>{{ _('Direct customer billing') }}</h5>
<p>{{ _('Grow your business by combining your own customer payment plans with our open source service offerings.') }}</p>
</li>
</ul>
<p class="partner-button"><a href="#form" class="button toggle-form">{{ _('Partner with us') }}</a></p>
</div>
</div>
</section>
<div class="phone-container android-phone-container" id="phone-android">
<div class="phone">
<div class="phone-overlay" class="screen"></div>
</div>
</div>
</article>
</div> <!--/#article-wrapper-->
<div id="overlay-container">
<article id="overlay">
<section id="location" class="overlay-contents">
<h2>{{ _('Firefox at MWC 2013 — Stand F20, Hall 8.1, App Planet') }}</h2>
<img src="{{ media('img/firefox/partners/map.png') }}" alt="" class="map">
<div class="footer">
<div>
<h3>{{ _('From the South Entrance:') }}</h3>
<p>{{ _('Walk straight down the main hallway of Hall 8.1. Our stand is located in the middle of the hall on the right.') }}</p>
</div>
<div>
<h3>{{ _('From the North Entrance:') }}</h3>
<p>{{ _('Go up the escalator to Hall 8.1. Our stand is located in the middle of the hall.') }}</p>
</div>
<div>
<a href="http://static.mozilla.com/moco/en-US/pdf/Firefox_at_MWC_2013_map.pdf" class="button">{{ _('Download map (PDF)') }}</a>
</div>
</div>
</section>
<section id="schedule" class="overlay-contents schedule">
<h2>{{ _('Firefox at MWC 2013 — Schedule of events') }}</h2>
<div class="calendar">
<div class="day">
<h4><span>{{ _('Monday') }}</span> {{ _('February 25') }}</h4>
<div class="day-contents">
<div class="event">
<h3>{{ _('Mobile World Live TV Panel') }}</h3>
<p>{{ _('Johnathan Nightingale, VP of Firefox Engineering, will participate in a discussion about future opportunities in the apps market.') }}</p>
<div class="time">{{ _('12:30-13:00 CET') }}</div>
<div class="location">{{ _('Location: the live panel will be streamed on all major screens throughout the show area') }}</div>
</div>
<div class="event">
<h3>{{ _('Apps Panel: Evolving Ecosystems') }}</h3>
<p>{{ _('Jay Sullivan, Vice President of Products, will take part in the Apps Panel: Evolving Ecosystems. The panel will discuss the current state of the apps industry and consider how the roles and responsibilities within it are adapting as the apps market evolves.') }}</p>
<div class="time">{{ _('16:00-17:30 CET') }}</div>
<div class="location">{{ _('Hall 4, Conference Village, Auditorium 2') }}</div>
</div>
<div class="event">
<h3>{{ _('Mobile Premier Awards & AppCircus After Party') }}</h3>
<p>{{ _('Mozilla Marketplace VP Rick Fant will select and present the winning app.') }}</p>
<div class="time">{{ _('16:00-23:00 CET (awards at 22:30)') }}</div>
<div class="location">{{ _('Sala Apolo, Barcelona') }}</div>
</div>
</div>
</div>
<div class="day">
<h4><span>{{ _('Tuesday') }}</span> {{ _('February 26') }}</h4>
<div class="day-contents">
<div class="event">
<h3>{{ _('Gary Kovacs CEO of Mozilla Keynote') }}</h3>
<p>{{ _('Mozilla CEO Gary Kovacs keynote speech will discuss the benefits of an Open Web device in markets around the world and how Firefox OS will help operators, phone manufacturers and developers reach the next billion Web users.') }}</p>
<div class="time">{{ _('09:00-10:30 CET') }}</div>
<div class="location">{{ _('Hall 4, Conference Village, Auditorium 1') }}</div>
</div>
<div class="event">
<h3>{{ _('Mobile World Live Keynote with Mitchell Baker') }}</h3>
<p>{{ _('Mitchell Baker, Chairperson of the Mozilla Foundation, will discuss the importance of bringing Open Web innovation to mobile devices.') }}</p>
<div class="time">{{ _('17:45-18:30 CET') }}</div>
<div class="location">{{ _('Hall 4, Conference Village, Auditorium 1') }}</div>
</div>
</div>
</div>
<div class="day">
<h4><span>{{ _('Wednesday') }}</span> {{ _('February 27') }}</h4>
<div class="day-contents">
<div class="event">
<h3>{{ _('Mobile App Privacy Debate') }}</h3>
<p>{{ _('Harvey Anderson, Vice President of Business Affairs and General Counsel at Mozilla, will take part in the debate “Mobile app privacy: Whats your view?” This interactive session is for anyone interested in helping consumers easily make privacy choices on a mobile device.') }}</p>
<div class="time">{{ _('13:00-15:00 CET') }}</div>
<div class="location">{{ _('GSMA Pavilion, Congress Square (CS80)') }}</div>
</div>
</div>
</div>
<div class="day">
<h4><span>{{ _('Thursday') }}</span> {{ _('February 28') }}</h4>
<div class="day-contents">
<div class="event">
<h3>{{ _('WIP Jam - Day for Developers') }}</h3>
<p>{% trans link='<a href="http://bit.ly/mozwipjam">http://bit.ly/mozwipjam</a>'|safe %}
The key event for mobile developers at MWC. Mozilla CTO Brendan Eich and Mozilla Developer Evangelist Robert Nyman will host a workshop and Q&A session on “Why Open Web Apps & Firefox OS are good for mobile developers.” Mozilla developer evangelist Chris Heilmann will present an UnPanel on "HTML5 Beyond the Hype" and lead several HTML5 discussion groups. WIP Jam will also see DemoCamps of HTML5 apps created during Mozilla Developer Days. Full schedule available here: {{link}}
{% endtrans %}</p>
<div class="time">{{ _('09:00-16:00 CET') }}</div>
<div class="location">{{ _('App Planet (Hall 8.0), Theatre B') }}</div>
</div>
</div>
</div>
</div>
</section>
<section id="testimonials" class="overlay-contents">
<h2>{{ _('Firefox Marketplace — Developer testimonials') }}</h2>
<div class="video-wrapper"><iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/videoseries?list=PLWK3kWTuPoUKFCTRtVkTUXn26PYF311w9" frameborder="0" allowfullscreen></iframe></div>
</section>
<section id="demo-schedule" class="overlay-contents schedule">
<h2>{{ _('MWC demonstrations') }}</h2>
<div class="calendar">
<div class="day">
<h4><span>{{ _('Monday') }}</span> {{ _('February 25') }}</h4>
<div class="day-contents">
<dl>
<dt>{{ _('09:00 – 11:30:') }}</dt>
<dd>{{ _('Here.com (Nokia Maps) - Andy Tjin') }}</dd>
<dt>{{ _('11:30 – 14:00:') }}</dt>
<dd>{{ _('Accuweather - Eric Guyer') }}</dd>
<dt>{{ _('14:00 – 16:30:') }}</dt>
<dd>{{ _('Twitter - Michael Ducker') }}</dd>
<dt>{{ _('16:30 – 19:00:') }}</dt>
<dd>{{ _('Soundcloud - Andy Carvell') }}</dd>
</dl>
</div>
</div>
<div class="day">
<h4><span>{{ _('Tuesday') }}</span> {{ _('February 26') }}</h4>
<div class="day-contents">
<dl>
<dt>{{ _('09:00 – 11:30:') }}</dt>
<dd>{{ _('SporTV - Leo Copello') }}</dd>
<dt>{{ _('11:30 – 14:00:') }}</dt>
<dd>{{ _('Airbnb - Marc McCabe') }}</dd>
<dt>{{ _('14:00 – 16:30:') }}</dt>
<dd>{{ _('Time Out - Taylor Wescoatt') }}</dd>
<dt>{{ _('16:30 – 19:00:') }}</dt>
<dd>{{ _('Fale Transito & Parkster - Andre Natal') }}</dd>
</dl>
</div>
</div>
<div class="day">
<h4><span>{{ _('Wednesday') }}</span> {{ _('February 27') }}</h4>
<div class="day-contents">
<dl>
<dt>{{ _('09:00 – 11:30:') }}</dt>
<dd>{{ _('Soundcloud - Andy Carvell') }}</dd>
<dt>{{ _('11:30 – 14:00:') }}</dt>
<dd>{{ _('Here.com (Nokia Maps) - Andy Tjin') }}</dd>
<dt>{{ _('14:00 – 16:30:') }}</dt>
<dd>{{ _('TBD') }}</dd>
<dt>{{ _('16:30 – 19:00:') }}</dt>
<dd>{{ _('TBD') }}</dd>
</dl>
</div>
</div>
<div class="day">
<h4><span>{{ _('Thursday') }}</span> {{ _('February 28') }}</h4>
<div class="day-contents">
<dl>
<dt>{{ _('09:00 – 11:30:') }}</dt>
<dd>{{ _('Box - Indy Sen') }}</dd>
<dt>{{ _('11:30 – 14:00:') }}</dt>
<dd>{{ _('TBD') }}</dd>
<dt>{{ _('14:00 – 16:30:') }}</dt>
<dd>{{ _('Wikipedia - Amit Kapoor') }}</dd>
<dt>{{ _('16:30 – 19:00:') }}</dt>
<dd>{{ _('TBD') }}</dd>
</dl>
</div>
</div>
</div>
</section>
<section id="form" class="overlay-contents">
<button type="button" class="close">{{ _('Close') }}</button>
<div class="form-results">
<h3>{{ _('Thanks for your interest in partnering with us') }}</h3>
<p>{{ _('We will review your request and get back to you about possibilities and opportunities soon.') }}</p>
</div>
<form action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" data-ajax-action="{{ url('firefox.partners.contact-bizdev') }}" method="POST" id="sf-form" class="sf-form">
<h3>{{ _('Get involved') }}</h3>
<p>{{ _('Contact our business development team to get on board.') }}</p>
<input type=hidden id="sf-form-oid" name="oid" value="00DU0000000IrgO">
<input type=hidden id="sf-form-retURL" name="retURL" value="http://www.mozilla.org/en-US/about/partnerships?success=1">
<!-- NOTE: These fields are optional debugging elements. Please uncomment -->
<!-- these lines if you wish to test in debug mode. -->
<!-- input type="hidden" name="debug" value=1 -->
<!-- input type="hidden" name="debugEmail" value="" -->
<div class="field">
<label for="first_name">{{ _('First Name') }}</label>
<input id="first_name" maxlength="40" name="first_name" size="20" type="text" placeholder="{{ _('First Name') }}" class="required" />
</div>
<div class="field">
<label for="last_name">{{ _('Last Name') }}</label>
<input id="last_name" maxlength="80" name="last_name" size="20" type="text" placeholder="{{ _('Last Name') }}" class="required" />
</div>
<div class="field">
<label for="title">{{ _('Title') }}</label>
<input id="title" maxlength="40" name="title" size="20" type="text" placeholder="{{ _('Title') }}" />
</div>
<div class="field">
<label for="company">{{ _('Company') }}</label>
<input id="company" maxlength="40" name="company" size="20" type="text" placeholder="{{ _('Company') }}" class="required" />
</div>
<div class="field">
<label for="URL">{{ _('Website') }}</label>
<input id="URL" maxlength="80" name="URL" size="20" type="text" placeholder="{{ _('Website') }}" />
</div>
<div class="field">
<label for="email">{{ _('Email') }}</label>
<input id="email" maxlength="80" name="email" size="20" type="text" placeholder="{{ _('Email') }}" class="required" />
</div>
<div class="field">
<label for="phone">{{ _('Phone') }}</label>
<input id="phone" maxlength="40" name="phone" size="20" type="text" placeholder="{{ _('Phone') }}" />
</div>
<div class="field">
<label for="mobile">{{ _('Mobile') }}</label>
<input id="mobile" maxlength="40" name="mobile" size="20" type="text" placeholder="{{ _('Mobile') }}" />
</div>
<div class="field">
<label for="interest">{{ _('Interest:') }}</label>
<select id="interest" multiple="multiple" name="00NU0000002pDJr" data-ajax-name="interest" title="{{ _('Interest') }}" size="4">
<option value="Firefox for Android">{{ _('Firefox for Android') }}</option>
<option value="Firefox Marketplace">{{ _('Firefox Marketplace') }}</option>
<option value="Firefox OS">{{ _('Firefox OS') }}</option>
<option value="Other">{{ _('Other') }}</option>
</select>
</div>
<div class="field">
<label for="description">{{ _('Comments or questions?') }}</label>
<textarea id="description" name="description" placeholder="{{ _('Comments or questions?') }}"></textarea>
</div>
<div class="field footer-field">
<input type="submit" name="submit" value="{{ _('Submit my request') }}" class="button" />
</div>
</form>
</section>
</article>
</div>
{% endblock %}
{% block email_form %}{% endblock %}

Просмотреть файл

@ -21,7 +21,7 @@
{# L10N: This is an abbreviation of 'hours', used as a label on a countdown clock. The translated label should be as short as possible. #}
data-hourstext="{{ _('hrs') }}"
data-hourstextex="{{ _('hours') }}"
{# L10N: This is an abbreviation of 'minutes', used as a label on a countdown clock. The translated label should be as short as possible. #}
{# L10N: This is an abbreviation of 'minutes', used as a label on a countdown clock. The translated label should be as short as possible. #}
data-minutestext="{{ _('min') }}"
data-minutestextex="{{ _('minutes') }}"
{# L10N: This is an abbreviation of 'seconds', used as a label on a countdown clock. The translated label should be as short as possible. #}
@ -29,6 +29,8 @@
data-secondstextex="{{ _('seconds') }}"
{% endblock %}
{% block mwc_badge %}{% endblock %}
{% block content %}
<article id="main-content" role="main">
@ -137,7 +139,7 @@
<h3>{{ _('Listen') }}</h3>
<p>
{% trans %}
During his Tuesday keynote, Mozilla CEO Gary Kovacs will talk about
During his Tuesday keynote, Mozilla CEO Gary Kovacs will talk about
reaching the next billion people to come online.
{% endtrans %}
<br><a href="#schedule" class="go modal">See our schedule of events</a></p>
@ -173,7 +175,7 @@
phones to meet the specific needs of their target markets and to own and
manage the relationship with their customers themselves.
{% endtrans %}
<br><a href="{{ url('firefoxos.firefoxos') }}" class="go">Learn more</a>
<br><a href="{{ url('firefox.partners.index') }}" class="go">Learn more</a>
</p>
</div>
<div class="col marketplace">
@ -251,9 +253,9 @@
<h2><time datetime="2013-02-25">{{ _('Monday, February 25') }}</time></h2>
<h3 class="summary">{{ _('Apps Panel: Evolving Ecosystems') }}</h3>
<dl class="details">
<dt>{{ _('Speaker:') }}</dt>
<dt>{{ _('Speaker:') }}</dt>
<dd class="vcard"><span class="fn">Jay Sullivan</span>, <span class="title">{{ _('VP of Products') }}</span>, <span class="org">Mozilla</span></dd>
<dt>{{ _('Time:') }}</dt>
<dd><time class="dtstart" datetime="2013-02-25T16:00">16:00</time><time class="dtend" datetime="2013-02-25T17:30">17:30</time></dd>
@ -264,8 +266,8 @@
<p class="description">
{% trans %}
Experts from across the board will discuss the current state of the
apps industry and consider how the roles and responsibilities within
Experts from across the board will discuss the current state of the
apps industry and consider how the roles and responsibilities within
it are adapting as the apps market evolves.
{% endtrans %}
</p>
@ -273,11 +275,11 @@
<div class="col vevent">
<h2><time datetime="2013-02-26">{{ _('Tuesday, February 26') }}</time></h2>
<h3 class="summary">{{ _('Mozilla Keynote') }}</h3>
<dl class="details">
<dt>{{ _('Speaker:') }}</dt>
<dt>{{ _('Speaker:') }}</dt>
<dd class="vcard"><span class="fn">Gary Kovacs</span>, <span class="title">{{ _('CEO') }}</span>, <span class="org">Mozilla</span></dd>
<dt>{{ _('Time:') }}</dt>
<dd><time class="dtstart" datetime="2013-02-26T09:00">09:00</time><time class="dtend" datetime="2013-02-26T10:30">10:30</time></dd>
@ -288,8 +290,8 @@
<p class="description">
{% trans %}
Mozilla CEO Gary Kovacs will discuss the benefits of an Open Web device
in markets around the world and how Firefox OS will help operators, phone manufacturers
Mozilla CEO Gary Kovacs will discuss the benefits of an Open Web device
in markets around the world and how Firefox OS will help operators, phone manufacturers
and developers reach the next billion Web users.
{% endtrans %}
</p>
@ -297,15 +299,15 @@
<div class="col alt">
<h2><time datetime="2013-02-27">{{ _('Wednesday, February 27') }}</time></h2>
<p class="tba">{{ _('Check back for schedule additions and updates.') }}</p>
</div>
<div class="col vevent">
<h2><time datetime="2013-02-28">{{ _('Thursday, February 28') }}</time></h2>
<h3 class="summary">{{ _('WIPJam') }}</h3>
<dl class="details">
<dt>{{ _('Time:') }}</dt>
<dd><time class="dtstart" datetime="2013-02-26T09:00">09:00</time><time class="dtend" datetime="2013-02-26T16:00">16:00</time></dd>

Просмотреть файл

@ -14,6 +14,8 @@
{{ js('mozorg-resp') }}
{% endblock %}
{% block mwc_badge %}{% endblock %}
{% block site_header %}
<header id="masthead">
<a href="http://www.mozilla.org/" id="tabzilla">{{ _('Mozilla') }}</a>

Просмотреть файл

@ -3,6 +3,7 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import json
import os
from urlparse import parse_qs, urlparse
@ -12,7 +13,7 @@ from django.test.client import Client
from django.utils import unittest
from funfactory.urlresolvers import reverse
from mock import patch
from mock import ANY, Mock, patch
from mozorg.tests import TestCase
from nose.tools import eq_, ok_
from platforms import load_devices
@ -90,6 +91,89 @@ class TestFirefoxAll(TestCase):
eq_(len(doc('tr[data-search]')), num_builds)
class TestFirefoxPartners(TestCase):
def setUp(self):
self.client = Client()
@patch('firefox.views.settings.DEBUG', True)
def test_js_bundle_files_debug_true(self):
"""
When DEBUG is on the bundle should return the individual files
with the MEDIA_URL.
"""
bundle = 'partners_desktop'
files = settings.MINIFY_BUNDLES['js'][bundle]
files = [settings.MEDIA_URL + f for f in files]
self.assertEqual(files,
json.loads(fx_views.get_js_bundle_files(bundle)))
@patch('firefox.views.settings.DEBUG', False)
def test_js_bundle_files_debug_false(self):
"""
When DEBUG is off the bundle should return a single minified filename.
"""
bundle = 'partners_desktop'
filename = '%sjs/%s-min.js?build=' % (settings.MEDIA_URL, bundle)
bundle_file = json.loads(fx_views.get_js_bundle_files(bundle))
self.assertEqual(len(bundle_file), 1)
self.assertTrue(bundle_file[0].startswith(filename))
@patch('firefox.views.requests.post')
def test_sf_form_proxy_error_response(self, post_patch):
"""An error response from SF should be returned."""
new_mock = Mock()
new_mock.status_code = 400
post_patch.return_value = new_mock
with self.activate('en-US'):
url = reverse('firefox.partners.contact-bizdev')
resp = self.client.post(url)
self.assertEqual(resp.status_code, 400)
self.assertEqual(resp.content, 'bad_request')
self.assertTrue(post_patch.called)
@patch('firefox.views.requests.post')
def test_sf_form_proxy_invalid_form(self, post_patch):
"""A form error should result in a 400 response."""
with self.activate('en-US'):
url = reverse('firefox.partners.contact-bizdev')
resp = self.client.post(url, {
'first_name': 'Dude' * 20,
})
self.assertEqual(resp.status_code, 400)
self.assertEqual(resp.content, 'Form invalid')
self.assertFalse(post_patch.called)
@patch('firefox.views.requests.post')
def test_sf_form_proxy(self, post_patch):
new_mock = Mock()
new_mock.status_code = 200
post_patch.return_value = new_mock
with self.activate('en-US'):
url = reverse('firefox.partners.contact-bizdev')
resp = self.client.post(url, {
'first_name': 'The',
'last_name': 'Dude',
'title': 'Abider of things',
})
self.assertEqual(resp.status_code, 200)
self.assertEqual(resp.content, 'ok')
post_patch.assert_called_once_with(ANY, {
'first_name': u'The',
'last_name': u'Dude',
'description': u'',
'retURL': 'http://www.mozilla.org/en-US/about/'
'partnerships?success=1',
'title': u'Abider of things',
'URL': u'',
'company': u'',
'oid': '00DU0000000IrgO',
'phone': u'',
'mobile': u'',
'00NU0000002pDJr': [],
'email': u'',
})
class TestLoadDevices(unittest.TestCase):
def file(self):

Просмотреть файл

@ -4,6 +4,7 @@
from django.conf.urls.defaults import *
from django.conf import settings
from product_details import product_details
from firefox import version_re
@ -16,6 +17,7 @@ latest_re = r'^firefox(?:/(%s))?/%s/$'
firstrun_re = latest_re % (version_re, 'firstrun')
whatsnew_re = latest_re % (version_re, 'whatsnew')
urlpatterns = patterns('',
url(r'^firefox/all/$', views.all_downloads, name='firefox.all'),
page('firefox/central', 'firefox/central.html'),
@ -61,5 +63,8 @@ urlpatterns = patterns('',
url(whatsnew_re, views.latest_fx_redirect, name='firefox.whatsnew',
kwargs={'template_name': 'firefox/whatsnew.html'}),
page('firefox/partners', 'firefox/partners/landing.html'),
url(r'^firefox/partners/$', views.firefox_partners,
name='firefox.partners.index'),
url(r'^firefox/partners/contact-bizdev/$', views.contact_bizdev,
name='firefox.partners.contact-bizdev'),
)

Просмотреть файл

@ -2,26 +2,83 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import json
import re
from django.conf import settings
from django.http import HttpResponsePermanentRedirect, HttpResponseRedirect
from django.http import (HttpResponse, HttpResponsePermanentRedirect,
HttpResponseRedirect)
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST
from django.views.decorators.vary import vary_on_headers
import basket
import requests
from jingo_minify.helpers import BUILD_ID_JS, BUNDLE_HASHES
from product_details import product_details
from product_details.version_compare import Version
from funfactory.urlresolvers import reverse
import l10n_utils
from firefox import version_re
from firefox.forms import SMSSendForm
from firefox.forms import SMSSendForm, WebToLeadForm
from firefox.platforms import load_devices
from firefox.firefox_details import firefox_details
from l10n_utils.dotlang import _
LOCALE_OS_URLS = {
'en-US': 'http://blog.mozilla.org/press/2013/02/firefox-os-expansion',
'de': 'http://blog.mozilla.org/press-de/?p=760',
'it': 'http://blog.mozilla.org/press-it/?p=347',
'pl': 'http://blog.mozilla.org/press-pl/?p=407',
'fr': 'http://blog.mozilla.org/press-fr/?p=366',
'es-ES': 'http://blog.mozilla.org/press-es/?p=340',
'en-GB': 'http://blog.mozilla.org/press-uk/?p=471'
}
def get_js_bundle_files(bundle):
"""
Return a JSON string of the list of file names for lazy loaded
javascript.
"""
# mostly stolen from jingo_minify.helpers.js
if settings.DEBUG:
items = settings.MINIFY_BUNDLES['js'][bundle]
else:
build_id = BUILD_ID_JS
bundle_full = "js:%s" % bundle
if bundle_full in BUNDLE_HASHES:
build_id = BUNDLE_HASHES[bundle_full]
items = ("js/%s-min.js?build=%s" % (bundle, build_id,),)
return json.dumps([settings.MEDIA_URL + i for i in items])
JS_COMMON = get_js_bundle_files('partners_common')
JS_MOBILE = get_js_bundle_files('partners_mobile')
JS_DESKTOP = get_js_bundle_files('partners_desktop')
@csrf_exempt
@require_POST
def contact_bizdev(request):
form = WebToLeadForm(request.POST)
if form.is_valid():
data = form.cleaned_data.copy()
interest = data.pop('interest')
data['00NU0000002pDJr'] = interest
data['oid'] = '00DU0000000IrgO'
data['retURL'] = ('http://www.mozilla.org/en-US/about/'
'partnerships?success=1')
r = requests.post('https://www.salesforce.com/servlet/'
'servlet.WebToLead?encoding=UTF-8', data)
msg = requests.status_codes._codes.get(r.status_code, ['error'])[0]
return HttpResponse(msg, status=r.status_code)
return HttpResponse('Form invalid', status=400)
@csrf_exempt
def sms_send(request):
form = SMSSendForm(request.POST or None)
@ -133,3 +190,15 @@ def all_downloads(request):
'test_builds': firefox_details.get_filtered_test_builds(version, query),
'query': query,
})
def firefox_partners(request):
# If the current locale isn't in our list, return the en-US value
locale_os_url = LOCALE_OS_URLS.get(request.locale, LOCALE_OS_URLS['en-US'])
return l10n_utils.render(request, 'firefox/partners/index.html', {
'locale_os_url': locale_os_url,
'js_common': JS_COMMON,
'js_mobile': JS_MOBILE,
'js_desktop': JS_DESKTOP,
})

Просмотреть файл

Просмотреть файл

@ -1,7 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from django.db import models
# Create your models here.

Просмотреть файл

@ -1,104 +0,0 @@
{# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. #}
{% extends "firefoxos/firefoxos-base.html" %}
{% block page_title %}Firefox OS FAQ{% endblock %}
{% block body_id %}firefoxos-faq{% endblock %}
{% block content %}
<article id="faq">
<h1>Firefox OS FAQ</h1>
<dl>
<dt>What is Firefox OS?</dt>
<dd>
<p>The project is an implementation of new Web standards that bring the power of the Open Web to mobile devices, unencumbered by the rules and restrictions of existing proprietary platforms.</p>
</dd>
<dt>What is the overall aim of the project? What problems are you solving?</dt>
<dd>
<p>We believe that the next frontier for Web applications is full device integration, so that web developers have the same capabilities as those building for OS-specific stacks. Boot to Gecko is intended to identify those missing device capabilities and other application needs, and design standardized solutions for app developers to use.</p>
</dd>
<dt>What is the size of the team working on this project?</dt>
<dd>
<p>More than 20 engineers were working full-time on specific parts of the system (telephony, messaging, system-level phone integration). In addition, Mozilla contributors and engineers from operators partners are working jointly with us on the project.</p>
<p>We are also leaning heavily on the existing Gecko and Firefox mobile work and the team of hundreds of engineers building those products. 95% of the code in the Boot to Gecko project is shared with Firefox.</p>
</dd>
<dt>What does the project mean for your relationships with Apple, Google and Microsoft?</dt>
<dd>
<p>We dont expect that it will affect our relationships with other organizations.</p>
</dd>
<dt>Does this replace work thats already being done on Web APIs for desktop and mobile?</dt>
<dd>
<p>We are already pushing hard on new Web APIs and will continue to implement and standardize new APIs for Web content while the project ramps up.</p>
</dd>
<dt>How is this different than the Webian Shell project?</dt>
<dd>
<p>The Webian Shell project is an impressive project even in its early stages. Where Webian is focused on a Web-centric desktop experience, were focused on extending the Web to include more of what is traditionally the domain of OS-specific code. We think we can work together on a bunch of things, and were looking forward to it.</p>
</dd>
<dt>How is this different from Chrome OS?</dt>
<dd>
<p>Were aiming at mobile/tablet devices rather than a notebook form factor. This is an early-stage project to expose all device capabilities such that infrastructure like phone dialers can be built with Web APIs, and not only “high level” apps like word processors and presentation software.</p>
<p>We will of course be happy to work with the Chrome OS team on standards activities, and indeed to share source code where appropriate.</p>
</dd>
<dt>Do you see this project as competing with other mobile operating systems?</dt>
<dd>
<p>We believe the Web is the platform. Ideally, the technology pioneered or refined in the Boot to Gecko project will make its way into all mobile browsers, so that enhanced Web applications can be great regardless of operating system or device. We look forward to working with other OS and browser developers on standards activities and even implementations.</p>
</dd>
<dt>Are OEMs interested in the project?</dt>
<dd>
<p>
Currently B2G is still a project without a firm product schedule. We are working on Qualcomm chipset based hardware platform for our development and discussing with OEMs /carriers on B2G deployment plans. We will announce a product schedule and launch partners once we reach that stage.
</p>
</dd>
<dt>Whose hardware will you support?</dt>
<dd>
<p>
We are currently using off-the shelf developer hardware (Samsung Galaxy S 2), because the device is commercially available to Mozilla employees and community members. We are working on Qualcomm chipset based hardware platform right now and optimizing B2G to this reference platform. As we mentioned above, we are in process of finalization of lead OEM partners for shipping commercial B2G devices. That reference platform will likely be very different than the Samsung Galaxy S 2.
</p>
</dd>
<dt>Is this going to be yet another platform for developers to code for?</dt>
<dd>
<p>No: the project is extending what developers can do with the Web, especially in the context of mobile devices, and to do so in a way that leads to interoperable standards.</p>
<p>Just as with HTML5, ES5, CSS3 and other Web technology it will reach different browsers and operating systems at different times, but the pace of Web platform development gives us confidence that good Web technology can reach a lot of people pretty quickly.</p>
<p>We dont want this work to lead to applications that only run atop one platform, or only run in Firefox. Thats an important difference between what were doing and proprietary mobile stacks today: we dont seek a competitive advantage for Mozilla, we seek a competitive advantage for the Web.</p>
</dd>
<dt>How do you think youll get the mobile manufacturers and operators on board with this?</dt>
<dd>
<p>The Boot to Gecko project is designed to build on the success of the Web, and given the early stage of the project it could reach users in many forms. Were working with ODMs, OEMs, operators and others who share our vision of even greater success for Web-based applications.</p>
</dd>
<dt>What does the Boot to Gecko project offer mobile users that HTML5 doesnt?</dt>
<dd>
<p>The project offers mobile users all the power of HTML5, extended with device capabilities like Bluetooth and SMS, a richer capability model for interaction with the filesystem, and a way to tie native HTML5 apps together. The intent is to lead to improved capabilities for the Web platform, not to replace HTML5 or related technology in any way. Many of these new capabilities will also make sense in desktop browsers, and we look forward to seeing them there as well.</p>
</dd>
<dt>Will this mean a Firefox Phone?</dt>
<dd>
<p>We dont have any plans to build or distribute a custom device.</p>
</dd>
<dt>I am a web developer. How will I deploy my web application to this platform?</dt>
<dd>
<p>You dont. By default, your web app will be accessible from the phone just like any other website. If you want to make it installable to the homescreen, you may consider adding an open web app manifest to your app. However, the install API is not complete yet as of February 2012.</p>
</dd>
</dl>
</article>
{% endblock %}

Просмотреть файл

@ -1,43 +0,0 @@
{# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. #}
{% extends "base-resp.html" %}
{% block body_class %}sand{% endblock %}
{% block extrahead %}
{{ css('firefoxos') }}
{% endblock %}
{% block site_js %}
{{ js('mozorg-resp') }}
{% endblock %}
{% block site_header %}
<header id="masthead">
<a href="http://www.mozilla.org/" id="tabzilla">{{ _('Mozilla') }}</a>
{% block site_header_nav %}
<nav id="nav-main" role="navigation">
<span class="toggle" role="button" aria-controls="nav-main-menu" tabindex="0">{{_('Menu')}}</span>
<ul id="nav-main-menu">
{# Without a FAQ page we only have a single FXOS page so the Home link isn't useful. Hide it for now.
<li class="first"><a href="{{ url('firefoxos') }}">{{_('Home')}}</a></li>
#}
<li class="first"><a href="{{ url('marketplace.marketplace') }}">{{_('Marketplace')}}</a></li>
<li class="last"><a href="https://developer.mozilla.org/apps">{{_('Developers')}}</a></li>
{# Hide this link until we get FAQs updated
<li class="last"><a href="{{ url('firefoxos.faq') }}">{{_('FAQ')}}</a></li>
#}
</ul>
</nav>
{% endblock %}
</header>
{% endblock %}
{% block content %}{% endblock %}
{% block email_form %}{% endblock %}

Просмотреть файл

@ -1,69 +0,0 @@
{# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. #}
{% extends "firefoxos/firefoxos-base.html" %}
{% block page_title %}Firefox OS{% endblock %}
{% block body_id %}firefoxos{% endblock %}
{% block content %}
<hgroup id="main-feature">
<h1><img src="{{ MEDIA_URL }}img/firefoxos/wordmark-firefoxos.png" alt="Firefox OS"></h1>
<h2>{{ _('Bringing the Open Web to mobile devices') }}</h2>
</hgroup>
<section id="primary" class="billboard">
<h2>{{ _('Welcome to a new, open and powerful mobile world!') }}</h2>
<p>{{ _('Firefox OS enables the Open Web as a platform for mobile devices. Were making innovation possible by driving the development of new Web standards.') }}</p>
<img src="{{ MEDIA_URL }}img/firefoxos/firefox-phone.png" alt="">
</section>
<section id="secondary">
<div class="section left">
<div class="figure">
<img src="{{ MEDIA_URL }}img/firefoxos/example-apps.jpg" alt="">
</div>
<h3>{{ _('New Web standards') }}</h3>
<p>{{ _('Firefox OS will produce an implementation of these new Web standards to free mobile platforms from the encumbrances of the rules and restrictions of existing proprietary platforms.') }}</p>
<h3>{{ _('Freedom from proprietary mobile platforms') }}</h3>
<p>{{ _('Were collaborating with <abbr title="Original Equipment Manufacturer">OEM</abbr>s and carriers directly, giving them more influence to meet the specific needs of their users and market. Users and developers arent locked in to one platform, so they can access their info and use apps across multiple devices.') }}</p>
</div>
<div class="section right">
<div class="figure">
<img src="{{ MEDIA_URL }}img/firefoxos/example-radio.jpg" alt="">
<img src="{{ MEDIA_URL }}img/firefoxos/example-music.jpg" alt="">
</div>
<h3>{{ _('Customization for <abbr>OEM</abbr>s and operators')}}</h3>
<p>{{ _('<abbr>OEM</abbr>s and operators will be able to provide content and services across their entire device portfolio, regardless of OS. And they will be able to customize user experiences, manage app distribution and retain customer attention, loyalty and billing relationships.') }}</p>
</div>
<div class="section left">
<div class="figure">
<img src="{{ MEDIA_URL }}img/firefoxos/example-browser.jpg" alt="">
</div>
<h3>{{ _('Opportunities for developers') }}</h3>
<p>{{ _('Using HTML5 and the new Mozilla-proposed standard APIs, developers everywhere will be able to create amazing experiences and apps. Developers will no longer need to learn and develop against platform-specific native APIs.') }}</p>
</div>
<div class="section right">
<div class="figure">
<img src="{{ MEDIA_URL }}img/firefoxos/example-videos.jpg" alt="">
<img src="{{ MEDIA_URL }}img/firefoxos/example-gallery.jpg" alt="">
</div>
<h3>{{ _('Consumer freedom') }}</h3>
<p>{{ _('Consumers who use devices powered by Firefox OS wont be locked into one specific platform giving them more choice, flexibility and freedom. With Firefox OS, the Web is the platform.') }}</p>
</div>
</section>
{% endblock %}
{% block site_js %}
{{ js('mozorg-resp') }}
{% endblock %}

Просмотреть файл

@ -1,11 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from django.conf.urls.defaults import *
from mozorg.util import page
urlpatterns = patterns('',
page('', 'firefoxos/firefoxos.html'),
)

Просмотреть файл

@ -40,23 +40,7 @@
<p>{{_('The first Aurora release of Firefox Marketplace is available on Firefox Aurora for Android, giving developers a means to get feedback on their apps as the Marketplace grows and progresses.')}}</p>
<aside id="apps-bag">
<div id="apps-bag-background"></div>
<div id="apps-container">
<div id="apps-physics">
<div class="apps-icon" id="app-jauntly"></div>
<div class="apps-icon" id="app-minimalist"></div>
<div class="apps-icon" id="app-solitaire"></div>
<div class="apps-icon" id="app-soundcloud"></div>
<div class="apps-icon" id="app-distantorbit"></div>
<div class="apps-icon" id="app-twitter"></div>
<div class="apps-icon" id="app-wired"></div>
<div class="apps-icon" id="app-wordwars"></div>
</div>
</div>
<div id="apps-bag-handle"></div>
<div id="apps-bag-foreground"></div>
</aside>
<aside id="apps-hero-background"></aside>
</section>
@ -182,9 +166,6 @@
{% endblock %}
{% block js %}
<!--[if gte IE 9]><!-->
{{ js('box2d') }}
<!--<![endif]-->
{{ js('marketplace') }}
{% endblock %}

Просмотреть файл

@ -0,0 +1,19 @@
{# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. #}
{% extends "mozorg/download_buttons/mobile_base.html" %}
{% block class %}download-button-mobile-small{% endblock %}
{% block title %}{{ _('Get Firefox for Android »') }}
<span class="download-info">
{{ _('Free from the Google Play Store') }}
</span>
{% endblock %}
{% block subtitle %}{% endblock %}
{% block small_print %}{% endblock %}
{% block download_info %}{% endblock %}

Просмотреть файл

@ -57,15 +57,15 @@
<div class="pager-content">
<div class="pager-page default-page" id="promo-mwc-preview">
<div class="pager-page default-page" id="promo-mwc-announce">
<script>// <![CDATA[
document.getElementById('promo-mwc-preview').id = 'page-promo-mwc-preview';
document.getElementById('promo-mwc-announce').id = 'page-promo-mwc-announce';
// ]]></script>
<a href="{{ url('firefox.partners.landing') }}" class="container">
<img src="{{ media('img/home/promo-mwc-preview.jpg') }}" alt="">
<a href="{{ url('firefox.partners.index') }}" class="container">
<img src="{{ media('img/home/promo-mwc-announce.jpg') }}" alt="">
<div class="content">
<h3>{{_('The Web is the platform')}}</h3>
<h4>{{_('Last year at Mobile World Congress, Mozilla made a promise: to deliver the Web as the platform for mobile devices. Now were coming back with the proof.')}}</h4>
<h3>{{_('Introducing Firefox OS')}}</h3>
<h4>{{_('The Open Web makes its debut as the platform for mobile devices at Mobile World Congress to help bring the next billion smartphone users online.')}}</h4>
<p class="go">{{_('Learn More')}}</p>
</div>
</a>
@ -123,27 +123,27 @@
{% l10n home, 20130515 %}
<section id="home-news">
<h3>In the news</h3>
<h3>{{ _('In the news') }}</h3>
<ul>
<li>
<h4><a href="https://blog.mozilla.org/blog/2012/11/28/mozilla-invests-in-everything-me/">Mozilla Invests in Everything.me to Further the Web as a Dynamic App Platform</a></h4>
<h4><a href="http://blog.mozilla.org/press/2013/02/firefox-os-expansion">{{ _('Mozilla Announces Global Expansion for Firefox OS') }}</a></h4>
</li>
<li>
<h4><a href="https://blog.mozilla.org/blog/2012/11/27/offering-a-firefox-with-msn-custom-experience/">Offering a Firefox with MSN Custom Experience</a></h4>
<h4><a href="http://blog.mozilla.org/press/2013/02/Firefox-Marketplace">{{ _('Firefox OS Enables App Discovery without Download and Firefox Marketplace Unlocks the Power of Web Apps on Mobile Phones') }}</a></h4>
</li>
<li>
<h4><a href="https://blog.mozilla.org/blog/2012/11/21/join-the-firefox-challenge-this-holiday-season/">Join The Firefox Challenge This Holiday Season</a></h4>
<h4><a href="https://blog.mozilla.org/blog/2013/02/19/firefox-introduces-pdf-viewer-to-browse-the-web-without-interruption/">{{ _('Firefox introduces PDF viewer to browse the Web without interruption') }}</a></h4>
</li>
</ul>
<a href="http://blog.mozilla.org/" id="all-news">See all news »</a>
<a href="http://blog.mozilla.org/" id="all-news">{{ _('See all news »') }}</a>
</section>
{% endl10n %}
<section id="home-promos">
<h3>In the know</h3>
<h3>{{ _('In the know') }}</h3>
<ul>
<li>
<h4><a href="{{ url('firefoxos.firefoxos') }}">{{_('Firefox OS')}}</a></h4>
<h4><a href="{{ url('firefox.partners.index') }}">{{_('Firefox OS')}}</a></h4>
<p>{{_('See whats next for the mobile Web.')}}</p>
</li>
<li>

Просмотреть файл

@ -31,43 +31,43 @@
<section id="b2g">
<h3>Firefox OS</h3>
<img src="{{ media('img/mobile/illo-fxosphone.png') }}" alt="">
<p>We created Firefox OS to build the Web as the platform for
mobile devices. That includes implementing new Web standards
that aren't restricted by the rules of existing proprietary
platforms. As with all Mozilla projects, Firefox OS is based
entirely on open standards and the source code is accessible
<p>We created Firefox OS to build the Web as the platform for
mobile devices. That includes implementing new Web standards
that aren't restricted by the rules of existing proprietary
platforms. As with all Mozilla projects, Firefox OS is based
entirely on open standards and the source code is accessible
to all.</p>
<p><a class="go" href="{{ url('firefoxos.firefoxos') }}">Learn more about Firefox OS</a></p>
<p><a class="go" href="{{ url('firefox.partners.index') }}">Learn more about Firefox OS</a></p>
</section>
<section id="android">
<h3>Firefox for Android</h3>
<img src="{{ media('img/mobile/illo-fxandroidphone.png') }}" alt="">
<p>Based on the same principles and technologies as our desktop
browser, Firefox for Android is fast, smart, safe and full
of innovations that let you type less, browse more and get
to the Web quickly and easily. Our latest version includes
improved performance, the latest privacy and security features
<p>Based on the same principles and technologies as our desktop
browser, Firefox for Android is fast, smart, safe and full
of innovations that let you type less, browse more and get
to the Web quickly and easily. Our latest version includes
improved performance, the latest privacy and security features
and a redesigned look and feel.</p>
<p><a class="go" href="/en-US/firefox/mobile/features">Learn more about Firefox for Android</a>
<br><a class="go" href="https://market.android.com/details?id=org.mozilla.firefox">Get Firefox for Android at the Google Play Store</a></p>
</section>
<section id="marketplace">
<h3>Apps on the Web</h3>
<img src="{{ media('img/mobile/illo-marketplace.png') }}" alt="">
<p>We're bringing our core values &ndash; openness, freedom, user
choice &ndash; to the world of apps and giving developers with
full control over content, functionality and how apps are
distributed, including access to hundreds of millions of Firefox
<p>We're bringing our core values &ndash; openness, freedom, user
choice &ndash; to the world of apps and giving developers with
full control over content, functionality and how apps are
distributed, including access to hundreds of millions of Firefox
users through the Mozilla Marketplace.</p>
<p><a class="go" href="https://marketplace.mozilla.org">Learn more about apps and the Mozilla Marketplace</a></p>
</section>
</section>
<aside class="sidebar">
<section>
<h3>Mozilla is Mobile</h3>
@ -77,7 +77,7 @@
<li><a class="go" href="http://blog.mozilla.org/privacy/2012/02/28/do-not-track-goes-mobile-mozilla-demos-preference-at-mobile-world-congress/">Privacy &amp; Do Not Track</a></li>
</ul>
</section>
<section>
<h3>In the News</h3>
<ul>

Просмотреть файл

@ -39,7 +39,7 @@
</a>
</li>
<li>
<a href="{{ url('firefoxos.firefoxos') }}">
<a href="{{ url('firefox.partners.index') }}">
<img src="{{ media('/img/products/badge-firefoxos.jpg') }}" alt="" />
<h3>{{ _('Firefox OS') }}</h3>
<p>{{ _('An open operating system for mobile devices.') }}</p>

Просмотреть файл

@ -19,9 +19,9 @@ def tabzilla_css_redirect(r):
urlpatterns = patterns('',
redirect(r'^b2g', 'firefoxos.firefoxos'),
redirect(r'^b2g/faq', 'firefoxos.firefoxos'),
redirect(r'^b2g/about', 'firefoxos.firefoxos'),
redirect(r'^b2g', 'firefox.partners.index'),
redirect(r'^b2g/faq', 'firefox.partners.index'),
redirect(r'^b2g/about', 'firefox.partners.index'),
redirect(r'^contribute/areas.html$', 'mozorg.contribute'), # Bug 781914
redirect(r'^projects/$', 'mozorg.products'), # Bug 763665

Просмотреть файл

@ -528,10 +528,11 @@ Tabzilla.closeSubmenu = function($item, $menu)
Tabzilla.content =
'<div id="tabzilla-contents">'
+ ' <div id="tabzilla-promo">'
+ ' <div class="snippet" id="tabzilla-promo-flicks">'
+ ' <a href="https://firefoxflicks.mozilla.org/">'
+ ' <h4>{{ _('Youre the director. Mobile is the star.')|js_escape }}</h4>'
+ ' <p>{{ _('Firefox Flicks')|js_escape }} »</p></a>'
+ ' <div class="snippet" id="tabzilla-promo-mwc">'
+ ' <a href="https://www.mozilla.org/firefox/partners/">'
+ ' <h4>{{ _('Firefox OS debuts')|js_escape }}</h4>'
+ ' <p>{{ _('at Mobile World Congress!')|js_escape }}</p>'
+ ' <p>{{ _('Learn more')|js_escape }} »</p></a>'
+ ' </div>'
+ ' </div>'
+ ' <div id="tabzilla-nav">'

Просмотреть файл

@ -8,7 +8,7 @@ ExpiresActive on
# bug 764261, 841393
RewriteRule ^/zh-TW/$ http://mozilla.com.tw/ [L,R=301]
RewriteCond %{REQUEST_URI} !^/zh-TW/firefox/partners/?$
RewriteCond %{REQUEST_URI} !^/zh-TW/firefox/partners
RewriteRule ^/zh-TW/firefox(/.*)?$ http://mozilla.com.tw/firefox$1 [L,R=301]
RewriteRule ^/zh-TW/mobile/?$ http://mozilla.com.tw/firefox/mobile/ [L,R=301]
RewriteRule ^/zh-TW/download/?$ http://mozilla.com.tw/firefox/download/ [L,R=301]
@ -114,8 +114,8 @@ RewriteRule ^/(\w{2,3}(?:-\w{2}(?:-mac)?)?/)?grants(.*)$ /b/$1grants$2 [PT] # bu
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^/.*/plugincheck/ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
# bug 797236
RewriteRule ^/(\w{2,3}(?:-\w{2}(?:-mac)?)?/)?firefoxos(.*)$ /b/$1firefoxos$2 [PT]
# bug 797236, 839678
RewriteRule ^/(\w{2,3}(?:-\w{2}(?:-mac)?)?/)?firefoxos(.*)$ /$1firefox/partners/#os [NE,L,R=301]
# bug 797337
RewriteRule ^/(\w{2,3}(?:-\w{2}(?:-mac)?)?/)?contribute/areas.html$ /b/$1contribute/areas.html [PT]

Просмотреть файл

@ -130,44 +130,46 @@
.mobile-content {
overflow: hidden;
text-align: center;
.download-link {
line-height: 27px;
}
.download-button {
.download-title {
font-size: 18px;
}
.download-info {
color: #FFFFFF;
font-size: 11px;
}
.download-content {
background-image: none;
margin-left: -50px;
}
}
#download-column {
.span(4);
margin-top: 45px;
position: relative;
z-index: 10;
text-align: right;
aside {
text-align: left;
}
}
#photo-column {
.span(4);
position: relative;
img {
position: relative;
right: 45px;
z-index: 5;
height: 422px;
width: 281px;
}
#phone-tablet-image {
margin: @gridColumnWidth/2 auto -6px;
}
#rating-column {
.span(2);
font-family: "Open Sans Light";
font-size: 18px;
padding-top: 20px;
float: none;
display: inline-block;
vertical-align: top;
background: url(/media/img/firefox/fx/android-four-stars.png) center top no-repeat;
}
.sub-features {
.span(4);
margin-bottom: 0;
margin-top: 45px;
li {
float: none;
width: auto;
padding: 0;
right: 0;
a.link {
border-left: 0;
border-top: 1px dotted @borderColor;
}
&:first-child a.link {
border-top: 0;
}
}
margin-top: -50px;
background-color: #fafafa;
position: relative;
}
}
@ -184,7 +186,14 @@
padding: 0;
position: relative;
right: 10px;
a.link {
a.mobile-link {
border-left: 1px dotted @borderColor;
display: block;
}
a.mobile-link:hover {
text-decoration: none;
}
a.link, span.link {
display: block;
padding: @baseLine / 2;
padding-left: 70px;
@ -192,9 +201,19 @@
.open-sans-light;
letter-spacing: -0.02em;
min-height: 50px;
color: @textColorTertiary;
background: url(/media/img/firefox/fx/sub-feature-icons.png) 0 0 no-repeat;
border-left: 1px dotted @borderColor;
color: @textColorTertiary;
}
span.link {
border-left: 0;
}
span.link:hover {
text-decoration: underline;
}
h3 {
font-size: 24px;
margin: 5px 0px 0px 35px;
}
.wrap {
border-left: 1px dotted @borderColor;
@ -202,114 +221,46 @@
}
}
li:first-child a.link,
li:first-child a.mobile-link,
li:first-child span.link,
li:first-child .wrap {
border-left: 0;
}
li#customize a { background-position: 0 -200px; }
li#playstore a { background-position: 0 -400px; }
li#supported a { background-position: 0 -400px; }
li#firefox-mobile a { background-position: 0 -600px; }
li#playstore-mobile a { background-position: 0 -800px; }
li#supported span { background-position: 0 -400px; }
li#firefox-mobile span { background-position: 0 -600px; }
li#playstore-mobile span { background-position: 0 -800px; }
}
#phone-screen {
position: absolute;
top: 45px;
left: 71px;
height: 264px;
width: 160px;
background: url(/media/img/firefox/fx/android-animation-screens.jpg) 0 0 repeat-x;
display: block;
z-index: 6;
&:after {
content: "";
height: 264px;
width: 160px;
display: block;
background: url(/media/img/firefox/fx/android-animation-sheen.png) 0 0 no-repeat;
position: relative;
z-index: 7;
}
-moz-animation: screenslide 20s ease infinite alternate;
-webkit-animation: screenslide 20s ease infinite alternate;
animation: screenslide 20s ease infinite alternate;
}
@keyframes screenslide {
0% { background-position: 0 0; }
20% { background-position: 0 0; }
22% { background-position: -160px 0; }
42% { background-position: -160px 0; }
44% { background-position: -320px 0; }
64% { background-position: -320px 0; }
66% { background-position: -480px 0; }
100% { background-position: -480px 0; }
}
@-moz-keyframes screenslide {
0% { background-position: 0 0; }
20% { background-position: 0 0; }
22% { background-position: -160px 0; }
42% { background-position: -160px 0; }
44% { background-position: -320px 0; }
64% { background-position: -320px 0; }
66% { background-position: -480px 0; }
100% { background-position: -480px 0; }
}
@-webkit-keyframes screenslide {
0% { background-position: 0 0; }
20% { background-position: 0 0; }
22% { background-position: -160px 0; }
42% { background-position: -160px 0; }
44% { background-position: -320px 0; }
64% { background-position: -320px 0; }
66% { background-position: -480px 0; }
100% { background-position: -480px 0; }
}
/* Tablet Layout: 760px */
@media only screen and (min-width: @breakTablet) and (max-width: @breakDesktop) {
.sub-features li {
.span_narrow(4);
font-size: 14px;
a.link {
span.link {
margin: 0;
}
}
.mobile-content {
#download-column,
#photo-column,
.sub-features {
.span_narrow(4);
}
}
.mobile-content {
#photo-column {
#phone-tablet-image {
img {
height: auto;
}
#phone-screen {
top: 36px;
left: 39px;
height: 214px;
width: 126px;
-moz-animation: none;
-webkit-animation: none;
animation: none;
}
}
#download-column,
.sub-features {
margin-top: 20px;
.download-button small.download-other {
text-align: left;
}
li {
h3 {
font-size: 18px;
margin-left: 25px;
}
}
}
}
}
@ -381,26 +332,37 @@
.download-button small.download-other {
text-align: left;
}
margin-bottom: 20px;
}
#photo-column { display: none; }
#phone-tablet-image { display: none; }
}
.sub-features,
.mobile-content .sub-features {
width: auto;
margin-top: 0;
li {
float: none;
width: auto;
padding: 0;
right: 0;
.wrap,
a.link {
span.link {
border-left: 0;
border-top: 1px dotted @borderColor;
}
a.link, a.mobile-link {
border-left: 0;
margin: 0;
border-top: 1px dotted @borderColor;
}
h3 {
font-size: 20px;
margin: 5px 0px 0px 25px;
}
}
li:first-child a.link,
li:first-child a.mobile-link,
li:first-child .wrap {
border-top: 0;
}

Просмотреть файл

@ -61,8 +61,7 @@
#fast,
#smart {
border-bottom: 1px dotted @borderColor;
margin-bottom: @baseLine;
margin-bottom: @baseLine + 40;
}
#safe .privacy .img {
@ -81,11 +80,12 @@
background-position: 0 -180px;
}
#get a {
#get {
display: block;
padding-left: 48px;
background: url(/media/img/firefox/mobile/android-tiny.png) no-repeat;
font-size: .875em;
padding: 25px 0 0 @gridColumnWidth;
float: left;
border-top: 1px dotted @borderColor;
background: 7px 20px url(/media/img/firefox/mobile/android.png) no-repeat;
}
a.more:after,

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,814 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
/* {{{ Journal font */
@font-face {
font-family: 'Journal';
src: url('/media/fonts/journal-webfont.eot');
src: url('/media/fonts/journal-webfont.eot?#iefix') format('embedded-opentype'),
url('/media/fonts/journal-webfont.woff') format('woff'),
url('/media/fonts/journal-webfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
/* }}} */
/* {{{ Template overrides */
.js #article-wrapper {
opacity: 0;
height: 2840px;
overflow: hidden;
position: relative;
top: 0px;
left: 0px;
}
.partner-article {
overflow: hidden;
position: relative;
background: #eee url(/media/img/sandstone/grain.png) repeat;
background: url(/media/img/sandstone/bg-gradient-sky.png) repeat-x 0 0,
url(/media/img/sandstone/grain.png) repeat 0 0,
#eee;
.clearfix();
-webkit-box-shadow: 0px -3px 5px 1px rgba(0, 0, 0, 0.3);
box-shadow: 0px -3px 5px 1px rgba(0, 0, 0, 0.3);
section {
width: 100%;
padding-top: 0;
padding-bottom: 0;
border: 0;
.transition(all ease .5s);
}
.article-header {
.clearfix();
padding: (@baseLine * 2) 0;
top: auto;
h2 {
float: left;
margin-right: 30px;
}
nav {
position: relative;
display: none;
padding: 25px 0 0 0;
a {
display: table;
float: left;
position: relative;
height: 45px;
width: 150px;
color: @textColorSecondary;
background: rgba(166,189,206,0.2);
border: 1px solid rgba(173,201,222,0.4);
padding: 0 10px;
border-radius: 4px;
margin-left: 20px;
text-transform: uppercase;
text-align: center;
line-height: 1;
letter-spacing: -0.02em;
.transition();
span {
display: table-cell;
width: 100%;
vertical-align: middle;
}
&:hover {
text-decoration: none;
background: rgba(166,189,206,0.4);
}
}
}
}
.article-content {
padding: (@baseLine * 2) 0;
h2 {
.span(8);
margin-bottom: @baseLine;
}
.intro {
.span(8);
margin-left: 20px;
margin-right: 0;
.promos {
padding-top: @baseLine;
div {
.span(3);
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
}
}
}
}
}
.js .partner-article {
height: 820px;
.article-header nav {
display: block;
}
section {
position: absolute;
height: 820px;
top: 0;
left: 0;
&.section-2 {
left: 100%;
}
&.section-3 {
left: 200%;
}
}
}
.partner-article.dark {
.article-header {
nav {
a {
color: #fff;
background: rgba(255,255,255,0.1);
&:hover {
text-decoration: none;
background: rgba(255,255,255,0.2);
}
}
}
}
}
.partner-article[data-section="os-overview"] .article-header nav a[data-section="os-overview"],
.partner-article[data-section="os-operators"] .article-header nav a[data-section="os-operators"],
.partner-article[data-section="marketplace-overview"] .article-header nav a[data-section="marketplace-overview"],
.partner-article[data-section="marketplace-operators"] .article-header nav a[data-section="marketplace-operators"],
.partner-article[data-section="marketplace-developers"] .article-header nav a[data-section="marketplace-developers"],
.partner-article[data-section="android-overview"] .article-header nav a[data-section="android-overview"],
.partner-article[data-section="android-partner"] .article-header nav a[data-section="android-partner"] {
background: #fff;
border-color: #fff;
color: @textColorSecondary;
@shadow: 0 1px 2px rgba(0,0,0,0.4);
.box-shadow(@shadow);
&:after {
content: " ";
display: block;
position: absolute;
height: 12px;
width: 25px;
background: url(/media/img/firefox/partners/menu-icons.png) 50% -1140px no-repeat;
bottom: -12px;
left: 50%;
margin-left: -12px;
}
}
.partner-article[data-section="os-overview"] .article-header nav a[data-section="os-overview"],
.partner-article[data-section="os-operators"] .article-header nav a[data-section="os-operators"],
.partner-article[data-section="android-overview"] .article-header nav a[data-section="android-overview"],
.partner-article[data-section="android-partner"] .article-header nav a[data-section="android-partner"] {
background: #fff;
border-color: #fff;
color: @textColorSecondary;
}
/* }}} */
/* {{{ Giant Fox */
#os {
.giantfox {
width: 900px;
height: 700px;
background: url(/media/img/firefox/partners/firefoxos-giantfox-back.png) no-repeat 0 0 ;
position: absolute;
top: 140px;
left: 50%;
margin-left: -70px;
.transition(all ease 0.6s);
.giantfox-foreground {
position: absolute;
display: block;
top: 0;
right: 0;
width: 469px;
height: 700px;
background: url(/media/img/firefox/partners/firefoxos-giantfox-front.png) no-repeat 100% 130px;
z-index: 110;
}
}
}
.js .marketplacegiantfox {
top: 1600px;
}
.marketplacegiantfox {
position: absolute;
display: block;
top: 2576px;
left: 50%;
.transition(all ease 0.6s);
&.giantfox-foreground {
background: url(/media/img/firefox/partners/marketplace-giantfox-front.png) no-repeat 100% top;
z-index: 120;
width: 454px;
height: 520px;
margin-left: 86px;
}
&.giantfox-background {
background: url(/media/img/firefox/partners/marketplace-giantfox-back.png) no-repeat 0 0 ;
z-index: 112;
width: 580px;
height: 240px;
margin-left: -40px;
}
}
/* }}} */
/* {{{ Overview Article */
.js #overview {
.partner-button, #overview-news, .overview-actions {
display: none;
}
.partner-button {
margin-top: -35px;
}
.intro #more-partners {
display: block;
}
}
#overview {
background: url(/media/img/firefox/partners/overview-bg.png) center -15px no-repeat;
h2 {
font-size: 84px;
letter-spacing: -4px;
.span-all();
padding-top: 40px;
padding-bottom: 30px;
}
.intro {
p {
.open-sans-light;
font-size: 17px;
letter-spacing: -0.01em;
}
#more-partners {
margin: -30px 0 0 0;
float: left;
display: none;
font-family: Journal;
font-size: 23px;
color: @textColorTertiary;
padding-right: 50px;
text-align: right;
width: 210px;
background: url(/media/img/firefox/partners/partners-arrow.png) 100% 50% no-repeat;
}
.partner-button {
float: right;
margin-bottom: 5px;
}
#overview-news {
clear: both;
.clearfix();
background: url(/media/img/firefox/partners/divider.png) 50% 100% no-repeat;
padding-bottom: @baseLine;
min-height: 60px;
position: relative;
img {
position: absolute;
top: 0;
left: 0;
}
h3 {
margin: 0 0 5px 150px;
}
ul {
margin: 0 0 10px 150px;
}
}
}
.overview-actions {
margin: 0;
padding: 0;
li {
width: 33%;
float: left;
}
}
}
/* }}} */
/* {{{ Firefox OS section */
.js #os .intro {
padding-top: 140px;
}
#os {
.intro {
z-index: 50;
.span(7);
margin-left: 20px;
.narrow {
margin-right: 140px;
}
}
h3 {
font-size: 42px;
}
#os-operators-intro {
.span-all();
padding-top: 120px;
h3 {
font-size: 50px;
letter-spacing: -2px;
margin-left: 0;
margin-bottom: 40px;
text-align: center;
}
.left {
.span(6);
ul li {
margin: 10px 20px;
}
.promos div {
.span-all();
}
}
.logos {
.span(6);
margin-left: 0;
margin-right: 0;
}
}
#os-operators {
padding-top: 0;
}
}
/* }}} */
/* {{{ Marketplace section */
.js #marketplace .intro {
padding-top: 140px;
}
#marketplace {
z-index: 111;
.article-header {
h2 {
padding-top: 15px;
margin-right: 5px;
}
}
.intro {
z-index: 50;
}
#marketplace-overview {
.intro {
.span(8);
margin-left: 20px;
width: 580px;
.narrow {
margin-right: 140px;
}
.promos {
.span(8);
width: 580px;
margin-left: 0;
margin-right: 0;
div {
.span(4);
width: 280px;
&:first-child { margin-left: 0; }
&:last-child { margin-right: 0; }
}
}
}
}
#marketplace-operators {
padding-top: 0;
.intro {
.span-all();
h3 {
font-size: 48px;
letter-spacing: -2px;
text-align: center;
margin-bottom: @baseLine * 2;
}
}
.left {
.span(6);
.partner-button {
a:first-child {
margin-right: 20px;
}
}
ul li {
margin: 10px 20px;
}
}
.logos {
.span(6);
margin-left: 0;
margin-right: 0;
}
}
#marketplace-developers {
padding-top: 0;
.article-content {
.intro {
.span-all();
h3 {
font-size: 48px;
letter-spacing: -2px;
text-align: center;
margin-bottom: @baseLine * 2;
}
.promos {
.span(5);
padding-top: 0;
margin-right: 0;
margin-left: 0;
margin-bottom: @baseLine;
clear: none;
div {
.span-all();
margin-bottom: @baseLine;
}
.register {
margin-right: 0;
.button {
.inline-block();
padding-left: 30px;
padding-right: 30px;
}
}
}
}
.left {
.span(7);
.partner-button {
a:first-child {
margin-right: 20px;
}
}
ul li {
margin: 10px 20px;
}
}
}
}
}
/* }}} */
/* {{{ Firefox for Android section */
.js #android .intro {
padding-top: 140px;
}
#android {
z-index: 121; // 1 higher than #phone-container
.intro {
.span(6);
margin-left: 20px;
.narrow {
margin-right: 100px;
}
}
.article-header {
h2 {
font-size: 78px;
}
}
.android-dude {
position: absolute;
display: block;
top: 405px;
left: -75px;
width: 231px;
height: 256px;
background: url(/media/img/firefox/partners/android-dude.png) no-repeat 0 0;
z-index: 130;
}
#android-partner {
padding-top: 0;
background: url(/media/img/firefox/partners/android-partners-bg.png) 50% 200px no-repeat;
.intro {
padding-top: 120px;
h3 {
font-size: 42px;
}
h4 {
font-size: 26px;
}
}
.android-dude {
top: 440px;
left: 560px;
}
}
.android-tablet {
width: 1021px;
height: 662px;
background: url(/media/img/firefox/partners/android-tablet-frame.png) no-repeat 0 0;
position: absolute;
top: 120px;
left: 50%;
margin-left: -40px;
.transition(all ease 0.6s);
.tablet-screen {
position: absolute;
display: block;
top: 58px;
right: 127px;
width: 767px;
height: 488px;
background: url(/media/img/firefox/partners/android-tablet-screen.jpg) no-repeat 0 0;
}
}
}
/* }}} */
/* {{{ Left menu */
body #partner-nav {
position: fixed;
z-index: 1000;
top: 160px;
left: 30px;
width: 60px;
margin-left: auto;
padding: 0;
}
#explore {
position: absolute;
display: block;
z-index: 1;
font-family: Journal;
color: #fff;
text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
letter-spacing: normal;
line-height: 0.9;
top: 80px;
left: 34px;
width: 50px;
padding: 0 0 18px 50px;
margin: 0;
font-size: 23px;
background: url(/media/img/firefox/partners/menu-icons.png) 0 -720px no-repeat;
}
.menu {
margin-bottom: @baseLine;
li {
display: block;
float: none;
width: auto;
a {
@shadow: 0 -1px rgba(0,0,0,0.1) inset;
.box-shadow(@shadow);
}
&:first-child a {
border-radius: 3px 3px 0 0;
}
&:last-child a {
border-radius: 0 0 3px 3px;
}
&.title {
border-radius: 3px 3px 0 0;
background: #515f6a;
color: #fff;
text-transform: uppercase;
font-weight: bold;
font-size: 12px;
text-align: center;
}
}
}
#mwc-menu {
display: block;
}
#overlay-menu {
display: block;
position: fixed;
top: 70px;
right: 20px;
z-index: 200;
border-radius: 3px;
.transition(right linear 0.3s);
li {
width: 40px;
border-radius: 3px;
padding-left: 14px;
background: #515f6a url(/media/img/firefox/partners/menu-icons.png) 0 -910px no-repeat;
a {
background-position: 50% -790px;
border-radius: 0 3px 3px 0;
width: 40px;
height: 40px;
}
&.active a { background-position: 50% -850px; }
}
&.form-open {
right: 320px;
@shadow: 0 1px rgba(255,255,255,0.8);
opacity: 0.9;
.box-shadow(@shadow);
li {
background-position: -46px -910px;
@shadow: 1px 2px 2px rgba(0,0,0,0.4) inset, 0 0 0 1px rgba(0,0,0,0.2) inset;
.box-shadow(@shadow);
a {
background-position: 50% -850px;
background-color: rgba(255,255,255,0.4);
}
}
}
}
/* }}} */
/* {{{ Large Phone */
.js #phone-common {
display: none;
}
.phone-container {
height: 586px;
width: 327px;
position: absolute;
z-index: 120;
top: 200px;
left: 50%;
margin-left: 166px;
.phone {
height: 586px;
width: 327px;
}
.phone-overlay {
position: absolute;
top: 0;
left: 0;
background: url(/media/img/firefox/partners/phone-overlay.png) 0 0 no-repeat;
height: 586px;
width: 327px;
}
.screen {
position: absolute;
top: 79px;
left: 41px;
height: 373px;
width: 244px;
display: none;
}
#screen-overview {
display: block;
background: url(/media/img/firefox/partners/screen-overview.jpg) 0 0 no-repeat;
#foxtail {
height: 156px;
width: 156px;
position: absolute;
top: 90px;
left: 30px;
background: url(/media/img/firefox/partners/foxtail.png) 0 0 no-repeat;
}
}
#screen-os {
background: url(/media/img/firefox/partners/phone-os-screenshots.jpg) 0 0 repeat-x;
-moz-animation: os-screenslide 20s ease infinite alternate;
-webkit-animation: os-screenslide 20s ease infinite alternate;
animation: os-screenslide 20s ease infinite alternate;
}
@keyframes os-screenslide {
0% { background-position: 0 0; }
20% { background-position: 0 0; }
22% { background-position: -244px 0; }
42% { background-position: -244px 0; }
44% { background-position: -488px 0; }
64% { background-position: -488px 0; }
66% { background-position: -732px 0; }
100% { background-position: -732px 0; }
}
@-moz-keyframes os-screenslide {
0% { background-position: 0 0; }
20% { background-position: 0 0; }
22% { background-position: -244px 0; }
42% { background-position: -244px 0; }
44% { background-position: -488px 0; }
64% { background-position: -488px 0; }
66% { background-position: -732px 0; }
100% { background-position: -732px 0; }
}
@-webkit-keyframes os-screenslide {
0% { background-position: 0 0; }
20% { background-position: 0 0; }
22% { background-position: -244px 0; }
42% { background-position: -244px 0; }
44% { background-position: -488px 0; }
64% { background-position: -488px 0; }
66% { background-position: -732px 0; }
100% { background-position: -732px 0; }
}
#screen-marketplace {
background: url(/media/img/firefox/partners/phone-marketplace-screenshot.jpg) 0 0 no-repeat;
}
}
.phone-shadow {
opacity: 0;
position: absolute;
top: 682px;
left: 50%;
margin-left: 166px;
width: 327px;
height: 104px;
background: url(/media/img/firefox/partners/phone-shadow.png) 50% 100% no-repeat;
background-size: 50%;
.transition(all ease 0.5s);
&.visible {
background-size: 100%;
opacity: 1;
}
}
.android-phone-container {
top: auto;
bottom: -600px;
height: 636px;
.transition(all ease 1s);
.phone {
background: url(/media/img/firefox/partners/phone-android-shadow.png) 50% 100% no-repeat;
height: 636px;
}
.phone-overlay {
background: url(/media/img/firefox/partners/phone-android.png) 50% 100% no-repeat;
height: 636px;
}
&.android-phone-visible {
bottom: 30px;
}
}
/* }}} */
/* {{{ Form */
.js #form {
.close { display: inline; }
display: none;
height: 820px;
}
#pageslide {
background: #1e2023 url(/media/img/firefox/partners/form-bg.jpg) 0 0 repeat-y;
}
/* }}} */
/* {{{ l10n tweaks */
/* German */
html[lang="de"] {
#overview h2 {
font-size: 66px;
}
}
html[lang="fr"],
html[lang="pt-BR"] {
#overview h2 {
font-size: 72px;
}
}
html[lang="pl"] {
#explore,
#overview .intro #more-partners {
display: none;
}
}
html[lang="zh-CN"] {
#overview .intro p {
padding: 0 10px;
}
}
/* }}} */

Просмотреть файл

@ -0,0 +1,44 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
@import "../../sandstone/lib.less";
body {
#masthead {
position: relative;
left: auto;
top: auto;
margin-left: auto;
margin-right: auto;
width: @widthDesktop;
}
#partner-nav {
position: relative;
left: auto;
top: auto;
margin-left: auto;
margin-right: auto;
width: @widthDesktop;
}
#article-wrapper {
overflow: visible;
height: auto;
}
.phone-container, .marketplacegiantfox { display: none; }
.partner-article {
.article-header {
position: static;
.intro {
padding-top: 20px;
}
}
section {
padding-top: 0;
}
}
}
* {
zoom: 1;
}

Просмотреть файл

@ -4,6 +4,23 @@
@import "sandstone/lib.less";
/* {{{ Meta Web Pro Black Italic font for Firefox OS MWCpromo */
/* first for IE 6/7/8 */
@font-face {
font-family: MetaWebPro-BlackIta;
src: url('/media/fonts/MetaWebPro-BlackIta.eotlite');
}
/* then for Mozilla browsers -> Firefox */
@font-face {
font-family: MetaWebPro-BlackIta;
src: url('/media/fonts/MetaWebPro-BlackIta.woff') format('woff');
}
/* }}} */
/* {{{ Vollkorn font for Firefox Flicks promo */
@font-face {
@ -343,16 +360,19 @@
}
}
#promo-mwc-preview,
#page-promo-mwc-preview {
#promo-mwc-announce,
#page-promo-mwc-announce {
.content {
width: 80%;
}
h3 {
font-family: MetaWebPro-BlackIta;
text-transform: uppercase;
}
h4 {
width: 70%;
.open-sans;
width: 90%;
font-size: 20px;
line-height: 1.2;
line-height: 1.3;
}
}
@ -554,8 +574,11 @@
}
}
#promo-mwc-preview,
#page-promo-mwc-preview {
#promo-mwc-announce,
#page-promo-mwc-announce {
h3 {
font-size: 50px;
}
h4 {
font-size: 16px;
}
@ -698,8 +721,11 @@
font-size: 28px;
}
#promo-mwc-preview,
#page-promo-mwc-preview {
#promo-mwc-announce,
#page-promo-mwc-announce {
h3 {
font-size: 32px;
}
h4 {
width: auto;
}
@ -822,8 +848,8 @@
font-size: 28px;
}
#promo-mwc-preview,
#page-promo-mwc-preview {
#promo-mwc-announce,
#page-promo-mwc-announce {
.content {
width: auto;
h4 {
@ -854,8 +880,8 @@
padding-top: 179px;
}
}
#promo-mwc-preview,
#page-promo-mwc-preview {
#promo-mwc-announce,
#page-promo-mwc-announce {
.content {
width: auto;
h3 {

Просмотреть файл

@ -0,0 +1,21 @@
#pageslide {
/* These styles MUST be included. Do not change. */
display: none;
position: absolute;
position: fixed;
top: 0;
height: 100%;
z-index: 999999;
/* Specify the width of your pageslide here */
width: 260px;
padding: 20px;
overflow-y: scroll;
/* These styles are optional, and describe how the pageslide will look */
background-color: #333;
color: #FFF;
-webkit-box-shadow: inset 0 0 5px 5px #222;
-moz-shadow: inset 0 0 5px 5px #222;
box-shadow: inset 0 0 5px 5px #222;
}

Просмотреть файл

@ -127,78 +127,15 @@
position: relative;
}
#apps-bag {
#apps-hero-background {
position: absolute;
top: -300px;
width: 488px;
height: 488px;
bottom: 120px;
right: 0;
width: 344px;
height: 858px;
background: url(/media/img/marketplace/apps-firefox-hero.png) 0 100% no-repeat;
}
#apps-bag-background {
position: absolute;
width: 344px;
height: 108px;
bottom: 216px;
left: 0;
background: url(/media/img/marketplace/apps-bag.png) 0 100% no-repeat;
}
#apps-bag-handle {
pointer-events: none;
position: absolute;
width: 202px;
height: 60px;
bottom: 216px;
left: 71px;
z-index: 10;
background: url(/media/img/marketplace/apps-bag.png) -71px 0 no-repeat;
}
#apps-bag-foreground {
position: absolute;
width: 344px;
height: 216px;
bottom: 0;
left: 0;
z-index: 10;
background: url(/media/img/marketplace/apps-bag.png) 0 -61px no-repeat;
}
#apps-container {
position: absolute;
width: 260px;
height: 658px;
bottom: 150px;
left: 37px;
}
#apps-physics {
position: relative;
width: 260px;
height: 658px;
}
#apps-container .apps-icon {
margin: 0;
padding: 0;
width: 96px;
height: 96px;
display: none;
background: url(/media/img/marketplace/apps-icons.png) no-repeat;
background-position: 0 0;
&#app-jauntly { background-position: 0 0; }
&#app-minimalist { background-position: -96px 0; }
&#app-pomodoro { background-position: -192px 0; }
&#app-solitaire { background-position: 0 -96px; }
&#app-soundcloud { background-position: -96px -96px; }
&#app-distantorbit { background-position: -192px -96px; }
&#app-twitter { background-position: 0 -192px; }
&#app-wired { background-position: -96px -192px; }
&#app-wordwars { background-position: -192px -192px; }
}
#apps-list {
.inset;
padding-top: 20px;
@ -468,10 +405,6 @@
/* Mobile layout: 320px */
@media only screen and (max-width: @breakTablet) {
#apps-bag {
display: none;
}
#main-feature {
p,
hgroup {

Просмотреть файл

@ -53,9 +53,10 @@ a {
.sky {
#outer-wrapper {
background-color: #eee;
background-image: url(/media/img/sandstone/bg-sky.png);
background-repeat: repeat-x;
background: #eee url(/media/img/sandstone/grain.png) repeat;
background: url(/media/img/sandstone/bg-gradient-sky.png) repeat-x 0 0,
url(/media/img/sandstone/grain.png) repeat 0 0,
#eee;
}
a {
@ -719,6 +720,32 @@ nav.menu-bar {
}
/* }}} */
/* {{{ MWC badge */
#mwc-badge {
display: none;
position: absolute;
left: 0;
top: 0;
z-index: 999;
}
.mwc2013 #mwc-badge {
display: block;
}
#mwc-badge a {
display: block;
text-indent: -999em;
overflow: hidden;
width: 140px;
height: 140px;
background: url(/media/img/firefox/partners/mwc_badge-corner.png) no-repeat;
color: #fff;
border-bottom-right-radius: 100%;
}
/* }}} */
/* {{{ Responsive Grid */
/* Tablet Layout: 760px */
@ -1044,6 +1071,10 @@ nav.menu-bar {
top: -10px;
}
.mwc2013 #mwc-badge {
display: none;
}
}

Просмотреть файл

@ -47,9 +47,10 @@ a {
.sky {
#outer-wrapper {
background-color: #eee;
background-image: url(/media/img/sandstone/bg-sky.png);
background-repeat: repeat-x;
background: #eee url(/media/img/sandstone/grain.png) repeat;
background: url(/media/img/sandstone/bg-gradient-sky.png) repeat-x 0 0,
url(/media/img/sandstone/grain.png) repeat 0 0,
#eee;
}
a {
@ -289,6 +290,34 @@ input[type=text]:focus {
}
/* }}} */
/* {{{ MWC badge */
#mwc-badge {
display: none;
position: absolute;
left: 0;
top: 0;
z-index: 999;
}
.mwc2013 #mwc-badge {
display: block;
}
#mwc-badge a {
display: block;
text-indent: -999em;
overflow: hidden;
width: 140px;
height: 140px;
background: url(/media/img/firefox/partners/mwc_badge-corner.png) no-repeat;
color: #fff;
border-bottom-right-radius: 100%;
}
/* }}} */
/* {{{ Less Framework Grid */
/* Default Layout: 992px.

Просмотреть файл

@ -36,6 +36,20 @@
font-style: normal;
}
/* Meta Web Pro Black Italic font for Firefox OS MWCpromo */
/* first for IE 6/7/8 */
@font-face {
font-family: MetaWebPro-BlackIta;
src: url('/media/fonts/MetaWebPro-BlackIta.eotlite');
}
/* then for Mozilla browsers -> Firefox */
@font-face {
font-family: MetaWebPro-BlackIta;
src: url('/media/fonts/MetaWebPro-BlackIta.woff') format('woff');
}
// Tab
@ -290,8 +304,6 @@
display: block;
padding: 40px 35px 40px 95px;
height: 130px;
background-image: url('/media/img/tabzilla/promo-flicks.png');
background-position: 20px 37px;
background-repeat: no-repeat;
color: #484848;
-webkit-transition: all 0.2s ease-in-out;
@ -315,10 +327,10 @@
#tabzilla-promo .snippet#tabzilla-promo-flicks a {
padding: 40px 35px;
background-color: #212a2f;
background-color: #212a2f;
background-image: url('/media/img/tabzilla/promo-flicks.jpg');
background-position: 0 100%;
overflow: hidden;
overflow: hidden;
}
#tabzilla-promo .snippet#tabzilla-promo-flicks a h4,
@ -327,59 +339,30 @@
left: -400px;
}
#tabzilla-promo .snippet#tabzilla-promo-beta a {
background-image: url('/media/img/tabzilla/promo-beta.jpg');
#tabzilla-promo .snippet#tabzilla-promo-mwc a {
background-image: url('/media/img/tabzilla/promo-mwc.jpg');
background-position: 0 0;
background-color: #226aa7;
color: #fff;
font-size: 12px;
padding: 50px 15px 30px 145px;
padding: 20px;
height: 170px;
line-height: 20px;
}
#tabzilla-promo .snippet#tabzilla-promo-beta a b {
white-space: nowrap;
}
#tabzilla-promo .snippet#tabzilla-promo-mobile a {
background-image: url('/media/img/tabzilla/promo-mobile.jpg');
background-position: 0 0;
background-color: #69acc7;
color: #fff;
font-size: 12px;
padding: 40px 12px 30px 140px;
height: 140px;
line-height: 20px;
text-shadow: none;
}
#tabzilla-promo .snippet#tabzilla-promo-mobile a h4 {
color: #fff;
text-transform: none;
font-size: 32px;
letter-spacing: -1px;
font-family: 'Open Sans Light';
font-weight: normal;
text-shadow: none;
width: 100px;
}
#tabzilla-promo .snippet#tabzilla-promo-donate a {
background-image: url('/media/img/tabzilla/promo-donate.jpg');
background-position: 0 0;
background-color: #0095dd;
color: #fff;
padding: 20px 10px 0 182px;
height: 190px;
}
#tabzilla-promo .snippet#tabzilla-promo-donate h4 {
font-size: 24px;
color: #fff;
font-weight: normal;
font-family: 'Open Sans Light', sans-serif;
text-transform: none;
text-shadow: none;
h4 {
text-shadow: none;
color: #fff;
font-family: MetaWebPro-BlackIta;
text-transform: uppercase;
font-weight: normal;
font-size: 46px;
line-height: 46px;
margin-bottom: 5px;
}
p {
font-size: 16px;
width: 150px;
margin-bottom: 10px;
}
}
@media only screen and (min-width: 720px) and (max-width: 979px) {

Двоичные данные
media/fonts/MetaWebPro-BlackIta.eotlite Executable file

Двоичный файл не отображается.

Двоичные данные
media/fonts/MetaWebPro-BlackIta.woff Executable file

Двоичный файл не отображается.

Двоичные данные
media/fonts/journal-webfont.eot Normal file

Двоичный файл не отображается.

Двоичные данные
media/fonts/journal-webfont.ttf Normal file

Двоичный файл не отображается.

Двоичные данные
media/fonts/journal-webfont.woff Normal file

Двоичный файл не отображается.

Двоичные данные
media/img/firefox/fx/android-four-stars.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Двоичные данные
media/img/firefox/fx/android-phone-tablet.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 79 KiB

Двоичные данные
media/img/firefox/mobile/android.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/android-dude.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 43 KiB

Двоичные данные
media/img/firefox/partners/android-partners-bg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 320 KiB

Двоичные данные
media/img/firefox/partners/android-tablet-frame.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Двоичные данные
media/img/firefox/partners/android-tablet-screen.jpg Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 72 KiB

Двоичные данные
media/img/firefox/partners/android-title.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичные данные
media/img/firefox/partners/closex.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 324 B

После

Ширина:  |  Высота:  |  Размер: 337 B

Двоичные данные
media/img/firefox/partners/dark-box.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 417 KiB

Двоичные данные
media/img/firefox/partners/divider.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.3 KiB

Двоичные данные
media/img/firefox/partners/firefoxos-giantfox-back.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 103 KiB

Двоичные данные
media/img/firefox/partners/firefoxos-giantfox-front.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 78 KiB

Двоичные данные
media/img/firefox/partners/firefoxos-title.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 19 KiB

Двоичные данные
media/img/firefox/partners/form-bg.jpg Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.4 KiB

Двоичные данные
media/img/firefox/partners/foxtail.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 98 KiB

Двоичные данные
media/img/firefox/partners/google-play.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.5 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/americamovil.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/chinaunicom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/dt.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/ebay.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/etisalat.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/kddi.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/koreatelecom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/lg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/megafon.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.7 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/portugaltelecom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/qualcomm.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/singtel.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/smartcom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.4 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/sprint.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/tcl.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/telecomitalia.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/telefonica.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/telenor.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.0 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/tmn.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 648 B

Двоичные данные
media/img/firefox/partners/logos/dark/vimpelcom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Двоичные данные
media/img/firefox/partners/logos/dark/zte.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Двоичные данные
media/img/firefox/partners/logos/light/abril.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Двоичные данные
media/img/firefox/partners/logos/light/accuweather.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Двоичные данные
media/img/firefox/partners/logos/light/airbnb.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.7 KiB

Двоичные данные
media/img/firefox/partners/logos/light/americamovil.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.7 KiB

Двоичные данные
media/img/firefox/partners/logos/light/bostonglobe.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.5 KiB

Двоичные данные
media/img/firefox/partners/logos/light/box.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичные данные
media/img/firefox/partners/logos/light/chillingo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Двоичные данные
media/img/firefox/partners/logos/light/chinaunicom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Двоичные данные
media/img/firefox/partners/logos/light/cuttherope.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 7.7 KiB

Двоичные данные
media/img/firefox/partners/logos/light/dictionary-com.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Двоичные данные
media/img/firefox/partners/logos/light/disney.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 9.7 KiB

Двоичные данные
media/img/firefox/partners/logos/light/dt.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Двоичные данные
media/img/firefox/partners/logos/light/ea.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Двоичные данные
media/img/firefox/partners/logos/light/ebay.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичные данные
media/img/firefox/partners/logos/light/editoraglobo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 117 B

Двоичные данные
media/img/firefox/partners/logos/light/engadget.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичные данные
media/img/firefox/partners/logos/light/etisalat.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/logos/light/facebook.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Двоичные данные
media/img/firefox/partners/logos/light/foxnews.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.4 KiB

Двоичные данные
media/img/firefox/partners/logos/light/here-com.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Двоичные данные
media/img/firefox/partners/logos/light/kddi.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.0 KiB

Двоичные данные
media/img/firefox/partners/logos/light/koreatelecom.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Двоичные данные
media/img/firefox/partners/logos/light/lanyrd.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше