stackamole-xblock 9.2.0__tar.gz → 9.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.bumpversion.cfg +1 -1
  2. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/Changelog.md +8 -0
  3. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/HACKING.md +7 -24
  4. {stackamole_xblock-9.2.0/stackamole_xblock.egg-info → stackamole_xblock-9.3.0}/PKG-INFO +2 -2
  5. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/README.md +1 -1
  6. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/locale/config.yaml +0 -1
  7. stackamole_xblock-9.2.0/stackamole/translations/de_DE/LC_MESSAGES/text.po → stackamole_xblock-9.3.0/stackamole/locale/de_DE/LC_MESSAGES/django.po +3 -53
  8. stackamole_xblock-9.3.0/stackamole/locale/de_DE/LC_MESSAGES/djangojs.po +68 -0
  9. stackamole_xblock-9.2.0/stackamole/translations/el/LC_MESSAGES/text.po → stackamole_xblock-9.3.0/stackamole/locale/el/LC_MESSAGES/django.po +3 -62
  10. stackamole_xblock-9.3.0/stackamole/locale/el/LC_MESSAGES/djangojs.po +77 -0
  11. stackamole_xblock-9.2.0/stackamole/locale/en/LC_MESSAGES/django-partial.po → stackamole_xblock-9.3.0/stackamole/locale/en/LC_MESSAGES/django.po +14 -65
  12. stackamole_xblock-9.3.0/stackamole/locale/en/LC_MESSAGES/djangojs.po +68 -0
  13. stackamole_xblock-9.2.0/stackamole/translations/es_419/LC_MESSAGES/text.po → stackamole_xblock-9.3.0/stackamole/locale/es_419/LC_MESSAGES/django.po +3 -53
  14. stackamole_xblock-9.3.0/stackamole/locale/es_419/LC_MESSAGES/djangojs.po +68 -0
  15. stackamole_xblock-9.2.0/stackamole/translations/et_EE/LC_MESSAGES/text.po → stackamole_xblock-9.3.0/stackamole/locale/et_EE/LC_MESSAGES/django.po +3 -53
  16. stackamole_xblock-9.3.0/stackamole/locale/et_EE/LC_MESSAGES/djangojs.po +68 -0
  17. stackamole_xblock-9.2.0/stackamole/translations/hi/LC_MESSAGES/text.po → stackamole_xblock-9.3.0/stackamole/locale/hi/LC_MESSAGES/django.po +3 -57
  18. stackamole_xblock-9.3.0/stackamole/locale/hi/LC_MESSAGES/djangojs.po +72 -0
  19. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/stackamole.py +7 -8
  20. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0/stackamole_xblock.egg-info}/PKG-INFO +2 -2
  21. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_xblock.egg-info/SOURCES.txt +14 -18
  22. stackamole_xblock-9.3.0/stackamole_xblock.egg-info/scm_file_list.json +105 -0
  23. stackamole_xblock-9.3.0/stackamole_xblock.egg-info/scm_version.json +8 -0
  24. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_stackamole.py +6 -4
  25. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tox.ini +1 -0
  26. stackamole_xblock-9.2.0/stackamole/public/js/translations/de-de/text.js +0 -174
  27. stackamole_xblock-9.2.0/stackamole/public/js/translations/el/text.js +0 -177
  28. stackamole_xblock-9.2.0/stackamole/public/js/translations/es-419/text.js +0 -177
  29. stackamole_xblock-9.2.0/stackamole/public/js/translations/et-ee/text.js +0 -184
  30. stackamole_xblock-9.2.0/stackamole/public/js/translations/hi/text.js +0 -184
  31. stackamole_xblock-9.2.0/stackamole/translations/de_DE/LC_MESSAGES/text.mo +0 -0
  32. stackamole_xblock-9.2.0/stackamole/translations/el/LC_MESSAGES/text.mo +0 -0
  33. stackamole_xblock-9.2.0/stackamole/translations/en/LC_MESSAGES/text.mo +0 -0
  34. stackamole_xblock-9.2.0/stackamole/translations/en/LC_MESSAGES/text.po +0 -158
  35. stackamole_xblock-9.2.0/stackamole/translations/es_419/LC_MESSAGES/text.mo +0 -0
  36. stackamole_xblock-9.2.0/stackamole/translations/et_EE/LC_MESSAGES/text.mo +0 -0
  37. stackamole_xblock-9.2.0/stackamole/translations/hi/LC_MESSAGES/text.mo +0 -0
  38. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.githooks/pre-commit +0 -0
  39. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.githooks/pre-push +0 -0
  40. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.github/workflows/tox.yml +0 -0
  41. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.gitignore +0 -0
  42. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.gitlab-ci.yml +0 -0
  43. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/.gitmodules +0 -0
  44. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/AGENTS.md +0 -0
  45. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/LICENSE +0 -0
  46. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/MIGRATION.md +0 -0
  47. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/fake/common/djangoapps/student/__init__.py +0 -0
  48. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/fake/common/djangoapps/student/models.py +0 -0
  49. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/fake/course/__init__.py +0 -0
  50. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/pyproject.toml +0 -0
  51. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/requirements/base.txt +0 -0
  52. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/requirements/flake8.txt +0 -0
  53. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/requirements/setup.txt +0 -0
  54. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/requirements/test.txt +0 -0
  55. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/requirements.txt +0 -0
  56. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/run_tests.py +0 -0
  57. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/samples/hot/sample-template.yaml +0 -0
  58. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/setup.cfg +0 -0
  59. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/setup.py +0 -0
  60. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/src/pip-delete-this-directory.txt +0 -0
  61. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/__init__.py +0 -0
  62. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/admin.py +0 -0
  63. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/common.py +0 -0
  64. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/jobs.py +0 -0
  65. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/management/__init__.py +0 -0
  66. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/management/commands/__init__.py +0 -0
  67. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/management/commands/reaper.py +0 -0
  68. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/management/commands/suspender.py +0 -0
  69. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0001_initial.py +0 -0
  70. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0002_stacklog.py +0 -0
  71. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0003_blanks.py +0 -0
  72. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0004_auto_20190715_1053.py +0 -0
  73. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0005_auto_20190811_1555.py +0 -0
  74. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0006_auto_20200107_1332.py +0 -0
  75. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0007_add_delete_by_and_delete_age.py +0 -0
  76. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0008_add_database_defaults_for_stack_key_and_password.py +0 -0
  77. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0009_add_null_true_for_key_and_password.py +0 -0
  78. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0010_add_user_foreign_key.py +0 -0
  79. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0011_allow_null_for_learner.py +0 -0
  80. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0012_add_suspend_by.py +0 -0
  81. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/0013_migrate_app_label.py +0 -0
  82. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/migrations/__init__.py +0 -0
  83. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/models.py +0 -0
  84. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/openstack.py +0 -0
  85. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/provider.py +0 -0
  86. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/css/main.css +0 -0
  87. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/client.js +0 -0
  88. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/guacamole-common-js/0.9.13-incubating-all.min.js +0 -0
  89. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/guacamole-common-js/1.4.0-all.min.js +0 -0
  90. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/guacamole-common-js/1.5.2-all.min.js +0 -0
  91. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/guacamole-common-js/1.5.4-all.min.js +0 -0
  92. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/guacamole-common-js/1.5.5-all.min.js +0 -0
  93. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/main.js +0 -0
  94. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/public/js/plugins.js +0 -0
  95. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/static/html/lab.html +0 -0
  96. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/static/html/main.html +0 -0
  97. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole/tasks.py +0 -0
  98. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_guacamole_client/__init__.py +0 -0
  99. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_guacamole_client/asgi.py +0 -0
  100. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_guacamole_client/consumers.py +0 -0
  101. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_guacamole_client/settings.py +0 -0
  102. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_xblock.egg-info/dependency_links.txt +0 -0
  103. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_xblock.egg-info/entry_points.txt +0 -0
  104. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_xblock.egg-info/requires.txt +0 -0
  105. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/stackamole_xblock.egg-info/top_level.txt +0 -0
  106. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/__init__.py +0 -0
  107. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_1.xml +0 -0
  108. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_2.xml +0 -0
  109. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_hook_events_1.xml +0 -0
  110. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_hook_events_2.xml +0 -0
  111. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_no_port_name.xml +0 -0
  112. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_no_port_number.xml +0 -0
  113. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_no_provider_capacity.xml +0 -0
  114. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/resources/course/stackamole/fake_lab_no_provider_name.xml +0 -0
  115. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/__init__.py +0 -0
  116. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_admin.py +0 -0
  117. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_commands.py +0 -0
  118. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_common.py +0 -0
  119. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_jobs.py +0 -0
  120. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_models.py +0 -0
  121. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_openstack.py +0 -0
  122. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_provider.py +0 -0
  123. {stackamole_xblock-9.2.0 → stackamole_xblock-9.3.0}/tests/unit/test_tasks.py +0 -0
@@ -1,7 +1,7 @@
1
1
  [bumpversion]
2
2
  commit = True
3
3
  tag = True
4
- current_version = 9.2.0
4
+ current_version = 9.3.0
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<rc>\d+))?
6
6
  serialize =
7
7
  {major}.{minor}.{patch}rc{rc}
@@ -1,3 +1,11 @@
1
+ Version 9.3.0 (2026-07-29)
2
+ -------------------------
3
+
4
+ * [Bug fix] Fix translations for supported languages.
5
+ Move translations to the `/locale` directory as `<lang_code>/LC_MESSAGES/django.po` and `<lang_code>/LC_MESSAGES/djangojs.po`.
6
+ Compile the `*.mo` files during the `openedx` image build via the `tutor-contrib-stackamole` plugin.
7
+ * [Testing] Set skip_missing_interpreters = true for tox, so that it runs with whatever Python is available.
8
+
1
9
  Version 9.2.0 (2026-06-16)
2
10
  -------------------------
3
11
 
@@ -70,33 +70,16 @@ Install the [openedx i18n tools](https://github.com/openedx/i18n-tools) to your
70
70
 
71
71
  Add translations for a new language:
72
72
 
73
- * Create the directories for the new language to the `/locale/` directory following the pattern: `<lang>/LC_MESSAGES`, where `<lang>` is one of the locales listed in `stackamole/locale/config.yaml`.
74
- * Copy the generated `django-partial.po` file to from `stackamole/locale/en/LC_MESSAGES/` to your language's `LC_MESSAGES` folder and name it `text.po`.
75
- * Edit the `text.po` file to add the translations.
76
- * Generate the machine readable `text.mo` file by running `i18n_tool generate` command in the `stackamole` directory.
77
- * The js translations `text.js` file can be generated in a local devstack
78
- - Make sure have the translation files in the `/locale/` folder and you've built the openedx image
79
- - inside your LMS container then run:
80
- ```shell
81
- ./manage.py lms compilejsi18n -p stackamole -d text -l <lang> -o <output_path>
82
- ```
83
- - copy the content of the generated file from within the LMS container to `stackamole/public/js/translations/<lang>/text.js`, where `<lang>` is one of the supported languages listed in `stackamole/common.py`.
84
- (Note the difference of `-` vs `_` compared to the list in `stackamole/locale/config.yaml`)
85
- * Move your language directory with all it's contents from `stackamole/locale/` to the `stackamole/translations/` directory to make it discoverable for the LMS.
73
+ * Create the directories for the new language to the `/locale/` directory following the pattern: `<lang>/LC_MESSAGES`, where `<lang>` is one of the locales listed in `stackamole/locale/config.yaml`.
74
+ * Copy the generated `django.po` and `djangojs.po` files to from `stackamole/locale/en/LC_MESSAGES/` to your language's `LC_MESSAGES` folder.
75
+ * Edit the `*.po` files to add the translations.
76
+ * The `*.mo` are then compiled during the `openedx` image build via the `tutor-contrib-stackamole` plugin.
86
77
 
87
78
  Update existing translations:
88
79
 
89
- * Run `i18n_tool extract` command in the `stackamole` directory.
90
- * Move all strings to one file and drop the js file:
91
- ```shell
92
- tail -n +20 locale/en/LC_MESSAGES/djangojs-partial.po >> locale/en/LC_MESSAGES/django-partial.po
93
- rm locale/en/LC_MESSAGES/djangojs-partial.po
94
- ```
95
- * Temporarily move your language directory (`<lang>/LC_MESSAGES`) with the translation files to `stackamole/locale`.
96
- * Compare the changes in the updated `django-partial.po` file to the `text.po` file for your selected language and make changes as needed.
97
- * Regenerate the `text.mo` file for the the updated `text.po` file by running `i18n_tool generate`
98
- * Repeat the steps from "Add translations for a new language" section above to regenerate the `text.js` file (if necessary).
99
- * Move your language directory with all it's contents from `stackamole/locale/` back to the `stackamole/translations/` directory to make it discoverable for the LMS.
80
+ * Run `i18n_tool extract --no-segment` command in the `stackamole` directory.
81
+ * Review the updated `django.po` and `djangojs.po` files in `stackamole/locale/en/LC_MESSAGES/`, apply the changes appeared to the `*.po` files for all languages.
82
+ * The `*.mo` are then compiled during the `openedx` image build via the `tutor-contrib-stackamole` plugin.
100
83
 
101
84
  ## AI assistance
102
85
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stackamole-xblock
3
- Version: 9.2.0
3
+ Version: 9.3.0
4
4
  Summary: Stackamole XBlock: Makes arbitrarily complex lab environments available on an Open edX LMS
5
5
  License-Expression: AGPL-3.0-only
6
6
  Project-URL: Repository, https://github.com/cleura/stackamole-xblock
@@ -91,7 +91,7 @@ Running this XBlock with Tutor (for Open edX Maple and later) requires two steps
91
91
  1. Install the XBlock to your Tutor environment by adding it to the `OPENEDX_EXTRA_PIP_REQUIREMENTS` list in `config.yml`:
92
92
  ```yaml
93
93
  OPENEDX_EXTRA_PIP_REQUIREMENTS:
94
- - "stackamole-xblock==9.2.0"
94
+ - "stackamole-xblock==9.3.0"
95
95
  ```
96
96
  For additional information, please refer to the [official documentation](https://docs.tutor.overhang.io/configuration.html#installing-extra-xblocks-and-requirements).
97
97
 
@@ -55,7 +55,7 @@ Running this XBlock with Tutor (for Open edX Maple and later) requires two steps
55
55
  1. Install the XBlock to your Tutor environment by adding it to the `OPENEDX_EXTRA_PIP_REQUIREMENTS` list in `config.yml`:
56
56
  ```yaml
57
57
  OPENEDX_EXTRA_PIP_REQUIREMENTS:
58
- - "stackamole-xblock==9.2.0"
58
+ - "stackamole-xblock==9.3.0"
59
59
  ```
60
60
  For additional information, please refer to the [official documentation](https://docs.tutor.overhang.io/configuration.html#installing-extra-xblocks-and-requirements).
61
61
 
@@ -12,4 +12,3 @@ locales:
12
12
  ignore_dirs:
13
13
  - 'management'
14
14
  - 'migrations'
15
- - 'public/js/translations'
@@ -18,15 +18,15 @@ msgstr ""
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
20
 
21
- #: stackamole.py:963
21
+ #: stackamole.py:989
22
22
  msgid "Timeout when launching stack."
23
23
  msgstr "Zeitüberschreitung beim Starten des Stacks."
24
24
 
25
- #: stackamole.py:1089
25
+ #: stackamole.py:1115
26
26
  msgid "Unexpected result: "
27
27
  msgstr "Unerwartetes Ergebnis: "
28
28
 
29
- #: stackamole.py:1118
29
+ #: stackamole.py:1144
30
30
  msgid "Timeout when checking progress."
31
31
  msgstr "Zeitüberschreitung bei der Fortschrittsprüfung."
32
32
 
@@ -107,53 +107,3 @@ msgstr "Dieser Vorgang lässt sich nicht rückgängig machen."
107
107
  #: tasks.py:194
108
108
  msgid "You've reached the time limit allocated to you for using labs."
109
109
  msgstr "Die Zeitbeschränkung für die Nutzung der Übungsumgebung wurde überschritten."
110
-
111
- #: public/js/main.js:106
112
- msgid ""
113
- "Could not connect to your lab environment. The client detected an unexpected "
114
- "error. The server's error message was:"
115
- msgstr "Kann keine Verbindung zur Übungsumgebung herstellen. Ein unerwarteter Fehler ist aufgetreten. Die Fehlermeldung des Servers lautet:"
116
-
117
- #: public/js/main.js:118
118
- msgid "Lost connection to your lab environment."
119
- msgstr "Verbindung zur Übungsumgebung verloren."
120
-
121
- #: public/js/main.js:120
122
- msgid ""
123
- "The remote server unexpectedly disconnected. You can try closing your "
124
- "browser window, and returning to this page in a few minutes."
125
- msgstr "Der Server hat unerwartet die Verbindung abgebrochen. Möglicherweise lässt sich die Verbindung durch Schließen und (nach einigen Minuten) Wiederöffnen des Browserfensters wieder herstellen."
126
-
127
- #: public/js/main.js:142
128
- msgid "Your lab is currently active in a separate window."
129
- msgstr "Die Übungsumgebung läuft derzeit in einem anderen Fenster."
130
-
131
- #: public/js/main.js:283
132
- msgid "Attention!"
133
- msgstr "Achtung!"
134
-
135
- #: public/js/main.js:298
136
- msgid "Could not connect to your lab environment:"
137
- msgstr "Keine Verbindung zur Übungsumgebung."
138
-
139
- #: public/js/main.js:323
140
- msgid "Your lab environment is undergoing maintenance"
141
- msgstr "Ihre Übungsumgebung wird gerade gewartet"
142
-
143
- #: public/js/main.js:325
144
- msgid ""
145
- "Your lab environment is undergoing automatic maintenance. Please try again "
146
- "in a few minutes."
147
- msgstr "Ihr Übungsumgebung befindet sich im Wartungszustand. Sie steht in ein paar Minuten wieder zur Verfügung."
148
-
149
- #: public/js/main.js:340
150
- msgid "There was a problem preparing your lab environment:"
151
- msgstr "Bei der Herstellung der Übungsumgebung ist ein Problem aufgetreten:"
152
-
153
- #: public/js/main.js:385
154
- msgid "You completed {passed} out of {total} tasks."
155
- msgstr "{passed} von insgesamt {total} Aufgaben wurden korrekt erfüllt."
156
-
157
- #: public/js/main.js:448
158
- msgid "Type {code} to reset your lab."
159
- msgstr "{code} eingeben, um die Übungsumgebung zurückzusetzen."
@@ -0,0 +1,68 @@
1
+ # edX translation file.
2
+ # Copyright (C) 2026 EdX
3
+ # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
4
+ # EdX Team <info@edx.org>, 2026.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: 0.1a\n"
9
+ "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
10
+ "POT-Creation-Date: 2023-06-13 08:00+0000\n"
11
+ "PO-Revision-Date: 2023-06-13 09:00+0000\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
14
+ "Language: en\n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
20
+ #: public/js/main.js:115
21
+ msgid ""
22
+ "Could not connect to your lab environment. The client detected an unexpected"
23
+ " error. The server's error message was:"
24
+ msgstr "Kann keine Verbindung zur Übungsumgebung herstellen. Ein unerwarteter Fehler ist aufgetreten. Die Fehlermeldung des Servers lautet:"
25
+
26
+ #: public/js/main.js:127
27
+ msgid "Lost connection to your lab environment."
28
+ msgstr "Verbindung zur Übungsumgebung verloren."
29
+
30
+ #: public/js/main.js:129
31
+ msgid ""
32
+ "The remote server unexpectedly disconnected. You can try closing your "
33
+ "browser window, and returning to this page in a few minutes."
34
+ msgstr "Der Server hat unerwartet die Verbindung abgebrochen. Möglicherweise lässt sich die Verbindung durch Schließen und (nach einigen Minuten) Wiederöffnen des Browserfensters wieder herstellen."
35
+
36
+ #: public/js/main.js:151
37
+ msgid "Your lab is currently active in a separate window."
38
+ msgstr "Die Übungsumgebung läuft derzeit in einem anderen Fenster."
39
+
40
+ #: public/js/main.js:292
41
+ msgid "Attention!"
42
+ msgstr "Achtung!"
43
+
44
+ #: public/js/main.js:307
45
+ msgid "Could not connect to your lab environment:"
46
+ msgstr "Keine Verbindung zur Übungsumgebung."
47
+
48
+ #: public/js/main.js:332
49
+ msgid "Your lab environment is undergoing maintenance"
50
+ msgstr "Ihre Übungsumgebung wird gerade gewartet"
51
+
52
+ #: public/js/main.js:334
53
+ msgid ""
54
+ "Your lab environment is undergoing automatic maintenance. Please try again "
55
+ "in a few minutes."
56
+ msgstr "Ihr Übungsumgebung befindet sich im Wartungszustand. Sie steht in ein paar Minuten wieder zur Verfügung."
57
+
58
+ #: public/js/main.js:349
59
+ msgid "There was a problem preparing your lab environment:"
60
+ msgstr "Bei der Herstellung der Übungsumgebung ist ein Problem aufgetreten:"
61
+
62
+ #: public/js/main.js:394
63
+ msgid "You completed {passed} out of {total} tasks."
64
+ msgstr "{passed} von insgesamt {total} Aufgaben wurden korrekt erfüllt."
65
+
66
+ #: public/js/main.js:448
67
+ msgid "Type {code} to reset your lab."
68
+ msgstr "{code} eingeben, um die Übungsumgebung zurückzusetzen."
@@ -18,15 +18,15 @@ msgstr ""
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
20
 
21
- #: stackamole.py:963
21
+ #: stackamole.py:989
22
22
  msgid "Timeout when launching stack."
23
23
  msgstr "Λήξη χρόνου εκκίνησης."
24
24
 
25
- #: stackamole.py:1089
25
+ #: stackamole.py:1115
26
26
  msgid "Unexpected result: "
27
27
  msgstr "Απρόσμενο αποτέλεσμα: "
28
28
 
29
- #: stackamole.py:1118
29
+ #: stackamole.py:1144
30
30
  msgid "Timeout when checking progress."
31
31
  msgstr "Λήξη χρόνου κατά τον έλεγχο της προόδου."
32
32
 
@@ -111,62 +111,3 @@ msgstr "Δεν μπορείτε να ακυρώσετε αυτή την ενέρ
111
111
  #: tasks.py:194
112
112
  msgid "You've reached the time limit allocated to you for using labs."
113
113
  msgstr "Εξαντλήσατε το χρόνο που έχει οριστεί για τη χρήση εργαστηρίων."
114
-
115
- #: public/js/main.js:106
116
- msgid ""
117
- "Could not connect to your lab environment. The client detected an unexpected "
118
- "error. The server's error message was:"
119
- msgstr ""
120
- "Αδυναμία σύνδεσης στο εργαστηριακό σας περιβάλλον. Ο πελάτης συνάντησε "
121
- "ένα απρόσμενο σφάλμα. Το μήνυμα λάθους του διακομιστή, ήταν:"
122
-
123
- #: public/js/main.js:118
124
- msgid "Lost connection to your lab environment."
125
- msgstr "Χάθηκε η σύνδεση στο εργαστηριακό σας περιβάλλον."
126
-
127
- #: public/js/main.js:120
128
- msgid ""
129
- "The remote server unexpectedly disconnected. You can try closing your "
130
- "browser window, and returning to this page in a few minutes."
131
- msgstr ""
132
- "Ο απομακρυσμένος διακομιστής διέκοψε απρόσμενα. Δοκιμάστε να "
133
- "κλείσετε το παράθυρο του προγράμματος περιήγησης και επιστρέψτε σε "
134
- "αυτή τη σελίδα σε μερικά λεπτά."
135
-
136
- #: public/js/main.js:142
137
- msgid "Your lab is currently active in a separate window."
138
- msgstr "Αυτή τη στιγμή το εργαστήριό σας είναι ενεργό σε ξεχωριστό παράθυρο."
139
-
140
- #: public/js/main.js:283
141
- msgid "Attention!"
142
- msgstr "Προσοχή!"
143
-
144
- #: public/js/main.js:298
145
- msgid "Could not connect to your lab environment:"
146
- msgstr "Αδυνατώ να συνδεθώ στο περιβάλλον του εργαστηρίου σας:"
147
-
148
- #: public/js/main.js:323
149
- msgid "Your lab environment is undergoing maintenance"
150
- msgstr "Το εργαστηριακό σας περιβάλλον είναι υπό συντήρηση"
151
-
152
- #: public/js/main.js:325
153
- msgid ""
154
- "Your lab environment is undergoing automatic maintenance. Please try again "
155
- "in a few minutes."
156
- msgstr ""
157
- "Το εργαστηριακό σας περιβάλλον τελεί υπό αυτοματοποιημένη "
158
- "συντήρηση. Παρακαλούμε προσπαθήστε ξανά σε μερικά λεπτά."
159
-
160
- #: public/js/main.js:340
161
- msgid "There was a problem preparing your lab environment:"
162
- msgstr ""
163
- "Παρουσιάστηκε πρόβλημα κατά την προετοιμασία "
164
- "του εργαστηριακού σας περιβάλλοντος:"
165
-
166
- #: public/js/main.js:385
167
- msgid "You completed {passed} out of {total} tasks."
168
- msgstr "Ολοκληρώσατε {passed} από {total} εργασίες."
169
-
170
- #: public/js/main.js:448
171
- msgid "Type {code} to reset your lab."
172
- msgstr "Πληκτρολογήστε {code} προκειμένου να επαναφέρετε το εργαστήριό σας."
@@ -0,0 +1,77 @@
1
+ # edX translation file.
2
+ # Copyright (C) 2026 EdX
3
+ # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
4
+ # EdX Team <info@edx.org>, 2026.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: 0.1a\n"
9
+ "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
10
+ "POT-Creation-Date: 2023-06-13 08:00+0000\n"
11
+ "PO-Revision-Date: 2023-06-13 09:00+0000\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
14
+ "Language: en\n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
20
+ #: public/js/main.js:115
21
+ msgid ""
22
+ "Could not connect to your lab environment. The client detected an unexpected"
23
+ " error. The server's error message was:"
24
+ msgstr ""
25
+ "Αδυναμία σύνδεσης στο εργαστηριακό σας περιβάλλον. Ο πελάτης συνάντησε "
26
+ "ένα απρόσμενο σφάλμα. Το μήνυμα λάθους του διακομιστή, ήταν:"
27
+
28
+ #: public/js/main.js:127
29
+ msgid "Lost connection to your lab environment."
30
+ msgstr "Χάθηκε η σύνδεση στο εργαστηριακό σας περιβάλλον."
31
+
32
+ #: public/js/main.js:129
33
+ msgid ""
34
+ "The remote server unexpectedly disconnected. You can try closing your "
35
+ "browser window, and returning to this page in a few minutes."
36
+ msgstr ""
37
+ "Ο απομακρυσμένος διακομιστής διέκοψε απρόσμενα. Δοκιμάστε να "
38
+ "κλείσετε το παράθυρο του προγράμματος περιήγησης και επιστρέψτε σε "
39
+ "αυτή τη σελίδα σε μερικά λεπτά."
40
+
41
+ #: public/js/main.js:151
42
+ msgid "Your lab is currently active in a separate window."
43
+ msgstr "Αυτή τη στιγμή το εργαστήριό σας είναι ενεργό σε ξεχωριστό παράθυρο."
44
+
45
+ #: public/js/main.js:292
46
+ msgid "Attention!"
47
+ msgstr "Προσοχή!"
48
+
49
+ #: public/js/main.js:307
50
+ msgid "Could not connect to your lab environment:"
51
+ msgstr "Αδυνατώ να συνδεθώ στο περιβάλλον του εργαστηρίου σας:"
52
+
53
+ #: public/js/main.js:332
54
+ msgid "Your lab environment is undergoing maintenance"
55
+ msgstr "Το εργαστηριακό σας περιβάλλον είναι υπό συντήρηση"
56
+
57
+ #: public/js/main.js:334
58
+ msgid ""
59
+ "Your lab environment is undergoing automatic maintenance. Please try again "
60
+ "in a few minutes."
61
+ msgstr ""
62
+ "Το εργαστηριακό σας περιβάλλον τελεί υπό αυτοματοποιημένη "
63
+ "συντήρηση. Παρακαλούμε προσπαθήστε ξανά σε μερικά λεπτά."
64
+
65
+ #: public/js/main.js:349
66
+ msgid "There was a problem preparing your lab environment:"
67
+ msgstr ""
68
+ "Παρουσιάστηκε πρόβλημα κατά την προετοιμασία "
69
+ "του εργαστηριακού σας περιβάλλοντος:"
70
+
71
+ #: public/js/main.js:394
72
+ msgid "You completed {passed} out of {total} tasks."
73
+ msgstr "Ολοκληρώσατε {passed} από {total} εργασίες."
74
+
75
+ #: public/js/main.js:448
76
+ msgid "Type {code} to reset your lab."
77
+ msgstr "Πληκτρολογήστε {code} προκειμένου να επαναφέρετε το εργαστήριό σας."
@@ -1,32 +1,31 @@
1
- # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
- # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
1
+ # edX translation file.
2
+ # Copyright (C) 2026 EdX
3
+ # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
4
+ # EdX Team <info@edx.org>, 2026.
5
5
  #
6
- #, fuzzy
7
6
  msgid ""
8
7
  msgstr ""
9
- "Project-Id-Version: PACKAGE VERSION\n"
10
- "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2023-12-11 15:59+0100\n"
12
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "Language: \n"
8
+ "Project-Id-Version: 0.1a\n"
9
+ "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
10
+ "POT-Creation-Date: 2023-06-13 08:00+0000\n"
11
+ "PO-Revision-Date: 2023-06-13 09:00+0000\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
14
+ "Language: en\n"
16
15
  "MIME-Version: 1.0\n"
17
16
  "Content-Type: text/plain; charset=UTF-8\n"
18
17
  "Content-Transfer-Encoding: 8bit\n"
19
18
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
19
 
21
- #: stackamole.py:963
20
+ #: stackamole.py:989
22
21
  msgid "Timeout when launching stack."
23
22
  msgstr ""
24
23
 
25
- #: stackamole.py:1089
24
+ #: stackamole.py:1115
26
25
  msgid "Unexpected result: "
27
26
  msgstr ""
28
27
 
29
- #: stackamole.py:1118
28
+ #: stackamole.py:1144
30
29
  msgid "Timeout when checking progress."
31
30
  msgstr ""
32
31
 
@@ -106,53 +105,3 @@ msgstr ""
106
105
  #: tasks.py:194
107
106
  msgid "You've reached the time limit allocated to you for using labs."
108
107
  msgstr ""
109
-
110
- #: public/js/main.js:106
111
- msgid ""
112
- "Could not connect to your lab environment. The client detected an unexpected "
113
- "error. The server's error message was:"
114
- msgstr ""
115
-
116
- #: public/js/main.js:118
117
- msgid "Lost connection to your lab environment."
118
- msgstr ""
119
-
120
- #: public/js/main.js:120
121
- msgid ""
122
- "The remote server unexpectedly disconnected. You can try closing your "
123
- "browser window, and returning to this page in a few minutes."
124
- msgstr ""
125
-
126
- #: public/js/main.js:142
127
- msgid "Your lab is currently active in a separate window."
128
- msgstr ""
129
-
130
- #: public/js/main.js:283
131
- msgid "Attention!"
132
- msgstr ""
133
-
134
- #: public/js/main.js:298
135
- msgid "Could not connect to your lab environment:"
136
- msgstr ""
137
-
138
- #: public/js/main.js:323
139
- msgid "Your lab environment is undergoing maintenance"
140
- msgstr ""
141
-
142
- #: public/js/main.js:325
143
- msgid ""
144
- "Your lab environment is undergoing automatic maintenance. Please try again "
145
- "in a few minutes."
146
- msgstr ""
147
-
148
- #: public/js/main.js:340
149
- msgid "There was a problem preparing your lab environment:"
150
- msgstr ""
151
-
152
- #: public/js/main.js:385
153
- msgid "You completed {passed} out of {total} tasks."
154
- msgstr ""
155
-
156
- #: public/js/main.js:448
157
- msgid "Type {code} to reset your lab."
158
- msgstr ""
@@ -0,0 +1,68 @@
1
+ # edX translation file.
2
+ # Copyright (C) 2026 EdX
3
+ # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
4
+ # EdX Team <info@edx.org>, 2026.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: 0.1a\n"
9
+ "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
10
+ "POT-Creation-Date: 2023-06-13 08:00+0000\n"
11
+ "PO-Revision-Date: 2023-06-13 09:00+0000\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: openedx-translation <openedx-translation@googlegroups.com>\n"
14
+ "Language: en\n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
20
+ #: public/js/main.js:115
21
+ msgid ""
22
+ "Could not connect to your lab environment. The client detected an unexpected"
23
+ " error. The server's error message was:"
24
+ msgstr ""
25
+
26
+ #: public/js/main.js:127
27
+ msgid "Lost connection to your lab environment."
28
+ msgstr ""
29
+
30
+ #: public/js/main.js:129
31
+ msgid ""
32
+ "The remote server unexpectedly disconnected. You can try closing your "
33
+ "browser window, and returning to this page in a few minutes."
34
+ msgstr ""
35
+
36
+ #: public/js/main.js:151
37
+ msgid "Your lab is currently active in a separate window."
38
+ msgstr ""
39
+
40
+ #: public/js/main.js:292
41
+ msgid "Attention!"
42
+ msgstr ""
43
+
44
+ #: public/js/main.js:307
45
+ msgid "Could not connect to your lab environment:"
46
+ msgstr ""
47
+
48
+ #: public/js/main.js:332
49
+ msgid "Your lab environment is undergoing maintenance"
50
+ msgstr ""
51
+
52
+ #: public/js/main.js:334
53
+ msgid ""
54
+ "Your lab environment is undergoing automatic maintenance. Please try again "
55
+ "in a few minutes."
56
+ msgstr ""
57
+
58
+ #: public/js/main.js:349
59
+ msgid "There was a problem preparing your lab environment:"
60
+ msgstr ""
61
+
62
+ #: public/js/main.js:394
63
+ msgid "You completed {passed} out of {total} tasks."
64
+ msgstr ""
65
+
66
+ #: public/js/main.js:448
67
+ msgid "Type {code} to reset your lab."
68
+ msgstr ""
@@ -18,15 +18,15 @@ msgstr ""
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
20
 
21
- #: stackamole.py:963
21
+ #: stackamole.py:989
22
22
  msgid "Timeout when launching stack."
23
23
  msgstr "Tiempo de espera al iniciar la pila."
24
24
 
25
- #: stackamole.py:1089
25
+ #: stackamole.py:1115
26
26
  msgid "Unexpected result: "
27
27
  msgstr "Resultado inesperado: "
28
28
 
29
- #: stackamole.py:1118
29
+ #: stackamole.py:1144
30
30
  msgid "Timeout when checking progress."
31
31
  msgstr "Tiempo de espera al comprobar el progreso."
32
32
 
@@ -107,53 +107,3 @@ msgstr "No puede deshacer esta acción."
107
107
  #: tasks.py:194
108
108
  msgid "You've reached the time limit allocated to you for using labs."
109
109
  msgstr "Ha alcanzado el límite de tiempo que se le ha asignado para usar los laboratorios."
110
-
111
- #: public/js/main.js:106
112
- msgid ""
113
- "Could not connect to your lab environment. The client detected an unexpected "
114
- "error. The server's error message was:"
115
- msgstr "No se pudo conectar a su entorno de laboratorio. El cliente detectó un error inesperado. El mensaje de error del servidor fue:"
116
-
117
- #: public/js/main.js:118
118
- msgid "Lost connection to your lab environment."
119
- msgstr "Pérdida de conexión con su entorno de laboratorio."
120
-
121
- #: public/js/main.js:120
122
- msgid ""
123
- "The remote server unexpectedly disconnected. You can try closing your "
124
- "browser window, and returning to this page in a few minutes."
125
- msgstr "El servidor remoto se desconectó inesperadamente. Puede intentar cerrar la ventana de su navegador y regresar a esta página en unos minutos."
126
-
127
- #: public/js/main.js:142
128
- msgid "Your lab is currently active in a separate window."
129
- msgstr "Su laboratorio está actualmente activo en una ventana separada."
130
-
131
- #: public/js/main.js:283
132
- msgid "Attention!"
133
- msgstr "¡Atención!"
134
-
135
- #: public/js/main.js:298
136
- msgid "Could not connect to your lab environment:"
137
- msgstr "No se pudo conectar al entorno de su laboratorio."
138
-
139
- #: public/js/main.js:323
140
- msgid "Your lab environment is undergoing maintenance"
141
- msgstr "Su entorno de laboratorio está en mantenimiento"
142
-
143
- #: public/js/main.js:325
144
- msgid ""
145
- "Your lab environment is undergoing automatic maintenance. Please try again "
146
- "in a few minutes."
147
- msgstr "Su entorno de laboratorio está en mantenimiento automático. Vuelve a intentarlo en unos minutos."
148
-
149
- #: public/js/main.js:340
150
- msgid "There was a problem preparing your lab environment:"
151
- msgstr "Hubo un problema al preparar su entorno de laboratorio:"
152
-
153
- #: public/js/main.js:385
154
- msgid "You completed {passed} out of {total} tasks."
155
- msgstr "Has completado {passed} de {total} tareas."
156
-
157
- #: public/js/main.js:448
158
- msgid "Type {code} to reset your lab."
159
- msgstr "Escribe {code} para reiniciar tu laboratorio."