mozilla / pontoon Goto Github PK
View Code? Open in Web Editor NEWMozilla's Localization Platform
Home Page: https://pontoon.mozilla.org
License: BSD 3-Clause "New" or "Revised" License
Mozilla's Localization Platform
Home Page: https://pontoon.mozilla.org
License: BSD 3-Clause "New" or "Revised" License
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: @petercpg, @jotes
Blocker for: Bug 1398413
Set translation author to committer when importing translations pushed to VCS directly by localizers.
This issue was created automatically by a script.
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.
Not all translated strings are commited from Pontoon to hg.
Some strings on Pontoon are commited to hg (https://hg.mozilla.org/gaia-l10n/uk/rev/2aab07dcc006)
Some strings on Pontoon are replaced with old strings from hg (https://pontoon.mozilla.org/uk/firefox-os/shared/collection_categories/collection_categories.properties/)
I run into this issue from time to time...
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: [email protected], [email protected]
Depends on: Bug 1586820
Show entity list by default and open editor when entity selected. No in-page localization.
$ 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
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
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: @jotes
With 1000s of entities selected, batch operations can take some time.
We should move them to celery.
This issue was created automatically by a script.
Bug Reporter: @yfdyh000
CC: @mathjazz
For https://pontoon.mozilla.org/zh-CN/manage/ page.
Convert
https://github.com/mozilla/pontoon/blob/master/pontoon/base/templates/widgets/multiple_choice.html
https://github.com/mozilla/pontoon/blob/master/pontoon/base/templates/widgets/contributors.html
preventDefault for links.
This issue was created automatically by a script.
Bug Reporter: @Pike
CC: @mathjazz
Pontoon doesn't seem to benefit much from using Jinja templates, and a dependency less is a dependency less.
Sharing a template engine with elmo will also help us moving forward getting both tools closer together.
This issue was created automatically by a script.
Bug Reporter: @yfdyh000
CC: @mathjazz
Depends on: Bug 983096
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1386267
It is suitable for some strings, such as the accesskey, keycode, entity reference.
It should have a warning. It should apply to the translator, because it is not difficult to undo, such as download file from VSC and then reupload, or delete for selected.
This issue was created automatically by a script.
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:
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
Bug Reporter: @mathjazz
Implement drag and drop support.
Download entire project as ZIP, also for bigger projects.
This issue was created automatically by a script.
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)?
This issue was created automatically by a script.
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:
Current implementation on frontend:
Also:
#208
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.
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.
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
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.
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'
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
Bug Reporter: @mathjazz
Depends on: Bug 1613851, Bug 1243086, Bug 1288956, Bug 1473761
Currently, latest activity only shows latest translation submissions and approvals.
We should also be able to do things like:
The website https://pontoon.mozillalabs.com/
has a security error.
The site specified an invalid Strict-Transport-Security header.
Maybe implementing Strict-Transport-Security: max-age=778000
i.e. 90 days should be a good thing to prevent MITM Attacks.
https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
Add the options to suggest translations for each string and remember who made the suggestions. Also, give 'admins' the right to 'dismiss' suggestions. These are features of Pootle nice to have in Pontoon.
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
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:
Add en-US files to the .zip
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.
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: @adngdb, @afarsi, [email protected], @jarifibrahim, @yarons
Make Pontoon Intro right-to-left ready:
https://github.com/mathjazz/pontoon-intro
This issue was created automatically by a script.
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
This issue was created automatically by a script.
Bug Reporter: @mathjazz
Refactor pre-translation checks to use Django's built-in validation framework instead of putting all the validation logic in the views.
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.
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.
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
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: @flodolo, @MikkCZ
If a translation is changed in both, VCS and Pontoon between two sync cycles, VCS translation should be impored into Pontoon and translation submitted via Pontoon should be degraded to a suggestion.
Does this refer to https://github.com/mathjazz/pontoon/blob/master/pontoon/base/urls.py#L8 and the following lines and https://github.com/mathjazz/pontoon/blob/master/pontoon/base/views.py#L73 (and similar lines)?
It looks like the Romanian letter Ț is rendered wrong on the Pontoon frontpage, it's a little too large.
http://i.imgur.com/6cxDRSe.png
Another small issue is the comma sign below Ș is rendered differently from the same sign below Ț.
There are no other issues with the other Romanian letters.
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: [email protected], @Jobava, @Osmose, [email protected], @zbraniecki
If multiple localizers are working on the same project/resource, they should see translation updates right after they are submitted to avoid duplicating work.
This issue was created automatically by a script.
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:
This issue was created automatically by a script.
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?
This issue was created automatically by a script.
Bug Reporter: @jotes
CC: @mathjazz, @merike
We had a discussion about the general ideas for improvements for keyboard-focused localizers (thread is available at #347).
Mathjazz suggested following solution:
Add a number next to each placeable and insert it with Ctrl + Alt + .
This issue was created automatically by a script.
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.
This button could help proof readers check the accuracy of the translation.
This issue was created automatically by a script.
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 (
pontoon/pontoon/base/models.py
Line 550 in cf6b55b
We should probably investigate this to see if there's a more correct way of calculating it.
This issue was created automatically by a script.
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.
This issue was created automatically by a script.
Bug Reporter: @Osmose
CC: @lonnen, @flodolo, @Natim, @mathjazz, @jotes
It'd be great if, as a user, I could fill out a form for adding a new project to Pontoon and submit it for approval. Then, if someone with the correct permissions approves it, it gets added to the list of projects in Pontoon and starts pulling and writing translations.
This issue was created automatically by a script.
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:
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.
This issue was created automatically by a script.
Bug Reporter: @mathjazz
CC: [email protected]
We should allow users to upload their personal translation memories in TMX format and terminologies in TBX format on their profile page.
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.
This issue was created automatically by a script.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.