Skip to content
Snippets Groups Projects
Unverified Commit 541bb36d authored by Zachary Hancock's avatar Zachary Hancock Committed by GitHub
Browse files

feat: fix and update translate strings (#353)

* feat: translation safe pii dialogue

* feat: extract translations
parent 469d47dd
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,7 @@ Please See the `releases tab <https://github.com/openedx/xblock-lti-consumer/rel
Unreleased
~~~~~~~~~~
* Updated PII JS so strings can be extracted for translation.
9.0.1 - 2023-04-11
------------------
......
......@@ -123,9 +123,9 @@ function LtiConsumerXBlock(runtime, element) {
if (showCancelButton) {
$dialog_container
.append('<button style="margin-right:1rem" id="cancel-button">Cancel</button>');
.append('<button style="margin-right:1rem" id="cancel-button">' + gettext("Cancel") + '</button>');
}
$dialog_container.append('<button id="confirm-button">OK</button>');
$dialog_container.append('<button id="confirm-button">' + gettext('OK') + '</button>');
// When a learner clicks "OK" or "Cancel" in the consent dialog, remove the consent dialog, show the launch
// button, and resolve the promise.
......@@ -154,21 +154,20 @@ function LtiConsumerXBlock(runtime, element) {
function renderPIIConsentPromptIfRequired(onSuccess, showCancelButton=true) {
if (askToSendUsername && askToSendEmail) {
msg = "Click OK to have your username and e-mail address sent to a 3rd party application.";
msg = gettext('Click OK to have your username and e-mail address sent to a 3rd party application.');
} else if (askToSendUsername) {
msg = "Click OK to have your username sent to a 3rd party application.";
msg = gettext('Click OK to have your username sent to a 3rd party application.');
} else if (askToSendEmail) {
msg = "Click OK to have your e-mail address sent to a 3rd party application.";
msg = gettext('Click OK to have your e-mail address sent to a 3rd party application.');
} else {
onSuccess("OK");
onSuccess('OK');
return;
}
if (showCancelButton) {
msg += "\n\nClick Cancel to return to this page without sending your information.";
msg += '\n\n' + gettext('Click Cancel to return to this page without sending your information.');
}
msg = gettext(msg);
$.when(confirmDialog(msg, $(this), showCancelButton)).then(onSuccess);
}
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-01 17:24-0300\n"
"POT-Creation-Date: 2023-04-11 15:09-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -18,99 +18,145 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lti_1p3/extensions/rest_framework/authentication.py:40
#: lti_1p3/extensions/rest_framework/authentication.py:41
msgid "Missing LTI 1.3 authentication token."
msgstr ""
#: lti_1p3/extensions/rest_framework/authentication.py:44
#: lti_1p3/extensions/rest_framework/authentication.py:45
msgid "Invalid token header. No credentials provided."
msgstr ""
#: lti_1p3/extensions/rest_framework/authentication.py:48
#: lti_1p3/extensions/rest_framework/authentication.py:49
msgid "Invalid token header. Token string should not contain spaces."
msgstr ""
#: lti_1p3/extensions/rest_framework/authentication.py:56
#: lti_1p3/extensions/rest_framework/authentication.py:57
msgid "LTI configuration not found."
msgstr ""
#: lti_1p3/extensions/rest_framework/authentication.py:65
#: lti_1p3/extensions/rest_framework/authentication.py:66
msgid "Invalid token signature."
msgstr ""
#: lti_xblock.py:127
#: lti_xblock.py:126
msgid "No valid user id found in endpoint URL"
msgstr ""
#: lti_xblock.py:233
#: lti_xblock.py:139
msgid "Configuration on block"
msgstr ""
#: lti_xblock.py:143
msgid "Database Configuration"
msgstr ""
#: lti_xblock.py:146
msgid "Reusable Configuration"
msgstr ""
#: lti_xblock.py:253
msgid "Display Name"
msgstr ""
#: lti_xblock.py:235
#: lti_xblock.py:255
msgid ""
"Enter the name that students see for this component. Analytics reports may "
"also use the display name to identify this component."
msgstr ""
#: lti_xblock.py:239
#: lti_xblock.py:259
msgid "LTI Consumer"
msgstr ""
#: lti_xblock.py:242
#: lti_xblock.py:262
msgid "LTI Application Information"
msgstr ""
#: lti_xblock.py:244
#: lti_xblock.py:264
msgid ""
"Enter a description of the third party application. If requesting username "
"and/or email, use this text box to inform users why their username and/or "
"email will be forwarded to a third party application."
msgstr ""
#: lti_xblock.py:254
#: lti_xblock.py:272
msgid "Configuration Type"
msgstr ""
#: lti_xblock.py:277
msgid ""
"Select 'Configuration on block' to configure a new LTI Tool. If the support "
"staff provided you with a pre-configured LTI reusable Tool ID, "
"select'Reusable Configuration' and enter it in the text field below."
msgstr ""
#: lti_xblock.py:284
msgid "LTI Version"
msgstr ""
#: lti_xblock.py:262
#: lti_xblock.py:292
msgid ""
"Select the LTI version that your tool supports.<br />The XBlock LTI Consumer "
"fully supports LTI 1.1.1, LTI 1.3 and LTI Advantage features."
msgstr ""
#: lti_xblock.py:268
#: lti_xblock.py:299
msgid "LTI Reusable Configuration ID"
msgstr ""
#: lti_xblock.py:301
msgid ""
"Enter the reusable LTI external configuration ID provided by the support "
"staff."
msgstr ""
#: lti_xblock.py:306
msgid "Tool Launch URL"
msgstr ""
#: lti_xblock.py:272
#: lti_xblock.py:310
msgid ""
"Enter the LTI 1.3 Tool Launch URL. <br />This is the URL the LMS will use to "
"launch the LTI Tool."
msgstr ""
#: lti_xblock.py:277
#: lti_xblock.py:315
msgid "Tool Initiate Login URL"
msgstr ""
#: lti_xblock.py:281
#: lti_xblock.py:319
msgid ""
"Enter the LTI 1.3 Tool OIDC Authorization url (can also be called login or "
"login initiation URL).<br />This is the URL the LMS will use to start a LTI "
"authorization prior to doing the launch request."
msgstr ""
#: lti_xblock.py:288
#: lti_xblock.py:325
msgid "Registered Redirect URIs"
msgstr ""
#: lti_xblock.py:327
msgid ""
"Valid urls the Tool may request us to redirect the id token to. The redirect "
"uris are often the same as the launch url/deep linking url so if this field "
"is empty, it will use them as the default. If you need to use different "
"redirect uri's, enter them here. If you use this field you must enter all "
"valid redirect uri's the tool may request."
msgstr ""
#: lti_xblock.py:337
msgid "Tool Public Key Mode"
msgstr ""
#: lti_xblock.py:296
#: lti_xblock.py:345
msgid "Select how the tool's public key information will be specified."
msgstr ""
#: lti_xblock.py:300
#: lti_xblock.py:349
msgid "Tool Keyset URL"
msgstr ""
#: lti_xblock.py:304
#: lti_xblock.py:353
msgid ""
"Enter the LTI 1.3 Tool's JWK keysets URL.<br />This link should retrieve a "
"JSON file containing public keys and signature algorithm information, so "
......@@ -119,11 +165,11 @@ msgid ""
"Launches without LTI Advantage nor Basic Outcomes requests.</b>"
msgstr ""
#: lti_xblock.py:314
#: lti_xblock.py:363
msgid "Tool Public Key"
msgstr ""
#: lti_xblock.py:319
#: lti_xblock.py:368
msgid ""
"Enter the LTI 1.3 Tool's public key.<br />This is a string that starts with "
"'-----BEGIN PUBLIC KEY-----' and is required so that the LMS can check if "
......@@ -132,61 +178,61 @@ msgid ""
"Advantage nor Basic Outcomes requests.</b>"
msgstr ""
#: lti_xblock.py:329
#: lti_xblock.py:378
msgid "Enable LTI NRPS"
msgstr ""
#: lti_xblock.py:330
#: lti_xblock.py:379
msgid "Enable LTI Names and Role Provisioning Services."
msgstr ""
#: lti_xblock.py:337
#: lti_xblock.py:386
msgid "LTI 1.3 Block Client ID - DEPRECATED"
msgstr ""
#: lti_xblock.py:340
#: lti_xblock.py:389
msgid "DEPRECATED - This is now stored in the LtiConfiguration model."
msgstr ""
#: lti_xblock.py:343
#: lti_xblock.py:392
msgid "LTI 1.3 Block Key - DEPRECATED"
msgstr ""
#: lti_xblock.py:350
#: lti_xblock.py:399
msgid "Deep linking"
msgstr ""
#: lti_xblock.py:351
#: lti_xblock.py:400
msgid "Select True if you want to enable LTI Advantage Deep Linking."
msgstr ""
#: lti_xblock.py:356
#: lti_xblock.py:405
msgid "Deep Linking Launch URL"
msgstr ""
#: lti_xblock.py:360
#: lti_xblock.py:409
msgid ""
"Enter the LTI Advantage Deep Linking Launch URL. If the tool does not "
"specify one, use the same value as 'Tool Launch URL'."
msgstr ""
#: lti_xblock.py:365
#: lti_xblock.py:414
msgid "LTI Assignment and Grades Service"
msgstr ""
#: lti_xblock.py:367
#: lti_xblock.py:416
msgid "Disabled"
msgstr ""
#: lti_xblock.py:368
#: lti_xblock.py:417
msgid "Allow tools to submit grades only (declarative)"
msgstr ""
#: lti_xblock.py:369
#: lti_xblock.py:418
msgid "Allow tools to manage and submit grade (programmatic)"
msgstr ""
#: lti_xblock.py:374
#: lti_xblock.py:423
msgid ""
"Enable the LTI-AGS service and select the functionality enabled for LTI "
"tools. The 'declarative' mode (default) will provide a tool with a LineItem "
......@@ -194,11 +240,11 @@ msgid ""
"tools to manage, create and link the grades."
msgstr ""
#: lti_xblock.py:382
#: lti_xblock.py:431
msgid "LTI ID"
msgstr ""
#: lti_xblock.py:384
#: lti_xblock.py:433
#, python-brace-format
msgid ""
"Enter the LTI ID for the external LTI provider. This value must be the same "
......@@ -207,11 +253,11 @@ msgid ""
"documentation{anchor_close} for more details on this setting."
msgstr ""
#: lti_xblock.py:396
#: lti_xblock.py:445
msgid "LTI URL"
msgstr ""
#: lti_xblock.py:398
#: lti_xblock.py:447
#, python-brace-format
msgid ""
"Enter the URL of the external tool that this component launches. This "
......@@ -220,11 +266,11 @@ msgid ""
"this setting."
msgstr ""
#: lti_xblock.py:411
#: lti_xblock.py:460
msgid "Custom Parameters"
msgstr ""
#: lti_xblock.py:413
#: lti_xblock.py:462
#, python-brace-format
msgid ""
"Add the key/value pair for any custom parameters, such as the page your e-"
......@@ -233,11 +279,11 @@ msgid ""
"documentation{anchor_close} for more details on this setting."
msgstr ""
#: lti_xblock.py:423
#: lti_xblock.py:472
msgid "LTI Launch Target"
msgstr ""
#: lti_xblock.py:425
#: lti_xblock.py:474
msgid ""
"Select Inline if you want the LTI content to open in an IFrame in the "
"current page. Select Modal if you want the LTI content to open in a modal "
......@@ -246,210 +292,226 @@ msgid ""
"Tool is set to False."
msgstr ""
#: lti_xblock.py:439
#: lti_xblock.py:488
msgid "Button Text"
msgstr ""
#: lti_xblock.py:441
#: lti_xblock.py:490
msgid ""
"Enter the text on the button used to launch the third party application. "
"This setting is only used when Hide External Tool is set to False and LTI "
"Launch Target is set to Modal or New Window."
msgstr ""
#: lti_xblock.py:449
#: lti_xblock.py:498
msgid "Inline Height"
msgstr ""
#: lti_xblock.py:451
#: lti_xblock.py:500
msgid ""
"Enter the desired pixel height of the iframe which will contain the LTI "
"tool. This setting is only used when Hide External Tool is set to False and "
"LTI Launch Target is set to Inline."
msgstr ""
#: lti_xblock.py:459
#: lti_xblock.py:508
msgid "Modal Height"
msgstr ""
#: lti_xblock.py:461
#: lti_xblock.py:510
msgid ""
"Enter the desired viewport percentage height of the modal overlay which will "
"contain the LTI tool. This setting is only used when Hide External Tool is "
"set to False and LTI Launch Target is set to Modal."
msgstr ""
#: lti_xblock.py:469
#: lti_xblock.py:518
msgid "Modal Width"
msgstr ""
#: lti_xblock.py:471
#: lti_xblock.py:520
msgid ""
"Enter the desired viewport percentage width of the modal overlay which will "
"contain the LTI tool. This setting is only used when Hide External Tool is "
"set to False and LTI Launch Target is set to Modal."
msgstr ""
#: lti_xblock.py:479
#: lti_xblock.py:528
msgid "Scored"
msgstr ""
#: lti_xblock.py:480
#: lti_xblock.py:529
msgid ""
"Select True if this component will receive a numerical score from the "
"external LTI system."
msgstr ""
#: lti_xblock.py:487
#: lti_xblock.py:536
msgid ""
"Enter the number of points possible for this component. The default value "
"is 1.0. This setting is only used when Scored is set to True."
msgstr ""
#: lti_xblock.py:496
#: lti_xblock.py:545
msgid ""
"The score kept in the xblock KVS -- duplicate of the published score in "
"django DB"
msgstr ""
#: lti_xblock.py:501
#: lti_xblock.py:550
msgid "Comment as returned from grader, LTI2.0 spec"
msgstr ""
#: lti_xblock.py:506
#: lti_xblock.py:555
msgid "Hide External Tool"
msgstr ""
#: lti_xblock.py:508
#: lti_xblock.py:557
msgid ""
"Select True if you want to use this component as a placeholder for syncing "
"with an external grading system rather than launch an external tool. This "
"setting hides the Launch button and any IFrames for this component."
msgstr ""
#: lti_xblock.py:516
#: lti_xblock.py:565
msgid "Accept grades past deadline"
msgstr ""
#: lti_xblock.py:517
#: lti_xblock.py:566
msgid ""
"Select True to allow third party systems to post grades past the deadline."
msgstr ""
#: lti_xblock.py:525
#: lti_xblock.py:574
msgid "Request user's username"
msgstr ""
#. Translators: This is used to request the user's username for a third party service.
#: lti_xblock.py:527
#: lti_xblock.py:576
msgid "Select True to request the user's username."
msgstr ""
#: lti_xblock.py:532
#: lti_xblock.py:581
msgid "Request user's email"
msgstr ""
#. Translators: This is used to request the user's email for a third party service.
#: lti_xblock.py:534
#: lti_xblock.py:583
msgid "Select True to request the user's email address."
msgstr ""
#: lti_xblock.py:539
#: lti_xblock.py:588
msgid "Send extra parameters"
msgstr ""
#: lti_xblock.py:540
#: lti_xblock.py:589
msgid ""
"Select True to send the extra parameters, which might contain Personally "
"Identifiable Information. The processors are site-wide, please consult the "
"site administrator if you have any questions."
msgstr ""
#: lti_xblock.py:603
#: lti_xblock.py:652
msgid "Custom Parameters must be a list"
msgstr ""
#: lti_xblock.py:713
#: lti_xblock.py:783 lti_xblock.py:1062
msgid "Could not get user data for current request"
msgstr ""
#: lti_xblock.py:810
msgid ""
"Could not parse LTI passport: {lti_passport!r}. Should be \"id:key:secret\" "
"string."
msgstr ""
#: lti_xblock.py:729 lti_xblock.py:745
#: lti_xblock.py:828 lti_xblock.py:842 lti_xblock.py:858
msgid "Could not get user id for current request"
msgstr ""
#: lti_xblock.py:850
#: lti_xblock.py:994
msgid ""
"Could not parse custom parameter: {custom_parameter!r}. Should be \"x=y\" "
"string."
msgstr ""
#: lti_xblock.py:1310
#: lti_xblock.py:1343
msgid "[LTI]: Real user not found against anon_id: {}"
msgstr ""
#: models.py:72
#: models.py:79
msgid "Configuration Stored on XBlock fields"
msgstr ""
#: models.py:73
#: models.py:80
msgid "Configuration Stored on this model"
msgstr ""
#: models.py:97
#: models.py:81
msgid "Configuration Stored on external service"
msgstr ""
#: models.py:113
msgid "LTI configuration data."
msgstr ""
#: models.py:104
#: models.py:120
msgid "The URL of the external tool that initiates the launch."
msgstr ""
#: models.py:109
#: models.py:125
msgid "Client key provided by the LTI tool provider."
msgstr ""
#: models.py:115
#: models.py:131
msgid "Client secret provided by the LTI tool provider."
msgstr ""
#: models.py:121
#: models.py:137
msgid "Platform's generated Private key. Keep this value secret."
msgstr ""
#: models.py:127
#: models.py:143
msgid "Platform's generated Private key ID"
msgstr ""
#: models.py:132
#: models.py:148
msgid "Platform's generated JWK keyset."
msgstr ""
#: models.py:138
#: models.py:154
msgid "Client ID used by LTI tool"
msgstr ""
#: models.py:148
#: models.py:250
msgid "LTI Configuration stores on XBlock needs a block location set."
msgstr ""
#: models.py:155
msgid "Invalid LTI configuration."
#: models.py:256
msgid ""
"LTI Configuration stored on the model for LTI 1.3 must have a value for one "
"of lti_1p3_tool_public_key or lti_1p3_tool_keyset_url."
msgstr ""
#: models.py:165
msgid "Block location not set, it's not possible to retrieve the block."
#: models.py:263
msgid ""
"CONFIG_ON_XBLOCK and CONFIG_EXTERNAL are not supported for LTI 1.3 "
"Proctoring Services."
msgstr ""
#: plugin/views.py:246
#: models.py:271
msgid "Invalid LTI configuration."
msgstr ""
#: plugin/views.py:453
msgid "The selected content type is not supported by Open edX."
msgstr ""
#: plugin/views.py:261
#: plugin/views.py:468
msgid "You don't have access to save LTI Content Items."
msgstr ""
#: plugin/views.py:262
#: plugin/views.py:469
msgid ""
"Please check that you have course staff permissions and double check this "
"block's LTI settings."
......@@ -471,15 +533,6 @@ msgstr ""
msgid "You can safely close this page now."
msgstr ""
#: templates/html/lti_1p3_launch_error.html:10
msgid "There was an error while launching the LTI 1.3 tool."
msgstr ""
#: templates/html/lti_1p3_launch_error.html:13
msgid ""
"If you're seeing this on a live course, please contact the course staff."
msgstr ""
#: templates/html/lti_1p3_permission_error.html:10
msgid "Unauthorized."
msgstr ""
......@@ -548,24 +601,42 @@ msgstr ""
msgid "Press to Launch"
msgstr ""
#: static/js/xblock_lti_consumer.js:142
msgid ""
"Click OK to have your username and e-mail address sent to a 3rd party "
"application.\n"
"\n"
"Click Cancel to return to this page without sending your information."
#: templates/html/lti_launch_error.html:10
msgid "There was an error while launching the LTI tool."
msgstr ""
#: static/js/xblock_lti_consumer.js:144
#: templates/html/lti_launch_error.html:13
#: templates/html/lti_proctoring_start_error.html:13
msgid ""
"Click OK to have your username sent to a 3rd party application.\n"
"\n"
"Click Cancel to return to this page without sending your information."
"If you're seeing this on a live course, please contact the course staff."
msgstr ""
#: static/js/xblock_lti_consumer.js:146
#: templates/html/lti_proctoring_start_error.html:10
msgid "There was an error while starting your LTI proctored assessment."
msgstr ""
#: static/js/xblock_lti_consumer.js:126
msgid "Cancel"
msgstr ""
#: static/js/xblock_lti_consumer.js:128
msgid "OK"
msgstr ""
#: static/js/xblock_lti_consumer.js:157
msgid ""
"Click OK to have your e-mail address sent to a 3rd party application.\n"
"\n"
"Click Cancel to return to this page without sending your information."
"Click OK to have your username and e-mail address sent to a 3rd party "
"application."
msgstr ""
#: static/js/xblock_lti_consumer.js:159
msgid "Click OK to have your username sent to a 3rd party application."
msgstr ""
#: static/js/xblock_lti_consumer.js:161
msgid "Click OK to have your e-mail address sent to a 3rd party application."
msgstr ""
#: static/js/xblock_lti_consumer.js:168
msgid "Click Cancel to return to this page without sending your information."
msgstr ""
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment