* Localize Django templates
This commit is contained in:
Pomax 2019-11-14 11:18:26 -08:00 коммит произвёл GitHub
Родитель 5c06fb62d8
Коммит 747cdfa824
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
37 изменённых файлов: 2017 добавлений и 100 удалений

1
.gitignore поставляемый
Просмотреть файл

@ -53,7 +53,6 @@ coverage.xml
# Translations # Translations
*.mo *.mo
*.pot
# Django stuff: # Django stuff:
*.log *.log

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

@ -82,6 +82,7 @@ jobs:
- pipenv run python network-api/manage.py sync_page_translation_fields - pipenv run python network-api/manage.py sync_page_translation_fields
- pipenv run python network-api/manage.py update_translation_fields - pipenv run python network-api/manage.py update_translation_fields
- pipenv run python network-api/manage.py load_fake_data - pipenv run python network-api/manage.py load_fake_data
- pipenv run python network-api/manage.py compilemessages
script: npm run percy script: npm run percy
- stage: Deploy - stage: Deploy
name: Deploy Maintenance page to S3 name: Deploy Maintenance page to S3

2
CODEOWNERS Normal file
Просмотреть файл

@ -0,0 +1,2 @@
# Théo as main contact for string changes
network-api/locale/templates/LC_MESSAGES/* @TheoChevalier

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

@ -26,7 +26,7 @@
## How to Setup your Dev Environment with Pipenv and Invoke ## How to Setup your Dev Environment with Pipenv and Invoke
**Requirements**: [Node](https://nodejs.org), [npm](https://www.npmjs.com/), [git](https://git-scm.com/), [python3.6 or later](https://www.python.org/), [pip](https://pypi.python.org/pypi), [pipenv](https://docs.pipenv.org/), [invoke](https://www.pyinvoke.org/installing.html). **Requirements**: [Node](https://nodejs.org), [npm](https://www.npmjs.com/), [git](https://git-scm.com/), [python3.6 or later](https://www.python.org/), [pip](https://pypi.python.org/pypi), [pipenv](https://docs.pipenv.org/), [invoke](https://www.pyinvoke.org/installing.html), [gettext](https://www.gnu.org/software/gettext/).
If you installed [Python with Homebrew](https://docs.brew.sh/Homebrew-and-Python), use `pip3 install` instead of `pip install` when installing the relevant requirements. If you installed [Python with Homebrew](https://docs.brew.sh/Homebrew-and-Python), use `pip3 install` instead of `pip install` when installing the relevant requirements.
@ -34,7 +34,8 @@ If you installed [Python with Homebrew](https://docs.brew.sh/Homebrew-and-Python
- `python --version` should return 3.7 or higher, - `python --version` should return 3.7 or higher,
- `pipenv --version` should return 11.10 or higher, - `pipenv --version` should return 11.10 or higher,
- `invoke --version` should return 0.22.1 or higher. - `invoke --version` should return 0.22.1 or higher,
- `gettext --version` should return 0.20.1 or higher.
### Setup steps ### Setup steps

36
bin/post_compile Normal file
Просмотреть файл

@ -0,0 +1,36 @@
#!/usr/bin/env bash
GETTEXT_SHA256="2f991a49b3fb616a032490c907cb700966c5fd998d2aa12b86d547a93746ed66"
GETTEXT_TARBALL="https://assets.mofoprod.net/gettext/gettext-0.20.1.tar.xz"
echo "-----> Downloading and installing gettext tools"
cd $BUILD_DIR
# Ensure the file was not cached
rm -f gettext.tar.xz
# Fetch our precompiled gettext package
curl -s -L -o gettext.tar.xz $GETTEXT_TARBALL
# Verify the contents of the package
if [ "$GETTEXT_SHA256" != "$(sha256sum gettext.tar.xz | cut -d ' ' -f 1)" ]; then
echo "Checksum doesn't match. gettext tools will not be installed."
exit 1
fi
# Extract the gettext tools
tar -xf gettext.tar.xz > /dev/null
# clean up
rm gettext.tar.xz
# Update PATH and LD_LIBRARY_PATH so that gettext binaries are available and can run.
PATH=$BUILD_DIR/gettext/bin:$PATH
LD_LIBRARY_PATH=$BUILD_DIR/gettext/lib:$LD_LIBRARY_PATH
# Copy the latest Portuguese (Brazil) file translated from Pontoon into the folder consumed by Django
cp $BUILD_DIR/locale/pt_BR/LC_MESSAGES/django.po $BUILD_DIR/locale/pt/LC_MESSAGES/django.po
# Compile localized strings
python $BUILD_DIR/manage.py compilemessages

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

@ -15,3 +15,7 @@ COPY Pipfile Pipfile.lock ./
# Install app deps # Install app deps
RUN pipenv install -d RUN pipenv install -d
RUN apt-get update && apt-get install -y \
gettext \
--no-install-recommends && rm -rf /var/lib/apt/lists/*

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

@ -1,3 +0,0 @@
# Homepage
MLN = Mozilla Foundation

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

@ -0,0 +1,256 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:25+0000\n"
"PO-Revision-Date: 2019-10-21 22:59+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.2.4\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr ""
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr ""
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr ""
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] ""
msgstr[1] ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
#, fuzzy
#| msgid "Load more stories"
msgid "Load more results"
msgstr "Mehr Storys laden"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr "Mehr Storys laden"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr "Bei Mozilla mitmachen"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr "Scrollen"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr "28 Gründe, warum YouTube sich ändern muss: erschreckende Berichte von YouTube-Empfehlungen und wie Leute dadurch auf Abwege geraten"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr ""

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

@ -0,0 +1,256 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:25+0000\n"
"PO-Revision-Date: 2019-10-21 23:01+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.2.4\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr ""
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr ""
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr ""
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] ""
msgstr[1] ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
#, fuzzy
#| msgid "Load more stories"
msgid "Load more results"
msgstr "Subir más historias"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr "Subir más historias"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr "Únete a Mozilla"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr "Desplazamiento"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr "28 razones por las que YouTube debe cambiar: historias desconcertantes acerca de recomendaciones de YouTube que llevaron a las personas por rumbos extraños y peligrosos"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr ""

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

@ -0,0 +1,254 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:25+0000\n"
"PO-Revision-Date: 2019-11-13 11:39+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.2.4\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr "Page introuvable"
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr "Langue"
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr "Fondation Mozilla"
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr "Oups…"
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr "Désolé, cette page nexiste pas"
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr "<a href=\"mailto:%(email)s\">Contactez-nous</a> ou vous pouvez…"
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr "Revenir à la page daccueil"
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr "Nous aimons tous le Web. Rejoignez Mozilla pour le défendre."
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr "Protégeons la principale ressource mondiale pour les générations futures."
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr "Faire un don"
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr "Pour en savoir plus à notre sujet"
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr "Twitter"
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr "Instagram"
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr "GitHub"
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr "Faire un don"
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr "Mentions légales"
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr "Licence"
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr "Directives relatives à la participation"
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr "Confidentialité"
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr "Cookies"
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr "Mozilla est une organisation internationale à but non lucratif, déterminée à vous faire reprendre le contrôle de votre vie numérique en ligne et à définir lavenir du Web dans lintérêt de tous. Plus dinformations sur <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr "Accueil"
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr "Lettre dinformation"
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr "Non merci"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr "JAGIS"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr "Plus darticles de notre blog"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr "%(title)s par @mozilla"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr "Par %(author)s"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr "Par %(author)s le %(date)s"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr "Dernières actualités"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr "par %(author)s"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr "le %(date)s"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr "Tout cela fait partie dun mouvement plus large pour un Internet plus sain. <a %(see_more_link)s>En savoir plus</a>."
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr "Articles connexes"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr "En ce moment"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr "Projets en tendance"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr "Ajouter votre projet"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr "Plus de projets de notre réseau"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr "Nous voulons fournir aux utilisateurs des connaissances pour leur permettre de prendre eux-même des décisions éclairées afin de lutter contre les pratiques abusives."
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr "Rishab Nithyanand, boursier Mozilla"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] "%(total_entries)s résultat"
msgstr[1] "%(total_entries)s résultats"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr "pour"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr "supprimer les filtres"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
msgid "Load more results"
msgstr "Afficher plus de résultats"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr "Afficher plus danecdotes"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr "Rejoindre Mozilla"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr "Faire défiler"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr "28 raisons pour lesquelles YouTube doit changer : des témoignages édifiants qui racontent comment les recommandations YouTube ont pu mener les internautes sur des voies étranges et dangereuses"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr "Vue densemble"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr "Militantisme"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr "Bulletin de santé dInternet"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr "Programme de bourses"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr "Awards"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr "MozFest"

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

@ -0,0 +1,256 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr ""
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr ""
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr ""
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
msgid "Load more results"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr ""

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

@ -0,0 +1,259 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:09+0000\n"
"PO-Revision-Date: 2019-11-13 16:11+0000\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Last-Translator: \n"
"Language-Team: \n"
"X-Generator: Poedit 2.2.4\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr ""
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr ""
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr ""
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] ""
msgstr[1] ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
msgid "Load more results"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr "Carregar mais histórias"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr "Junte-se à Mozilla"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr "Rolar"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr "28 razões pelas quais o YouTube precisa mudar: histórias surpreendentes das recomendações do YouTube levando pessoas a trilharem caminhos bizarros e perigosos"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr ""

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

@ -0,0 +1,259 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:09+0000\n"
"PO-Revision-Date: 2019-11-13 16:11+0000\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Last-Translator: \n"
"Language-Team: \n"
"X-Generator: Poedit 2.2.4\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr ""
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr ""
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr ""
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] ""
msgstr[1] ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
msgid "Load more results"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr "Carregar mais histórias"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr "Junte-se à Mozilla"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr "Rolar"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr "28 razões pelas quais o YouTube precisa mudar: histórias surpreendentes das recomendações do YouTube levando pessoas a trilharem caminhos bizarros e perigosos"
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr ""

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

@ -0,0 +1,259 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-13 16:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: network-api/networkapi/templates/404.html:4
msgid "Page Not Found"
msgstr ""
#: network-api/networkapi/templates/fragments/language_switcher.html:6
msgid "Language"
msgstr ""
#: network-api/networkapi/templates/pages/base.html:9
#: network-api/networkapi/templates/partials/primary_nav.html:46
msgid "Mozilla Foundation"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:7
msgid "Uh oh!"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:9
msgid "Sorry, the page does not exist"
msgstr ""
#: network-api/networkapi/templates/partials/404.html:10
#, python-format
msgid "<a href=\"mailto:%(email)s\">Contact us</a> or ..."
msgstr ""
#: network-api/networkapi/templates/partials/404.html:11
msgid "Go to home page"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:11
msgid "We all love the Web. Join Mozilla in defending it."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:12
msgid "Lets protect the worlds largest resource for future generations."
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:14
msgid "Donate now"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:38
msgid "More about us"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:41
msgid "Twitter"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:42
msgid "Instagram"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:43
msgid "GitHub"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:50
#: network-api/networkapi/templates/partials/primary_nav.html:67
msgid "Donate"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:51
msgid "Legal"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:52
msgid "License"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:53
msgid "Participation Guidelines"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:54
msgid "Privacy"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:55
msgid "Cookies"
msgstr ""
#: network-api/networkapi/templates/partials/footer.html:72
#, python-format
msgid "Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href=\"%(foundation_website_url)s\">%(foundation_website)s</a>"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:17
msgid "Home"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:19
#: network-api/networkapi/templates/partials/primary_nav.html:68
msgid "Newsletter"
msgstr ""
#: network-api/networkapi/templates/partials/primary_nav.html:88
msgid "No thanks"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/bannered_campaign_page.html:56
#: network-api/networkapi/wagtailpages/templates/wagtailpages/campaign_page.html:66
msgctxt "Sticky button in mobile view on campaign pages"
msgid "TAKE ACTION"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blocks/recent_blog_entries.html:14
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:72
msgid "More from our blog"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:27
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:44
#, python-format
msgid "%(title)s by @mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/blog_page.html:34
#, python-format
msgid "By %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/blog_card.html:37
#, python-format
msgid "By %(author)s on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:8
msgid "Latest news"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:31
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:58
#, python-format
msgid "by %(author)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:33
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/featured_blogs.html:60
#, python-format
msgid "on %(date)s"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/ih_cta.html:6
#, python-format
msgid "This is part of a broader movement for a healthy internet. <a %(see_more_link)s>See more</a>."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/fragments/related_posts.html:8
msgid "Related content"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:36
msgid "Happening now"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:72
msgid "Trending projects"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:75
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:86
msgid "Add your project"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:85
msgid "More from our network"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:95
msgid "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices."
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/homepage.html:96
msgid "Rishab Nithyanand, Mozilla Fellow"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:32
#, python-format
msgid "%(total_entries)s result"
msgid_plural "%(total_entries)s results"
msgstr[0] ""
msgstr[1] ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:37
msgctxt "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”"
msgid "for"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:48
msgid "clear filters"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/index_page.html:66
msgid "Load more results"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/load-more-regrets.html:4
msgid "Load more stories"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:36
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:37
msgid "Join Mozilla"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:43
msgid "Scroll"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/pages/youtube_regrets_page.html:47
msgid "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:30
#: network-api/networkapi/wagtailpages/utils.py:58
msgid "Overview"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:32
msgid "Advocacy"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:33
msgid "Internet Health Report"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:34
msgid "Fellowships"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:35
msgid "Awards"
msgstr ""
#: network-api/networkapi/wagtailpages/templates/wagtailpages/static/initiatives_page.html:36
msgid "MozFest"
msgstr ""

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

@ -15,7 +15,7 @@ import os
import environ import environ
import logging.config import logging.config
import dj_database_url import dj_database_url
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy
app = environ.Path(__file__) - 1 app = environ.Path(__file__) - 1
root = app - 1 root = app - 1
@ -367,12 +367,12 @@ AUTH_PASSWORD_VALIDATORS = [
LANGUAGE_CODE = 'en' LANGUAGE_CODE = 'en'
LANGUAGES = ( LANGUAGES = (
('en', _('English')), ('en', gettext_lazy('English')),
('de', _('German')), ('de', gettext_lazy('German')),
('pt', _('Portuguese')), ('pt', gettext_lazy('Portuguese')),
('es', _('Spanish')), ('es', gettext_lazy('Spanish')),
('fr', _('French')), ('fr', gettext_lazy('French')),
('pl', _('Polish')), ('pl', gettext_lazy('Polish')),
) )
TIME_ZONE = 'UTC' TIME_ZONE = 'UTC'
@ -380,6 +380,10 @@ USE_I18N = True
USE_L10N = True USE_L10N = True
USE_TZ = True USE_TZ = True
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
# Static files (CSS, JavaScript, Images) # Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/ # https://docs.djangoproject.com/en/1.10/howto/static-files/

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

@ -1,6 +1,7 @@
{% extends "pages/base.html" %} {% extends "pages/base.html" %}
{% load i18n %}
{% block page_title %}Page Not Found{% endblock %} {% block page_title %}{% trans "Page Not Found" %}{% endblock %}
{% block wagtail_metadata %}{% endblock %} {% block wagtail_metadata %}{% endblock %}

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

@ -3,7 +3,7 @@
<form action="{% url 'set_language' %}" method="post">{% csrf_token %} <form action="{% url 'set_language' %}" method="post">{% csrf_token %}
<input name="next" type="hidden" value="{{ request.path }}"> <input name="next" type="hidden" value="{{ request.path }}">
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-center mb-md-0"> <div class="d-flex flex-column flex-md-row align-items-md-center justify-content-center mb-md-0">
<label class="h5-heading mb-0 d-flex align-items-center globe-glyph medium" for="language-switcher">Language</label> <label class="h5-heading mb-0 d-flex align-items-center globe-glyph medium" for="language-switcher">{% trans "Language" %}</label>
<select name="language" id="language-switcher" class="mt-3 mt-md-0 ml-md-3 w-100 form-control" onchange="this.form.submit()"> <select name="language" id="language-switcher" class="mt-3 mt-md-0 ml-md-3 w-100 form-control" onchange="this.form.submit()">
{% get_current_language as LANGUAGE_CODE %} {% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %} {% get_available_languages as LANGUAGES %}

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

@ -6,7 +6,7 @@
<html lang="{{ lang_code }}"> <html lang="{{ lang_code }}">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>{% block page_title %}Mozilla Foundation - {% if page.specifics.seo_title %}{{ page.specifics.seo_title }}{% else %}{{ page.title }}{% endif %}{% endblock %}</title> <title>{% block page_title %}{% trans "Mozilla Foundation" %} - {% if page.specifics.seo_title %}{{ page.specifics.seo_title }}{% else %}{{ page.title }}{% endif %}{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token }}"> <meta name="csrf-token" content="{{ csrf_token }}">

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

@ -1,12 +1,14 @@
{% load i18n %}
<div class="container"> <div class="container">
<div class="row py-md-5 d-flex align-items-center"> <div class="row py-md-5 d-flex align-items-center">
<div class="col-md-5 offset-md-1 py-5"> <div class="col-md-5 offset-md-1 py-5">
<div class="mb-4"> <div class="mb-4">
<h1 class="h1-heading">Uh oh!</h1> <h1 class="h1-heading">{% trans "Uh oh!" %}</h1>
</div> </div>
<p class="h5-black">Sorry, the page does not exist</p> <p class="h5-black">{% trans "Sorry, the page does not exist" %}</p>
<p><a href="mailto:{% if email %}{{ email }}{% else %}network@mozillafoundation.org{% endif %}">Contact us</a> or ...</p> <p>{% blocktrans with email=email|default:'network@mozillafoundation.org' %}<a href="mailto:{{email}}">Contact us</a> or ...{% endblocktrans %}</p>
<a href="/" class="btn btn-secondary">Go to home page</a> <a href="/" class="btn btn-secondary">{% trans "Go to home page" %}</a>
</div> </div>
<div class="col-md-5 pt-5 p-md-5 flex-first flex-md-last"> <div class="col-md-5 pt-5 p-md-5 flex-first flex-md-last">
<img src="/_images/404.svg" class="w-100" alt="Sad anthropomorphized 404"> <img src="/_images/404.svg" class="w-100" alt="Sad anthropomorphized 404">

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

@ -1,4 +1,4 @@
{% load settings_value %} {% load settings_value i18n %}
{% with wrapper_class="py-5" %} {% with wrapper_class="py-5" %}
@ -8,10 +8,10 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<h3 class="h3-heading mb-0">We all love the Web. Join Mozilla in defending it.</h3> <h3 class="h3-heading mb-0">{% trans "We all love the Web. Join Mozilla in defending it." %}</h3>
<h4 class="h3-heading mb-4">Lets protect the worlds largest resource for future generations.</h4> <h4 class="h3-heading mb-4">{% trans "Lets protect the worlds largest resource for future generations." %}</h4>
<div> <div>
<a href="https://donate.mozilla.org/" target="_blank" rel="noopener noreferrer" class="btn btn-secondary dark-theme">Donate now</a> <a href="https://donate.mozilla.org/" target="_blank" rel="noopener noreferrer" class="btn btn-secondary dark-theme">{% trans "Donate now" %}</a>
</div> </div>
</div> </div>
</div> </div>
@ -35,24 +35,24 @@
<div class="col-md-6 col-lg-5 offset-md-1 d-flex flex-column justify-content-between"> <div class="col-md-6 col-lg-5 offset-md-1 d-flex flex-column justify-content-between">
<div class="row"> <div class="row">
<div class="col-lg-6 col-xl-5"> <div class="col-lg-6 col-xl-5">
<h5 class="h5-heading">More about us</h5> <h5 class="h5-heading">{% trans "More about us" %}</h5>
<ul class="d-flex"> <ul class="d-flex">
{% block social_links %} {% block social_links %}
<li class="mr-2"><a class="twitter-glyph small d-inline-block" href="https://twitter.com/mozilla"><span class="sr-only">Twitter</span></a></li> <li class="mr-2"><a class="twitter-glyph small d-inline-block" href="https://twitter.com/mozilla"><span class="sr-only">{% trans "Twitter" %}</span></a></li>
<li class="mr-2"><a class="instagram-glyph small d-inline-block" href="https://www.instagram.com/mozilla/"><span class="sr-only">Instagram</span></a></li> <li class="mr-2"><a class="instagram-glyph small d-inline-block" href="https://www.instagram.com/mozilla/"><span class="sr-only">{% trans "Instagram" %}</span></a></li>
<li class="mr-2"><a class="github-glyph small d-inline-block" href="https://www.github.com/mozilla/foundation.mozilla.org/"><span class="sr-only">Github</span></a></li> <li class="mr-2"><a class="github-glyph small d-inline-block" href="https://www.github.com/mozilla/foundation.mozilla.org/"><span class="sr-only">{% trans "GitHub" %}</span></a></li>
{% endblock %} {% endblock %}
</ul> </ul>
</div> </div>
<div class="col-lg-6 col-xl-7"> <div class="col-lg-6 col-xl-7">
<ul class="link-list list-unstyled mb-0"> <ul class="link-list list-unstyled mb-0">
{% block general_links %} {% block general_links %}
<li><a id="donate-footer-btn" href="https://donate.mozilla.org/" target="_blank" rel="noopener noreferrer" class="dark-theme">Donate</a></li> <li><a id="donate-footer-btn" href="https://donate.mozilla.org/" target="_blank" rel="noopener noreferrer" class="dark-theme">{% trans "Donate" %}</a></li>
<li><a href="https://www.mozilla.org/about/legal/terms/mozilla/" class="dark-theme">Legal</a></li> <li><a href="https://www.mozilla.org/about/legal/terms/mozilla/" class="dark-theme">{% trans "Legal" %}</a></li>
<li><a href="https://creativecommons.org/licenses/by/4.0" class="dark-theme">License</a></li> <li><a href="https://creativecommons.org/licenses/by/4.0" class="dark-theme">{% trans "License" %}</a></li>
<li><a href="https://www.mozilla.org/about/governance/policies/participation/" class="dark-theme">Participation Guidelines</a></li> <li><a href="https://www.mozilla.org/about/governance/policies/participation/" class="dark-theme">{% trans "Participation Guidelines" %}</a></li>
<li><a href="https://mozilla.org/privacy/websites/" class="dark-theme">Privacy</a></li> <li><a href="https://mozilla.org/privacy/websites/" class="dark-theme">{% trans "Privacy" %}</a></li>
<li><a href="https://www.mozilla.org/privacy/websites/#cookies" class="dark-theme">Cookies</a></li> <li><a href="https://www.mozilla.org/privacy/websites/#cookies" class="dark-theme">{% trans "Cookies" %}</a></li>
{% endblock %} {% endblock %}
</ul> </ul>
</div> </div>
@ -69,7 +69,7 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<hr class="my-5" /> <hr class="my-5" />
<p class="dark-theme body-small mb-0">Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href="https://foundation.mozilla.org">foundation.mozilla.org</a></p> <p class="dark-theme body-small mb-0">{% blocktrans with foundation_website_url='https://foundation.mozilla.org' foundation_website='foundation.mozilla.org' %}Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the web for the public good. Visit us at <a href="{{foundation_website_url}}">{{foundation_website}}</a>{% endblocktrans %}</p>
</div> </div>
</div> </div>
</div> </div>

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

@ -1,4 +1,4 @@
{% load primary_active_nav %} {% load primary_active_nav i18n %}
{% if page.zen_nav == True %}<div id="primary-nav-container" data-nav-mode="zen" class="zen-mode"> {% if page.zen_nav == True %}<div id="primary-nav-container" data-nav-mode="zen" class="zen-mode">
{% else %}<div id="primary-nav-container"> {% else %}<div id="primary-nav-container">
@ -14,9 +14,9 @@
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<div class="nav-links pt-3"> <div class="nav-links pt-3">
<div><a class="{% primary_active_nav request menu_root.full_url menu_root.full_url %}" href="{{ menu_root.url }}">Home</a></div> <div><a class="{% primary_active_nav request menu_root.full_url menu_root.full_url %}" href="{{ menu_root.url }}">{% trans "Home" %}</a></div>
{% include "fragments/nav_links.html" with pre="<div>" post="</div>" %} {% include "fragments/nav_links.html" with pre="<div>" post="</div>" %}
<div class="mt-2"><button class="btn btn-secondary btn-newsletter">Newsletter</button></div> <div class="mt-2"><button class="btn btn-secondary btn-newsletter">{% trans "Newsletter" %}</button></div>
</div> </div>
</div> </div>
</div> </div>
@ -43,7 +43,7 @@
<div class="burger-bar burger-bar-middle"></div> <div class="burger-bar burger-bar-middle"></div>
<div class="burger-bar burger-bar-bottom"></div> <div class="burger-bar burger-bar-bottom"></div>
</button> </button>
<a class="logo text-hide" href="/">Mozilla Foundation</a> <a class="logo text-hide" href="/">{% trans "Mozilla Foundation" %}</a>
{% endblock %} {% endblock %}
{% if page.zen_nav == True %} {% if page.zen_nav == True %}
@ -64,8 +64,8 @@
{% block donate_and_newsletter %} {% block donate_and_newsletter %}
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<a id="donate-header-btn" class="heart-glyph mr-md-3" href="https://donate.mozilla.org/" target="_blank" rel="noopener noreferrer">Donate</a> <a id="donate-header-btn" class="heart-glyph mr-md-3" href="https://donate.mozilla.org/" target="_blank" rel="noopener noreferrer">{% trans "Donate" %}</a>
<button class="btn btn-secondary btn-newsletter hidden-md-down">Newsletter</button> <button class="btn btn-secondary btn-newsletter hidden-md-down">{% trans "Newsletter" %}</button>
</div> </div>
{% endblock %} {% endblock %}
@ -85,7 +85,7 @@
<div class="col-12"> <div class="col-12">
<div class="join-us pt-5 on-nav" data-layout="2-column" data-form-position="header" data-button-position="side"></div> <div class="join-us pt-5 on-nav" data-layout="2-column" data-form-position="header" data-button-position="side"></div>
<div class="text-center mt-3 hidden-lg-up"> <div class="text-center mt-3 hidden-lg-up">
<button class="btn form-dismiss">No thanks</button> <button class="btn form-dismiss">{% trans "No thanks" %}</button>
</div> </div>
</div> </div>
</div> </div>

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

@ -1,6 +1,6 @@
from django.conf import settings from django.conf import settings
from django.utils.html import format_html_join from django.utils.html import format_html_join
from django.utils.translation import gettext as _ from django.utils.translation import gettext
from wagtail.core import hooks from wagtail.core import hooks
@ -30,7 +30,7 @@ def language_toggles():
""".format( """.format(
languages=", ".join(lang_codes), languages=", ".join(lang_codes),
language_code=settings.LANGUAGE_CODE, language_code=settings.LANGUAGE_CODE,
view_edit_string=_('View / edit fields for') view_edit_string=gettext('View / edit fields for')
) )
js_includes = format_html_join( js_includes = format_html_join(

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

@ -1,5 +1,5 @@
{% extends "./campaign_page.html" %} {% extends "./campaign_page.html" %}
{% load wagtailcore_tags mini_site_tags %} {% load wagtailcore_tags mini_site_tags i18n %}
{% block body_id %}{% if root.slug %}{{ root.slug }}{% else %}primary{% endif %}{% endblock%} {% block body_id %}{% if root.slug %}{{ root.slug }}{% else %}primary{% endif %}{% endblock%}
@ -53,7 +53,7 @@ An extra check has been added so as to not show the fixed "Take action" button o
> >
{% if page.cta != None %} {% if page.cta != None %}
<div class="narrow-sticky-button-container hidden"> <div class="narrow-sticky-button-container hidden">
<a href="#cta-anchor" class="btn btn-primary d-block">TAKE ACTION</a> <a href="#cta-anchor" class="btn btn-primary d-block">{% trans "TAKE ACTION" context "Sticky button in mobile view on campaign pages" %}</a>
</div> </div>
{% endif %} {% endif %}
<div class="sticky-cta"> <div class="sticky-cta">

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

@ -1,3 +1,5 @@
{% load i18n %}
{% if entries|length != 0 %} {% if entries|length != 0 %}
<div class="recent-blog-entries index-entries row my-default mx-0 d-flex flex-column {{ divider_styles }}"> <div class="recent-blog-entries index-entries row my-default mx-0 d-flex flex-column {{ divider_styles }}">
<div class="mb-4"> <div class="mb-4">
@ -9,7 +11,7 @@
{% if more_entries %} {% if more_entries %}
<div class="col-12 text-center mb-5"> <div class="col-12 text-center mb-5">
<a class="btn btn-secondary text" href="{{ more_entries_link }}"> <a class="btn btn-secondary text" href="{{ more_entries_link }}">
More from our blog {% trans "More from our blog" %}
</a> </a>
</div> </div>
{% endif %} {% endif %}

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

@ -1,13 +1,13 @@
{% extends "./modular_page.html" %} {% extends "./modular_page.html" %}
{% load wagtailcore_tags mini_site_tags %} {% load wagtailcore_tags mini_site_tags i18n %}
{% block coral_talk_meta %} {% block coral_talk_meta %}
{% if coral_talk %} {% if coral_talk %}
<meta property="article:author" content="{{ page.author }}" /> <meta property="article:author" content="{{ page.author }}" />
<meta property="article:published_time" content="{{ page.first_published_at|date:"F j, Y" }}"> <meta property="article:published_time" content="{{ page.first_published_at|date:"DATE_FORMAT" }}">
{% if page.last_published_at %} {% if page.last_published_at %}
<meta property="article:modified" content="{{ page.last_published_at|date:"F j, Y" }}"/> <meta property="article:modified" content="{{ page.last_published_at|date:"DATE_FORMAT" }}"/>
{% endif %} {% endif %}
{% with category=page.specific.category.first %} {% with category=page.specific.category.first %}
{% if category %} {% if category %}
@ -24,14 +24,14 @@
{% block subcontent %} {% block subcontent %}
<div class="offset-lg-1 col-lg-1 py-4 py-md-5 text-center"> <div class="offset-lg-1 col-lg-1 py-4 py-md-5 text-center">
<div class="blog-sticky-side hidden-md-down""> <div class="blog-sticky-side hidden-md-down"">
<div class="share-button-group-wrapper" data-version="mini" data-layout="stacked" data-share-text="{{page.title}} by @mozilla" data-link="{{ request.scheme }}://{{ request.get_host }}{{ request.get_full_path }}"></div> <div class="share-button-group-wrapper" data-version="mini" data-layout="stacked" data-share-text="{% blocktrans with title=page.title %}{{ title }} by @mozilla{% endblocktrans %}" data-link="{{ request.scheme }}://{{ request.get_host }}{{ request.get_full_path }}"></div>
</div> </div>
</div> </div>
<div class="py-4 py-md-5 col-lg-8"> <div class="py-4 py-md-5 col-lg-8">
<div class="cms {% if coral_talk %}mb-5{% endif %}"> <div class="cms {% if coral_talk %}mb-5{% endif %}">
<h1 class="h1-heading">{{ page.title }}</h1> <h1 class="h1-heading">{{ page.title }}</h1>
<p class="h6-heading mb-5"> <p class="h6-heading mb-5">
By {{ page.author }} | {% if page.first_published_at %}{{ page.first_published_at|date:"F j, Y" }}{% else %}not {% blocktrans with author=page.author %}By {{ author }}{% endblocktrans %} | {% if page.first_published_at %}{{ page.first_published_at|date:"DATE_FORMAT" }}{% else %}not
published yet{% endif %} published yet{% endif %}
{% with category=page.specific.category.first %} {% with category=page.specific.category.first %}
{% if category %} {% if category %}
@ -41,7 +41,7 @@
</p> </p>
<div class="blog-body"> <div class="blog-body">
{{ page.body }} {{ page.body }}
<div class="share-button-group-wrapper mt-5" data-share-text="{{page.title}} by @mozilla" data-link="{{ request.scheme }}://{{ request.get_host }}{{ request.get_full_path }}"></div> <div class="share-button-group-wrapper mt-5" data-share-text="{% blocktrans with title=page.title %}{{ title }} by @mozilla{% endblocktrans %}" data-link="{{ request.scheme }}://{{ request.get_host }}{{ request.get_full_path }}"></div>
</div> </div>
</div> </div>

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

@ -1,5 +1,5 @@
{% extends "./mini_site_name_space.html" %} {% extends "./mini_site_name_space.html" %}
{% load wagtailcore_tags mini_site_tags %} {% load wagtailcore_tags mini_site_tags i18n %}
{% comment %} {% comment %}
Note: we don't want the donation modal to pop up on Note: we don't want the donation modal to pop up on
@ -63,7 +63,7 @@
{% endif %}" {% endif %}"
> >
<div class="narrow-sticky-button-container hidden"> <div class="narrow-sticky-button-container hidden">
<a href="#cta-anchor" class="btn btn-primary d-block">TAKE ACTION</a> <a href="#cta-anchor" class="btn btn-primary d-block">{% trans "TAKE ACTION" context "Sticky button in mobile view on campaign pages" %}</a>
</div> </div>
<div class="sticky-cta"> <div class="sticky-cta">
<div id="cta-anchor"> <div id="cta-anchor">

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

@ -1,6 +1,6 @@
{% extends "./generic_card.html" %} {% extends "./generic_card.html" %}
{% load wagtailcore_tags wagtailroutablepage_tags class_tags blog_tags %} {% load wagtailcore_tags wagtailroutablepage_tags class_tags blog_tags i18n %}
{% block card_type %}blog-card{% endblock %} {% block card_type %}blog-card{% endblock %}
@ -34,5 +34,5 @@ each blog page's dominant tag)
{% endblock %} {% endblock %}
{% block byline %} {% block byline %}
By {{ page.specific.author }} on {{ page.first_published_at|date:"F j, Y" }} {% blocktrans with author=page.specific.author date=page.first_published_at|date:"DATE_FORMAT" %}By {{ author }} on {{ date }}{% endblocktrans %}
{% endblock %} {% endblock %}

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

@ -1,11 +1,11 @@
{% load wagtailimages_tags %} {% load wagtailimages_tags i18n %}
{% if page.featured_blogs.all.count > 0 %} {% if page.featured_blogs.all.count > 0 %}
{% with page.featured_blogs.all as featured_blogs %} {% with page.featured_blogs.all as featured_blogs %}
<div class="row"> <div class="row">
<div class="col mb-4"> <div class="col mb-4">
<hr class="mb-4 hr-emphasis mt-0"> <hr class="mb-4 hr-emphasis mt-0">
<h4 class="h4-heading">Latest news</h4> <h4 class="h4-heading">{% trans "Latest news" %}</h4>
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
@ -26,7 +26,12 @@
<h5 class="mb-2 h3-heading"> <h5 class="mb-2 h3-heading">
<a href="{{blog.blog.url}}">{{blog.blog.title}}</a> <a href="{{blog.blog.url}}">{{blog.blog.title}}</a>
</h5> </h5>
<p class="body-small mb-2">{% if blog.blog.author %}by {{blog.blog.author}} on {% endif %} {% if blog.blog.first_published_at %}{{ blog.blog.first_published_at|date:"F j, Y" }}{% else %}not published yet{% endif %}</p> <p class="body-small mb-2">
{% if blog.blog.author %}
{% blocktrans with author=blog.blog.author %}by {{author}}{% endblocktrans %}
{% endif %}
{% if blog.blog.first_published_at %} {% blocktrans with date=page.first_published_at|date:"DATE_FORMAT" %}on {{date}}{% endblocktrans %}{% else %}not published yet{% endif %}
</p>
<p>{{blog.blog.search_description}}</p> <p>{{blog.blog.search_description}}</p>
</div> </div>
</div> </div>
@ -48,7 +53,12 @@
<h5 class="mb-2"> <h5 class="mb-2">
<a href="{{blog.blog.url}}">{{blog.blog.title}}</a> <a href="{{blog.blog.url}}">{{blog.blog.title}}</a>
</h5> </h5>
<p class="body-small mb-2">{% if blog.blog.author %}by {{blog.blog.author}} on {% endif %} {% if blog.blog.first_published_at %}{{ blog.blog.first_published_at|date:"F j, Y" }}{% else %}not published yet{% endif %}</p> <p class="body-small mb-2">
{% if blog.blog.author %}
{% blocktrans with author=blog.blog.author %}by {{author}}{% endblocktrans %}
{% endif %}
{% if blog.blog.first_published_at %} {% blocktrans with date=page.first_published_at|date:"DATE_FORMAT" %}on {{date}}{% endblocktrans %}{% else %}not published yet{% endif %}
</p>
<p>{{blog.blog.search_description}}</p> <p>{{blog.blog.search_description}}</p>
<hr> <hr>
</div> </div>
@ -59,7 +69,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col text-center mb-5"> <div class="col text-center mb-5">
<a class="btn btn-secondary" href="/blog">More from our blog</a> <a class="btn btn-secondary" href="/blog">{% trans "More from our blog" %}</a>
</div> </div>
</div> </div>
{% endwith %} {% endwith %}

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

@ -1,7 +1,9 @@
{% load i18n %}
<div class="my-5"> <div class="my-5">
<div class="my-2 py-2 ih-cta"> <div class="my-2 py-2 ih-cta">
<div class="d-flex align-items-center"><img class="mr-3" src="/_images/icon-IH.svg" alt="" width="51" height="45"> <div class="d-flex align-items-center"><img class="mr-3" src="/_images/icon-IH.svg" alt="" width="51" height="45">
<p class="my-0">This is part of a broader movement for a healthy internet. <a href="/" id="see-more-modular-page">See more</a>.</p> <p class="my-0">{% blocktrans with see_more_link='href="/" id="see-more-modular-page"' %}This is part of a broader movement for a healthy internet. <a {{ see_more_link }}>See more</a>.{% endblocktrans %}</p>
</div> </div>
</div> </div>
</div> </div>

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

@ -1,11 +1,11 @@
{% load wagtailcore_tags wagtailimages_tags %} {% load wagtailcore_tags wagtailimages_tags i18n %}
{% block related_posts %} {% block related_posts %}
{% if related_posts|length %} {% if related_posts|length %}
<div class="container"> <div class="container">
<hr class="mb-4 hr-emphasis mt-0"> <hr class="mb-4 hr-emphasis mt-0">
<h1 class="h4-heading">Related content</h2> <h1 class="h4-heading">{% trans "Related content" %}</h1>
<div class="related-posts mb-4"> <div class="related-posts mb-4">
<div class="row"> <div class="row">

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

@ -1,5 +1,5 @@
{% extends "pages/base.html" %} {% extends "pages/base.html" %}
{% load wagtailcore_tags wagtailimages_tags homepage_tags card_tags wagtailmetadata_tags multi_image_tags %} {% load wagtailcore_tags wagtailimages_tags homepage_tags card_tags wagtailmetadata_tags multi_image_tags i18n %}
{% block body_id %}home{% endblock %} {% block body_id %}home{% endblock %}
@ -33,7 +33,7 @@
<div class="row"> <div class="row">
<div class="col mb-4"> <div class="col mb-4">
<hr class="hr-emphasis mb-4"> <hr class="hr-emphasis mb-4">
<h4 class="h4-heading">Happening now</h4> <h4 class="h4-heading">{% trans "Happening now" %}</h4>
</div> </div>
</div> </div>
<div id="home-highlights-wagtail"> <div id="home-highlights-wagtail">
@ -69,10 +69,10 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<h4 class="h4-heading">Trending projects</h4> <h4 class="h4-heading">{% trans "Trending projects" %}</h4>
</div> </div>
<div class="col-md-6 d-none d-md-flex justify-content-end"> <div class="col-md-6 d-none d-md-flex justify-content-end">
<a class="cta-link" href="https://www.mozillapulse.org/add">Add your project</a> <a class="cta-link" href="https://www.mozillapulse.org/add">{% trans "Add your project" %}</a>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -82,8 +82,8 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col text-center mb-5"> <div class="col text-center mb-5">
<a class="btn btn-secondary mb-4" href="https://www.mozillapulse.org">More from our network</a> <a class="btn btn-secondary mb-4" href="https://www.mozillapulse.org">{% trans "More from our network" %}</a>
<a class="cta-link d-block d-md-none" href="https://www.mozillapulse.org/add">Add your project</a> <a class="cta-link d-block d-md-none" href="https://www.mozillapulse.org/add">{% trans "Add your project" %}</a>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -92,8 +92,8 @@
<div class="row mb-5"> <div class="row mb-5">
<div class="col"> <div class="col">
<div class="feature-quote"> <div class="feature-quote">
<h3>We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices.</h3> <h3>{% trans "We want to give users the knowledge and the power to make informed decisions by themselves to prevent abusive practices." %}</h3>
<p class="h6-heading">Rishab Nithyanand, Mozilla Fellow</p> <p class="h6-heading">{% trans "Rishab Nithyanand, Mozilla Fellow" %}</p>
</div> </div>
</div> </div>
</div> </div>

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

@ -1,6 +1,6 @@
{% extends "./modular_page.html" %} {% extends "./modular_page.html" %}
{% load wagtailcore_tags mini_site_tags %} {% load wagtailcore_tags mini_site_tags i18n %}
{% block content %} {% block content %}
@ -29,8 +29,12 @@
<div class="col-12 d-flex justify-content-between"> <div class="col-12 d-flex justify-content-between">
<div class="search-result"> <div class="search-result">
<h3 class="body result-info"> <h3 class="body result-info">
{{ total_entries }} result{% if total_entries != 1 %}s{% endif %} {% blocktrans count count=total_entries trimmed %}
{% if total_entries > 0 %} for {{ total_entries }} result
{% plural %}
{{ total_entries }} results
{% endblocktrans %}
{% if total_entries > 0 %} {% trans "for" context "Following “xx results” and followed by searched terms. Full string example: “12 results for Advocacy”" %}
<ul class="term-list"> <ul class="term-list">
{% for term in terms %} {% for term in terms %}
<li class="term body-small">{{ term }}</li> <li class="term body-small">{{ term }}</li>
@ -41,7 +45,7 @@
</div> </div>
<div class="clear-link"> <div class="clear-link">
<a href="{{ root.url }}">clear filters</a> <a href="{{ root.url }}">{% trans "clear filters" %}</a>
</div> </div>
</div> </div>
</div> </div>
@ -59,7 +63,7 @@
<div class="col-12 text-center mb-5"> <div class="col-12 text-center mb-5">
{% if has_more %} {% if has_more %}
<button class="btn btn-primary load-more-index-entries" data-page-size="{{ page.specific.page_size }}"> <button class="btn btn-primary load-more-index-entries" data-page-size="{{ page.specific.page_size }}">
Load more results {% trans "Load more results" %}
</button> </button>
{% endif %} {% endif %}

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

@ -1,5 +1,7 @@
{% load i18n %}
<div class="text-center mb-5 d-none"> <div class="text-center mb-5 d-none">
<button id="load-more-regrets" class="btn btn-secondary">Load more stories</button> <button id="load-more-regrets" class="btn btn-secondary">{% trans "Load more stories" %}</button>
</div> </div>
<script defer> <script defer>

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

@ -1,5 +1,5 @@
{% extends "pages/base.html" %} {% extends "pages/base.html" %}
{% load wagtailcore_tags wagtailimages_tags homepage_tags card_tags wagtailmetadata_tags multi_image_tags %} {% load wagtailcore_tags wagtailimages_tags homepage_tags card_tags wagtailmetadata_tags multi_image_tags i18n %}
{% block body_id %}youtube-regrets{% endblock %} {% block body_id %}youtube-regrets{% endblock %}
@ -33,18 +33,18 @@
{% endfor %} {% endfor %}
</div> </div>
<div class="intro-button-wrapper"> <div class="intro-button-wrapper">
<button class="btn btn-primary btn-newsletter hidden-lg-up mx-auto d-none">Join Mozilla</button> <button class="btn btn-primary btn-newsletter hidden-lg-up mx-auto d-none">{% trans "Join Mozilla" %}</button>
<button class="btn btn-primary btn-newsletter hidden-md-down mx-auto d-none">Join Mozilla</button> <button class="btn btn-primary btn-newsletter hidden-md-down mx-auto d-none">{% trans "Join Mozilla" %}</button>
</div> </div>
</div> </div>
<figure class="scroll-hint text-center d-none"> <figure class="scroll-hint text-center d-none">
<img src="/_images/youtube-regrets/scroll.svg" width="28" height="85" /> <img src="/_images/youtube-regrets/scroll.svg" width="28" height="85" />
<figcaption>Scroll</figcaption> <figcaption>{% trans "Scroll" %}</figcaption>
</figure> </figure>
</div> </div>
{% with share_text="28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths" %} {% trans "28 reasons why YouTube must change: startling stories of YouTubes recommendations leading people down bizarre and dangerous paths" as share_text %}
<main class="container"> <main class="container">
<div class="row hidden-md-up my-3"> <div class="row hidden-md-up my-3">
<div class="col-12"> <div class="col-12">
@ -82,7 +82,6 @@
</div> </div>
</div> </div>
</main> </main>
{% endwith %}
{% endblock %} {% endblock %}
{% block footer_block %} {% block footer_block %}

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

@ -1,5 +1,5 @@
{% extends "pages/base.html" %} {% extends "pages/base.html" %}
{% load wagtailcore_tags wagtailimages_tags homepage_tags card_tags %} {% load wagtailcore_tags wagtailimages_tags homepage_tags card_tags i18n %}
{% block body_id %}initiatives{% endblock %} {% block body_id %}initiatives{% endblock %}
@ -27,13 +27,13 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div id="multipage-nav"> <div id="multipage-nav">
<a class="multipage-link active" href="./">Overview</a> <a class="multipage-link active" href="./">{% trans "Overview" %}</a>
<!-- hardcoding nav links as per https://github.com/mozilla/foundation.mozilla.org/issues/2379#issuecomment-449127807 --> <!-- hardcoding nav links as per https://github.com/mozilla/foundation.mozilla.org/issues/2379#issuecomment-449127807 -->
<a class="multipage-link" href="/advocacy">Advocacy</a> <a class="multipage-link" href="/advocacy">{% trans "Advocacy" %}</a>
<a class="multipage-link" href="https://foundation.mozilla.org/internet-health-report/" target="_blank">Internet Health Report</a> <a class="multipage-link" href="https://foundation.mozilla.org/internet-health-report/" target="_blank">{% trans "Internet Health Report" %}</a>
<a class="multipage-link" href="/fellowships">Fellowships</a> <a class="multipage-link" href="/fellowships">{% trans "Fellowships" %}</a>
<a class="multipage-link" href="/awards">Awards</a> <a class="multipage-link" href="/awards">{% trans "Awards" %}</a>
<a class="multipage-link" href="https://mozillafestival.org/" target="_blank">MozFest</a> <a class="multipage-link" href="https://mozillafestival.org/" target="_blank">{% trans "MozFest" %}</a>
</div> </div>
</div> </div>
</div> </div>

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

@ -1,5 +1,6 @@
from django.apps import apps from django.apps import apps
from django.db.models import Count from django.db.models import Count
from django.utils.translation import gettext
def set_main_site_nav_information(page, context, homepage_class_name): def set_main_site_nav_information(page, context, homepage_class_name):
@ -54,7 +55,7 @@ def get_descendants(node, list, authenticated=False, depth=0, max_depth=2):
header = getattr(node.specific, 'header', None) header = getattr(node.specific, 'header', None)
if header: if header:
title = header title = header
menu_title = title if depth > 0 else 'Overview' menu_title = title if depth > 0 else gettext('Overview')
restriction = node.get_view_restrictions().first() restriction = node.get_view_restrictions().first()
try: try:
restriction_type = restriction.restriction_type restriction_type = restriction.restriction_type

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

@ -17,6 +17,19 @@ if platform == 'win32':
else: else:
PLATFORM_ARG = dict(pty=True) PLATFORM_ARG = dict(pty=True)
# The command for locale string abstraction is long and elaborate,
# so we build it here rather so that we don't clutter up the tasks.
locale_abstraction_instructions = " ".join([
"makemessages",
"-l de -l es -l fr -l pl -l pt_BR",
"--keep-pot",
"--no-wrap",
"--ignore=network-api/networkapi/wagtailcustomization/*",
"--ignore=network-api/networkapi/wagtail_l10n_customization/*",
"--ignore=network-api/networkapi/settings.py",
"--ignore=network-api/networkapi/wagtailpages/__init__.py",
])
def create_docker_env_file(env_file): def create_docker_env_file(env_file):
"""Create or update an .env to work with a docker environment""" """Create or update an .env to work with a docker environment"""
@ -79,6 +92,20 @@ def l10n_update(ctx):
manage(ctx, "update_translation_fields") manage(ctx, "update_translation_fields")
@task
def makemessages(ctx):
"""Extract all template messages in .po files for localization"""
manage(ctx, locale_abstraction_instructions)
os.replace("network-api/locale/django.pot", "network-api/locale/templates/LC_MESSAGES/django.pot")
@task
def compilemessages(ctx):
"""Compile the latest translations"""
copy("network-api/locale/pt_BR/LC_MESSAGES/django.po", "network-api/locale/pt/LC_MESSAGES/django.po")
manage(ctx, "compilemessages")
@task @task
def test(ctx): def test(ctx):
"""Run tests""" """Run tests"""
@ -104,12 +131,14 @@ def setup(ctx):
ctx.run("pipenv install --dev") ctx.run("pipenv install --dev")
print("* Applying database migrations.") print("* Applying database migrations.")
migrate(ctx) migrate(ctx)
print("* Updating localizable fields") print("* Updating localizable fields.")
l10n_sync(ctx) l10n_sync(ctx)
l10n_update(ctx) l10n_update(ctx)
print("* Creating fake data") print("* Creating fake data.")
manage(ctx, "load_fake_data") manage(ctx, "load_fake_data")
print("* Updating block information") print("* Compiling locale strings.")
compilemessages(ctx)
print("* Updating block information.")
manage(ctx, "block_inventory") manage(ctx, "block_inventory")
# Windows doesn't support pty, skipping this step # Windows doesn't support pty, skipping this step
@ -132,10 +161,12 @@ def catch_up(ctx):
ctx.run("pipenv install --dev") ctx.run("pipenv install --dev")
print("* Applying database migrations.") print("* Applying database migrations.")
migrate(ctx) migrate(ctx)
print("* Updating localizable fields") print("* Compiling locale strings.")
compilemessages(ctx)
print("* Updating localizable fields.")
l10n_sync(ctx) l10n_sync(ctx)
l10n_update(ctx) l10n_update(ctx)
print("* Updating block information") print("* Updating block information.")
manage(ctx, "block_inventory") manage(ctx, "block_inventory")
@ -208,6 +239,20 @@ def docker_l10n_update(ctx):
docker_manage(ctx, "update_translation_fields") docker_manage(ctx, "update_translation_fields")
@task
def docker_makemessages(ctx):
"""Extract all template messages in .po files for localization"""
docker_manage(ctx, locale_abstraction_instructions)
os.replace("network-api/locale/django.pot", "network-api/locale/templates/LC_MESSAGES/django.pot")
@task
def docker_compilemessages(ctx):
"""Compile the latest translations"""
copy("network-api/locale/pt_BR/LC_MESSAGES/django.po", "network-api/locale/pt/LC_MESSAGES/django.po")
docker_manage(ctx, "compilemessages")
@task @task
def docker_test_python(ctx): def docker_test_python(ctx):
"""Run python tests""" """Run python tests"""
@ -246,6 +291,9 @@ def docker_catch_up(ctx):
ctx.run("docker-compose build") ctx.run("docker-compose build")
print("* Applying database migrations.") print("* Applying database migrations.")
docker_migrate(ctx) docker_migrate(ctx)
print("* Compiling localse strings.")
docker_compilemessages
print("* Updating block information.")
docker_l10n_block_inventory(ctx) docker_l10n_block_inventory(ctx)
@ -266,8 +314,11 @@ def docker_new_env(ctx):
ctx.run("docker-compose build --no-cache", **PLATFORM_ARG) ctx.run("docker-compose build --no-cache", **PLATFORM_ARG)
print("* Applying database migrations.") print("* Applying database migrations.")
docker_migrate(ctx) docker_migrate(ctx)
print("* Creating fake data") print("* Creating fake data.")
docker_manage(ctx, "load_fake_data") docker_manage(ctx, "load_fake_data")
print("* Compiling localse strings.")
docker_compilemessages
print("* Updating block information.")
docker_l10n_block_inventory(ctx) docker_l10n_block_inventory(ctx)
docker_create_super_user(ctx) docker_create_super_user(ctx)