Online translation tool

Overview

logo Pootle

Join the chat at https://gitter.im/translate/pootle Build Status Code Health Test Coverage Requirements

Docs | Changes | Issues | Community Support | Contributing | Development Channel

Pootle is an online translation and localization tool. It works to lower the barrier of entry, providing tools to enable teams to work towards higher quality while welcoming newcomers.

Pootle is a Server

Pootle is written in Python using the Django framework and therefore can be installed on any web server that supports serving WSGI applications.

A number of translation projects for a number of languages can be hosted on Pootle. Teams can manage their files, permissions, projects, and translate on-line. Files can be downloaded for offline translation.

Installation

pip install --pre Pootle

Don't forget to read the installation guide for important details.

Copying

Pootle is released under the General Public License, version 3 or later. See the LICENSE file for details.

Comments
  • Escaping backslash

    Escaping backslash

    It seems there is a problem with escaping backslash in translations, when I enter \ submit, then re-open the unit it gets converted into \\. I’m not sure if this is the intended behaviour, but if yes then it is confusing and I don’t think it is a good idea to expose escaping to the translators, it should be handled transparently.

    bug editor 
    opened by khaledhosny 144
  • Bring quality checks documentation within Pootle

    Bring quality checks documentation within Pootle

    This staticpage also have to be created on the upgrade to 2.6. Working on that.

    @translate/evernote @translate/house Please review.

    Ideally Evernote checks would use the same approach it is used for TTK checks: retrieve description from each check docstring.

    Also note that this doesn't handle the scenario where TTK is upgraded and new checks are added, or removed or changed.

    opened by unho 33
  • Implement new authentication workflow

    Implement new authentication workflow

    UI aside, we need to be able to support the following login, registration and password reset workflow:

    sign-in-flow-v2_gh sign-in-flow-v2_gh_2

    It's unclear if allauth supports the following, which are needed:

    • Linking and unlinking of social providers from users. We currently provide the option to link/unlink a user from an EN account in the user settings page, and this needs to be kept. (not covered in the mockups @iafan, it probably should).
    • Talking to the backend via XHR requests (it doesn't seem to be supported).
    enhancement 
    opened by julen 33
  • Strings Entire Project and Please enter 3 or more characters

    Strings Entire Project and Please enter 3 or more characters

    Hi,

    these two Pootle 2.8.0 strings are displayed as untranslated. There is a translated string "Entire Project" - core/views/base.py:112 - which is shown in English but I didn't find the string "Please enter 3 or more characters". Mozilla and Libreoffice are using 2.8.0rc5. Are these two strings newer?

    l10n 
    opened by milupo 32
  • Reorder breadcrumbs to adapt to translator's common use-case

    Reorder breadcrumbs to adapt to translator's common use-case

    It looks like some translators are confused with the order of the breadcrumbs, which seem to be more oriented to project managers.

    Let's rather reorder the breadcrumbs as: Language [v] / Projects / Project name

    When clicking on 'Projects', users can browse to the list of projects available for the current language. When clicking on a particular language, Pootle should try to preserve the current context.

    Since the language picker will list all the languages in the server, it's possible that the chosen language might not be available in the current context — in that situation we redirect the user to the language page.

    opened by julen 31
  • Allauth-based revamped auth workflow

    Allauth-based revamped auth workflow

    This PR introduces the allauth-based authentication backend, and implements the new workflow and UI for it.

    Fixes #3343, #3515, #3517, #3518, #3728, #3737, #3774.

    IMPORTANT NOTES

    • It's highly suggested to migrate existing users to Allauth's own way to manage email addresses.
    • The commit messages have issue references with stripped #s to avoid spam. They'll be brought back to normal immediately before merging happens.
    • The PR doesn't cover:
      • Email management (add/change/remove addresses)
      • Explicit account linking/unlinking features

    Workflow testing

    Before testing, ensure you are up-to-date with npm dependencies (npm install within pootle/static/js) and make sure to build JS modules (manage.py webpack --dev).

    An outline of possible tests of the workflow follows. Added to this, triggering form validation errors anywhere in the process can help too.

    1. Sign In
      • Confirmed user (signed up, verified email address)
        • signs user in
          • redirects to
            • previous URL in case next was specified
            • settings.LOGIN_URL otherwise
      • Unconfirmed user (signed up, didn't verify email address yet)
        • re-sends activation email
        • re-check this after a cooling down period of a few minutes; prevents impatient users from being bombarded with emails
      • Unconfirmed user (existed prior to allauth, didn't verify email address in allauth) — this should ideally be avoided by migrating users' data
        • sends activation email
        • click email link to verify email and confirm user account
      • Inactive user (admin deactivated user, is_active = False)
        • trying to sign in will display the inactive screen
    2. Sign Up
      • Provide new user data
        • sends activation email
      • Click email link to verify email and confirm user account
        • signs user automatically in
        • redirects to settings.LOGIN_REDIRECT_URL
    3. Password Reset
      • Request password reset
        • sends reset link in an email
      • Click reset link in the email
        • reset password
          • resets password and signs user in, redirecting to / (unfortunately cannot redirect to settings.LOGIN_REDIRECT_URL due to allauth's limitation)
        • sign out
        • sign in with new password
      • Open invalid/outdated/already-reset password reset link
        • displays message of invalid reset link

    If you feel brave you can also test some social authentication provider (just enable a provider by adding it to INSTALLED_APPS; it'll show up), but note that that area hasn't been fully addressed yet so YMMV.

    opened by julen 30
  • Reposition Last updated column in stats table

    Reposition Last updated column in stats table

    Some users have reported that now that the Need Translation column has been moved to the right, to the left on RTL layouts (see issue https://github.com/translate/pootle/issues/4630), when using small screens (1024px wide) they have to scroll horizontally some times (when some name in first column is long). Perhaps the best way to deal with this is to move the Last updated column further right (on LTR) so they can quickly see links to Need Translation.

    Another possible option is to move the Total column further right, instead of Last updated column. The upside is that doing this we can align with the order for the action links, where total count is the last one (green lozenge). Note that on https://github.com/translate/pootle/issues/4630 there was some pushback to this proposal.

    mlo ui 
    opened by unho 28
  • Initial virtual folders

    Initial virtual folders

    Ready to review.

    This is meant to somehow recover our old goals functionality, but using the new vfolders.

    This provides a management command to create and update virtual folders, adds the ability to sort the units by (vfolder) priority on the editor, and injects the priority sorting into the translate URLs in the translation project overview.

    Things that differ from specs:

    • We don't use any filtering rules. Instead we provide lists of filenames relative to vfolder location.
    opened by unho 25
  • Display fine-grained user contributions in the public profile page

    Display fine-grained user contributions in the public profile page

    Use case - Who is translating what when

    We want to know who has been translating and what they have translated. This is so that we can review the quality of their work as well as see who has been most active in some period. We need to be able to see the project as a whole, filter on the various translators and limit the timeline to some boundaries. We should be able to click on an timeline event and be taken to that unit.

    Use - Who has changed my strings and what have I done

    The timeline in this case is the same as the main timeline but filtered on the user themselves. The primary reason for a user would be to find strings that they translated that have been changed. This allows them to learn from their mistakes. But it also allows them to revert strings where someone has broken their translation.

    Implementation

    The timeline should appear mostly the same as the timeline we have in out units model. It includes metadata such as who made the translation as well as the user friendly dates.

    Clicking on a unit should take you to the unit in the translation interface.

    You should be able to expand the unit history for any unit.

    When the translation had a previous translation that should be shown by default in a way that shows that it is a child of the unit. It should be easy to revert a translation from the interface in a single click.

    Issues

    • We need to complete the revert tracking in timeline. At the moment clicking on a past item will add it to the unit allowing you to submit. We need to do a proper revert that is a simple click to revert. But also tracks the change in the timeline as a revert. A revert is by someone (could be the same person) back to a string by someone else.

    Clarity needed

    How much filtering do we want to do in the first iteration. There is value in being able to filter on translator, state change, keyword, overwrite, date. Implementing all of that is a massive task. So what are the most critical bit to filter on?

    opened by dwaynebailey 25
  • Remove uid lists

    Remove uid lists

    This PR removes the uid_list of full search results in the translation editor.

    Instead the units are paginated forwards/backwards using offsets.

    You can jump to a given index ~as before.

    When paginating forwards the editor sends the previous units to adjust the offsets for units that may have been removed eg from being edited.

    You can jump to a unit in any results set if you know the offset. If the uid is not in the result set at that offset - you will be shown the units currently at that offset.

    For the Store translation view you can also search by uid of a unit without knowing the offset beforehand, in which case the backend will calculate the offset for the client

    opened by phlax 24
  • Use additional local (external) TMs

    Use additional local (external) TMs

    This adds the ability to create additional translation memories, and use them on the editor. Results are now pondered using the result score and a weighting factor specific to each TM server (between 0 and 1).

    Fixes #4102.

    opened by unho 24
  • SyntaxError when testing pootle with runserver command

    SyntaxError when testing pootle with runserver command

    This test is a consequence of https://github.com/translate/pootle/issues/6917, for which I tried installing in a clean environment with MySQL 5.7

    Steps to reproduce:

    • install pootle on MySQL 5.7
    • run pootle for quick test with pootle runserver --insecure 0.0.0.0:8000

    Results (Expected/Actual):

    I would expect Pootle homepage to open, instead I see

    A server error occurred.  Please contact the administrator.
    

    The logs of the runserver command says:

    Traceback (most recent call last):
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/core/handlers/base.py", line 215, in _get_response
        response = response.render()
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/response.py", line 109, in render
        self.content = self.rendered_content
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/response.py", line 84, in rendered_content
        template = self.resolve_template(self.template_name)
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/response.py", line 66, in resolve_template
        return select_template(template, using=self.using)
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/loader.py", line 44, in select_template
        engines = _engine_list(using)
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/loader.py", line 72, in _engine_list
        return engines.all() if using is None else [engines[using]]
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/utils.py", line 89, in all
        return [self[alias] for alias in self]
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/utils.py", line 80, in __getitem__
        engine = engine_cls(params)
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/backends/django.py", line 30, in __init__
        options['libraries'] = self.get_templatetag_libraries(libraries)
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/backends/django.py", line 48, in get_templatetag_libraries
        libraries = get_installed_libraries()
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/backends/django.py", line 113, in get_installed_libraries
        for name in get_package_libraries(pkg):
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/django/template/backends/django.py", line 126, in get_package_libraries
        module = import_module(entry[1])
      File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/statici18n/templatetags/statici18n.py", line 13, in <module>
        from statici18n.conf import settings
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/statici18n/conf.py", line 3, in <module>
        from appconf import AppConf
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/appconf/__init__.py", line 1, in <module>
        from .base import AppConf  # noqa
      File "/home/mtassinari/pootle/env/lib/python2.7/site-packages/appconf/base.py", line 107
        class AppConf(metaclass=AppConfMetaClass):
                               ^
    SyntaxError: invalid syntax
    

    Environment (i.e. 'pootle --version', DB, OS, Browser):

    Ubuntu 20.04 Pootle 2.8.2 (Django 1.10.8, Translate Toolkit 2.2.5) Python 2.7.18 mysql Ver 14.14 Distrib 5.7.38, for Linux (x86_64) using EditLine wrapper

    opened by tasso85 0
  • Error in first database migration on MySQL 8

    Error in first database migration on MySQL 8

    Steps to reproduce:

    • install Pootle in a clean env as a non-root user
    • install MySQL 8 as database backend
    • create the empty database ad assign valid permissions to dedicated user
    • try to run the first pootle migrate

    Results (Expected/Actual):

    The operation fails with the following output:

    (env) [email protected]:~/pootle$ pootle migrate
    System check identified some issues:
    
    WARNINGS:
    ?: (pootle.W004) Email server is not available.
            HINT: Review your email settings and make sure your email server is working.
    Operations to perform:
      Apply all migrations: account, accounts, auth, contenttypes, pootle_app, pootle_comment, pootle_config, pootle_data, pootle_format, pootle_fs, pootle_language, pootle_project, pootle_revision, pootle_score, pootle_statistics, pootle_store, pootle_translationproject, pootle_word, reports, sessions, sites, socialaccount, staticpages, virtualfolder
    Running migrations:
      Applying accounts.0001_initial... OK
      Applying account.0001_initial... OK
      Applying account.0002_email_max_length... OK
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying pootle_app.0001_initial... OK
      Applying pootle_language.0001_initial... OK
      Applying accounts.0002_user_alt_src_langs... OK
      Applying accounts.0003_remove_pootleprofile_id... OK
      Applying accounts.0004_allow_null_last_login... OK
      Applying accounts.0005_user_indeces... OK
      Applying accounts.0006_unicode_usernames_are_valid... OK
      Applying accounts.0007_update_system_username... OK
      Applying accounts.0008_add_system_user... OK
      Applying accounts.0009_remove_currency_and_hourly_rate_fields... OK
      Applying accounts.0010_set_username_unique_error_message... OK
      Applying accounts.0011_remove_user_rates... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying auth.0008_alter_user_username_max_length... OK
      Applying pootle_project.0001_initial... OK
      Applying pootle_translationproject.0001_initial... OK
      Applying pootle_store.0001_initial... OK
      Applying pootle_translationproject.0002_remove_translationproject_disabled... OK
      Applying pootle_translationproject.0003_realpath_can_be_none... OK
      Applying pootle_translationproject.0004_add_reverse_tp_idx... OK
      Applying pootle_store.0002_make_suggestion_user_not_null... OK
      Applying pootle_store.0003_remove_unit_ordering... OK
      Applying pootle_store.0004_index_store_index_together... OK
      Applying pootle_store.0005_unit_priority... OK
      Applying pootle_store.0006_remove_auto_now_add... OK
      Applying pootle_store.0007_case_sensitive_schema... OK
      Applying pootle_store.0008_flush_django_cache...Flushing cache...
    All default Django cache data removed.
     OK
      Applying pootle_format.0001_initial... OK
      Applying pootle_format.0002_default_formats... OK
      Applying pootle_store.0009_store_filetype... OK
      Applying pootle_project.0002_remove_dynamic_model_choices_localfiletype... OK
      Applying pootle_project.0003_case_sensitive_schema... OK
      Applying pootle_project.0004_correct_checkerstyle_options_order... OK
      Applying pootle_project.0005_add_none_treestyle... OK
      Applying pootle_project.0006_project_filetypes... OK
      Applying pootle_project.0007_migrate_localfiletype... OK
      Applying pootle_store.0010_set_store_filetypes... OK
      Applying pootle_store.0011_store_is_template... OK
      Applying pootle_store.0012_set_is_template... OK
      Applying pootle_store.0013_set_store_filetype_again... OK
      Applying pootle_store.0014_add_unit_index_togethers... OK
      Applying pootle_store.0015_add_slashes_validator_for_name... OK
      Applying pootle_store.0016_blank_last_sync_revision... OK
      Applying pootle_statistics.0001_initial... OK
      Applying pootle_statistics.0002_update_submission_ordering... OK
      Applying pootle_statistics.0003_scorelog_translated_wordcount... OK
      Applying pootle_statistics.0004_fill_translated_wordcount... OK
      Applying pootle_data.0001_initial... OK
      Applying pootle_data.0002_storechecksdata_tpchecksdata... OK
      Applying pootle_data.0003_index_unique_together... OK
      Applying pootle_data.0004_remove_last_updated... OK
      Applying pootle_data.0005_add_store_and_tp_data... OK
      Applying pootle_data.0006_add_cascade_deletes... OK
      Applying pootle_app.0002_mark_empty_dirs_as_obsolete... OK
      Applying pootle_app.0003_drop_existing_directory_default_permissions... OK
      Applying pootle_app.0004_set_directory_has_no_default_permissions... OK
      Applying pootle_app.0005_case_sensitive_schema... OK
      Applying pootle_app.0006_change_administrate_permission_name... OK
      Applying pootle_app.0007_add_directory_name_validation... OK
      Applying pootle_app.0008_allow_blank_directory_name_and_parent... OK
      Applying pootle_app.0009_set_default_directory_pootle_path... OK
      Applying pootle_app.0010_obsolete_path_idx... OK
      Applying pootle_app.0011_directory_tp... OK
      Applying pootle_app.0012_set_directory_tp... OK
      Applying pootle_app.0013_directory_tp_path... OK
      Applying pootle_app.0014_set_directory_tp_path... OK
      Applying pootle_app.0015_add_tp_path_idx... OK
      Applying pootle_translationproject.0005_remove_empty_translationprojects... OK
      Applying pootle_language.0002_case_insensitive_schema... OK
      Applying pootle_app.0016_set_directory_tp_again... OK
      Applying pootle_app.0017_drop_stray_directories... OK
      Applying pootle_app.0018_set_directory_base_manager_name... OK
      Applying pootle_app.0019_remove_extra_indeces... OK
      Applying sites.0001_initial... OK
      Applying pootle_comment.0001_initial... OK
      Applying pootle_comment.0002_use_abstract_module... OK
      Applying pootle_config.0001_initial... OK
      Applying pootle_project.0008_remove_project_localfiletype... OK
      Applying pootle_project.0009_set_code_as_fullname_when_no_fullname... OK
      Applying pootle_project.0010_add_reserved_code_validator... OK
      Applying pootle_project.0011_add_project_checker_validator... OK
      Applying pootle_project.0012_set_pootle_fs_treestyle... OK
      Applying pootle_project.0013_rename_treestyle_choice_to_pootle_fs... OK
      Applying pootle_project.0014_just_rename_label_for_choice... OK
      Applying pootle_translationproject.0006_relink_or_drop_orphan_translationprojects... OK
      Applying pootle_translationproject.0007_set_tp_base_manager_name... OK
      Applying virtualfolder.0001_initial... OK
      Applying virtualfolder.0002_set_unit_priorities... OK
      Applying virtualfolder.0003_case_sensitive_schema... OK
      Applying pootle_store.0017_store_priority... OK
      Applying pootle_store.0018_move_priority_to_store... OK
      Applying pootle_store.0019_remove_unit_priority... OK
      Applying pootle_store.0020_store_tp_path... OK
      Applying pootle_store.0021_set_tp_path... OK
      Applying pootle_store.0022_add_unique_tp_path_idx... OK
      Applying pootle_store.0023_add_unit_store_idxs... OK
      Applying pootle_store.0024_set_store_base_manager_name... OK
      Applying pootle_store.0025_unit_on_delete_user... OK
      Applying pootle_store.0026_suggestion_on_delete_user... OK
      Applying pootle_store.0027_unit_created_by_squashed_0055_fill_unit_source_data... OK
      Applying pootle_store.0028_unitsource_creation_revision... OK
      Applying pootle_store.0029_set_unit_creation_revision... OK
      Applying pootle_store.0030_remove_extra_indeces... OK
      Applying pootle_data.0007_add_store_and_tp_data_again... OK
      Applying pootle_data.0008_keep_data_on_delete... OK
      Applying pootle_data.0009_remove_extra_indeces... OK
      Applying pootle_format.0003_remove_extra_indeces... OK
      Applying pootle_fs.0001_initial... OK
      Applying pootle_language.0003_ensure_unique_special_chars... OK
      Applying pootle_project.0015_rename_fs_treestyle... OK
      Applying pootle_project.0016_change_treestyle_choices_label... OK
      Applying pootle_revision.0001_initial... OK
      Applying pootle_statistics.0005_index_ordering... OK
      Applying pootle_score.0001_initial... OK
      Applying pootle_score.0002_set_user_scores... OK
      Applying pootle_score.0003_add_pootle_user_store_score... OK
      Applying pootle_score.0004_zero_default_score... OK
      Applying pootle_score.0005_remove_extra_indeces... OK
      Applying pootle_statistics.0006_set_submission_base_manager_name... OK
      Applying pootle_statistics.0007_submission_revision... OK
      Applying pootle_statistics.0008_set_submission_revisions... OK
      Applying pootle_statistics.0009_rm_similarity... OK
      Applying pootle_statistics.0010_submission_on_delete_user... OK
      Applying pootle_statistics.0011_cleanup_submissions_squashed_0023_remove_scorelog... OK
      Applying pootle_statistics.0012_drop_stale_scorelog_ctype... OK
      Applying pootle_statistics.0013_remove_extra_indeces... OK
      Applying pootle_store.0031_remove_suggestion_translator_comment_f... OK
      Applying pootle_store.0032_fix_empty_wordcounts...Traceback (most recent call last):
      File "/home/developer/pootle/env/bin/pootle", line 8, in <module>
        sys.exit(main())
      File "/home/developer/pootle/env/lib/python2.7/site-packages/pootle/runner.py", line 357, in main
        run_app(project='pootle', django_settings_module='pootle.settings')
      File "/home/developer/pootle/env/lib/python2.7/site-packages/pootle/runner.py", line 338, in run_app
        management.execute_from_command_line(command)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
        utility.execute()
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/core/management/base.py", line 345, in execute
        output = self.handle(*args, **options)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 204, in handle
        fake_initial=fake_initial,
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/migrations/executor.py", line 115, in migrate
        state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
        state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
        state = migration.apply(state, schema_editor)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/migrations/migration.py", line 126, in apply
        operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/migrations/operations/special.py", line 189, in database_forwards
        self.code(from_state.apps, schema_editor)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/pootle/apps/pootle_store/migrations/0032_fix_empty_wordcounts.py", line 21, in fix_empty_wordcounts
        stores = set(unit_sources.values_list("unit__store", flat=True).distinct())
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/models/query.py", line 256, in __iter__
        self._fetch_all()
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/models/query.py", line 1087, in _fetch_all
        self._result_cache = list(self.iterator())
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/models/query.py", line 155, in __iter__
        for row in compiler.results_iter():
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 789, in results_iter
        results = self.execute_sql(MULTI)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
        cursor.execute(sql, params)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
        six.reraise(dj_exc_type, dj_exc_value, traceback)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 110, in execute
        return self.cursor.execute(query, args)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/MySQLdb/cursors.py", line 209, in execute
        res = self._query(query)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/MySQLdb/cursors.py", line 315, in _query
        db.query(q)
      File "/home/developer/pootle/env/lib/python2.7/site-packages/MySQLdb/connections.py", line 239, in query
        _mysql.connection.query(self, query)
    django.db.utils.OperationalError: (3995, "Character set 'utf8_general_ci' cannot be used in conjunction with 'binary' in call to regexp_like.")
    

    Instead, I would expect that the database is properly migrated.

    Environment (i.e. 'pootle --version', DB, OS, Browser):

    (env) [email protected]:~/pootle$ pootle --version
    Pootle 2.8.2 (Django 1.10.8, Translate Toolkit 2.2.5)
    
    [email protected]:~# cat /etc/debian_version
    bullseye/sid
    
    [email protected]:~# mysql --version
    mysql  Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
    
    opened by tasso85 0
  • `pip install Pootle[git]` doesn't work anymore

    `pip install Pootle[git]` doesn't work anymore

    Steps to reproduce:

    1. Run pip install --pre --process-dependency-links Pootle[git] as instructed in http://docs.translatehouse.org/projects/pootle/en/latest/features/integrate_with_vcs.html#install-pootle-fs-plugins-for-vcs

    Results (Expected/Actual):

    • Expected: Pootle[git] gets installed
    • Actual: Pootle[git] fails to install:
    Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/pootle-fs-git/
    
    Complete log
    [email protected]:~# pip install --pre --process-dependency-links Pootle[git]
    Requirement already satisfied: Pootle[git] in /usr/local/lib/python2.7/dist-packages (2.8.2)
    Requirement already satisfied: scandir==1.5 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.5)
    Requirement already satisfied: Babel==2.5.1 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.5.1)
    Requirement already satisfied: pytz==2017.2 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2017.2)
    Requirement already satisfied: bleach==2.0.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.0.0)
    Requirement already satisfied: rq==0.8.2 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.8.2)
    Requirement already satisfied: django-allauth==0.33.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.33.0)
    Requirement already satisfied: django-rq==0.9.6 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.9.6)
    Requirement already satisfied: stemming==1.0.1 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.0.1)
    Requirement already satisfied: diff-match-patch==20121119 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (20121119)
    Requirement already satisfied: cssmin==0.2.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.2.0)
    Requirement already satisfied: translate-toolkit==2.2.5 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.2.5)
    Requirement already satisfied: django-assets==0.12 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.12)
    Requirement already satisfied: python-levenshtein==0.12.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.12.0)
    Requirement already satisfied: python-dateutil==2.6.1 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.6.1)
    Requirement already satisfied: django-statici18n==1.4.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.4.0)
    Requirement already satisfied: django-contrib-comments!=1.8.0,==1.7.3 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.7.3)
    Requirement already satisfied: django-overextends==0.4.3 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (0.4.3)
    Requirement already satisfied: dirsync==2.2.2 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.2.2)
    Requirement already satisfied: lxml<=3.8.0,>=3.5 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (3.8.0)
    Requirement already satisfied: django-redis==4.8.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (4.8.0)
    Requirement already satisfied: Markdown==2.6.9 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.6.9)
    Requirement already satisfied: django-contact-form==1.4.2 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.4.2)
    Requirement already satisfied: pathlib==1.0.1 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.0.1)
    Requirement already satisfied: Django~=1.10.5 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.10.8)
    Requirement already satisfied: jsonfield==2.0.2 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.0.2)
    Requirement already satisfied: django-bulk-update==2.2.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (2.2.0)
    Requirement already satisfied: pycountry==17.5.14 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (17.5.14)
    Requirement already satisfied: django-sortedm2m==1.5.0 in /usr/local/lib/python2.7/dist-packages (from Pootle[git]) (1.5.0)
    Collecting pootle-fs-git==0.0.1; extra == "git" (from Pootle[git])
    Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/pootle-fs-git/
    

    Environment (i.e. 'pootle --version', DB, OS, Browser):

    [email protected]:~# pip --version
    pip 18.1 from /usr/lib/python2.7/dist-packages/pip (python 2.7)
    
    [email protected]:~# cat /etc/os-release 
    PRETTY_NAME="Debian GNU/Linux 10 (buster)"
    NAME="Debian GNU/Linux"
    VERSION_ID="10"
    VERSION="10 (buster)"
    VERSION_CODENAME=buster
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"
    
    opened by RazZziel 0
  • During Installation: Secret Key not recognized

    During Installation: Secret Key not recognized

    Steps to reproduce:

    Followed the Installation instructions on Ubuntu 18.04. with following differences:

    first I installed all dependecies

    sudo mkdir /var/www/pootle
    cd /var/www/pootle
    virtualenv env
    source env/bin/activate
    sudo pip install --pre Pootle
    sudo pootle init --db mysql --db-name pootle --db-user pootle --config /var/www/pootle/env/pootle.conf
    sudo nano'ed the above conf file and input the mysql-user-password, checked the secret-key, is present and has correct length
    sudo pootle rqworker &
    

    all working well, with exception to the note that python2.7 is deprecated.

    Results (Expected/Actual):

    expected: rqworker starting actual:

    Traceback (most recent call last): File "/usr/local/bin/pootle", line 11, in load_entry_point('Pootle==2.8.2', 'console_scripts', 'pootle')() File "/usr/local/lib/python2.7/dist-packages/pootle/runner.py", line 357, in main run_app(project='pootle', django_settings_module='pootle.settings') File "/usr/local/lib/python2.7/dist-packages/pootle/runner.py", line 312, in run_app caches = settings.CACHES.keys() File "/usr/local/lib/python2.7/dist-packages/django/conf/init.py", line 53, in getattr self._setup(name) File "/usr/local/lib/python2.7/dist-packages/django/conf/init.py", line 41, in _setup self._wrapped = Settings(settings_module) File "/usr/local/lib/python2.7/dist-packages/django/conf/init.py", line 116, in init raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.") django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

    Environment (i.e. 'pootle --version', DB, OS, Browser):

    pootle --version Pootle 2.8.2 (Django 1.10.8, Translate Toolkit 2.2.5)

    When I try "pootle migrate" the same error is shown.

    opened by funktionierbar 0
  • Following pootle installation tutorial, get syntax invalid errors when trying to view the server running

    Following pootle installation tutorial, get syntax invalid errors when trying to view the server running

    Steps to reproduce:

    Followed the pootle installation tutorial

    Results (Expected/Actual):

    See pootle running

    Environment (i.e. 'pootle --version', DB, OS, Browser):

    Pootle 2.8.2 (Django 1.10.8, Translate Toolkit 2.2.5

    Attached is the terminal text with the errors. When I go to the localhost address all I see is "A server error occurred. Please contact the administrator."

    errorpootle.txt

    opened by DanielSnd 1
Releases(2.8.2)
  • 2.8.2(Sep 15, 2017)

  • 2.9.0rc1(Sep 14, 2017)

    This is a release candidate for the next major release for Pootle 2.9.0. Since we are approaching the final 2.9.0 release we would greatly appreciate any testing and bug reports so we can make sure 2.9.0 final release is as bug-free as possible.

    The major changes in this release are:

    • Stabler Pootle FS:
      • Pootle FS by default - update_stores and sync_stores remain for backward compatibility but they will be running using Pootle FS.
      • Improved bi-directional merging of conflicting changes in both database and disk.
    • Bugfixes in Pootle FS, serialization, internationalization and the editor.
    • Performance boost in permissions forms.
    • Major review of documentation.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.9.0rc1.tar.bz2(8.72 MB)
  • 2.9.0b4(Sep 12, 2017)

    This release is a beta for next major release for Pootle 2.9.0. We would greatly appreciate any testing and bug reports so we can make sure 2.9.0 final release is as bug-free as possible.

    The major changes in this release are:

    • Stabler Pootle FS:
      • Pootle FS by default - update_stores and sync_stores remain for backward compatibility but they will be running using Pootle FS.
      • Improved bi-directional merging of conflicting changes in both database and disk.
    • Bugfixes in serialization, internationalization and the editor.
    • Performance boost in permissions forms.
    • Major review of documentation.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.9.0b4.tar.bz2(8.72 MB)
  • 2.9.0b3(Sep 6, 2017)

    This release is a beta for next major release for Pootle 2.9.0. We would greatly appreciate any testing and bug reports so we can make sure 2.9.0 final release is as bug-free as possible.

    The major changes in this release are:

    • Even more stable Pootle FS
    • Improved bi-directional merging of conflicting changes in both database and disk
    • Pootle FS by default - update_stores and sync_stores remain for backward compatibility but they will be running using Pootle FS.
    • Bugfixes in serialization and internationalization

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.9.0b3.tar.bz2(8.73 MB)
  • 2.9.0b2(Sep 4, 2017)

    This release is a beta for next major release for Pootle 2.9.0. We would greatly appreciate any testing and bug reports so we can make sure 2.9.0 final release is as bug-free as possible.

    The major changes in this release are:

    • Pootle FS by default - update_stores and sync_stores remain for backward compatibility but they’ll be running using Pootle FS.
    • Major review of documentation

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.9.0b2.tar.bz2(8.73 MB)
  • 2.8.1(Aug 31, 2017)

  • 2.9.0b1(Aug 30, 2017)

    This release is a beta for next major release for Pootle 2.9.0. We would greatly appreciate any testing and bug reports so we can make sure 2.9.0 final release is as bug-free as possible.

    The major changes in this release are:

    • Pootle FS by default - update_stores and sync_stores remain for backward compatibility but they’ll be running using Pootle FS.
    • Major review of documentation

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.9.0b1.tar.bz2(8.73 MB)
  • 2.8.0(Aug 16, 2017)

  • 2.8.0rc7(Aug 1, 2017)

    This release is a release candidate for next major release for Pootle 2.8.0. We would greatly appreciate any testing and bug reports so we can make sure 2.8.0 final release is as bug-free as possible. We are expecting this to be the last release before releasing a stable version.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0rc7 updated translations, added code cleanups, loads of optimizations and minor bugfixes in the editor, cleaner search form, and a new update_data command.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc7.tar.bz2(8.75 MB)
  • 2.8.0rc6(Jun 20, 2017)

    This release is a release candidate for next major release for Pootle 2.8.0. We would greatly appreciate any testing and bug reports so we can make sure 2.8.0 final release is as bug-free as possible. We are expecting this to be the last release before releasing a stable version.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0rc5 updated translations, added code cleanups, loads of optimizations and minor bugfixes in the editor.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc6.tar.bz2(8.68 MB)
  • 2.6.4(Apr 4, 2017)

  • 2.6.3(Mar 30, 2017)

    This is an interim release. It is meant to provide an upgrade path from Pootle 2.5.x to Pootle 2.7.0 or newer.

    Pootle versions older than 2.5.0 will have to upgrade to 2.5.1.3 before upgrading to 2.6.3.

    The release notes are available in Read the Docs.

    Source code(tar.gz)
    Source code(zip)
  • 2.8.0rc5(Jan 30, 2017)

    This release is a release candidate for next major release for Pootle 2.8.0. We will be very grateful if people would help us by testing it. 2.8.0 is close and another release candidate is expected after this one.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0rc5 updated translations, code cleanups, optimizations and minor bugfixes in Pootle FS and a minor bugfix in TMX export.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc5.tar.bz2(8.25 MB)
  • 2.8.0rc4(Jan 25, 2017)

    This release is a release candidate for next major release for Pootle 2.8.0. We will be very grateful if people would help us by testing it. 2.8.0 is close and another release candidate is expected after this one.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0rc3 changed styling and added ability to use custom logo, updated translations, code cleanups, optimizations and minor bugfixes in Pootle FS and fixed TMX export.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc4.tar.bz2(8.27 MB)
  • 2.8.0rc3(Jan 18, 2017)

    This release is a release candidate for next major release for Pootle 2.8.0. We will be very grateful if people would help us by testing it. 2.8.0 is close and another release candidate is expected after this one.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0rc2 hid most of templates-related data in browse, updated translations, code cleanups, optimizations and minor bugfixes in Pootle FS and added TMX exporting download URLs.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc3.tar.bz2(8.19 MB)
  • 2.8.0rc2(Jan 13, 2017)

    This release is a release candidate for next major release for Pootle 2.8.0. We will be very grateful if people would help us by testing it. 2.8.0 is close and another release candidate is expected after this one.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0rc1 current unit in editor is shown at top to prevent jumpiness and ease use of navigation bar, refactored terminology matching to retrieve faster and better results, improved performance for scores, optimizations and minor bugfixes in Pootle FS and added TMX exporting.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc2.tar.bz2(8.16 MB)
  • 2.8.0rc1(Dec 20, 2016)

    This release is a release candidate for next major release for Pootle 2.8.0. We will be very grateful if people would help us by testing it. 2.8.0 is close and another release candidate is expected after this one.

    The major changes in this release are:

    • Pootle FS - which brings back version control support
    • Improved security - audited Pootle security and closed security holes
    • Major optimisations of the editor and browse pages
    • Support for teams and improved management of suggestions

    In particular since 2.8.0b5 we have introduced some adjustments to rendering the browse pages and optimizations for Pootle FS.

    Follow the Pootle installation or Pootle upgrading instructions.

    The release notes provide detailed changes.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.8.0rc1.tar.bz2(8.11 MB)
  • 2.8.0b5(Nov 25, 2016)

  • 2.8.0b4(Nov 11, 2016)

  • 2.8.0b3(Jul 22, 2016)

  • 2.8.0b2(Jul 22, 2016)

  • 2.8.0b1(Jun 22, 2016)

  • 2.7.6(Jun 20, 2016)

    This is a bugfix release to solve 2.7.5 release install issues. Also we strongly recommended everybody with Pootle 2.7.x to upgrade.

    A newer Pootle 2.8.0 is coming soon with lots of performance improvements and a few new features. We will be very grateful if people would help us by beta testing it.

    The major changes in this release are:

    • Fixed assets

    The release notes are available in Pootle documentation.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.7.6.tar.bz2(6.64 MB)
  • 2.7.5(May 21, 2016)

    IMPORTANT: This release package has being retired because it was faulty. Please use latest 2.7.x or newer instead.

    This is a bugfix release to solve 2.7.4 release install issues. Also we strongly recommended everybody with Pootle 2.7.x to upgrade.

    A newer Pootle 2.8.0 is coming soon with lots of performance improvements and a few new features. We will be very grateful if people would help us by beta testing it.

    The major changes in this release are:

    • Fixed build process to get a working package
    • Expanded list or RTL languages

    The release notes are available in Pootle documentation.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.4(May 19, 2016)

    IMPORTANT: This release package has being retired because it was faulty. Please use latest 2.7.x or newer instead.

    This is a bugfix release to solve 2.7.3 release install issues. Also we strongly recommended everybody with Pootle 2.7.x to upgrade.

    A newer Pootle 2.8.0 is coming soon with lots of performance improvements and a few new features. We will be very grateful if people would help us by beta testing it.

    The major changes in this release are:

    • Updated some requirements to prevent failures on rebuilding assets
    • Requirements now use ranges to prevent installing broken versions

    The release notes are available in Pootle documentation.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.3(Apr 27, 2016)

    IMPORTANT: This release package has being retired because it produced problems on install. Please use 2.7.5 or newer instead.

    This release has critical security patches, so everybody with Pootle 2.7.x needs to upgrade.

    A newer Pootle 2.8.0 is coming soon with lots of performance improvements and a few new features. We will be very grateful if people would help us by beta testing it.

    The major changes in this release are:

    • Several critical security fixes that prevent potential XSS attacks
    • Dropped support for MySQL's MyISAM database backend
    • Performance speedups
    • Some new features
    • Pulled latest translations

    The release notes are available in Pootle documentation.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.3b1(Nov 27, 2015)

    This release includes some new features, but it is mostly a bugfix release for Pootle 2.7.2.

    The major changes in this release are:

    • MySQL's MyISAM support has been dropped. Use InnoDB instead.
    • The editor for static pages now highlights the content's markup and displays a live preview.
    • Added support for Elasticsearch-based external Translation Memory servers.
    • Changed connection logic and added checks for misconfigured Translation Memory servers.
    • Significant speed up when importing files.

    The release notes are available in Pootle documentation.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.7.3b1.tar.bz2(7.06 MB)
  • 2.6.2(Sep 28, 2015)

  • 2.7.2(Sep 22, 2015)

  • 2.7.1(Sep 18, 2015)

    This release includes some new features, but it is mostly a bugfix release for Pootle 2.7.0.

    The major changes in this release are:

    • Updated translations
    • Several changes in translation statistics infrastructure
    • Added django-transaction-hooks
    • Changed user delete behaviour
    • New commands and changes in some commands

    The release notes are available in Pootle documentation.

    Source code(tar.gz)
    Source code(zip)
    Pootle-2.7.1.tar.bz2(6.52 MB)
Main repo for Inboxen.org

Inboxen This is the complete system with everything you need to set up Inboxen. The current maintainer of this repo is Matt Molyneaux GPG keys GPG key

Inboxen 249 Nov 13, 2022
Web based localization tool with tight version control integration.

Weblate is a copylefted libre software web-based continuous localization system, used by over 1150 libre projects and companies in more than 115 count

Weblate 3.3k Jan 02, 2023
Securely and anonymously share files, host websites, and chat with friends using the Tor network

OnionShare OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor ne

Micah Lee 5.4k Jan 02, 2023
Conference planning tool: CfP, scheduling, speaker management

pretalx is a conference planning tool focused on providing the best experience for organisers, speakers, reviewers, and attendees alike. It handles th

496 Dec 31, 2022
Generate links that users can use to submit messages encrypted with your public key.

Hawkpost Hawkpost lets you create unique links that you can share with the person that desires to send you important information but doesn't know how

Whitesmith 901 Dec 27, 2022
Read/sync your IMAP mailboxes (python2)

Upstream status (master branch): Upstream status (next branch): Financial contributors: Links: Official github code repository: offlineimap Website: w

OfflineIMAP 1.7k Dec 29, 2022
Askbot is a Django/Python Q&A forum. **Contributors README**: https://github.com/ASKBOT/askbot-devel#how-to-contribute. Commercial hosting of Askbot and support are available at https://askbot.com

ATTENTION: master branch is experimental, please read below Askbot - a Django Q&A forum platform This is Askbot project - open source Q&A system, like

ASKBOT 1.5k Dec 28, 2022
the first third-party instant messaging client for Google Hangouts

hangups hangups is the first third-party instant messaging client for Google Hangouts. It includes both a Python library and a reference client with a

Tom Dryer 1.7k Dec 25, 2022
Insular email distribution - mail server as Docker images

Mailu is a simple yet full-featured mail server as a set of Docker images. It is free software (both as in free beer and as in free speech), open to s

Mailu 4.2k Jan 04, 2023
Build SMS applications with Python

RapidSMS RapidSMS is a free and open source framework for building interactive SMS applications, which integrates tightly with Django to provide a ric

RapidSMS 622 Dec 31, 2022
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
get things from one computer to another, safely

Magic Wormhole Get things from one computer to another, safely. This package provides a library and a command-line tool named wormhole, which makes it

15.4k Jan 01, 2023
Mail hosting made simple

Modoboa Modoboa is a mail hosting and management platform including a modern and simplified Web User Interface. It provides useful components such as

Modoboa 2.4k Jan 05, 2023
GlobaLeaks is free, open source software enabling anyone to easily set up and maintain a secure whistleblowing platform.

GlobaLeaks is free, open souce software enabling anyone to easily set up and maintain a secure whistleblowing platform. Continous Integration and Test

GlobaLeaks 995 Jan 01, 2023
Easy HTML form without PHP or JavaScript

This repository is no longer active. If you're looking for a simple and powerful hosted form API, please check out https://formspree.io. If you are in

Formspree 2.8k Dec 22, 2022
Synapse: Matrix reference homeserver

Synapse Contents Introduction About Matrix Support Synapse Installation Connecting to Synapse from a client Registering a new user from a client ACME

matrix.org 10.4k Jan 02, 2023
MoinMoin Wiki Development (2.0+), unstable, for production please use 1.9.x.

MoinMoin - a wiki engine in Python MoinMoin is an easy to use, full-featured and extensible wiki software package written in Python. It can fulfill a

MoinMoin Wiki Engine 240 Dec 22, 2022
A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.

django-wiki Django support The below table explains which Django versions are supported. Release Django Upgrade from 0.7.x 2.2, 3.0, 3.1 0.5 or 0.6 0.

django-wiki 1.6k Dec 28, 2022
Online translation tool

Pootle Docs | Changes | Issues | Community Support | Contributing | Development Channel Pootle is an online translation and localization tool. It work

Translate 1.4k Jan 06, 2023
Easy-to-use and powerful offline translation tool

Introduction Virtaal is a graphical program for doing translation. It is meant to be easy to use and powerful at the same time. Although the initial f

Translate 271 Nov 22, 2022