Coder Social home page Coder Social logo

mozilla / pontoon Goto Github PK

View Code? Open in Web Editor NEW
1.4K 37.0 522.0 44.08 MB

Mozilla's Localization Platform

Home Page: https://pontoon.mozilla.org

License: BSD 3-Clause "New" or "Revised" License

Python 43.16% CSS 6.59% JavaScript 31.39% HTML 4.81% Shell 0.16% Makefile 0.15% Dockerfile 0.05% Jinja 0.06% TypeScript 12.61% Fluent 1.01% Procfile 0.01%
pontoon translation localization mozilla javascript django design

pontoon's Introduction

Pontoon โ€” Mozilla's Localization Platform

Pontoon is a translation management system used and developed by the Mozilla localization community. It specializes in open source localization that is driven by the community and uses version-control systems for storing translations.

๐Ÿ“š Documentation

Installing Pontoon

If you are looking to host your own instance of Pontoon, there are several ways to do so. To deploy Pontoon to Heroku without leaving your web browser, click the Deploy to Heroku button below.

Deploy

Alternatively, you can deploy to Heroku manually by following our Deployment Documentation.

We don't have documentation for deploying to other platforms yet, so we recommend that you read the previously linked documentation and adapt it for your needs.

If you only want to deploy a local instance of Pontoon, for development or testing for example, see our Developer Setup using Docker. Please note that you should not deploy a production instance with Docker.

Contributing to Pontoon

Do you want to help us make Pontoon better? We are very glad!

To help you get started with contributing, we wrote The Guide to your First Contribution to Pontoon. It contains all the information you need to know to install Pontoon, populate its database, run tests, and send your contribution.

If you want to go further, you can:

License

This software is licensed under the New BSD License. For more information, read LICENSE.

Screenshots

Teams dashboard

Translation app

pontoon's People

Contributors

abowler2 avatar adngdb avatar anujpandey785 avatar ayanaar avatar davedash avatar dependabot[bot] avatar eemeli avatar flodolo avatar flozz avatar jotes avatar julen avatar karska-dev avatar kumar303 avatar maheshwarimonika avatar mastizada avatar mathjazz avatar mikkcz avatar mitch4sho avatar ozten avatar peterbe avatar pfischbeck avatar phlax avatar pike avatar pyup-bot avatar rtnpro avatar stasm avatar sudheesh001 avatar tofumatt avatar vishalol avatar willianveiga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pontoon's Issues

Auto-detect locales when adding a project

This issue was created automatically by a script.

Bug 960291

Bug Reporter: @mathjazz
CC: @Osmose, @jotes
Blocker for: Bug 1206176

When adding a new project in the admin view, user needs to select at least one locale. But we can simplify this process:


CASE A.

But often we use repositories as source files, that already include all locales, e.g.:
https://svn.mozilla.org/projects/l10n-misc/trunk/pontoon/testpilot/

Similarly, .ini files contain strings for all locales in one file.

In this case, we can auto-detect locales when importing strings from repository. But admins still need an option to disable some of the locales in the repository.


CASE B.

However, some repositories only contain files for one locale, so locales need to be set manually, e.g.:
http://hg.mozilla.org/releases/gaia-l10n/v1_1/en-US/

In this case, auto-detecting locales is not possible at all.


One way to implement this is to provide a "Auto-detect locales" checkbox in the project administration.

Detecting locales should be easy; we already have a function that detects the source folder (usually en-US or templates), so we only need to list all sister folders with localization files.

Change the way we determine pluralized entities

This issue was created automatically by a script.

Bug 1213779

Bug Reporter: @mathjazz

We don't currently have any good way to represent whether an entity is pluralized or not, neither on backend nor on frontend.

Current implementation on backend:

  • check for Entity.string_plural
  • VCSModels: dict with None key for singular, numbers for plural

Current implementation on frontend:

  • check for entity.original_plural
  • isPluralized(): doesn't work for locales with nplurals == 1
  • getPluralForm(): doesn't work for locales with nplurals == 1

Also:
#208

Static files seem to not pick up changes on local copy

When I make changes to the static files on my local instance, it doesn't seem to pick them up. I suspect this has something to do with django-pipeline insisting on collecting static files (presumably because it thinks it needs to re-compile them on every request or something even though we're not using SASS or anything) and whatever mechanism is serving those static files is caching them when it shouldn't.

Add ability to write custom plugins for the custom formats of resource files.

This issue was created automatically by a script.

Bug 1310735

Bug Reporter: @jotes
CC: @mathjazz

Hi,

I want to prepare a demo site for The Piwik project (http://piwik.org). Unfortunately, piwik uses custom format (.json) for keeping source strings and translation.

And because of that I think that we should add a possiblity to write plugins for the new formats of files

I think we can achieve this via the setuptools mechanism for plugins: http://docs.pylonsproject.org/projects/pylons-webframework/en/latest/advanced_pylons/entry_points_and_plugins.html

Look into using Heroku pipelines for prod pushes

This issue was created automatically by a script.

Bug 1201226

Bug Reporter: @Osmose
CC: @mathjazz

Heroku has a feature called "pipelines" that allows us to deploy to staging, build a slug after testing, and ship that slug directly to prod, rather than re-building for prod. Docs are here: https://devcenter.heroku.com/articles/labs-pipelines

I really like the idea of removing some sources of human error from our prod pushes by using this system, and I think we should try it. We already have a staging environment to hook into prod, too.

Improve quality checks

This issue was created automatically by a script.

Bug 1221552

Bug Reporter: @mathjazz
CC: [email protected], [email protected], [email protected], @tomer, [email protected], [email protected], @yfdyh000
Depends on: Bug 1224273, Bug 1376728

Our quality checks have two issues:

  1. There are a lot of false positives.
  2. They only show warnings, which users can easily ignore.

Our current implementation uses POfilter tests:
http://translate-toolkit.readthedocs.org/en/latest/commands/pofilter_tests.html

Many Mozilla sites use dennis to prevent bad translations from causing errors in production, so we should look into its API and use it:
https://dennis.readthedocs.org/

We should split tests into different categories by importance (POfilter supports that), something like:

A) COSMETIC: These tests should be removed.
B) WARNING: We show a warning, which can be ignored.
C) ERROR: We prevent translation from being submitted. If detected on import, store it as suggestions.

Make richer user representation in the permissions widgets

Enable download & upload of any project in gettex & xliff file format

This issue was created automatically by a script.

Bug 1228718

Bug Reporter: @flodolo
CC: @Fjoerfoks, [email protected], [email protected], @jordis, @Pike, @mathjazz, @Osmose, [email protected], [email protected], @yfdyh000

Spin-off of bug 1219212.

Having the ability to download a project in XLIFF or GetText format, regardless of the format used in the repo, could be useful.

This is true especially for projects based on monolingual files (e.g. properties, in the future l20n), where offline translation becomes more complicated.

Partially translated/suggested pluralized strings are treated as missing

This issue was created automatically by a script.

Bug 1315234

Bug Reporter: @mathjazz
CC: [email protected]
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1278826

If a suggestion is submitted for one plural form and translations for the others, string is treated as suggested in the entity list and filter (which is ok), but as missing in stats.

We should unify the behaviour and treat the string as suggested everywhere.

Possibly related to bug 1278826.

Changing repo URLs may break sync

This issue was created automatically by a script.

Bug 1216671

Bug Reporter: @Osmose
CC: @mathjazz

Our code for detecting where the locale repos are on the filesystem does a search within the checkout_path of a project to find likely directories. If a project changes its repo URL, the files will be checked out in a new directory, but the old directory will still exist until the worker dies, meaning we might mis-identify the old folders as they're still on the filesystem.

Our source resource detection is probably vulnerable to a similar issue as well.

Transifex API wishlist

Transifex API has improved dramatically in terms of what we need to make it work smoothly with Pontoon. We can now get and set translations as JSON list instead of getting and parsing and creating and setting PO files. There are still two issues remaining.

1. Getting originals & translations at once

We would really appreciate fetch all strings with available translations in certain language with one request. Right now we have to do two requests: 1st to get the original strings and 2nd to get translations. Or, we can do one request to get the PO file, but then we have to parse it.

2. Deleting translations

It's not possible at all to delete existing translations. We need this feature and the API should be the same as for PUT-ting new translation strings, but with e.g. "" provided as translation:

http://help.transifex.com/features/api/index.html#translations-for-a-collection-of-strings

Build error from MySQL while getting requirements via pip

$ pip install -r requirements/compiled.txt -r requirements/prod.txt

OS : Mac OS X Mavericks

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

error: command 'cc' failed with exit status 1

A few more errors encountered were

Installing extra requirements: 'egg'
Obtaining django-mobility from git+git://github.com/jbalogh/django-mobility@644e0c1c58#egg=django-mobility (from -r requirements/../vendor/src/funfactory/funfactory/requirements/prod.txt (line 38))
  Cloning git://github.com/jbalogh/django-mobility (to 644e0c1c58) to ./src/django-mobility
  Could not find a tag or branch '644e0c1c58', assuming commit.
  Running setup.py

Separate commit by translator

The following thing could improve Pontoon for localizers:
Separate commit by translator, who made translation or modification. If more than one translator works at the same time, it would be good to push their work with separate commit for each translator.

Detect moved strings and (semi-)automatically submit them

This issue was created automatically by a script.

Bug 1094343

Bug Reporter: @mathjazz
Blocker for: Bug 1394368

Strings that are moved from one file to another are presented as untranslated, even if they have been translated before. Same happens if the file is moved.

Suggestions from translation memory are available for such strings. But users still have to go through all of them and submit them.

We should detect such change in VCS and automate the process or even provide a special UI for approving moved strings.

Pontoon overwrites changes made in VCS

Problem

Pontoon doesn't currently do any conflict resolution; if someone commits strings directly to version control, Pontoon will overwrite them. This also crops up when two instances of Pontoon are pointing to the same repo (such as the staging and production Heroku instances, which used to both point at mozilla/pontoon-intro). Both instances get in a commit war as each overwrites the other.

Why?

Pontoon stores the entire state of a project's strings in its database. When Pontoon commits its strings to VCS, it exports the database into language files and then commits them (if there are no changes, the commit for that locale fails or shows no changes).

When someone commits directly to version control, those changes don't hit the database before Pontoon commits its language files, meaning that Pontoon will overwrite the changes made.

Possible Solutions

Store Changes

Instead of exporting the database into language files, whenever someone makes a change that would affect the language files (approving or deleting strings), store that as a Modification. When running the automated commit job, start by downloading the latest version of the language files and reading them. Then go through each Modification and make the change to the required language file. Once done, save the language file back out and commit them.

This way, external edits are preserved, but a string is both changed externally and changed by Pontoon, Pontoon's change takes precedence. Conflicts in VCS are avoided as we start off by downloading the latest revision, and if we still hit a conflict we can just try again after a short delay (and eventually fail and email an admin if we continually fail to commit).

A possible simplistic Modification implementation may look something like:

class Modification(models.Model):
    DELETE = 0
    APPROVE = 1

    user = models.ForeignKey(User)
    entity = models.ForeignKey(Entity)
    translation = models.ForeignKey(Translation)
    action = models.IntegerField(choices=[(DELETE, 'DELETE'), (APPROVE, 'APPROVE')])

    def perform(self):
        if self.action == self.DELETE:
            # Delete translation
        else if self.action == self.APPROVE:
            # Approve translation

[admin] Add Project Manager role for creating new projects

This issue was created automatically by a script.

Bug 1204659

Bug Reporter: @Osmose
CC: [email protected], [email protected], [email protected], @mathjazz, [email protected]

In order to better enable groups like mofo to create and edit projects without relying on the Pontoon admin team, we should add a new "Project Manager" role that is allowed to create new projects and edit projects that they've created.

We can probably handle this by adding per-object permissions (I've used https://github.com/django-guardian/django-guardian in the past with success) limiting the new role to creating new projects. Then, as part of the project creation process, we assign them as an editor of the newly-created project. This'd also open up the ability for Project Managers to assign other users as editors of their projects as well, which may be useful.

This is blocked by our work in bug 1203788 to replace the custom admin interface with the stock Django interface, as we don't want to continue supporting the old admin interface by adding more fields for these improvements.

Link commits to bug in Bugzilla

This issue was created automatically by a script.

Bug 1321322

Bug Reporter: @MikkCZ
CC: @mathjazz, [email protected]
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1403287

This will have very low priority I guess, but each time there is a bug report in Bugzilla, I would like to be able to link the commit fixing it. In Bugzilla it is easy - I can paste the hg.mozilla.org URL after Pontoon syncs. But there is currently no way to link the other way from the changeset to Bugzilla to give the context to anyone looking in the VCS history only, except using the VCS directly and not Pontoon.

It would be nice to be able to add bug number when making changes in Pontoon, or more universal a text comment to include it in the commit message.

Highlihgt the current opened file in the list

The following thing could improve Pontoon for localizers:
Remember current opened file or highlight it in the list, while next file is being selected. Especially for projects like Firefox OS, which have a lot of files.

2015-06-22 09_41_07-pontoon - firefox developer edition

Add ability to group projects into a meta project

This issue was created automatically by a script.

Bug 1301936

Bug Reporter: @flodolo
CC: @Pike, @mathjazz, @MikkCZ, @peiying2, @TheoChevalier

We have cases were projects could be logically grouped into a meta-project, at least to avoid having a huge list of projects exposed to localizers.

Example: AMO, (upcoming) system add-ons, Foundation.

Not completely sure what grouping projects would look like: is it only to simplify the list of projects or something more (e.g. aggregated stats)?

Improving profile page

This issue was created automatically by a script.

Bug 1225109

Bug Reporter: @a-polivanchuk
CC: [email protected], [email protected], @mathjazz, @MikkCZ, @jotes, [email protected]
Depends on: Bug 1243086, Bug 1473761

Currently homepage looks not as good as it could be, especially the contribution history part (vertical timeline).
You have to scroll down for a long time to see the whole history, which also is not very informative.
I think that graph view or even tabbed view of the contribution history would be much better and informative.

Remove eval() from JS code

This issue was created automatically by a script.

Bug 1311053

Bug Reporter: @mathjazz
CC: [email protected]
Blocker for: Bug 1338247

We use eval() in JS to calculate examples of different plural forms for each language, which is done using the plural rule (e.g. https://github.com/mozilla-l10n/input-l10n/blob/master/sl/LC_MESSAGES/django.po#L14) that we store in the DB and pass to JS in a variable, and finally run eval() on it.

We should do this only once per locale, so it can be moved to python and executed when locale is added. Currently the code lives in JS, because it uses the same ternary operator syntax as PO files.

This will also allow us to remove unsafe-eval from CSP.

Search strings

At the moment there is only one way to search strings on Pontoon: localizer could search only by opened file.
To meet better usability of localization process, Pontoon should have possibility to search strings by whole project.
2015-06-22 09_47_58-pontoon - firefox developer edition

Diff tools, change and editable contribution viewer

This issue was created automatically by a script.

Bug 1197336

Bug Reporter: @Jobava
CC: @Jobava, @lliehu, @mathjazz

  • From the Pontoon interface people should be able to see a diff for the state of individual projects across time, as well as last changes made.

  • These could be changes made per-locale, per-project and per-file.

  • Show a person's last contributions in an easy to see and compact form, with links to the individual strings in their respective projects for each one.

  • Show a person's contributions between two points in time in editable form (in-place), without having to open individual strings in separate tabs.

  • An ability to cancel another person's contributions from some moment back in time.

SyncDB errors still persist after using temporary ARCHFLAGS

pip installing the failed requirements on Mac OS X using

export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future"

results in a successful clean installation as follows

Successfully installed MySQL-python Jinja2 py-bcrypt Django django-multidb-router django-cronjobs django-browserid requests happyforms jingo jingo-minify GitPython commonware nuggets django-sha2 bleach django-session-csrf cef celery django-celery Babel tower django-mozilla-product-details django-mobility south polib mercurial configparser suds silme certifi oauthlib chardet six html5lib kombu billiard pytz rsa amqp anyjson pyasn1
Cleaning up...

but running the command after setting up the database
./manage.py syncdb --noinput && ./manage.py migrate
results in the following error.

(env)Sudheeshs-MacBook-Pro:pontoon sudheeshsinganamalla$ python manage.py syncdb --noinput && python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 23, in <module>
    manage.main()
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/src/funfactory/funfactory/manage.py", line 143, in main
    execute_manager(current_settings)
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/core/management/__init__.py", line 459, in execute_manager
    utility.execute()
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/core/management/__init__.py", line 69, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor-local/lib/python/south/management/commands/__init__.py", line 10, in <module>
    import django.template.loaders.app_directories
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/template/loaders/app_directories.py", line 21, in <module>
    mod = import_module(app)
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/src/tower/tower/__init__.py", line 13, in <module>
    from babel.messages.extract import extract_python
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/babel/messages/__init__.py", line 16, in <module>
    from babel.messages.catalog import *
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/babel/messages/catalog.py", line 30, in <module>
    from babel.dates import format_datetime
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/babel/dates.py", line 34, in <module>
    LC_TIME = default_locale('LC_TIME')
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/babel/core.py", line 642, in default_locale
    return '_'.join(filter(None, parse_locale(locale)))
  File "/Users/sudheeshsinganamalla/Documents/pontoon/vendor/lib/python/babel/core.py", line 763, in parse_locale
    raise ValueError('expected only letters, got %r' % lang)
ValueError: expected only letters, got 'utf-8'

Replace custom administration interface

This issue was created automatically by a script.

Bug 1203788

Bug Reporter: @Osmose
CC: @mathjazz

Currently our admin interface is entirely custom-made and is a bit of a mess. Functionally it works fine, but modifying or adding new fields is difficult. Not to mention we have a bunch of code to support widgets that already exist in the built-in Django admin.

We should figure out what things our interface needs that the Django admin doesn't provide, and figure out how difficult it would be to add support for them. Off the top of my head, the only thing missing would be the sync button on the repo field for manually triggering project sync, and adding that in wouldn't be terribly hard.

Oh, and the fact that the built-in admin is kinda ugly and doesn't support easy dashboards, but those are both fixable as well (either manually or by libraries).

mathjazz: Thoughts?

Include source files when downloading monolingual files

This issue was created automatically by a script.

Bug 1317699

Bug Reporter: @flodolo
CC: [email protected], @gueroJeff, @Pike, @mathjazz

Currently, if I download a project based on monolingual files (.properties, .ftl), I only get files with the strings that I've already translated. It's useful for QA, but not for translating offline, since I don't have the missing reference strings.

Possible solutions discussed on IRC:

  1. Add en-US files to the .zip

  2. Create on the fly merged files, with existing translations and missing strings added.

It would be great for people working offline, but probably hard to do, and potentially risky: I download a file with 20 translated strings and 80 English strings, I upload it after translating 30 strings, but Pontoon will assume I have translated all the strings unless I manually remove the English ones from the file.

Add translation status field to replace approved & fuzzy

This issue was created automatically by a script.

Bug 1179954

Bug Reporter: @Osmose
CC: [email protected], @mathjazz, @Osmose, @yfdyh000
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1409724

The routine that updates the translated_count attribute on Stats instances is wrong; it sometimes comes up with negative counts, which is why we currently have a workaround in place to handle negative counts (

stats.translated_count = max(translated_entities.count() - approved - fuzzy, 0)
).

We should probably investigate this to see if there's a more correct way of calculating it.

Stats calculations are off

This issue was created automatically by a script.

Bug 1310668

Bug Reporter: @mathjazz
CC: [email protected], @flodolo, @lliehu, @TheoChevalier, @yfdyh000
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1381852

Stats do not always reflect the actual state.

Multiple inconsistencies occur in the data model from time to time. Here's more specifics for developers:

  1. TranslatedResource: translated + suggested + fuzzy > total
  2. TranslatedResource & Resource: total_strings missmatch
  3. ProjectLocale within the same project: total missmatch

More detailed sync log

This issue was created automatically by a script.

Bug 1208171

Bug Reporter: @Osmose
CC: @mathjazz, @jotes

A huge amount of time around the work on sync_projects bugs has been understanding what it does in certain situations and why. What we really need is a way to take an individual sync event and see a list of entities that were synced, what sync did to them, and why. We should have sync emit some sort've structured log with details about what was synced.

I don't yet know how we want to expose this on prod or how we want to format it, but a preliminary list of interesting things I'd want to know:

  • What entities/locales were synced
  • For each entity, what action did the handle_entity end up taking?
  • What resources were added or removed?

Redirect loop when visit root of the site

I have followed the instruction on the README and when visit http://localhost:8000/ I get redirect loop

The page isn't redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    This problem can sometimes be caused by disabling or refusing to accept cookies.
10:37:1424457425 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457425 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:05] "GET / HTTP/1.1" 302 0
10:37:1424457425 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457425 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:05] "GET / HTTP/1.1" 302 0
10:37:1424457425 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457425 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:05] "GET / HTTP/1.1" 302 0
10:37:1424457425 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457425 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:05] "GET / HTTP/1.1" 302 0
10:37:1424457426 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457426 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:06] "GET / HTTP/1.1" 302 0
10:37:1424457426 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457426 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:06] "GET / HTTP/1.1" 302 0
10:37:1424457426 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457426 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:06] "GET / HTTP/1.1" 302 0
10:37:1424457426 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457426 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:06] "GET / HTTP/1.1" 302 0
10:37:1424457426 pontoon:DEBUG Home view. :/Users/ali/projects/pontoon/pontoon/base/views.py:69
10:37:1424457426 pontoon:DEBUG Translate view. :/Users/ali/projects/pontoon/pontoon/base/views.py:167
[20/Feb/2015 10:37:06] "GET / HTTP/1.1" 302 0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.