Newer versions of Pip (7.1+) allow to create a constraints file which keeps track of versions of all sub-dependencies.
* All requirements files are renamed and moved into a separate directory.
* All sub-dependencies are moved to a constraints file.
* JS part
- update lib
- use `fluentSerializer.serializeExpression()` for all expression types but `SelectExpression`
- use official Fluent element expression type names in tooltips (no space)
- add space around expressions within {}
* Python part
- update lib
- use `fluentSerializer.serialize_expression()` for all expression types but `SelectExpression`
- use isinstance
* Fix bug 1518749 - Update bleach to version 3.0.2.
Note that from version 3, bleach does not require html5lib anymore, as it vendors it. We thus remove it from our requirements as well.
This patch brings support for Android String resources (strings.xml),
complete with parser, serializer and checks.
For the first time we use compare-locales for working with l10n files,
and we'll see more of it in the future as we plan to move most of the
file formats to it.
In addition to that, the patch includes some cleanups and fixes:
- Unused properties have been removed
- Unused imports have been removed
- A typo in a method name has been fixed
We expose localizable files (on dashboards and in translate view) by
creating corresponding TranslatedResource objects. This patch splits
the existing update_translated_resources() method into two methods:
1. An existing one that uses a built-in algorithm to decied when to
create a TranslatedResource instance.
2. A new one that uses project config to decide when to create a
TranslatedResource instance.
Also included:
* Required update to compare-locales 4.0.2.
* Project config checkout in tests.
Replace django-pylibmc with django-bmemcached, which is recommended by
other Heroku users. We also update app.js (used during Deploy with
Heroku button) and docs to use Memcachier add-on instead of Memcached
Cloud.
This patch introduces a Translations.active field. It is Boolean and
has a constraint to be True for a maximum of one unique combination of
(locale, entity, plural_form). Active translations are displayed in the
string list and as the first entry in the History tab.
The idea is to store active translations in the DB, instead of
calculating them on the fly, which is expensive. Hence, we're adding a
data migration to set Translation.active to True where needed for
existing translations. We also make sure that the active field is
updated properly when translations are changed. And finally, we're
making use of the active field instead of calculating it in the code.
For practical reasons, we're also fixing two other bugs:
* Bug 1477581: Unfuzzy on mass reject (and approve). These changes
prevent translations from being in double state: fuzzy and approved
or rejected.
* Bug 1397138: Adding suggestions must not unfuzzy strings.
The patch also removes the Translation.entity_document field and
related trigger and function, which were introduced earlier and aren't
used anymore.
It also makes code for unapproving, unfuzzying and rejecting
translations more consistent and maintainable.
* Update libraries
* Rename NumberExpression to NumberLiteral
* Rename StringExpression to StringLiteral
* Rename ExternalArgument to VariableReference
* Rename element.expression.expression to element.expression.selector
* Add support for TermReference
* Add support for VariantLists to as_simple_translation filter
* Add support for VariantLists in frontend through a custom parseEntry()
Also:
* Simplify attribute serialization
* #ftl-original should not overflow (scrollbar on parent element)
* Enforce = sign for strings without value in tests
* Replace hasattr() with isinstance()
* Placeables are guaranteed to have the expression field
* Add React frontend for Translate app.
This has been set up using create-react-app.
* Integrate new Translate app into django.
This provides a working prod and dev environment. In production, django will serve the index.html file as a template, and files built by webpack will be collected and distributed with other django static files. In development, all requests are proxied to the dev webpack server, allowing all dev niceties to be used.
* Add support for websockets.
* Add a bit of documentation specific to our use case.
* Add redux for state management.
* Show a very basic list of entities.
* Enable absolute path import.
* Add links to various resources.
* Rearchitecture code into modules.
All features should be self-contained into a module in src/modules/. All code that is shared amongst several modules should go into a module in src/core/.
* Remove unused assets.
* Add some architecture documentation.
* Add Flow to current code for type checking.
* Add unit testing with jest, enzyme and sinon.
* Extend documentation, talk about type checking, modules, and list tools we use.
* Move CSS rules closer to actual component.
* Add django-waffle and hide translate.next behind a switch.
* Better structure for the README file.
* Build and test frontend in travis.
* Of course it is better if dependencies are installed.
* Use pushd to run commands in frontend.
* Configure eslint and fix errors.
* Add more code comments.
* Improve documentation around local dev and Flow.
* Add tests for the Translate view.
* Improve documentation.
* Fix serving static files for development.
* Integrate Translate.Next with out docker setup.
* Remove debug.
* Use DEV instead of DEBUG.
* Much review.
Many comments.
Wow better!
* Flatter module public interfaces.
* Import correctly from modules.
* Fix docker webapp run.
WebExtensions' JSON format support includes:
* JSON validation using jsonschema
* Marking JSON placeholders as placeables
* Displaying and linkifying placeholder examples as string metadata
* Factoring out create_parent_directory()
In addition to Translate Toolkit checks, we now also run compare-locales
checks when submitting a translation and also some pontoon-specific
checks, which were previously spread around the codebase. As of now, all
the checks code is located in the newly created pontoon.checks module.
Failed checks are either errors (prevent translations from being
submitted) or warnings (can be bypassed). Errors are detected using
compare-locales library and Pontoon’s internal checks, while warnings
are a product of compare-locales and Translate Toolkit libraries.
Since Translate Toolkit checks may result in many false positives in some
scenarios, they can be turned off using the Translate Toolkit Checks
toggle (previously called Quality Checks).
Other notable changes:
* Added tests for integration with compare-locales and Translate Toolkit.
* Added ability to disable specific Translate Toolkit checks (e.g. if
the same check is already handled by compare-locales).
* Slight UI Refresh: Prevent long check messages from being hidden behind
the button and visually separate errors and warnings.
* Move checks execution on the top of the /update/ view to reduce
complexity and simplify testing.
* Update to Fluent 0.7.0.
- Add tags admin view
- Add tests for tags admin view
- Use data not result in AjaxFormView
- Add permission_required decorator
- Wraps decorator from django guardian of the same name.
If the user is anon and the request is not permitted returns 404,
otherwise returns 403
- Add admin user in env
- Update django-guardian to latest version
- Update pylama and add dependencies
- Switch pylama config pep8 -> pycodestyle
and exclude settings dir from linting
- Rename vars named `l`
This creates a `E741 ambiguous variable name 'l' [pycodestyle]`
- Add requirements-test.txt to dev install instructions
Includes:
* Switch to PyPI install
* Support for Terms (treated same as Messages)
* Support for GroupComments as a replacement for Section comments
* Remove reference to Tags
* Reflect the introduction of type Placeable
* Replace serializeExpression() with fluentSerializer.serializeExpression()
* Use `isinstance` instead of `type`
* Factor out isSelectExpressionElement()
* In unsaved changes check, if translation cannot be parsed, return source editor value
* If no textarea has focus, select first
* Add check for matching Message keys
* runChecks() as a standalone function
* Run checks when switching from source view to rich mode
* Properly render multiple selectors
- Add django-webpack-loader to requirements
- Update settings to include webpack
- Add babel and webpack to package.json
- Dont use system node in docker as its too old
- Add webpack configuration
- Add es6 placeholder
- Add a webpack run to travis
- Add babel configuration
* Fixes bug 1407623 - Add direct input for projects with no repository.
This is the first step of allowing a new source of strings for projects. It permits to create projects without any repositories, and to enter string in a textarea. This commit also enables string management, to edit source strings and comments.
* Re-styling for coherence with general code.
* Added a button to download all translations as CSV.
* Enable strings management only for projects with no repository.
* Enable adding new strings. Better UI and styles.
* Fix small issues.
* Add a data_source field to projects, choices being repository or database.
This allows to explicitely mark projects for which we want to manage strings in Pontoon as "database". It makes the logic of showing the manage strings page clearer.
This commit also adds a textarea on the project creation page, allowing users to send the first batch of strings directly during the creation, instead of having to go to the manage strings page afterwards. The links move around a bit as well.
* Better link names.
* Hide repositories when data source is database.
* Add option to remove a string. Rename path to "database" from "all". Fix conflict on migration.
* Do not run sync on database sourced projects.
* Restore section padding
* Move textarea label to top for consistency. Use semantic HTML. Remove en-US note (true for all projects)
* Data Source and Strings sections in a single line
* Use example in Placeholder to avoid duplicating the label
* Separate page action (New string) from navigation buttons
* I doubt this action is needed on this page and I dont like duplicating functionality. Feel free to revert if you disagree.
* Adding action to the Action button
* White space is nice
* use plural for new strings placeholder.