Skip to content

Localization

ContentLock ships with translations for 8 languages. All language files live in ContentLock/Client/src/localizations/.


LanguageCodeFile
Englishenen.ts
Welshcycy.ts
Danishdkdk.ts
Frenchfrfr.ts
Italianitit.ts
Dutchnlnl.ts
Norwegiannono.ts
Turkishtrtr.ts

The English file (en.ts) is the source of truth. All other language files must contain the same keys.


The English source file (en.ts) shows the full structure:

export default {
contentLockDashboard: {
label: 'Content Lock',
pageNameHeader: 'Page Name',
contentTypeHeader: 'Content Type',
checkedOutByHeader: 'Checked Out By',
checkedOutAtHeader: 'Checked Out At',
lastEditedHeader: 'Last Edited',
unlockAction: 'Unlock',
pagesCheckedOutTitle: 'Pages Checked Out',
noLocks: 'No locks',
noLocksMessage: '🎉 Zip, zero, nada'
},
contentLockFooterApp: {
lockedByYou: 'This page is locked by you',
lockedByAnother: 'This page is locked by {0}',
},
contentLockNotification: {
lockedHeader: 'Content Locked',
lockedMessage: 'The document has been locked for you to edit.',
unlockedHeader: 'Content Unlocked',
unlockedMessage: 'The document has been unlocked, to allow other users to edit.',
bulkUnlockHeader: 'Content Unlocked',
bulkUnlockMessage: 'The selected content has been unlocked successfully'
},
contentLockPermission: {
group: 'Content Lock',
label: 'Unlocker',
description: 'Allows the group of users to unlock a document that is locked by another user.',
},
contentLockUsersModal: {
modalHeader: 'Who\'s online?',
listOfUsers: 'Online Users',
youLabel: 'You',
},
contentUnlockedModal: {
modalHeader: 'Content Unlocked',
modalContent: 'The content is now unlocked and available for editing, however it may have been modified by another user. Please reload the page to see the latest version',
reload: 'Reload',
},
actionCategories: {
contentLock: "Content Lock"
},
contentLockCall: {
callButton: 'Call',
busyIndicator: 'On a call',
incoming: 'Incoming call',
accept: 'Accept',
decline: 'Decline',
hangUp: 'Hang Up',
mute: 'Mute',
unmute: 'Unmute',
deviceSettings: 'Audio devices',
microphone: 'Microphone',
speaker: 'Speaker',
callEnded: 'Call ended',
callDeclined: '{0} declined the call',
callBusy: '{0} is currently on another call',
callFailed: 'Call failed to connect',
calling: 'Calling',
missedCall: 'Missed call',
missedCallFrom: '{0} tried to call you',
}
};

Dashboard labels and table headers.

KeyEnglish Value
labelContent Lock
pageNameHeaderPage Name
contentTypeHeaderContent Type
checkedOutByHeaderChecked Out By
checkedOutAtHeaderChecked Out At
lastEditedHeaderLast Edited
unlockActionUnlock
pagesCheckedOutTitlePages Checked Out
noLocksNo locks
noLocksMessage🎉 Zip, zero, nada

Workspace footer banner text.

KeyEnglish Value
lockedByYouThis page is locked by you
lockedByAnotherThis page is locked by {0}

Toast notification messages.

KeyEnglish Value
lockedHeaderContent Locked
lockedMessageThe document has been locked for you to edit.
unlockedHeaderContent Unlocked
unlockedMessageThe document has been unlocked, to allow other users to edit.
bulkUnlockHeaderContent Unlocked
bulkUnlockMessageThe selected content has been unlocked successfully

Permission labels shown in the User Groups permissions UI.

KeyEnglish Value
groupContent Lock
labelUnlocker
descriptionAllows the group of users to unlock a document that is locked by another user.

Online users modal.

KeyEnglish Value
modalHeaderWho's online?
listOfUsersOnline Users
youLabelYou

Modal shown when a lock is released while you’re viewing the node.

KeyEnglish Value
modalHeaderContent Unlocked
modalContentThe content is now unlocked and available for editing, however it may have been modified by another user. Please reload the page to see the latest version
reloadReload

Action menu category label.

KeyEnglish Value
contentLockContent Lock

Audio calling UI strings.

KeyEnglish Value
callButtonCall
busyIndicatorOn a call
incomingIncoming call
acceptAccept
declineDecline
hangUpHang Up
muteMute
unmuteUnmute
deviceSettingsAudio devices
microphoneMicrophone
speakerSpeaker
callEndedCall ended
callDeclined{0} declined the call
callBusy{0} is currently on another call
callFailedCall failed to connect
callingCalling
missedCallMissed call
missedCallFrom{0} tried to call you

To add or improve a translation:

  1. Open the relevant language file in ContentLock/Client/src/localizations/ (e.g., fr.ts for French).
  2. Ensure all keys from en.ts are present.
  3. Translate each value. Do not translate keys — only values.
  4. For interpolated strings (e.g., {0}), keep the placeholder in the translated value.
  5. Submit a pull request with your changes.

When adding a new translation key to the package:

  1. Add the key and English value to en.ts.
  2. Add the key (with a translated value or the English fallback) to all 7 other language files.