Skip to content

Commit dd2ba82

Browse files
authored
Merge pull request #7055 from LibreSign/backport/7054/stable33
[stable33] i18n: add translators comments verification code
2 parents 9aa5ec0 + 2e9b02b commit dd2ba82

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

src/views/SignPDF/_partials/ModalVerificationCode.vue

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@
3636
<!-- Step 1: Token mode -->
3737
<div v-else-if="mode === 'token' && step1Active" class="step-content">
3838
<p class="step-explanation">
39+
<!-- TRANSLATORS: Instruction shown when the signer must verify via a messaging channel. "contact information" here means a phone number used for SMS, WhatsApp, Telegram, Signal, or XMPP. -->
3940
{{ t('libresign', 'To sign this document, we must verify your identity. Enter your contact information to receive a verification code.') }}
4041
</p>
42+
<!-- TRANSLATORS: Label and placeholder for the phone number input field used to receive a verification code via SMS, WhatsApp, Telegram, Signal, or XMPP. "Contact information" here means a phone number, not a generic address book entry. -->
4143
<NcTextField v-model="newPhoneNumber"
4244
:disabled="loading"
4345
name="cellphone"
@@ -55,6 +57,7 @@
5557
<div class="contact-display">
5658
{{ displayContact }}
5759
</div>
60+
<!-- TRANSLATORS: Label and placeholder for the input field where the signer types the numeric one-time password (OTP) delivered via email, SMS, WhatsApp, Telegram, Signal, or XMPP. "code" here means a short numeric verification code, not source code. -->
5861
<NcTextField v-model="token"
5962
:disabled="loading"
6063
:label="t('libresign', 'Enter your code')"
@@ -70,9 +73,11 @@
7073
<div v-else-if="identityVerified" class="step-content">
7174
<div class="verification-success">
7275
<p class="verification-message">
76+
<!-- TRANSLATORS: Success message shown after the signer's identity has been confirmed via a numeric one-time password (OTP) delivered through email, SMS, WhatsApp, Telegram, Signal, or XMPP. "identity" here means the system confirmed the signer is who they claim to be. -->
7377
{{ t('libresign', 'Your identity has been verified.') }}
7478
</p>
7579
<p class="signature-ready">
80+
<!-- TRANSLATORS: Follow-up message shown right after identity verification succeeds, inviting the signer to proceed with signing the document. -->
7681
{{ t('libresign', 'You can now sign the document.') }}
7782
</p>
7883
</div>
@@ -94,11 +99,12 @@
9499
<!-- Step 2 actions (common) -->
95100
<template v-else-if="!identityVerified">
96101
<NcButton :disabled="loading"
97-
type="submit"
102+
type="submit"
98103
@click="requestNewCode">
99104
<template #icon>
100105
<NcLoadingIcon v-if="loading" :size="20" />
101106
</template>
107+
<!-- TRANSLATORS: Button label. Sends a new numeric one-time password (OTP) to the signer via email, SMS, WhatsApp, Telegram, Signal, or XMPP. "code" here means a short numeric verification code, not source code. -->
102108
{{ t('libresign', 'Request new code') }}
103109
</NcButton>
104110
<NcButton :disabled="!canSendCode"
@@ -108,6 +114,7 @@
108114
<template #icon>
109115
<NcLoadingIcon v-if="loading" :size="20" />
110116
</template>
117+
<!-- TRANSLATORS: Button label. Submits the numeric one-time password (OTP) typed by the signer to complete verification. The code was delivered via email, SMS, WhatsApp, Telegram, Signal, or XMPP. "code" here means a short numeric verification code, not source code. -->
111118
{{ t('libresign', 'Validate code') }}
112119
</NcButton>
113120
</template>
@@ -215,29 +222,37 @@ export default {
215222
if (this.step1Active) {
216223
return this.mode === 'email'
217224
? t('libresign', 'Email verification')
225+
// TRANSLATORS Title for step 1 where the signer proves they are the owner of a registered contact channel by receiving a code via SMS, WhatsApp, Telegram, Signal, or XMPP. "Identity" here means confirming who the signer is, not a reference to any specific document. Translate as a generic compound noun without a definite article.
218226
: t('libresign', 'Identity verification')
219227
}
220228
if (!this.identityVerified) {
229+
// TRANSLATORS Dialog title for step 2 where the signer enters the numeric verification code (OTP) received by email or messaging channel. "Code" here means a short numeric one-time password, not source code or any other kind of code.
221230
return t('libresign', 'Code validation')
222231
}
232+
// TRANSLATORS Dialog title for step 3 where the signer reviews and confirms their intent to sign the document by clicking a button. This is not a receipt or acknowledgment — it is the final user action that triggers the signing process.
223233
return t('libresign', 'Signature confirmation')
224234
},
225235
progressText() {
226236
if (this.step1Active) {
227237
return this.mode === 'email'
228238
? t('libresign', 'Step 1 of 3 - Email verification')
239+
// TRANSLATORS Progress text for step 1 where the signer proves they are the owner of a registered contact channel by receiving a code via SMS, WhatsApp, Telegram, Signal, or XMPP. "Identity" here means confirming who the signer is, not a reference to any specific document. Translate as a generic compound noun without a definite article.
229240
: t('libresign', 'Step 1 of 3 - Identity verification')
230241
}
231242
if (!this.identityVerified) {
243+
// TRANSLATORS Progress text for step 2 where the signer enters the numeric verification code (OTP) received by email or messaging channel. "Code" here means a short numeric one-time password, not source code or any other kind of code.
232244
return t('libresign', 'Step 2 of 3 - Code validation')
233245
}
246+
// TRANSLATORS Progress text for step 3 where the signer reviews and confirms their intent to sign the document by clicking a button. This is not a receipt or acknowledgment — it is the final user action that triggers the signing process.
234247
return t('libresign', 'Step 3 of 3 - Signature confirmation')
235248
},
236249
codeExplanationText() {
237250
const contact = this.displayContact
238251
if (this.mode === 'email') {
252+
// TRANSLATORS {contact} is the email address where the verification code was sent.
239253
return t('libresign', 'A verification code has been sent to: {contact}. Check your email and enter the 6-digit verification code.', { contact })
240254
}
255+
// TRANSLATORS {contact} is the phone number or messaging channel (SMS, WhatsApp, Telegram, Signal, XMPP) where the verification code was sent.
241256
return t('libresign', 'A verification code has been sent to: {contact}. Please enter the code to continue.', { contact })
242257
},
243258
displayContact() {
@@ -367,6 +382,7 @@ export default {
367382
const msg = err.response?.data?.ocs?.data?.message || err.response?.data?.message || err.message
368383
if (this.mode === 'token' && msg?.includes('Invalid configuration')) {
369384
const method = this.activeTokenMethod.charAt(0).toUpperCase() + this.activeTokenMethod.slice(1)
385+
// TRANSLATORS {method} is the name of a messaging service (e.g. SmsToken, WhatsappToken, TelegramToken, SignalToken, XmppToken).
370386
showError(t('libresign', '{method} is not configured. Please contact your administrator.', { method }))
371387
} else {
372388
showError(msg)

0 commit comments

Comments
 (0)