= ({ application }: Props) => {
const takePhoto = useCallback(() => {
if (!application.featuresController.entitledToFiles) {
- premiumModal.activate('Moments')
+ premiumModal.activate(c('B6.Preferences.General.Title').t`Moments`)
return
}
diff --git a/packages/web/src/javascripts/Components/Preferences/Panes/General/SmartViews/EditSmartViewModal.tsx b/packages/web/src/javascripts/Components/Preferences/Panes/General/SmartViews/EditSmartViewModal.tsx
index 26f1c4a03a2..d7ac0b12035 100644
--- a/packages/web/src/javascripts/Components/Preferences/Panes/General/SmartViews/EditSmartViewModal.tsx
+++ b/packages/web/src/javascripts/Components/Preferences/Panes/General/SmartViews/EditSmartViewModal.tsx
@@ -76,7 +76,7 @@ const EditSmartViewModal = ({ controller, platform }: Props) => {
mobileSlot: 'left',
},
{
- label: isSaving ? : 'Save',
+ label: isSaving ? : c('B6.Preferences.General.Action').t`Save`,
onClick: saveSmartView,
disabled: isSaving,
type: 'primary',
diff --git a/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultItem.tsx b/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultItem.tsx
index f3dbb3c3d3a..aae5bb74cd1 100644
--- a/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultItem.tsx
+++ b/packages/web/src/javascripts/Components/Preferences/Panes/Vaults/Vaults/VaultItem.tsx
@@ -128,7 +128,12 @@ const VaultItem = ({ vault }: Props) => {
)}
- {canShowLockOption && }
+ {canShowLockOption && (
+
+ )}
{isCurrentUserOwner && (
)}
diff --git a/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts b/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts
index f69a6f924a8..0e8aed80806 100644
--- a/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts
+++ b/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts
@@ -1,6 +1,6 @@
import { ListableContentItem } from '@/Components/ContentListView/Types/ListableContentItem'
import { debounce, destroyAllObjectProperties, isMobileScreen } from '@/Utils'
-import { c } from 'ttag'
+import { c, msgid } from 'ttag'
import {
ApplicationEvent,
CollectionSort,
@@ -80,7 +80,7 @@ export class ItemListController
items: ListableContentItem[] = []
notesToDisplay = 0
pageSize = 0
- panelTitle = 'Notes'
+ panelTitle = c('B4.Notes.TagsLinkedItems.Label').t`Notes`
renderedItems: ListableContentItem[] = []
searchSubmitted = false
showDisplayOptionsMenu = false
@@ -417,13 +417,19 @@ export class ItemListController
}
reloadPanelTitle = () => {
- let title = this.panelTitle
+ let title = c('B4.Notes.TagsLinkedItems.Label').t`Notes`
if (this.isFiltering) {
const resultCount = this.items.length
- title = `${resultCount} search results`
+ title = jtString(
+ c('B3.Notes.NoteList.Info').ngettext(
+ msgid`${resultCount} search result`,
+ `${resultCount} search results`,
+ resultCount,
+ ),
+ )
} else if (this.navigationController.selected) {
- title = `${this.navigationController.selected.title}`
+ title = this.navigationController.selected.title
}
this.panelTitle = title
diff --git a/packages/web/src/javascripts/Controllers/LinkingController.tsx b/packages/web/src/javascripts/Controllers/LinkingController.tsx
index 468896af2d9..c5c1314abf6 100644
--- a/packages/web/src/javascripts/Controllers/LinkingController.tsx
+++ b/packages/web/src/javascripts/Controllers/LinkingController.tsx
@@ -26,6 +26,7 @@ import {
VaultServiceInterface,
} from '@standardnotes/snjs'
import { action, computed, makeObservable, observable } from 'mobx'
+import { c } from 'ttag'
import { AbstractViewController } from './Abstract/AbstractViewController'
import { CrossControllerEvent } from './CrossControllerEvent'
import { FilesController } from './FilesController'
@@ -241,7 +242,7 @@ export class LinkingController extends AbstractViewController implements Interna
if (isNote(item)) {
if (isNote(itemToLink) && !this.isEntitledToNoteLinking) {
void this.publishCrossControllerEventSync(CrossControllerEvent.DisplayPremiumModal, {
- featureName: 'Note linking',
+ featureName: c('B4.Notes.LinkedItems.Label').t`Note linking`,
})
return
}
@@ -282,7 +283,7 @@ export class LinkingController extends AbstractViewController implements Interna
const cannotLinkItem = !this.isEntitledToNoteLinking && itemToLink instanceof SNNote
if (cannotLinkItem) {
void this.publishCrossControllerEventSync(CrossControllerEvent.DisplayPremiumModal, {
- featureName: 'Note linking',
+ featureName: c('B4.Notes.LinkedItems.Label').t`Note linking`,
})
return false
}
diff --git a/packages/web/src/javascripts/Controllers/Moments/MomentsService.ts b/packages/web/src/javascripts/Controllers/Moments/MomentsService.ts
index 69b237e02b8..cdd53ae1757 100644
--- a/packages/web/src/javascripts/Controllers/Moments/MomentsService.ts
+++ b/packages/web/src/javascripts/Controllers/Moments/MomentsService.ts
@@ -174,7 +174,8 @@ export class MomentsService extends AbstractViewController implements InternalEv
}
}
- const filename = `Moment ${dateToStringStyle1(new Date())}.png`
+ const date = dateToStringStyle1(new Date())
+ const filename = jtString(c('B4.Notes.EditingUI.Label').jt`Moment ${date}.png`)
const camera = new PhotoRecorder()
await camera.initialize()
diff --git a/packages/web/src/javascripts/Controllers/NoteHistory/NoteHistoryController.ts b/packages/web/src/javascripts/Controllers/NoteHistory/NoteHistoryController.ts
index 7b10dd7f0e6..649d28b0836 100644
--- a/packages/web/src/javascripts/Controllers/NoteHistory/NoteHistoryController.ts
+++ b/packages/web/src/javascripts/Controllers/NoteHistory/NoteHistoryController.ts
@@ -2,6 +2,7 @@ import { RevisionType } from '@/Components/RevisionHistoryModal/RevisionType'
import { sortRevisionListIntoGroups } from '@/Components/RevisionHistoryModal/utils'
import { STRING_RESTORE_LOCKED_ATTEMPT } from '@/Constants/Strings'
import { confirmDialog } from '@standardnotes/ui-services'
+import { jtString } from '@standardnotes/features'
import { c } from 'ttag'
import {
Action,
@@ -352,7 +353,9 @@ export class NoteHistoryController {
const duplicatedItem = await this.mutator.duplicateItem(originalNote, false, {
...revision.payload.content,
- title: revision.payload.content.title ? revision.payload.content.title + ' (copy)' : undefined,
+ title: revision.payload.content.title
+ ? jtString(c('B4.Notes.History.Label').jt`${revision.payload.content.title} (copy)`)
+ : undefined,
})
void this.sync.sync()