summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/fi
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /thunderbird-l10n/fi
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'thunderbird-l10n/fi')
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/branding/brand.dtd13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/branding/brand.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/alerts/alert.properties23
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/autoconfig/autoconfig.properties12
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-alarms.properties39
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.dtd428
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.properties541
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-extract.properties294
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.properties10
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.properties63
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.dtd407
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.properties809
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.dtd51
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.properties6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/categories.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dateFormat.properties146
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dialogs/calendar-event-dialog-reminder.dtd19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/global.dtd54
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/menuOverlay.dtd50
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.dtd9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/provider-uninstall.dtd12
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/timezones.properties489
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.dtd41
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.properties9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/commands.properties27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/contacts.properties8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/conversations.properties85
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/facebook.properties6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/imtooltip.properties12
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/irc.properties209
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/logger.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/matrix.properties289
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/status.properties23
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/twitter.properties122
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/xmpp.properties281
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/chat/yahoo.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/communicator/utilityOverlay.dtd43
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/accessibility.properties314
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/animationinspector.properties182
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/boxmodel.properties48
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/changes.properties64
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/components.properties61
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/debugger.properties1132
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/device.properties21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/dom.properties27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/filterwidget.properties61
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/font-inspector.properties69
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/har.properties30
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/inspector.properties602
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/jsonview.properties47
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/layout.properties138
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/memory.properties434
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/menus.properties29
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/netmonitor.properties1679
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/network-throttling.properties27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/responsive.properties182
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/shared.properties26
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/sourceeditor.properties117
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/startup.properties248
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/styleeditor.properties74
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/toolbox.properties267
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/webconsole.properties601
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/accessibility.properties142
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/debugger.properties67
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/eyedropper.properties14
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/screenshot.properties148
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/shared.properties6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/styleinspector.properties267
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/accessible.properties71
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/intl.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/platformKeys.properties33
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/accessible.properties21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/intl.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/platformKeys.properties33
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/accessible.properties21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/intl.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/platformKeys.properties33
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/aboutStudies.properties33
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/appstrings.properties37
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/autocomplete.properties9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/browser.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/commonDialogs.properties46
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/contentAreaCommands.properties28
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/css.properties52
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/dialog.properties12
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/dom/dom.properties451
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/extensions.properties27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/fallbackMenubar.properties8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/filepicker.properties20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/global-strres.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.css11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.properties43
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/keys.properties78
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/HtmlForm.properties35
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/MediaDocument.properties22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties145
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/xmlparser.properties48
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties53
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/mathml/mathml.properties15
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/narrate.properties25
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/nsWebBrowserPersist.properties17
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/printdialog.properties52
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/printing.properties56
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/resetProfile.properties14
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/caps.properties9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/csp.properties125
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties164
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/svg/svg.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/viewSource.properties16
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/wizard.properties8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/xslt/xslt.properties39
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/global/xul.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning-toolbar.dtd51
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.dtd114
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.properties201
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-mapi/mapi.properties36
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/am-newsblog.dtd14
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/feed-subscriptions.dtd55
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/newsblog.properties93
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-region/region.properties20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/certFetchingStatus.dtd9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSMIMEOverlay.dtd16
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.dtd18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSMIMEOverlay.properties11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSecurityInfo.dtd17
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgSecurityInfo.properties36
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountManager.dtd25
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountWizard.dtd55
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/CustomHeaders.dtd11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterEditor.dtd66
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterListDialog.dtd43
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/SearchDialog.dtd38
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutDownloads.dtd23
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutRights.properties6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutSupportMail.properties15
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationModel.properties21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationUtil.properties34
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.dtd19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.properties99
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addbuddy.dtd7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abAddressBookNameDialog.dtd7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abContactsPanel.dtd49
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMailListDialog.dtd22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMainWindow.dtd17
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abResultsPane.dtd38
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/addressBook.properties179
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/ldapAutoCompErrs.properties104
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory-add.dtd45
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory.dtd17
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/replicationProgress.properties20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-addressing.dtd51
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-advanced.dtd30
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-archiveoptions.dtd25
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-copies.dtd52
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-e2e.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identities-list.dtd15
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identity-edit.dtd14
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-im.dtd16
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-junk.dtd31
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-main.dtd49
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.dtd33
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.properties6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-offline.dtd57
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-advanced.dtd31
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-top.dtd89
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-serverwithnoidentities.dtd6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.dtd47
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.properties39
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appUpdate.properties40
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appleMailImportMsgs.properties21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/baseMenuOverlay.dtd34
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/beckyImportMsgs.properties19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/charsetTitles.properties84
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.dtd44
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.properties111
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/configEditorOverlay.dtd5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.dtd11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.properties41
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/custom.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.dtd18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.properties11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/downloadheaders.dtd27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.dtd20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.properties14
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/fieldMapImport.dtd17
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/filter.properties109
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderProps.dtd70
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderWidgets.properties12
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderpane.dtd7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/gloda.properties175
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaComplete.properties19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.dtd29
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.properties171
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccountWizard.dtd32
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccounts.properties63
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imapMsgs.properties268
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importDialog.dtd48
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importMsgs.properties304
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/joinChat.dtd10
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/junkLog.dtd10
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/localMsgs.properties140
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailEditorOverlay.dtd7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailOverlay.dtd11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewList.dtd8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewSetup.dtd11
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailviews.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/markByDate.dtd9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.dtd945
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.properties768
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdAdvancedEdit.dtd18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdColorPicker.dtd22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdConvertToTable.dtd15
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdDialogOverlay.dtd18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdNamedAnchorProperties.dtd10
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorColorProperties.dtd29
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorHLineProperties.dtd27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorImageProperties.dtd79
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertChars.dtd19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertMath.dtd21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertSource.dtd15
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTOC.dtd16
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTable.dtd18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorLinkProperties.dtd6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorListProperties.dtd20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorPersonalDictionary.dtd18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorReplace.dtd29
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorSpellCheck.dtd38
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorTableProperties.dtd76
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/composeMsgs.properties463
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editor.properties208
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editorOverlay.dtd303
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/mailComposeEditorOverlay.dtd9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/messengercompose.dtd306
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.dtd8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.properties21
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.dtd30
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.properties32
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mime.properties154
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mimeheader.properties35
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/morkImportMsgs.properties18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgAccountCentral.dtd26
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgHdrViewOverlay.dtd114
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgSynchronize.dtd27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgViewPickerOverlay.dtd22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgmdn.properties18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.dtd8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.properties66
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newFolderDialog.dtd16
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/news.properties56
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newsError.dtd31
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offline.properties28
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offlineStartup.properties8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/outlookImportMsgs.properties87
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/pgpmime.properties10
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applicationManager.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applications.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/messagestyle.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/preferences.properties100
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/prefs.properties90
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/profileDowngrade.dtd20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.dtd22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.properties5
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/renameFolderDialog.dtd9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/sanitize.dtd36
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/seamonkeyImportMsgs.properties18
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-attributes.properties45
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-operators.properties31
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search.properties27
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/searchTermOverlay.dtd19
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/shutdownWindow.properties10
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smime.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smtpEditOverlay.dtd24
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.dtd22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/tabmail.dtd9
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/taskbar.properties8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/telemetry.properties13
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/templateUtils.properties7
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/textImportMsgs.properties53
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/vCardImportMsgs.properties26
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewLog.dtd12
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.dtd86
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.properties17
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewZoomOverlay.dtd30
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderListDialog.dtd8
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderProperties.dtd22
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/wmImportMsgs.properties76
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/downloads.properties6
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/unknownContentType.properties23
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/profile/profileSelection.properties55
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/update/updates.properties45
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/mozldap/ldap.properties261
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/necko/necko.properties95
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/passwordmgr/passwordmgr.properties79
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/nsserrors.properties331
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/pipnss.properties136
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/pippki/pippki.properties75
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/fi/places/places.properties33
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/chrome.properties20
-rw-r--r--thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/viewer.properties302
-rw-r--r--thunderbird-l10n/fi/localization/fi/branding/brand.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/browser/appExtensionFields.ftl16
-rw-r--r--thunderbird-l10n/fi/localization/fi/browser/branding/brandings.ftl18
-rw-r--r--thunderbird-l10n/fi/localization/fi/browser/components/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/fi/localization/fi/browser/components/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-context-menus.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-delete-prompt.ftl35
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-editable-item.ftl30
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-event-dialog-reminder.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-event-listing.ftl71
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-ics-file-dialog.ftl46
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-invitation-panel.ftl64
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-invitations-dialog.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-itip-identity-dialog.ftl8
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-print.ftl17
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-recurrence-dialog.ftl8
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-summary-dialog.ftl17
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-uri-redirect-dialog.ftl12
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/calendar-widgets.ftl111
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/category-dialog.ftl7
-rw-r--r--thunderbird-l10n/fi/localization/fi/calendar/preferences.ftl192
-rw-r--r--thunderbird-l10n/fi/localization/fi/chat/matrix.ftl24
-rw-r--r--thunderbird-l10n/fi/localization/fi/crashreporter/aboutcrashes.ftl31
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/aboutdebugging.ftl400
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/accessibility.ftl99
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/application.ftl151
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/compatibility.ftl54
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/perftools.ftl161
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/storage.ftl132
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/styleeditor.ftl56
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/toolbox-options.ftl154
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/toolbox.ftl55
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/client/tooltips.ftl101
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/shared/debugger-paused-reasons.ftl87
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/shared/highlighters.ftl67
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/shared/webconsole-commands.ftl34
-rw-r--r--thunderbird-l10n/fi/localization/fi/devtools/startup/key-shortcuts.ftl38
-rw-r--r--thunderbird-l10n/fi/localization/fi/dom/XMLPrettyPrint.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/dom/media.ftl6
-rw-r--r--thunderbird-l10n/fi/localization/fi/locales-preview/aboutTranslations.ftl28
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/about3Pane.ftl419
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutAddonsExtra.ftl12
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutDialog.ftl66
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutImport.ftl179
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutProfilesExtra.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutRights.ftl29
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutSupportCalendar.ftl28
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutSupportChat.ftl11
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/aboutSupportMail.ftl31
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/accountCentral.ftl50
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/accountManager.ftl18
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/accountProvisioner.ftl57
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountHub.ftl82
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountSetup.ftl294
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/addonNotifications.ftl120
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVDialog.ftl26
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVProperties.ftl33
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/addressbook/aboutAddressBook.ftl250
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/addressbook/fieldMapImport.ftl9
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/addressbook/vcard.ftl130
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/appmenu.ftl203
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/chat-verifySession.ftl14
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/chat.ftl39
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/compactFoldersDialog.ftl20
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/exportDialog.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/extensionPermissions.ftl17
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/extensions/popup.ftl14
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/extensionsUI.ftl9
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/firefoxAccounts.ftl32
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/flatpak.ftl24
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/folderprops.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl30
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/mailWidgets.ftl13
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/menubar.ftl138
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/messageheader/headerFields.ftl61
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/messenger.ftl399
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl350
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/migration.ftl15
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/multimessageview.ftl14
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/backupKeyPassword.ftl17
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/changeExpiryDlg.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/composeKeyStatus.ftl17
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyAssistant.ftl115
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyWizard.ftl140
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/msgReadStatus.ftl65
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/oneRecipientStatus.ftl49
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp-frontend.ftl52
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp.ftl780
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/add-finger.ftl16
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/am-im-otr.ftl24
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/auth.ftl50
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/chat.ftl19
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/finger-sync.ftl12
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/finger.ftl18
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/otr.ftl97
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl63
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/policies/aboutPolicies.ftl17
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/policies/policies-descriptions.ftl159
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/am-copies.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/am-im.ftl18
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/application-manager.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/attachment-reminder.ftl21
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/colors.ftl36
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/connection.ftl88
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/cookies.ftl44
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/dock-options.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/fonts.ftl134
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/languages.ftl33
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/new-tag.ftl13
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/notifications.ftl29
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/offline.ftl43
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/passwordManager.ftl83
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/permissions.ftl43
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/preferences.ftl769
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/receipts.ftl39
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/sync-dialog.ftl11
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/preferences/system-integration.ftl39
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/shortcuts.ftl96
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/syncAccounts.ftl28
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/treeView.ftl18
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/troubleshootMode.ftl33
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbar.ftl100
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbarItems.ftl157
-rw-r--r--thunderbird-l10n/fi/localization/fi/messenger/viewSource.ftl19
-rw-r--r--thunderbird-l10n/fi/localization/fi/security/certificates/certManager.ftl228
-rw-r--r--thunderbird-l10n/fi/localization/fi/security/certificates/deviceManager.ftl133
-rw-r--r--thunderbird-l10n/fi/localization/fi/security/pippki/pippki.ftl103
-rw-r--r--thunderbird-l10n/fi/localization/fi/services/accounts.ftl8
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAbout.ftl9
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAddons.ftl492
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutCompat.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutGlean.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutHttpsOnlyError.ftl30
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutLogging.ftl41
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutMozilla.ftl11
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl68
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPerformance.ftl67
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPlugins.ftl43
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProcesses.ftl194
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProfiles.ftl74
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutReader.ftl52
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutRights.ftl36
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutServiceWorkers.ftl40
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutSupport.ftl411
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutTelemetry.ftl136
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutThirdParty.ftl69
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebauthn.ftl105
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebrtc.ftl312
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWindowsMessages.ftl19
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/abuseReports.ftl111
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/certviewer.ftl122
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/config.ftl55
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/about/url-classifier.ftl58
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/branding/accounts.ftl16
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/branding/brandings.ftl45
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/contentanalysis/contentanalysis.ftl25
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUI.ftl51
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUtils.ftl106
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/featuregates/features.ftl58
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/formautofill/formAutofill.ftl26
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/alert.ftl12
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/appPicker.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/browser-utils.ftl11
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/commonDialog.ftl21
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/contextual-identity.ftl29
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/cookieBannerHandling.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/createProfileWizard.ftl53
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/cspErrors.ftl32
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/datepicker.ftl50
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/datetimebox.ftl42
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/extensionPermissions.ftl33
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/extensions.ftl105
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/handlerDialog.ftl70
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/htmlForm.ftl14
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/mozCard.ftl3
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/mozFiveStar.ftl9
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/mozMessageBar.ftl7
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/mozSupportLink.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/notification.ftl16
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/popupnotification.ftl10
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/processTypes.ftl61
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/profileDowngrade.ftl18
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/profileSelection.ftl38
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/resetProfile.ftl15
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/resistFingerPrinting.ftl6
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl28
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/tabprompts.ftl13
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl64
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/timepicker.ftl3
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/tree.ftl6
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/unknownContentType.ftl42
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/videocontrols.ftl71
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/global/wizard.ftl37
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/intl/languageNames.ftl215
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/intl/regionNames.ftl280
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/main-window/autocomplete.ftl23
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/main-window/findbar.ftl76
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/neterror/certError.ftl141
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/neterror/netError.ftl147
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/neterror/nsserrors.ftl349
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/passwordmgr/passwordmgr.ftl39
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/payments/payments.ftl51
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/pdfviewer/viewer.ftl384
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/pictureinpicture/pictureinpicture.ftl86
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/preferences/preferences.ftl39
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/printing/printDialogs.ftl112
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/printing/printPreview.ftl73
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/printing/printUI.ftl148
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/reportBrokenSite/reportBrokenSite.ftl3
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/updates/backgroundupdate.ftl5
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/updates/elevation.ftl22
-rw-r--r--thunderbird-l10n/fi/localization/fi/toolkit/updates/history.ftl29
-rw-r--r--thunderbird-l10n/fi/manifest.json56
518 files changed, 40729 insertions, 0 deletions
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/branding/brand.dtd b/thunderbird-l10n/fi/chrome/fi/locale/branding/brand.dtd
new file mode 100644
index 0000000000..4d59bbbc57
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/branding/brand.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY brandShortName "Thunderbird">
+<!ENTITY brandShorterName "Thunderbird">
+<!ENTITY brandFullName "Mozilla Thunderbird">
+<!-- LOCALIZATION NOTE (brandProductName):
+ This brand name can be used in messages where the product name needs to
+ remain unchanged across different versions (Daily, Beta, etc.). -->
+<!ENTITY brandProductName "Thunderbird">
+<!ENTITY vendorShortName "Mozilla">
+<!ENTITY trademarkInfo.part1 "Mozilla Thunderbird ja Thunderbird-logot
+ ovat Mozilla Foundationin tavaramerkkejä.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/branding/brand.properties b/thunderbird-l10n/fi/chrome/fi/locale/branding/brand.properties
new file mode 100644
index 0000000000..9dd5011219
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/branding/brand.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+brandShortName=Thunderbird
+brandShorterName=Thunderbird
+brandFullName=Mozilla Thunderbird
+vendorShortName=Mozilla
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/alerts/alert.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/alerts/alert.properties
new file mode 100644
index 0000000000..37d4d5c586
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/alerts/alert.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(closeButton.title): Used as the close button text for web notifications on OS X.
+# This should ideally match the string that OS X uses for the close button on alert-type
+# notifications. OS X will truncate the value if it's too long.
+closeButton.title = Sulje
+# LOCALIZATION NOTE(actionButton.label): Used as the button label to provide more actions on OS X notifications. OS X will truncate this if it's too long.
+actionButton.label = …
+# LOCALIZATION NOTE(webActions.disableForOrigin.label): %S is replaced
+# with the hostname origin of the notification.
+webActions.disableForOrigin.label = Poista ilmoitukset käytöstä sivustolta %S
+
+# LOCALIZATION NOTE(source.label): Used to show the URL of the site that
+# sent the notification (e.g., "via mozilla.org"). "%1$S" is the source host
+# and port.
+source.label=sivustolta %1$S
+webActions.settings.label = Ilmoitusten asetukset
+
+# LOCALIZATION NOTE(pauseNotifications.label): %S is replaced with the
+# brandShortName of the application.
+pauseNotifications.label = Älä näytä ilmoituksia ennen kuin %S uudelleenkäynnistetään
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/autoconfig/autoconfig.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..dae58e3323
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/autoconfig/autoconfig.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+readConfigTitle =Asetusvirhe
+readConfigMsg =Asetustiedoston lukeminen epäonnistui. Ota yhteys järjestelmänvalvojaasi.
+
+autoConfigTitle =AutoConfig-hälytys
+autoConfigMsg =Netscape.cfg/AutoConfig epäonnistui. Ota yhteyttä järjestelmänvalvojaasi. \n Virhe: %S epäonnistui:
+
+emailPromptTitle =Sähköpostiosoite
+emailPromptMsg =Anna sähköpostiosoitteesi
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-alarms.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..b88bc13cc1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-alarms.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (reminderCustomTitle):
+# %1$S = unit, %2$S = reminderCustomOrigin
+# Example: "3 minutes" "before the task starts"
+reminderCustomTitle=%2$S on %1$S
+reminderTitleAtStartEvent=Hetki, jolloin tapahtuma alkaa
+reminderTitleAtStartTask=Hetki, jolloin tehtävä alkaa
+reminderTitleAtEndEvent=Hetki, jolloin tapahtuma päättyy
+reminderTitleAtEndTask=Hetki, jolloin tehtävä päättyy
+
+# LOCALIZATION NOTE (reminderSnoozeOkA11y)
+# This string is not seen in the UI, it is read by screen readers when the user
+# focuses the "OK" button in the "Snooze for..." popup of the alarm dialog.
+# %1$S = any of unit*
+reminderSnoozeOkA11y=Lykkää muistutusta %1$S
+
+reminderCustomOriginBeginBeforeEvent=Tapahtuman alkuun
+reminderCustomOriginBeginAfterEvent=Tapahtuman alusta
+reminderCustomOriginEndBeforeEvent=Tapahtuman loppuun on
+reminderCustomOriginEndAfterEvent=Tapahtuman lopusta
+reminderCustomOriginBeginBeforeTask=Tehtävän alkuun
+reminderCustomOriginBeginAfterTask=Tehtävän alusta
+reminderCustomOriginEndBeforeTask=Tehtävän loppuun
+reminderCustomOriginEndAfterTask=Tehtävän lopusta
+
+reminderErrorMaxCountReachedEvent=Valitussa kalenterissa on rajoituksena #1 muistutus tapahtumaa kohti.;Valitussa kalenterissa on rajoituksena #1 muistutusta tapahtumaa kohti.
+reminderErrorMaxCountReachedTask=Valitussa kalenterissa on rajoituksena #1 muistutus tehtävää kohti.;Valitussa kalenterissa on rajoituksena #1 muistutusta tehtävää kohti.
+
+# LOCALIZATION NOTE (reminderReadonlyNotification)
+# This notification will be presented in the alarm dialog if reminders for not
+# writable items/calendars are displayed.
+# %1$S - localized value of calendar.alarm.snoozeallfor.label (defined in calendar.dtd)
+reminderReadonlyNotification=Vain luku -kalenterien muistutusta ei tällä hetkellä voi lykätä, ainoastaan lopettaa. '%1$S'-painike lykkää ainoastaan muokattavien kalenterien muistutuksia.
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=Vain luku -kalenterien muistutusten lykkäämistä ei tueta
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog-attendees.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..e351a400ed
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog-attendees.properties
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+event.attendee.role.required = Välttämätön osallistuja
+event.attendee.role.optional = Mahdollinen osallistuja
+event.attendee.role.nonparticipant = Ei osallistuva
+event.attendee.role.chair = Puheenjohtaja
+event.attendee.role.unknown = Tuntematon osallistuja (%1$S)
+
+event.attendee.usertype.individual = Yksittäinen henkilö
+event.attendee.usertype.group = Ryhmä
+event.attendee.usertype.resource = Resurssi
+event.attendee.usertype.room = Huone
+event.attendee.usertype.unknown = Tuntematon tyyppi (%1$S)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..6bc4fb34fb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY event.title.label "Muokkaa merkintää" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "Kesto pysyy samana muutettaessa päättymispäivää">
+<!ENTITY event.dialog.keepDurationButton.accesskey "K">
+
+<!ENTITY newevent.from.label "Alkaa" >
+<!ENTITY newevent.to.label "Päättyy" >
+
+<!ENTITY newevent.status.label "Tila" >
+<!ENTITY newevent.status.accesskey "T" >
+<!ENTITY newevent.eventStatus.none.label "Ei määritetty" >
+<!ENTITY newevent.eventStatus.none.accesskey "E" >
+<!ENTITY newevent.todoStatus.none.label "Ei määritetty" >
+<!ENTITY newevent.eventStatus.cancelled.label "Peruttu" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "K" >
+<!ENTITY newevent.todoStatus.cancelled.label "Peruttu" >
+<!ENTITY newevent.status.tentative.label "Alustava" >
+<!ENTITY newevent.status.tentative.accesskey "t" >
+<!ENTITY newevent.status.confirmed.label "Vahvistettu" >
+<!ENTITY newevent.status.confirmed.accesskey "V" >
+<!ENTITY newevent.status.needsaction.label "Tarvitsee toimintaa" >
+<!ENTITY newevent.status.inprogress.label "Käynnissä" >
+<!ENTITY newevent.status.completed.label "Valmistui" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#37; valmiina">
+
+<!-- LOCALIZATON NOTE(event.attendees.notify.label,event.attendees.notifyundisclosed.label,
+ event.attendees.disallowcounter.label)
+ - These three labels are displayed side by side in the event dialog, make sure
+ - they still fit in. -->
+<!ENTITY event.attendees.notify.label "Ilmoita osallistujille">
+<!ENTITY event.attendees.notify.accesskey "i">
+<!ENTITY event.attendees.notifyundisclosed.label "Erilliset kutsut jokaiselle osallistujalle">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "j">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "Jos tämä on valittu, niin jokaiselle osallistujalle lähetetään yksi sähköpostiviesti. Jokaisessa kutsussa on mainittu vain osallistuja, joka on vastaanottanut sen. Näin muiden osallistujien henkilöllisyydet eivät paljastu.">
+<!ENTITY event.attendees.disallowcounter.label "Kiellä vastaehdotukset">
+<!ENTITY event.attendees.disallowcounter.accesskey "K">
+<!ENTITY event.attendees.disallowcounter.tooltip "Osoittaa, että et hyväksy vastaehdotuksia">
+
+<!-- Keyboard Shortcuts -->
+<!ENTITY event.dialog.new.event.key2 "I">
+<!ENTITY event.dialog.new.task.key2 "D">
+<!ENTITY event.dialog.new.message.key2 "N">
+<!ENTITY event.dialog.close.key "W">
+<!ENTITY event.dialog.save.key "S">
+<!ENTITY event.dialog.saveandclose.key "L">
+<!ENTITY event.dialog.print.key "P">
+<!ENTITY event.dialog.undo.key "Z">
+<!ENTITY event.dialog.redo.key "Y">
+<!ENTITY event.dialog.cut.key "X">
+<!ENTITY event.dialog.copy.key "C">
+<!ENTITY event.dialog.paste.key "V">
+<!ENTITY event.dialog.select.all.key "A">
+
+<!-- Menubar -->
+<!ENTITY event.menu.item.new.label "Uusi">
+<!ENTITY event.menu.item.new.accesskey "U">
+<!ENTITY event.menu.item.new.event.label "Tapahtuma">
+<!ENTITY event.menu.item.new.event.accesskey "T">
+<!ENTITY event.menu.item.new.task.label "Tehtävä">
+<!ENTITY event.menu.item.new.task.accesskey "e">
+<!ENTITY event.menu.item.new.message.label "Viesti">
+<!ENTITY event.menu.item.new.message.accesskey "V">
+<!ENTITY event.menu.item.new.contact.label "Osoitekirjan yhteyshenkilö">
+<!ENTITY event.menu.item.new.contact.accesskey "O">
+<!ENTITY event.menu.item.close.label "Sulje">
+<!ENTITY event.menu.item.close.accesskey "S">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.save.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a dialog window.
+ - event.menu.item.save.tab.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.save.label "Tallenna">
+<!ENTITY event.menu.item.save.accesskey "T">
+<!ENTITY event.menu.item.save.tab.accesskey "a">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.saveandclose.accesskey is used for "Save and Close"
+ - menu item when editing events/tasks in a dialog window.
+ - event.menu.item.saveandclose.tab.accesskey is used for "Save and Close"
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.saveandclose.label "Tallenna ja sulje">
+<!ENTITY event.menu.item.saveandclose.accesskey "l">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "s">
+
+<!ENTITY event.menu.item.delete.label "Poista…">
+<!ENTITY event.menu.item.delete.accesskey "P">
+<!ENTITY event.menu.item.page.setup.label "Sivun asetukset">
+<!ENTITY event.menu.item.page.setup.accesskey "e">
+<!ENTITY event.menu.item.print.label "Tulosta">
+<!ENTITY event.menu.item.print.accesskey "o">
+
+<!ENTITY event.menu.edit.label "Muokkaa">
+<!ENTITY event.menu.edit.accesskey "M">
+<!ENTITY event.menu.edit.undo.label "Kumoa">
+<!ENTITY event.menu.edit.undo.accesskey "m">
+<!ENTITY event.menu.edit.redo.label "Tee uudelleen">
+<!ENTITY event.menu.edit.redo.accesskey "T">
+<!ENTITY event.menu.edit.cut.label "Leikkaa">
+<!ENTITY event.menu.edit.cut.accesskey "L">
+<!ENTITY event.menu.edit.copy.label "Kopioi">
+<!ENTITY event.menu.edit.copy.accesskey "K">
+<!ENTITY event.menu.edit.paste.label "Liitä">
+<!ENTITY event.menu.edit.paste.accesskey "i">
+<!ENTITY event.menu.edit.select.all.label "Valitse kaikki">
+<!ENTITY event.menu.edit.select.all.accesskey "V">
+
+<!ENTITY event.menu.view.label "Näytä">
+<!ENTITY event.menu.view.accesskey "N">
+<!ENTITY event.menu.view.toolbars.label "Työkalupalkit">
+<!ENTITY event.menu.view.toolbars.accesskey "T">
+<!ENTITY event.menu.view.toolbars.event.label "Tapahtumapalkki">
+<!ENTITY event.menu.view.toolbars.event.accesskey "T">
+<!ENTITY event.menu.view.toolbars.customize.label "Muokkaa…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "M">
+<!ENTITY event.menu.view.showlink.label "Näytä aiheeseen liittyvä linkki">
+<!ENTITY event.menu.view.showlink.accesskey "N">
+
+<!ENTITY event.menu.options.label "Valinnat">
+<!ENTITY event.menu.options.accesskey "V">
+<!ENTITY event.menu.options.attendees.label "Kutsu osallistujia…">
+<!ENTITY event.menu.options.attendees.accesskey "K">
+<!ENTITY event.menu.options.timezone2.label "Näytä aikavyöhykkeet">
+<!ENTITY event.menu.options.timezone2.accesskey "a">
+<!ENTITY event.menu.options.priority2.label "Tärkeysaste">
+<!ENTITY event.menu.options.priority2.accesskey "T">
+<!ENTITY event.menu.options.priority.notspecified.label "Ei määritetty">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "E">
+<!ENTITY event.menu.options.priority.low.label "Matala">
+<!ENTITY event.menu.options.priority.low.accesskey "M">
+<!ENTITY event.menu.options.priority.normal.label "Normaali">
+<!ENTITY event.menu.options.priority.normal.accesskey "N">
+<!ENTITY event.menu.options.priority.high.label "Korkea">
+<!ENTITY event.menu.options.priority.high.accesskey "K">
+<!ENTITY event.menu.options.privacy.label "Tietosuoja">
+<!ENTITY event.menu.options.privacy.accesskey "s">
+<!ENTITY event.menu.options.privacy.public.label "Julkinen tapahtuma">
+<!ENTITY event.menu.options.privacy.public.accesskey "J">
+<!ENTITY event.menu.options.privacy.confidential.label "Näytä vain aika ja päivämäärä">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "N">
+<!ENTITY event.menu.options.privacy.private.label "Yksityinen tapahtuma">
+<!ENTITY event.menu.options.privacy.private.accesskey "Y">
+<!ENTITY event.menu.options.show.time.label "Näytä aika muodossa">
+<!ENTITY event.menu.options.show.time.accesskey "t">
+<!ENTITY event.menu.options.show.time.busy.label "Varattu">
+<!ENTITY event.menu.options.show.time.busy.accesskey "V">
+<!ENTITY event.menu.options.show.time.free.label "Vapaa">
+<!ENTITY event.menu.options.show.time.free.accesskey "V">
+
+<!ENTITY event.invite.attendees.label "Kutsu osallistujia…">
+<!ENTITY event.invite.attendees.accesskey "K">
+<!ENTITY event.email.attendees.label "Kirjoita viesti kaikille osallistujille…">
+<!ENTITY event.email.attendees.accesskey "a">
+<!ENTITY event.email.tentative.attendees.label "Kirjoita viesti epävarmoille osallistujille…">
+<!ENTITY event.email.tentative.attendees.accesskey "u">
+<!ENTITY event.remove.attendees.label2 "Poista kaikki osallistujat">
+<!ENTITY event.remove.attendees.accesskey "k">
+<!ENTITY event.remove.attendee.label "Poista osallistuja">
+<!ENTITY event.remove.attendee.accesskey "o">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "Tallenna">
+<!ENTITY event.toolbar.saveandclose.label "Tallenna ja sulje">
+<!ENTITY event.toolbar.delete.label "Poista">
+<!ENTITY event.toolbar.attendees.label "Kutsu osallistujia">
+<!ENTITY event.toolbar.privacy.label "Tietosuoja">
+
+<!ENTITY event.toolbar.save.tooltip2 "Tallenna">
+<!ENTITY event.toolbar.saveandclose.tooltip "Tallenna ja sulje">
+<!ENTITY event.toolbar.delete.tooltip "Poista">
+<!ENTITY event.toolbar.attendees.tooltip "Kutsu henkilöitä">
+<!ENTITY event.toolbar.attachments.tooltip "Lisää liitetiedostoja">
+<!ENTITY event.toolbar.privacy.tooltip "Muuta tietosuoja-asetusta">
+<!ENTITY event.toolbar.priority.tooltip "Muuta tärkeysastetta">
+<!ENTITY event.toolbar.status.tooltip "Muuta tilaa">
+<!ENTITY event.toolbar.freebusy.tooltip "Muuta vapaa/varattu -aikaa">
+
+<!-- Counter box -->
+<!-- LOCALIZATON NOTE(counter.button.*)
+ - This is only visible in the UI if you have received a counterproposal before and are going to
+ - reschedule the event from the imipbar in the email view. Clicking on the buttons will only
+ - populate the form fields in the dialog, there's no other immediate action on clicking like with
+ - the imip bar. Rescheduling will happen after clicking on save&close as usual. This screenshot
+ - illustrates how it might look like: https://bugzilla.mozilla.org/attachment.cgi?id=8810121 -->
+<!ENTITY counter.button.proposal.label "Käytä ehdotusta">
+<!ENTITY counter.button.proposal.accesskey "e">
+<!ENTITY counter.button.proposal.tooltip2 "Tapahtuman kentät päivitetään vastaehdotuksen tiedoilla. Vain tallentaminen lisämuutoksilla tai ilman tiedottaa myös muita osallistujia">
+<!ENTITY counter.button.original.label "Käytä alkuperäisiä tietoja">
+<!ENTITY counter.button.original.accesskey "l">
+<!ENTITY counter.button.original.tooltip2 "Tapahtuman kentissä säilytetään alkuperäiset, ennen vastaehdotuksen lähettämistä olleet tiedot">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Otsikko:" >
+<!ENTITY event.title.textbox.accesskey "k">
+<!ENTITY event.location.label "Osoite:" >
+<!ENTITY event.location.accesskey "s">
+<!ENTITY event.categories.label "Tyyppi:">
+<!ENTITY event.categories.accesskey "y">
+<!ENTITY event.categories.textbox.label "Lisää uusi tapahtumatyyppi" >
+<!ENTITY event.calendar.label "Kalenteri:" >
+<!ENTITY event.calendar.accesskey "e">
+<!ENTITY event.attendees.label "Osallistujat:" >
+<!ENTITY event.attendees.accesskey "j">
+<!ENTITY event.alldayevent.label "Koko päivän tapahtuma" >
+<!ENTITY event.alldayevent.accesskey "p">
+<!ENTITY event.from.label "Alkaa:" >
+<!ENTITY event.from.accesskey "A">
+<!ENTITY task.from.label "Alkaa:" >
+<!ENTITY task.from.accesskey "A">
+<!ENTITY event.to.label "Päättyy:" >
+<!ENTITY event.to.accesskey "ä">
+<!ENTITY task.to.label "Valmis:" >
+<!ENTITY task.to.accesskey "l">
+<!ENTITY task.status.label "Tila:" >
+<!ENTITY task.status.accesskey "T">
+<!ENTITY event.repeat.label "Toista:" >
+<!ENTITY event.repeat.accesskey "i">
+<!ENTITY event.until.label "Kunnes:">
+<!ENTITY event.until.accesskey "n">
+<!ENTITY event.reminder.label "Muistuta:" >
+<!ENTITY event.reminder.accesskey "u">
+<!ENTITY event.description.label "Kuvaus:" >
+<!ENTITY event.description.accesskey "v">
+<!ENTITY event.attachments.label "Liitteet:" >
+<!ENTITY event.attachments.accesskey "L" >
+<!ENTITY event.attachments.menubutton.label "Lisää liite">
+<!ENTITY event.attachments.menubutton.accesskey "L">
+<!ENTITY event.attachments.url.label "Verkkosivu…">
+<!ENTITY event.attachments.url.accesskey "V">
+<!ENTITY event.attachments.popup.remove.label "Poista" >
+<!ENTITY event.attachments.popup.remove.accesskey "P" >
+<!ENTITY event.attachments.popup.open.label "Avaa" >
+<!ENTITY event.attachments.popup.open.accesskey "A" >
+<!ENTITY event.attachments.popup.removeAll.label "Poista kaikki" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "k" >
+<!ENTITY event.attachments.popup.attachPage.label "Lisää verkkosivu liitteeksi…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "L" >
+<!ENTITY event.url.label "Aiheeseen liittyvä linkki:" >
+<!ENTITY event.priority2.label "Tärkeysaste:">
+
+<!ENTITY event.reminder.none.label "Ei muistutusta " >
+<!ENTITY event.reminder.0minutes.before.label "0 minuuttia ennen" >
+<!ENTITY event.reminder.5minutes.before.label "5 minuuttia ennen" >
+<!ENTITY event.reminder.15minutes.before.label "15 minuuttia ennen" >
+<!ENTITY event.reminder.30minutes.before.label "30 minuuttia ennen" >
+<!ENTITY event.reminder.1hour.before.label "1 tunti ennen" >
+<!ENTITY event.reminder.2hours.before.label "2 tuntia ennen" >
+<!ENTITY event.reminder.12hours.before.label "12 tuntia ennen" >
+<!ENTITY event.reminder.1day.before.label "1 päivä ennen" >
+<!ENTITY event.reminder.2days.before.label "2 päivää ennen" >
+<!ENTITY event.reminder.1week.before.label "1 viikko ennen" >
+<!ENTITY event.reminder.custom.label "Oma…" >
+
+<!ENTITY event.reminder.multiple.label "Useita muistutuksia…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "Aika:">
+<!ENTITY event.statusbarpanel.privacy.label "Tietosuoja:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "Muokkaa toistuvuutta">
+
+<!ENTITY event.repeat.does.not.repeat.label "Ei toistu">
+<!ENTITY event.repeat.daily.label "Joka päivä">
+<!ENTITY event.repeat.weekly.label "Joka kuukausi">
+<!ENTITY event.repeat.every.weekday.label "Joka arkipäivä">
+<!ENTITY event.repeat.bi.weekly.label "Joka toinen viikko">
+<!ENTITY event.repeat.monthly.label "Joka kuukausi">
+<!ENTITY event.repeat.yearly.label "Joka vuosi">
+<!ENTITY event.repeat.custom.label "Oma…">
+
+<!ENTITY event.recurrence.pattern.label "Toistuvuuskaava">
+<!ENTITY event.recurrence.occurs.label "Toista" >
+<!ENTITY event.recurrence.day.label "kerran päivässä" >
+<!ENTITY event.recurrence.week.label "kerran viikossa" >
+<!ENTITY event.recurrence.month.label "kerran kuussa" >
+<!ENTITY event.recurrence.year.label "kerran vuodessa" >
+
+<!ENTITY event.recurrence.pattern.every.label "Aina" >
+<!ENTITY repeat.units.days.both "päivän välein" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "Joka arkipäivä" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "" >
+<!ENTITY repeat.units.weeks.both "viikon välein" >
+<!ENTITY event.recurrence.on.label "" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "" >
+<!ENTITY repeat.units.months.both "kuukauden välein" >
+<!ENTITY event.recurrence.monthly.every.label "Jokaisena" >
+<!ENTITY event.recurrence.monthly.first.label "Ensimmäisenä">
+<!ENTITY event.recurrence.monthly.second.label "Toisena">
+<!ENTITY event.recurrence.monthly.third.label "Kolmantena">
+<!ENTITY event.recurrence.monthly.fourth.label "Neljäntenä">
+<!ENTITY event.recurrence.monthly.fifth.label "Viidentenä">
+<!ENTITY event.recurrence.monthly.last.label "Viimeisenä">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "sunnuntaina" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "maanantaina" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "tiistaina" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "keskiviikkona" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "torstaina" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "perjantaina" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "lauantaina" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "päivänä">
+<!ENTITY event.recurrence.repeat.recur.label "">
+
+<!ENTITY event.recurrence.every.label "" >
+<!ENTITY repeat.units.years.both "vuoden välein" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "" >
+
+<!-- LOCALIZATON NOTE
+ Some languages use a preposition when describing dates:
+ Portuguese: 6 de Setembro
+ English: 6 [of] September
+ event.recurrence.pattern.yearly.of.label is "of" in
+ Edit recurrence window -> Recurrence pattern -> Repeat yearly
+-->
+<!ENTITY event.recurrence.pattern.yearly.of.label "" >
+
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "tammikuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "helmikuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "maaliskuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "huhtikuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "toukokuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "kesäkuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "heinäkuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "elokuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "syyskuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "lokakuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "marraskuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "joulukuuta" >
+<!ENTITY event.recurrence.yearly.every.label "Jokaisena">
+<!ENTITY event.recurrence.yearly.first.label "Ensimmäisenä">
+<!ENTITY event.recurrence.yearly.second.label "Toisena">
+<!ENTITY event.recurrence.yearly.third.label "Kolmantena">
+<!ENTITY event.recurrence.yearly.fourth.label "Neljäntenä">
+<!ENTITY event.recurrence.yearly.fifth.label "Viidentenä">
+<!ENTITY event.recurrence.yearly.last.label "Viimeisenä">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "sunnuntaina" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "maanantaina" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "tiistaina" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "keskiviikkona" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "torstaina" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "perjantaina" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "lauantaina" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "päivänä" >
+<!ENTITY event.recurrence.of.label "" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "tammikuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "helmikuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "maaliskuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "huhtikuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "toukokuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "kesäkuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "heinäkuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "elokuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "syyskuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "lokakuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "marraskuuta" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "joulukuuta" >
+
+<!ENTITY event.recurrence.range.label "Toistuvuuden takaraja">
+<!ENTITY event.recurrence.forever.label "Ei päättymispäivää" >
+<!ENTITY event.recurrence.repeat.for.label "Luo" >
+<!ENTITY event.recurrence.appointments.label "tapahtuma(a)" >
+<!ENTITY event.repeat.until.label "Toista seuraavaan päivään asti:" >
+<!ENTITY event.recurrence.preview.label "Esikatselu">
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "Kutsu osallistujia">
+<!ENTITY event.organizer.label "Järjestäjä">
+<!ENTITY event.freebusy.suggest.slot "Ehdota aikaa:">
+<!ENTITY event.freebusy.button.next.slot "Seuraava aika">
+<!ENTITY event.freebusy.button.previous.slot "Edellinen aika">
+<!ENTITY event.freebusy.zoom "Suurenna:">
+<!ENTITY event.freebusy.legend.free "Vapaa" >
+<!ENTITY event.freebusy.legend.busy "Varattu" >
+<!ENTITY event.freebusy.legend.busy_tentative "Alustava" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Vapaalla" >
+<!ENTITY event.freebusy.legend.unknown "Ei tiedossa" >
+<!ENTITY event.attendee.role.required "Välttämätön osallistuja">
+<!ENTITY event.attendee.role.optional "Mahdollinen osallistuja">
+<!ENTITY event.attendee.role.chair "Puheenjohtaja">
+<!ENTITY event.attendee.role.nonparticipant "Ei osallistuva">
+<!ENTITY event.attendee.usertype.individual "Yksittäinen henkilö">
+<!ENTITY event.attendee.usertype.group "Ryhmä">
+<!ENTITY event.attendee.usertype.resource "Resurssi">
+<!ENTITY event.attendee.usertype.room "Huone">
+<!ENTITY event.attendee.usertype.unknown "Tuntematon">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "Määritä aikavyöhyke">
+<!ENTITY event.timezone.custom.label "Muut aikavyöhykkeet…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "Yleistiedot">
+<!ENTITY read.only.title.label "Otsikko:">
+<!ENTITY read.only.calendar.label "Kalenteri:">
+<!ENTITY read.only.event.start.label "Aloitusaika:">
+<!ENTITY read.only.task.start.label "Aloitusaika:">
+<!ENTITY read.only.event.end.label "Lopetusaika:">
+<!ENTITY read.only.task.due.label "Valmis:">
+<!ENTITY read.only.repeat.label "Toista:">
+<!ENTITY read.only.location.label "Sijainti:">
+<!ENTITY read.only.category.label "Kategoria:">
+<!ENTITY read.only.organizer.label "Järjestäjä:">
+<!ENTITY read.only.reminder.label "Muistuta:">
+<!ENTITY read.only.attachments.label "Liitteet:">
+<!ENTITY read.only.attendees.label "Osallistujat">
+<!ENTITY read.only.description.label "Kuvaus">
+<!ENTITY read.only.link.label "Aiheeseen liittyvä linkki">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "Tallenna ja sulje">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Tallenna muutokset ja sulje ikkuna muuttamatta osallistumisen tilaa ja lähettämättä vastausta">
+<!ENTITY summary.dialog.accept.label "Hyväksy">
+<!ENTITY summary.dialog.accept.tooltiptext "Hyväksy kutsu">
+<!ENTITY summary.dialog.tentative.label "Alustava">
+<!ENTITY summary.dialog.tentative.tooltiptext "Hyväksy alustavasti">
+<!ENTITY summary.dialog.decline.label "Kieltäydy">
+<!ENTITY summary.dialog.decline.tooltiptext "Kieltäydy kutsusta">
+<!ENTITY summary.dialog.dontsend.label "Älä lähetä vastausta">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Muuta osallistumisstatustasi lähettämättä vastausta järjestäjälle ja sulje ikkuna">
+<!ENTITY summary.dialog.send.label "Lähetä vastaus nyt">
+<!ENTITY summary.dialog.send.tooltiptext "Lähetä vastaus järjestäjälle ja sulje ikkuna">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..5da5e5a329
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-event-dialog.properties
@@ -0,0 +1,541 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dailyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Daily repeat rules
+# #1 - number
+# e.g. "every 4 days"
+dailyEveryNth=joka päivä;joka #1. päivä
+repeatDetailsRuleDaily4=joka arkipäivä
+
+# LOCALIZATION NOTE (weeklyNthOnNounclass...)
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday (one or more)
+# #2 - week interval
+# e.g. "every 3 weeks on Tuesday, Wednesday and Thursday
+weeklyNthOnNounclass1=joka %1$S;joka #2. viikon %1$S
+weeklyNthOnNounclass2=joka %1$S;joka #2. viikon %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=joka viikko;joka #1. viikko
+
+# LOCALIZATION NOTE ('repeatDetailsDay...' and 'repeatDetailsDay...Nounclass'):
+# Week days names and week days noun classes (feminine/masculine grammatical
+# gender) for languages that need different localization when weekdays nouns
+# have different noun classes (genders).
+# For every weekday, in 'repeatDetailsDay...Nounclass' strings write:
+# "nounclass1" for languages with grammatical genders -> MASCULINE gender;
+# for languages with noun classes -> a noun class;
+# for languages without noun classes or grammatical gender.
+#
+# "nounclass2" for languages with grammatical genders -> FEMININE gender;
+# for languages with noun classes -> a different noun class.
+#
+# "nounclass3", "nounclass4" and so on for languages that need more than two
+# noun classes for weekdays. In this case add corresponding
+# rule string with "Nounclass..." suffix and ordinal string
+# "repeatOrdinalxNounclass..."
+# Will be used rule strings with "Nounclass..." suffix corresponding to the
+# following strings if there is a weekday in the rule string.
+repeatDetailsDay1=sunnuntai
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=maanantai
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=tiistai
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=keskiviikko
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=torstai
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=perjantai
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=lauantai
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=ja
+
+# LOCALIZATION NOTE (monthlyRuleNthOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of weekdays with ordinal, article and noun class/gender
+# (ordinal and weekday of every element in the list follow the order
+# and the rule of ordinalWeekdayOrder string)
+# #2 - interval
+# e.g. "the first Monday and the last Friday of every 3 months"
+monthlyRuleNthOfEveryNounclass1=joka kuun %1$S;joka #2. kuun %1$S
+monthlyRuleNthOfEveryNounclass2=joka kuun %1$S;joka #2. kuun %1$S
+
+# LOCALIZATION NOTE (ordinalWeekdayOrder):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# This string allows to change the order of the elements "ordinal" and
+# "weekday" (or to insert a word between them) for the argument %1$S of the
+# string monthlyRuleNthOfEveryNounclass...
+# Without changing this string, the order is that one required from most
+# languages: ordinal + weekday (e.g. "'the first' 'Monday' of every 2 months").
+# %1$S - ordinal with article
+# %2$S - weekday noun
+# e.g. "'the first' 'Monday'"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+ordinalWeekdayOrder=%1$S %2$S
+
+# LOCALIZATION NOTE (monthlyEveryOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of single weekdays and/or weekdays with ordinal, article and
+# noun class/gender when rule contains also specific day in the month
+# #2 - interval
+# e.g. "every Monday, Tuesday and the second Sunday of every month"
+monthlyEveryOfEveryNounclass1=joka kuun jokainen %1$S; joka #2. kuun jokainen %1$S
+monthlyEveryOfEveryNounclass2=joka kuun jokainen %1$S; joka #2. kuun jokainen %1$S
+
+# LOCALIZATION NOTE (monthlyDaysOfNth_day):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month or a sequence of days of month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties) separated with commas;
+# e.g. "days 3, 6 and 9" or "days 3rd, 6th and 9th"
+monthlyDaysOfNth_day=%1$S. päivä;%1$S päivä
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=joka kuun %1$S;joka #2. kuun %1$S
+
+# LOCALIZATION NOTE (monthlyLastDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month
+# #2 - month interval
+# e.g. "the last day of every 3 months"
+monthlyLastDayOfNth=kuun viimeinen päivä;joka #1. kuun viimeinen päivä
+
+# LOCALIZATION NOTE (monthlyEveryDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# #2 - month interval
+# e.g. "every day of the month every 4 months"
+monthlyEveryDayOfNth=joka kuun jokainen päivä;joka #2. kuun jokainen päivä
+
+# LOCALIZATION NOTE (repeatOrdinal...Nounclass...):
+# Ordinal numbers nouns for every noun class (grammatical genders) of weekdays
+# considered in 'repeatDetailsDayxNounclass' strings. For languages that need
+# localization according to genders or noun classes.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add 'repeatOrdinal...Nounclass' strings with suffix 3, 4 and so on for
+# languages with more than two noun classes for weekdays. In this case
+# must be added corresponding rule strings with 'Nounclass...' suffix and
+# corresponding values "nounclass..." must be written in
+# 'repeatDetailsDayxNounclass' strings.
+repeatOrdinal1Nounclass1=ensimmäinen
+repeatOrdinal2Nounclass1=toinen
+repeatOrdinal3Nounclass1=kolmas
+repeatOrdinal4Nounclass1=neljäs
+repeatOrdinal5Nounclass1=viides
+repeatOrdinal-1Nounclass1=viimeinen
+repeatOrdinal1Nounclass2=ensimmäinen
+repeatOrdinal2Nounclass2=toinen
+repeatOrdinal3Nounclass2=kolmas
+repeatOrdinal4Nounclass2=neljäs
+repeatOrdinal5Nounclass2=viides
+repeatOrdinal-1Nounclass2=viimeinen
+
+# LOCALIZATION NOTE (yearlyNthOn):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# %1$S - month name
+# %2$S - day of month possibly followed by an ordinal symbol (depending on the string
+# dayOrdinalSymbol in dateFormat.properties)
+# #3 - yearly interval
+# e.g. "every 3 years on December 14"
+# "every 2 years on December 8th"
+yearlyNthOn=joka %1$S %2$S.;joka #3. vuoden %1$S %2$S.
+
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=joka %3$Sn %1$S %2$S;joka #4. vuoden %3$Sn %1$S %2$S
+yearlyNthOnNthOfNounclass2=joka %3$Sn %1$S %2$S;joka #4. vuoden %3$Sn %1$S %2$S
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# %2$S - month
+# #3 - yearly interval
+# e.g. "every Thursday of March"
+# e.g "every 3 years on every Thursday of March"
+yearlyOnEveryNthOfNthNounclass1=%2$Sn jokainen %1$S;joka #3. vuoden %2$Sn jokainen %1$S
+yearlyOnEveryNthOfNthNounclass2=%2$Sn jokainen %1$S;joka #3. vuoden %2$Sn jokainen %1$S
+
+#LOCALIZATION NOTE (yearlyEveryDayOf):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# This string describes part of a yearly rule which includes every day of a month.
+# %1$S - month
+# #2 - yearly interval
+# e.g. "every day of December"
+# e.g. "every 3 years every day of December"
+yearlyEveryDayOf=joka päivä %1$Sssa;joka #2. vuosi jokaisena päivänä %1$Sssa
+
+repeatDetailsMonth1=tammikuu
+repeatDetailsMonth2=helmikuu
+repeatDetailsMonth3=maaliskuu
+repeatDetailsMonth4=huhtikuu
+repeatDetailsMonth5=toukokuu
+repeatDetailsMonth6=kesäkuu
+repeatDetailsMonth7=heinäkuu
+repeatDetailsMonth8=elokuu
+repeatDetailsMonth9=syyskuu
+repeatDetailsMonth10=lokakuu
+repeatDetailsMonth11=marraskuu
+repeatDetailsMonth12=joulukuu
+
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# #5 - event occurence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times
+# from 5:00 PM to 6:00 PM"
+repeatCount=Tapahtuu %1$S\nvoimassa %2$S #5 kerran\n %3$S - %4$S.;Tapahtuu %1$S\nvoimassa %2$S #5 kertaa\n%3$S - %4$S.
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times"
+repeatCountAllDay=Tapahtuu %1$S\nvoimassa %2$S #3 kerran.;Tapahtuu %1$S\nvoimassa %2$S #3 kertaa.
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=Tapahtuu %1$S\nvoimassa %2$S - %3$S\n%4$S - %5$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009 until 1/1/2010"
+repeatDetailsUntilAllDay=Tapahtuu %1$S\nvoimassa %2$S - %3$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=Tapahtuu %1$S\nvoimassa %2$S\n%3$S - %4$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009"
+repeatDetailsInfiniteAllDay=Tapahtuu %1$S\nvoimassa %2$S.
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=viimeinen päivä
+
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the repeat details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=Saat lisätietoja painamalla tästä
+
+# LOCALIZATION NOTE (ruleTooComplexSummary):
+# This string is shown in the event summary dialog if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplexSummary=Toistuvuuden lisätiedot tuntemattomia
+
+# differences between the dialog for an Event or a Task
+newEvent=Uusi tapahtuma
+newTask=Uusi tehtävä
+itemMenuLabelEvent=Tapahtuma
+itemMenuAccesskeyEvent2=T
+itemMenuLabelTask=Tehtävä
+itemMenuAccesskeyTask2=T
+
+emailSubjectReply=Re: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=Määritä linkin sijainti
+enterLinkLocation=Kirjoita verkkosivun tai asiakirjan sijainti.
+
+summaryDueTaskLabel=Valmis:
+
+# Attach File Dialog
+attachViaFilelink=Tallenna käyttäen %1$S
+selectAFile=Valitse liitettävät tiedostot
+removeCalendarsTitle=Poista liitetiedostot
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=Haluatko varmasti poistaa yhden liitetiedoston?;Haluatko varmasti poistaa #1 liitetiedostoa?
+
+# Recurrence Dialog Widget Order
+# LOCALIZATION NOTE: You can change the order of below params
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal with article, %2$S - weekday
+# e.g. "the First Saturday"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+monthlyOrder=%1$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - day of month, %2$S - of, %3$S - month
+# e.g. "6 [of] September"
+# If you don't need %2$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder=%1$S %3$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - ordinal with article, %2$S - weekday, %3$S - of, %4$S - month
+# e.g. "the First Saturday of September"
+# If you don't need %3$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder2=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+pluralForWeekdays=false
+
+# LOCALIZATION NOTE (repeatDetailsDayxxxPlural):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# Weekdays in plural form used inside sentences like "every Monday" or
+# "every Sunday of May" etc. for languages that need them.
+# These plurals will be used inside the following rule strings only if string
+# 'pluralForWeekdays' (see above) is set to "true":
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+repeatDetailsDay1Plural=sunnuntai
+repeatDetailsDay2Plural=maanantai
+repeatDetailsDay3Plural=tiistai
+repeatDetailsDay4Plural=keskiviikko
+repeatDetailsDay5Plural=torstai
+repeatDetailsDay6Plural=perjantai
+repeatDetailsDay7Plural=lauantai
+
+# LOCALIZATION NOTE (eventRecurrenceForeverLabel):
+# Edit/New Event dialog -> datepicker that sets the until date.
+# For recurring rules that repeat forever, this labels appears in the
+# datepicker, below the minimonth, as an option for the until date.
+eventRecurrenceForeverLabel=Ikuisesti
+
+# LOCALIZATION NOTE (eventRecurrenceMonthlyLastDayLabel):
+# Edit dialog recurrence -> Monthly Recurrence pattern -> Monthly daypicker
+# The label on the monthly daypicker's last button that allows to select
+# the last day of the month inside a BYMONTHDAY rule.
+eventRecurrenceMonthlyLastDayLabel=Viimeinen päivä
+
+# LOCALIZATION NOTE (counterSummaryAccepted) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryAccepted=%1$S on hyväksynyt kutsun, mutta on tehnyt vastaehdotuksen:
+
+# LOCALIZATION NOTE (counterSummaryDeclined) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDeclined=%1$S on hylännyt kutsun, mutta tehnyt vastaehdotuksen:
+
+# LOCALIZATION NOTE (counterSummaryDelegated) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDelegated=%1$S on delegoinut kutsun, mutta on tehnyt vastaehdotuksen:
+
+# LOCALIZATION NOTE (counterSummaryNeedsAction) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryNeedsAction=%1$S ei ole päättänyt osallistumisesta ja on tehnyt vastaehdotuksen:
+
+# LOCALIZATION NOTE (counterSummaryTentative) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryTentative=%1$S on hyväksynyt kutsun vain alustavasti ja tehnyt vastaehdotuksen:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=Tämä on vastaehdotus tapahtuman aikaisempaan versioon.
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=Estit vastaehdotukset lähettäessäsi kutsua.
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=Olet hyväksynyt tämän kutsun
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=Olet alustavasti hyväksynyt tämän kutsun
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=Olet hylännyt tämän kutsun
+
+# LOCALIZATION NOTE (eventDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her participation to one
+# or more other participants (without attending / working on it his/herself)
+eventDelegated=Olet delegoinut tämän kutsun
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=Et ole vielä vastannut tähän kutsuun
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=Olet ilmoittanut osallistuvasi tähän tehtävään
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=Olet alustavasti ilmoittanut osallistuvasi tähän tehtävään
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=Olet hylännyt kutsun osallistua tähän tehtävään
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignement to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=Olet delegoinut osan tästä tehtävästä
+
+# LOCALIZATION NOTE (taskNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to the task assignment
+taskNeedsAction=Et ole vielä vastannut tähän tehtäväkutsuun
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=Olet aloittanut tämän delegoidun tehtävän työstämisen
+
+# LOCALIZATION NOTE (taskCompleted) - this will be displayed as notification
+# in the summary dialog if the user has completed the work on this assigned task
+taskCompleted=Olet suorittanut osuutesi tästä delegoidusta tehtävästä
+
+# LOCALIZATION NOTE (sendandcloseButtonLabel) - this is a runtime replacement for
+# event.toolbar.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonLabel=Lähetä ja sulje
+
+# LOCALIZATION NOTE (sendandcloseButtonTooltip) - this is a runtime replacement for
+# event.toolbar.saveandclose.tooltip in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonTooltip=Ilmoita osallistujille ja sulje
+
+# LOCALIZATION NOTE (saveandsendButtonLabel) - this is a runtime replacement for
+# event.toolbar.save.label2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonLabel=Tallenna ja lähetä
+
+# LOCALIZATION NOTE (saveandsendButtonTooltip) - this is a runtime replacement
+# for event.toolbar.save.tooltip2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonTooltip=Tallenna ja ilmoita osallistujille
+
+# LOCALIZATION NOTE (saveandsendMenuLabel) - this is a runtime replacement for
+# event.menu.item.save.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendMenuLabel=Tallenna ja lähetä
+
+# LOCALIZATION NOTE (sendandcloseMenuLabel) - this is a runtime replacement for
+# event.menu.item.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+sendandcloseMenuLabel=Lähetä ja sulje
+
+# LOCALIZATION NOTE (attendeesTabLabel) - this is a runtime replacement for
+# event.attendees.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attendee
+# %1$S - the number of attendee (1-n)
+attendeesTabLabel=Osallistujat (%1$S):
+
+# LOCALIZATION NOTE (attachmentsTabLabel) - this is a runtime replacement for
+# event.attachments.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attachment
+# %1$S - the number of attachments (1-n)
+attachmentsTabLabel=Liitteet (%1$S):
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-extract.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..e735c8ba4e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-extract.properties
@@ -0,0 +1,294 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+# Strings here are used to create events and tasks with start and end times
+# based on email content.
+# None of the strings are displayed in the user interface.
+#
+# You don't have to fill all from.*, until.*, *.prefix and *.suffix patterns.
+# It's ok to leave some empty.
+# Please consider declensions and gender if your language has them.
+# Don't just translate directly. The number of variants doesn't have to be
+# the same as in en-US. All of 0, 1, 2, etc is allowed in patterns except alphabet.
+# patterns. You can and should add language specific variants.
+#
+# There are two different ways to find a start time text in email:
+# 1) it matches a from.* pattern and does not have end.prefix or end.suffix next to it
+# 2) it matches until.* pattern and has start.prefix or start.suffix next to it
+# Similar inverse logic applies to end times.
+# These rules enable using prefix and suffix values with only start.* or only until.*
+# patterns localized for some languages and thus not having to repeat the same
+# values in both.
+#
+# Patterns are partially space-insensitive.
+# "deadline is" pattern will find both "deadlineis" and "deadline is"
+# but "deadlineis" won't find "deadline is" or "deadline is".
+# Therefore you should include all spaces that are valid within a pattern.
+
+# LOCALIZATION NOTE (start.prefix):
+# datetimes with these in front are extracted as start times
+# can be a list of values, separate variants by |
+start.prefix =
+
+# LOCALIZATION NOTE (start.suffix):
+# datetimes followed by these are extracted as start times
+start.suffix = by | until | to | - | till | til | and
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes followed by these are extracted as end times
+end.prefix = by | until | to | - | till | til | and | due: | due | ends | deadline is | deadline:
+
+# LOCALIZATION NOTE (end.suffix):
+# datetimes followed by these are extracted as end times
+# can be a list of values, separate variants by |
+end.suffix =
+
+# LOCALIZATION NOTE (no.datetime.prefix):
+# datetimes with these in front won't be used
+# specify full words here
+no.datetime.prefix = last week | sent | email | e-mail | instead of | > | unfortunately | in | not
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes follwed by these won't be used
+no.datetime.suffix = floor | flr | : | email | e-mail | > | % | usd | dollars
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = tänään
+
+from.tomorrow = tomorrow
+# LOCALIZATION NOTE (until.*):
+# can be a list of values, separate variants by |
+until.tomorrow =
+
+# LOCALIZATION NOTE (ordinal.date):
+# %1$S = matches numbers 1-31 and number.x
+# should not have "%1$S" as this would match any single number in email to a time
+from.ordinal.date = %1$S.
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# %1$S = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = aamupäivällä
+until.noon =
+
+# LOCALIZATION NOTE (hour.only):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should not have "%1$S" as this would match any single number in email to a time
+from.hour = kello %1$S | klo %1$S
+
+# LOCALIZATION NOTE (until.hour):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - %1$S | %1$S mennessä
+
+# LOCALIZATION NOTE (hour.only.am):
+# %1$S = matches numbers 0-23 and number.0-number.23
+from.hour.am = %1$S aamupäivällä
+
+# LOCALIZATION NOTE (until.hour.am):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =
+
+# LOCALIZATION NOTE (hour.only.pm):
+# %1$S = matches numbers 0-23 and number.0-number.23
+from.hour.pm = %1$S iltapäivällä
+
+# LOCALIZATION NOTE (until.hour.pm):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = puoli %1$S
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = puoli yli %1$S
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =
+
+# LOCALIZATION NOTE (hour.minutes):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes = %1$S:%2$S | %1$S.%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes =
+
+# LOCALIZATION NOTE (hour.minutes.am):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes.am = %1$S:%2$S aamupäivällä | %1$S.%2$S aamupäivällä
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes.am =
+
+# LOCALIZATION NOTE (hour.minutes.pm):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes.pm = %1$S:%2$S iltapäivällä | %1$S.%2$S iltapäivällä
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes.pm =
+
+# LOCALIZATION NOTE (monthname.day):
+# %1$S = matches numbers 1-31 and number.x
+# %2$S = matches monthname
+from.monthname.day = %2$Sn %1$S | %1$S %2$Sta
+
+# LOCALIZATION NOTE (until.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+until.monthname.day =
+
+# LOCALIZATION NOTE (month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+from.month.day = %1$S.%2$S.
+
+# LOCALIZATION NOTE (until.month.day):
+# %1$S = matches numbers 1-31 and number.x
+# %2$S = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (year.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+# %3$S = matches 2/4 numbers
+from.year.month.day = %1$S.%2$S.%3$S | %3$S-%2$S-%1$S
+
+# LOCALIZATION NOTE (until.year.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+# %3$S = matches 2/4 numbers
+until.year.month.day =
+
+# LOCALIZATION NOTE (year.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+# %3$S = matches 2/4 numbers
+from.year.monthname.day = %1$S %2$Sta %3$S
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+# %3$S = matches 2/4 numbers
+until.year.monthname.day =
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = %1$S minuuttia | %1$S min
+
+# LOCALIZATION NOTE (duration.hours):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.hours = %1$S tunti | %1$S tuntia
+
+# LOCALIZATION NOTE (duration.days):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.days = %1$S päivää
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = tammikuu | tammi
+month.2 = helmikuu | helmi
+month.3 = maaliskuu | maalis
+month.4 = huhtikuu | huhti
+month.5 = toukokuu | touko
+month.6 = kesäkuu | kesä
+month.7 = heinäkuu | heinä
+month.8 = elokuu | elo
+month.9 = syyskuu | syys
+month.10 = lokakuu | loka
+month.11 = marraskuu | marras
+month.12 = joulukuu | joulu
+
+# LOCALIZATION NOTE (weekday.*):
+# used to derive start date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+from.weekday.0 = sunnuntai | sunnuntait
+from.weekday.1 = maanantai | maanantait
+from.weekday.2 = tiistai | tiistait
+from.weekday.3 = keskiviikko | keskiviikot
+from.weekday.4 = torstai | torstait
+from.weekday.5 = perjantai | perjantait
+from.weekday.6 = lauantai | lauantait
+
+# LOCALIZATION NOTE (until.weekday.*):
+# used to derive end date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (until.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+until.weekday.0 =
+until.weekday.1 =
+until.weekday.2 =
+until.weekday.3 =
+until.weekday.4 =
+until.weekday.5 =
+until.weekday.6 =
+
+# LOCALIZATION NOTE (number.*):
+# used within other patterns to understand dates where day of month isn't written with digits
+# can be a list of values, separate variants by |
+number.0 = nolla
+number.1 = yksi | ensimmäinen
+number.2 = kaksi | toinen
+number.3 = kolme | kolmas
+number.4 = neljä | neljäs
+number.5 = viisi | viides
+number.6 = kuusi | kuudes
+number.7 = seitsemän | seitsemäs
+number.8 = kahdeksan | kahdeksas
+number.9 = yhdeksän | yhdeksäs
+number.10 = kymmenen | kymmenes
+number.11 = yksitoista | yhdestoista
+number.12 = kaksitoista | kahdestoista
+number.13 = kolmetoista | kolmastoista
+number.14 = neljätoista | neljästoista
+number.15 = viisitoista | viidestoista
+number.16 = kuusitoista | kuudestoista
+number.17 = seitsemäntoista | seitsemästoista
+number.18 = kahdeksantoista | kahdeksastoista
+number.19 = yhdeksäntoista | yhdeksästoista
+number.20 = kaksikymmentä | kahdeskymmenes
+number.21 = kaksikymmentäyksi | kahdeskymmenesensimmäinen
+number.22 = kaksikymmentäkaksi | kahdeskymmenestoinen
+number.23 = kaksikymmentäkolme | kahdeskymmeneskolmas
+number.24 = kaksikymmentäneljä | kahdeskymmenesneljäs
+number.25 = kaksikymmentäviisi | kahdeskymmenesviides
+number.26 = kaksikymmentäkuusi | kahdeskymmeneskuudes
+number.27 = kaksikymmentäseitsemän | kahdeskymmenesseitsemäs
+number.28 = kaksikymmentäkahdeksan | kahdeskymmeneskahdeksas
+number.29 = kaksikymmentäyhdeksän | kahdeskymmenesyhdeksäs
+number.30 = kolmekymmentä | kolmaskymmenes
+number.31 = kolmekymmentäyksi | kolmaskymmenesensimmäinen
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..90bfceee0a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+
+<!-- Calendar Invitations Dialog -->
+<!ENTITY calendar.invitations.dialog.invitations.text "Kutsut">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "Päivitetään kutsulistaa.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "Vahvistamattomia kutsuja ei löytynyt.">
+
+<!-- Calendar Invitations List -->
+<!ENTITY calendar.invitations.list.accept.button.label "Hyväksy">
+<!ENTITY calendar.invitations.list.decline.button.label "Älä hyväksy">
+<!ENTITY calendar.invitations.list.recurrentevent.text "Toistuva tapahtuma">
+<!ENTITY calendar.invitations.list.alldayevent.text "Koko päivän tapahtuma">
+<!ENTITY calendar.invitations.list.location.text "Osoite: ">
+<!ENTITY calendar.invitations.list.organizer.text "Järjestäjä: ">
+<!ENTITY calendar.invitations.list.attendee.text "Osallistuja: ">
+<!ENTITY calendar.invitations.list.none.text "Ei mitään">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..106825cb8f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-invitations-dialog.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+allday-event=Koko päivän tapahtuma
+recurrent-event=Toistuva tapahtuma
+location=Sijainti: %S
+organizer=Järjestäjä: %S
+attendee=Osallistuja: %S
+none=Ei mitään
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY buttons.occurrence.accesskey "t">
+<!ENTITY buttons.allfollowing.accesskey "f">
+<!ENTITY buttons.parent.accesskey "a">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..19b9c57a4a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=on toistuva tapahtuma
+header.isrepeating.task.label=on toistuva tehtävä
+
+header.containsrepeating.event.label=sisältää toistuvia tapahtumia
+header.containsrepeating.task.label=sisältää toistuvia tehtäviä
+header.containsrepeating.mixed.label=sisältää erityyppisiä toistuvia kohteita
+
+windowtitle.event.copy=Kopioi toistuva tapahtuma
+windowtitle.task.copy=Kopioi toistuva tehtävä
+windowtitle.mixed.copy=Kopioi toistuvia kohteita
+windowtitle.event.cut=Leikkaa toistuva tapahtuma
+windowtitle.task.cut=Leikkaa toistuva tehtävä
+windowtitle.mixed.cut=Leikkaa toistuvia kohteita
+windowtitle.event.delete=Poista toistuva tapahtuma
+windowtitle.task.delete=Poista toistuva tehtävä
+windowtitle.mixed.delete=Poista toistuvia kohteita
+windowtitle.event.edit=Muokkaa toistuvaa tapahtumaa
+windowtitle.task.edit=Muokkaa toistuvaa tehtävää
+
+buttons.occurrence.delete.label=Poista vain tämä tapahtuma
+buttons.occurrence.edit.label=Muokkaa vain tätä tapahtumaa
+
+buttons.allfollowing.delete.label=Poista tämä ja kaikki tulevat tapahtumat
+buttons.allfollowing.edit.label=Muokkaa tätä ja kaikkia tulevia tapahtumia
+
+buttons.parent.delete.label=Poista kaikki tapahtumat
+buttons.parent.edit.label=Muokkaa kaikkia tapahtumia
+windowtitle.mixed.edit=Muokkaa toistuvia kohteita
+windowtitle.multipleitems=Valitut kohteet
+
+buttons.single.occurrence.copy.label=Kopioi vain tämä esiintymä
+buttons.single.occurrence.cut.label=Leikkaa vain tämä esiintymä
+buttons.single.occurrence.delete.label=Poista vain tämä esiintymä
+buttons.single.occurrence.edit.label=Muokkaa vain tätä esiintymää
+
+buttons.multiple.occurrence.copy.label=Kopioi vain valitut esiintymät
+buttons.multiple.occurrence.cut.label=Leikkaa vain valitut esiintymät
+buttons.multiple.occurrence.delete.label=Poista vain valitut esiintymät
+buttons.multiple.occurrence.edit.label=Muokkaa vain valittuja esiintymiä
+
+buttons.single.allfollowing.copy.label=Kopioi tämä ja kaikki tulevat esiintymät
+buttons.single.allfollowing.cut.label=Leikkaa tämä ja kaikki tulevat esiintymät
+buttons.single.allfollowing.delete.label=Poista tämä ja kaikki tulevat esiintymät
+buttons.single.allfollowing.edit.label=Muokkaa tätä ja kaikkia tulevia esiintymiä
+
+buttons.multiple.allfollowing.copy.label=Kopioi valitut ja kaikki tulevat esiintymät
+buttons.multiple.allfollowing.cut.label=Leikkaa valitut ja kaikki tulevat esiintymät
+buttons.multiple.allfollowing.delete.label=Poista valitut ja kaikki tulevat esiintymät
+buttons.multiple.allfollowing.edit.label=Muokkaa valittuja ja kaikkia tulevia esiintymiä
+
+buttons.single.parent.copy.label=Kopioi kaikki esiintymät
+buttons.single.parent.cut.label=Leikkaa kaikki esiintymät
+buttons.single.parent.delete.label=Poista kaikki esiintymät
+buttons.single.parent.edit.label=Muokkaa kaikkia esiintymiä
+
+buttons.multiple.parent.copy.label=Kopioi valittujen kohteiden kaikki esiintymät
+buttons.multiple.parent.cut.label=Leikkaa valittujen kohteiden kaikki esiintymät
+buttons.multiple.parent.delete.label=Poista valittujen kohteiden kaikki esiintymät
+buttons.multiple.parent.edit.label=Muokkaa valittujen kohteiden kaikkia esiintymiä
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.dtd
new file mode 100644
index 0000000000..712a38450c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.dtd
@@ -0,0 +1,407 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- General -->
+<!ENTITY calendar.calendar.label "Kalenteri">
+<!ENTITY calendar.calendar.accesskey "K">
+
+<!ENTITY calendar.newevent.button.tooltip "Luo uusi tapahtuma" >
+<!ENTITY calendar.newtask.button.tooltip "Luo uusi tehtävä" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Näytä suoritetut tehtävät">
+
+<!ENTITY calendar.today.button.label "Tänään">
+<!ENTITY calendar.tomorrow.button.label "Huomenna">
+<!ENTITY calendar.upcoming.button.label "Tulevat">
+
+<!ENTITY calendar.events.filter.all.label "Kaikki tapahtumat">
+<!ENTITY calendar.events.filter.today.label "Tämän päivän tapahtumat">
+<!ENTITY calendar.events.filter.future.label "Kaikki tulevat tapahtumat">
+<!ENTITY calendar.events.filter.current.label "Valittuna oleva päivä">
+<!ENTITY calendar.events.filter.currentview.label "Tapahtumat nykyisessä näkymässä">
+<!ENTITY calendar.events.filter.next7Days.label "Seuraavien 7 päivän tapahtumat">
+<!ENTITY calendar.events.filter.next14Days.label "Seuraavien 14 päivän tapahtumat">
+<!ENTITY calendar.events.filter.next31Days.label "Seuraavien 31 päivän tapahtumat">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Tämän kalenterikuukauden tapahtumat">
+
+<!-- LOCALIZATION NOTE(calendar.unifinder.tree.done.tooltip)
+ - This label and tooltip is used for the column with the checkbox in the
+ - task tree view. -->
+<!ENTITY calendar.unifinder.tree.done.label "Suoritettu">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Lajittele suoritustilan mukaan">
+<!ENTITY calendar.unifinder.tree.priority.label "Tärkeysaste">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Lajittele tärkeysasteen mukaan">
+<!ENTITY calendar.unifinder.tree.title.label "Otsikko">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Lajittele otsikon mukaan">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "&#37; suoritettu">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Lajittele sen mukaan, montako prosenttia on valmiina">
+<!ENTITY calendar.unifinder.tree.startdate.label "Alkaa">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Lajittele aloituspäivän mukaan">
+<!ENTITY calendar.unifinder.tree.enddate.label "Päättyy">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Lajittele päättymispäivän mukaan">
+<!ENTITY calendar.unifinder.tree.duedate.label "Eräpäivä">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Lajittele eräpäivän mukaan">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Suoritettu">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Lajittele suorituspäivän mukaan">
+<!ENTITY calendar.unifinder.tree.categories.label "Luokka">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Lajittele luokan mukaan">
+<!ENTITY calendar.unifinder.tree.location.label "Sijainti">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Lajittele sijainnin mukaan">
+<!ENTITY calendar.unifinder.tree.status.label "Tila">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Lajittele tilan mukaan">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Kalenteri">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Lajittele kalenterin nimen mukaan">
+<!ENTITY calendar.unifinder.tree.duration.label "Valmis">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Lajittele sen mukaan milloin tehtävän tulee olla valmis">
+<!ENTITY calendar.unifinder.close.tooltip "Sulje tapahtumahaku ja -luettelo">
+
+<!ENTITY calendar.today.button.tooltip "Siirry tähän päivään" >
+<!ENTITY calendar.todaypane.button.tooltip "Näytä tänään-ruutu" >
+
+<!ENTITY calendar.day.button.tooltip "Siirry päivänäkymään" >
+<!ENTITY calendar.week.button.tooltip "Siirry viikkonäkymään" >
+<!ENTITY calendar.month.button.tooltip "Siirry kuukausinäkymään" >
+<!ENTITY calendar.multiweek.button.tooltip "Siirry moniviikkonäkymään" >
+
+<!ENTITY calendar.nextday.label "Seuraava päivä" >
+<!ENTITY calendar.prevday.label "Edellinen päivä" >
+<!ENTITY calendar.nextday.accesskey "S" >
+<!ENTITY calendar.prevday.accesskey "E" >
+<!ENTITY calendar.nextweek.label "Seuraava viikko" >
+<!ENTITY calendar.prevweek.label "Edellinen viikko" >
+<!ENTITY calendar.nextweek.accesskey "S" >
+<!ENTITY calendar.prevweek.accesskey "E" >
+<!ENTITY calendar.nextmonth.label "Seuraava kuukausi" >
+<!ENTITY calendar.prevmonth.label "Edellinen kuukausi" >
+<!ENTITY calendar.nextmonth.accesskey "S" >
+<!ENTITY calendar.prevmonth.accesskey "E" >
+
+<!ENTITY calendar.navigation.nextday.tooltip "Siirry päivä eteenpäin" >
+<!ENTITY calendar.navigation.prevday.tooltip "Siirry päivä taaksepäin" >
+<!ENTITY calendar.navigation.nextweek.tooltip "Siirry viikko eteenpäin" >
+<!ENTITY calendar.navigation.prevweek.tooltip "Siirry viikko taaksepäin" >
+<!ENTITY calendar.navigation.nextmonth.tooltip "Siirry seuraavaan kuukauteen" >
+<!ENTITY calendar.navigation.prevmonth.tooltip "Siirry edelliseen kuukauteen" >
+
+<!ENTITY calendar.newevent.button.label "Uusi tapahtuma" >
+<!ENTITY calendar.newtask.button.label "Uusi tehtävä" >
+<!ENTITY calendar.print.button.label "Tulosta" >
+<!ENTITY calendar.print.button.accesskey "u">
+
+<!ENTITY calendar.day.button.label "Päivä" >
+<!ENTITY calendar.week.button.label "Viikko" >
+<!ENTITY calendar.month.button.label "Kuukausi" >
+<!ENTITY calendar.multiweek.button.label "Moniviikko" >
+<!ENTITY calendar.onlyworkday.checkbox.label "Vain työpäivät" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "V" >
+<!ENTITY calendar.displaytodos.checkbox.label "Näkymässä olevat tehtävät" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "k" >
+<!ENTITY calendar.completedtasks.checkbox.label "Näytä suoritetut tehtävät" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "N" >
+
+<!ENTITY calendar.orientation.label "Kierrä näkymää" >
+<!ENTITY calendar.orientation.accesskey "K" >
+
+<!ENTITY calendar.search.options.searchfor " sisältää">
+
+<!ENTITY calendar.list.header.label "Kalenteri">
+
+<!ENTITY calendar.task.filter.title.label "Näytä">
+<!ENTITY calendar.task.filter.all.label "Kaikki">
+<!ENTITY calendar.task.filter.all.accesskey "K">
+<!ENTITY calendar.task.filter.today.label "Tämä päivä">
+<!ENTITY calendar.task.filter.today.accesskey "T">
+<!ENTITY calendar.task.filter.next7days.label "Seuraavat 7 päivää">
+<!ENTITY calendar.task.filter.next7days.accesskey "S">
+<!ENTITY calendar.task.filter.notstarted.label "Aloittamattomat tehtävät">
+<!ENTITY calendar.task.filter.notstarted.accesskey "A">
+<!ENTITY calendar.task.filter.overdue.label "Myöhästyneet tehtävät">
+<!ENTITY calendar.task.filter.overdue.accesskey "M">
+<!ENTITY calendar.task.filter.completed.label "Suoritetut tehtävät">
+<!ENTITY calendar.task.filter.completed.accesskey "S">
+<!ENTITY calendar.task.filter.open.label "Tekemättömät tehtävät">
+<!ENTITY calendar.task.filter.open.accesskey "m">
+
+<!-- LOCALIZATION NOTE(calendar.task.filter.current.label)
+ "Current Tasks" will show all tasks, except those with a start date set
+ that is after today and after the selected date. If a task repeats, a
+ separate entry will be shown for each of the occurrences that happen on or
+ before today (or the selected date, whichever is later). -->
+<!ENTITY calendar.task.filter.current.label "Nykyiset tehtävät">
+<!ENTITY calendar.task.filter.current.accesskey "N">
+
+<!ENTITY calendar.task-details.title.label "otsikko">
+<!ENTITY calendar.task-details.organizer.label "lähettäjä">
+<!ENTITY calendar.task-details.priority.label "tärkeysaste">
+<!ENTITY calendar.task-details.priority.low.label "Matala">
+<!ENTITY calendar.task-details.priority.normal.label "Normaali">
+<!ENTITY calendar.task-details.priority.high.label "Korkea">
+<!ENTITY calendar.task-details.status.label "tila">
+<!ENTITY calendar.task-details.category.label "tyyppi">
+<!ENTITY calendar.task-details.repeat.label "toista">
+<!ENTITY calendar.task-details.attachments.label "liitteet">
+<!ENTITY calendar.task-details.start.label "aloituspäivä">
+<!ENTITY calendar.task-details.due.label "valmis">
+
+<!ENTITY calendar.task.category.button.tooltip "Luokittele tehtäviä">
+<!ENTITY calendar.task.complete.button.tooltip "Merkitse valitut tehtävät suoritetuksi">
+<!ENTITY calendar.task.priority.button.tooltip "Muuta tärkeysastetta">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Suodata tehtävät #1">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.nonmac "&lt;Ctrl+Shift+K&gt;">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.mac "&lt;&#x21E7;&#x2318;K&gt;">
+
+<!-- Context Menu -->
+<!ENTITY calendar.context.modifyorviewitem.label "Avaa">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "A">
+<!ENTITY calendar.context.modifyorviewtask.label "Avaa tehtävä…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "A">
+<!ENTITY calendar.context.newevent.label "Uusi tapahtuma…">
+<!ENTITY calendar.context.newevent.accesskey "U">
+<!ENTITY calendar.context.newtodo.label "Uusi tehtävä…">
+<!ENTITY calendar.context.newtodo.accesskey "U">
+<!ENTITY calendar.context.deletetask.label "Poista tehtävä">
+<!ENTITY calendar.context.deletetask.accesskey "P">
+<!ENTITY calendar.context.deleteevent.label "Poista tapahtuma">
+<!ENTITY calendar.context.deleteevent.accesskey "P">
+<!ENTITY calendar.context.cutevent.label "Leikkaa">
+<!ENTITY calendar.context.cutevent.accesskey "L">
+<!ENTITY calendar.context.copyevent.label "Kopioi">
+<!ENTITY calendar.context.copyevent.accesskey "K">
+<!ENTITY calendar.context.pasteevent.label "Liitä">
+<!ENTITY calendar.context.pasteevent.accesskey "i">
+<!ENTITY calendar.context.button.label "Tänään-ruutu">
+<!ENTITY calendar.context.button.accesskey "T">
+
+<!ENTITY calendar.context.attendance.menu.label "Osallistuminen">
+<!ENTITY calendar.context.attendance.menu.accesskey "O">
+<!ENTITY calendar.context.attendance.occurrence.label "Vain tämä esiintymä">
+<!ENTITY calendar.context.attendance.all2.label "Valmis sarja">
+<!ENTITY calendar.context.attendance.send.label "Lähetä ilmoitus nyt">
+<!ENTITY calendar.context.attendance.send.accesskey "L">
+<!ENTITY calendar.context.attendance.dontsend.label "Älä lähetä muistutusta">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "Ä">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "y">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Hyväksytty">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "u">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Hyväksytty alustavasti">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "ä">
+<!ENTITY calendar.context.attendance.occ.declined.label "Hylätty">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "e">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Delegoitu">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "T">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Tarvitsee vielä toimia">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "n">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "Meneillään">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "V">
+<!ENTITY calendar.context.attendance.occ.completed.label "Valmis">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "y">
+<!ENTITY calendar.context.attendance.all.accepted.label "Hyväksytty">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "a">
+<!ENTITY calendar.context.attendance.all.tentative.label "Hyväksytty alustavasti">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "H">
+<!ENTITY calendar.context.attendance.all.declined.label "Hylätty">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "D">
+<!ENTITY calendar.context.attendance.all.delegated.label "Delegoitu">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "T">
+<!ENTITY calendar.context.attendance.all.needsaction.label "Tarvitsee vielä toimia">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "K">
+<!ENTITY calendar.context.attendance.all.inprogress.label "Käynnissä">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "V">
+<!ENTITY calendar.context.attendance.all.completed.label "Valmis">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Edistyminen">
+<!ENTITY calendar.context.progress.accesskey "E">
+<!ENTITY calendar.context.priority.label "Tärkeysaste">
+<!ENTITY calendar.context.priority.accesskey "r">
+<!ENTITY calendar.context.postpone.label "Siirrä tehtävän alkua">
+<!ENTITY calendar.context.postpone.accesskey "S">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Merkitse suoritetuksi">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+
+<!ENTITY progress.level.0 "0 &percnt; suoritettu">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "25 &percnt; suoritettu">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "50 &percnt; suoritettu">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "75 &percnt; suoritettu">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "100 &percnt; suoritettu">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "Ei määritetty">
+<!ENTITY priority.level.none.accesskey "E">
+<!ENTITY priority.level.low "Matala">
+<!ENTITY priority.level.low.accesskey "M">
+<!ENTITY priority.level.normal "Normaali">
+<!ENTITY priority.level.normal.accesskey "N">
+<!ENTITY priority.level.high "Korkea">
+<!ENTITY priority.level.high.accesskey "K">
+
+<!ENTITY calendar.context.postpone.1hour.label "Yksi tunti">
+<!ENTITY calendar.context.postpone.1hour.accesskey "t">
+<!ENTITY calendar.context.postpone.1day.label "Yksi päivä">
+<!ENTITY calendar.context.postpone.1day.accesskey "p">
+<!ENTITY calendar.context.postpone.1week.label "Yksi viikko">
+<!ENTITY calendar.context.postpone.1week.accesskey "v">
+
+<!ENTITY calendar.copylink.label "Kopioi linkin osoite">
+<!ENTITY calendar.copylink.accesskey "K">
+
+<!-- Task View -->
+<!-- Note that the above *.context.* strings are currently used for the other
+ task action buttons -->
+<!ENTITY calendar.taskview.delete.label "Poista">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "Uusi kalenteri…">
+<!ENTITY calendar.context.newserver.accesskey "n">
+<!ENTITY calendar.context.findcalendar.label "Etsi kalenteri…" >
+<!ENTITY calendar.context.findcalendar.accesskey "E" >
+<!ENTITY calendar.context.deleteserver2.label "Poista kalenteri…">
+<!ENTITY calendar.context.deleteserver2.accesskey "T">
+
+<!-- LOCALIZATION NOTE (calendar.context.removeserver.label): Removing the
+ calendar is the general action of removing it, while deleting means to
+ clear the data and unsubscribing means just taking it out of the calendar
+ list. -->
+<!ENTITY calendar.context.removeserver.label "Poista kalenteri…">
+<!ENTITY calendar.context.removeserver.accesskey "i">
+<!ENTITY calendar.context.unsubscribeserver.label "Peru kalenterin tilaus…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "r">
+<!ENTITY calendar.context.synccalendars.label "Synkronoi kalenterit">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "Julkaise kalenteri…">
+<!ENTITY calendar.context.publish.accesskey "J">
+<!ENTITY calendar.context.export.label "Vie kalenteri…">
+<!ENTITY calendar.context.export.accesskey "e">
+<!ENTITY calendar.context.properties.label "Ominaisuudet">
+<!ENTITY calendar.context.properties.accesskey "O">
+
+<!-- LOCALIZATION NOTE (calendar.context.showcalendar.accesskey)
+ This is the access key used for the showCalendar string -->
+<!ENTITY calendar.context.showcalendar.accesskey "N">
+
+<!-- LOCALIZATION NOTE (calendar.context.hidecalendar.accesskey)
+ This is the access key used for the hideCalendar string -->
+<!ENTITY calendar.context.hidecalendar.accesskey "P">
+
+<!-- LOCALIZATION NOTE (calendar.context.showonly.accesskey)
+ This is the access key used for the showOnlyCalendar string -->
+<!ENTITY calendar.context.showonly.accesskey "v">
+<!ENTITY calendar.context.showall.label "Näytä kaikki kalenterit">
+<!ENTITY calendar.context.showall.accesskey "k">
+
+<!ENTITY calendar.context.convertmenu.label "Muunna">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "n">
+<!ENTITY calendar.context.convertmenu.event.label "Tapahtumaksi…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "T">
+<!ENTITY calendar.context.convertmenu.message.label "Viestiksi…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "V">
+<!ENTITY calendar.context.convertmenu.task.label "Tehtäväksi…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "T">
+
+<!ENTITY calendar.tasks.view.minimonth.label "Pienoiskuukausi">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "P">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "Kalenteriluettelo">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "l">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Suodata tehtäviä">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "S">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "Osoite:" >
+<!ENTITY calendar.alarm.details.label "Lisätiedot…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "Lykkää" >
+<!ENTITY calendar.alarm.snoozeallfor.label "Lykkää kaikkia" >
+<!ENTITY calendar.alarm.title.label "Kalenterimuistutukset" >
+<!ENTITY calendar.alarm.dismiss.label "Lopeta" >
+<!ENTITY calendar.alarm.dismissall.label "Lopeta kaikki" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5 minuutin kuluttua" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10 minuutin kuluttua" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15 minuutin kuluttua" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30 minuutin kuluttua" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45 minuutin kuluttua" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1 tunnin kuluttua" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2 tunnin kuluttua" >
+<!ENTITY calendar.alarm.snooze.1day.label "1 päivän kuluttua" >
+
+<!-- LOCALIZATION NOTE (calendar.alarm.snooze.cancel)
+ This string is not seen in the UI, it is read by screen readers when the
+ user focuses the "Cancel" button in the "Snooze for..." popup of the alarm
+ dialog. -->
+<!ENTITY calendar.alarm.snooze.cancel "Peruuta lykkäys">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "Muokkaa kalenteria">
+<!ENTITY calendar.server.dialog.name.label "Kalenterin nimi:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "Väri:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.format.label "Formaatti:">
+<!ENTITY calendarproperties.location.label "Sijainti:">
+<!ENTITY calendarproperties.refreshInterval.label "Päivitä kalenteri:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Käsin">
+<!ENTITY calendarproperties.name.label "Nimi:">
+<!ENTITY calendarproperties.readonly.label "Vain luku">
+<!ENTITY calendarproperties.firealarms.label "Näytä muistutukset">
+<!ENTITY calendarproperties.cache3.label "Yhteydettömän tilan tuki">
+<!ENTITY calendarproperties.enabled2.label "Ota tämä kalenteri käyttöön">
+<!ENTITY calendarproperties.forceDisabled.label "Tämän kalenterin tuottajaa ei löytynyt. Tämä tapahtuu usein tiettyjen lisäosien poistamisen tai käytöstä poistamisen jälkeen.">
+<!ENTITY calendarproperties.unsubscribe.label "Peruuta tilaus">
+<!ENTITY calendarproperties.unsubscribe.accesskey "P">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "Julkaise kalenteri">
+<!ENTITY calendar.publish.url.label "Julkaisuosoite">
+<!ENTITY calendar.publish.publish.button "Julkaise">
+<!ENTITY calendar.publish.close.button "Sulje">
+
+<!ENTITY calendar.publish.example.url.description "Esimerkiksi http://www.palvelin.fi/webdav/testi.ics">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Valitse kalenteri">
+
+<!-- Calendar Printing -->
+<!ENTITY calendar.print.window.title "Tulosta kalenteri">
+<!ENTITY calendar.print.title.label "Otsikko:">
+<!ENTITY calendar.print.layout.label "Asettelu:">
+<!ENTITY calendar.print.range.label "Mitä tulostetaan">
+<!ENTITY calendar.print.currentView2.label "Nykyinen näkymä">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "Valitut tapahtumat tai tehtävät">
+<!ENTITY calendar.print.tasks.label "Tehtävät">
+<!ENTITY calendar.print.events.label "Tapahtumat">
+<!ENTITY calendar.print.custom.label "Valitse:">
+<!ENTITY calendar.print.from.label "Alku:">
+<!ENTITY calendar.print.to.label "Loppu:">
+<!ENTITY calendar.print.settingsGroup.label "Tulostusasetukset">
+<!ENTITY calendar.print.optionsGroup.label "Valinnat">
+<!ENTITY calendar.print.taskswithnoduedate.label "Tehtävät ilman valmistumispäivää">
+<!ENTITY calendar.print.completedtasks.label "Suoritetut tehtävät">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "Lisätiedot…">
+<!ENTITY calendar.error.code "Virhekoodi:">
+<!ENTITY calendar.error.description "Kuvaus:">
+<!ENTITY calendar.error.title "Tapahtui virhe">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "Lisää tapahtumaksi">
+<!ENTITY calendar.extract.task.button "Lisää tehtäväksi">
+<!ENTITY calendar.extract.event.button.tooltip "Etsi aikataulutiedot viestistä ja lisää ne kalenteriin tapahtumaksi">
+<!ENTITY calendar.extract.task.button.tooltip "Etsi aikataulutiedot viestistä ja lisää ne kalenteriin tehtäväksi">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.properties
new file mode 100644
index 0000000000..0af29d2568
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendar.properties
@@ -0,0 +1,809 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=Tulostuksen esikatselu: %1$S
+Untitled=Nimetön
+
+# Default name for new events
+newEvent=Uusi tapahtuma
+
+# Titles for the event/task dialog
+newEventDialog=Uusi tapahtuma
+editEventDialog=Muokkaa tapahtumaa
+newTaskDialog=Uusi tehtävä
+editTaskDialog=Muokkaa tehtävää
+
+# Do you want to save changes?
+askSaveTitleEvent=Tallenna tapahtuma
+askSaveTitleTask=Tallenna tehtävä
+askSaveMessageEvent=Tapahtumaa ei ole tallennettu. Haluatko tallentaa sen?
+askSaveMessageTask=Tehtävää ei ole tallennettu. Haluatko tallentaa sen?
+
+# Event Dialog Warnings
+warningEndBeforeStart=Antamasi päättymispäivämäärä on ennen aloituspäivämäärää
+warningUntilDateBeforeStart=Päättymispäivä on aikaisempi kuin aloituspäivä
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Koti
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Nimetön kalenteri
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Alustava
+statusConfirmed =Vahvistettu
+eventStatusCancelled=Peruttu
+todoStatusCancelled =Peruttu
+statusNeedsAction =Tarvitsee toimintaa
+statusInProcess =Käynnissä
+statusCompleted =Valmis
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=Korkea
+normalPriority=Normaali
+lowPriority=Matala
+
+importPrompt=Mihin kalenteriin haluat tuoda nämä merkinnät?
+exportPrompt=Mistä kalenterista haluat viedä?
+pastePrompt=Mihin kirjoitusoikeudelliseen kalenteriisi haluat liittää?
+publishPrompt=Minkä kalenterin haluat julkaista?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=Liittämisesi sisältää tapaamisen
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=Liittämisesi sisältää tapaamisia
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=Liittämisesi sisältää delegoidun tehtävän
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=Liittämisesi sisältää delegoituja tehtäviä
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=Liittämisesi sisältää tapaamisia ja delegoituja tehtäviä
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=Olet liittämässä tapaamista
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=Olet liittämässä tapaamisia
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=Olet liittämässä delegoitua tehtävää
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=Olet liittämässä delegoituja tehtäviä
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=Olet liittämässä tapaamisia ja delegoituja tehtäviä
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - haluatko lähettää päivityksen kaikille osallistujille?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Liitä ja lähetä nyt
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Liitä lähettämättä
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=%1$S merkintää ei voitu tuoda. Viimeinen virhe oli: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=Ei voitu tuoda kohteesta %1$S. Tästä tiedostosta ei löytynyt tuontikelpoisia kohteita.
+
+#spaces needed at the end of the following lines
+eventDescription=Kuvaus:
+
+unableToRead=Tiedostoa ei voitu lukea:
+unableToWrite=Tiedostoon ei voitu kirjoittaa:
+defaultFileName=MozillaKalTapahtumat
+HTMLTitle=Mozilla-kalenteri
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=Tuntematon ja määrittämätön aikavyöhyke löytyi luettaessa tiedostoa %1$S.
+
+# LOCALIZATION NOTE (duplicateError):
+# %1$S will be replaced with number of duplicate items
+# %2$S will be replaced with a file path pointing to a calendar
+duplicateError=%1$S merkintää ohitettiin, koska ne löytyvät sekä kohdekalenterista että kalenteritiedostosta %2$S.
+
+unableToCreateProvider=Tapahtui virhe valmisteltaessa kalenteritiedostoa %1$S käyttökuntoon. Se ei tule olemaan käytettävissä.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Tuntematon aikavyöhyke "%1$S" osoitekirjassa "%2$S". Sen sijaan käytetään paikallista "leijuvaa" aikavyöhykettä: %3$S
+TimezoneErrorsAlertTitle=Aikavyöhykevirheitä
+TimezoneErrorsSeeConsole=Katso Virhekonsoli: Tuntemattomia aikavyöhykkeitä kohdellaan paikallisena 'leijuvana' aikavyöhykkeenä.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Poista kalenteri
+removeCalendarButtonDelete=Poista kalenteri
+removeCalendarButtonUnsubscribe=Peruuta tilaus
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=Haluatko poistaa kalenterin "%1$S"? Tilauksen peruutus poistaa kalenterin luettelosta, tyhjentäminen myös poistaa kalenterin tiedot pysyvästi.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=Haluatko poistaa kalenterin "%1$S" pysyvästi?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=Haluatko poistaa kalenterin "%1$S" tilauksen?
+
+WeekTitle=Viikko %1$S
+None=Ei mitään
+
+# Error strings
+## @name UID_NOT_FOUND
+## @loc none
+
+# LOCALIZATION NOTE (tooNewSchemaErrorText):
+# %1$S will be replaced with the name of the host application, e.g. 'Thunderbird'
+# %2$S will be replaced with the name of the new copy of the file, e.g. 'local-2020-05-11T21-30-17.sqlite'
+tooNewSchemaErrorText=Kalenteritietosi eivät ole yhteensopivia %1$Sin tämän version kanssa. %1$Sin uudempi versio on päivittänyt profiilisi kalenteritiedot. Datatiedostosta on luotu varmuuskopio nimellä "%2$S". Jatketaan käyttäen äskettäin luotua datatiedostoa.
+
+# List of events or todos (unifinder)
+eventUntitled=Nimetön
+
+# Tooltips of events or todos
+tooltipTitle=Otsikko:
+tooltipLocation=Osoite:
+# event date, usually an interval, such as
+# Date: 7:00--8:00 Thu 9 Oct 2011
+# Date: Thu 9 Oct 2000 -- Fri 10 Oct 2000
+tooltipDate=Päivämäärä:
+# event calendar name
+tooltipCalName=Kalenterin nimi:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Tila:
+# event organizer
+tooltipOrganizer=Järjestäjä:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Alkaa:
+tooltipDue=Valmis:
+tooltipPriority=Tärkeysaste:
+tooltipPercent=% suoritettu:
+tooltipCompleted=Suoritettu:
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.CHAIR=%1$S johtaa tapahtumaa.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT=%1$S ei osallistu.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT=%1$S on valinnainen osallistuja.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT=%1$S on välttämätön osallistuja.
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S on vahvistanut osallistumisen.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S ei osallistu.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DELEGATED=%1$S on delegoinut osallistumisen.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION=%1$S ei ole vielä vastannut.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S on vahvistanut osallistumisen alustavasti.
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (ryhmä)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (resurssi)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (tila)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=Uusi
+Open=Avaa
+filepickerTitleImport=Tuo
+filepickerTitleExport=Vie
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterXml=XML-dokumentti (%1$S)
+filterHtml=Verkkosivu (%1$S)
+filterOutlookCsv=Outlook-CSV (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=Tapahtui virhe
+httpPutError=Kalenteritiedoston julkaiseminen epäonnistui.\nStatuskoodi: %1$S: %2$S
+otherPutError=Kalenteritiedoston julkaiseminen epäonnistui.\nStatuskoodi: 0x%1$S
+
+# LOCALIZATION NOTE (readOnlyMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+readOnlyMode=Kalenterin "%1$S" datan luvussa on tapahtunut virhe. Kalenteri on asetettu vain luku -tilaan, koska jos tähän kalenteriin tehdään muutoksia, siitä seuraa todennäköisesti tietojen häviämistä. Voit muuttaa tämän valitsemalla "Muokkaa kalenteria".
+
+# LOCALIZATION NOTE (disabledMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+disabledMode=Kalenterin "%1$S" datan luvussa on tapahtunut virhe. Kalenteri on poistettu käytöstä, kunnes sen käyttö on turvallista.
+
+# LOCALIZATION NOTE (minorError):
+# used for an message like 'There has been an error reading data for calendar: Home. However this...'
+# %1$S will be replaced with the name of a calendar
+minorError=Kalenterin "%1$S" datan luvussa on tapahtunut virhe. Tämä virhe on kuitenkin vähäinen, joten ohjelma yrittää jatkaa.
+
+# LOCALIZATION NOTE (stillReadOnlyError):
+# used for an message like 'There has been an error reading data for calendar: Home.'
+# %1$S will be replaced with the name of a calendar
+stillReadOnlyError=Kalenterin "%1$S" datan luvussa on tapahtunut virhe.
+utf8DecodeError=Tapahtui virhe dekoodattaessa iCalendar-tiedostoa (.ics) UTF-8-muodossa. Varmista, että tiedosto, mukaanlukien symbolit ja aksentilliset kirjaimet, on koodattu UTF-8:lla.
+icsMalformedError=iCalendar-tiedoston (.ics) jäsennys epäonnistui. Varmista, että tiedoston sisältö on iCalendar-syntaksin mukainen.
+itemModifiedOnServerTitle=Merkintä palvelimella on muuttunut
+itemModifiedOnServer=Tätä palvelimella olevaa merkintää on muutettu viime aikoina.\n
+modifyWillLoseData=Jos lähetät omat muutoksesi, palvelimella tehdyt muutokset ylikirjoitetaan.
+deleteWillLoseData=Jos tämä merkintä poistetaan, palvelimella tehdyt muutokset menetetään.
+updateFromServer=Unohda omat muutokseni ja lataa uudelleen
+proceedModify=Lähetä omat muutokseni silti
+proceedDelete=Poista silti
+dav_notDav=Resurssi kohteessa %1$S ei ole joko DAV-kokoelma tai käytettävissä
+dav_davNotCaldav=Resurssi kohteessa %1$S on DAV-kokoelma muttei CalDAV-kalenteri
+itemPutError=Tapahtui virhe tallennettaessa merkintää palvelimelle.
+itemDeleteError=Tapahtui virhe poistettaessa merkintää palvelimelta.
+caldavRequestError=Tapahtui virhe lähetettäessä kutsua.
+caldavResponseError=Tapahtui virhe lähetettäessä vastausta kutsuun.
+caldavRequestStatusCode=Tilakoodi: %1$S
+caldavRequestStatusCodeStringGeneric=Pyyntöä ei voitu käsitellä.
+caldavRequestStatusCodeString400=Pyynnön syntaksi on virheellinen eikä sitä siksi voitu käsitellä.
+caldavRequestStatusCodeString403=Käyttäjällä ei ole pyynnön suorittamiseen vaadittua lupaa.
+caldavRequestStatusCodeString404=Resurssia ei löytynyt.
+caldavRequestStatusCodeString409=Resurssiristiriita.
+caldavRequestStatusCodeString412=Ehto ei täyttynyt.
+caldavRequestStatusCodeString500=Sisäinen palvelinvirhe.
+caldavRequestStatusCodeString502=Virheellinen yhdyskäytävä (välityspalvelimen asetukset?).
+caldavRequestStatusCodeString503=Sisäinen palvelinvirhe (väliaikainen palvelinkatkos?).
+caldavRedirectTitle=Haluatko päivittää sijainnin kalenteriin %1$S?
+caldavRedirectText=Pyynnöt kohteeseen %1$S ohjataan uuteen sijaintiin. Haluatko muuttaa sijainnin seuraavaan arvoon?
+caldavRedirectDisableCalendar=Estä kalenteri
+
+
+# LOCALIZATION NOTE (likelyTimezone):
+# Translators, please put the most likely timezone(s) where the people using
+# your locale will be. Use the Olson ZoneInfo timezone name *in English*,
+# ie "Europe/Paris", (continent or ocean)/(largest city in timezone).
+# Order does not matter, except if two historically different zones now match,
+# such as America/New_York and America/Toronto, will only find first listed.
+# (Particularly needed to guess the most relevant timezones if there are
+# similar timezones at the same June/December GMT offsets with alphabetically
+# earlier ZoneInfo timezone names. Sample explanations for English below.)
+# for english-US:
+# America/Los_Angeles likelier than America/Dawson
+# America/New_York likelier than America/Detroit (NY for US-EasternTime)
+# for english:
+# Europe/London likelier than Atlantic/Canary
+# Europe/Paris likelier than Africa/Ceuta (for WestEuropeanTime)
+# America/Halifax likelier than America/Glace_Bay (Canada-AtlanticTime)
+# America/Mexico_City likelier than America/Cancun
+# America/Argentina/Buenos_Aires likelier than America/Araguaina
+# America/Sao_Paolo (may not recognize: summer-time dates change every year)
+# Asia/Singapore likelier than Antarctica/Casey
+# Asia/Tokyo likelier than Asia/Dili
+# Africa/Lagos likelier than Africa/Algiers (for WestAfricanTime)
+# Africa/Johannesburg likelier than Africa/Blantyre (for SouthAfricanStdTime)
+# Africa/Nairobi likelier than Africa/Addis_Ababa (for EastAfricanTime)
+# Australia/Brisbane likelier than Antarctica/DumontDUrville
+# Australia/Sydney likelier than Australia/Currie or Australia/Hobart
+# Pacific/Auckland likelier than Antarctica/McMurdo
+likelyTimezone=Europe/Helsinki
+
+# Guessed Timezone errors and warnings.
+# Testing note:
+# * remove preference for calendar.timezone.default in userprofile/prefs.js
+# * repeat
+# - set OS timezone to a city (windows: click right on clock in taskbar)
+# - restart
+# - observe guess in error console and verify whether guessed timezone city
+# makes sense for OS city.
+#
+# 'Warning: Operating system timezone "E. South America Standard Time"
+# no longer matches ZoneInfo timezone "America/Sao_Paulo".'
+# Testing notes:
+# - Brasil DST change dates are set every year by decree, so likely out of sync.
+# - Only appears on OSes from which timezone can be obtained
+# (windows; or TZ env var, /etc/localtime target path, or line in
+# /etc/timezone or /etc/sysconfig/clock contains ZoneInfo timezone id).
+# - Windows: turning off "Automatically adjust clock for daylight saving time"
+# can also trigger this warning.
+WarningOSTZNoMatch=Varoitus: Käyttöjärjestelmän aikavyöhyke "%1$S"\nei enää vastaa sisäistä ZoneInfo-aikavyöhykettä "%2$S".
+
+# "Skipping Operating System timezone 'Pacific/New_Country'."
+# Testing note: not easily testable. May occur someday if (non-windows)
+# OS uses different version of ZoneInfo database which has a timezone name
+# that is not included in our current ZoneInfo database (or if the mapping
+# mapping from windows to ZoneInfo timezone ids does).
+SkippingOSTimezone=Ohitetaan käyttöjärjestelmän aikavyöhyke '%1$S'.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Ohitetaan lokaalin aikavyöhyke '%1$S'.
+
+# Testing note: "No match" timezones include Bucharest on W2k.
+# Brazil timezones may be "No match" (change every year, so often out of date,
+# and changes are often more than a week different).
+warningUsingFloatingTZNoMatch=Varoitus: Käytetään "leijuvaa" aikavyöhykettä.\nMikään ZoneInfo-aikavyöhyke ei vastannut käyttöjärjestelmän aikavyöhykettä.
+
+# "Warning: Using guessed timezone
+# America/New York (UTC-0500/-0400).
+# [rfc2445 summer daylight saving shift rules for timezone]
+# This ZoneInfo timezone almost matches/seems to match..."
+# This ZoneInfo timezone was chosen based on ... "
+WarningUsingGuessedTZ=Varoitus: Käytetään arvattua aikavyöhykettä\n%1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=Tämä ZoneInfo-aikavyöhyke melkein vastaa käyttöjärjestelmän aikavyöhykettä.\nTämän johdosta seuraavat kesä- ja talviajan väliset siirtymät eroavat enintään\nviikolla käyttöjärjestelmän aikavyöhykesiirtymästä.\nTiedoissa saattaa olla eroavuuksia, kuten eri aloituspäivä,\nerilainen sääntö tai muun kuin gregoriaanisen kalenterin säännön likiarvo.
+
+TZSeemsToMatchOS=Tämä ZoneInfo-aikavyöhyke näyttäisi vastaavan käyttöjärjestelmän aikavyöhykettä tänä vuonna.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Tämä ZoneInfo-aikavyöhyke valittiin käyttöjärjestelmän aikavyöhyketunnisteen\n"%1$S" perusteella.
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Tämä ZoneInfo-aikavyöhyke valittiin käyttöjärjestelmän aikavyöhykkeen ja suomea käyttävien\nInternetin käyttäjien todennäköisen aikavyöhykkeen yhteensovittamisen perusteella.
+
+TZFromKnownTimezones=Tämä ZoneInfo-aikavyöhyke valittiin etsimällä käyttöjärjestelmän aikavyöhykettä\ntunnettujen aikavyöhykkeiden joukosta aakkosjärjestyksessä.
+
+# Print Layout
+formatListName = Luettelo
+weekPrinterName = Viikkokalenteri
+monthPrinterName = Kuukausikalenteri
+
+# Print Layout
+tasksWithNoDueDate = Tehtävät ilman valmistumispäivää
+
+# Providers
+caldavName=CalDAV
+compositeName=Yhdistelmä
+icsName=iCalendar (ICS)
+memoryName=Väliaikainen (muisti)
+storageName=Paikallinen (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Otsikko
+htmlPrefixWhen=Milloin
+htmlPrefixLocation=Osoite
+htmlPrefixDescription=Kuvaus
+htmlTaskCompleted=%1$S (suoritettu)
+
+# Categories
+addCategory=Lisää tapahtumatyyppi
+multipleCategories=Useita tapahtumatyyppejä
+
+today=Tänään
+tomorrow=Huomenna
+yesterday=Eilen
+
+#Today pane
+eventsonly=Tapahtumat
+eventsandtasks=Tapahtumat ja tehtävät
+tasksonly=Tehtävät
+shortcalendarweek=vko
+
+go=Siirry
+
+# Some languages have different conjugations of 'next' and 'last'. If yours
+# does not, simply repeat the value. This will be used with day names, as in
+# 'next Sunday'.
+next1=seuraava
+next2=seuraava
+last1=viimeinen
+last2=viimeinen
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 muistutus;#1 muistutusta
+
+# LOCALIZATION NOTE (alarmStarts):
+# used for a display the start of an alarm like 'Starts: Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmStarts=Alkaa %1$S
+
+# LOCALIZATION NOTE (alarmTodayAt):
+# used for a display the date-time of an alarm like 'Today at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTodayAt=Tänään %1$S
+
+# LOCALIZATION NOTE (alarmTomorrowAt):
+# used for a display the date-time of an alarm like 'Tomorrow at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTomorrowAt=Huomenna %1$S
+
+# LOCALIZATION NOTE (alarmYesterdayAt):
+# used for a display the date-time of an alarm like 'Yesterday at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmYesterdayAt=Eilen %1$S
+
+# Alarm interface strings
+# LOCALIZATION NOTE: These strings do not get displayed. They are only visible
+# when exporting an item with i.e a DISPLAY alarm, that doesn't have a
+# description set, or an EMAIL alarm that doesn't have a summary set.
+alarmDefaultDescription=Mozillan oletuskuvaus
+alarmDefaultSummary=Mozillan oletusyhteenveto
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=Et voi lykätä muistutusta enempää kuin #1 kuukauden.;Et voi lykätä muistutusta enempää kuin #1 kuukautta.
+
+taskDetailsStatusNeedsAction=Tarvitsee toimintaa
+
+# LOCALIZATION NOTE (taskDetailsStatusInProgress):
+# used for a display of how much of a task is completed '25% Complete'
+# %1$S will be replaced with the number of percentage completed
+taskDetailsStatusInProgress=%1$S %% suoritettu
+taskDetailsStatusCompleted=Suoritettu
+
+# LOCALIZATION NOTE (taskDetailsStatusCompletedOn):
+# used for a display of completion date like 'Completed on Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with the completion date-time of the task
+taskDetailsStatusCompletedOn=Suoritettu %1$S
+taskDetailsStatusCancelled=Peruttu
+
+gettingCalendarInfoCommon=Tarkastetaan kalentereita…
+
+# LOCALIZATION NOTE (gettingCalendarInfoDetail):
+# used for a progress-display of processed like 'Checking Calendar 5 of 10'
+# %1$S will be replaced with the index of the currently processed calendar
+# %2$S will be replaced with the total numbers of calendars
+gettingCalendarInfoDetail=Tarkastetaan kalenteria %1$S/%2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Virhekoodi: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Kuvaus: %1$S
+
+# LOCALIZATION NOTE (errorWriting):
+# used for an message like 'An error occurred when writing to the calendar Home!'
+# %1$S will be replaced with the name of a calendar
+errorWriting2=Tapahtui virhe kirjoitettaessa kalenteriin %1$S! Katso lisätietoja alta.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=Jos näet tämän viestin muistutuksen hylkäämisen tai lykkäämisen jälkeen ja kyseessä on kalenteri jossa et halua käsitellä tapahtumia, voit merkitä tämän kalenterin vain-luku -kalenteriksi, jos et halua tämän toistuvan. Tee tämä siirtymällä kalenterin ominaisuuksiin napsauttamalla hiiren kakkospainikkeella kalenteria kalenteriluettelossa tai Tehtävät-näkymässä.
+
+# LOCALIZATION NOTE (tooltipCalendarDisabled):
+# used for an alert-message like 'The calendar Home is momentarily not available'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarDisabled=Kalenteri %1$S on hetkellisesti poissa käytöstä
+
+# LOCALIZATION NOTE (tooltipCalendarReadOnly):
+# used for an message like 'The calendar Home is readonly'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarReadOnly=Kalenteri %1$S on vain luettavissa
+
+taskEditInstructions=Lisää uusi tehtävä napsauttamalla tästä
+taskEditInstructionsReadonly=Valitse kalenteri, johon voi kirjoittaa
+taskEditInstructionsCapability=Valitse kalenteri, joka tukee tehtäviä
+
+eventDetailsStartDate=Alkaa:
+eventDetailsEndDate=Päättyy:
+
+# LOCALIZATION NOTE (datetimeWithTimezone):
+# used for a display of a date-time with timezone 'Thu 2 Oct 2008 13:21', Europe/Paris
+# %1$S will be replaced with the completion date-time
+# %2$S will be replaced with the name of the timezone
+datetimeWithTimezone=%1$S, %2$S
+
+# LOCALIZATION NOTE (singleLongCalendarWeek):
+# used for display of calendar weeks in short form like 'Calendar Week 43'
+# %1$S will be replaced with the index of the week
+singleLongCalendarWeek=Kalenteriviikko %1$S
+
+# LOCALIZATION NOTE (severalLongCalendarWeeks):
+# used for display of calendar weeks in short form like 'Calendar Weeks 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalLongCalendarWeeks=Kalenteriviikot %1$S-%2$S
+
+# LOCALIZATION NOTE (singleShortCalendarWeek):
+# used for display of calendar weeks in short form like 'CW 43'
+# %1$S will be replaced with the index of the week
+singleShortCalendarWeek=vko %1$S
+
+# LOCALIZATION NOTE (severalShortCalendarWeeks):
+# used for display of calendar weeks in short form like 'CWs 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalShortCalendarWeeks=vkot %1$S-%2$S
+
+# LOCALIZATION NOTE (abbreviationOfWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+abbreviationOfWeek=%1$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=vk %1$S
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 päivä;#1 päivää
+dueInHours=#1 tunti;#1 tuntia
+dueInLessThanOneHour=< 1 tunti
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=nominative
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%2$S – %3$S %1$Sta %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S – %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S – %3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= ei aloitus- tai valmistumispäivää
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDueDate):
+# used for intervals in task with only start date
+# displayed form is 'start date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalTaskWithoutDueDate=aloituspäivä %1$S %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=valmistumispäivä %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Aloitusaika
+dragLabelTasksWithOnlyDueDate=Oltava valmiina
+
+deleteTaskLabel=Poista tehtävä
+deleteTaskMessage=Poistetaanko tämä tehtävä?
+deleteTaskAccesskey=P
+deleteItemLabel=Poista
+deleteItemMessage=Poistetaanko tämä merkintä?
+deleteItemAccesskey=P
+deleteEventLabel=Poista tapahtuma
+deleteEventMessage=Poistetaanko tämä tapahtuma?
+deleteEventAccesskey=P
+
+calendarPropertiesEveryMinute=Joka minuutti;Joka #1. minuutti
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=Kielellä %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=Kielellä %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 minuutti;#1 minuuttia
+unitHours=#1 tunti;#1 tuntia
+unitDays=#1 päivä;#1 päivää
+unitWeeks=#1 viikko;#1 viikkoa
+
+# LOCALIZATION NOTE (showCalendar)
+# Used in calendar list context menu
+# %1$S will be replaced with the calendar name
+# uses the access key calendar.context.togglevisible.accesskey
+showCalendar=Näytä %1$S
+hideCalendar=Piilota %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Näytä vain %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Ristiriita kohteen muokkauksessa
+modifyConflictPromptMessage=Avoinna olevaa kohdetta on muokattu sen avaamisen jälkeen.
+modifyConflictPromptButton1=Korvaa muut muutokset
+modifyConflictPromptButton2=Hylkää omat muutokseni
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=(delegoija: %1$S)
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=(delegoitu henkilölle %1$S)
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=Päivämäärää ei ole valittu
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..c5e2064963
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY wizard.title "Luo uusi kalenteri" >
+<!ENTITY wizard.label "Luo uusi kalenteri" >
+<!ENTITY wizard.description "Määritä kalenterin sijainti" >
+
+<!ENTITY initialpage.description "Kalenterin voi tallentaa joko tälle tietokoneelle tai palvelimelle, jolloin sitä voi käyttää verkossa. Voit myös jakaa jonkin kalenterin ystäviesi tai työtovereidesi kanssa." >
+<!ENTITY initialpage.computer.label "Tällä tietokoneella">
+<!ENTITY initialpage.network.label "Verkossa">
+
+<!ENTITY locationpage.description "Määritä tiedot, jotka tarvitaan kalenterin avaamiseen" >
+<!ENTITY locationpage.login.description "Valinnainen: kirjoita käyttäjätunnus ja salasana" >
+<!ENTITY locationpage.username.label "Käyttäjätunnus:" >
+<!ENTITY locationpage.password.label "Salasana:" >
+
+<!ENTITY custompage.shortdescription "Kustomoi kalenteri" >
+<!ENTITY custompage.longdescription "Voit antaa tälle kalenterille lempinimen sekä määrittää tämän kalenterin tapahtumat tietyn värisiksi." >
+
+<!ENTITY finishpage.shortdescription "Kalenteri on luotu" >
+<!ENTITY finishpage.longdescription "Kalenteri on luotu." >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "Muu">
+
+<!ENTITY buttons.create.label "Luo kalenteri">
+<!ENTITY buttons.create.accesskey "L">
+
+<!ENTITY buttons.find.label "Etsi kalentereita">
+<!ENTITY buttons.find.accesskey "E">
+
+<!ENTITY buttons.back.label "Takaisin">
+<!ENTITY buttons.back.accesskey "T">
+
+<!ENTITY buttons.subscribe.label "Tilaa">
+<!ENTITY buttons.subscribe.accesskey "i">
+
+<!ENTITY calendartype.label "Kalenterin tyyppi:">
+<!ENTITY location.label "Sijainti:">
+<!ENTITY location.placeholder "Kalenteripalvelimen URL tai palvelinnimi">
+
+<!ENTITY network.nocredentials.label "Tämä sijainti ei vaadi kirjautumistietoja">
+<!ENTITY network.loading.description "Odota hetki, kalentereitasi etsitään.">
+<!ENTITY network.notfound.description "Tästä sijainnista ei löytynyt kalentereita. Tarkista asetukset.">
+<!ENTITY network.authfail.description "Syöttämiäsi kirjautumistietoja ei hyväksytty. Tarkista asetukset.">
+
+<!ENTITY network.subscribe.single.description "Valitse kalenterit, jotka haluat tilata.">
+<!ENTITY network.subscribe.multiple.description "Tässä sijainnissa on monen tyyppisiä kalentereita. Valitse ensin kalenterin tyyppi ja valitse sitten kalenterit, jotka haluat tilata.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..7897310e12
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/calendarCreation.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+error.invalidUri=Kirjoita kelvollinen sijainti.
+error.alreadyExists=Olet jo tilannut tässä sijainnissa olevan kalenterin.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/categories.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/categories.properties
new file mode 100644
index 0000000000..846344fd0d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/categories.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# default categories
+
+categories2=Asian tila,Henkilökohtainen,Idea,Jatkotoimenpide,Kaupan asiakas,Kilpailu,Kokous,Lahja,Lakitoimiston asiakas,Liiketoiminta,Loma,Matka,Ongelma,Projekti,Sekalainen,Soitto,Suosikki,Syntymäpäivä,Tavarantoimittaja,Vapaapäivä,Vuosipäivä,Yleinen vapaapäivä
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dateFormat.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dateFormat.properties
new file mode 100644
index 0000000000..284bc95350
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dateFormat.properties
@@ -0,0 +1,146 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# In case you are looking for the note about different declensions on date
+# formats, here it is. If your language doesn't use different declensions of
+# month names, you shouldn't have much work. Just leave the *.monthFormat
+# string on "nominative" and the string month.*.name will be filled in.
+#
+# If you need a different form for a string, you can change the
+# *.monthFormat to a different value. Supported values are currently:
+# nominative (default), genitive
+# The modified month name form will then be filled in accordingly. If this
+# system does not suit your needs, please file a bug!
+
+# LOCALIZATION NOTE (month.*.name):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "nominative" or in places
+# where using a different declension is not yet supported.
+month.1.name=tammikuu
+month.2.name=helmikuu
+month.3.name=maaliskuu
+month.4.name=huhtikuu
+month.5.name=toukokuu
+month.6.name=kesäkuu
+month.7.name=heinäkuu
+month.8.name=elokuu
+month.9.name=syyskuu
+month.10.name=lokakuu
+month.11.name=marraskuu
+month.12.name=joulukuu
+
+# LOCALIZATION NOTE (month.*.genitive):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "genitive"
+# If your language doesn't use different declensions, just set the same
+# values as for month.*.name.
+month.1.genitive=tammikuun
+month.2.genitive=helmikuun
+month.3.genitive=maaliskuun
+month.4.genitive=huhtikuun
+month.5.genitive=toukokuun
+month.6.genitive=kesäkuun
+month.7.genitive=heinäkuun
+month.8.genitive=elokuun
+month.9.genitive=syyskuun
+month.10.genitive=lokakuun
+month.11.genitive=marraskuun
+month.12.genitive=joulukuun
+
+month.1.Mmm=tammi
+month.2.Mmm=helmi
+month.3.Mmm=maalis
+month.4.Mmm=huhti
+month.5.Mmm=touko
+month.6.Mmm=kesä
+month.7.Mmm=heinä
+month.8.Mmm=elo
+month.9.Mmm=syys
+month.10.Mmm=loka
+month.11.Mmm=marras
+month.12.Mmm=joulu
+
+day.1.name=sunnuntai
+day.2.name=maanantai
+day.3.name=tiistai
+day.4.name=keskiviikko
+day.5.name=torstai
+day.6.name=perjantai
+day.7.name=lauantai
+
+day.1.Mmm=su
+day.2.Mmm=ma
+day.3.Mmm=ti
+day.4.Mmm=ke
+day.5.Mmm=to
+day.6.Mmm=pe
+day.7.Mmm=la
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=su
+day.2.short=ma
+day.3.short=ti
+day.4.short=ke
+day.5.short=to
+day.6.short=pe
+day.7.short=la
+
+# Localizable day's date
+day.1.number=1
+day.2.number=2
+day.3.number=3
+day.4.number=4
+day.5.number=5
+day.6.number=6
+day.7.number=7
+day.8.number=8
+day.9.number=9
+day.10.number=10
+day.11.number=11
+day.12.number=12
+day.13.number=13
+day.14.number=14
+day.15.number=15
+day.16.number=16
+day.17.number=17
+day.18.number=18
+day.19.number=19
+day.20.number=20
+day.21.number=21
+day.22.number=22
+day.23.number=23
+day.24.number=24
+day.25.number=25
+day.26.number=26
+day.27.number=27
+day.28.number=28
+day.29.number=29
+day.30.number=30
+day.31.number=31
+
+# LOCALIZATION NOTE (dayOrdinalSymbol):
+# Allows to insert a string, a character or a symbol after the number of a
+# monthday in order to give it the meaning of ordinal number e.g. 1 -> 1st etc.
+# It's mainly used when formatting dates with both monthday and month name. It
+# affects the following localizable strings that hence must be localized *without*
+# any ordinal symbol for the monthday number:
+# dayHeaderLabel, monthlyDaysOfNth_day,
+# yearlyNthOn, daysIntervalBetweenYears,
+# daysIntervalBetweenMonths, daysIntervalInMonth.
+# Write only a single string if the ordinal symbol is the same for every monthday, otherwise
+# write a sequence of _31_ strings (one for each monthday) separated with commas.
+# If your language doesn't require that in the mentioned strings, leave it empty.
+# e.g.
+# dayOrdinalSymbol=.
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# dayOrdinalSymbol=st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,
+# th,th,th,th,th,st,nd,rd,th,th,th,th,th,th,th,st
+# -> daysIntervalBetweenMonths: 'September 29th - November 1st, 2008'
+dayOrdinalSymbol=.
+
+noon=keskipäivällä
+midnight=keskiyöllä
+
+AllDay=koko päivän
+Repeating=(Toistuu)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..a398bcb490
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY reminderdialog.title "Aseta muistutus">
+<!ENTITY reminder.add.label "Lisää">
+<!ENTITY reminder.add.accesskey "L">
+<!ENTITY reminder.remove.label "Poista">
+<!ENTITY reminder.remove.accesskey "P">
+
+<!ENTITY reminder.reminderDetails.label "Muistutuksen lisätiedot">
+<!ENTITY reminder.action.label "Valitse muistutustapa">
+
+<!ENTITY reminder.action.alert.label "Näytä ilmoitus">
+<!ENTITY reminder.action.email.label "Lähetä sähköpostiviesti">
+
+<!ENTITY alarm.units.minutes "minuuttia" >
+<!ENTITY alarm.units.hours "tuntia" >
+<!ENTITY alarm.units.days "päivää" >
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/global.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/global.dtd
new file mode 100644
index 0000000000..d65c7f0a56
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/global.dtd
@@ -0,0 +1,54 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY time.midnight "keskiyöllä" >
+<!ENTITY time.noon "keskipäivällä" >
+
+<!-- Day Names -->
+<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
+ only used in Preferences > Views > Workweek groupbox -->
+<!ENTITY day.1.Ddd "su" >
+<!ENTITY day.1.Ddd.accesskey "s">
+<!ENTITY day.2.Ddd "ma" >
+<!ENTITY day.2.Ddd.accesskey "m">
+<!ENTITY day.3.Ddd "ti" >
+<!ENTITY day.3.Ddd.accesskey "t">
+<!ENTITY day.4.Ddd "ke" >
+<!ENTITY day.4.Ddd.accesskey "k">
+<!ENTITY day.5.Ddd "to" >
+<!ENTITY day.5.Ddd.accesskey "o">
+<!ENTITY day.6.Ddd "pe" >
+<!ENTITY day.6.Ddd.accesskey "e">
+<!ENTITY day.7.Ddd "la" >
+<!ENTITY day.7.Ddd.accesskey "a">
+
+<!ENTITY day.1.name "sunnuntai" >
+<!ENTITY day.2.name "maanantai" >
+<!ENTITY day.3.name "tiistai" >
+<!ENTITY day.4.name "keskiviikko" >
+<!ENTITY day.5.name "torstai" >
+<!ENTITY day.6.name "perjantai" >
+<!ENTITY day.7.name "lauantai" >
+
+<!ENTITY month.1.name "tammikuu" >
+<!ENTITY month.2.name "helmikuu" >
+<!ENTITY month.3.name "maaliskuu" >
+<!ENTITY month.4.name "huhtikuu" >
+<!ENTITY month.5.name "toukokuu" >
+<!ENTITY month.6.name "kesäkuu" >
+<!ENTITY month.7.name "heinäkuu" >
+<!ENTITY month.8.name "elokuu" >
+<!ENTITY month.9.name "syyskuu" >
+<!ENTITY month.10.name "lokakuu" >
+<!ENTITY month.11.name "marraskuu" >
+<!ENTITY month.12.name "joulukuu" >
+
+<!ENTITY onemonthbackward.tooltip "Siirry edelliseen kuukauteen" >
+<!ENTITY onemonthforward.tooltip "Siirry seuraavaan kuukauteen" >
+<!ENTITY oneyearbackward.tooltip "Siirry vuosi taaksepäin" >
+<!ENTITY oneyearforward.tooltip "Siirry vuosi eteenpäin" >
+<!ENTITY showToday.tooltip "Siirry tähän päivään">
+<!ENTITY onedayforward.tooltip "Siirry seuraavaan päivään">
+<!ENTITY onedaybackward.tooltip "Siirry edelliseen päivään">
+<!ENTITY showselectedday.tooltip "Näytä valitun päivän tapahtumat">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/menuOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..00d821fc8d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Event Menu -->
+<!ENTITY event.new.event "Uusi tapahtuma…">
+<!ENTITY event.new.event.accesskey "t">
+
+<!ENTITY event.new.task "Uusi tehtävä…">
+<!ENTITY event.new.task.accesskey "h">
+
+<!ENTITY calendar.import.label "Tuo…">
+<!ENTITY calendar.import.accesskey "u">
+
+<!ENTITY calendar.export.label "Vie…">
+<!ENTITY calendar.export.accesskey "V">
+
+<!ENTITY calendar.publish.label "Julkaise…">
+<!ENTITY calendar.publish.accesskey "s">
+
+<!ENTITY calendar.deletecalendar.label "Poista valittu kalenteri…">
+<!ENTITY calendar.deletecalendar.accesskey "P">
+<!ENTITY calendar.unsubscribecalendar.label "Peruuta valitun kalenterin tilaus…">
+<!ENTITY calendar.unsubscribecalendar.accesskey "v">
+
+<!-- LOCALIZATION NOTE (calendar.removecalendar.label): Removing the calendar
+ is the general action of removing it, while deleting means to clear the
+ data and unsubscribing means just taking it out of the calendar list. -->
+<!ENTITY calendar.removecalendar.label "Poista valittu kalenteri…">
+<!ENTITY calendar.removecalendar.accesskey "P">
+
+
+<!ENTITY calendar.menu.customize.label "Muokkaa…">
+<!ENTITY calendar.menu.customize.accesskey "M">
+
+<!ENTITY showUnifinderCmd.label "Etsi tapahtumia">
+<!ENTITY showUnifinderCmd.accesskey "E">
+<!ENTITY showUnifinderCmd.tooltip "Näytä/piilota Etsi tapahtumia -paneeli">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Näytä tehtävät kalenterissa">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "N">
+
+<!ENTITY goTodayCmd.label "Tähän päivään">
+<!ENTITY goTodayCmd.accesskey "h">
+
+<!ENTITY showCurrentView.label "Nykyinen näkymä">
+<!ENTITY showCurrentView.accesskey "N">
+
+<!ENTITY calendar.properties.label "Kalenterin ominaisuudet…">
+<!ENTITY calendar.properties.accesskey "K">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.dtd
new file mode 100644
index 0000000000..17466cc3bc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY migration.title "&brandFullName;: Tietojen tuonti">
+<!ENTITY migration.welcome "Tervetuloa">
+<!ENTITY migration.importing "Tuonti käynnissä">
+<!ENTITY migration.list.description "&brandShortName;iin voi tuoda tiedot monista yleisimmistä sovelluksista. Tältä tietokoneelta löytyi seuraavien sovellusten tietoja. Valitse ne sovellukset, joista haluat tuoda tiedot.">
+<!ENTITY migration.progress.description "Tuodaan valittuja tietoja">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.properties
new file mode 100644
index 0000000000..a41e703a9e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/migration.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = Tuodaan tietoja sovelluksesta %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: Tietojen tuonti
+migrationDescription=%1$S voi tuoda kalenteritiedot monista yleisimmistä sovelluksista. Tietokoneeltasi löytyi seuraavien sovellusten kalenteritietoja. Valitse ne, joista haluat tuoda tiedot.
+finished = Valmis
+disableExtTitle = Yhteensopimaton laajennus löytyi
+disableExtText = Sinulla on asennettuna vanha Mozillan kalenterilaajennus, joka ei ole yhteensopiva Lightningin kanssa. Vanha laajennus poistetaan käytöstä ja %1$S käynnistetään uudelleen.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/provider-uninstall.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..f6da3379bd
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/provider-uninstall.dtd
@@ -0,0 +1,12 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY providerUninstall.title "Poista palveluntarjoajan asennus">
+<!ENTITY providerUninstall.accept.label "Peruuta valittu tilaus">
+<!ENTITY providerUninstall.accept.accesskey "u">
+<!ENTITY providerUninstall.cancel.label "Pidä lisäosa">
+<!ENTITY providerUninstall.cancel.accesskey "P">
+<!ENTITY providerUninstall.preName.label "Olet pyytänyt, että seuraava lisäosa poistetaan tai poistetaan käytöstä:">
+<!ENTITY providerUninstall.postName.label "Tämän seurauksena alla luetellut kalenterit poistuvat käytöstä.">
+<!ENTITY providerUninstall.reinstallNote.label "Voit myös peruuttaa tämän tarjoajan kalenterien tilaukset, paitsi jos aiot myöhemmin asentaa tämän tarjoajan uudelleen.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/timezones.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/timezones.properties
new file mode 100644
index 0000000000..1154c0f6ee
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/calendar/timezones.properties
@@ -0,0 +1,489 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=Paikallinen aika
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# timezone names:
+pref.timezone.Africa.Abidjan=Afrikka/Abidjan
+pref.timezone.Africa.Accra=Afrikka/Accra
+pref.timezone.Africa.Addis_Ababa=Afrikka/Addis Abeba
+pref.timezone.Africa.Algiers=Afrikka/Alger
+pref.timezone.Africa.Asmara=Afrikka/Asmara
+pref.timezone.Africa.Bamako=Afrikka/Bamako
+pref.timezone.Africa.Bangui=Afrikka/Bangui
+pref.timezone.Africa.Banjul=Afrikka/Banjul
+pref.timezone.Africa.Bissau=Afrikka/Bissau
+pref.timezone.Africa.Blantyre=Afrikka/Blantyre
+pref.timezone.Africa.Brazzaville=Afrikka/Brazzaville
+pref.timezone.Africa.Bujumbura=Afrikka/Bujumbura
+pref.timezone.Africa.Cairo=Afrikka/Kairo
+pref.timezone.Africa.Casablanca=Afrikka/Casablanca
+pref.timezone.Africa.Ceuta=Afrikka/Ceuta
+pref.timezone.Africa.Conakry=Afrikka/Conakry
+pref.timezone.Africa.Dakar=Afrikka/Dakar
+pref.timezone.Africa.Dar_es_Salaam=Afrikka/Dar es Salaam
+pref.timezone.Africa.Djibouti=Afrikka/Djibouti
+pref.timezone.Africa.Douala=Afrikka/Douala
+pref.timezone.Africa.El_Aaiun=Afrikka/El Aaiun
+pref.timezone.Africa.Freetown=Afrikka/Freetown
+pref.timezone.Africa.Gaborone=Afrikka/Gaborone
+pref.timezone.Africa.Harare=Afrikka/Harare
+pref.timezone.Africa.Johannesburg=Afrikka/Johannesburg
+pref.timezone.Africa.Kampala=Afrikka/Kampala
+pref.timezone.Africa.Khartoum=Afrikka/Khartum
+pref.timezone.Africa.Kigali=Afrikka/Kigali
+pref.timezone.Africa.Kinshasa=Afrikka/Kinshasa
+pref.timezone.Africa.Lagos=Afrikka/Lagos
+pref.timezone.Africa.Libreville=Afrikka/Libreville
+pref.timezone.Africa.Lome=Afrikka/Lome
+pref.timezone.Africa.Luanda=Afrikka/Luanda
+pref.timezone.Africa.Lubumbashi=Afrikka/Lubumbashi
+pref.timezone.Africa.Lusaka=Afrikka/Lusaka
+pref.timezone.Africa.Malabo=Afrikka/Malabo
+pref.timezone.Africa.Maputo=Afrikka/Maputo
+pref.timezone.Africa.Maseru=Afrikka/Maseru
+pref.timezone.Africa.Mbabane=Afrikka/Mbabane
+pref.timezone.Africa.Mogadishu=Afrikka/Mogadishu
+pref.timezone.Africa.Monrovia=Afrikka/Monrovia
+pref.timezone.Africa.Nairobi=Afrikka/Nairobi
+pref.timezone.Africa.Ndjamena=Afrikka/Ndjamena
+pref.timezone.Africa.Niamey=Afrikka/Niamey
+pref.timezone.Africa.Nouakchott=Afrikka/Nouakchott
+pref.timezone.Africa.Ouagadougou=Afrikka/Ouagadougou
+pref.timezone.Africa.Porto-Novo=Afrikka/Porto-Novo
+pref.timezone.Africa.Sao_Tome=Afrikka/Sao Tome
+pref.timezone.Africa.Tripoli=Afrikka/Tripoli
+pref.timezone.Africa.Tunis=Afrikka/Tunis
+pref.timezone.Africa.Windhoek=Afrikka/Windhoek
+pref.timezone.America.Adak=Amerikka/Adak
+pref.timezone.America.Anchorage=Amerikka/Anchorage
+pref.timezone.America.Anguilla=Amerikka/Anguilla
+pref.timezone.America.Antigua=Amerikka/Antigua
+pref.timezone.America.Araguaina=Amerikka/Araguaina
+pref.timezone.America.Argentina.Buenos_Aires=Amerikka/Argentiina/Buenos Aires
+pref.timezone.America.Argentina.Catamarca=Amerikka/Argentiina/Catamarca
+pref.timezone.America.Argentina.Cordoba=Amerikka/Argentiina/Cordoba
+pref.timezone.America.Argentina.Jujuy=Amerikka/Argentiina/Jujuy
+pref.timezone.America.Argentina.La_Rioja=Amerikka/Argentiina/La Rioja
+pref.timezone.America.Argentina.Mendoza=Amerikka/Argentiina/Mendoza
+pref.timezone.America.Argentina.Rio_Gallegos=Amerikka/Argentiina/Rio Gallegos
+pref.timezone.America.Argentina.San_Juan=Amerikka/Argentiina/San Juan
+pref.timezone.America.Argentina.Tucuman=Amerikka/Argentiina/Tucuman
+pref.timezone.America.Argentina.Ushuaia=Amerikka/Argentiina/Ushuaia
+pref.timezone.America.Aruba=Amerikka/Aruba
+pref.timezone.America.Asuncion=Amerikka/Asuncion
+pref.timezone.America.Atikokan=Amerikka/Atikokan
+pref.timezone.America.Bahia=Amerikka/Bahia
+pref.timezone.America.Barbados=Amerikka/Barbados
+pref.timezone.America.Belem=Amerikka/Belem
+pref.timezone.America.Belize=Amerikka/Belize
+pref.timezone.America.Blanc-Sablon=Amerikka/Blanc-Sablon
+pref.timezone.America.Boa_Vista=Amerikka/Boa Vista
+pref.timezone.America.Bogota=Amerikka/Bogota
+pref.timezone.America.Boise=Amerikka/Boise
+pref.timezone.America.Cambridge_Bay=Amerikka/Cambridge Bay
+pref.timezone.America.Campo_Grande=Amerikka/Campo Grande
+pref.timezone.America.Cancun=Amerikka/Cancun
+pref.timezone.America.Caracas=Amerikka/Caracas
+pref.timezone.America.Cayenne=Amerikka/Cayenne
+pref.timezone.America.Cayman=Amerikka/Cayman
+pref.timezone.America.Chicago=Amerikka/Chicago
+pref.timezone.America.Chihuahua=Amerikka/Chihuahua
+pref.timezone.America.Costa_Rica=Amerikka/Costa Rica
+pref.timezone.America.Cuiaba=Amerikka/Cuiaba
+pref.timezone.America.Curacao=Amerikka/Curacao
+pref.timezone.America.Danmarkshavn=Amerikka/Danmarkshavn
+pref.timezone.America.Dawson=Amerikka/Dawson
+pref.timezone.America.Dawson_Creek=Amerikka/Dawson Creek
+pref.timezone.America.Denver=Amerikka/Denver
+pref.timezone.America.Detroit=Amerikka/Detroit
+pref.timezone.America.Dominica=Amerikka/Dominica
+pref.timezone.America.Edmonton=Amerikka/Edmonton
+pref.timezone.America.Eirunepe=Amerikka/Eirunepe
+pref.timezone.America.El_Salvador=Amerikka/El Salvador
+pref.timezone.America.Fortaleza=Amerikka/Fortaleza
+pref.timezone.America.Glace_Bay=Amerikka/Glace Bay
+pref.timezone.America.Godthab=Amerikka/Godthab
+pref.timezone.America.Goose_Bay=Amerikka/Goose Bay
+pref.timezone.America.Grand_Turk=Amerikka/Grand Turk
+pref.timezone.America.Grenada=Amerikka/Grenada
+pref.timezone.America.Guadeloupe=Amerikka/Guadeloupe
+pref.timezone.America.Guatemala=Amerikka/Guatemala
+pref.timezone.America.Guayaquil=Amerikka/Guayaquil
+pref.timezone.America.Guyana=Amerikka/Guyana
+pref.timezone.America.Halifax=Amerikka/Halifax
+pref.timezone.America.Havana=Amerikka/Havana
+pref.timezone.America.Hermosillo=Amerikka/Hermosillo
+pref.timezone.America.Indiana.Indianapolis=Amerikka/Indiana/Indianapolis
+pref.timezone.America.Indiana.Knox=Amerikka/Indiana/Knox
+pref.timezone.America.Indiana.Marengo=Amerikka/Indiana/Marengo
+pref.timezone.America.Indiana.Petersburg=Amerikka/Indiana/Petersburg
+pref.timezone.America.Indiana.Vevay=Amerikka/Indiana/Vevay
+pref.timezone.America.Indiana.Vincennes=Amerikka/Indiana/Vincennes
+pref.timezone.America.Inuvik=Amerikka/Inuvik
+pref.timezone.America.Iqaluit=Amerikka/Iqaluit
+pref.timezone.America.Jamaica=Amerikka/Jamaika
+pref.timezone.America.Juneau=Amerikka/Juneau
+pref.timezone.America.Kentucky.Louisville=Amerikka/Kentucky/Louisville
+pref.timezone.America.Kentucky.Monticello=Amerikka/Kentucky/Monticello
+pref.timezone.America.La_Paz=Amerikka/La Paz
+pref.timezone.America.Lima=Amerikka/Lima
+pref.timezone.America.Los_Angeles=Amerikka/Los Angeles
+pref.timezone.America.Maceio=Amerikka/Maceio
+pref.timezone.America.Managua=Amerikka/Managua
+pref.timezone.America.Manaus=Amerikka/Manaus
+pref.timezone.America.Martinique=Amerikka/Martinique
+pref.timezone.America.Mazatlan=Amerikka/Mazatlan
+pref.timezone.America.Menominee=Amerikka/Menominee
+pref.timezone.America.Merida=Amerikka/Merida
+pref.timezone.America.Mexico_City=Amerikka/Mexico
+pref.timezone.America.Miquelon=Amerikka/Miquelon
+pref.timezone.America.Moncton=Amerikka/Moncton
+pref.timezone.America.Monterrey=Amerikka/Monterrey
+pref.timezone.America.Montevideo=Amerikka/Montevideo
+pref.timezone.America.Montreal=Amerikka/Montreal
+pref.timezone.America.Montserrat=Amerikka/Montserrat
+pref.timezone.America.Nassau=Amerikka/Nassau
+pref.timezone.America.New_York=Amerikka/New York
+pref.timezone.America.Nipigon=Amerikka/Nipigon
+pref.timezone.America.Nome=Amerikka/Nome
+pref.timezone.America.Noronha=Amerikka/Noronha
+pref.timezone.America.North_Dakota.Center=Amerikka/Pohjois-Dakota/Center
+pref.timezone.America.North_Dakota.New_Salem=Amerikka/Pohjois-Dakota/New Salem
+pref.timezone.America.Panama=Amerikka/Panama
+pref.timezone.America.Pangnirtung=Amerikka/Pangnirtung
+pref.timezone.America.Paramaribo=Amerikka/Paramaribo
+pref.timezone.America.Phoenix=Amerikka/Phoenix
+pref.timezone.America.Port-au-Prince=Amerikka/Port-au-Prince
+pref.timezone.America.Port_of_Spain=Amerikka/Port of Spain
+pref.timezone.America.Porto_Velho=Amerikka/Porto Velho
+pref.timezone.America.Puerto_Rico=Amerikka/Puerto Rico
+pref.timezone.America.Rainy_River=Amerikka/Rainy River
+pref.timezone.America.Rankin_Inlet=Amerikka/Rankin Inlet
+pref.timezone.America.Recife=Amerikka/Recife
+pref.timezone.America.Regina=Amerikka/Regina
+pref.timezone.America.Rio_Branco=Amerikka/Rio Branco
+pref.timezone.America.Santiago=Amerikka/Santiago
+pref.timezone.America.Santo_Domingo=Amerikka/Santo Domingo
+pref.timezone.America.Sao_Paulo=Amerikka/Sao Paulo
+pref.timezone.America.Scoresbysund=Amerikka/Scoresbysund
+pref.timezone.America.Shiprock=Amerikka/Shiprock
+pref.timezone.America.St_Johns=Amerikka/St. Johns
+pref.timezone.America.St_Kitts=Amerikka/St. Kitts
+pref.timezone.America.St_Lucia=Amerikka/St. Lucia
+pref.timezone.America.St_Thomas=Amerikka/St. Thomas
+pref.timezone.America.St_Vincent=Amerikka/St. Vincent
+pref.timezone.America.Swift_Current=Amerikka/Swift Current
+pref.timezone.America.Tegucigalpa=Amerikka/Tegucigalpa
+pref.timezone.America.Thule=Amerikka/Thule
+pref.timezone.America.Thunder_Bay=Amerikka/Thunder Bay
+pref.timezone.America.Tijuana=Amerikka/Tijuana
+pref.timezone.America.Toronto=Amerikka/Toronto
+pref.timezone.America.Tortola=Amerikka/Tortola
+pref.timezone.America.Vancouver=Amerikka/Vancouver
+pref.timezone.America.Whitehorse=Amerikka/Whitehorse
+pref.timezone.America.Winnipeg=Amerikka/Winnipeg
+pref.timezone.America.Yakutat=Amerikka/Yakutat
+pref.timezone.America.Yellowknife=Amerikka/Yellowknife
+pref.timezone.Antarctica.Casey=Antarktis/Casey
+pref.timezone.Antarctica.Davis=Antarktis/Davis
+pref.timezone.Antarctica.DumontDUrville=Antarktis/DumontDUrville
+pref.timezone.Antarctica.Mawson=Antarktis/Mawson
+pref.timezone.Antarctica.McMurdo=Antarktis/McMurdo
+pref.timezone.Antarctica.Palmer=Antarktis/Palmer
+pref.timezone.Antarctica.Rothera=Antarktis/Rothera
+pref.timezone.Antarctica.South_Pole=Antarktis/Etelänapa
+pref.timezone.Antarctica.Syowa=Antarktis/Syowa
+pref.timezone.Antarctica.Vostok=Antarktis/Vostok
+pref.timezone.Arctic.Longyearbyen=Arktis/Longyearbyen
+pref.timezone.Asia.Aden=Aasia/Aden
+pref.timezone.Asia.Almaty=Aasia/Almaty
+pref.timezone.Asia.Amman=Aasia/Amman
+pref.timezone.Asia.Anadyr=Aasia/Anadyr
+pref.timezone.Asia.Aqtau=Aasia/Aqtau
+pref.timezone.Asia.Aqtobe=Aasia/Aqtöbe
+pref.timezone.Asia.Ashgabat=Aasia/Ašgabat
+pref.timezone.Asia.Baghdad=Aasia/Bagdad
+pref.timezone.Asia.Bahrain=Aasia/Bahrain
+pref.timezone.Asia.Baku=Aasia/Baku
+pref.timezone.Asia.Bangkok=Aasia/Bangkok
+pref.timezone.Asia.Beirut=Aasia/Beirut
+pref.timezone.Asia.Bishkek=Aasia/Biškek
+pref.timezone.Asia.Brunei=Aasia/Brunei
+pref.timezone.Asia.Choibalsan=Aasia/Choibalsan
+pref.timezone.Asia.Chongqing=Aasia/Chongqing
+pref.timezone.Asia.Colombo=Aasia/Colombo
+pref.timezone.Asia.Damascus=Aasia/Damaskos
+pref.timezone.Asia.Dhaka=Aasia/Dhaka
+pref.timezone.Asia.Dili=Aasia/Dili
+pref.timezone.Asia.Dubai=Aasia/Dubai
+pref.timezone.Asia.Dushanbe=Aasia/Dushanbe
+pref.timezone.Asia.Gaza=Aasia/Gaza
+pref.timezone.Asia.Harbin=Aasia/Harbin
+pref.timezone.Asia.Hong_Kong=Aasia/Hong Kong
+pref.timezone.Asia.Hovd=Aasia/Hovd
+pref.timezone.Asia.Irkutsk=Aasia/Irkutsk
+pref.timezone.Asia.Istanbul=Aasia/Istanbul
+pref.timezone.Asia.Jakarta=Aasia/Jakarta
+pref.timezone.Asia.Jayapura=Aasia/Jayapura
+pref.timezone.Asia.Jerusalem=Aasia/Jerusalem
+pref.timezone.Asia.Kabul=Aasia/Kabul
+pref.timezone.Asia.Kamchatka=Aasia/Kamtšatka
+pref.timezone.Asia.Karachi=Aasia/Karachi
+pref.timezone.Asia.Kashgar=Aasia/Kashgar
+pref.timezone.Asia.Kathmandu=Aasia/Kathmandu
+pref.timezone.Asia.Krasnoyarsk=Aasia/Krasnojarsk
+pref.timezone.Asia.Kuala_Lumpur=Aasia/Kuala Lumpur
+pref.timezone.Asia.Kuching=Aasia/Kuching
+pref.timezone.Asia.Kuwait=Aasia/Kuwait
+pref.timezone.Asia.Macau=Aasia/Macao
+pref.timezone.Asia.Magadan=Aasia/Magadan
+pref.timezone.Asia.Makassar=Aasia/Makassar
+pref.timezone.Asia.Manila=Aasia/Manila
+pref.timezone.Asia.Muscat=Aasia/Masqat
+pref.timezone.Asia.Nicosia=Aasia/Nikosia
+pref.timezone.Asia.Novosibirsk=Aasia/Novosibirsk
+pref.timezone.Asia.Omsk=Aasia/Omsk
+pref.timezone.Asia.Oral=Aasia/Oral
+pref.timezone.Asia.Phnom_Penh=Aasia/Phnom Penh
+pref.timezone.Asia.Pontianak=Aasia/Pontianak
+pref.timezone.Asia.Pyongyang=Aasia/Pjongjang
+pref.timezone.Asia.Qatar=Aasia/Qatar
+pref.timezone.Asia.Qyzylorda=Aasia/Qizilorda
+pref.timezone.Asia.Rangoon=Aasia/Rangoon
+pref.timezone.Asia.Riyadh=Aasia/Riad
+pref.timezone.Asia.Sakhalin=Aasia/Sahalin
+pref.timezone.Asia.Samarkand=Aasia/Samarkand
+pref.timezone.Asia.Seoul=Aasia/Soul
+pref.timezone.Asia.Shanghai=Aasia/Shanghai
+pref.timezone.Asia.Singapore=Aasia/Singapore
+pref.timezone.Asia.Taipei=Aasia/Taipei
+pref.timezone.Asia.Tashkent=Aasia/Taškent
+pref.timezone.Asia.Tbilisi=Aasia/Tbilisi
+pref.timezone.Asia.Tehran=Aasia/Teheran
+pref.timezone.Asia.Thimphu=Aasia/Thimphu
+pref.timezone.Asia.Tokyo=Aasia/Tokio
+pref.timezone.Asia.Ulaanbaatar=Aasia/Ulan Bator
+pref.timezone.Asia.Urumqi=Aasia/Ürümqi
+pref.timezone.Asia.Vientiane=Aasia/Vientiane
+pref.timezone.Asia.Vladivostok=Aasia/Vladivostok
+pref.timezone.Asia.Yakutsk=Aasia/Jakutsk
+pref.timezone.Asia.Yekaterinburg=Aasia/Jekaterinburg
+pref.timezone.Asia.Yerevan=Aasia/Jerevan
+pref.timezone.Atlantic.Azores=Atlantin valtameri/Azorit
+pref.timezone.Atlantic.Bermuda=Atlantin valtameri/Bermuda
+pref.timezone.Atlantic.Canary=Atlantin valtameri/Kanariansaaret
+pref.timezone.Atlantic.Cape_Verde=Atlantin valtameri/Kap Verde
+pref.timezone.Atlantic.Faroe=Atlantin valtameri/Färsaaret
+pref.timezone.Atlantic.Madeira=Atlantin valtameri/Madeira
+pref.timezone.Atlantic.Reykjavik=Atlantin valtameri/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Atlantin valtameri/Etelä-Georgia
+pref.timezone.Atlantic.St_Helena=Atlantin valtameri/St. Helena
+pref.timezone.Atlantic.Stanley=Atlantin valtameri/Port Stanley
+pref.timezone.Australia.Adelaide=Australia/Adelaide
+pref.timezone.Australia.Brisbane=Australia/Brisbane
+pref.timezone.Australia.Broken_Hill=Australia/Broken Hill
+pref.timezone.Australia.Currie=Australia/Currie
+pref.timezone.Australia.Darwin=Australia/Darwin
+pref.timezone.Australia.Eucla=Australia/Eucla
+pref.timezone.Australia.Hobart=Australia/Hobart
+pref.timezone.Australia.Lindeman=Australia/Lindeman
+pref.timezone.Australia.Lord_Howe=Australia/Lord Howe
+pref.timezone.Australia.Melbourne=Australia/Melbourne
+pref.timezone.Australia.Perth=Australia/Perth
+pref.timezone.Australia.Sydney=Australia/Sydney
+pref.timezone.Europe.Amsterdam=Eurooppa/Amsterdam
+pref.timezone.Europe.Andorra=Eurooppa/Andorra
+pref.timezone.Europe.Athens=Eurooppa/Ateena
+pref.timezone.Europe.Belgrade=Eurooppa/Belgrad
+pref.timezone.Europe.Berlin=Eurooppa/Berliini
+pref.timezone.Europe.Bratislava=Eurooppa/Bratislava
+pref.timezone.Europe.Brussels=Eurooppa/Bryssel
+pref.timezone.Europe.Bucharest=Eurooppa/Bukarest
+pref.timezone.Europe.Budapest=Eurooppa/Budapest
+pref.timezone.Europe.Chisinau=Eurooppa/Chisinau
+pref.timezone.Europe.Copenhagen=Eurooppa/Kööpenhamina
+pref.timezone.Europe.Dublin=Eurooppa/Dublin
+pref.timezone.Europe.Gibraltar=Eurooppa/Gibraltar
+pref.timezone.Europe.Guernsey=Eurooppa/Guernsey
+pref.timezone.Europe.Helsinki=Eurooppa/Helsinki
+pref.timezone.Europe.Isle_of_Man=Eurooppa/Mansaari
+pref.timezone.Europe.Istanbul=Eurooppa/Istanbul
+pref.timezone.Europe.Jersey=Eurooppa/Jersey
+pref.timezone.Europe.Kaliningrad=Eurooppa/Kaliningrad
+pref.timezone.Europe.Kiev=Eurooppa/Kiova
+pref.timezone.Europe.Lisbon=Eurooppa/Lissabon
+pref.timezone.Europe.Ljubljana=Eurooppa/Ljubljana
+pref.timezone.Europe.London=Eurooppa/Lontoo
+pref.timezone.Europe.Luxembourg=Eurooppa/Luxemburg
+pref.timezone.Europe.Madrid=Eurooppa/Madrid
+pref.timezone.Europe.Malta=Eurooppa/Malta
+pref.timezone.Europe.Mariehamn=Eurooppa/Maarianhamina
+pref.timezone.Europe.Minsk=Eurooppa/Minsk
+pref.timezone.Europe.Monaco=Eurooppa/Monaco
+pref.timezone.Europe.Moscow=Eurooppa/Moskova
+pref.timezone.Europe.Nicosia=Eurooppa/Nikosia
+pref.timezone.Europe.Oslo=Eurooppa/Oslo
+pref.timezone.Europe.Paris=Eurooppa/Pariisi
+pref.timezone.Europe.Podgorica=Eurooppa/Podgorica
+pref.timezone.Europe.Prague=Eurooppa/Praha
+pref.timezone.Europe.Riga=Eurooppa/Riika
+pref.timezone.Europe.Rome=Eurooppa/Rooma
+pref.timezone.Europe.Samara=Eurooppa/Samara
+pref.timezone.Europe.San_Marino=Eurooppa/San Marino
+pref.timezone.Europe.Sarajevo=Eurooppa/Sarajevo
+pref.timezone.Europe.Simferopol=Eurooppa/Simferopol
+pref.timezone.Europe.Skopje=Eurooppa/Skopje
+pref.timezone.Europe.Sofia=Eurooppa/Sofia
+pref.timezone.Europe.Stockholm=Eurooppa/Tukholma
+pref.timezone.Europe.Tallinn=Eurooppa/Tallinna
+pref.timezone.Europe.Tirane=Eurooppa/Tirana
+pref.timezone.Europe.Uzhgorod=Eurooppa/Užhorod
+pref.timezone.Europe.Vaduz=Eurooppa/Vaduz
+pref.timezone.Europe.Vatican=Eurooppa/Vatikaanivaltio
+pref.timezone.Europe.Vienna=Eurooppa/Wien
+pref.timezone.Europe.Vilnius=Eurooppa/Vilna
+pref.timezone.Europe.Volgograd=Eurooppa/Volgograd
+pref.timezone.Europe.Warsaw=Eurooppa/Varsova
+pref.timezone.Europe.Zagreb=Eurooppa/Zagreb
+pref.timezone.Europe.Zaporozhye=Eurooppa/Zaporižžja
+pref.timezone.Europe.Zurich=Eurooppa/Zürich
+pref.timezone.Indian.Antananarivo=Intian valtameri/Antananarivo
+pref.timezone.Indian.Chagos=Intian valtameri/Chagossaaristo
+pref.timezone.Indian.Christmas=Intian valtameri/Joulusaari
+pref.timezone.Indian.Cocos=Intian valtameri/Kookossaaret
+pref.timezone.Indian.Comoro=Intian valtameri/Komorit
+pref.timezone.Indian.Kerguelen=Intian valtameri/Kerguelen
+pref.timezone.Indian.Mahe=Intian valtameri/Mahe
+pref.timezone.Indian.Maldives=Intian valtameri/Malediivit
+pref.timezone.Indian.Mauritius=Intian valtameri/Mauritius
+pref.timezone.Indian.Mayotte=Intian valtameri/Mayotte
+pref.timezone.Indian.Reunion=Intian valtameri/Réunion
+pref.timezone.Pacific.Apia=Tyyni valtameri/Apia
+pref.timezone.Pacific.Auckland=Tyyni valtameri/Auckland
+pref.timezone.Pacific.Chatham=Tyyni valtameri/Chathamsaaret
+pref.timezone.Pacific.Easter=Tyyni valtameri/Pääsiäissaari
+pref.timezone.Pacific.Efate=Tyyni valtameri/Efate
+pref.timezone.Pacific.Enderbury=Tyyni valtameri/Enderburysaari
+pref.timezone.Pacific.Fakaofo=Tyyni valtameri/Fakaofo
+pref.timezone.Pacific.Fiji=Tyyni valtameri/Fidži
+pref.timezone.Pacific.Funafuti=Tyyni valtameri/Funafuti
+pref.timezone.Pacific.Galapagos=Tyyni valtameri/Galápagossaaret
+pref.timezone.Pacific.Gambier=Tyyni valtameri/Gambiersaaret
+pref.timezone.Pacific.Guadalcanal=Tyyni valtameri/Guadalcanal
+pref.timezone.Pacific.Guam=Tyyni valtameri/Guam
+pref.timezone.Pacific.Honolulu=Tyyni valtameri/Honolulu
+pref.timezone.Pacific.Johnston=Tyyni valtameri/Johnstonin atolli
+pref.timezone.Pacific.Kiritimati=Tyyni valtameri/Kiritimati
+pref.timezone.Pacific.Kosrae=Tyyni valtameri/Kosrae
+pref.timezone.Pacific.Kwajalein=Tyyni valtameri/Kwajaleinin atolli
+pref.timezone.Pacific.Majuro=Tyyni valtameri/Majuron atolli
+pref.timezone.Pacific.Marquesas=Tyyni valtameri/Marquesassaaret
+pref.timezone.Pacific.Midway=Tyyni valtameri/Midwaysaaret
+pref.timezone.Pacific.Nauru=Tyyni valtameri/Nauru
+pref.timezone.Pacific.Niue=Tyyni valtameri/Niue
+pref.timezone.Pacific.Norfolk=Tyyni valtameri/Norfolkinsaari
+pref.timezone.Pacific.Noumea=Tyyni valtameri/Nouméa
+pref.timezone.Pacific.Pago_Pago=Tyyni valtameri/Pago Pago
+pref.timezone.Pacific.Palau=Tyyni valtameri/Palau
+pref.timezone.Pacific.Pitcairn=Tyyni valtameri/Pitcairn
+pref.timezone.Pacific.Ponape=Tyyni valtameri/Ponape
+pref.timezone.Pacific.Port_Moresby=Tyyni valtameri/Port Moresby
+pref.timezone.Pacific.Rarotonga=Tyyni valtameri/Rarotonga
+pref.timezone.Pacific.Saipan=Tyyni valtameri/Saipan
+pref.timezone.Pacific.Tahiti=Tyyni valtameri/Tahiti
+pref.timezone.Pacific.Tarawa=Tyyni valtameri/Tarawa
+pref.timezone.Pacific.Tongatapu=Tyyni valtameri/Tongatapu
+pref.timezone.Pacific.Truk=Tyyni valtameri/Chuuk
+pref.timezone.Pacific.Wake=Tyyni valtameri/Wake
+pref.timezone.Pacific.Wallis=Tyyni valtameri/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=Amerikka/Indiana/Tell City
+pref.timezone.America.Indiana.Winamac=Amerikka/Indiana/Winamac
+pref.timezone.America.Marigot=Amerikka/Marigot
+pref.timezone.America.Resolute=Amerikka/Resolute
+pref.timezone.America.St_Barthelemy=Amerikka/St. Barthelemy
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=Amerikka/Argentiina/San Luis
+pref.timezone.America.Santarem=Amerikka/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Aasia/Hồ Chí Minhin kaupunki
+pref.timezone.Asia.Kolkata=Aasia/Kalkutta
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=Amerikka/Argentiina/Salta
+
+# added with 2010i
+pref.timezone.America.Matamoros=Amerikka/Matamoros
+pref.timezone.America.Ojinaga=Amerikka/Ojinaga
+pref.timezone.America.Santa_Isabel=Amerikka/Santa Isabel
+pref.timezone.Antarctica.Macquarie=Antarktis/Macquarie
+pref.timezone.Asia.Novokuznetsk=Aasia/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=Amerikka/Bahia Banderas
+pref.timezone.America.North_Dakota.Beulah=Amerikka/Pohjois-Dakota/Beulah
+pref.timezone.Pacific.Chuuk=Tyyni valtameri/Chuuk
+pref.timezone.Pacific.Pohnpei=Tyyni valtameri/Pohnpei
+
+#added with 2011n
+pref.timezone.Africa.Juba=Afrikka/Juba
+pref.timezone.America.Kralendijk=Amerikka/Kralendijk
+pref.timezone.America.Lower_Princes=Amerikka/Lower Princes
+pref.timezone.America.Metlakatla=Amerikka/Metlakatla
+pref.timezone.America.Sitka=Amerikka/Sitka
+pref.timezone.Asia.Hebron=Aasia/Hebron
+
+#added with 2013a
+pref.timezone.America.Creston=Amerikka/Creston
+pref.timezone.Asia.Khandyga=Aasia/Handyga
+pref.timezone.Asia.Ust-Nera=Aasia/Ust-Nera
+pref.timezone.Europe.Busingen=Eurooppa/Büsingen
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=Antarktis/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=Aasia/Chita
+pref.timezone.Asia.Srednekolymsk=Aasia/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Tyyni valtameri/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=Amerikka/Fort Nelson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Eurooppa/Uljanovsk
+pref.timezone.Europe.Astrakhan=Eurooppa/Astrahan
+pref.timezone.Asia.Barnaul=Aasia/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Aasia/Yangon
+pref.timezone.Asia.Tomsk=Aasia/Tomsk
+pref.timezone.Asia.Famagusta=Aasia/Famagusta
+pref.timezone.Europe.Kirov=Eurooppa/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Eurooppa/Saratov
+pref.timezone.Asia.Atyrau=Aasia/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=Amerikka/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Aasia/Kostanai
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=Amerikka/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Tyyni valtameri/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Eurooppa/Kiova
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.dtd
new file mode 100644
index 0000000000..768537066e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.dtd
@@ -0,0 +1,41 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Account manager window for Instantbird -->
+<!ENTITY accounts.title "Tilit - &brandShortName;">
+<!ENTITY accountManager.width "450">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Pikaviestinnän tila">
+<!ENTITY accountsWindow2.style "width: 41em; height: 27em;">
+
+<!ENTITY accountManager.newAccount.label "Uusi tili">
+<!ENTITY accountManager.newAccount.accesskey "U">
+<!ENTITY accountManager.close.label "Sulje">
+<!ENTITY accountManager.close.accesskey "s">
+<!-- This should match account.commandkey in instantbird.dtd -->
+<!ENTITY accountManager.close.commandkey "a">
+<!-- This title must be short, displayed with a big font size -->
+<!ENTITY accountManager.noAccount.title "Yhtään tiliä ei ole vielä määritelty">
+<!ENTITY accountManager.noAccount.description "Napsauttamalla &accountManager.newAccount.label; -painiketta voit määritellä &brandShortName;in avulla uuden tilin.">
+<!ENTITY account.autoSignOn.label "Kirjaudu käynnistettäessä">
+<!ENTITY account.autoSignOn.accesskey "K">
+<!ENTITY account.connect.label "Yhdistä">
+<!ENTITY account.connect.accesskey "Y">
+<!ENTITY account.disconnect.label "Katkaise yhteys">
+<!ENTITY account.disconnect.accesskey "i">
+<!ENTITY account.delete.label "Poista">
+<!ENTITY account.delete.accesskey "P">
+<!ENTITY account.edit.label "Ominaisuudet">
+<!ENTITY account.edit.accesskey "O">
+<!ENTITY account.moveup.label "Siirrä ylös">
+<!ENTITY account.movedown.label "Siirrä alas">
+<!ENTITY account.cancelReconnection.label "Keskeytä uudelleenyhdistäminen">
+<!ENTITY account.cancelReconnection.accesskey "K">
+<!ENTITY account.copyDebugLog.label "Kopioi virheenpaikannusloki">
+<!ENTITY account.copyDebugLog.accesskey "v">
+<!ENTITY account.showDebugLog.label "Näytä virheenpaikannusloki">
+<!ENTITY account.showDebugLog.accesskey "N">
+<!ENTITY account.connecting "Yhdistetään…">
+<!ENTITY account.disconnecting "Katkaistaan yhteyttä…">
+<!ENTITY account.disconnected "Ei yhdistetty">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.properties
new file mode 100644
index 0000000000..e43a6bec4b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/accounts.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=Salasana tilille %S
+passwordPromptText=Kirjoita salasanasi tilille %S, jotta siihen voidaan muodostaa yhteys.
+passwordPromptSaveCheckbox=Tallenna salasana salasanojen hallintaan.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/commands.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/commands.properties
new file mode 100644
index 0000000000..27a05cab1e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/commands.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (commands):
+# %S is a comma separated list of command names.
+commands=Komennot: %S.\nKirjoita /help &lt;komento&gt; saadaksesi lisäohjeita.
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=Ei ole "%S" komentoa.
+noHelp=Ei olemassa ohjetta komennolle "%S".
+
+sayHelpString=say &lt;viesti&gt;: lähetä viesti ilman, että suoritetaan komentoja.
+rawHelpString=raw &lt;viesti&gt;: lähetä viesti HTML-merkintöjen kanssa.
+helpHelpString=help &lt;nimi&gt;: näytä ohje komennolle &lt;nimi&gt;, tai listaa kaikki mahdolliset komennot jos ei anneta nimeä.
+
+# LOCALIZATION NOTE (statusCommand):
+# %1$S is replaced with a status command name
+# (one of "back", "away", "busy", "dnd", or "offline").
+# %2$S is replaced with the localized version of that status type
+# (one of the 5 strings below).
+statusCommand=%1$S &lt;tilaviesti&gt;: aseta tilaksi %2$S ja siihen liittyvä valinnainen tilaviesti.
+back=saatavilla
+away=poissa
+busy=ei saatavilla
+dnd=ei saatavilla
+offline=ei yhteyttä
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/contacts.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/contacts.properties
new file mode 100644
index 0000000000..4b37695e9d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/contacts.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=Kontaktit
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/conversations.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/conversations.properties
new file mode 100644
index 0000000000..41dbcaa7d6
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/conversations.properties
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=Keskustelu jatkuu otsikolla %1$S yhteiskäytännöllä %2$S.
+
+# LOCALIZATION NOTE (statusChanged):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S on nyt %2$S.
+# LOCALIZATION NOTE (statusChangedWithStatusText):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+# %3$S is the status text (eg. "I'm currently away from the computer").
+statusChangedWithStatusText=%1$S on nyt %2$S: %3$S.
+# LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
+# special case of the previous 2 strings for when the status was
+# previously unknown. These 2 strings should not mislead the user
+# into thinking the person's status has just changed.
+statusChangedFromUnknown=%1$S on %2$S.
+statusChangedFromUnknownWithStatusText=%1$S on %2$S: %3$S.
+# LOCALIZATION NOTE (statusKnown[WithStatusText]):
+# special case of the previous 2 strings for when an account has just
+# been reconnected, so the status is now known. These 2 strings should not
+# mislead the user into thinking the person's status has just changed.
+statusKnown=Tilisi yhteys palautettiin (%1$S on %2$S).
+statusKnownWithStatusText=Your account has been reconnected (%1$S is %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=Tilisi ei ole yhdistetty (käyttäjän %S tila ei ole enää tiedossa).
+
+accountDisconnected=Tilisi ei ole yhdistetty.
+accountReconnected=Tilisi yhteys palautettiin.
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Automaattivastaus - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=Huoneelle ei ole asetettu aihetta.
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=Aihe keskustelulle %1$S on: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=Ei aihetta keskustelulle %S.
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S muutti keskustelun aiheeksi: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S tyhjensi keskustelun aiheen.
+
+# LOCALIZATION NOTE (nickSet):
+# This is displayed as a system message when a participant changes his/her
+# nickname in a conversation.
+# %1$S is the old nick.
+# %2$S is the new nick.
+nickSet=%1$S tunnetaan nyt nimellä %2$S.
+# LOCALIZATION NOTE (nickSet.you):
+# This is displayed as a system message when your nickname is changed.
+# %S is your new nick.
+nickSet.you=Sinut tunnetaan nyt nimellä %S.
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+# ellipsis is used when copying a part of a message to show that the message was cut
+messenger.conversations.selections.ellipsis=[…]
+
+# LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate):
+# These 3 templates are used to format selected messages before copying them.
+# Do not translate the texts between % characters, but feel free to adjust
+# whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
+
+# LOCALIZATION NOTE (message.status):
+# This is used as title attribute for the visible lock icon in case a message
+# was sent encrypted through the OTR protocol.
+message.status=Viesti on salattu
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/facebook.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/facebook.properties
new file mode 100644
index 0000000000..5939ca0e8e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/facebook.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+facebook.chat.name=Facebook-keskustelu
+facebook.disabled=Facebook-keskustelua ei enää tueta, koska Facebook on poistanut käytöstä XMPP-liittymänsä.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/imtooltip.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/imtooltip.properties
new file mode 100644
index 0000000000..caf0513559
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/imtooltip.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buddy.username=Käyttäjätunnus
+buddy.account=Tili
+contact.tags=Tunnisteet
+
+otr.tag=OTR:n tila
+
+encryption.tag=Salauksen tila
+message.status=Viesti on salattu
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/irc.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/irc.properties
new file mode 100644
index 0000000000..0d9467b0cc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/irc.properties
@@ -0,0 +1,209 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (irc.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring an IRC account.
+irc.usernameHint=tunnus
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=Yhteys palvelimeen katkesi
+connection.error.timeOut=Yhteys aikakatkaistiin
+connection.error.invalidUsername=%S ei ole sallittu käyttäjätunnus
+connection.error.invalidPassword=Virheellinen palvelinsalasana
+connection.error.passwordRequired=Salasana vaaditaan
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Kanava
+joinChat.password=_Salasana
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=Palvelin
+options.port=Portti
+options.ssl=Käytä SSL:ää
+options.encoding=Merkistökoodaus
+options.quitMessage=Lopetusviesti
+options.partMessage=Poistumisviesti
+options.showServerTab=Näytä palvelinviestit
+options.alternateNicks=Vaihtoehtoinen tunnus
+
+# LOCALIZATION NOTE (ctcp.version):
+# %1$S is the nickname of the user whose version was requested.
+# %2$S is the version response from the client.
+ctcp.version=Tuttava %1$S käyttää ohjelmaa "%2$S"
+# LOCALIZATION NOTE (ctcp.time):
+# %1$S is the nickname of the user whose time was requested.
+# %2$S is the time response.
+ctcp.time=Käyttäjän %1$S kellonaika on %2$S.
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.action=%S &lt;tehtävä toiminto&gt;: Suorita toiminto.
+command.ban=%S &lt;tunnus!käyttäjä@palvelin&gt;: Anna porttikielto käyttäjille, jotka täsmäävät malliin.
+command.ctcp=%S &lt;tunnus&gt; &lt;viesti&gt;: Lähetä CTCP-viesti tunnukselle.
+command.chanserv=%S &lt;komento&gt;: Lähetä komento ChanServ:lle.
+command.deop=%S &lt;tunnus1&gt;[,&lt;tunnus2&gt;]*: Poista kanavaoperaattorin tila yhdeltä tai useammalta tunnukselta. Sinun täytyy olla kanavaoperaattori voidaksesi tehdä tämän.
+command.devoice=%S &lt;tunnus1&gt;[,&lt;tunnus2&gt;]*: Poista kanavalla puhumisoikeus yhdeltä tai useammalta tunnukselta olettaen, että kanava on valvottu (+m). Sinun täytyy olla kanavaoperaattori voidaksesi tehdä tämän.
+command.invite2=%S &lt;tunnus&gt;[ &lt;tunnus&gt;]* [&lt;kanava&gt;]: Kutsu yksi tai useampi tunnus nimetylle tai avoimelle tai nimetylle kanavalle.
+command.join=%S &lt;huone1&gt;[ &lt;avain1&gt;][,&lt;huone2&gt;[ &lt;avain2&gt;]]*: Liity yhteen tai useampaan kanavaan ja anna niille kanava-avain jos se tarvitaan.
+command.kick=%S &lt;tunnus&gt; [&lt;viesti&gt;]: Poista joku kanavalta. Sinun täytyy olla kanavaoperaattori voidaksesi tehdä tämän.
+command.list=%S: Näytä lista kyseisen verkon keskusteluhuoneista. Varoitus, jotkin palvelimet katkaisevat yhteyden jos teet tämän.
+command.memoserv=%S &lt;komento&gt;: Lähetä komento MemoServ:lle.
+command.modeUser2=%S &lt;tunnus&gt; [(+|-)&lt;tila&gt;]: Lue, aseta tai poista käyttäjän tila.
+command.modeChannel2=%S [&lt;kanava&gt;] [(+|-)&lt;uusi tila&gt; [&lt;parametri&gt;][,&lt;parametri&gt;]*]: Lue, aseta tai poista kanavan tila.
+command.msg=%S &lt;tunnus&gt; &lt;viesti&gt;: Lähetä yksityisviesti tunnukselle (ei kanavalle).
+command.nick=%S &lt;uusi tunnus&gt;: Vaihda tunnuksesi.
+command.nickserv=%S &lt;komento&gt;: Lähetä komento NickServ:lle.
+command.notice=%S &lt;kohde&gt; &lt;viesti&gt;: Lähetä ilmoitus käyttäjälle tai kanavalle.
+command.op=%S &lt;tunnus1&gt;[,&lt;tunnus2&gt;]*: Anna yhdelle tai useammalle käyttäjälle kanavaoperaattorin oikeudet. Sinun täytyy olla kanavaoperaattori voidaksesi tehdä tämän.
+command.operserv=%S &lt;komento&gt;: Lähetä komento OperServ:lle.
+command.part=%S [viesti]: Poistu avoimelta kanavalta valinnaisella viestillä.
+command.ping=%S [&lt;tunnus&gt;]: Selvitä kuinka pitkä viive käyttäjällä on (tai jos käyttäjää ei anneta, palvelimella).
+command.quit=%S &lt;viesti&gt;: Katkaise yhteyds palvelimeen valinnaisella viestillä.
+command.quote=%S &lt;komento&gt;: Lähetä käsittelemätön komento palvelimelle.
+command.time=%S: Näytä IRC-palvelimen paikallinen aika.
+command.topic=%S [&lt;uusi aihe&gt;]: Aseta kanavan aihe.
+command.umode=%S (+|-)&lt;uusi tila&gt;: Aseta tai poista käyttäjän tila.
+command.version=%S &lt;tunnus&gt;: Kysy käyttäjän ohjelman versiota.
+command.voice=%S &lt;tunnus1&gt;[,&lt;tunnus2&gt;]*: Aseta kanavalla puhumisoikeus yhdelle tai useammalle tunnukselle. Sinun täytyy olla kanavaoperaattori voidaksesi tehdä tämän.
+command.whois2=%S [&lt;nick&gt;]: Kysy tietoja tunnuksesta.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the nick and %2$S is the nick and host of the user who joined.
+message.join=Tunnus %1$S [%2$S] tuli huoneeseen.
+message.rejoined=Palasit huoneeseen.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=Sinut potki ulos %1$S%2$S.
+# %1$S is the nick that is kicked, %2$S the nick of the person who kicked
+# %1$S. %3$S is message.kicked.reason, if a kick message was given.
+message.kicked=Tunnuksen %1$S potkaisi ulos %2$S%3$S.
+# %S is the kick message
+message.kicked.reason=: %S
+# %1$S is the new mode, %2$S is the nickname of the user whose mode
+# was changed, and %3$S is who set the mode.
+message.usermode=Tila %1$S tunnukselle %2$S, asettaja %3$S.
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=Kanavatilan %1$S asetti %2$S.
+# %S is the user's mode.
+message.yourmode=Tilasi on %S.
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=Ei voitu käyttää valittua tunnusta Tunnuksesi on edelleen %S.
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=Poistuit huoneesta (Viesti%1$S).
+# %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
+message.parted=Tunnus %1$S poistui huoneesta (Viesti%2$S).
+# %S is the part message supplied by the user.
+message.parted.reason=: %S
+# %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
+message.quit=%1$S poistui huoneesta (Viesti%2$S).
+# The parameter is the quit message given by the user.
+message.quit2=: %S
+# %1$S is the nickname of the user that invited us, %2$S is the conversation
+# name.
+message.inviteReceived=%1$S kutsui sinut kanavalle %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to.
+message.invited=Tunnus %1$S kutsuttiin kanavalle %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to but are already in
+message.alreadyInChannel=%1$S on jo kanavalla %2$S.
+# %S is the nickname of the user who was summoned.
+message.summoned=%S kutsuttiin.
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=WHOIS-tiedot tunnukselle %S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S ei ole linjoilla. WHOWAS-tiedot tunnukselle %1$S:
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+message.whoisEntry=\ua0\ua0\ua0\ua0%1$S: %2$S
+# %S is the nickname that is not known to the server.
+message.unknownNick=Tunnusta %S ei tunneta.
+# %1$S is the nickname of the user who changed the mode and %2$S is the new
+# channel key (password).
+message.channelKeyAdded=%1$S muutti kanavan salasanaksi %2$S.
+message.channelKeyRemoved=%S poisti kanavan salasanan.
+# This will be followed by a list of ban masks.
+message.banMasks=Käyttäjillä seuraavista sijainneista on porttikielto kanavalle %S:
+message.noBanMasks=Ei porttikieltoja kohteelle %S.
+message.banMaskAdded=%2$S on asettanut porttikieltoon käyttäjät sijainneista, jotka vastaavat hakua %1$S.
+message.banMaskRemoved=%2$S on poistanut porttikiellon käyttäjille sijainneista, jotka vastaavat hakua %1$S.
+# LOCALIZATION NOTE (message.ping): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %1$S is the nickname of the user or the server that was pinged.
+# #2 is the delay (in milliseconds).
+message.ping=Ping-vastaus tunnukselta %1$S #2 millisekunnissa.;Ping-vastaus tunnukselta %1$S #2 millisekunnissa.
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=Ei ole kanavaa: %S.
+error.tooManyChannels=Ei voida liittyä kanavalle %S; olet liittynyt liian monelle kanavalle.
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=Tunnus jo käytössä, vaihdetaan tunnukseen %1$S [%2$S].
+error.erroneousNickname=%S ei ole sallittu tunnus.
+error.banned=Sinulla on porttikielto palvelimelle.
+error.bannedSoon=Sinulle annetaan pian porttikielto palvelimelle.
+error.mode.wrongUser=Et voi muuttaa muiden käyttäjien tilaa.
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S ei ole linjoilla.
+error.wasNoSuchNick=Tunnusta ei löytynyt: %S
+error.noSuchChannel=Kanavaa ei löytynyt: %S.
+error.unavailable=Kanavaa %S ei tällä hetkellä kyetä saavuttamaan.
+# %S is the channel name.
+error.channelBanned=Sinut on estetty kanavalla %S.
+error.cannotSendToChannel=Ei voitu lähettää viestiä kanavalle %S.
+error.channelFull=Kanava %S on täynnä.
+error.inviteOnly=Voit liittyä kanavalla %S vain kun sinut kutsutaan.
+error.nonUniqueTarget=Kohde %S ei ole yksilöity user@host tai lyhenne sellaisesta tai olet yrittänyt liittyä liian monelle kanavalle yhtäaikaa.
+error.notChannelOp=Et ole kanavan %S operaattori.
+error.notChannelOwner=Et ole kanavan %S omistaja.
+error.wrongKey=Ei voitu liittyä kanavalle %S. Virheellinen kanavan salasana.
+error.sendMessageFailed=Tapahtui virhe lähetettäessä viimeistä viestiäsi. Yritä uudestaan kun yhteys on palautettu.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=Et voi liittyä kanavalle %1$S. Sinut ohjattiin automaattisesti kanavalle %2$S.
+# %S is the mode that the user tried to set but was not recognized
+# by the server as a valid mode.
+error.unknownMode=”%S” ei ole sallittu käyttäjätila tällä palvelimella.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from a whois response.
+# The human readable ("realname") description of the user.
+tooltip.realname=Nimi
+tooltip.server=Yhteys muodostettu osoitteeseen
+# The username and hostname that the user connects from (usually based on the
+# reverse DNS of the user's IP, but often mangled by the server to
+# protect users).
+tooltip.connectedFrom=Yhteys muodostettu osoitteesta
+tooltip.registered=Rekisteröity
+tooltip.registeredAs=Rekisteröity nimellä
+tooltip.secure=Käytetään suojattua yhteyttä
+# The away message of the user
+tooltip.away=Poissa
+tooltip.ircOp=IRC-operaattori
+tooltip.bot=Botti
+tooltip.lastActivity=Viimeinen toimi
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S sitten
+tooltip.channels=Kanavilla
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+tooltip.serverValue=%1$S (%2$S)
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Kyllä
+no=Ei
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/logger.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/logger.properties
new file mode 100644
index 0000000000..75475d86b2
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/logger.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (badLogfile):
+# %S is the filename of the log file.
+badLogfile=Tyhjä tai rikkoutunut lokitiedosto: %S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/matrix.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/matrix.properties
new file mode 100644
index 0000000000..2453353ac7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/matrix.properties
@@ -0,0 +1,289 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (matrix.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Matrix account.
+matrix.usernameHint=Matrix-tunniste
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=Tallenna käyttöoikeuspoletti
+options.deviceDisplayName=Laitteen näyttönimi
+options.homeserver=Palvelin
+
+# LOCALIZATION NOTE (options.encryption.*):
+# These are strings used to build the status information of the encryption
+# storage, shown in the account manager. %S is one of the statuses and the
+# strings are combined with a pipe (|) between.
+options.encryption.keyBackup=Salausavaimen varmuuskopio: %S
+options.encryption.statusNotOk=ei valmis
+# %1$S is the session ID, %2$S is the session display name
+options.encryption.session=%1$S (%2$S)
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.requestAuth=Odotetaan valtuutusta
+connection.requestAccess=Viimeistellään tunnistusta
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=Palvelin ei tarjoa yhteensopivaa kirjautumiskulkua.
+connection.error.authCancelled=Peruit valtuutusprosessin.
+connection.error.sessionEnded=Istunto kirjattiin ulos.
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for Matrix accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Huone
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from the "User" object.
+# The human readable name of the user.
+tooltip.displayName=Näyttönimi
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S sitten
+tooltip.lastActive=Viimeinen toiminta
+
+# LOCALIZATION NOTE (powerLevel.*):
+# These are the string representations of different standard power levels and strings.
+# %S are one of the power levels, Default/Moderator/Admin/Restricted/Custom.
+powerLevel.default=Oletus
+powerLevel.moderator=Valvoja
+powerLevel.admin=Ylläpitäjä
+powerLevel.restricted=Rajoitettu
+powerLevel.custom=Mukautettu
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$S (%2$S)
+powerLevel.defaultRole=Oletusrooli: %S
+powerLevel.inviteUser=Kutsu käyttäjiä: %S
+powerLevel.kickUsers=Estä käyttäjät: %S
+powerLevel.ban=Estä käyttäjät: %S
+powerLevel.roomAvatar=Vaihda huoneen kuva: %S
+powerLevel.mainAddress=Vaihda huoneen pääosoite: %S
+powerLevel.history=Muutoshistorian näkyvyys: %S
+powerLevel.roomName=Vaihda huoneen nimi: %S
+powerLevel.changePermissions=Vaihda oikeuksia: %S
+powerLevel.server_acl=Lähetä m.room.server_acl-tapahtumia: %S
+powerLevel.upgradeRoom=Päivitä huone: %S
+powerLevel.remove=Poista viestit: %S
+powerLevel.events_default=Tapahtumien oletus: %S
+powerLevel.state_default=Vaihda asetus: %S
+powerLevel.encryption=Ota huoneen salaus käyttöön: %S
+powerLevel.topic=Aseta huoneen aihe: %S
+
+# LOCALIZATION NOTE (detail.*):
+# These are the string representations of different matrix properties.
+# %S will typically be strings with the actual values.
+# Example placeholder: "Foo bar"
+detail.name=Nimi: %S
+# Example placeholder: "My first room"
+detail.topic=Aihe: %S
+# Example placeholder: "5"
+detail.version=Huoneen versio: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=Huoneen tunnus: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=Ylläpitäjä: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=Valvoja: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=Alias: %S
+# Example placeholder: "can_join"
+detail.guest=Vieraiden käyttöoikeus: %S
+# This is a heading, followed by the powerLevel.* strings
+detail.power=Tehotasot:
+
+# LOCALIZATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.ban=%S &lt; userId &gt; [&lt; syy &gt;]: Estä käyttäjä käyttäjätunnuksella userId huoneesta valinnaisella syy-sanomalla. Vaatii oikeuden kieltää käyttäjät.
+command.invite=%S &lt;userId&gt;: Kutsu käyttäjä huoneeseen.
+command.kick=%S &lt;userId&gt; [&lt; reason &gt;]: Estä käyttäjä userId huoneesta valinnaisella syy-sanomalla. Vaatii luvan estää käyttäjiä.
+command.nick=%S &lt;display_name&gt;: Muuta näyttönimesi.
+command.op=%S &lt;userId&gt; [&lt;power level&gt;]: Määritä käyttäjän tehotaso. Syötä kokonaisluku, Käyttäjä: 0, Moderaattori: 50 ja Järjestelmänvalvoja: 100. Ilman arvoa oletus on 50. Vaatii luvan jäsenen tehotason muuttamiseen. Ei toimi muilla järjestelmänvalvojilla kuin sinä.
+command.deop=%S &lt;userId&gt;: Palauta käyttäjä tehotasolle 0 (Käyttäjä). Vaatii luvan jäsenen tehotason muuttamiseen. Ei toimi muilla järjestelmänvalvojilla kuin sinä.
+command.leave=%S: Poistu nykyisestä huoneesta.
+command.topic=%S &lt;topic&gt;: Aseta huoneen aihe. Vaatii käyttöoikeuden huoneen aiheen muuttamiseen.
+command.unban=%S &lt;userId&gt;: Poista esto käyttäjältä, joka on estetty huoneesta. Vaatii oikeudet estää käyttäjiä.
+command.visibility=%S [&lt;visibility&gt;]: Aseta nykyisen huoneen näkyvyys kotipalvelimen huonehakemistossa. Syötä kokonaisluku, Yksityinen: 0, ja Julkinen : 1. Oletuksena on Yksityinen (0) jos arvoa ei anneta. Vaatii luvan muutta huoneen näkyvyyttä.
+command.guest=%S &lt;guest access&gt; &lt;history visibility&gt;: Aseta nykyisen huoneen vierailijoiden käyttöoikeus ja historian näkyvyys. Syötä kaksi kokonaislukua, ensimmäinen vierailijoiden käyttöoikeudelle (ei sallittu: 0 ja sallittu: 1) ja toinen historian näkyvyydelle (piilossa: 0 ja näkyvillä: 1). Vaatii oikeudet muuttaa historian näkyvyyttä.
+command.roomname=%S &lt;name&gt;: Aseta huoneen nimi. Vaatii oikeudet muuttaa huoneen nimi.
+command.detail=%S: Näytä huoneen tiedot.
+command.addalias=%S &lt;alias&gt;: Luo huoneelle alias. Alias pitää olla muodossa '#localname:domain'. Vaatii oikeudet muuttaa aliaksia.
+command.removealias=%S &lt;alias&gt;: Poista huoneen alias. Alias pitää olla muodossa '#localname:domain'. Vaatii oikeudet poistaa alias.
+command.upgraderoom=%S &lt;newVersion&gt;: Päivitä huone tarjottuun versiooon. Vaatii oikeudet päivittää huone.
+command.me=%S &lt;action&gt;: Suorita toiminto.
+command.msg=%S &lt;userId&gt; &lt;message&gt;: Lähetä valitulle käyttäjälle suora viesti.
+command.join=%S &lt;roomId&gt;: Liity valittuun huoneeseen.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the name of the user who banned.
+# %2$S is the name of the user who got banned.
+message.banned=%1$S antoi porttikiellon käyttäjälle %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+# %1$S is the name of the user who accepted the invitation.
+# %2$S is the name of the user who sent the invitation.
+message.acceptedInviteFor=%1$S hyväksyi kutsun käyttäjälle %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S hyväksyi kutsun.
+# %1$S is the name of the user who invited.
+# %2$S is the name of the user who got invited.
+message.invited=%1$S kutsui käyttäjän %2$S.
+# %1$S is the name of the user who changed their display name.
+# %2$S is the old display name.
+# %3$S is the new display name.
+message.displayName.changed=%1$S muutti näyttönimensä %2$S näyttönimeksi %3$S.
+# %1$S is the name of the user who set their display name.
+# %2$S is the newly set display name.
+message.displayName.set=%1$S asetti näyttönimekseen %2$S.
+# %1$S is the name of the user who removed their display name.
+# %2$S is the old display name which has been removed.
+message.displayName.remove=%1$S poisti näyttönimensä %2$S.
+# %S is the name of the user who has joined the room.
+message.joined=%S liittyi huoneeseen.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S hylkäsi kutsun.
+# %S is the name of the user who has left the room.
+message.left=%S poistui huoneesta.
+# %1$S is the name of the user who unbanned.
+# %2$S is the name of the user who got unbanned.
+message.unbanned=%1$S poisti käyttäjän %2$S porttikiellon.
+# %1$S is the name of the user who kicked.
+# %2$S is the name of the user who got kicked.
+message.kicked=%1$S esti käyttäjän %2$S.
+# Same as message.kicked but with a third parameter for the reason.
+# %3$S is the reason for the kick.
+# %1$S is the name of the user who withdrew invitation.
+# %2$S is the name of the user whose invitation has been withdrawn.
+message.withdrewInvite=%1$S peruutti käyttäjän %2$S kutsun.
+# Same as message.withdrewInvite but with a third parameter for the reason.
+# %3$S is the reason the invite was withdrawn.
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S poisti huoneen nimen.
+# %1$S is the name of the user who changed the room name.
+# %2$S is the new room name.
+message.roomName.changed=%1$S vaihtoi huoneen nimeksi %2$S.
+# %1$S is the name of the user who changed the power level.
+# %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
+# power level changes, separated by commas if there are multiple changes.
+# %1$S is the name of the target user whose power level has been changed.
+# %2$S is the old power level.
+# %2$S is the new power level.
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S on sallinut vieraiden liittyä huoneeseen.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S on estänyt vieraita liittymästä huoneeseen.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S teki huoneen tulevan historian näkyväksi kaikille.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S teki huoneen tulevan historian näkyväksi kaikille huoneen jäsenille.
+# %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
+# %S is the name of the user who has made future room history visible to all room members, from the point they joined.
+# %1$S is the name of the user who changed the address.
+# %2$S is the old address.
+# %3$S is the new address.
+# %1$S is the name of the user who added the address.
+# %2$S is a comma delimited list of added addresses.
+# %1$S is the name of the user who removed the address.
+# %2$S is a comma delimited list of removed addresses.
+# %1$S is the name of the user that edited the alias addresses.
+# %2$S is a comma delimited list of removed addresses.
+# %3$S is a comma delmited list of added addresses.
+message.spaceNotSupported=Tämä huone on tila, joka ei ole tuettu.
+message.encryptionStart=Tämän keskustelun viestit on nyt salattu päästä päähän.
+# %1$S is the name of the user who sent the verification request.
+# %2$S is the name of the user that is receiving the verification request.
+message.verification.request2=%1$S haluaa vahvistaa %2$S:n.
+# %1$S is the name of the user who cancelled the verification request.
+# %2$S is the reason given why the verification was cancelled.
+message.verification.cancel2=%1$S perui vahvistuksen syystä: %2$S
+message.verification.done=Vahvistus suoritettu.
+message.decrypting=Puretaan salausta...
+# %1$S is the username of the user that reacted.
+# %2$S is the username of the user that sent the message the reaction was added to.
+# %3$S is the content (typically an emoji) of the reaction.
+
+# Label in the message context menu
+message.action.requestKey=Pyydä avaimet uudelleen
+message.action.retry=Yritä lähettää uudelleen
+message.action.cancel=Peruuta viesti
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+
+options.backupPassphrase=Key Backup Passphrase
+# LOCALIZATION NOTE (options.encryption.*):
+# These are strings used to build the status information of the encryption
+# storage, shown in the account manager. %S is one of the statuses and the
+# strings are combined with a pipe (|) between.
+options.encryption.enabled=Cryptographic Functions: %S
+options.encryption.secretStorage=Secret Storage: %S
+options.encryption.crossSigning=Cross Signing: %S
+options.encryption.statusOk=ok
+options.encryption.needBackupPassphrase=Please enter your backup key passphrase in the protocol options.
+options.encryption.setUpSecretStorage=To set up secret storage, please use another client and afterwards enter the generated backup key passphrase in the "General" tab.
+options.encryption.setUpBackupAndCrossSigning=To activate encryption key backups and cross signing, enter your backup key passphrase in the "General" tab or verify the identity of one of the sessions below.
+connection.error.serverNotFound=Could not identify the Matrix server for the given Matrix account.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S banned %2$S. Reason: %3$S
+# Same as message.kicked but with a third parameter for the reason.
+# %3$S is the reason for the kick.
+message.kickedWithReason=%1$S kicked %2$S. Reason: %3$S
+# Same as message.withdrewInvite but with a third parameter for the reason.
+# %3$S is the reason the invite was withdrawn.
+message.withdrewInviteWithReason=%1$S withdrew %2$S's invitation. Reason: %3$S
+# %1$S is the name of the user who changed the power level.
+# %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
+# power level changes, separated by commas if there are multiple changes.
+message.powerLevel.changed=%1$S changed the power level of %2$S.
+# %1$S is the name of the target user whose power level has been changed.
+# %2$S is the old power level.
+# %2$S is the new power level.
+message.powerLevel.fromTo=%1$S from %2$S to %3$S
+# %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
+message.history.invited=%S made future room history visible to all room members, from the point they are invited.
+# %S is the name of the user who has made future room history visible to all room members, from the point they joined.
+message.history.joined=%S made future room history visible to all room members, from the point they joined.
+# %1$S is the name of the user who changed the address.
+# %2$S is the old address.
+# %3$S is the new address.
+message.alias.main=%1$S set the main address for this room from %2$S to %3$S.
+# %1$S is the name of the user who added the address.
+# %2$S is a comma delimited list of added addresses.
+message.alias.added=%1$S added %2$S as alternative address for this room.
+# %1$S is the name of the user who removed the address.
+# %2$S is a comma delimited list of removed addresses.
+message.alias.removed=%1$S removed %2$S as alternative address for this room.
+# %1$S is the name of the user that edited the alias addresses.
+# %2$S is a comma delimited list of removed addresses.
+# %3$S is a comma delmited list of added addresses.
+message.alias.removedAndAdded=%1$S removed %2$S and added %3$S as address for this room.
+message.decryptionError=Could not decrypt the contents of this message. To request encryption keys from your other devices, right click this message.
+message.redacted=Message was redacted.
+# %1$S is the username of the user that reacted.
+# %2$S is the username of the user that sent the message the reaction was added to.
+# %3$S is the content (typically an emoji) of the reaction.
+message.reaction=%1$S reacted to %2$S with %3$S.
+message.action.redact=Redact
+message.action.report=Report Message
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=An error occurred while sending your message "%1$S".
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/status.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/status.properties
new file mode 100644
index 0000000000..4c5f44162e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/status.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+availableStatusType=Tavoitettavissa
+awayStatusType=Poissa
+unavailableStatusType=Ei tavoitettavissa
+offlineStatusType=Ei verkkoyhteyttä
+invisibleStatusType=Näkymätön
+idleStatusType=Joutilas
+mobileStatusType=Kannettava laite
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Tuntematon
+
+# LOCALIZATION NOTE (statusWithStatusMessage):
+# Used to display the status of a buddy together with its status message.
+# %1$S is the status type, %2$S is the status message text.
+statusWithStatusMessage=%1$S - %2$S
+
+# LOCALIZATION NOTE (messenger.status.defaultIdleAwayMessage):
+# This will be the away message put automatically when the user is idle.
+messenger.status.defaultIdleAwayMessage=Olen tällä hetkellä poissa koneeltani.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/twitter.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/twitter.properties
new file mode 100644
index 0000000000..6f13635726
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/twitter.properties
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+error.tooLong=Viesti yli 140 merkkiä pitkä.
+# LOCALIZATION NOTE (error.general, error.retweet, error.delete):
+# %1$S will be either the error string returned by the twitter server,
+# in English, inside parenthesis, or the empty string if we have no specific
+# message for the error.
+# %2$S is the message that caused the error.
+error.general=Virhe %1$S tapahtui lähetettäessä: %2$S
+error.retweet=Virhe %1$S tapahtui uudelleen lähetettässä: %2$S
+error.delete=Virhe %1$S tapahtui poistaessa: %2$S
+error.like=Tykättäessä kohdetta %2$S tapahtui virhe: %1$S
+error.unlike=Peruttaessa tykkäystä kohteelta %2$S tapahtui virhe: %1$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=Kuvaus ylittää pituusrajoituksen (160 merkkiä) ja se lyhennettiin automaattisesti: %S.
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @<username>.
+timeline=%S aikajana
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=Copy Link to Tweet
+action.retweet=Uudelleen lähetä
+action.reply=Vastaa
+action.delete=Poista
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=Seuraa %S
+action.stopFollowing=Älä seuraa %S
+action.like=Tykkää
+action.unlike=Poista tykkäys
+
+# LOCALIZATION NOTE (event.follow, event.unfollow, event.followed):
+# This will be displayed in system messages inside the timeline conversation.
+# %S will be replaced by the screen name of a twitter user.
+event.follow=Seuraat nyt tunnusta %S.
+event.unfollow=Et enää seuraa tunnusta %S.
+event.followed=%S seuraa nyt sinua.
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=Poistit viestin: "%S".
+
+# LOCALIZATION NOTE (replyingToStatusText):
+# This will be visible in the status bar of the conversation window
+# while the user is typing a reply to a tweet.
+# %S will be replaced by the text of the tweet the user is replying to.
+replyingToStatusText=Vastataan viestiin: %S
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initAuth=Aloitetaan todennusta
+connection.requestAuth=Odotetaan varmennusta sinulta
+connection.requestAccess=Viimeistellään todennusta
+connection.requestTimelines=Pyydetään käyttäjien aikajanoja
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=Käyttäjätunnusvirhe.
+connection.error.failedToken=Pyyntömerkin saaminen epäonnistui.
+connection.error.authCancelled=Peruutit todennuksen.
+connection.error.authFailed=Ei saatu varmennusta.
+connection.error.noNetwork=Ei verkkoyhteyttä.
+
+# LOCALIZATION NOTE (authPrompt):
+# This is the prompt in the browser window that pops up to authorize us
+# to use a Twitter account. It is shown in the title bar of the authorization
+# window.
+authPrompt=Anna lupa käyttää Twitter-tiliäsi
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=Seuratut avainsanat
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the Twitter information that will appear in the tooltip
+# for each participant on the home timeline.
+# LOCALIZATION NOTE (tooltip.created_at): the date the user joined.
+tooltip.created_at=Käyttäjä lähtien
+tooltip.location=Sijainti
+tooltip.lang=Kieli
+tooltip.time_zone=Aikavyöhyke
+tooltip.url=Kotisivu
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=Suojatut viestit
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=Seuraat
+tooltip.name=Nimi
+tooltip.description=Kuvaus
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=Seuraa käyttäjiä
+tooltip.statuses_count=Viestejä
+tooltip.followers_count=Seuraajia
+tooltip.listed_count=Listattuna
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Kyllä
+no=Ei
+
+command.follow=%S &lt;käyttäjätunnus&gt;[ &lt;username&gt;]*: Ala seuraamaan käyttäjää.
+command.unfollow=%S &lt;käyttäjätunnus&gt;[ &lt;käyttäjätunnus&gt;]*: Älä enää seuraa käyttäjää.
+
+twitter.disabled=Twitter ei ole enää tuettu, koska Twitter on poistanut käytöstä striimausprotokollansa.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/xmpp.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/xmpp.properties
new file mode 100644
index 0000000000..ec3acbbd50
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/xmpp.properties
@@ -0,0 +1,281 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=Alustetaan virtaa
+connection.initializingEncryption=Alustetaan salausta
+connection.authenticating=Todennetaan
+connection.gettingResource=Ladataan tietoja
+connection.downloadingRoster=Ladataan tuttavalistaa
+connection.srvLookup=Etsitään SRV-tietuetta
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Virheellinen käyttäjätunnus (käyttäjätunnuksessa pitää olla @-merkki)
+connection.error.failedToCreateASocket=Ei voitu muodostaa pistoketta (Oletko verkossa?)
+connection.error.serverClosedConnection=Palvelin katkaisi yhteyden
+connection.error.resetByPeer=Vertainen katkaisi yhteyden
+connection.error.timedOut=Yhteys aikakatkaistiin
+connection.error.receivedUnexpectedData=Vastaanotettiin odottamatonta dataa
+connection.error.incorrectResponse=Vastaanotettiin virheellinen vastaus
+connection.error.startTLSRequired=Palvelin vaatii salauksen, mutta olet ottanut sen pois päältä
+connection.error.startTLSNotSupported=Palvelin ei tue salausta, mutta asetuksesi vaativat salauksen käyttöä
+connection.error.failedToStartTLS=Salauksen käynnistys ei onnistunut
+connection.error.noAuthMec=Palvelin ei tue mitään todennusmenetelmää
+connection.error.noCompatibleAuthMec=Ei tueta mitään palvelimen tukemia todennusmenetelmiä
+connection.error.notSendingPasswordInClear=Palvelin tukee vain todennusta, jossa salasana lähetetään salaamattomana
+connection.error.authenticationFailure=Todennusvirhe
+connection.error.notAuthorized=Ei tunnistettu (Annoitko oikean salasanan?)
+connection.error.failedToGetAResource=Tietojen lataus ei onnistunut
+connection.error.failedMaxResourceLimit=Tämä tili on yhdistetty liian monesta paikasta samaan aikaan.
+connection.error.failedResourceNotValid=Resurssi ei ole kelvollinen.
+connection.error.XMPPNotSupported=Tämä palvelin ei tue XMPP:tä
+
+# LOCALIZATION NOTE (conversation.error.notDelivered):
+# This is displayed in a conversation as an error message when a message
+# the user has sent wasn't delivered.
+# %S is replaced by the text of the message that wasn't delivered.
+conversation.error.notDelivered=Viestiä ei voitu toimittaa: %S
+# This is displayed in a conversation as an error message when joining a MUC
+# fails.
+# %S is the name of the MUC.
+conversation.error.joinFailed=Liittyminen ei onnistunut: %S
+# This is displayed in a conversation as an error message when the user is
+# banned from a room.
+# %S is the name of the MUC room.
+conversation.error.joinForbidden=Ei voitu liittyä huoneeseen %S koska sinulle on porttikielto huoneeseen.
+conversation.error.joinFailedNotAuthorized=Pakollinen rekisteröinti: Sinulla ei ole oikeutta liittyä huoneeseen.
+conversation.error.creationFailedNotAllowed=Rajoitetut oikeudet: Sinulla ei ole oikeuksia luoda huoneita.
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC room.
+conversation.error.joinFailedRemoteServerNotFound=Ei voitu liittyä huoneeseen %S koska huoneen palvelimeen ei saatu yhteyttä.
+conversation.error.changeTopicFailedNotAuthorized=Sinulla ei ole oikeutta asettaa huoneen aihetta.
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that he is not in.
+# %1$S is the name of MUC room.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsNotInRoom=Viestiä huoneeseen %1$S ei voitu lähettää, koska et ole enää huoneessa: %2$S
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that the recipient is not in.
+# %1$S is the jid of the recipient.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsRecipientNotInRoom=Viestiä ei voitu lähettää vastaanottajalle %1$S koska hän ei ole enää huoneessa: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=Vastaanottajan palvelimeen ei saatu yhteyttä
+conversation.error.unknownSendError=Viestiä lähetettäessä tapahtui tuntematon virhe.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=Tällä hetkellä %Slle ei ole mahdollista lähettää viestejä.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S ei ole huoneessa.
+conversation.error.banCommandAnonymousRoom=Et voi antaa porttikieltoa anonyymeisiin huoneisiin. Käytä komentoa /kick sen sijaan.
+conversation.error.banKickCommandNotAllowed=Sinulla ei ole tarvittavia oikeuksia tämän osallistujan poistamiseen huoneesta.
+conversation.error.banKickCommandConflict=Et voi poistaa itseäsi huoneesta.
+conversation.error.changeNickFailedConflict=Ei voitu vaihtaa tunnukseksi %S, koska tunnus on jo käytössä.
+conversation.error.changeNickFailedNotAcceptable=Ei voitu vaihtaa tunnukseksi %S, koska tunnukset tässä huoneessa ovat muuttamattamia.
+conversation.error.inviteFailedForbidden=Sinulla ei ole oikeuksia kutsua käyttäjiä tähän huoneeseen.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=%S - ei tavoitettu.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S on virheellinen jid (Jabber-tunnusten on oltava muodossa käyttäjä@domain).
+conversation.error.commandFailedNotInRoom=Huoneeseen täytyy liittyä uudestaan, jotta tätä komentoa voi käyttää.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=Sinun täytyy puhua ensin, koska %S voi olla yhteydessä useammasta ohjelmasta.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=Käyttäjän %S ohjelma ei tue ohjelmaversion kysymistä.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the titles of lines of information that will appear in
+# the tooltip showing details about a contact or conversation.
+# LOCALIZATION NOTE (tooltip.status):
+# %S will be replaced by the XMPP resource identifier
+tooltip.status=Tila (%S)
+tooltip.statusNoResource=Tila
+tooltip.subscription=Tilaus
+tooltip.fullName=Koko nimi
+tooltip.nickname=Lempinimi
+tooltip.email=Sähköpostiosoite
+tooltip.birthday=Syntymäpäivä
+tooltip.userName=Käyttäjätunnus
+tooltip.title=Titteli
+tooltip.organization=Organisaatio
+tooltip.locality=Sijainti
+tooltip.country=Maa
+tooltip.telephone=Puhelinnumero
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for XMPP accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Huone
+chatRoomField.server=_Palvelin
+chatRoomField.nick=_Tunnus
+chatRoomField.password=_Salasana
+
+# LOCALIZATION NOTE (conversation.muc.*):
+# These are displayed as a system message when a chatroom invitation is
+# received.
+# %1$S is the inviter.
+# %2$S is the room.
+# %3$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2=%1$S on kutsunut sinut huoneeseen %2$S: %3$S
+# %3$S is the password of the room.
+# %4$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2.password=%1$S on kutsunut sinut huoneeseen %2$S salasanalla %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S kutsui sinut huoneeseen %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S on kutsunut sinut huoneeseen %2$S salasanalla %3$S
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+conversation.message.join=%S liittyi huoneeseen.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=Olet palannut huoneeseen.
+
+# LOCALIZATION NOTE (conversation.message.parted.*):
+# These are displayed as a system message when a participant parts a room.
+# %S is the part message supplied by the user.
+conversation.message.parted.you=Poistuit huoneesta.
+conversation.message.parted.you.reason=Poistuit huoneesta: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S poistui huoneesta.
+conversation.message.parted.reason=%1$S poistui huoneesta: %2$S
+
+# LOCALIZATION NOTE (conversation.message.invitationDeclined*):
+# %1$S is the invitee that declined the invitation.
+# %2$S is the decline message supplied by the invitee.
+conversation.message.invitationDeclined=%1$S on hylännyt kutsusi.
+conversation.message.invitationDeclined.reason=%1$S on hylännyt kutsusi: %2$S
+
+# LOCALIZATION NOTE (conversation.message.banned.*):
+# These are displayed as a system message when a participant is banned from
+# a room.
+# %1$S is the participant that is banned.
+# %2$S is the reason.
+# %3$S is the person who is banning.
+conversation.message.banned=%1$S on saanut porttikiellon huoneeseen.
+conversation.message.banned.reason=%1$S on saanut porttikiellon huoneeseen: %2$S
+# %1$S is the person who is banning.
+# %2$S is the participant that is banned.
+# %3$S is the reason.
+conversation.message.banned.actor=%1$S antoi tunnukselle %2$S porttikiellon huoneeseen.
+conversation.message.banned.actor.reason=%1$S antoi tunnukselle %2$S porttikiellon huoneeseen: %3$S
+conversation.message.banned.you=Sait porttikiellon huoneeseen.
+# %1$S is the reason.
+conversation.message.banned.you.reason=Sait porttikiellon huoneeseen: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S antoi sinulle porttikiellon huoneeseen.
+conversation.message.banned.you.actor.reason=%1$S antoi sinulle porttikiellon huoneeseen: %2$S
+
+# LOCALIZATION NOTE (conversation.message.kicked.*):
+# These are displayed as a system message when a participant is kicked from
+# a room.
+# %1$S is the participant that is kicked.
+# %2$S is the reason.
+conversation.message.kicked=%1$S potkittiin huoneesta.
+conversation.message.kicked.reason=%1$S potkittiin huoneesta: %2$S
+# %1$S is the person who is kicking.
+# %2$S is the participant that is kicked.
+# %3$S is the reason.
+conversation.message.kicked.actor=%1$S potki tunnuksen %2$S huoneesta.
+conversation.message.kicked.actor.reason=%1$S potki tunnuksen %2$S huoneesta: %3$S
+conversation.message.kicked.you=Sinut potkittiin ulos huoneesta.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=Sinut potkittiin ulos huoneesta: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S potki sinut ulos huoneesta.
+conversation.message.kicked.you.actor.reason=%1$S potki sinut ulos huoneesta: %2$S
+
+# LOCALIZATION NOTE (conversation.message.removedNonMember.*):
+# These are displayed as a system message when a participant is removed from
+# a room because the room has been changed to members-only.
+# %1$S is the participant that is removed.
+# %2$S is the person who changed the room configuration.
+conversation.message.removedNonMember=%1$S on poistettu huoneesta, koska huoneen tila asetettiin vain jäsenille.
+conversation.message.removedNonMember.actor=%1$S on poistettu huoneesta, koska %2$S asetti huoneen tilan vain jäsenille.
+conversation.message.removedNonMember.you=Sinut poistettiin huoneesta, koska huoneen tila asetettiin vain jäsenille.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=Sinut poistettiin huoneesta, koska %1$S asetti huoneen tilan vain jäsenille.
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=Sinut poistettiin huoneesta, koska järjestelmä sammutettiin.
+
+# LOCALIZATION NOTE (conversation.message.version*):
+# %1$S is the name of the user whose version was requested.
+# %2$S is the client name response from the client.
+# %3$S is the client version response from the client.
+# %4$S is the operating system(OS) response from the client.
+conversation.message.version=%1$S käyttää ohjelmaa ”%2$S %3$S”.
+conversation.message.versionWithOS=%1$S käyttää ohjelmaa ”%2$S %3$S” käyttöjärjestelmässä %4$S.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=Resurssi
+options.priority=Prioriteetti
+options.connectionSecurity=Yhteyden tietoturva
+options.connectionSecurity.requireEncryption=Salaa aina
+options.connectionSecurity.opportunisticTLS=Käytä salausta jos saatavilla
+options.connectionSecurity.allowUnencryptedAuth=Salasana voidaan lähettää salaamattomana
+options.connectServer=Palvelin
+options.connectPort=Portti
+options.domain=Palvelin
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=sähköpostiosoite
+
+# LOCALIZATION NOTE (gtalk.disabled):
+# It is reported that Google Talk will be disabled on June 16, 2022. The message
+# below is being pre-emptively included so a localized error message can be
+# displayed to users if this happens.
+gtalk.disabled=Google Talkia ei enää tueta, koska Google on poistanut heidän XMPP-yhdyskäytävänsä käytöstä.
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+odnoklassniki.usernameHint=Profiilin tunnus
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [&lt;huone&gt;[@&lt;palvelin&gt;][/&lt;tunnus&gt;]] [&lt;salasana&gt;]: Liity huoneeseen ja valinnaisesti määritä palvelin, tunnus tai huoneen salasana.
+command.part2=%S [&lt;viesti&gt;]: Poistu huoneesta ja valinnaisesti jätä poistumisviesti.
+command.topic=%S [&lt;uusi aihe&gt;]: Aseta huoneen aihe.
+command.ban=%S &lt;tunnus&gt;[&lt;viesti&gt;]: Anna jollekin porttikielto huoneeseen. Täytyy olla huoneen hallinnoija.
+command.kick=%S &lt;tunnus&gt;[&lt;viesti&gt;]: Poista joku huoneesta. Täytyy olla huoneen moderoija.
+command.invite=%S &lt;jid&gt;[&lt;viesti&gt;]: Kutsu käyttäjä liittymään nykyiseen huoneeseen, valinnaisesti viestin kanssa.
+command.inviteto=%S &lt;huoneen jid&gt;[&lt;salasana&gt;]: Kutsu keskustelukumppanisi liittymään huoneeseen (huoneen salasanan kanssa, jos sellainen vaaditaan).
+command.me=%S &lt;suoritettava toiminto&gt;: Suorita toiminto.
+command.nick=%S &lt;uusi tunnus&gt;: Muuta tunnustasi.
+command.msg=%S &lt;tunnus&gt; &lt;viesti&gt;: Lähetä yksityisviesti jollekin huoneessa.
+command.version=%S: Pyydä tietoja keskustelukumppanin käyttämästä ohjelmasta.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/yahoo.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/yahoo.properties
new file mode 100644
index 0000000000..5f0a4e1732
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/chat/yahoo.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+yahoo.disabled=Yahoo Messengeriä ei enää tueta, koska Yahoo on poistanut käytöstä perinteisen protokollansa.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/communicator/utilityOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/communicator/utilityOverlay.dtd
new file mode 100644
index 0000000000..d5b95fbf90
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/communicator/utilityOverlay.dtd
@@ -0,0 +1,43 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the global menu items -->
+
+<!ENTITY fileMenu.label "Tiedosto">
+<!ENTITY fileMenu.accesskey "T">
+<!ENTITY newMenu.label "Uusi">
+<!ENTITY newMenu.accesskey "U">
+
+<!ENTITY editMenu.label "Muokkaa">
+<!ENTITY editMenu.accesskey "M">
+<!ENTITY undoCmd.label "Kumoa">
+<!ENTITY undoCmd.accesskey "m">
+<!ENTITY redoCmd.label "Tee uudelleen">
+<!ENTITY redoCmd.accesskey "T">
+<!ENTITY deleteCmd.label "Poista">
+<!ENTITY deleteCmd.accesskey "o">
+
+<!ENTITY customizeCmd.label "Mukauta">
+<!ENTITY customizeCmd.accesskey "m">
+
+<!ENTITY viewMenu.label "Näytä">
+<!ENTITY viewMenu.accesskey "N">
+<!ENTITY viewToolbarsMenu.label "Työkalupalkit">
+<!ENTITY viewToolbarsMenu.accesskey "T">
+<!ENTITY showTaskbarCmd.label "Tilarivi">
+<!ENTITY showTaskbarCmd.accesskey "r">
+
+<!ENTITY closeCmd.label "Sulje">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "S">
+
+<!ENTITY quitApplicationCmd.label "Lopeta">
+<!ENTITY quitApplicationCmd.key "Q">
+<!ENTITY quitApplicationCmd.accesskey "L">
+
+<!ENTITY quitApplicationCmdUnix.label "Lopeta">
+<!ENTITY quitApplicationCmdUnix.accesskey "L">
+
+<!ENTITY quitApplicationCmdMac.label "Lopeta &brandShortName;">
+<!ENTITY quitApplicationCmdMac.accesskey "L">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/accessibility.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/accessibility.properties
new file mode 100644
index 0000000000..f61b3d4dc4
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/accessibility.properties
@@ -0,0 +1,314 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is available from the Web Developer sub-menu -> 'Accessibility'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (accessibility.role): A title text used for Accessibility
+# tree header column that represents accessible element role.
+accessibility.role=Role
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=Name
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=Accessibility Logo
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=Properties
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=Accessibility Tree
+
+# LOCALIZATION NOTE (accessibility.accessible.selectElement.title): A title text
+# displayed on buttons next to accessible elements in the `relations` section, allowing the
+# user to select the element in the accessibility tree.
+accessibility.accessible.selectElement.title=Click to select the node in the Accessibility Tree
+
+# LOCALIZATION NOTE (accessibility.accessible.selectNodeInInspector.title): A title text
+# displayed on buttons next to nodes in the sidebar, allowing the user to select the node
+# in the Inspector panel.
+accessibility.accessible.selectNodeInInspector.title=Click to select the node in the inspector
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=Accessible Information Unavailable
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=Turn On Accessibility Features
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=Turning on accessibility features…
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=Turn Off Accessibility Features
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=Turning off accessibility features…
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=Pick accessible object from the page
+
+# LOCALIZATION NOTE (accessibility.disable.disabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can not
+# be disabled. It is the case when a user is using a 3rd party accessibility
+# tool such as screen reader.
+accessibility.disable.disabledTitle=Accessibility service can not be turned off. It is used outside Developer Tools.
+
+# LOCALIZATION NOTE (accessibility.disable.enabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can be
+# disabled.
+accessibility.disable.enabledTitle=Accessibility service will be turned off for all tabs and windows.
+
+# LOCALIZATION NOTE (accessibility.enable.disabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can not
+# be enabled.
+accessibility.enable.disabledTitle=Accessibility service can not be turned on. It is turned off via accessibility services privacy preference.
+
+# LOCALIZATION NOTE (accessibility.enable.enabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can be
+# enabled.
+accessibility.enable.enabledTitle=Accessibility service will be turned on for all tabs and windows.
+
+# LOCALIZATION NOTE (accessibility.learnMore): A text that is used as is or as textual
+# description in places that link to accessibility inspector documentation.
+accessibility.learnMore=Learn more
+
+# LOCALIZATION NOTE (accessibility.description.general.p1): A title text for the first
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.description.general.p1=Accessibility Inspector lets you examine the current page’s accessibility tree, which is used by screen readers and other assistive technologies. %S
+
+# LOCALIZATION NOTE (accessibility.description.general.p2): A title text for the second
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled.
+accessibility.description.general.p2=Accessibility features may affect the performance of other developer tools panels and should be turned off when not in use.
+
+# LOCALIZATION NOTE (accessibility.tree.menu.printToJSON): A title text used when a
+# context menu item for printing an accessible tree to JSON is rendered after triggering a
+# context menu for an accessible tree row.
+accessibility.tree.menu.printToJSON=Print to JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=Checks
+
+# LOCALIZATION NOTE (accessibility.checks.empty2): A title text used for indicating that
+# accessibility checks for a node yielded no results and another node should be
+# selected.
+accessibility.checks.empty2=No checks for this node.
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=Color and Contrast
+
+# LOCALIZATION NOTE (accessibility.contrast.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.error=Unable to calculate
+
+# LOCALIZATION NOTE (accessibility.contrast.large.text): A title text for the color
+# contrast ratio label indicating that the color contrast criteria used is if for large
+# text. This is lower case because it's used as a label for a tree item in accessibility
+# tree.
+accessibility.contrast.large.text=large text
+
+# LOCALIZATION NOTE (accessibility.contrast.large.title): A title text for the tooltip
+# used for the large text label (see accessibility.contrast.large.text).
+accessibility.contrast.large.title=Text is 14 point and bold or larger, or 18 point or larger.
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AA): A title text for the paragraph
+# describing that the given colour contrast satisfies AA standard from Web Content
+# Accessibility Guidelines. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.contrast.annotation.AA=Meets WCAG AA standards for accessible text. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AAA): A title text for the
+# paragraph describing that the given colour contrast satisfies AAA standard from Web
+# Content Accessibility Guidelines. %S in the content will be replaced by a link at run
+# time with the accessibility.learnMore string.
+accessibility.contrast.annotation.AAA=Meets WCAG AAA standards for accessible text. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.FAIL): A title text for the
+# paragraph describing that the given colour contrast fails to meet the minimum level from
+# Web Content Accessibility Guidelines. %S in the content will be replaced by a link at
+# run time with the accessibility.learnMore string.
+accessibility.contrast.annotation.FAIL=Does not meet WCAG standards for accessible text. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.transparent.error): A title text for the
+# paragraph suggesting a fix for error in color contrast calculation for text nodes with zero alpha.
+accessibility.contrast.annotation.transparent.error=Pick a color that is not transparent.
+
+# LOCALIZATION NOTE (accessibility.badges): A title text for the group of badges
+# that are rendered for each accessible row within the accessibility tree when
+# one or more accessibility checks fail.
+accessibility.badges=Accessibility checks
+
+# LOCALIZATION NOTE (accessibility.filter.none): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# resets all filtering in tree, and for the simulation menu item that resets
+# applied color matrices to the default matrix.
+accessibility.filter.none=None
+
+# LOCALIZATION NOTE (accessibility.filter.all2): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on all accessibility failures within it.
+accessibility.filter.all2=All Issues
+
+# LOCALIZATION NOTE (accessibility.filter.contrast): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on contrast accessibility failures within it.
+accessibility.filter.contrast=Contrast
+
+# LOCALIZATION NOTE (accessibility.filter.textLabel): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on text label and name accessibility failures within it.
+accessibility.filter.textLabel=Text Labels
+
+# LOCALIZATION NOTE (accessibility.filter.keyboard): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on keyboard accessibility failures within it.
+accessibility.filter.keyboard=Keyboard
+
+# LOCALIZATION NOTE (accessibility.badge.contrast): A title text for the badge
+# that is rendered within the accessible row in the accessibility tree for a
+# given accessible object that does not satisfy the WCAG guideline for colour
+# contrast.
+accessibility.badge.contrast=contrast
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.warning): A label for the
+# badge and attached warning icon that is rendered within the accessible row in
+# the accessibility tree for a given accessible object that does not satisfy the
+# WCAG guideline for colour contrast.
+accessibility.badge.contrast.warning=contrast warning
+
+# LOCALIZATION NOTE (accessibility.badge.keyboard): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for
+# keyboard accessibility.
+accessibility.badge.keyboard=keyboard
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for text
+# alternative.
+accessibility.badge.textLabel=text label
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.tooltip): A title text for the
+# badge tooltip that is rendered on mouse hover over the badge in the accessible
+# row in the accessibility tree for a given accessible object that does not
+# satisfy the WCAG guideline for colour contrast.
+accessibility.badge.contrast.tooltip=Does not meet WCAG standards for accessible text.
+
+# LOCALIZATION NOTE (accessibility.badge.keyboard.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for keyboard accessibility.
+accessibility.badge.keyboard.tooltip=Does not meet WCAG standards for keyboard accessibility.
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for text alternative.
+accessibility.badge.textLabel.tooltip=Does not meet WCAG standards for text alternative.
+
+# LOCALIZATION NOTE (accessibility.tree.filters): A title text for the toolbar
+# within the main accessibility panel that contains a list of filters to be for
+# accessibility audit.
+accessibility.tree.filters=Check for issues:
+
+# LOCALIZATION NOTE (accessibility.tree.filters.prefs): A title text for the
+# preferences button tooltip that contains preferences for accessibility audit.
+accessibility.tree.filters.prefs=Configure preferences
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=Initializing…
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is running showing
+# the number of nodes being audited. Semi-colon list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+accessibility.progress.progressbar=Checking #1 node;Checking #1 nodes
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=Finishing up…
+
+# LOCALIZATION NOTE (accessibility.pref.scroll.into.view.title): A title
+# text for the tooltip for the checkbox pref in the accessibility panel that
+# sets node auto scroll.
+accessibility.pref.scroll.into.view.title=Automatically scroll selected node into view
+
+# LOCALIZATION NOTE (accessibility.pref.scroll.into.view.label): A title
+# text for the checkbox pref in the accessibility panel that sets node auto
+# scroll.
+accessibility.pref.scroll.into.view.label=Scroll into view
+
+# LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
+# the Documentation menu item.
+accessibility.documentation.label=Documentation…
+
+# LOCALIZATION NOTE (accessibility.simulation): A title text for the toolbar
+# within the main accessibility panel that contains a list of simulations for
+# vision deficiencies.
+accessibility.simulation=Simulate:
+
+# LOCALIZATION NOTE (accessibility.simulation.protanopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the protanopia simulation option.
+accessibility.simulation.protanopia=Protanopia (no red)
+
+# LOCALIZATION NOTE (accessibility.simulation.deuteranopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the deuteranopia simulation option.
+accessibility.simulation.deuteranopia=Deuteranopia (no green)
+
+# LOCALIZATION NOTE (accessibility.simulation.tritanopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the tritanopia simulation option.
+accessibility.simulation.tritanopia=Tritanopia (no blue)
+
+# LOCALIZATION NOTE (accessibility.simulation.contrastLoss): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the contrast loss simulation option.
+# It is also shown in the simulation menu button in the accessibility panel and represent the
+# contrast loss simulation option currently selected.
+accessibility.simulation.contrastLoss=Contrast loss
+
+# LOCALIZATION NOTE (accessibility.simulation.achromatopsia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the achromatopsia simulation option.
+accessibility.simulation.achromatopsia=Achromatopsia (no color)
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.label): A title text for a checkbox label
+# in the accessibility panel toolbar that turns on/off the overlay of focusable elements in their
+# tabbing order.
+accessibility.toolbar.displayTabbingOrder.label=Show Tabbing Order
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.tooltip): A title text for a checkbox
+# tooltip in the accessibility panel toolbar that turns on/off the overlay of focusable elements in
+# their tabbing order.
+accessibility.toolbar.displayTabbingOrder.tooltip=Show tabbing order of elements and their tabbing index.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/animationinspector.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/animationinspector.properties
new file mode 100644
index 0000000000..09e4afffe0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/animationinspector.properties
@@ -0,0 +1,182 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Animation inspector
+# which is available as a sidebar panel in the Inspector.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (panel.noAnimation):
+# This is the label shown in the panel when there are no displayable animations.
+# (e.g. In case of user selected a non-element node or a node that is not animated).
+panel.noAnimation=No animations were found for the current element.\nPick another element from the page.
+
+# LOCALIZATION NOTE (player.animationDurationLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation duration.
+player.animationDurationLabel=Duration:
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in a tooltip on animation player widget, in case the
+# duration of the animation is infinite.
+player.infiniteDurationText=∞
+
+# LOCALIZATION NOTE (player.animationDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation delay.
+player.animationDelayLabel=Delay:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=End delay:
+
+# LOCALIZATION NOTE (player.animationRateLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation playback rate.
+player.animationRateLabel=Playback rate:
+
+# LOCALIZATION NOTE (player.animationIterationCountLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the number of times the animation is set to repeat.
+player.animationIterationCountLabel=Repeats:
+
+# LOCALIZATION NOTE (player.infiniteIterationCount):
+# In case the animation repeats infinitely, this string is displayed next to the
+# player.animationIterationCountLabel string, instead of a number.
+player.infiniteIterationCount=&#8734;
+
+# LOCALIZATION NOTE (player.infiniteIterationCountText):
+# See player.infiniteIterationCount for a description of what this is.
+# Unlike player.infiniteIterationCount, this string isn't used in HTML, but in
+# a tooltip.
+player.infiniteIterationCountText=∞
+
+# LOCALIZATION NOTE (player.animationIterationStartLabel2):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# iterationStart value.
+# %1$S will be replaced by the original iteration start value
+# %2$S will be replaced by the actual time of iteration start without time unit
+# e.g.
+# If iterationStart of animation is 0.5 and duration is 1 sec, the string will be
+# "Iteration start: 0.5 (0.5s)"
+player.animationIterationStartLabel2=Iteration start: %1$S (%2$S)
+
+# LOCALIZATION NOTE (player.animationOverallEasingLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the easing
+# that applies to a whole iteration of an animation as opposed to the
+# easing that applies between animation keyframes.
+player.animationOverallEasingLabel=Overall easing:
+
+# LOCALIZATION NOTE (player.animationTimingFunctionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the
+# animation-timing-function for CSS Animations.
+player.animationTimingFunctionLabel=Animation timing function:
+
+# LOCALIZATION NOTE (player.animationFillLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# fill mode value.
+player.animationFillLabel=Fill:
+
+# LOCALIZATION NOTE (player.animationDirectionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# direction value.
+player.animationDirectionLabel=Direction:
+
+# LOCALIZATION NOTE (player.timeLabel):
+# This string is displayed in each animation player widget, to indicate either
+# how long (in seconds) the animation lasts, or what is the animation's current
+# time (in seconds too);
+player.timeLabel=%Ss
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in animation player widget, in case the duration of the
+# animation is infinite.
+player.infiniteTimeLabel=∞
+
+# LOCALIZATION NOTE (player.playbackRateLabel):
+# This string is displayed in each animation player widget, as the label of
+# drop-down list items that can be used to change the rate at which the
+# animation runs (1× being the default, 2× being twice as fast).
+player.playbackRateLabel=%S×
+
+# LOCALIZATION NOTE (player.runningOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that the
+# animation is running on the compositor thread.
+player.runningOnCompositorTooltip=This animation is running on compositor thread
+
+# LOCALIZATION NOTE (player.allPropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is running on the compositor thread.
+player.allPropertiesOnCompositorTooltip=All animation properties are optimized
+
+# LOCALIZATION NOTE (player.somePropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is not running on the compositor thread.
+player.somePropertiesOnCompositorTooltip=Some animation properties are optimized
+
+# LOCALIZATION NOTE (timeline.pausedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.pausedButtonTooltip=Resume the animations
+
+# LOCALIZATION NOTE (timeline.resumedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.resumedButtonTooltip=Pause the animations
+
+# LOCALIZATION NOTE (timeline.rewindButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# rewind button that can be used to rewind the animations
+timeline.rewindButtonTooltip=Rewind the animations
+
+# LOCALIZATION NOTE (timeline.timeGraduationLabel):
+# This string is displayed at the top of the animation panel, next to each time
+# graduation, to indicate what duration (in milliseconds) this graduation
+# corresponds to.
+timeline.timeGraduationLabel=%Sms
+
+# LOCALIZATION NOTE (timeline.cssanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.cssanimation.nameLabel=%S — CSS Animation
+
+# LOCALIZATION NOTE (timeline.csstransition.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Transition in the timeline UI.
+# %S will be replaced by the name of the transition at run-time.
+timeline.csstransition.nameLabel=%S — CSS Transition
+
+# LOCALIZATION NOTE (timeline.scriptanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a script-generated animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.scriptanimation.nameLabel=%S — Script Animation
+
+# LOCALIZATION NOTE (timeline.scriptanimation.unnamedLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over an unnamed script-generated animation in the timeline UI.
+timeline.scriptanimation.unnamedLabel=Script Animation
+
+# LOCALIZATION NOTE (timeline.unknown.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of an unknown animation type in the timeline UI.
+# This can happen if devtools couldn't figure out the type of the animation.
+# %S will be replaced by the name of the transition at run-time.
+timeline.unknown.nameLabel=%S
+
+# LOCALIZATION NOTE (detail.propertiesHeader.percentage):
+# This string is displayed on header label in .animated-properties-header.
+# %S represents the value in percentage with two decimal points, localized.
+# there are two "%" after %S to escape and display "%"
+detail.propertiesHeader.percentage=%S%%
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/boxmodel.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/boxmodel.properties
new file mode 100644
index 0000000000..e932d8f0c5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/boxmodel.properties
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the Layout View strings.
+# The Layout View is a panel displayed in the computed view tab of the Inspector sidebar.
+
+# LOCALIZATION NOTE : FILE The correct localization of this file might be to
+# keep it in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (boxmodel.title) This is the title of the box model panel and is
+# displayed as a label.
+boxmodel.title=Box Model
+
+# LOCALIZATION NOTE: (boxmodel.geometryButton.tooltip) This label is displayed as a
+# tooltip that appears when hovering over the button that allows users to edit the
+# position of an element in the page.
+boxmodel.geometryButton.tooltip=Edit position
+
+# LOCALIZATION NOTE: (boxmodel.propertiesLabel) This label is displayed as the header
+# for showing and collapsing the properties underneath the box model in the layout view
+boxmodel.propertiesLabel=Box Model Properties
+
+# LOCALIZATION NOTE (boxmodel.propertiesHideLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently showing, it will say "Hide".
+boxmodel.propertiesHideLabel=Hide
+
+# LOCALIZATION NOTE (boxmodel.propertiesShowLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently hidden, it will say "Show".
+boxmodel.propertiesShowLabel=Show
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent) This label is displayed inside the list of
+# properties, below the box model, in the layout view. It is displayed next to the
+# position property, when position is absolute, relative, sticky. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent=offset
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent.title) This label is displayed as a
+# tooltip that appears when hovering over the offset label, inside the list of properties,
+# below the box model, in the layout view. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent.title=Offset parent of the selected element
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/changes.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/changes.properties
new file mode 100644
index 0000000000..dc75955b37
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/changes.properties
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the strings for the Changes panel accessible from
+# the Inspector sidebar.
+
+# LOCALIZATION NOTE (changes.noChanges): This text is shown when no changes are available.
+changes.noChanges=No changes found.
+
+# LOCALIZATION NOTE (changes.noChangesDescription): This text is shown when no changes are
+# available and provides additional context for the purpose of the Changes panel.
+changes.noChangesDescription=Changes to CSS in Inspector will appear here.
+
+# LOCALIZATION NOTE (changes.inlineStyleSheetLabel): This label appears in the Changes
+# panel above changes done to inline stylesheets. The variable will be replaced with the
+# index of the stylesheet within its document like so: Inline #1
+changes.inlineStyleSheetLabel=Inline %S
+
+# LOCALIZATION NOTE (changes.elementStyleLabel): This label appears in the Changes
+# panel above changes done to element styles.
+changes.elementStyleLabel=Element
+
+# LOCALIZATION NOTE (changes.iframeLabel): This label appears next to URLs of stylesheets
+# and element inline styles hosted by iframes. Lowercase intentional.
+changes.iframeLabel=iframe
+
+# LOCALIZATION NOTE (changes.contextmenu.copy): Label for "Copy" option in Changes panel
+# context menu
+changes.contextmenu.copy=Copy
+
+# LOCALIZATION NOTE (changes.contextmenu.copy.accessKey): Access key for "Copy"
+# option in the Changes panel.
+changes.contextmenu.copy.accessKey=C
+
+# LOCALIZATION NOTE (changes.contextmenu.copyAllChanges): Label for "Copy All Changes"
+# option in Changes panel context menu which copies all changed CSS declarations from a
+# stylesheet
+changes.contextmenu.copyAllChanges=Copy All Changes
+
+# LOCALIZATION NOTE (changes.contextmenu.copyAllChangesDescription): Detailed explanation
+# for "Copy All Changes" option in Changes panel. Used as title attribute on "Copy All
+# Changes" button
+changes.contextmenu.copyAllChangesDescription=Copy a list of all CSS changes to clipboard.
+
+# LOCALIZATION NOTE (changes.contextmenu.copyDeclaration): Label for "Copy Declaration"
+# option in Changes panel context menu which copies the target CSS declaration.
+changes.contextmenu.copyDeclaration=Copy Declaration
+
+# LOCALIZATION NOTE (changes.contextmenu.copyRule): Label for "Copy Rule" option in
+# Changes panel context menu which copies the complete contents of a CSS rule.
+changes.contextmenu.copyRule=Copy Rule
+
+# LOCALIZATION NOTE (changes.contextmenu.copyRuleDescription): Detailed explanation for
+# "Copy Rule" option in Changes panel. Used as title attribute on "Copy Rule" button.
+changes.contextmenu.copyRuleDescription=Copy contents of this CSS rule to clipboard.
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll): Label for "Select All" option in the
+# Changes panel context menu to select all text content.
+changes.contextmenu.selectAll=Select All
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll.accessKey): Access key for "Select All"
+# option in the Changes panel.
+changes.contextmenu.selectAll.accessKey=A
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/components.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/components.properties
new file mode 100644
index 0000000000..75a0499a55
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/components.properties
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the shared React components,
+# so files in `devtools/client/shared/components/*`.
+
+# LOCALIZATION NOTE (frame.unknownSource): When we do not know the source filename of
+# a frame, we use this string instead.
+frame.unknownSource=(unknown)
+
+# LOCALIZATION NOTE (frame.viewsourceindebugger): The label for the tooltip when hovering over
+# a source link that links to the debugger.
+# %S represents the URL to match in the debugger.
+frame.viewsourceindebugger=View source in Debugger → %S
+
+# LOCALIZATION NOTE (frame.viewsourceinstyleeditor): The label for the tooltip when hovering over
+# a source link that links to the Style Editor.
+# %S represents the URL to match in the style editor.
+frame.viewsourceinstyleeditor=View source in Style Editor → %S
+
+# LOCALIZATION NOTE (notificationBox.closeTooltip): The content of a tooltip that
+# appears when hovering over the close button in a notification box.
+notificationBox.closeTooltip=Close this message
+
+# LOCALIZATION NOTE (appErrorBoundary.description): This is the information displayed
+# once the panel errors.
+# %S represents the name of panel which has the crash.
+appErrorBoundary.description=The %S panel has crashed.
+
+# LOCALIZATION NOTE (appErrorBoundary.fileBugButton): This is the text that appears in
+# the button to visit the bug filing link.
+appErrorBoundary.fileBugButton=File Bug Report
+
+# LOCALIZATION NOTE (appErrorBoundary.reloadPanelInfo): This is the text that appears
+# after the panel errors to instruct the user to reload the panel.
+appErrorBoundary.reloadPanelInfo=Close and reopen the toolbox to clear this error.
+
+# LOCALIZATION NOTE(searchModifier.regExpModifier): A search option
+# when searching text in a file
+searchModifier.regExpModifier=Käytä säännöllistä lauseketta
+
+# LOCALIZATION NOTE(searchModifier.caseSensitiveModifier): A search option
+# when searching text in a file
+searchModifier.caseSensitiveModifier=Huomioi kirjainkoko
+
+# LOCALIZATION NOTE(searchModifier.wholeWordModifier): A search option
+# when searching text in a file
+searchModifier.wholeWordModifier=Kokonaiset sanat
+
+# LOCALIZATION NOTE (searchBox.clearButtonTitle): The title of the SearchBox clear input
+# button, which is displayed when the input is not empty.
+searchBox.clearButtonTitle=Clear filter input
+
+# LOCALIZATION NOTE treeNode.collapseButtonTitle): The title of the Tree node toggle
+# button when the node is expanded.
+treeNode.collapseButtonTitle=Collapse
+
+# LOCALIZATION NOTE treeNode.expandButtonTitle): The title of the Tree node toggle
+# button when the node is collapsed.
+treeNode.expandButtonTitle=Expand
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/debugger.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/debugger.properties
new file mode 100644
index 0000000000..10781c0094
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/debugger.properties
@@ -0,0 +1,1132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Browser Tools sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (collapseSources): This is the tooltip for the button
+# that collapses the Sources and Outlines panes in the debugger UI.
+collapseSources=Collapse Sources and Outline panes
+
+# LOCALIZATION NOTE (collapseBreakpoints): This is the tooltip for the button
+# that collapses the Breakpoints panes in the debugger UI.
+collapseBreakpoints=Collapse Breakpoints pane
+
+# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
+# context menu to copy the text that the user selected.
+copyToClipboard.label=Copy to clipboard
+copyToClipboard.accesskey=C
+
+# LOCALIZATION NOTE (copySource.label): This is the text that appears in the
+# context menu to copy all of the text in the open file.
+copySource.label=Copy source text
+copySource.accesskey=y
+
+# LOCALIZATION NOTE (copySourceUri2): This is the text that appears in the
+# context menu to copy the source URI of file open.
+copySourceUri2=Copy source URI
+copySourceUri2.accesskey=u
+
+# LOCALIZATION NOTE (collapseAll.label): This is the text that appears in the
+# context menu to collapse a directory and all of its subdirectories.
+collapseAll.label=Collapse all
+
+# LOCALIZATION NOTE (expandAll.label): This is the text that appears in the
+# context menu to expand a directory and all of its subdirectories.
+expandAll.label=Expand all
+
+# LOCALIZATION NOTE (setDirectoryRoot.label): This is the text that appears in the
+# context menu to set a directory as root directory
+setDirectoryRoot.label=Set directory root
+setDirectoryRoot.accesskey=r
+
+# LOCALIZATION NOTE (removeDirectoryRoot.label): This is the text that appears in the
+# context menu to remove a directory as root directory
+removeDirectoryRoot.label=Remove directory root
+
+# LOCALIZATION NOTE (ignoreAll.label): Text associated with the ignore context menu item
+ignoreAll.label=Ignore
+
+# LOCALIZATION NOTE (ignoreAllInGroup.label): This is the text that appears in the
+# context submenu to ignore all files inside of the selected group
+ignoreAllInGroup.label=Ignore files in this group
+
+# LOCALIZATION NOTE (unignoreAllInGroup.label): This is the text that appears in the
+# context submenu to unignore all files inside of the selected group
+unignoreAllInGroup.label=Unignore files in this group
+
+# LOCALIZATION NOTE (ignoreAllOutsideGroup.label): This is the text that appears in the
+# context submenu to ignore all files outside of the selected group
+ignoreAllOutsideGroup.label=Ignore files outside this group
+
+# LOCALIZATION NOTE (unignoreAllOutsideGroup.label): This is the text that appears in the
+# context submenu to unignore all files outside of the selected group
+unignoreAllOutsideGroup.label=Unignore files outside this group
+
+# LOCALIZATION NOTE (ignoreAllInDir.label): This is the text that appears in the
+# context submenu to ignore all files inside of the selected directory
+ignoreAllInDir.label=Ignore files in this directory
+
+# LOCALIZATION NOTE (unignoreAllInDir.label): This is the text that appears in the
+# context submenu to unignore all files inside of the selected directory
+unignoreAllInDir.label=Unignore files in this directory
+
+# LOCALIZATION NOTE (ignoreAllOutsideDir.label): This is the text that appears in the
+# context submenu to ignore all files outside of the selected directory
+ignoreAllOutsideDir.label=Ignore files outside this directory
+
+# LOCALIZATION NOTE (unignoreAllOutsideDir.label: This is the text that appears in the
+# context submenu to unignore all files outside of the selected directory
+unignoreAllOutsideDir.label=Unignore files outside this directory
+
+# LOCALIZATION NOTE (copyFunction.label): This is the text that appears in the
+# context menu to copy the function the user selected
+copyFunction.label=Copy Function
+copyFunction.accesskey=F
+
+# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the
+# context menu to copy the stack trace methods, file names and row number.
+copyStackTrace=Copy Stack Trace
+copyStackTrace.accesskey=c
+
+# LOCALIZATION NOTE (restartFrame): This is the text that appears in the
+# context menu to restart a frame.
+restartFrame=Restart frame
+restartFrame.accesskey=r
+
+# LOCALIZATION NOTE (expandSources): This is the tooltip for the button
+# that expands the Sources and Outlines panes in the debugger UI.
+expandSources=Expand Sources and Outline panes
+
+# LOCALIZATION NOTE (expandBreakpoints): This is the tooltip for the button
+# that expands the Breakpoints panes in the debugger UI.
+expandBreakpoints=Expand Breakpoints pane
+
+# LOCALIZATION NOTE (evaluateInConsole.label): Editor right-click menu item
+# to execute selected text in browser console.
+evaluateInConsole.label=Evaluate in console
+
+# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause
+# button when the debugger is in a running state.
+pauseButtonTooltip=Pause %S
+
+# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for
+# the pause button after it's been clicked but before the next JavaScript to run.
+pausePendingButtonTooltip=Waiting for next execution
+
+# LOCALIZATION NOTE (startTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. %S is for the log output location (webconsole or stdout).
+startTraceButtonTooltip=Trace all JavaScript frames to %S.\nRight click to change the output.
+
+# LOCALIZATION NOTE (stopTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. This label is only displayed when we are current tracing
+# JavaScript.
+stopTraceButtonTooltip=Stop tracing JavaScript frames.
+
+# LOCALIZATION NOTE (startTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar.
+# %1$S is for the key shortcut
+# %2$S is for the log output location (webconsole or stdout).
+startTraceButtonTooltip2=Trace all JavaScript frames to %2$S. (%1$S)\nRight click to change the output.
+
+# LOCALIZATION NOTE (stopTraceButtonTooltip): The label that is displayed on the trace
+# button in the top of the debugger right sidebar. This label is only displayed when we are current tracing
+# JavaScript.
+# %S is for the key shortcut
+stopTraceButtonTooltip2=Stop tracing JavaScript frames. (%S)
+
+# LOCALIZATION NOTE (traceInWebConsole): The label that is displayed in the context menu
+# of the trace button, which is in the top of the debugger right sidebar.
+# This is used to force logging JavaScript traces in the Web Console.
+traceInWebConsole=Trace in the web console
+
+# LOCALIZATION NOTE (traceInWebConsole): The label that is displayed in the context menu
+# of the trace button, which is in the top of the debugger right sidebar.
+# This is used to force logging JavaScript traces in the stdout.
+traceInStdout=Trace in the stdout
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+resumeButtonTooltip=Resume %S
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+stepOverTooltip=Step Over %S
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+stepInTooltip=Step In %S
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+stepOutTooltip=Step Out %S
+
+# LOCALIZATION NOTE (skipPausingTooltip.label): The tooltip text for disabling all
+# breakpoints and pausing triggers
+skipPausingTooltip.label=Deactivate breakpoints
+
+# LOCALIZATION NOTE (undoSkipPausingTooltip.label): The tooltip text for enabling all
+# breakpoints and pausing triggers
+undoSkipPausingTooltip.label=Activate breakpoints
+
+# LOCALIZATION NOTE (pauseOnDebuggerStatement): The pause on debugger statement checkbox label
+pauseOnDebuggerStatement=Pause on debugger statement
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem2): The pause on exceptions checkbox description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem2=Pause on exceptions
+
+# LOCALIZATION NOTE (pauseOnCaughtExceptionsItem): The pause on exceptions checkbox description
+# when the debugger should pause on caught exceptions
+pauseOnCaughtExceptionsItem=Pause on caught exceptions
+
+# LOCALIZATION NOTE (threadsHeader): The text to describe the threads header
+threadsHeader=Threads
+
+# LOCALIZATION NOTE (mainThread): The text to describe the thread of the
+# program as opposed to worker threads.
+mainThread=Main Thread
+
+# LOCALIZATION NOTE (pausedThread): The text to describe the status of paused threads
+pausedThread=paused
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+noSourcesText=This page has no sources.
+
+# LOCALIZATION NOTE (ignoredSourcesHidden): Notification message displayed in the
+# sources list footer when ignored sources are hidden.
+ignoredSourcesHidden=Ignored sources are hidden.
+
+# LOCALIZATION NOTE (showIgnoredSources): Notification button displayed in the
+# source next to the "ignored sources are hidden" string. Clicking on this link
+# shows all the ignored sources which are currently hidden.
+showIgnoredSources=Show all sources
+
+# LOCALIZATION NOTE (showIgnoredSources.tooltip.label): Message displayed in the tooltip of the notification
+# link displayed in the sources list footer when ignored sources are hidden.
+showIgnoredSources.tooltip.label=This will show all the ignored sources (which are currently hidden) in the tree.
+
+# LOCALIZATION NOTE (eventListenersHeader1): The text to display in the events
+# header.
+eventListenersHeader1=Event Listener Breakpoints
+
+# LOCALIZATION NOTE (noDomMutationBreakpoints): The text to
+# display in the DOM Mutation Breakpoints pane when there are no events.
+# %S will be replaced by an active link using inspectorTool as text
+noDomMutationBreakpoints=Right click an element in the %S and select “Break on…” to add a breakpoint
+
+# LOCALIZATION NOTE (inspectorTool): The text to describe the the Inspector tool
+inspectorTool=Inspector
+
+# LOCALIZATION NOTE (eventListenersHeader1.placeholder): The placeholder text in
+# the event search input bar
+eventListenersHeader1.placeholder=Filter by event type
+
+# LOCALIZATION NOTE (domMutationHeader): The text to display in the
+# DOM Mutation Breakpoints header
+domMutationHeader=DOM Mutation Breakpoints
+
+# LOCALIZATION NOTE (domMutationTypes.attribute): The text to display in the
+# DOM Mutation Breakpoints panel for an attribute change
+domMutationTypes.attribute=Attribute Modification
+
+# LOCALIZATION NOTE (domMutationTypes.removal): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM node removal
+domMutationTypes.removal=Node Removal
+
+# LOCALIZATION NOTE (domMutationTypes.subtree): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM subtree change
+domMutationTypes.subtree=Subtree Modification
+
+# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for
+# searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+P", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.key2=CmdOrCtrl+P
+
+# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the
+# search for searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.alt.key=CmdOrCtrl+O
+
+# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the
+# full project text search for searching all the files the debugger has seen.
+# Do not localize "CmdOrCtrl+Shift+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+projectTextSearch.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (allShortcut.key): A key shortcut to open the
+# modal of full shortcuts list.
+# Do not localize "CmdOrCtrl+/", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+allShortcut.key=CmdOrCtrl+/
+
+# LOCALIZATION NOTE (functionSearch.key): A key shortcut to open the
+# modal for searching functions in a file.
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+functionSearch.key=CmdOrCtrl+Shift+O
+
+# LOCALIZATION NOTE (toggleBreakpoint.key): A key shortcut to toggle
+# breakpoints.
+# Do not localize "CmdOrCtrl+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleBreakpoint.key=CmdOrCtrl+B
+
+# LOCALIZATION NOTE (toggleCondPanel.breakpoint.key): A key shortcut to toggle
+# the conditional panel for breakpoints.
+# Do not localize "CmdOrCtrl+Shift+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.breakpoint.key=CmdOrCtrl+Shift+B
+
+# LOCALIZATION NOTE (toggleCondPanel.logPoint.key): A key shortcut to toggle
+# the conditional panel for log points.
+# Do not localize "CmdOrCtrl+Shift+Y", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.logPoint.key=CmdOrCtrl+Shift+Y
+
+# LOCALIZATION NOTE (stepOut.key): A key shortcut to
+# step out.
+stepOut.key=Shift+F11
+
+# LOCALIZATION NOTE (shortcuts.header.editor): Sections header in
+# the shortcuts modal for keyboard shortcuts related to editing.
+shortcuts.header.editor=Editor
+
+# LOCALIZATION NOTE (shortcuts.header.stepping): Sections header in
+# the shortcuts modal for keyboard shortcuts related to stepping.
+shortcuts.header.stepping=Stepping
+
+# LOCALIZATION NOTE (shortcuts.header.search): Sections header in
+# the shortcuts modal for keyboard shortcuts related to search.
+shortcuts.header.search=Search
+
+# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
+# when searching across all of the files in a project.
+projectTextSearch.placeholder=Find in files…
+
+# LOCALIZATION NOTE (projectTextSearch.excludePatterns.label): A label shown
+# above the exclude patterns field when searching across all of the files in a project.
+projectTextSearch.excludePatterns.label=files to exclude
+
+# LOCALIZATION NOTE (projectTextSearch.excludePatterns.placeholder): A placeholder shown
+# for the exclude patterns field when searching across all of the files in a project.
+projectTextSearch.excludePatterns.placeholder=e.g. **/node_modules/**,app.js
+
+# LOCALIZATION NOTE (projectTextSearch.noResults): The center pane Text Search
+# message when the query did not match any text of all files in a project.
+projectTextSearch.noResults=No results found
+
+# LOCALIZATION NOTE (projectTextSearch.pageNavigated): Tooltip shown on the refresh
+# button, only when it is highlighted because the page navigated to a new document
+# and the results might be obsolete.
+projectTextSearch.refreshButtonTooltip=Click to refresh search results
+
+# LOCALIZATION NOTE (projectTextSearch.pageNavigated): Tooltip shown on the refresh
+# button, only when it is highlighted because the page navigated to a new document
+# and the results might be obsolete.
+projectTextSearch.refreshButtonTooltipOnNavigation=The page navigated to a new document. Click to refresh search results
+
+# LOCALIZATION NOTE (projectTextSearch.sourceNoLongerAvailable): Tooltip message shown
+# on Text Search results when the related source no longer exists.
+# This typically happens after navigating or reloading the page and search results are obsolete.
+projectTextSearch.sourceNoLongerAvailable=This source is no longer available.\nRefresh the search to have latest sources.
+
+# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search
+# for searching within a the currently opened files in the editor
+# Do not localize "CmdOrCtrl+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.key2=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder=Search in file…
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder2): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder2=Find in file…
+
+# LOCALIZATION NOTE (sourceSearch.resultsSummary2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Shows a summary of the number of matches for autocomplete
+sourceSearch.resultsSummary2=#1 result;#1 results
+
+# LOCALIZATION NOTE (breakpointHeadingMenuItem.*): The text for all the elements
+# that are displayed in the breakpoint headings menu item popup.
+breakpointHeadingsMenuItem.enableInSource.label=Enable breakpoints
+breakpointHeadingsMenuItem.enableInSource.accesskey=E
+breakpointHeadingsMenuItem.disableInSource.label=Disable breakpoints
+breakpointHeadingsMenuItem.disableInSource.accesskey=D
+breakpointHeadingsMenuItem.removeInSource.label=Remove breakpoints
+breakpointHeadingsMenuItem.removeInSource.accesskey=R
+
+# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that
+# are displayed in the breakpoints menu item popup.
+breakpointMenuItem.enableSelf2.label=Enable
+breakpointMenuItem.enableSelf2.accesskey=E
+breakpointMenuItem.disableSelf2.label=Disable
+breakpointMenuItem.disableSelf2.accesskey=D
+breakpointMenuItem.deleteSelf2.label=Remove
+breakpointMenuItem.deleteSelf2.accesskey=R
+breakpointMenuItem.disabledbg.label=Never pause here
+breakpointMenuItem.enabledbg.label=Pause here
+breakpointMenuItem.enableOthers2.label=Enable others
+breakpointMenuItem.enableOthers2.accesskey=o
+breakpointMenuItem.disableOthers2.label=Disable others
+breakpointMenuItem.disableOthers2.accesskey=s
+breakpointMenuItem.deleteOthers2.label=Remove others
+breakpointMenuItem.deleteOthers2.accesskey=h
+breakpointMenuItem.enableAll2.label=Enable all
+breakpointMenuItem.enableAll2.accesskey=b
+breakpointMenuItem.disableAll2.label=Disable all
+breakpointMenuItem.disableAll2.accesskey=k
+breakpointMenuItem.deleteAll2.label=Remove all
+breakpointMenuItem.deleteAll2.accesskey=a
+breakpointMenuItem.removeCondition2.label=Remove condition
+breakpointMenuItem.removeCondition2.accesskey=c
+breakpointMenuItem.addCondition2.label=Add condition
+breakpointMenuItem.addCondition2.accesskey=A
+breakpointMenuItem.editCondition2.label=Edit condition
+breakpointMenuItem.editCondition2.accesskey=n
+breakpointMenuItem.enableSelf=Enable breakpoint
+breakpointMenuItem.disableSelf=Disable breakpoint
+breakpointMenuItem.deleteSelf=Remove breakpoint
+breakpointMenuItem.enableOthers=Enable others
+breakpointMenuItem.disableOthers=Disable others
+breakpointMenuItem.deleteOthers=Remove others
+breakpointMenuItem.enableAll=Enable all breakpoints
+breakpointMenuItem.disableAll=Disable all breakpoints
+breakpointMenuItem.deleteAll=Remove all breakpoints
+breakpointMenuItem.disableAllAtLine.label=Disable breakpoints on line
+breakpointMenuItem.disableAllAtLine.accesskey=K
+breakpointMenuItem.enableAllAtLine.label=Enable breakpoints on line
+breakpointMenuItem.enableAllAtLine.accesskey=L
+breakpointMenuItem.removeAllAtLine.label=Remove breakpoints on line
+breakpointMenuItem.removeAllAtLine.accesskey=X
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+breakpoints.header=Breakpoints
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+breakpoints.removeBreakpointTooltip=Remove Breakpoint
+
+# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.
+callStack.header=Call Stack
+
+# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane
+# message when not paused.
+callStack.notPaused=Not Paused
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+callStack.collapse=Collapse Rows
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+callStack.expand=Expand Rows
+
+# LOCALIZATION NOTE (callStack.group.expandTooltip): The text that will appear
+# when hovering a collapsed Group of frames in the callStack panel. `frames` is
+# always plural since a group can only exist if it contain more that 1 frame.
+# %S is replaced by the name of the library of the frames in the group.
+# example: `Show React frames`.
+callStack.group.expandTooltip=Show %S frames
+
+# LOCALIZATION NOTE (callStack.group.collapseTooltip): The text that will appear
+# when hovering an expanded Group of frames in the callStack panel. `frames` is
+# always plural since a group can only exist if it contain more that 1 frame.
+# %S is replaced by the name of the library of the frames in the group.
+# example: `Collapse React frames`.
+callStack.group.collapseTooltip=Collapse %S frames
+
+# LOCALIZATION NOTE (editor.searchResults1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Editor Search bar message to summarize the selected search result. e.g. 5 of 10 results.
+editor.searchResults1=%d of #1 result;%d of #1 results
+
+# LOCALIZATION NOTE (editor.noResultsFound): Editor Search bar message
+# for when no results found.
+editor.noResultsFound=No results found
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+editor.searchResults.nextResult=Next Result
+
+# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar
+# tooltip for traversing to the Previous Result
+editor.searchResults.prevResult=Previous Result
+
+# LOCALIZATION NOTE (editor.continueToHere.label): Editor gutter context
+# menu item for jumping to a new paused location
+editor.continueToHere.label=Continue To Here
+editor.continueToHere.accesskey=H
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+editor.addBreakpoint=Add Breakpoint
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+editor.disableBreakpoint=Disable Breakpoint
+editor.disableBreakpoint.accesskey=D
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+editor.enableBreakpoint=Enable Breakpoint
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+editor.removeBreakpoint=Remove Breakpoint
+
+# LOCALIZATION NOTE (editor.addConditionBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+editor.addConditionBreakpoint=Add condition
+editor.addConditionBreakpoint.accesskey=c
+
+# LOCALIZATION NOTE (editor.editConditionBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+editor.editConditionBreakpoint=Edit condition
+
+# LOCALIZATION NOTE (editor.addLogPoint): Editor gutter context
+# menu item for adding a log point on a line.
+editor.addLogPoint=Add log
+editor.addLogPoint.accesskey=l
+
+# LOCALIZATION NOTE (editor.editLogPoint): Editor gutter context menu item
+# for editing a log point already set on a line.
+editor.editLogPoint=Edit log
+editor.editLogPoint.accesskey=E
+
+# LOCALIZATION NOTE (editor.removeLogPoint): Context menu item for removing
+# a log point on a line.
+editor.removeLogPoint.label=Remove log
+editor.removeLogPoint.accesskey=V
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component
+editor.conditionalPanel.placeholder2=Breakpoint condition, e.g. items.length > 0
+
+# LOCALIZATION NOTE (editor.conditionalPanel.logPoint.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component when a log point is set
+editor.conditionalPanel.logPoint.placeholder2=Log message, e.g. displayName
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+editor.jumpToMappedLocation1=Jump to %S location
+editor.jumpToMappedLocation1.accesskey=m
+
+# LOCALIZATION NOTE (downloadFile.label): Context menu item
+# for downloading a source's content
+downloadFile.label=Download file
+downloadFile.accesskey=d
+
+# LOCALIZATION NOTE (inlinePreview.show.label): Context menu item
+# for showing the inline preview blocks
+inlinePreview.show.label=Show inline preview
+
+# LOCALIZATION NOTE (inlinePreview.hide.label): Context menu item
+# for hiding the inline preview block
+inlinePreview.hide.label=Hide inline preview
+
+# LOCALIZATION NOTE (inlinePreview.toggle.label): Context menu item
+# that will toggle display of inline preview
+inlinePreview.toggle.label=Inline Variable Preview
+
+# LOCALIZATION NOTE (inlinePreview.toggle.tooltip): Context menu item
+# tooltip that will describe toggling inline preview
+inlinePreview.toggle.tooltip=Show inline preview in the debugger editor
+
+# LOCALIZATION NOTE (editorWrapping.show.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.show.label=Wrap lines
+
+# LOCALIZATION NOTE (editorWrapping.hide.label): Context menu item
+# for showing the wrap lines block
+editorWrapping.hide.label=Unwrap lines
+
+# LOCALIZATION NOTE (editorWrapping.toggle.label): Context menu item
+# label for toggling the lines wrapping feature
+editorWrapping.toggle.label=Wrap Lines
+
+# LOCALIZATION NOTE (editorWrapping.toggle.tooltip): Context menu item
+# tooltip for toggling the lines wrapping feature
+editorWrapping.toggle.tooltip=Wrap lines in the debugger editor
+
+# LOCALIZATION NOTE (settings.button.label): Label for Settings button
+settings.button.label=Debugger Settings
+
+# LOCALIZATION NOTE (settings.disableJavaScript.label): Context menu item
+# label for disabling JavaScript
+settings.disableJavaScript.label=Disable JavaScript
+
+# LOCALIZATION NOTE (settings.disableJavaScript.tooltip): Context menu item
+# tooltip for disabling JavaScript
+settings.disableJavaScript.tooltip=Disables JavaScript (Requires refresh)
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
+# tooltip for toggling the source maps feature
+settings.toggleSourceMaps.tooltip=Enable Source Maps to let DevTools load your original sources in addition to your generated ones
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.label): Context menu item
+# label for toggling the source maps feature
+settings.toggleSourceMaps.label=Source Maps
+
+# LOCALIZATION NOTE (settings.hideIgnoredSources.tooltip): Context menu item
+# tooltip for hiding and showing all the ignored sources
+settings.hideIgnoredSources.tooltip=Hides all ignored sources in the Sources panel
+
+# LOCALIZATION NOTE (settings.hideIgnoredSources.label): Context menu item
+# label for hiding all ignored sources when enabled (indicated by the check mark)
+# Ignored sources will be shown when disabled (no check mark).
+settings.hideIgnoredSources.label=Hide Ignored Sources
+
+# LOCALIZATION NOTE (settings.enableSourceMapIgnoreList.tooltip): Context menu item
+# tooltip for ignoring all sources on the sourcemaps ignore list.
+# Note: x_google_ignoreList should not be translated.
+settings.enableSourceMapIgnoreList.tooltip=Ignores all sources on the source map x_google_ignoreList field.
+
+# LOCALIZATION NOTE (settings.enableSourceMapIgnoreList.label): Context menu item
+# label for ignoring all sources on the sourcemaps ignore list when enabled
+# (indicated by the check mark). The sources on the ignore list are un-ignored
+# when disabled (no check mark).
+# Note: Make sure to also keep 'sourceFooter.ignoreList' in sync when this changes
+settings.enableSourceMapIgnoreList.label=Ignore Known Third-party Scripts
+
+# LOCALIZATION NOTE (preview.noProperties): Label shown in the preview
+# popup when there are no properties to show.
+preview.noProperties=No properties
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+framework.disableGrouping=Disable Framework Grouping
+framework.disableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+framework.enableGrouping=Enable Framework Grouping
+framework.enableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+generated=generated
+
+# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location
+original=original
+
+# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression
+# input element
+expressions.placeholder=Add Watch Expression
+
+# LOCALIZATION NOTE (expressions.noOriginalScopes): Expressions right sidebar pane message
+# for when the`map variable names`is off and the debugger is paused in an original source
+expressions.noOriginalScopes=Original variables name mapping is turned off. Expression values might not be accurate.
+
+# LOCALIZATION NOTE (expressions.errorMsg): Error text for expression
+# input element
+expressions.errorMsg=Invalid expression…
+expressions.label=Add watch expression
+expressions.accesskey=e
+expressions.remove.tooltip=Remove watch expression
+
+# LOCALIZATION NOTE (xhrBreakpoints.header): The pause on any XHR breakpoints headings
+xhrBreakpoints.header=XHR Breakpoints
+xhrBreakpoints.placeholder=Break when URL contains
+xhrBreakpoints.label=Add XHR breakpoint
+
+# LOCALIZATION NOTE (xhrBreakpoints.removeAll.tooltip): For the `Remove all XHR breakpoints' button in the header of the XHR breakpoints panel
+xhrBreakpoints.removeAll.tooltip=Remove all XHR breakpoints
+
+
+# LOCALIZATION NOTE (xhrBreakpoints.item.label): message displayed when reaching a breakpoint for XHR requests. %S is replaced by the path provided as condition for the breakpoint.
+xhrBreakpoints.item.label=URL contains “%S”
+
+# LOCALIZATION NOTE (pauseOnAnyXHR): The pause on any XHR checkbox description
+# when the debugger will pause on any XHR requests.
+pauseOnAnyXHR=Pause on any URL
+
+# LOCALIZATION NOTE (watchpoints.submenu): This is the text for the watchpoints sub-menu.
+watchpoints.submenu=Break on…
+
+# LOCALIZATION NOTE (watchpoints.getWatchpoint): This is the text that appears in the
+# watchpoints sub-menu to add a "get" watchpoint on an object property.
+watchpoints.getWatchpoint=Property get
+
+# LOCALIZATION NOTE (watchpoints.setWatchpoint): This is the text that appears in the
+# watchpoints submenu to add a "set" watchpoint on an object property.
+watchpoints.setWatchpoint=Property set
+
+# LOCALIZATION NOTE (watchpoints.getOrSetWatchpoint): This is the text that appears in the
+# watchpoints submenu to add a "set" watchpoint on an object property.
+watchpoints.getOrSetWatchpoint=Property get or set
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpoint): This is the text that appears in the
+# context menu to delete a watchpoint on an object property.
+watchpoints.removeWatchpoint=Remove watchpoint
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpointTooltip): This is the text that appears in the
+# tooltip to delete a watchpoint on an object property.
+watchpoints.removeWatchpointTooltip=Remove watchpoint
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+sourceTabs.closeTab=Close tab
+sourceTabs.closeTab.accesskey=c
+sourceTabs.closeTab.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+sourceTabs.closeOtherTabs=Close others
+sourceTabs.closeOtherTabs.accesskey=o
+
+# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item
+# for closing the tabs to the end (the right for LTR languages) of the selected tab.
+sourceTabs.closeTabsToEnd=Close tabs to the right
+sourceTabs.closeTabsToEnd.accesskey=e
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+sourceTabs.closeAllTabs=Close all tabs
+sourceTabs.closeAllTabs.accesskey=a
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+sourceTabs.revealInTree=Reveal in Tree
+sourceTabs.revealInTree.accesskey=r
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+sourceTabs.prettyPrint=Pretty Print Source
+sourceTabs.prettyPrint.accesskey=p
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.isPrettyPrintedMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file is already pretty printed.
+sourceFooter.prettyPrint.isPrettyPrintedMessage=Can’t pretty print, file is already pretty printed
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.isOriginalMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file is an original source.
+sourceFooter.prettyPrint.isOriginalMessage=Can’t pretty print original sources, file is already readable
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.hasSourceMapMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file has a valid sourcemap with original sources.
+sourceFooter.prettyPrint.hasSourceMapMessage=Can’t pretty print generated sources with valid sourcemaps. Please use the original sources.
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.noContentMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file has no content.
+sourceFooter.prettyPrint.noContentMessage=Can’t pretty print, file has no content
+
+# LOCALIZATION NOTE (sourceFooter.prettyPrint.isNotJavascriptMessage): Tooltip text for the disabled
+# pretty print button in editor footer. This displays when the file is not JavaScript code.
+sourceFooter.prettyPrint.isNotJavascriptMessage=Can’t pretty print, file is not JavaScript
+
+# LOCALIZATION NOTE (sourceFooter.ignores): Tooltip text associated
+# with the ignores button
+sourceFooter.ignore=Ignore source
+
+# LOCALIZATION NOTE (sourceFooter.unignore): Tooltip text associated
+# with the ignore button
+sourceFooter.unignore=Unignore source
+
+# LOCALIZATION NOTE (sourceFooter.ignoreList): Tooltip text associated
+# with the ignore source button when the selected source is on the ignore list
+sourceFooter.ignoreList=This source is on the ignore list. Please turn off the `Ignore Known Third-party Scripts` option to enable it.
+
+# LOCALIZATION NOTE (editorNotificationFooter.noOriginalScopes): The notification message displayed in the editor notification footer
+# when paused in an original file and original variable mapping is turned off
+# %S is text from the label for checkbox to show original scopes
+editorNotificationFooter.noOriginalScopes=Original variables name mapping is turned off, so all inline and tooltip previews are disabled. Click the `%S` checkbox in the scopes panel to turn them on.
+
+# LOCALIZATION NOTE (ignoreContextItem.ignore): Text associated
+# with the ignore context menu item
+ignoreContextItem.ignore=Ignore source
+ignoreContextItem.ignore.accesskey=I
+
+# LOCALIZATION NOTE (ignoreContextItem.unignore): Text associated
+# with the unignore context menu item
+ignoreContextItem.unignore=Unignore source
+ignoreContextItem.unignore.accesskey=U
+
+# LOCALIZATION NOTE (overridesContextItem.override): Text associated
+# with the add overrides context menu item
+overridesContextItem.override=Add script override
+overridesContextItem.override.accesskey=o
+
+# LOCALIZATION NOTE (overridesContextItem.removeOverride): Text associated
+# with the remove override context menu item
+overridesContextItem.removeOverride=Remove script override
+overridesContextItem.removeOverride.accesskey=o
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLine): Text associated
+# with the ignore line context menu item
+ignoreContextItem.ignoreLine=Ignore line
+ignoreContextItem.ignoreLine.accesskey=l
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLine): Text associated
+# with the unignore line context menu item
+ignoreContextItem.unignoreLine=Unignore line
+ignoreContextItem.unignoreLine.accesskey=n
+
+# LOCALIZATION NOTE (ignoreContextItem.ignoreLines): Text associated
+# with the ignore lines context menu item
+ignoreContextItem.ignoreLines=Ignore lines
+ignoreContextItem.ignoreLines.accesskey=i
+
+# LOCALIZATION NOTE (ignoreContextItem.unignoreLines): Text associated
+# with the unignore lines context menu item
+ignoreContextItem.unignoreLines=Unignore lines
+ignoreContextItem.unignoreLines.accesskey=u
+
+# LOCALIZATION NOTE (sourceFooter.mappedSource): Text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSource=(From %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSourceTooltip): Tooltip text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSourceTooltip=(Source mapped from %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSuffix): Text associated
+# with a mapped source. Displays next to URLs in tree and tabs.
+sourceFooter.mappedSuffix=(mapped)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition=(%S, %S)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition.tooltip): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition.tooltip=(Line %1$S, column %2$S)
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+sourceTabs.closeTabButtonTooltip=Close tab
+
+# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.
+scopes.header=Scopes
+
+# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message
+# for when the debugger is paused, but there isn't pause data.
+scopes.notAvailable=Scopes Unavailable
+
+# LOCALIZATION NOTE (scopes.noOriginalScopes): Scopes right sidebar pane message
+# for when original variable mapping is disabled. This is only displayed when paused in an original source.
+# %S is text from the label for checkbox to show original scopes
+scopes.noOriginalScopes=Original variables name mapping is turned off. Scopes cannot be displayed. Click the `%S` checkbox above to turn on.
+
+# LOCALIZATION NOTE (scopes.loadingOriginalScopes): Scopes right sidebar pane message
+# for when the debugger is still loading the original variable mapping information.
+scopes.loadingOriginalScopes=Loading variables for the original source…
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+scopes.notPaused=Not Paused
+
+# LOCALIZATION NOTE (scopes.mapping.label): Scopes right sidebar pane
+# tooltip for checkbox and label
+scopes.mapping.label=Map original variable names
+
+# LOCALIZATION NOTE (eventlisteners.log.label): Event listeners tooltip for
+# checkbox and label
+eventlisteners.log.label=Log events to the console
+
+# LOCALIZATION NOTE (eventlisteners.log): Checkbox label for logging events
+eventlisteners.log=Log
+
+# LOCALIZATION NOTE (scopes.helpTooltip.label): Scopes right sidebar pane
+# icon tooltip for link to MDN
+scopes.helpTooltip.label=Learn more about map scopes
+
+# LOCALIZATION NOTE (scopes.map.label): Checkbox label to map scopes
+scopes.map.label=Map
+
+# LOCALIZATION NOTE (scopes.showOriginalScopesHelpTooltip): Scopes right sidebar pane
+# icon tooltip for link to MDN
+scopes.showOriginalScopesHelpTooltip=Learn more about mapping variables and showing the original scopes
+
+# LOCALIZATION NOTE (scopes.showOriginalScopesTooltip): Scopes right sidebar pane
+# tooltip for checkbox and label
+scopes.showOriginalScopesTooltip=Show the scopes with mapped variable names for the original source.
+
+# LOCALIZATION NOTE (scopes.showOriginalScopes): Checkbox label to show original scopes
+scopes.showOriginalScopes=Show original variables
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+scopes.block=Block
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+sources.header=Sources
+
+# LOCALIZATION NOTE (outline.header): Outline left sidebar header
+outline.header=Outline
+
+# LOCALIZATION NOTE (search.header): Search left sidebar header
+search.header=Search
+
+# LOCALIZATION NOTE (outline.placeholder): Placeholder text for the filter input
+# element
+outline.placeholder=Filter functions
+
+# LOCALIZATION NOTE (outline.sortLabel): Label for the sort button
+outline.sortLabel=Sort by name
+
+# LOCALIZATION NOTE (outline.noFunctions): Outline text when there are no functions to display
+outline.noFunctions=No functions
+
+# LOCALIZATION NOTE (outline.noFileSelected): Outline text when there are no files selected
+outline.noFileSelected=No file selected
+
+# LOCALIZATION NOTE (sources.search): Sources left sidebar prompt
+# e.g. Cmd+P to search. On a mac, we use the command unicode character.
+# On windows, it's ctrl.
+sources.search=%S to search
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+watchExpressions.header=Watch Expressions
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+watchExpressions.refreshButton=Refresh
+
+# LOCALIZATION NOTE (welcome.search): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search=%S to search for sources
+
+# LOCALIZATION NOTE (welcome.search2): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search2=%S Go to file
+
+# LOCALIZATION NOTE (welcome.findInFiles): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles=%S to find in files
+
+# LOCALIZATION NOTE (welcome.findInFiles2): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles2=%S Find in files
+
+# LOCALIZATION NOTE (welcome.allShortcuts): The label to open the modal of
+# shortcuts, displayed in the welcome panel.
+welcome.allShortcuts=Show all shortcuts
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search=Search…
+
+# LOCALIZATION NOTE (sourceSearch.search2): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search2=Go to file…
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+pauseOnExceptions=Pause on all exceptions. Click to ignore exceptions
+
+# LOCALIZATION NOTE (loadingText): The text that is displayed in the script
+# editor when the loading process has started but there is no file to display
+# yet.
+loadingText=Loading\u2026
+
+# LOCALIZATION NOTE (wasmIsNotAvailable): The text that is displayed in the
+# script editor when the WebAssembly source is not available.
+wasmIsNotAvailable=Please refresh to debug this module
+
+# LOCALIZATION NOTE (errorLoadingText3): The text that is displayed in the debugger
+# viewer when there is an error loading a file
+errorLoadingText3=Error loading this URI: %S
+
+# LOCALIZATION NOTE(gotoLineModal.placeholder): The placeholder
+# text displayed when the user searches for specific lines in a file
+gotoLineModal.placeholder=Go to line…
+
+# LOCALIZATION NOTE(gotoLineModal.title): The message shown to users
+# to open the go to line modal
+gotoLineModal.title=Go to a line number in a file
+
+# LOCALIZATION NOTE(gotoLineModal.key3): The shortcut for opening the
+# go to line modal
+# Do not localize "Ctrl+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+gotoLineModal.key3=Ctrl+G
+
+# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder
+# text displayed when the user searches for functions in a file
+symbolSearch.search.functionsPlaceholder=Search functions…
+symbolSearch.search.functionsPlaceholder.title=Search for a function in a file
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+symbolSearch.search.variablesPlaceholder=Search variables…
+symbolSearch.search.variablesPlaceholder.title=Search for a variable in a file
+
+# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for
+# searching for a function or variable
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+symbolSearch.search.key2=CmdOrCtrl+Shift+O
+
+experimental=This is an experimental feature
+
+# LOCALIZATION NOTE (ctrl): The text that is used for documenting
+# keyboard shortcuts that use the control key
+ctrl=Ctrl
+
+# LOCALIZATION NOTE (anonymousFunction): this string is used to display
+# JavaScript functions that have no given name - they are said to be
+# anonymous.
+anonymousFunction=<anonymous>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+stacktrace.asyncStack=(Async: %S)
+
+# LOCALIZATION NOTE (shortcuts.toggleBreakpoint): text describing
+# keyboard shortcut action for toggling breakpoint
+shortcuts.toggleBreakpoint=Toggle Breakpoint
+shortcuts.toggleBreakpoint.accesskey=B
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.breakpoint): text describing
+# keyboard shortcut action for toggling conditional panel for breakpoints
+shortcuts.toggleCondPanel.breakpoint=Edit Conditional Breakpoint
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.logPoint): text describing
+# keyboard shortcut action for toggling conditional panel for log points
+shortcuts.toggleCondPanel.logPoint=Edit Log Point
+
+# LOCALIZATION NOTE (shortcuts.pauseOrResume): text describing
+# keyboard shortcut action for pause of resume
+shortcuts.pauseOrResume=Pause/Resume
+
+# LOCALIZATION NOTE (shortcuts.stepOver): text describing
+# keyboard shortcut action for stepping over
+shortcuts.stepOver=Step Over
+
+# LOCALIZATION NOTE (shortcuts.stepIn): text describing
+# keyboard shortcut action for stepping in
+shortcuts.stepIn=Step In
+
+# LOCALIZATION NOTE (shortcuts.stepOut): text describing
+# keyboard shortcut action for stepping out
+shortcuts.stepOut=Step Out
+
+# LOCALIZATION NOTE (shortcuts.fileSearch): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch=Source File Search
+
+# LOCALIZATION NOTE (shortcuts.fileSearch2): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch2=Go to file
+
+# LOCALIZATION NOTE (shortcuts.gotoLine): text describing
+# keyboard shortcut for jumping to a specific line
+shortcuts.gotoLine=Go to line
+
+# LOCALIZATION NOTE (shortcuts.projectSearch): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch=Full Project Search
+
+# LOCALIZATION NOTE (shortcuts.projectSearch2): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch2=Find in files
+
+# LOCALIZATION NOTE (shortcuts.functionSearch): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch=Function Search
+
+# LOCALIZATION NOTE (shortcuts.functionSearch2): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch2=Find function
+
+# LOCALIZATION NOTE (shortcuts.buttonName): text describing
+# keyboard shortcut button text
+shortcuts.buttonName=Keyboard shortcuts
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+variablesSeparatorLabel=:
+variablesViewOptimizedOut=(optimized away)
+variablesViewUninitialized=(uninitialized)
+variablesViewMissingArgs=(unavailable)
+
+# LOCALIZATION NOTE (variablesDomNodeValueTooltip): The text that is displayed
+# in a tooltip on the "open in inspector" button in the the variables list for a
+# DOMNode item.
+variablesDomNodeValueTooltip=Click to select the node in the inspector
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+variablesEditButtonTooltip=Click to set value
+
+# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is
+# shown before the stack trace in an error.
+variablesViewErrorStacktrace=Stack trace:
+
+# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed
+# when you have an object preview that does not show all of the elements. At the end of the list
+# you see "N more..." in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of remaining items in the object
+# example: 3 more…
+variablesViewMoreObjects=#1 more…;#1 more…
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+variablesEditableNameTooltip=Double click to edit
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+variablesEditableValueTooltip=Click to change value
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+variablesCloseButtonTooltip=Click to remove
+
+# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed
+# in the variables list on certain variables or properties as tooltips.
+# Explanations of what these represent can be found at the following links:
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed
+# It's probably best to keep these in English.
+configurableTooltip=configurable
+enumerableTooltip=enumerable
+writableTooltip=writable
+frozenTooltip=frozen
+sealedTooltip=sealed
+extensibleTooltip=extensible
+overriddenTooltip=overridden
+WebIDLTooltip=WebIDL
+
+# LOCALIZATION NOTE (serviceWorkerInfo.parsed): State displayed for a service
+# worker that has been parsed.
+serviceWorkerInfo.parsed=parsed
+# LOCALIZATION NOTE (serviceWorkerInfo.installing): State displayed for a
+# service worker that is being installed.
+serviceWorkerInfo.installing=installing
+# LOCALIZATION NOTE (serviceWorkerInfo.installed): State displayed for a
+# service worker that has finished being installed.
+serviceWorkerInfo.installed=installed
+# LOCALIZATION NOTE (serviceWorkerInfo.activating): State displayed for a
+# service worker that is being activated.
+serviceWorkerInfo.activating=activating
+# LOCALIZATION NOTE (serviceWorkerInfo.activated): State displayed for a
+# service worker that has finished being activated.
+serviceWorkerInfo.activated=activated
+# LOCALIZATION NOTE (serviceWorkerInfo.redundant): State displayed for a
+# service worker that is redundant.
+serviceWorkerInfo.redundant=redundant
+# LOCALIZATION NOTE (serviceWorkerInfo.unknown): State displayed for a
+# service worker that is in an unknown state.
+serviceWorkerInfo.unknown=unknown
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/device.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/device.properties
new file mode 100644
index 0000000000..9c7e26b704
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/device.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Device Emulation developer
+# tools. The correct localization of this file might be to keep it in English,
+# or another language commonly spoken among web developers. You want to make
+# that choice consistent across the developer tools. A good criteria is the
+# language in which you'd find the best documentation on web development on the
+# web.
+
+# LOCALIZATION NOTE:
+# These strings are category names in a list of devices that a user can choose
+# to simulate (e.g. "ZTE Open C", "VIA Vixen", "720p HD Television", etc).
+device.phones=Phones
+device.tablets=Tablets
+device.laptops=Laptops
+device.televisions=TVs
+device.consoles=Gaming consoles
+device.watches=Watches
+device.custom=Custom
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/dom.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/dom.properties
new file mode 100644
index 0000000000..f2d060a469
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/dom.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Web Developer sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Browser Tools sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (dom.filterDOMPanel): A placeholder text used for
+# DOM panel search box.
+dom.filterDOMPanel=Filter DOM Panel
+
+# LOCALIZATION NOTE (dom.refresh): A label for Refresh button in
+# DOM panel toolbar
+dom.refresh=Refresh
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/filterwidget.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/filterwidget.properties
new file mode 100644
index 0000000000..ddd2f26650
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/filterwidget.properties
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the CSS Filter Editor Widget
+# which can be found in a tooltip that appears in the Rule View when clicking
+# on a filter swatch displayed next to CSS declarations like 'filter: blur(2px)'.
+
+# LOCALIZATION NOTE (emptyFilterList):
+# This string is displayed when filter's list is empty
+# (no filter specified / all removed)
+emptyFilterList=No filter specified
+
+# LOCALIZATION NOTE (emptyPresetList):
+# This string is displayed when preset's list is empty
+emptyPresetList=You don’t have any saved presets. \
+You can store filter presets by choosing a name and saving them. \
+Presets are quickly accessible and you can re-use them with ease.
+
+# LOCALIZATION NOTE (addUsingList):
+# This string is displayed under [emptyFilterList] when filter's
+# list is empty, guiding user to add a filter using the list below it
+addUsingList=Add a filter using the list below
+
+# LOCALIZATION NOTE (dropShadowPlaceholder):
+# This string is used as a placeholder for drop-shadow's input
+# in the filter list (shown when <input> is empty)
+dropShadowPlaceholder=x y radius color
+
+# LOCALIZATION NOTE (dragHandleTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# drag handles of filters which are used to re-order filters
+dragHandleTooltipText=Drag up or down to re-order filter
+
+# LOCALIZATION NOTE (labelDragTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# filters' labels which can be dragged left/right to increase/decrease
+# the filter's value (like photoshop)
+labelDragTooltipText=Drag left or right to decrease or increase the value
+
+# LOCALIZATION NOTE (filterListSelectPlaceholder):
+# This string is used as a preview option in the list of possible filters
+# <select>
+filterListSelectPlaceholder=Select a Filter
+
+# LOCALIZATION NOTE (addNewFilterButton):
+# This string is displayed on a button used to add new filters
+addNewFilterButton=Add
+
+# LOCALIZATION NOTE (newPresetPlaceholder):
+# This string is used as a placeholder in the list of presets which is used to
+# save a new preset
+newPresetPlaceholder=Preset Name
+
+# LOCALIZATION NOTE (savePresetButton):
+# This string is displayed on a button used to save a new preset
+savePresetButton=Save
+
+# LOCALIZATION NOTE(presetsToggleButton):
+# This string is used in a button which toggles the presets list
+presetsToggleButton=Presets
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/font-inspector.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/font-inspector.properties
new file mode 100644
index 0000000000..e2f6a43bde
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/font-inspector.properties
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the Font Inspector strings.
+# The Font Inspector is a panel accessible in the Inspector sidebar.
+
+# LOCALIZATION NOTE (fontinspector.system) This label indicates that the font is a local
+# system font.
+fontinspector.system=system
+
+# LOCALIZATION NOTE (fontinspector.noFontsUsedOnCurrentElement): This label is shown when
+# no fonts were used on the selected element.
+fontinspector.noFontsUsedOnCurrentElement=No fonts used on the current element.
+
+# LOCALIZATION NOTE (fontinspector.copyURL): This is the text that appears in a tooltip
+# displayed when the user hovers over the copy icon next to the font URL.
+# Clicking the copy icon copies the full font URL to the user's clipboard
+fontinspector.copyURL=Copy URL
+
+# LOCALIZATION NOTE (fontinspector.customInstanceName): Think of instances as presets
+# (groups of settings that apply in bulk to a thing). Instances have names. When the user
+# creates a new instance, it doesn't have a name. This is the text that appears as the
+# default name for a new instance. It shows up in a dropdown from which users can select
+# between predefined instances and this custom instance.
+fontinspector.customInstanceName=Custom
+
+# LOCALIZATION NOTE (fontinspector.fontInstanceLabel): This label is shown next to the UI
+# in the font editor which allows a user to select a font instance option from a
+# dropdown. An instance is like a preset. A "font instance" is the term used by the font
+# authors to mean a group of predefined font settings.
+fontinspector.fontInstanceLabel=Instance
+
+# LOCALIZATION NOTE (fontinspector.fontSizeLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the font size.
+fontinspector.fontSizeLabel=Size
+
+# LOCALIZATION NOTE (fontinspector.fontWeightLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the font weight.
+fontinspector.fontWeightLabel=Weight
+
+# LOCALIZATION NOTE (fontinspector.fontItalicLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the style of the font to italic.
+fontinspector.fontItalicLabel=Italic
+
+# LOCALIZATION NOTE (fontinspector.showMore): Label for a collapsed list of fonts.
+fontinspector.showMore=Show more
+
+# LOCALIZATION NOTE (fontinspector.showLess): Label for an expanded list of fonts.
+fontinspector.showLess=Show less
+
+# LOCALIZATION NOTE (fontinspector.letterSpacingLabel): Label for the UI to change the
+# letter spacing in the font editor.
+fontinspector.letterSpacingLabel=Spacing
+
+# LOCALIZATION NOTE (fontinspector.lineHeightLabelCapitalized): Label for the UI to change the line height in the font editor.
+fontinspector.lineHeightLabelCapitalized=Line Height
+
+# LOCALIZATION NOTE (fontinspector.allFontsOnPageHeader): Header for the section listing
+# all the fonts on the current page.
+fontinspector.allFontsOnPageHeader=All fonts on page
+
+# LOCALIZATION NOTE (fontinspector.fontsUsedLabel): Label for the Font Editor section
+# which shows the fonts used on the selected element.
+fontinspector.fontsUsedLabel=Fonts Used
+
+# LOCALIZATION NOTE (fontinspector.previewTextPlaceholder): Placeholder for the input
+# where the user can type text to get a preview of it using a font.
+fontinspector.previewTextPlaceholder=Font preview text
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/har.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/har.properties
new file mode 100644
index 0000000000..b14ef1ad50
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/har.properties
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Web Developer sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Browser Tools sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP response bodies are not includes
+# in exported data.
+har.responseBodyNotIncluded=Response bodies are not included.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP request bodies are not includes
+# in exported data.
+har.requestBodyNotIncluded=Request bodies are not included.
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/inspector.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/inspector.properties
new file mode 100644
index 0000000000..ad9a19a8e0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/inspector.properties
@@ -0,0 +1,602 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Inspector
+# which is available from the Browser Tools sub-menu -> 'Inspect'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+inspector.panelLabel.markupView=Markup View
+
+# LOCALIZATION NOTE (markupView.more.showing)
+# When there are too many nodes to load at once, we will offer to
+# show all the nodes.
+markupView.more.showing=Some nodes were hidden.
+
+# LOCALIZATION NOTE (markupView.more.showAll2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+markupView.more.showAll2=Show one more node;Show all #1 nodes
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly.label)
+# Used in the badge that appears when whitespace-only text nodes are displayed in the
+# inspector.
+markupView.whitespaceOnly.label=whitespace
+
+# LOCALIZATION NOTE (markupView.unavailableChildren.label)
+# Used in the badge that appears when the Browser Toolbox is in "parent-process"
+# mode and the markup view cannot display the children from a content browser.
+markupView.unavailableChildren.label=unavailable
+
+# LOCALIZATION NOTE (markupView.unavailableChildren.title)
+# Title for the badge that appears when the Browser Toolbox is in "parent-process"
+# mode and the markup view cannot display the children from a content browser.
+markupView.unavailableChildren.title=Children of this element are unavailable with the current Browser Toolbox mode
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly)
+# Used in a tooltip that appears when the user hovers over whitespace-only text nodes in
+# the inspector. %S in the content will be replaced by the whitespace characters used in
+# the text node.
+markupView.whitespaceOnly=Whitespace-only text node: %S
+
+# LOCALIZATION NOTE (markupView.display.flex.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.flex.tooltiptext2=This element behaves like a block element and lays out its content according to the flexbox model. Click to toggle the flexbox overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.inlineFlex.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.inlineFlex.tooltiptext2=This element behaves like an inline element and lays out its content according to the flexbox model. Click to toggle the flexbox overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.grid.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.grid.tooltiptext2=This element behaves like a block element and lays out its content according to the grid model. Click to toggle the grid overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.inlineGrid.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.inlineGrid.tooltiptext2=This element behaves like an inline element and lays out its content according to the grid model. Click to toggle the grid overlay for this element.
+
+# LOCALIZATION NOTE (markupView.display.subgrid.tooltiptext)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.subgrid.tooltiptiptext=This element lays out its content according to the grid model but defers the definition of its rows and/or columns to its parent grid container.
+
+# LOCALIZATION NOTE (markupView.display.flowRoot.tooltiptext)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.flowRoot.tooltiptext=This element generates a block element box that establishes a new block formatting context.
+
+# LOCALIZATION NOTE (markupView.display.contents.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.contents.tooltiptext2=This element doesn’t produce a specific box by itself, but renders its contents.
+
+# LOCALIZATION NOTE (markupView.event.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'event' badge in
+# the markup view.
+markupView.event.tooltiptext=Event listener
+
+# LOCALIZATION NOTE (markupView.event.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'event' badge in
+# the markup view.
+markupView.event.tooltiptext2=Click to show event listeners for this element
+
+# LOCALIZATION NOTE (markupView.custom.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'custom' badge in
+# the markup view. Only displayed on custom elements with a shadow root attached.
+markupView.custom.tooltiptext=Show custom element definition
+
+# LOCALIZATION NOTE (markupView.newAttribute.label)
+# This is used to speak the New Attribute button when editing a tag
+# and a screen reader user tabs to it. This string is not visible onscreen.
+markupView.newAttribute.label=New attribute
+
+# LOCALIZATION NOTE (markupView.revealLink.tooltip)
+# Used as a tooltip for an icon in the markup view when displaying elements inserted in
+# <slot> nodes in a custom component. When clicking on the icon, the corresponding
+# non-slotted container will be selected
+markupView.revealLink.tooltip=Reveal
+
+#LOCALIZATION NOTE: Used in the image preview tooltip when the image could not be loaded
+previewTooltip.image.brokenImage=Could not load the image
+
+# LOCALIZATION NOTE: Used in color picker tooltip when the eyedropper is disabled for
+# non-HTML documents
+eyedropper.disabled.title=Unavailable in non-HTML documents
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger=Open in Debugger
+
+# LOCALIZATION NOTE: Used in the event tooltip for the toggle button.
+# Parameter is the event type (e.g. "click")
+eventsTooltip.toggleButton.label=“%S” event listener code
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger2=Open “%S” in Debugger
+
+#LOCALIZATION NOTE: Used in the event tooltip when a script's filename cannot be detected
+eventsTooltip.unknownLocation=Unknown location
+
+#LOCALIZATION NOTE: Used in the mouseover tooltip when hovering "Unknown location."
+eventsTooltip.unknownLocationExplanation=The original location of this listener cannot be detected. Maybe the code is transpiled by a utility such as Babel.
+
+# LOCALIZATION NOTE: Label for the checkbox in the event tooltip that toggles event listeners
+# Parameter is the event type (e.g. "click")
+eventsTooltip.toggleListenerLabel=Enable “%S” event listener
+
+#LOCALIZATION NOTE: Used in the tooltip for Bubbling
+eventsTooltip.Bubbling=Bubbling
+
+#LOCALIZATION NOTE: Used in the tooltip for Capturing
+eventsTooltip.Capturing=Capturing
+
+# LOCALIZATION NOTE: Title of the iframe we use in the event tooltip to display the code of
+# the event listener. Parameter is the event type (e.g. "click")
+eventsTooltip.codeIframeTitle=“%S” event listener code
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Show all tabs
+
+# LOCALIZATION NOTE (inspector.showThreePaneMode): This is the tooltip for the button
+# that toggles on the 3 pane inspector mode.
+inspector.showThreePaneMode=Toggle on the 3-pane inspector
+
+# LOCALIZATION NOTE (inspector.hideThreePaneMode): This is the tooltip for the button
+# that toggles off the 3 pane inspector mode.
+inspector.hideThreePaneMode=Toggle off the 3-pane inspector
+
+# LOCALIZATION NOTE (inspector.searchResultsCount2): This is the label that
+# will show up next to the inspector search box. %1$S is the current result
+# index and %2$S is the total number of search results. For example: "3 of 9".
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsCount2=%1$S of %2$S
+
+# LOCALIZATION NOTE (inspector.searchResultsNone): This is the label that
+# will show up next to the inspector search box when no matches were found
+# for the given string.
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsNone=No matches
+
+# LOCALIZATION NOTE (inspector.menu.openUrlInNewTab.label): This is the label of
+# a menu item in the inspector contextual-menu that appears when the user right-
+# clicks on the attribute of a node in the inspector that is a URL, and that
+# allows to open that URL in a new tab.
+inspector.menu.openUrlInNewTab.label=Open Link in New Tab
+
+# LOCALIZATION NOTE (inspector.menu.copyUrlToClipboard.label): This is the label
+# of a menu item in the inspector contextual-menu that appears when the user
+# right-clicks on the attribute of a node in the inspector that is a URL, and
+# that allows to copy that URL in the clipboard.
+inspector.menu.copyUrlToClipboard.label=Copy Link Address
+
+# LOCALIZATION NOTE (inspector.menu.selectElement.label): This is the label of a
+# menu item in the inspector contextual-menu that appears when the user right-
+# clicks on the attribute of a node in the inspector that is the ID of another
+# element in the DOM (like with <label for="input-id">), and that allows to
+# select that element in the inspector.
+inspector.menu.selectElement.label=Select Element #%S
+
+# LOCALIZATION NOTE (inspectorEditAttribute.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the node in the inspector, and that allows
+# to edit an attribute on this node.
+inspectorEditAttribute.label=Edit Attribute “%S”
+inspectorEditAttribute.accesskey=E
+
+# LOCALIZATION NOTE (inspectorRemoveAttribute.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the attribute of a node in the inspector,
+# and that allows to remove this attribute.
+inspectorRemoveAttribute.label=Remove Attribute “%S”
+inspectorRemoveAttribute.accesskey=R
+
+# LOCALIZATION NOTE (inspectorCopyAttributeValue.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the attribute of a node in the inspector,
+# and that allows to copy the attribute value to clipboard.
+inspectorCopyAttributeValue.label=Copy Attribute Value “%S”
+inspectorCopyAttributeValue.accesskey=V
+
+# LOCALIZATION NOTE (inspector.nodePreview.highlightNodeLabel):
+# This string is displayed in a tooltip that is shown when hovering over a the
+# inspector icon displayed next to a DOM node preview (e.g. next to something
+# like "div#foo.bar").
+# DOM node previews can be displayed in places like the animation-inspector, the
+# console or the object inspector.
+# The tooltip invites the user to click on the icon in order to highlight the
+# node in the page.
+inspector.nodePreview.highlightNodeLabel=Click to highlight this node in the page
+
+# LOCALIZATION NOTE (inspectorHTMLEdit.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users edit the
+# (outer) HTML of the current node
+inspectorXMLEdit.label=Edit As XML
+inspectorHTMLEdit.label=Edit As HTML
+inspectorSVGEdit.label=Edit As SVG
+inspectorMathMLEdit.label=Edit As MathML
+inspectorHTMLEdit.accesskey=E
+
+# LOCALIZATION NOTE (inspectorCopyInnerHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users copy the
+# inner HTML of the current node
+inspectorCopyInnerHTML.label=Inner HTML
+inspectorCopyInnerHTML.accesskey=I
+
+# LOCALIZATION NOTE (inspectorCopyOuterHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users copy the
+# outer HTML of the current node
+inspectorCopyOuterHTML.label=Outer HTML
+inspectorCopyOuterHTML.accesskey=O
+
+# LOCALIZATION NOTE (inspectorCopyCSSSelector.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the CSS Selector of the current node
+inspectorCopyCSSSelector.label=CSS Selector
+inspectorCopyCSSSelector.accesskey=S
+
+# LOCALIZATION NOTE (inspectorCopyCSSPath.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the full CSS path of the current node
+inspectorCopyCSSPath.label=CSS Path
+inspectorCopyCSSPath.accesskey=P
+
+# LOCALIZATION NOTE (inspectorCopyXPath.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the XPath of the current node
+inspectorCopyXPath.label=XPath
+inspectorCopyXPath.accesskey=X
+
+# LOCALIZATION NOTE (inspectorPasteOuterHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste outer
+# HTML in the current node
+inspectorPasteOuterHTML.label=Outer HTML
+inspectorPasteOuterHTML.accesskey=O
+
+# LOCALIZATION NOTE (inspectorPasteInnerHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste inner
+# HTML in the current node
+inspectorPasteInnerHTML.label=Inner HTML
+inspectorPasteInnerHTML.accesskey=I
+
+# LOCALIZATION NOTE (inspectorHTMLPasteBefore.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste
+# the HTML before the current node
+inspectorHTMLPasteBefore.label=Before
+inspectorHTMLPasteBefore.accesskey=B
+
+# LOCALIZATION NOTE (inspectorHTMLPasteAfter.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste
+# the HTML after the current node
+inspectorHTMLPasteAfter.label=After
+inspectorHTMLPasteAfter.accesskey=A
+
+# LOCALIZATION NOTE (inspectorHTMLPasteFirstChild.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users paste
+# the HTML as the first child the current node
+inspectorHTMLPasteFirstChild.label=As First Child
+inspectorHTMLPasteFirstChild.accesskey=F
+
+# LOCALIZATION NOTE (inspectorHTMLPasteLastChild.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users paste
+# the HTML as the last child the current node
+inspectorHTMLPasteLastChild.label=As Last Child
+inspectorHTMLPasteLastChild.accesskey=L
+
+# LOCALIZATION NOTE (inspectorScrollNodeIntoView.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users scroll
+# the current node into view
+inspectorScrollNodeIntoView.label=Scroll Into View
+inspectorScrollNodeIntoView.accesskey=S
+
+# LOCALIZATION NOTE (inspectorHTMLDelete.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users delete the
+# current node
+inspectorHTMLDelete.label=Delete Node
+inspectorHTMLDelete.accesskey=D
+
+# LOCALIZATION NOTE (inspectorAttributesSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# attribute items, which allow to:
+# - add new attribute
+# - edit attribute
+# - remove attribute
+inspectorAttributesSubmenu.label=Attributes
+inspectorAttributesSubmenu.accesskey=A
+
+# LOCALIZATION NOTE (inspectorAddAttribute.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users add attribute
+# to current node
+inspectorAddAttribute.label=Add Attribute
+inspectorAddAttribute.accesskey=A
+
+# LOCALIZATION NOTE (inspectorPseudoClassSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the pseudo-classes.
+inspectorPseudoClassSubmenu.label=Change Pseudo-class
+
+# LOCALIZATION NOTE (inspectorBreakpointSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the DOM breakpoints.
+inspectorBreakpointSubmenu.label=Break on…
+
+# LOCALIZATION NOTE (inspectorSubtreeModification.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for subtree modification.
+inspectorSubtreeModification.label=Subtree Modification
+
+# LOCALIZATION NOTE (inspectorAttributeModification.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for attribute modification.
+inspectorAttributeModification.label=Attribute Modification
+
+# LOCALIZATION NOTE (inspectorNodeRemoval.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for node removal.
+inspectorNodeRemoval.label=Node Removal
+
+# LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
+# shown as the placeholder for the markup view search in the inspector.
+inspectorSearchHTML.label3=Search HTML
+
+# LOCALIZATION NOTE (inspectorImageDataUri.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the URL embedding the image data encoded in Base 64 (what we name
+# here Image Data URL). For more information:
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs
+inspectorImageDataUri.label=Image Data-URL
+
+# LOCALIZATION NOTE (inspectorShowDOMProperties.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users see
+# the DOM properties of the current node. When triggered, this item
+# opens the split Console and displays the properties in its side panel.
+inspectorShowDOMProperties.label=Show DOM Properties
+
+# LOCALIZATION NOTE (inspectorShowAccessibilityProperties.label): This is the
+# label shown in the inspector contextual-menu for the item that lets users see
+# the accessibility tree and accessibility properties of the current node.
+# When triggered, this item opens accessibility panel and selects an accessible
+# object for the given node.
+inspectorShowAccessibilityProperties.label=Show Accessibility Properties
+
+# LOCALIZATION NOTE (inspectorUseInConsole.label): This is the label
+# shown in the inspector contextual-menu for the item that outputs a
+# variable for the current node to the console. When triggered,
+# this item opens the split Console.
+inspectorUseInConsole.label=Use in Console
+
+# LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
+# shown in the inspector contextual-menu for recursively expanding
+# mark-up elements
+inspectorExpandNode.label=Expand All
+
+# LOCALIZATION NOTE (inspectorCollapseAll.label): This is the label
+# shown in the inspector contextual-menu for recursively collapsing
+# mark-up elements
+inspectorCollapseAll.label=Collapse All
+
+# LOCALIZATION NOTE (inspectorScreenshotNode.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users take
+# a screenshot of the currently selected node.
+inspectorScreenshotNode.label=Screenshot Node
+
+# LOCALIZATION NOTE (inspectorDuplicateNode.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users
+# duplicate the currently selected node.
+inspectorDuplicateNode.label=Duplicate Node
+
+# LOCALIZATION NOTE (inspectorAddNode.label): This is the label shown in
+# the inspector toolbar for the button that lets users add elements to the
+# DOM (as children of the currently selected element).
+inspectorAddNode.label=Create New Node
+inspectorAddNode.accesskey=C
+
+# LOCALIZATION NOTE (inspectorCopyHTMLSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# copy items, which allow to:
+# - Copy Inner HTML
+# - Copy Outer HTML
+# - Copy Unique selector
+# - Copy Image data URI
+inspectorCopyHTMLSubmenu.label=Copy
+
+# LOCALIZATION NOTE (inspectorPasteHTMLSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# paste items, which allow to:
+# - Paste Inner HTML
+# - Paste Outer HTML
+# - Before
+# - After
+# - As First Child
+# - As Last Child
+inspectorPasteHTMLSubmenu.label=Paste
+
+# LOCALIZATION NOTE (inspectorCustomElementDefinition.label): This is the label
+# shown in the inspector contextual-menu for custom elements to which a shadow root has
+# been attached. Clicking on the menu item will open the Debugger on the custom element
+# definition location.
+inspectorCustomElementDefinition.label=Show Custom Element
+
+# LOCALIZATION NOTE (inspector.searchHTML.key):
+# Key shortcut used to focus the DOM element search box on top-right corner of
+# the markup view
+inspector.searchHTML.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (markupView.hide.key):
+# Key shortcut used to hide the selected node in the markup view.
+markupView.hide.key=h
+
+# LOCALIZATION NOTE (markupView.edit.key):
+# Key shortcut used to hide the selected node in the markup view.
+markupView.edit.key=F2
+
+# LOCALIZATION NOTE (markupView.scrollInto.key):
+# Key shortcut used to scroll the webpage in order to ensure the selected node
+# is visible
+markupView.scrollInto.key=s
+
+# LOCALIZATION NOTE (inspector.sidebar.fontInspectorTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of fonts used in the page.
+inspector.sidebar.fontInspectorTitle=Fonts
+
+# LOCALIZATION NOTE (inspector.sidebar.changesViewTitle):
+# Title of the Changes sidebar tab shown in the Inspector panel. The Changes panel shows
+# style changes made using DevTools.
+inspector.sidebar.changesViewTitle=Changes
+
+# LOCALIZATION NOTE (inspector.sidebar.ruleViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of CSS rules used
+# in the page.
+inspector.sidebar.ruleViewTitle=Rules
+
+# LOCALIZATION NOTE (inspector.sidebar.computedViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of computed CSS values
+# used in the page.
+inspector.sidebar.computedViewTitle=Computed
+
+# LOCALIZATION NOTE (inspector.sidebar.layoutViewTitle2):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying layout information defined in the page.
+inspector.sidebar.layoutViewTitle2=Layout
+
+# LOCALIZATION NOTE (inspector.sidebar.animationInspectorTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying animations defined in the page.
+inspector.sidebar.animationInspectorTitle=Animations
+
+# LOCALIZATION NOTE (inspector.sidebar.compatibilityViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying web compatibility information about the page.
+inspector.sidebar.compatibilityViewTitle=Compatibility
+
+# LOCALIZATION NOTE (inspector.eyedropper.label): A string displayed as the tooltip of
+# a button in the inspector which toggles the Eyedropper tool
+inspector.eyedropper.label=Grab a color from the page
+
+# LOCALIZATION NOTE (inspector.breadcrumbs.label): A string visible only to a screen reader and
+# is used to label (using aria-label attribute) a container for inspector breadcrumbs
+inspector.breadcrumbs.label=Breadcrumbs
+
+# LOCALIZATION NOTE (inspector.browserStyles.label): This is the label for the checkbox
+# that specifies whether the styles that are not from the user's stylesheet should be
+# displayed or not.
+inspector.browserStyles.label=Browser styles
+
+# LOCALIZATION NOTE (inspector.filterStyles.label): This is the label for the search box
+inspector.filterStyles.label=Filter Styles
+
+# LOCALIZATION NOTE (inspector.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+inspector.filterStyles.placeholder=Filter Styles
+
+# LOCALIZATION NOTE (inspector.filterStylesClearButton.title): This is the title
+# for the search box clear button displayed when the input is not empty.
+inspector.filterStylesClearButton.title = Clear filter input
+
+# LOCALIZATION NOTE (inspector.addRule.tooltip): This is the tooltip shown when
+# hovering the `Add new rule` button in the rules view toolbar. This should
+# match ruleView.contextmenu.addNewRule in styleinspector.properties
+inspector.addRule.tooltip=Add new rule
+
+# LOCALIZATION NOTE (inspector.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+inspector.togglePseudo.tooltip=Toggle pseudo-classes
+
+# LOCALIZATION NOTE (inspector.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+inspector.classPanel.toggleClass.tooltip=Toggle classes
+
+# LOCALIZATION NOTE (inspector.classPanel.newClass.placeholder): This is the placeholder
+# shown inside the text field used to add a new class in the rule-view.
+inspector.classPanel.newClass.placeholder=Add new class
+
+# LOCALIZATION NOTE (inspector.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+inspector.classPanel.noClasses=No classes on this element
+
+# LOCALIZATION NOTE (inspector.noProperties): In the case where there are no CSS
+# properties to display e.g. due to search criteria this message is
+# displayed.
+inspector.noProperties=No CSS properties found.
+
+# LOCALIZATION NOTE (inspector.printSimulation.tooltip):
+# This is the tooltip of the print simulation button in the Rule View toolbar
+# that toggles print simulation.
+inspector.printSimulation.tooltip = Toggle print media simulation for the page
+
+# LOCALIZATION NOTE (inspector.colorSchemeSimulationLight.tooltip):
+# This is the tooltip of the light color scheme simulation button in the Rule View
+# toolbar that toggles light color scheme simulation.
+inspector.colorSchemeSimulationLight.tooltip=Toggle light color scheme simulation for the page
+
+# LOCALIZATION NOTE (inspector.colorSchemeSimulationDark.tooltip):
+# This is the tooltip of the dark color scheme simulation button in the Rule View
+# toolbar that toggles dark color scheme simulation.
+inspector.colorSchemeSimulationDark.tooltip=Toggle dark color scheme simulation for the page
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.label): This is the text displayed inside a
+# badge, in the inspector, next to nodes that are scrollable in the page.
+markupView.scrollableBadge.label=scroll
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to scrollable elements in the inspector.
+markupView.scrollableBadge.tooltip=This element has scrollable overflow.
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.interactive.tooltip): This is the tooltip that is displayed
+# when hovering over interactive badges next to scrollable elements in the inspector.
+markupView.scrollableBadge.interactive.tooltip=This element has scrollable overflow. Click to reveal elements that are causing the overflow.
+
+# LOCALIZATION NOTE (markupView.overflowBadge.label): This is the text displayed inside a
+# badge, in the inspector, next to nodes that are causing overflow in other elements.
+markupView.overflowBadge.label=overflow
+
+# LOCALIZATION NOTE (markupView.overflowBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to overflow causing elements in the inspector.
+markupView.overflowBadge.tooltip=This element is causing an element to overflow.
+
+# LOCALIZATION NOTE (rulePreviewTooltip.noAssociatedRule): This is the text displayed inside
+# the RulePreviewTooltip when a rule cannot be found for a CSS property declaration.
+rulePreviewTooltip.noAssociatedRule=No associated rule
+
+# LOCALIZATION NOTE (colorPickerTooltip.contrastAgainstBgTitle): A title text for the
+# contrast ratio value description that labels the background the color contrast ratio is calculated
+# against, used together with the actual background color. %S in the content will be replaced by a
+# span (containing bg color swatch) and textNode (containing bg color hex string) at run time
+colorPickerTooltip.contrastAgainstBgTitle=Calculated against background: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.spectrumDraggerTitle): A title text for the
+# spectrum dragger panel in the color picker tooltip.
+colorPickerTooltip.spectrumDraggerTitle=Spectrum
+
+# LOCALIZATION NOTE (colorPickerTooltip.eyedropperTitle): A title text for the
+# eyedropper in the color picker tooltip.
+colorPickerTooltip.eyedropperTitle=Pick color on page
+
+# LOCALIZATION NOTE (colorPickerTooltip.colorNameTitle): A title text for the
+# closest color name shown in the color picker tooltip, used together with the actual color.
+# %S in the content will be replaced by the color name the current color is closest to.
+colorPickerTooltip.colorNameTitle=Closest to: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.hueSliderTitle): A title text for the
+# hue slider in the color picker tooltip.
+colorPickerTooltip.hueSliderTitle=Hue
+
+# LOCALIZATION NOTE (colorPickerTooltip.alphaSliderTitle): A title text for the
+# alpha slider in the color picker tooltip.
+colorPickerTooltip.alphaSliderTitle=Opacity
+
+# LOCALIZATION NOTE (colorPickerTooltip.contrast.large.title): A title text for the color
+# contrast ratio description in the color picker tooltip, used together with the specification
+# that the color contrast criteria used is for large text. %S in the content will be replaced by a
+# large text indicator span at run time.
+colorPickerTooltip.contrast.large.title=Contrast %S:
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/jsonview.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/jsonview.properties
new file mode 100644
index 0000000000..fe243b08c9
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/jsonview.properties
@@ -0,0 +1,47 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the JSON View tool
+# that is used to inspect application/json document types loaded
+# in the browser.
+
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (jsonViewer.tab.JSON, jsonViewer.tab.RawData,
+# jsonViewer.tab.Headers): Label for a panel tab.
+jsonViewer.tab.JSON=JSON
+jsonViewer.tab.RawData=Raw Data
+jsonViewer.tab.Headers=Headers
+
+# LOCALIZATION NOTE (jsonViewer.responseHeaders, jsonViewer.requestHeaders):
+# Label for header groups within the 'Headers' panel.
+jsonViewer.responseHeaders=Response Headers
+jsonViewer.requestHeaders=Request Headers
+
+# LOCALIZATION NOTE (jsonViewer.Save): Label for save command
+jsonViewer.Save=Save
+
+# LOCALIZATION NOTE (jsonViewer.Copy): Label for clipboard copy command
+jsonViewer.Copy=Copy
+
+# LOCALIZATION NOTE (jsonViewer.ExpandAll): Label for expanding all nodes
+jsonViewer.ExpandAll=Expand All
+
+jsonViewer.ExpandAllSlow=Expand All (slow)
+
+# LOCALIZATION NOTE (jsonViewer.CollapseAll): Label for collapsing all nodes
+jsonViewer.CollapseAll=Collapse All
+
+# LOCALIZATION NOTE (jsonViewer.PrettyPrint): Label for JSON
+# pretty print action button.
+jsonViewer.PrettyPrint=Pretty Print
+
+# LOCALIZATION NOTE (jsonViewer.filterJSON): Label used in search box
+# at the top right cornder of the JSON Viewer.
+jsonViewer.filterJSON=Filter JSON
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/layout.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/layout.properties
new file mode 100644
index 0000000000..bc28929b71
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/layout.properties
@@ -0,0 +1,138 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE This file contains the Layout Inspector strings.
+# The Layout Inspector is a panel accessible in the Inspector sidebar.
+
+# LOCALIZATION NOTE (flexbox.header): The accordion header for the Flexbox panel when
+# no flex container or item is selected.
+flexbox.header=Flexbox
+
+# LOCALIZATION NOTE (flexbox.backButtonLabel): The spoken label for the button
+# that returns from the display of a flex item to the flex item list.
+# This label is spoken by screen readers, not displayed on screen.
+flexbox.backButtonLabel=Back to Flex Container
+
+# LOCALIZATION (flexbox.flexContainer): The accordion header for the Flexbox panel
+# when a flex container is selected.
+flexbox.flexContainer=Flex Container
+
+# LOCALIZATION NOTE) (flexbox.flexItemOf): The accordion header for the Flexbox panel
+# when a flex item is selected. %s represents the flex container selector.
+flexbox.flexItemOf=Flex Item of %S
+
+# LOCALIZATION NOTE (flexbox.noFlexboxeOnThisPage): In the case where there are no CSS
+# flex containers to display.
+flexbox.noFlexboxeOnThisPage=Select a Flex container or item to continue.
+
+# LOCALIZATION NOTE (flexbox.flexItems): Header label displayed for the flex item list.
+flexbox.flexItems=Flex Items
+
+# LOCALIZATION NOTE (flexbox.noFlexItems): Label shown in the flex items list section if
+# there are no flex items for the flex container to display.
+flexbox.noFlexItems=No flex items
+
+# LOCALIZATION NOTE (flexbox.itemSizing.baseSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Base Size section.
+flexbox.itemSizing.baseSizeSectionHeader=Base Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.flexibilitySectionHeader): Header label displayed
+# at the start of the flex item sizing Flexibility section.
+flexbox.itemSizing.flexibilitySectionHeader=Flexibility
+
+# LOCALIZATION NOTE (flexbox.itemSizing.minSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Minimum Size section.
+flexbox.itemSizing.minSizeSectionHeader=Minimum Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.maxSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Maximum Size section.
+flexbox.itemSizing.maxSizeSectionHeader=Maximum Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.finalSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Final Size section.
+flexbox.itemSizing.finalSizeSectionHeader=Final Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.itemContentSize): Label shown in the flex item
+# sizing panel. It tells users that a given item’s base size was calculated from its
+# content size when unconstrained.
+flexbox.itemSizing.itemContentSize=Content Size
+
+# LOCALIZATION NOTE (flexbox.itemSizing.clampedToMax): Label shown in the flexbox item
+# sizing panel. It tells users that a given item attempted to grow but ended up being
+# clamped to a smaller max size.
+# (Note that clamp is a common word in flexbox terminology. It refers to constraining an
+# item's size to some defined min/max-width/height set on the element, even though there
+# might have been room for it to grow, or reason for it to shrink more).
+flexbox.itemSizing.clampedToMax=The item was clamped to its maximum size.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.clampedToMin): Label shown in the flexbox item
+# sizing panel. It tells users that a given item attempted to grow but ended up being
+# clamped to a larger min size.
+# (Note that clamp is a common word in flexbox terminology. It refers to constraining an
+# item's size to some defined min/max-width/height set on the element, even though there
+# might have been room for it to grow, or reason for it to shrink more).
+flexbox.itemSizing.clampedToMin=The item was clamped to its minimum size.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.setToGrow): Label shown in the flex item sizing
+# panel. It tells users that a given item was set to grow.
+flexbox.itemSizing.setToGrow=Item was set to grow.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.setToShrink): Label shown in the flexbox item
+# sizing panel. It tells users that a given item was set to shrink.
+flexbox.itemSizing.setToShrink=Item was set to shrink.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.notSetToGrow): Label shown in the
+# flexbox item sizing panel. It tells users that a given item was not set to grow, even
+# though there might have been space on the flex line for it to grow.
+flexbox.itemSizing.notSetToGrow=Item was not set to grow.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.notSetToShrink): Label shown in the
+# flexbox item sizing panel. It tells users that a given item did not shrink even though
+# there might not have been enough space on the flex line for all items to fit.
+flexbox.itemSizing.notSetToShrink=Item was not set to shrink.
+
+# LOCALIZATION NOTE (flexbox.togglesFlexboxHighlighter2): The tooltip text for the Flexbox
+# toggle button.
+flexbox.togglesFlexboxHighlighter2=Toggle Flexbox Highlighter
+
+# LOCALIZATION NOTE (layout.overlayCheckbox.label): Label used for checkboxes in the grid
+# sections of the layout panel that control the display of the grid highlighter.
+layout.toggleGridHighlighter=Toggle Grid Highlighter
+
+# LOCALIZATION NOTE (layout.cannotShowGridOutline, layout.cannotSHowGridOutline.title):
+# In the case where the grid outline cannot be effectively displayed.
+layout.cannotShowGridOutline=Cannot show outline for this grid
+layout.cannotShowGridOutline.title=The selected grid’s outline cannot effectively fit inside the layout panel for it to be usable.
+
+# LOCALIZATION NOTE (layout.displayAreaNames): Label of the display area names setting
+# option in the CSS Grid panel.
+layout.displayAreaNames=Display area names
+
+# LOCALIZATION NOTE (layout.displayLineNumbers): Label of the display line numbers
+# setting option in the CSS Grid panel.
+layout.displayLineNumbers=Display line numbers
+
+# LOCALIZATION NOTE (layout.extendLinesInfinitely): Label of the extend lines
+# infinitely setting option in the CSS Grid panel.
+layout.extendLinesInfinitely=Extend lines infinitely
+
+# LOCALIZATION NOTE (layout.header): The accordion header for the CSS Grid panel.
+layout.header=Grid
+
+# LOCALIZATION NOTE (layout.gridDisplaySettings): The header for the grid display
+# settings container in the CSS Grid panel.
+layout.gridDisplaySettings=Grid Display Settings
+
+# LOCALIZATION NOTE (layout.noGridsOnThisPage): In the case where there are no CSS grid
+# containers to display.
+layout.noGridsOnThisPage=CSS Grid is not in use on this page
+
+# LOCALIZATION NOTE (layout.overlayGrid): Alternate header for the list of grid container
+# elements if only one item can be selected.
+layout.overlayGrid=Overlay Grid
+
+# LOCALIZATION NOTE (layout.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the layout panel (for flexbox/grid highlighter color).
+# %s represents the current selected color in hex format (e.g. #FF0000).
+layout.colorSwatch.tooltip=Color Swatch: %S. Click to open the color picker
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/memory.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/memory.properties
new file mode 100644
index 0000000000..22433b20fb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/memory.properties
@@ -0,0 +1,434 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Memory Tools
+# which is available from the Web Developer sub-menu -> 'Memory'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Memory Tools
+# which is available from the Browser Tools sub-menu -> 'Memory'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (snapshot.io.save): The label for the link that saves a
+# snapshot to disk.
+snapshot.io.save=Save
+
+# LOCALIZATION NOTE (snapshot.io.delete): The label for the link that deletes
+# a snapshot
+snapshot.io.delete=Delete
+
+# LOCALIZATION NOTE (snapshot.io.save.window): The title for the window
+# displayed when saving a snapshot to disk.
+snapshot.io.save.window=Save Snapshot
+
+# LOCALIZATION NOTE (snapshot.io.import.window): The title for the window
+# displayed when importing a snapshot form disk.
+snapshot.io.import.window=Import Snapshot
+
+# LOCALIZATION NOTE (snapshot.io.filter): The title for the filter used to
+# filter file types (*.fxsnapshot)
+snapshot.io.filter=Firefox Snapshots
+
+# LOCALIZATION NOTE (aggregate.mb): The label annotating the number of bytes (in
+# megabytes) in a snapshot. %S represents the value, rounded to 2 decimal
+# points.
+aggregate.mb=%S MB
+
+# LOCALIZATION NOTE (snapshot-title.loading): The title for a snapshot before
+# it has a creation time to display.
+snapshot-title.loading=Processing…
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks): The label describing the
+# boolean checkbox whether or not to record call stacks.
+checkbox.recordAllocationStacks=Record call stacks
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks.tooltip): The tooltip for
+# the label describing the boolean checkbox whether or not to record call
+# stacks.
+checkbox.recordAllocationStacks.tooltip=Toggle the recording of the call stack of when an object was allocated. Subsequent snapshots will be able to group and label objects by call stacks, but only with those objects created after toggling this option. Recording call stacks has a performance overhead.
+
+# LOCALIZATION NOTE (toolbar.displayBy): The label describing the select menu
+# options of the display options.
+toolbar.displayBy=Group by:
+
+# LOCALIZATION NOTE (toolbar.displayBy.tooltip): The tooltip for the label
+# describing the select menu options of the display options.
+toolbar.displayBy.tooltip=Change how objects are grouped
+
+# LOCALIZATION NOTE (toolbar.pop-view): The text in the button to go back to the
+# previous view.
+toolbar.pop-view=←
+
+# LOCALIZATION NOTE (toolbar.pop-view.label): The text for the label for the
+# button to go back to the previous view.
+toolbar.pop-view.label=Go back to aggregates
+
+# LOCALIZATION NOTE (toolbar.viewing-individuals): The text letting the user
+# know that they are viewing individual nodes from a census group.
+toolbar.viewing-individuals=⁂ Viewing individuals in group
+
+# LOCALIZATION NOTE (censusDisplays.coarseType.tooltip): The tooltip for the
+# "coarse type" display option.
+censusDisplays.coarseType.tooltip=Group items by their type
+
+# LOCALIZATION NOTE (censusDisplays.allocationStack.tooltip): The tooltip for
+# the "call stack" display option.
+censusDisplays.allocationStack.tooltip=Group items by the JavaScript stack recorded when the object was allocated
+
+# LOCALIZATION NOTE (censusDisplays.invertedAllocationStack.tooltip): The
+# tooltip for the "inverted call stack" display option.
+censusDisplays.invertedAllocationStack.tooltip=Group items by the inverted JavaScript call stack recorded when the object was created
+
+# LOCALIZATION NOTE (toolbar.labelBy): The label describing the select menu
+# options of the label options.
+toolbar.labelBy=Label by:
+
+# LOCALIZATION NOTE (toolbar.labelBy): The tooltip for the label describing the
+# select menu options of the label options.
+toolbar.labelBy.tooltip=Change how objects are labeled
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" dominator tree display option.
+dominatorTreeDisplays.coarseType.tooltip=Label objects by the broad categories they fit in
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.allocationStack.tooltip): The
+# tooltip for the "call stack" dominator tree display option.
+dominatorTreeDisplays.allocationStack.tooltip=Label objects by the JavaScript stack recorded when it was allocated
+
+# LOCALIZATION NOTE (treeMapDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" tree map display option.
+treeMapDisplays.coarseType.tooltip=Label objects by the broad categories they fit in
+
+# LOCALIZATION NOTE (toolbar.view): The label for the view selector in the
+# toolbar.
+toolbar.view=View:
+
+# LOCALIZATION NOTE (toolbar.view.tooltip): The tooltip for the label for the
+# view selector in the toolbar.
+toolbar.view.tooltip=Change the view of the snapshot
+
+# LOCALIZATION NOTE (toolbar.view.census): The label for the census view option
+# in the toolbar.
+toolbar.view.census=Aggregate
+
+# LOCALIZATION NOTE (toolbar.view.census.tooltip): The tooltip for the label for
+# the census view option in the toolbar.
+toolbar.view.census.tooltip=View a summary of the snapshot’s contents by aggregating objects into groups
+
+# LOCALIZATION NOTE (toolbar.view.dominators): The label for the dominators view
+# option in the toolbar.
+toolbar.view.dominators=Dominators
+
+# LOCALIZATION NOTE (toolbar.view.dominators.tooltip): The tooltip for the label
+# for the dominators view option in the toolbar.
+toolbar.view.dominators.tooltip=View the dominator tree and surface the largest structures in the snapshot
+
+# LOCALIZATION NOTE (toolbar.view.treemap): The label for the tree map option
+# in the toolbar.
+toolbar.view.treemap=Tree Map
+
+# LOCALIZATION NOTE (toolbar.view.treemap.tooltip): The tooltip for the label for
+# the tree map view option in the toolbar.
+toolbar.view.treemap.tooltip=Visualize memory usage: larger blocks account for a larger percent of memory usage
+
+# LOCALIZATION NOTE (take-snapshot): The label describing the button that
+# initiates taking a snapshot, either as the main label, or a tooltip.
+take-snapshot=Take snapshot
+
+# LOCALIZATION NOTE (import-snapshot): The label describing the button that
+# initiates importing a snapshot.
+import-snapshot=Import…
+
+# LOCALIZATION NOTE (clear-snapshots.tooltip): The tooltip for the button that
+# deletes existing snapshot.
+clear-snapshots.tooltip=Delete all snapshots
+
+# LOCALIZATION NOTE (diff-snapshots.tooltip): The tooltip for the button that
+# initiates selecting two snapshots to diff with each other.
+diff-snapshots.tooltip=Compare snapshots
+
+# LOCALIZATION NOTE (filter.placeholder): The placeholder text used for the
+# memory tool's filter search box.
+filter.placeholder=Filter
+
+# LOCALIZATION NOTE (filter.tooltip): The tooltip text used for the memory
+# tool's filter search box.
+filter.tooltip=Filter the contents of the snapshot
+
+# LOCALIZATION NOTE (tree-item.view-individuals.tooltip): The tooltip for the
+# button to view individuals in this group.
+tree-item.view-individuals.tooltip=View individual nodes in this group and their retaining paths
+
+# LOCALIZATION NOTE (tree-item.load-more): The label for the links to fetch the
+# lazily loaded sub trees in the dominator tree view.
+tree-item.load-more=Load more…
+
+# LOCALIZATION NOTE (tree-item.rootlist): The label for the root of the
+# dominator tree.
+tree-item.rootlist=GC Roots
+
+# LOCALIZATION NOTE (tree-item.nostack): The label describing the row in the heap tree
+# that represents a row broken down by call stack when no stack was available.
+tree-item.nostack=(no stack available)
+
+# LOCALIZATION NOTE (tree-item.nofilename): The label describing the row in the
+# heap tree that represents a row broken down by filename when no filename was
+# available.
+tree-item.nofilename=(no filename available)
+
+# LOCALIZATION NOTE (tree-item.root): The label describing the row in the heap tree
+# that represents the root of the tree when inverted.
+tree-item.root=(root)
+
+# LOCALIZATION NOTE (tree-item.percent2): A percent of bytes or count displayed in the tree view.
+# there are two "%" after %S to escape and display "%"
+tree-item.percent2=%S%%
+
+# LOCALIZATION NOTE (diffing.baseline): The name of the baseline snapshot in a
+# diffing comparison.
+diffing.baseline=Baseline
+
+# LOCALIZATION NOTE (diffing.comparison): The name of the snapshot being
+# compared to the baseline in a diffing comparison.
+diffing.comparison=Comparison
+
+# LOCALIZATION NOTE (diffing.prompt.selectBaseline): The prompt to select the
+# first snapshot when doing a diffing comparison.
+diffing.prompt.selectBaseline=Select the baseline snapshot
+
+# LOCALIZATION NOTE (diffing.prompt.selectComparison): The prompt to select the
+# second snapshot when doing a diffing comparison.
+diffing.prompt.selectComparison=Select the snapshot to compare to the baseline
+
+# LOCALIZATION NOTE (diffing.state.error): The label describing the diffing
+# state ERROR, used in the snapshot list when an error occurs while diffing two
+# snapshots.
+diffing.state.error=Error
+
+# LOCALIZATION NOTE (diffing.state.error.full): The text describing the diffing
+# state ERROR, used in the main view when an error occurs while diffing two
+# snapshots.
+diffing.state.error.full=There was an error while comparing snapshots.
+
+# LOCALIZATION NOTE (diffing.state.taking-diff): The label describing the diffin
+# state TAKING_DIFF, used in the snapshots list when computing the difference
+# between two snapshots.
+diffing.state.taking-diff=Computing difference…
+
+# LOCALIZATION NOTE (diffing.state.taking-diff.full): The label describing the
+# diffing state TAKING_DIFF, used in the main view when computing the difference
+# between two snapshots.
+diffing.state.taking-diff.full=Computing difference…
+
+# LOCALIZATION NOTE (diffing.state.selecting): The label describing the diffing
+# state SELECTING.
+diffing.state.selecting=Select two snapshots to compare
+
+# LOCALIZATION NOTE (diffing.state.selecting.full): The label describing the
+# diffing state SELECTING, used in the main view when selecting snapshots to
+# diff.
+diffing.state.selecting.full=Select two snapshots to compare
+
+# LOCALIZATION NOTE (dominatorTree.state.computing): The label describing the
+# dominator tree state COMPUTING.
+dominatorTree.state.computing=Generating dominators report…
+
+# LOCALIZATION NOTE (dominatorTree.state.computing): The label describing the
+# dominator tree state COMPUTING, used in the dominator tree view.
+dominatorTree.state.computing.full=Generating dominators report…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching): The label describing the
+# dominator tree state FETCHING.
+dominatorTree.state.fetching=Computing sizes…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching): The label describing the
+# dominator tree state FETCHING, used in the dominator tree view.
+dominatorTree.state.fetching.full=Computing dominator’s retained sizes…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching): The label
+# describing the dominator tree state INCREMENTAL_FETCHING.
+dominatorTree.state.incrementalFetching=Fetching…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching): The label describing the
+# dominator tree state INCREMENTAL_FETCHING, used in the dominator tree view.
+dominatorTree.state.incrementalFetching.full=Fetching more…
+
+# LOCALIZATION NOTE (dominatorTree.state.error): The label describing the
+# dominator tree state ERROR.
+dominatorTree.state.error=Error
+
+# LOCALIZATION NOTE (dominatorTree.state.error): The label describing the
+# dominator tree state ERROR, used in the dominator tree view.
+dominatorTree.state.error.full=There was an error while processing the dominator tree
+
+# LOCALIZATION NOTE (snapshot.state.saving.full): The label describing the
+# snapshot state SAVING, used in the main heap view.
+snapshot.state.saving.full=Saving snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.reading.full): The label describing the
+# snapshot state READING, and SAVED, due to these states being combined
+# visually, used in the main heap view.
+snapshot.state.reading.full=Reading snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census.full): The label describing
+# the snapshot state SAVING, used in the main heap view.
+snapshot.state.saving-census.full=Generating aggregate report…
+
+# LOCALIZATION NOTE (snapshot.state.saving-tree-map.full): The label describing
+# the snapshot state SAVING, used in the main heap view.
+snapshot.state.saving-tree-map.full=Saving tree map…
+
+# LOCALIZATION NOTE (snapshot.state.error.full): The label describing the
+# snapshot state ERROR, used in the main heap view.
+snapshot.state.error.full=There was an error processing this snapshot.
+
+# LOCALIZATION NOTE (individuals.state.error): The short message displayed when
+# there is an error fetching individuals from a group.
+individuals.state.error=Error
+
+# LOCALIZATION NOTE (individuals.state.error.full): The longer message displayed
+# when there is an error fetching individuals from a group.
+individuals.state.error.full=There was an error while fetching individuals in the group
+
+# LOCALIZATION NOTE (individuals.state.fetching): The short message displayed
+# while fetching individuals.
+individuals.state.fetching=Fetching…
+
+# LOCALIZATION NOTE (individuals.state.fetching.full): The longer message
+# displayed while fetching individuals.
+individuals.state.fetching.full=Fetching individuals in group…
+
+# LOCALIZATION NOTE (individuals.field.node): The header label for an individual
+# node.
+individuals.field.node=Node
+
+# LOCALIZATION NOTE (individuals.field.node.tooltip): The tooltip for the header
+# label for an individual node.
+individuals.field.node.tooltip=The individual node in the snapshot
+
+# LOCALIZATION NOTE (snapshot.state.saving): The label describing the snapshot
+# state SAVING, used in the snapshot list view
+snapshot.state.saving=Saving snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.importing): The label describing the
+# snapshot state IMPORTING, used in the snapshot list view
+snapshot.state.importing=Importing snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.reading): The label describing the snapshot
+# state READING, and SAVED, due to these states being combined visually, used in
+# the snapshot list view.
+snapshot.state.reading=Reading snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-census=Saving report…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-tree-map=Saving tree map…
+
+# LOCALIZATION NOTE (snapshot.state.error): The label describing the snapshot
+# state ERROR, used in the snapshot list view.
+snapshot.state.error=Error
+
+# LOCALIZATION NOTE (heapview.no-difference): Message displayed when there is no
+# difference between two snapshots.
+heapview.no-difference=No difference between the baseline and comparison.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there are no
+# matches when filtering.
+heapview.none-match=No matches.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there report
+# is empty.
+heapview.empty=Empty.
+
+# LOCALIZATION NOTE (heapview.noAllocationStacks): The message displayed to
+# users when selecting a display by "call stack" but no call stacks
+# were recorded in the heap snapshot.
+heapview.noAllocationStacks=No call stacks found. Record call stacks before taking a snapshot.
+
+# LOCALIZATION NOTE (heapview.field.retainedSize): The name of the column in the
+# dominator tree view for retained byte sizes.
+heapview.field.retainedSize=Retained Size (Bytes)
+
+# LOCALIZATION NOTE (heapview.field.retainedSize.tooltip): The tooltip for the
+# column header in the dominator tree view for retained byte sizes.
+heapview.field.retainedSize.tooltip=The sum of the size of the object itself, and the sizes of all the other objects kept alive by it
+
+# LOCALIZATION NOTE (heapview.field.shallowSize): The name of the column in the
+# dominator tree view for shallow byte sizes.
+heapview.field.shallowSize=Shallow Size (Bytes)
+
+# LOCALIZATION NOTE (heapview.field.shallowSize.tooltip): The tooltip for the
+# column header in the dominator tree view for shallow byte sizes.
+heapview.field.shallowSize.tooltip=The size of the object itself
+
+# LOCALIZATION NOTE (dominatortree.field.label): The name of the column in the
+# dominator tree for an object's label.
+dominatortree.field.label=Dominator
+
+# LOCALIZATION NOTE (dominatortree.field.label.tooltip): The tooltip for the column
+# header in the dominator tree view for an object's label.
+dominatortree.field.label.tooltip=The label for an object in memory
+
+# LOCALIZATION NOTE (heapview.field.bytes): The name of the column in the heap
+# view for bytes.
+heapview.field.bytes=Bytes
+
+# LOCALIZATION NOTE (heapview.field.bytes.tooltip): The tooltip for the column
+# header in the heap view for bytes.
+heapview.field.bytes.tooltip=The number of bytes taken up by this group, excluding subgroups
+
+# LOCALIZATION NOTE (heapview.field.count): The name of the column in the heap
+# view for count.
+heapview.field.count=Count
+
+# LOCALIZATION NOTE (heapview.field.count.tooltip): The tooltip for the column
+# header in the heap view for count.
+heapview.field.count.tooltip=The number of reachable objects in this group, excluding subgroups
+
+# LOCALIZATION NOTE (heapview.field.totalbytes): The name of the column in the
+# heap view for total bytes.
+heapview.field.totalbytes=Total Bytes
+
+# LOCALIZATION NOTE (heapview.field.totalbytes.tooltip): The tooltip for the
+# column header in the heap view for total bytes.
+heapview.field.totalbytes.tooltip=The number of bytes taken up by this group, including subgroups
+
+# LOCALIZATION NOTE (heapview.field.totalcount): The name of the column in the
+# heap view for total count.
+heapview.field.totalcount=Total Count
+
+# LOCALIZATION NOTE (heapview.field.totalcount.tooltip): The tooltip for the
+# column header in the heap view for total count.
+heapview.field.totalcount.tooltip=The number of reachable objects in this group, including subgroups
+
+# LOCALIZATION NOTE (heapview.field.name): The name of the column in the heap
+# view for name.
+heapview.field.name=Group
+
+# LOCALIZATION NOTE (heapview.field.name.tooltip): The tooltip for the column
+# header in the heap view for name.
+heapview.field.name.tooltip=The name of this group
+
+# LOCALIZATION NOTE (shortest-paths.header): The header label for the shortest
+# paths pane.
+shortest-paths.header=Retaining Paths (from Garbage Collector Roots)
+
+# LOCALIZATION NOTE (shortest-paths.select-node): The message displayed in the
+# shortest paths pane when a node is not yet selected.
+shortest-paths.select-node=Select an item to view its retaining paths
+
+# LOCALIZATION NOTE (tree-map.node-count): The label for the count value of a
+# node in the tree map
+tree-map.node-count=count
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/menus.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/menus.properties
new file mode 100644
index 0000000000..c6af91f96f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/menus.properties
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (devtoolsRemoteDebugging.label): This is the label for the menu item
+# in Tools > Web Developer. Clicking on this menu item will open about:debugging which
+# acts as a hub for debugging remote devices.
+devtoolsRemoteDebugging.label = Remote Debugging
+devtoolsRemoteDebugging.accesskey = R
+
+browserConsoleCmd.label = Browser Console
+browserConsoleCmd.accesskey = B
+
+responsiveDesignMode.label = Responsive Design Mode
+responsiveDesignMode.accesskey = R
+
+eyedropper.label = Eyedropper
+eyedropper.accesskey = Y
+
+# LOCALIZATION NOTE (browserToolboxMenu.label): This is the label for the
+# application menu item that opens the browser toolbox UI in the Tools menu.
+browserToolboxMenu.label = Browser Toolbox
+browserToolboxMenu.accesskey = e
+
+webDeveloperToolsMenu.label = Web Developer Tools
+webDeveloperToolsMenu.accesskey = T
+
+extensionsForDevelopersCmd.label = Extensions for Developers
+extensionsForDevelopersCmd.accesskey = f
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/netmonitor.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/netmonitor.properties
new file mode 100644
index 0000000000..92c215186f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/netmonitor.properties
@@ -0,0 +1,1679 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Browser Tools sub-menu -> 'Network Monitor'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (netmonitor.security.state.secure)
+# This string is used as an tooltip for request that was performed over secure
+# channel i.e. the connection was encrypted.
+netmonitor.security.state.secure=The connection used to fetch this resource was secure.
+
+# LOCALIZATION NOTE (netmonitor.security.state.insecure)
+# This string is used as an tooltip for request that was performed over insecure
+# channel i.e. the connection was not https
+netmonitor.security.state.insecure=The connection used to fetch this resource was not secure.
+
+# LOCALIZATION NOTE (netmonitor.security.state.broken)
+# This string is used as an tooltip for request that failed due to security
+# issues.
+netmonitor.security.state.broken=A security error prevented the resource from being loaded.
+
+# LOCALIZATION NOTE (netmonitor.security.state.weak)
+# This string is used as an tooltip for request that had minor security issues
+netmonitor.security.state.weak=This resource was transferred over a connection that used weak encryption.
+
+# LOCALIZATION NOTE (netmonitor.security.enabled):
+# This string is used to indicate that a specific security feature is used by
+# a connection in the security details tab.
+# For example: "HTTP Strict Transport Security: Enabled"
+netmonitor.security.enabled=Enabled
+
+# LOCALIZATION NOTE (netmonitor.security.disabled):
+# This string is used to indicate that a specific security feature is not used by
+# a connection in the security details tab.
+# For example: "HTTP Strict Transport Security: Disabled"
+netmonitor.security.disabled=Disabled
+
+# LOCALIZATION NOTE (netmonitor.security.hostHeader):
+# This string is used as a header for section containing security information
+# related to the remote host. %S is replaced with the domain name of the remote
+# host. For example: Host example.com
+netmonitor.security.hostHeader=Host %S:
+
+# LOCALIZATION NOTE (netmonitor.security.notAvailable):
+# This string is used to indicate that a certain piece of information is not
+# available to be displayed. For example a certificate that has no organization
+# defined:
+# Organization: <Not Available>
+netmonitor.security.notAvailable=<Not Available>
+
+# LOCALIZATION NOTE (collapseDetailsPane): This is the tooltip for the button
+# that collapses the network details pane in the UI.
+collapseDetailsPane=Hide request details
+
+# LOCALIZATION NOTE (collapseActionPane): This is the tooltip for the button
+# that collapses the network action pane in the UI.
+collapseActionPane=Hide network action
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Show all tabs
+
+# LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
+# headers tab of the network details pane when there are no headers available.
+headersEmptyText=No headers for this request
+
+# LOCALIZATION NOTE (headersFilterText): This is the text displayed in the
+# headers tab of the network details pane for the filtering input.
+headersFilterText=Filter headers
+
+# LOCALIZATION NOTE (messagesEmptyText): This is the text displayed in the
+# WebSockets tab of the network details pane when there are no frames available.
+messagesEmptyText=No messages for this request
+
+# LOCALIZATION NOTE (cookiesEmptyText): This is the text displayed in the
+# cookies tab of the network details pane when there are no cookies available.
+cookiesEmptyText=No cookies for this request
+
+# LOCALIZATION NOTE (cookiesFilterText): This is the text displayed in the
+# cookies tab of the network details pane for the filtering input.
+cookiesFilterText=Filter cookies
+
+# LOCALIZATION NOTE (responseEmptyText): This is the text displayed in the
+# response tab of the network details pane when the response is empty or not
+# available for shown.
+responseEmptyText=No response data available for this request
+
+# LOCALIZATION NOTE (paramsNoPayloadText): This is the text displayed in the
+# request tab of the network details pane when there are no params available.
+paramsNoPayloadText=No payload for this request
+
+# LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
+# request tab of the network details pane for the filtering input.
+paramsFilterText=Filter request parameters
+
+# LOCALIZATION NOTE (paramsQueryString): This is the label displayed
+# in the network details request tab identifying the query string.
+paramsQueryString=Query string
+
+# LOCALIZATION NOTE (paramsFormData): This is the label displayed
+# in the network details request tab identifying the form data.
+paramsFormData=Form data
+
+# LOCALIZATION NOTE (paramsPostPayload): This is the label displayed
+# in the network details request tab identifying the request payload.
+paramsPostPayload=Request payload
+
+# LOCALIZATION NOTE (netmonitor.request.raw): This is the label displayed
+# on the button in the network details request tab that toggles the
+# view of the network request between the raw data and the formatted display.
+netmonitor.request.raw=Raw
+
+# LOCALIZATION NOTE (requestHeaders): This is the label displayed
+# in the network details headers tab identifying the request headers.
+requestHeaders=Request headers
+
+# LOCALIZATION NOTE (requestHeadersFromUpload): This is the label displayed
+# in the network details headers tab identifying the request headers from
+# the upload stream of a POST request's body.
+requestHeadersFromUpload=Request headers from upload stream
+
+# LOCALIZATION NOTE (responseHeaders): This is the label displayed
+# in the network details headers tab identifying the response headers.
+responseHeaders=Response headers
+
+# LOCALIZATION NOTE (requestCookies): This is the label displayed
+# in the network details request tab identifying the request cookies.
+requestCookies=Request cookies
+
+# LOCALIZATION NOTE (responseCookies): This is the label displayed
+# in the network details request tab identifying the response cookies.
+responseCookies=Response cookies
+
+# LOCALIZATION NOTE (responsePayload): This is the label displayed
+# in the network details response tab identifying the response payload.
+responsePayload=Response payload
+
+# LOCALIZATION NOTE (netmonitor.response.raw): This is the label displayed
+# on the button in the network details response tab that toggles the
+# view of the network response between the raw data and the formatted display.
+netmonitor.response.raw=Raw
+
+# LOCALIZATION NOTE (netmonitor.response.html): This is the text displayed
+# in the response tab of the network details pane for an HTML preview.
+netmonitor.response.html=HTML
+
+# LOCALIZATION NOTE (jsonFilterText): This is the text displayed
+# in the response tab of the network details pane for the JSON filtering input.
+jsonFilterText=Filter properties
+
+# LOCALIZATION NOTE (jsonScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSON scope.
+jsonScopeName=JSON
+
+# LOCALIZATION NOTE (jsonpScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSONP scope.
+jsonpScopeName=JSONP → callback %S()
+
+# LOCALIZATION NOTE (jsonXssiStripped): This is the text displayed
+# in a notification in the response tab of the network details pane
+# when a JSON payload had XSSI escape characters which were removed
+jsonXssiStripped=The string “%S” was removed from the beginning of the JSON shown below
+
+# LOCALIZATION NOTE (responseTruncated): This is the text displayed
+# in the response tab of the network details pane when the response is over
+# the truncation limit and thus was truncated.
+responseTruncated=Response has been truncated
+
+# LOCALIZATION NOTE (requestTruncated): This is the text displayed
+# in the request tab of the network details pane when the request is over
+# the truncation limit and thus was truncated.
+requestTruncated=Request has been truncated
+
+# LOCALIZATION NOTE (networkMenu.raced): This is the label displayed
+# in the network menu specifying the transfer or a request is
+# raced. %S refers to the current transfer size.
+networkMenu.raced=%S (raced)
+
+# LOCALIZATION NOTE (networkMenu.sortedAsc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted ascending.
+networkMenu.sortedAsc=Sorted ascending
+
+# LOCALIZATION NOTE (networkMenu.sortedDesc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted descending.
+networkMenu.sortedDesc=Sorted descending
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.perf): A tooltip explaining
+# what the perf button does
+networkMenu.summary.tooltip.perf=Start performance analysis
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.domContentLoaded): A tooltip explaining
+# what the DOMContentLoaded label displays
+networkMenu.summary.tooltip.domContentLoaded=Time when “DOMContentLoad” event occurred
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.load): A tooltip explaining
+# what the load label displays
+networkMenu.summary.tooltip.load=Time when “load” event occurred
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCount2): This label is displayed
+# in the network table footer providing the number of requests
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+networkMenu.summary.requestsCount2=One request;#1 requests
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
+# in the network table footer when there are no requests
+networkMenu.summary.requestsCountEmpty=No requests
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.requestsCount): A tooltip explaining
+# what the requestsCount label displays
+networkMenu.summary.tooltip.requestsCount=Number of requests
+
+# LOCALIZATION NOTE (networkMenu.summary.transferred): This label is displayed
+# in the network table footer providing the transferred size.
+networkMenu.summary.transferred=%S / %S transferred
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.transferred): A tooltip explaining
+# what the transferred label displays
+networkMenu.summary.tooltip.transferred=Size/transferred size of all requests
+
+# LOCALIZATION NOTE (networkMenu.summary.finish): This label is displayed
+# in the network table footer providing the transfer time.
+networkMenu.summary.finish=Finish: %S
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.finish): A tooltip explaining
+# what the finish label displays
+networkMenu.summary.tooltip.finish=Total time needed to load all requests
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCount2): This label is displayed
+# in the messages table footer providing the number of frames
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+networkMenu.ws.summary.framesCount2=One message;#1 messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCountEmpty): This label is displayed
+# in the messages table footer when there are no frames
+networkMenu.ws.summary.framesCountEmpty=No messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesCount): A tooltip explaining
+# what the framesCount label displays
+networkMenu.ws.summary.tooltip.framesCount=Number of messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalSize): A tooltip explaining
+# what the framesTotalSize label displays
+networkMenu.ws.summary.tooltip.framesTotalSize=Total size of displayed messages
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.label.framesTranferredSize): A label showing
+# summary size info related to the current list of WS messages
+# %1$S is the total size of the transferred data, %2$S is the size of sent data, %3$S is the size of received data.
+networkMenu.ws.summary.label.framesTranferredSize=%1$S total, %2$S sent, %3$S received
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalTime): A tooltip explaining
+# what framesTotalTime displays
+networkMenu.ws.summary.tooltip.framesTotalTime=Total elapsed time between the first and last displayed messages
+
+# LOCALIZATION NOTE (networkMenu.sizeB): This is the label displayed
+# in the network menu specifying the size of a request (in bytes).
+networkMenu.sizeB=%S B
+
+# LOCALIZATION NOTE (networkMenu.size.kB): This is the label displayed
+# in the network menu specifying the size of a request (in kilobytes).
+networkMenu.size.kB=%S kt
+
+# LOCALIZATION NOTE (networkMenu.sizeMB): This is the label displayed
+# in the network menu specifying the size of a request (in megabytes).
+networkMenu.sizeMB=%S MB
+
+# LOCALIZATION NOTE (networkMenu.sizeGB): This is the label displayed
+# in the network menu specifying the size of a request (in gigabytes).
+networkMenu.sizeGB=%S GB
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable): This is the label displayed
+# in the network menu specifying the transferred size of a request is
+# unavailable.
+networkMenu.sizeUnavailable=—
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable.title): This is the tooltip
+# displayed in the network menu specifying that the transferred size of a
+# request is unavailable.
+networkMenu.sizeUnavailable.title=Transferred size is not available
+
+# LOCALIZATION NOTE (networkMenu.sizeCached): This is the label displayed
+# in the network menu and the headers panel specifying the transfer or a request is
+# cached.
+networkMenu.sizeCached=cached
+
+# LOCALIZATION NOTE (networkMenu.sizeServiceWorker): This is the label displayed
+# in the network menu and the headers panel specifying the transferred of a request
+# computed by a service worker.
+networkMenu.sizeServiceWorker=service worker
+
+# LOCALIZATION NOTE (networkMenu.blocked2): This is a generic message for a
+# URL that has been blocked for an unknown reason
+networkMenu.blocked2=Blocked
+
+# LOCALIZATION NOTE (networkMenu.blockedby): This is a generic message for a
+# URL that has been blocked by an extension
+# %S is the extension name.
+networkMenu.blockedby=Blocked By %S
+
+# LOCALIZATION NOTE (networkMenu.blockedTooltip): This is a the text displayed
+# as a tooltip for the blocked icon in the request list
+networkMenu.blockedTooltip=Blocked
+
+# LOCALIZATION NOTE (networkMenu.totalMS2): This is the label displayed
+# in the network menu specifying the time for a request to finish (in milliseconds).
+networkMenu.totalMS2=%S ms
+
+# This string is used to concatenate tooltips (netmonitor.waterfall.tooltip.*)
+# in the requests waterfall for total time (in milliseconds). \\u0020 represents
+# a whitespace. You can replace this with a different character, e.g. an hyphen
+# or a period, if a comma doesn't work for your language.
+netmonitor.waterfall.tooltip.separator=,\u0020
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.total): This is part of the tooltip
+# displayed in the requests waterfall for total time (in milliseconds).
+netmonitor.waterfall.tooltip.total=Total %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.blocked): This is part of the tooltip
+# displayed in the requests waterfall for blocked time (in milliseconds).
+netmonitor.waterfall.tooltip.blocked=Blocked %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.dns): This is part of the tooltip
+# displayed in the requests waterfall for dns time (in milliseconds).
+netmonitor.waterfall.tooltip.dns=DNS %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.ssl): This is part of the tooltip
+# displayed in the requests waterfall for tls setup time (in milliseconds).
+netmonitor.waterfall.tooltip.ssl=TLS %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.connect): This is part of the tooltip
+# displayed in the requests waterfall for connect time (in milliseconds).
+netmonitor.waterfall.tooltip.connect=Connect %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.send): This is part of the tooltip
+# displayed in the requests waterfall for send time (in milliseconds).
+netmonitor.waterfall.tooltip.send=Send %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.wait): This is part of the tooltip
+# displayed in the requests waterfall for wait time (in milliseconds).
+netmonitor.waterfall.tooltip.wait=Wait %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.receive): This is part of the tooltip
+# displayed in the requests waterfall for receive time (in milliseiconds).
+netmonitor.waterfall.tooltip.receive=Receive %S ms
+
+# LOCALIZATION NOTE (netmonitor.timings.requestTiming): This is the title of the existing
+# section in Timings side panel. This section contains request timings.
+netmonitor.timings.requestTiming=Request Timing
+
+# LOCALIZATION NOTE (netmonitor.timings.serverTiming): This is the title of a new section
+# in Timings side panel. This section contains server timings transferred from the server
+# through the "Server-Timing" header.
+netmonitor.timings.serverTiming=Server Timing
+
+# LOCALIZATION NOTE (netmonitor.timings.queuedAt): This is relative queued time to the
+# first request. %S is time expressed in milliseconds or minutes.
+netmonitor.timings.queuedAt=Queued: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.startedAt): Relative to the first request,
+# when the request actually started. %S is time expressed in milliseconds or minutes.
+netmonitor.timings.startedAt=Started: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.downloadedAt): Relative to first request,
+# when the request actually finished downloading.
+# %S is time expressed in milliseconds or minutes.
+netmonitor.timings.downloadedAt=Downloaded: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.noTimings): Message that displays in the
+# timings pane when thea request has been blocked
+netmonitor.timings.noTimings=No timings for this request
+
+# LOCALIZATION NOTE (networkMenu.millisecond): This is the label displayed
+# in the network menu specifying timing interval divisions (in milliseconds).
+networkMenu.millisecond=%S ms
+
+# LOCALIZATION NOTE (networkMenu.second): This is the label displayed
+# in the network menu specifying timing interval divisions (in seconds).
+networkMenu.second=%S s
+
+# LOCALIZATION NOTE (networkMenu.minute): This is the label displayed
+# in the network menu specifying timing interval divisions (in minutes).
+networkMenu.minute=%S min
+
+# LOCALIZATION NOTE (pieChart.loading): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+pieChart.loading=Loading
+
+# LOCALIZATION NOTE (pieChart.unavailable): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+pieChart.unavailable=Empty
+
+# LOCALIZATION NOTE (pieChart.ariaLabel): This is the text used for the aria-label attribute
+# for SVG pie charts (e.g., in the performance analysis view).
+pieChart.ariaLabel=Pie chart representing the size of each type of request in proportion to each other
+
+# LOCALIZATION NOTE (pieChart.sliceAriaLabel): This is the text used for the aria-label attribute
+# for SVG pie charts slices (e.g., in the performance analysis view).
+# %1$S is the slice label (e.g. "html")
+# %2$S is the percentage (e.g. "33.23%").
+pieChart.sliceAriaLabel=%1$S: %2$S
+
+# LOCALIZATION NOTE (tableChart.loading): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+tableChart.loading=Please wait…
+
+# LOCALIZATION NOTE (tableChart.unavailable): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+tableChart.unavailable=No data available
+
+# LOCALIZATION NOTE (charts.size.kB): This is the label displayed
+# in pie or table charts specifying the size of a request (in kilobytes).
+charts.size.kB=%S kt
+
+# LOCALIZATION NOTE (charts.transferredSize.kB): This is the label displayed
+# in pie or table charts specifying the size of a transferred request (in kilobytes).
+charts.transferredSize.kB=%S kt
+
+# LOCALIZATION NOTE (charts.totalS): This is the label displayed
+# in pie or table charts specifying the time for a request to finish (in seconds).
+charts.totalS=%S s
+
+# LOCALIZATION NOTE (charts.totalTransferredSize.kB): This is the label displayed
+# in the performance analysis view for total transferred size, in kilobytes.
+charts.totalTransferredSize.kB=Siirretty koko: %S kt
+
+# LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
+# in the performance analysis view for "cache enabled" charts.
+charts.cacheEnabled=Primed cache
+
+# LOCALIZATION NOTE (charts.cacheDisabled): This is the label displayed
+# in the performance analysis view for "cache disabled" charts.
+charts.cacheDisabled=Empty cache
+
+# LOCALIZATION NOTE (charts.learnMore): This is the label displayed
+# in the performance analysis view, with a link to external documentation.
+charts.learnMore=Learn more about performance analysis
+
+# LOCALIZATION NOTE (charts.totalSize.kB): This is the label displayed
+# in the performance analysis view for total requests size, in kilobytes.
+charts.totalSize.kB=Koko: %S kt
+
+# LOCALIZATION NOTE (charts.totalSeconds): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is the label displayed in the performance analysis view for the
+# total requests time, in seconds.
+charts.totalSeconds=Time: #1 second;Time: #1 seconds
+
+# LOCALIZATION NOTE (charts.totalSecondsNonBlocking): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is the label displayed in the performance analysis view for the
+# total requests time (non-blocking), in seconds.
+charts.totalSecondsNonBlocking=Non blocking time: #1 second;Non blocking time: #1 seconds
+
+# LOCALIZATION NOTE (charts.totalCached): This is the label displayed
+# in the performance analysis view for total cached responses.
+charts.totalCached=Cached responses: %S
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the performance analysis view for total requests.
+charts.totalCount=Total requests: %S
+
+# LOCALIZATION NOTE (charts.requestsNumber): This is the label for the header column in
+# the performance analysis view for the number of requests. The label is not visible on screen,
+# but is set in the DOM for accessibility sake.
+charts.requestsNumber=Number of requests
+
+# LOCALIZATION NOTE (charts.size): This is the label displayed
+# in the header column in the performance analysis view for size of the request.
+charts.size=Size
+
+# LOCALIZATION NOTE (charts.type): This is the label displayed
+# in the header column in the performance analysis view for type of request.
+charts.type=Type
+
+# LOCALIZATION NOTE (charts.transferred): This is the label displayed
+# in the header column in the performance analysis view for transferred
+# size of the request.
+charts.transferred=Transferred
+
+# LOCALIZATION NOTE (charts.time): This is the label displayed
+# in the header column in the performance analysis view for time of request.
+charts.time=Time
+
+# LOCALIZATION NOTE (charts.nonBlockingTime): This is the label displayed
+# in the header column in the performance analysis view for non blocking
+# time of request.
+charts.nonBlockingTime=Non blocking time
+
+# LOCALIZATION NOTE (netRequest.originalFileURL.tooltip): This is the tooltip
+# displayed for the file's original URL value displayed in the file column of
+# a request.
+netRequest.originalFileURL.tooltip=Original: %S
+
+# LOCALIZATION NOTE (netRequest.decodedFileURL.tooltip): This is the tooltip
+# displayed for the file's decoded URL value displayed in the file column of
+# a request.
+netRequest.decodedFileURL.tooltip=Decoded: %S
+
+# LOCALIZATION NOTE (certmgr.subjectinfo.label):
+# A label used for a certificate section in security tab.
+# This section displays Name and organization who has been assigned the fingerprints
+certmgr.subjectinfo.label=Issued To
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.cn=Common Name (CN):
+
+# LOCALIZATION NOTE (certmgr.certdetail.o):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.o=Organization (O):
+
+# LOCALIZATION NOTE (certmgr.certdetail.ou):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.ou=Organizational Unit (OU):
+
+# LOCALIZATION NOTE (certmgr.issuerinfo.label):
+# A label used for a certificate section in security tab
+# This section displays Name and organization who issued the fingerprints
+certmgr.issuerinfo.label=Issued By
+
+# LOCALIZATION NOTE (certmgr.periodofvalidity.label):
+# A label used for a certificate section in security tab
+# This section displays the valid period of this fingerprints
+certmgr.periodofvalidity.label=Period of Validity
+
+# LOCALIZATION NOTE (certmgr.begins):
+# A label used for Period of Validity sub-section in security tab
+certmgr.begins=Begins On:
+
+# LOCALIZATION NOTE (certmgr.expires):
+# A label used for Period of Validity sub-section in security tab
+certmgr.expires=Expires On:
+
+# LOCALIZATION NOTE (certmgr.fingerprints.label):
+# A label used for a certificate section in security tab
+# This section displays the valid period of this fingerprints
+certmgr.fingerprints.label=Fingerprints
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha256fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha256fingerprint=SHA-256 Fingerprint:
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha1fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha1fingerprint=SHA1 Fingerprint:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.label):
+# This string is used as a label in the security tab.
+certmgr.certificateTransparency.label=Transparency:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.ok):
+# This string is used to indicate that there are valid signed certificate
+# timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.ok=Valid SCTs records
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.notEnoughSCTS):
+# This string is used to indicate that there are not enough valid signed
+# certificate timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.notEnoughSCTS=Not enough SCTs
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.notDiverseSCTS):
+# This string is used to indicate that there ar not enough diverse signed
+# certificate timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.notDiverseSCTS=Not diverse SCTs
+
+# LOCALIZATION NOTE (netmonitor.perfNotice1/2/3): These are the labels displayed
+# in the network table when empty to start performance analysis.
+netmonitor.perfNotice1=• Click on the
+netmonitor.perfNotice2=button to start performance analysis.
+netmonitor.perfNotice3=Analyze
+
+# LOCALIZATION NOTE (netmonitor.reload1/2/3): These are the labels displayed
+# in the network table when empty to start logging network requests.
+netmonitor.reloadNotice1=• Perform a request or
+netmonitor.reloadNotice2=Reload
+netmonitor.reloadNotice3=the page to see detailed information about network activity.
+netmonitor.emptyBrowserToolbox=Perform a request to see detailed information about network activity.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.status3): This is the label displayed
+# in the network table toolbar, above the "status" column.
+netmonitor.toolbar.status3=Status
+
+# LOCALIZATION NOTE (netmonitor.toolbar.method): This is the label displayed
+# in the network table toolbar, above the "method" column.
+netmonitor.toolbar.method=Method
+
+# LOCALIZATION NOTE (netmonitor.toolbar.priority): This is the label displayed
+# in the network table toolbar, above the "priority" column.
+netmonitor.toolbar.priority=Priority
+
+# LOCALIZATION NOTE (netmonitor.toolbar.file): This is the label displayed
+# in the network table toolbar, above the "file" column.
+netmonitor.toolbar.file=File
+
+# LOCALIZATION NOTE (netmonitor.toolbar.url): This is the label displayed
+# in the network table toolbar, above the "url" column.
+netmonitor.toolbar.url=URL
+
+# LOCALIZATION NOTE (netmonitor.toolbar.protocol): This is the label displayed
+# in the network table toolbar, above the "protocol" column.
+netmonitor.toolbar.protocol=Protocol
+
+# LOCALIZATION NOTE (netmonitor.toolbar.domain): This is the label displayed
+# in the network table toolbar, above the "domain" column.
+netmonitor.toolbar.domain=Domain
+
+# LOCALIZATION NOTE (netmonitor.toolbar.remoteip): This is the label displayed
+# in the network table toolbar, above the "remoteip" column.
+netmonitor.toolbar.remoteip=Remote IP
+
+# LOCALIZATION NOTE (netmonitor.toolbar.initiator): This is the label displayed
+# in the network table toolbar, above the "initiator" column.
+netmonitor.toolbar.initiator=Initiator
+
+# LOCALIZATION NOTE (netmonitor.toolbar.type): This is the label displayed
+# in the network table toolbar, above the "type" column.
+netmonitor.toolbar.type=Type
+
+# LOCALIZATION NOTE (netmonitor.toolbar.cookies): This is the label displayed
+# in the network table toolbar, above the "cookies" column.
+netmonitor.toolbar.cookies=Cookies
+
+# LOCALIZATION NOTE (netmonitor.toolbar.setCookies): This is the label displayed
+# in the network table toolbar, above the "set cookies" column.
+# Set-Cookie is a HTTP response header. This string is the plural form of it.
+# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
+netmonitor.toolbar.setCookies=Set-Cookies
+
+# LOCALIZATION NOTE (netmonitor.toolbar.scheme): This is the label displayed
+# in the network table toolbar, above the "scheme" column.
+netmonitor.toolbar.scheme=Scheme
+
+# LOCALIZATION NOTE (netmonitor.toolbar.startTime): This is the label displayed
+# in the network table toolbar, above the "start time" column, which is the time
+# from start of 1st request until the start of this request.
+netmonitor.toolbar.startTime=Start Time
+
+# LOCALIZATION NOTE (netmonitor.toolbar.endTime): This is the label displayed
+# in the network table toolbar, above the "end time" column, which is the time
+# from start of 1st request until the end of this response.
+netmonitor.toolbar.endTime=End Time
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseTime): This is the label displayed
+# in the network table toolbar, above the "response time" column, which is the time
+# from start of 1st request until the beginning of download of this response.
+netmonitor.toolbar.responseTime=Response Time
+
+# LOCALIZATION NOTE (netmonitor.toolbar.duration): This is the label displayed
+# in the network table toolbar, above the "duration" column, which is the time
+# from start of this request until the end of this response.
+netmonitor.toolbar.duration=Duration
+
+# LOCALIZATION NOTE (netmonitor.toolbar.latency): This is the label displayed
+# in the network table toolbar, above the "latency" column, which is the time
+# from end of this request until the beginning of download of this response.
+netmonitor.toolbar.latency=Latency
+
+# LOCALIZATION NOTE (netmonitor.toolbar.transferred): This is the label displayed
+# in the network table toolbar, above the "transferred" column and in general
+# section of the headers panel, which is the compressed / encoded size.
+netmonitor.toolbar.transferred=Transferred
+
+# LOCALIZATION NOTE (netmonitor.toolbar.contentSize): This is the label displayed
+# in the network table toolbar, above the "size" column, which is the
+# uncompressed / decoded size.
+netmonitor.toolbar.contentSize=Size
+
+# LOCALIZATION NOTE (netmonitor.toolbar.waterfall): This is the label displayed
+# in the network table toolbar, above the "waterfall" column.
+netmonitor.toolbar.waterfall=Timeline
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.size): This is the label displayed
+# in the messages table header, above the "size" column.
+netmonitor.ws.toolbar.size=Size
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.data): This is the label displayed
+# in the messages table header, above the "data" column.
+netmonitor.ws.toolbar.data=Data
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.opCode): This is the label displayed
+# in the messages table header, above the "opCode" column.
+netmonitor.ws.toolbar.opCode=OpCode
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.maskBit): This is the label displayed
+# in the messages table header, above the "maskBit" column.
+netmonitor.ws.toolbar.maskBit=MaskBit
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.finBit): This is the label displayed
+# in the messages table header, above the "finBit" column.
+netmonitor.ws.toolbar.finBit=FinBit
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.time): This is the label displayed
+# in the messages table header, above the "time" column.
+netmonitor.ws.toolbar.time=Time
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.eventName): This is the label displayed
+# in the messages table header, above the "eventName" column.
+netmonitor.ws.toolbar.eventName=Event Name
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.retry): This is the label displayed
+# in the messages table header, above the "retry" column.
+netmonitor.ws.toolbar.retry=Retry
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.lastEventId): This is the label displayed
+# in the messages table header, above the "lastEventId" column.
+netmonitor.ws.toolbar.lastEventId=Last Event ID
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.clear): This is the label displayed
+# in the messages panel toolbar for the "Clear" button.
+netmonitor.ws.toolbar.clear=Clear
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.filterFreetext.label): This is the label
+# displayed in the messages panel toolbar for the frames filtering textbox.
+netmonitor.ws.toolbar.filterFreetext.label=Filter Messages
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the messages panel toolbar messages filtering textbox
+netmonitor.ws.toolbar.filterFreetext.key=CmdOrCtrl+E
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.resetColumns): This is the label
+# displayed in the messages panel table header context menu.
+netmonitor.ws.toolbar.resetColumns=Reset Columns
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all): This is the label displayed
+# on the context menu that shows "All" WebSocket frames.
+netmonitor.ws.context.all=All
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all.accesskey): This is the access key
+# for the "All" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.all.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent): This is the label displayed
+# on the context menu that shows "Sent" WebSocket frames.
+netmonitor.ws.context.sent=Sent
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent.accesskey): This is the access key
+# for the "Sent" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.sent.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received): This is the label displayed
+# on the context menu that shows "Received" WebSocket frames.
+netmonitor.ws.context.received=Received
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received.accesskey): This is the access key
+# for the "Received" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.received.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames): This is the label displayed
+# on the context menu that shows "Control Frames" WebSocket frames.
+netmonitor.ws.context.controlFrames=Control
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames.accesskey): This is the access key
+# for the "Control Frames" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.controlFrames.accesskey=o
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame): This is the label displayed
+# on the context menu that shows "Copy Message".
+netmonitor.ws.context.copyFrame=Copy Message
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame.accesskey): This is the access key
+# for the "Copy Message" menu item displayed in the context menu of a WebSocket frame.
+netmonitor.ws.context.copyFrame.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsBase64): This is the label displayed
+# on the context menu that shows "Copy as Base64" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsBase64=Copy as Base64
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsBase64.accesskey): This is the access key
+# for the "Copy as Base64" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsBase64.accesskey=B
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsHex): This is the label displayed
+# on the context menu that shows "Copy as Hex" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsHex=Copy as Hex
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsHex.accesskey): This is the access key
+# for the "Copy as Hex" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsHex.accesskey=H
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsText): This is the label displayed
+# on the context menu that shows "Copy as Text" displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsText=Copy as Text
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrameAsText.accesskey): This is the access key
+# for the "Copy as Text" menu item displayed in the context menu of a binary WebSocket frame.
+netmonitor.ws.context.copyFrameAsText.accesskey=T
+
+# LOCALIZATION NOTE (netmonitor.ws.connection.closed): This is the text displayed in the
+# websocket messages panel when the connection is closed
+netmonitor.ws.connection.closed=Connection Closed
+
+# LOCALIZATION NOTE (netmonitor.ws.type.sent): This is the label used as
+# accessible text for the "sent" type icon in the websocket table's "data" column.
+netmonitor.ws.type.sent=Sent
+
+# LOCALIZATION NOTE (netmonitor.ws.type.received): This is the label used as
+# accessible text for the "received" type icon in the websocket table's "data" column.
+netmonitor.ws.type.received=Received
+
+# LOCALIZATION NOTE (netmonitor.ws.rawData.header): This is the label displayed
+# in the messages panel identifying the raw data.
+netmonitor.ws.rawData.header=Raw Data (%S)
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.inputPlaceholder): This is the label
+# displayed in the search toolbar for the search input as the placeholder.
+netmonitor.search.toolbar.inputPlaceholder=Find in resources…
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.close): This is the label
+# displayed in the search toolbar to close the search panel.
+netmonitor.search.toolbar.close=Close Search Panel
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.clear): This is the label
+# displayed in the search toolbar to clear the search panel.
+netmonitor.search.toolbar.clear=Clear Search Results
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.caseSensitive): This is the label
+# displayed in the search toolbar to do a case sensitive search.
+netmonitor.search.toolbar.caseSensitive=Case Sensitive
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.fetching): This is the label
+# displayed in the search results status bar when status is set to fetching.
+netmonitor.search.status.labels.fetching=Searching…
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.canceled): This is the label
+# displayed in the search results status bar when status is set to cancelled.
+netmonitor.search.status.labels.canceled=Search canceled.
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.done): This is the label
+# displayed in the search results status bar when status is set to done.
+# %1$S is the number of matching lines in search results (netmonitor.search.status.labels.matchingLines)
+# %2$S is the number of files in which matching lines were found (netmonitor.search.status.labels.fileCount)
+netmonitor.search.status.labels.done=Search finished. %1$S %2$S.
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.matchingLines): Semi-colon list of plural forms.
+# This is the label displayed in the search results status bar showing matching lines found.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of matching lines found
+netmonitor.search.status.labels.matchingLines=Found #1 matching line;Found #1 matching lines
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.fileCount): Semi-colon list of plural forms.
+# This is the label displayed in the search results status bar showing file count
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of files in which matching lines were found
+netmonitor.search.status.labels.fileCount=in #1 file;in #1 files
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.error): This is the label
+# displayed in the search results status bar when status is set to error.
+netmonitor.search.status.labels.error=Search error.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.requestBlocking): This is the tooltip displayed
+# over the toolbar's Request Blocking button
+netmonitor.toolbar.requestBlocking=Request Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlocking2): This is the label displayed
+# in the action bar's request blocking tab
+netmonitor.actionbar.requestBlocking2=Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.enableBlocking): This is the label displayed
+# in request blocking tab to represent if requests blocking should be enabled
+netmonitor.actionbar.enableBlocking=Enable Request Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.blockSearchPlaceholder): This is the
+# placeholder text for the request addition form
+netmonitor.actionbar.blockSearchPlaceholder=Block resource when URL contains
+
+# LOCALIZATION NOTE (netmonitor.actionbar.removeBlockedUrl): This is the
+# tooltip shown over the remove button for blocked URL item
+netmonitor.actionbar.removeBlockedUrl=Remove pattern
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
+# usage notice displayed when network blocking list is empty
+netmonitor.actionbar.requestBlockingUsageNotice=Add URL patterns here to block matching requests.
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingAddNotice): This is the
+# add notice that explains ways to add blocking pattern that is displayed when
+# network blocking list is empty
+netmonitor.actionbar.requestBlockingAddNotice=Start by adding a pattern or dragging a row from the network table.
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.removeAllBlockedUrls): This is the
+# context menu item for removing all blocked URLs
+netmonitor.requestBlockingMenu.removeAllBlockedUrls=Remove all
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.enableAllBlockedUrls): This is the
+# context menu item for enabling all blocked URLs
+netmonitor.requestBlockingMenu.enableAllBlockedUrls=Enable all
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.disableAllBlockedUrls): This is the
+# context menu item for disabling all blocked URLs
+netmonitor.requestBlockingMenu.disableAllBlockedUrls=Disable all
+
+# LOCALIZATION NOTE (netmonitor.actionbar.search): This is the label displayed
+# in the action bar's search tab
+netmonitor.actionbar.search=Search
+
+# LOCALIZATION NOTE (netmonitor.actionbar.HTTPCustomRequest): This is the label displayed
+# in the action bar's edit and resend tab
+netmonitor.actionbar.HTTPCustomRequest=New Request
+
+# LOCALIZATION NOTE (messagesTruncated): This is the text displayed
+# in the messages panel when the number of messages is over the
+# truncation limit.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+netmonitor.ws.truncated-messages.warning=One message has been truncated to conserve memory;#1 messages have been truncated to conserve memory
+
+# LOCALIZATION NOTE (disableMessagesTruncation): This is the text displayed
+# in the messages panel checkbox label for toggling message truncation.
+toggleMessagesTruncation=Keep all future messages
+
+# LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
+# to describe the checkbox used to toggle message truncation.
+toggleMessagesTruncation.title=Keep all future messages or continue showing truncated messages
+
+# LOCALIZATION NOTE (messageDataTruncated): This is the text displayed
+# to describe to describe data truncation in the messages panel.
+messageDataTruncated=Data has been truncated
+
+# LOCALIZATION NOTE (netmonitor.tab.headers): This is the label displayed
+# in the network details pane identifying the headers tab.
+netmonitor.tab.headers=Headers
+
+# LOCALIZATION NOTE (netmonitor.tab.messages): This is the label displayed
+# in the network details pane identifying the messages tab.
+netmonitor.tab.messages=Messages
+
+# LOCALIZATION NOTE (netmonitor.tab.cookies): This is the label displayed
+# in the network details pane identifying the cookies tab.
+netmonitor.tab.cookies=Cookies
+
+# LOCALIZATION NOTE (netmonitor.tab.cache): This is the label displayed
+# in the network details pane identifying the cache tab.
+netmonitor.tab.cache=Cache
+
+# LOCALIZATION NOTE (netmonitor.tab.params): This is the label displayed
+# in the network details pane identifying the params tab.
+netmonitor.tab.params=Params
+
+# LOCALIZATION NOTE (netmonitor.tab.request): This is the label displayed
+# in the network details pane identifying the request tab.
+netmonitor.tab.request=Request
+
+# LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
+# in the network details pane identifying the response tab.
+netmonitor.tab.response=Response
+
+# LOCALIZATION NOTE (netmonitor.tab.timings): This is the label displayed
+# in the network details pane identifying the timings tab.
+netmonitor.tab.timings=Timings
+
+# LOCALIZATION NOTE (netmonitor.tab.stackTrace): This is the label displayed
+# in the network details pane identifying the stack-trace tab.
+netmonitor.tab.stackTrace=Stack Trace
+
+# LOCALIZATION NOTE (netmonitor.tab.security): This is the label displayed
+# in the network details pane identifying the security tab.
+netmonitor.tab.security=Security
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.all): This is the label displayed
+# in the network toolbar for the "All" filtering button.
+netmonitor.toolbar.filter.all=All
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.html): This is the label displayed
+# in the network toolbar for the "HTML" filtering button.
+netmonitor.toolbar.filter.html=HTML
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.css): This is the label displayed
+# in the network toolbar for the "CSS" filtering button.
+netmonitor.toolbar.filter.css=CSS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.js): This is the label displayed
+# in the network toolbar for the "JS" filtering button.
+netmonitor.toolbar.filter.js=JS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.xhr): This is the label displayed
+# in the network toolbar for the "XHR" filtering button.
+netmonitor.toolbar.filter.xhr=XHR
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.fonts): This is the label displayed
+# in the network toolbar for the "Fonts" filtering button.
+netmonitor.toolbar.filter.fonts=Fonts
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.images): This is the label displayed
+# in the network toolbar for the "Images" filtering button.
+netmonitor.toolbar.filter.images=Images
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.media): This is the label displayed
+# in the network toolbar for the "Media" filtering button.
+netmonitor.toolbar.filter.media=Media
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.flash): This is the label displayed
+# in the network toolbar for the "Flash" filtering button.
+netmonitor.toolbar.filter.flash=Flash
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.ws): This is the label displayed
+# in the network toolbar for the "WS" filtering button.
+netmonitor.toolbar.filter.ws=WS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.other): This is the label displayed
+# in the network toolbar for the "Other" filtering button.
+netmonitor.toolbar.filter.other=Other
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.label): This is the label
+# displayed in the network toolbar for the url filtering textbox.
+netmonitor.toolbar.filterFreetext.label=Filter URLs
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the toolbar url filtering textbox
+netmonitor.toolbar.filterFreetext.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search.key): This is the
+# shortcut key to toggle the search panel
+netmonitor.toolbar.search.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (netmonitor.toolbar.copy.key): This is the
+# shortcut key to copy a selected request url from the network table
+netmonitor.toolbar.copy.key=CmdOrCtrl+C
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.learnMore): This is
+# the title used for MDN icon in filtering textbox
+netmonitor.toolbar.filterFreetext.learnMore=Learn more about filtering
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.label): This is the label
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.label=Persist Logs
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.tooltip): This is the tooltip
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.tooltip=If you enable this option the requests list will not be cleared each time you navigate to a new page
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.label): This is the label
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.label=Disable cache
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.tooltip): This is the tooltip
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.tooltip=Disable HTTP cache
+
+# LOCALIZATION NOTE (netmonitor.toolbar.clear): This is the label displayed
+# in the network toolbar for the "Clear" button.
+netmonitor.toolbar.clear=Clear
+
+# LOCALIZATION NOTE (netmonitor.toolbar.toggleRecording): This is the label displayed
+# in the network toolbar for the toggle recording button.
+netmonitor.toolbar.toggleRecording=Pause/Resume recording network log
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search): This is the tooltip label displayed
+# in the network toolbar for the search button.
+netmonitor.toolbar.search=Search
+
+# LOCALIZATION NOTE (netmonitor.toolbar.HTTPCustomRequest): This is the tooltip label displayed
+# in the network toolbar for the new HTTP Custom Request button.
+netmonitor.toolbar.HTTPCustomRequest=New Request
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetColumns): This is the label
+# displayed in the network table header context menu.
+netmonitor.toolbar.resetColumns=Reset Columns
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetSorting): This is the label
+# displayed in the network table header context menu to reset sorting
+netmonitor.toolbar.resetSorting=Reset Sorting
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent): This is the label
+# displayed in the network table header context menu to resize a column to fit its content
+netmonitor.toolbar.resizeColumnToFitContent=Resize Column To Fit Content
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent.title): This is the title
+# tooltip displayed when draggable resizer in network table headers is hovered
+netmonitor.toolbar.resizeColumnToFitContent.title=Double-click to fit column to content
+
+# LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
+# displayed in the network table header context menu for the timing submenu
+netmonitor.toolbar.timings=Timings
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseHeaders): This is the
+# label displayed in the network table header context menu for the
+# response headers submenu.
+netmonitor.toolbar.responseHeaders=Response Headers
+
+# LOCALIZATION NOTE (netmonitor.headers.toolbar.block): This is the
+# label displayed in the network details headers tab identifying the
+# block url toolbar button.
+netmonitor.headers.toolbar.block=Block
+
+# LOCALIZATION NOTE (netmonitor.headers.address): This is the label displayed
+# in the network details headers tab identifying the remote address.
+netmonitor.headers.address=Address
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyAddress): This is the label displayed
+# in the network details headers tab identifying the proxy address.
+netmonitor.headers.proxyAddress=Proxy Address
+
+# LOCALIZATION NOTE (netmonitor.headers.status): This is the label displayed
+# in the network details headers tab identifying the status code.
+netmonitor.headers.status=Status
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyStatus): This is the label displayed
+# in the network details headers tab identifying the status code for the proxy.
+netmonitor.headers.proxyStatus=Proxy Status
+
+# LOCALIZATION NOTE (netmonitor.headers.size): This is the label displayed
+# in the network details headers tab identifying the size.
+netmonitor.headers.size=Size
+
+# LOCALIZATION NOTE (networkMenu.headers.sizeDetails): This label is displayed
+# in the network details headers tab providing the size details.
+# %1$S is the transferred size, %2$S is the size.
+netmonitor.headers.sizeDetails=%1$S (%2$S size)
+
+# LOCALIZATION NOTE (netmonitor.headers.version): This is the label displayed
+# in the network details headers tab identifying the http version.
+netmonitor.headers.version=Version
+
+# LOCALIZATION NOTE (netmonitor.headers.proxyVersion): This is the label displayed
+# in the network details headers tab identifying the http version of the proxy.
+netmonitor.headers.proxyVersion=Proxy Version
+
+# LOCALIZATION NOTE (netmonitor.summary.learnMore): This is the label displayed
+# in the network details headers tab, with a link to external documentation for
+# status codes.
+netmonitor.summary.learnMore=Learn more about status code
+
+# LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
+# in the network details headers tab identifying the referrer policy.
+netmonitor.headers.referrerPolicy=Referrer Policy
+
+# LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
+# in the network details headers tab identifying the content blocking mode.
+netmonitor.headers.contentBlocking=Blocking
+
+# LOCALIZATION NOTE (netmonitor.headers.requestPriority): This is the label displayed
+# in the network details headers tab identifying the request priority.
+netmonitor.headers.requestPriority=Request Priority
+
+# LOCALIZATION NOTE (netmonitor.headers.dns): This is the label displayed
+# in the network details headers tab identifying the DNS resolution.
+netmonitor.headers.dns=DNS-selvitys
+
+# LOCALIZATION NOTE (netmonitor.headers.dns.basic): This is the label value displayed
+# in the network details headers tab identifying the Basic DNS resolution.
+netmonitor.headers.dns.basic=Järjestelmä
+
+# LOCALIZATION NOTE (netmonitor.headers.dns.doh): This is the label value displayed
+# in the network details headers tab identifying the DNS over HTTPS resolution.
+netmonitor.headers.dns.overHttps=DNS HTTPS:n kautta
+
+# LOCALIZATION NOTE (netmonitor.summary.editAndResend): This is the label displayed
+# on the button in the headers tab that opens a form to edit and resend the currently
+# displayed request
+netmonitor.summary.editAndResend=Edit and Resend
+
+# LOCALIZATION NOTE (netmonitor.headers.raw): This is the label displayed
+# on the button in the headers tab that toggle view for raw request/response headers
+# from the currently displayed request
+netmonitor.headers.raw=Raw
+
+# LOCALIZATION NOTE (netmonitor.headers.blockedByCORS): This is the message displayed
+# in the notification shown when a request has been blocked by CORS with a more
+# specific reason shown in the parenthesis
+netmonitor.headers.blockedByCORS=Response body is not available to scripts (Reason: %S)
+
+#LOCALIZATION NOTE (netmonitor.headers.blockedByCORSTooltip): This is the tooltip
+# displayed on the learnmore link of the blocked by CORS notification.
+netmonitor.headers.blockedByCORSTooltip=Learn more about this CORS error
+
+# LOCALIZATION NOTE (netmonitor.response.name): This is the label displayed
+# in the network details response tab identifying an image's file name or font face's name.
+netmonitor.response.name=Name:
+
+# LOCALIZATION NOTE (netmonitor.response.dimensions): This is the label displayed
+# in the network details response tab identifying an image's dimensions.
+netmonitor.response.dimensions=Dimensions:
+
+# LOCALIZATION NOTE (netmonitor.response.mime): This is the label displayed
+# in the network details response tab identifying an image's or font's MIME type.
+netmonitor.response.mime=MIME Type:
+
+# LOCALIZATION NOTE (netmonitor.response.fontPreviewFailed): This is the notice displayed
+# in the network details response tab if the font preview could not be generated due to
+# an error.
+netmonitor.response.fontPreviewFailed=Font preview could not be generated
+
+# LOCALIZATION NOTE (netmonitor.timings.blocked): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "blocked" state.
+netmonitor.timings.blocked=Blocked:
+
+# LOCALIZATION NOTE (netmonitor.timings.dns): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "dns" state.
+netmonitor.timings.dns=DNS resolution:
+
+# LOCALIZATION NOTE (netmonitor.timings.ssl): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "tls" handshake state.
+netmonitor.timings.ssl=TLS setup:
+
+# LOCALIZATION NOTE (netmonitor.timings.connect): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "connect" state.
+netmonitor.timings.connect=Connecting:
+
+# LOCALIZATION NOTE (netmonitor.timings.send): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "send" state.
+netmonitor.timings.send=Sending:
+
+# LOCALIZATION NOTE (netmonitor.timings.wait): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "wait" state.
+netmonitor.timings.wait=Waiting:
+
+# LOCALIZATION NOTE (netmonitor.timings.receive): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "receive" state.
+netmonitor.timings.receive=Receiving:
+
+# LOCALIZATION NOTE (netmonitor.timings.learnMore): This is the label displayed
+# in the network details timings tab, with a link to external documentation
+netmonitor.timings.learnMore=Learn more about timings
+
+# LOCALIZATION NOTE (netmonitor.audits.slowIconTooltip): This is the tooltip text displayed
+# in the network request list file column, on the slow icon button.
+# %1$S is the waiting time %2$S is the slow threshold.
+netmonitor.audits.slowIconTooltip=Slow server response time (%1$S). The recommended limit is %2$S.
+
+# LOCALIZATION NOTE (netmonitor.security.warning.cipher): A tooltip
+# for warning icon that indicates a connection uses insecure cipher suite.
+netmonitor.security.warning.cipher=The cipher used for encryption is deprecated and insecure.
+
+# LOCALIZATION NOTE (netmonitor.security.error): This is the label displayed
+# in the security tab if a security error prevented the connection.
+netmonitor.security.error=An error occured:
+
+# LOCALIZATION NOTE (netmonitor.security.protocolVersion): This is the label displayed
+# in the security tab describing TLS/SSL protocol version.
+netmonitor.security.protocolVersion=Protocol version:
+
+# LOCALIZATION NOTE (netmonitor.security.cipherSuite): This is the label displayed
+# in the security tab describing the cipher suite used to secure this connection.
+netmonitor.security.cipherSuite=Cipher suite:
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup): This is the label displayed
+# in the security tab describing the key exchange group suite used to secure
+# this connection.
+netmonitor.security.keaGroup=Key Exchange Group:
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.none): This is the label
+# displayed in the security tab describing the case when no group was used.
+netmonitor.security.keaGroup.none=none
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.custom): This is the label
+# displayed in the security tab describing the case when a custom group was used.
+netmonitor.security.keaGroup.custom=custom
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.unknown): This is the value
+# displayed in the security tab describing an unknown group.
+netmonitor.security.keaGroup.unknown=unknown group
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme): This is the label
+# displayed in the security tab describing the signature scheme used by for
+# the server certificate in this connection.
+netmonitor.security.signatureScheme=Signature Scheme:
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.none): This is the
+# label displayed in the security tab describing the case when no signature
+# was used.
+netmonitor.security.signatureScheme.none=none
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.unknown): This is the
+# value displayed in the security tab describing an unknown signature scheme.
+netmonitor.security.signatureScheme.unknown=unknown signature scheme
+
+# LOCALIZATION NOTE (netmonitor.security.hsts): This is the label displayed
+# in the security tab describing the usage of HTTP Strict Transport Security.
+netmonitor.security.hsts=HTTP Strict Transport Security:
+
+# LOCALIZATION NOTE (netmonitor.security.hpkp): This is the label displayed
+# in the security tab describing the usage of Public Key Pinning.
+netmonitor.security.hpkp=Public Key Pinning:
+
+# LOCALIZATION NOTE (netmonitor.security.connection): This is the label displayed
+# in the security tab describing the section containing information related to
+# the secure connection.
+netmonitor.security.connection=Connection:
+
+# LOCALIZATION NOTE (netmonitor.security.certificate): This is the label displayed
+# in the security tab describing the server certificate section.
+netmonitor.security.certificate=Certificate:
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.tooltip): This is the label used
+# in the Network monitor panel as a tooltip for tracking resource icon.
+netmonitor.trackingResource.tooltip=This URL matches a known tracker and it would be blocked with Content Blocking enabled.
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.enhancedTrackingProtection): This is
+# the label used in the Network monitor panel for showing enhanced tracking protection.
+netmonitor.trackingResource.enhancedTrackingProtection=Enhanced Tracking Protection
+
+# LOCALIZATION NOTE (netmonitor.enhancedTrackingProtection.learnMore): This is the label
+# displayed in the network details headers tab, with a link to external documentation for
+# enhanced tracking protection.
+netmonitor.enhancedTrackingProtection.learnMore=Learn more about enhanced tracking protection
+
+# LOCALIZATION NOTE (netmonitor.context.copyValue): This is the label displayed
+# for the copy sub-menu in the context menu for a request
+netmonitor.context.copyValue=Copy Value
+
+# LOCALIZATION NOTE (netmonitor.context.copyValue.accesskey): This is the access key
+# for the copy menu/sub-menu displayed in the context menu for a request
+netmonitor.context.copyValue.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl): This is the label displayed
+# on the context menu that copies the selected request's url
+netmonitor.context.copyUrl=Copy URL
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl.accesskey): This is the access key
+# for the Copy URL menu item displayed in the context menu for a request
+netmonitor.context.copyUrl.accesskey=U
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams): This is the label displayed
+# on the context menu that copies the selected request's url parameters
+netmonitor.context.copyUrlParams=Copy URL Parameters
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams.accesskey): This is the access key
+# for the Copy URL Parameters menu item displayed in the context menu for a request
+netmonitor.context.copyUrlParams.accesskey=P
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestData): This is the label displayed
+# on the context menu that copies the selected request's data
+netmonitor.context.copyRequestData=Copy %S Data
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestData.accesskey): This is the access key
+# for the Copy POST/PATCH/PUT/DELETE Data menu item displayed in the context menu for a request
+netmonitor.context.copyRequestData.accesskey=D
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsPowerShell): This is the label displayed
+# on the context menu that copies the selected request as a PowerShell command.
+netmonitor.context.copyAsPowerShell=Copy as PowerShell
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsPowerShell.accesskey): This is the access key
+# for the Copy as PowerShell menu item displayed in the context menu for a request
+netmonitor.context.copyAsPowerShell.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl): This is the label displayed
+# on the context menu that copies the selected request as a cURL command.
+# The capitalization is part of the official name and should be used throughout all languages.
+# http://en.wikipedia.org/wiki/CURL
+netmonitor.context.copyAsCurl=Copy as cURL
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl.accesskey): This is the access key
+# for the Copy as cURL menu item displayed in the context menu for a request
+netmonitor.context.copyAsCurl.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl.*): This is the template used to add
+# a target platform to the label for "Copy as cURL" command
+# e.g. Copy as cURL (Windows)
+# Localized label for "Copy as cURL": %S
+netmonitor.context.copyAsCurl.win=%S (Windows)
+netmonitor.context.copyAsCurl.win.accesskey=C
+netmonitor.context.copyAsCurl.posix=%S (POSIX)
+netmonitor.context.copyAsCurl.posix.accesskey=P
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsFetch): This is the label displayed
+# on the context menu that copies the selected request as a fetch request.
+netmonitor.context.copyAsFetch=Copy as Fetch
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsFetch.accesskey): This is the access key
+# for the Copy as fetch menu item displayed in the context menu for a request
+netmonitor.context.copyAsFetch.accesskey=F
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders): This is the label displayed
+# on the context menu that copies the selected item's request headers
+netmonitor.context.copyRequestHeaders=Copy Request Headers
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders.accesskey): This is the access key
+# for the Copy Request Headers menu item displayed in the context menu for a request
+netmonitor.context.copyRequestHeaders.accesskey=Q
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders): This is the label displayed
+# on the context menu that copies the selected item's response headers
+netmonitor.context.copyResponseHeaders=Copy Response Headers
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders.accesskey): This is the access key
+# for the Copy Response Headers menu item displayed in the context menu for a response
+netmonitor.context.copyResponseHeaders.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse): This is the label displayed
+# on the context menu that copies the selected response as a string
+netmonitor.context.copyResponse=Copy Response
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse.accesskey): This is the access key
+# for the Copy Response menu item displayed in the context menu for a request
+netmonitor.context.copyResponse.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri): This is the label displayed
+# on the context menu that copies the selected image as data uri
+netmonitor.context.copyImageAsDataUri=Copy Image as Data URI
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri.accesskey): This is the access key
+# for the Copy Image As Data URI menu item displayed in the context menu for a request
+netmonitor.context.copyImageAsDataUri.accesskey=I
+
+# LOCALIZATION NOTE (netmonitor.context.useAsFetch): This is the label displayed
+# on the context menu that copies the selected request as a fetch command.
+netmonitor.context.useAsFetch=Use as Fetch in Console
+
+# LOCALIZATION NOTE (netmonitor.context.useAsFetch.accesskey): This is the access key
+# for the Copy as fetch menu item displayed in the context menu for a request
+netmonitor.context.useAsFetch.accesskey=F
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs): This is the label displayed
+# on the context menu that save the Image
+netmonitor.context.saveImageAs=Save Image As
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs.accesskey): This is the access key
+# for the Copy Image As Data URI menu item displayed in the context menu for a request
+netmonitor.context.saveImageAs.accesskey=V
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll): This is the label displayed
+# on the context menu that copies all data
+netmonitor.context.copyAll=Copy All
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll.accesskey): This is the access key
+# for the Copy All menu item displayed in the context menu for a properties view panel
+netmonitor.context.copyAll.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar): This is the label displayed
+# on the context menu that copies all as HAR format
+netmonitor.context.copyAllAsHar=Copy All As HAR
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar.accesskey): This is the access key
+# for the Copy All As HAR menu item displayed in the context menu for a network panel
+netmonitor.context.copyAllAsHar.accesskey=O
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar): This is the label displayed
+# on the context menu that saves all as HAR format
+netmonitor.context.saveAllAsHar=Save All As HAR
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar.accesskey): This is the access key
+# for the Save All As HAR menu item displayed in the context menu for a network panel
+netmonitor.context.saveAllAsHar.accesskey=H
+
+# LOCALIZATION NOTE (netmonitor.context.importHar.accesskey): This is the access key
+# for the Import HAR menu item displayed in the context menu for a network panel
+netmonitor.context.importHar.accesskey=I
+
+# LOCALIZATION NOTE (netmonitor.har.importHarDialogTitle): This is a label
+# used for import file open dialog
+netmonitor.har.importHarDialogTitle=Import HAR File
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogHARFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogHARFilter=HAR Files
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogAllFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogAllFilter=All Files
+
+# LOCALIZATION NOTE (netmonitor.context.resend.label): This is the label displayed
+# on the context menu that resends the currently displayed request immediately
+netmonitor.context.resend.label=Resend
+
+# LOCALIZATION NOTE (netmonitor.context.resend.accesskey): This is the access key
+# for the "Resend" menu item displayed in the context menu for a request
+netmonitor.context.resend.accesskey=n
+
+# LOCALIZATION NOTE (netmonitor.context.editAndResend): This is the label displayed
+# on the context menu that opens a form to edit and resend the currently
+# displayed request
+netmonitor.context.editAndResend=Edit and Resend
+
+# LOCALIZATION NOTE (netmonitor.context.editAndResend.accesskey): This is the access key
+# for the "Edit and Resend" menu item displayed in the context menu for a request
+netmonitor.context.editAndResend.accesskey=E
+
+# LOCALIZATION NOTE (netmonitor.context.blockURL): This is the label displayed
+# on the context menu that blocks any requests matching the selected request's URL.
+netmonitor.context.blockURL=Block URL
+
+# LOCALIZATION NOTE (netmonitor.context.unblockURL): This is the label displayed
+# on the context menu that unblocks any requests matching the selected request's URL.
+netmonitor.context.unblockURL=Unblock URL
+
+# LOCALIZATION NOTE (netmonitor.context.newTab): This is the label
+# for the Open in New Tab menu item displayed in the context menu of the
+# network container
+netmonitor.context.newTab=Open in New Tab
+
+# LOCALIZATION NOTE (netmonitor.context.newTab.accesskey): This is the access key
+# for the Open in New Tab menu item displayed in the context menu of the
+# network container
+netmonitor.context.newTab.accesskey=T
+
+# LOCALIZATION NOTE (netmonitor.context.openInDebugger): This is the label
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInDebugger=Open in Debugger
+
+# LOCALIZATION NOTE (netmonitor.context.openInDebugger.accesskey): This is the access key
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInDebugger.accesskey=D
+
+# LOCALIZATION NOTE (netmonitor.context.openInStyleEditor): This is the label
+# for the Open in Style Editor menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInStyleEditor=Open in Style Editor
+
+# LOCALIZATION NOTE (netmonitor.context.openInStyleEditor.accesskey): This is
+# the access key for the Open in Style Editor menu item displayed in the
+# context menu of the network container
+netmonitor.context.openInStyleEditor.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools): This is the label displayed
+# on the context menu that shows the performance analysis tools
+netmonitor.context.perfTools=Start Performance Analysis…
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools.accesskey): This is the access key
+# for the performance analysis menu item displayed in the context menu for a request
+netmonitor.context.perfTools.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequest): This is the label displayed
+# as the title of the new custom request form
+netmonitor.custom.newRequest=New Request
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestMethodLabel): This is the label displayed
+# above the method text input field of the new custom request form
+netmonitor.custom.newRequestMethodLabel=Method
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestUrlLabel): This is the label displayed
+# above the url text input field of the new custom request form
+netmonitor.custom.newRequestUrlLabel=URL
+
+# LOCALIZATION NOTE (netmonitor.custom.query): This is the label displayed
+# above the query string entry in the custom request form
+netmonitor.custom.query=Query String:
+
+# LOCALIZATION NOTE (netmonitor.custom.urlParameters): This is the label displayed
+# above the query string entry in the custom request form
+netmonitor.custom.urlParameters=URL Parameters
+
+# LOCALIZATION NOTE (netmonitor.custom.headers): This is the label displayed
+# above the request headers entry in the custom request form
+netmonitor.custom.headers=Request Headers:
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestHeaders): This is the label displayed
+# above the request headers entry in the new custom request form
+netmonitor.custom.newRequestHeaders=Headers
+
+# LOCALIZATION NOTE (netmonitor.custom.placeholder.name): This is the placeholder displayed
+# on the input on the headers and query params on new custom request form
+netmonitor.custom.placeholder.name=name
+
+# LOCALIZATION NOTE (netmonitor.custom.placeholder.value): This is the placeholder displayed
+# on the input on the headers and query params on new custom request form
+netmonitor.custom.placeholder.value=value
+
+# LOCALIZATION NOTE (netmonitor.custom.postBody): This is the label displayed
+# above the request body entry in the new custom request form
+netmonitor.custom.postBody=Body
+
+# LOCALIZATION NOTE (netmonitor.custom.postBody.placeholder): This is the placeholder displayed
+# on the textarea body in the new custom request form
+netmonitor.custom.postBody.placeholder=payload
+
+# LOCALIZATION NOTE (netmonitor.custom.postData): This is the label displayed
+# above the request body entry in the custom request form
+netmonitor.custom.postData=Request Body:
+
+# LOCALIZATION NOTE (netmonitor.custom.send): This is the label displayed
+# on the button which sends the custom request
+netmonitor.custom.send=Send
+
+# LOCALIZATION NOTE (netmonitor.custom.cancel): This is the label displayed
+# on the button which cancels and closes the custom request form
+netmonitor.custom.cancel=Cancel
+
+# LOCALIZATION NOTE (netmonitor.custom.clear): This is the label displayed
+# on the button which clears the content of the new custom request panel
+netmonitor.custom.clear=Clear
+
+# LOCALIZATION NOTE (netmonitor.custom.removeItem): This is the
+# tooltip shown over the remove button for headers and query params item
+netmonitor.custom.removeItem=Remove item
+
+# LOCALIZATION NOTE (netmonitor.backButton): This is the label displayed
+# on the button which exists the performance statistics view
+netmonitor.backButton=Back
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.simple): This is the tooltip of the
+# column status code, when request is not being cached or is not from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.simple = %1$S %2$S
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.cached): This is the tooltip of
+# the column status code, when the request is cached
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.cached = %1$S %2$S (cached)
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.worker): This is the tooltip of
+# the column status code, when the request is from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.worker = %1$S %2$S (service worker)
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.cachedworker): This is the tooltip
+# of the column status code, when the request is cached and is from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.cachedworker = %1$S %2$S (cached, service worker)
+
+# LOCALIZATION NOTE (netmonitor.label.dropHarFiles): This is a label
+# rendered within the Network panel when *.har file(s) are dragged
+# over the content.
+netmonitor.label.dropHarFiles = Drop HAR files here
+
+# LOCALIZATION NOTE (netmonitor.label.har): This is a label used
+# as a tooltip for toolbar drop-down button with HAR actions
+netmonitor.label.har=HAR Export/Import
+
+# LOCALIZATION NOTE (netmonitor.cache.cache): This is the label text for the parent
+# node in the TreeView.
+netmonitor.cache.cache=Cache
+
+# LOCALIZATION NOTE (netmonitor.cache.empty): This is the text displayed when cache
+# information is not available.
+netmonitor.cache.empty=No cache information
+
+# LOCALIZATION NOTE (netmonitor.cache.notAvailable): This is the text displayed under
+# a node that has no information available.
+netmonitor.cache.notAvailable=Not Available
+
+# LOCALIZATION NOTE (netmonitor.cache.dataSize): This is the label text for
+# the datasize of the cached object.
+netmonitor.cache.dataSize=Data Size
+
+# LOCALIZATION NOTE (netmonitor.cache.expires): This is the label text for the
+# expires time of the cached object.
+netmonitor.cache.expires=Expires
+
+# LOCALIZATION NOTE (netmonitor.cache.fetchCount): This is the label text for the
+# fetch count of the cached object.
+netmonitor.cache.fetchCount=Fetch Count
+
+# LOCALIZATION NOTE (netmonitor.cache.lastFetched): This is the label text for the
+# last fetched date/time of the cached object.
+netmonitor.cache.lastFetched=Last Fetched
+
+# LOCALIZATION NOTE (netmonitor.cache.lastModified): This is the label text for the
+# last modified date/time of the cached object.
+netmonitor.cache.lastModified=Last Modified
+
+# LOCALIZATION NOTE (netmonitor.cache.device): This is the label text for the device
+# where a cached object was fetched from (e.g. "disk").
+netmonitor.cache.device=Device
+
+# LOCALIZATION NOTE (netmonitor.settings.menuTooltip): This is the tooltip that gets displayed
+# when the settings menu button is hovered.
+netmonitor.settings.menuTooltip=Network Settings
+
+# LOCALIZATION NOTE (netmonitor.settings.importHarTooltip): This is the tooltip that gets displayed
+# when the HAR import menu item is hovered
+netmonitor.settings.importHarTooltip=Import a HAR file of network data
+
+# LOCALIZATION NOTE (netmonitor.settings.saveHarTooltip): This is the tooltip that gets displayed
+# when the HAR save menu item is hovered
+netmonitor.settings.saveHarTooltip=Save network data to HAR file
+
+# LOCALIZATION NOTE (netmonitor.settings.copyHarTooltip): This is the tooltip that gets displayed
+# when the HAR copy menu item is hovered
+netmonitor.settings.copyHarTooltip=Copy network data to the clipboard
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/network-throttling.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/network-throttling.properties
new file mode 100644
index 0000000000..d4a70016ae
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/network-throttling.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the NetworkThrottlingMenu
+# component used to throttle network bandwidth.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (responsive.noThrottling): UI option in a menu to configure
+# network throttling. This option is the default and disables throttling so you
+# just have normal network conditions. There is not very much room in the UI
+# so a short string would be best if possible.
+responsive.noThrottling=No throttling
+
+# LOCALIZATION NOTE (throttling.profile.description): Tooltip for the throttling
+# menu button, which gives details about the currently selected profile.
+# %1$S: Download speed value (number)
+# %2$S: Download speed unit (eg "Kbps", "Mbps")
+# %3$S: Upload speed value (number)
+# %4$S: Upload speed unit (eg "Kbps", "Mbps")
+# %5$S: Latency value, (number, in ms)
+throttling.profile.description = download %1$S%2$S, upload %3$S%4$S, latency %5$Sms
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/responsive.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/responsive.properties
new file mode 100644
index 0000000000..5ae29b9a5d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/responsive.properties
@@ -0,0 +1,182 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Responsive Design Mode,
+# available from the Web Developer sub-menu -> 'Responsive Design Mode'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Responsive Design Mode,
+# available from the Browser Tools sub-menu -> 'Responsive Design Mode'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (responsive.editDeviceList2): Context menu item displayed in the
+# device selector.
+responsive.editDeviceList2=Edit List…
+
+# LOCALIZATION NOTE (responsive.exit): Tooltip text of the exit button.
+responsive.exit=Close Responsive Design Mode
+
+# LOCALIZATION NOTE (responsive.rotate): Tooltip text of the rotate button.
+responsive.rotate=Rotate viewport
+
+# LOCALIZATION NOTE (responsive.responsiveMode): Placeholder text for the
+# device selector.
+responsive.responsiveMode=Responsive
+
+# LOCALIZATION NOTE (responsive.enableTouch): Tooltip text for the touch
+# simulation button when it's disabled.
+responsive.enableTouch=Enable touch simulation
+
+# LOCALIZATION NOTE (responsive.disableTouch): Tooltip text for the touch
+# simulation button when it's enabled.
+responsive.disableTouch=Disable touch simulation
+
+# LOCALIZATION NOTE (responsive.screenshot): Tooltip of the screenshot button.
+responsive.screenshot=Take a screenshot of the viewport
+
+# LOCALIZATION NOTE (responsive.screenshotGeneratedFilename): The auto generated
+# filename.
+# The first argument (%1$S) is the date string in yyyy-mm-dd format and the
+# second argument (%2$S) is the time string in HH.MM.SS format.
+responsive.screenshotGeneratedFilename=Screen Shot %1$S at %2$S
+
+# LOCALIZATION NOTE (responsive.remoteOnly): Message displayed in the tab's
+# notification box if a user tries to open Responsive Design Mode in a
+# non-remote tab.
+responsive.remoteOnly=Responsive Design Mode is only available for remote browser tabs, such as those used for web content in multi-process Firefox.
+
+# LOCALIZATION NOTE (responsive.changeDevicePixelRatio): Tooltip for the
+# device pixel ratio dropdown when is enabled.
+responsive.changeDevicePixelRatio=Change device pixel ratio of the viewport
+
+# LOCALIZATION NOTE (responsive.devicePixelRatio.auto): Tooltip for the device pixel ratio
+# dropdown when it is disabled because a device is selected.
+# The argument (%1$S) is the selected device (e.g. iPhone 6) that set
+# automatically the device pixel ratio value.
+responsive.devicePixelRatio.auto=Device pixel ratio automatically set by %1$S
+
+# LOCALIZATION NOTE (responsive.customDeviceName): Default value in a form to
+# add a custom device based on an arbitrary size (no association to an existing
+# device).
+responsive.customDeviceName=Custom Device
+
+# LOCALIZATION NOTE (responsive.customDeviceNameFromBase): Default value in a
+# form to add a custom device based on the properties of another. %1$S is the
+# name of the device we're staring from, such as "Apple iPhone 6".
+responsive.customDeviceNameFromBase=%1$S (Custom)
+
+# LOCALIZATION NOTE (responsive.addDevice2): Button text that reveals a form to
+# be used for adding custom devices.
+responsive.addDevice2=Add Custom Device…
+
+# LOCALIZATION NOTE (responsive.deviceAdderName): Label of form field for the
+# name of a new device.
+responsive.deviceAdderName=Name
+
+# LOCALIZATION NOTE (responsive.deviceAdderSize): Label of form field for the
+# size of a new device.
+responsive.deviceAdderSize=Size
+
+# LOCALIZATION NOTE (responsive.deviceAdderPixelRatio2): Label of form field for
+# the device pixel ratio of a new device.
+responsive.deviceAdderPixelRatio2=Device Pixel Ratio
+
+# LOCALIZATION NOTE (responsive.deviceAdderUserAgent2): Label of form field for
+# the user agent of a new device.
+responsive.deviceAdderUserAgent2=User Agent String
+
+# LOCALIZATION NOTE (responsive.deviceAdderTouch2): Label of form field for the
+# touch input support of a new device.
+responsive.deviceAdderTouch2=Touch Screen
+
+# LOCALIZATION NOTE (responsive.deviceAdderSave): Button text that submits a
+# form to add a new device.
+responsive.deviceAdderSave=Save
+
+# LOCALIZATION NOTE (responsive.deviceAdderCancel): Button text that cancels a
+# form to add a new device.
+responsive.deviceAdderCancel=Cancel
+
+# LOCALIZATION NOTE (responsive.deviceDetails): Tooltip that appears when
+# hovering on a device in the device modal. %1$S is the width of the device.
+# %2$S is the height of the device. %3$S is the device pixel ratio value of the
+# device. %4$S is the user agent of the device. %5$S is a boolean value
+# noting whether touch input is supported.
+responsive.deviceDetails=Size: %1$S x %2$S\nDPR: %3$S\nUA: %4$S\nTouch: %5$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.browserAndOS): Used to display the browser
+# and the OS in a tooltip that appears when hovering on a device in the device modal.
+# %1$S: browser
+# %2$S: OS
+responsive.deviceDetails.browserAndOS=%1$S on %2$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.size): Used to display the pixel
+# size in a tooltip that appears when hovering on a device in the device modal.
+# %1$S: width
+# %2$S: height
+responsive.deviceDetails.size=Size: %1$S x %2$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.DPR): Used to display the DPR in a tooltip
+# that appears when hovering on a device in the device modal.
+# %1$S: device pixel ratio
+responsive.deviceDetails.DPR=DPR: %1$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.UA): Used to display the UA in a tooltip
+# that appears when hovering on a device in the device modal.
+# %1$S: user agent
+responsive.deviceDetails.UA=UA: %1$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.touch): Used to display a boolean value
+# which is whether the touch input is supported or not in a tooltip that appears when
+# hovering on a device in the device modal.
+# %1$S: touch
+responsive.deviceDetails.touch=Touch: %1$S
+
+# LOCALIZATION NOTE (responsive.devicePixelRatioOption): UI option in a menu to configure
+# the device pixel ratio. %1$S is the devicePixelRatio value of the device.
+responsive.devicePixelRatioOption=DPR: %1$S
+
+# LOCALIZATION NOTE (responsive.reloadConditions.touchSimulation): Label on checkbox used
+# to select whether to reload when touch simulation is toggled.
+responsive.reloadConditions.touchSimulation=Reload when touch simulation is toggled
+
+# LOCALIZATION NOTE (responsive.reloadConditions.userAgent): Label on checkbox used
+# to select whether to reload when user agent is changed.
+responsive.reloadConditions.userAgent=Reload when user agent is changed
+
+# LOCALIZATION NOTE (responsive.reloadNotification.description2): Text in notification bar
+# shown on first open to clarify that some features need a reload to apply.
+responsive.reloadNotification.description2=Device simulation changes require a reload to fully apply. Automatic reloads are disabled by default to avoid losing any changes in DevTools. You can enable reloading via the Settings menu.
+
+# LOCALIZATION NOTE (responsive.leftAlignViewport): Label on checkbox used in the settings
+# menu.
+responsive.leftAlignViewport=Left-align Viewport
+
+# LOCALIZATION NOTE (responsive.customUserAgent): This is the placeholder for the user
+# agent input in the responsive design mode toolbar.
+responsive.customUserAgent=Custom User Agent
+
+responsive.showUserAgentInput=Show user agent
+
+# LOCALIZATION NOTE (responsive.deviceSettings): The header text for the device settings
+# view.
+responsive.deviceSettings=Device Settings
+
+# LOCALIZATION NOTE (responsive.deviceNameAlreadyInUse): This is the text shown when adding a new
+# device with an already existing device name.
+responsive.deviceNameAlreadyInUse=Device name already in use
+
+# LOCALIZATION NOTE (responsive.deviceFormUpdate): Button text that updates a custom
+# device when the form is submitted.
+responsive.deviceFormUpdate=Update
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/shared.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/shared.properties
new file mode 100644
index 0000000000..33dd145445
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/shared.properties
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dimensions): This is used to display the dimensions
+# of a node or image, like 100×200.
+dimensions=%S\u00D7%S
+
+# LOCALIZATION NOTE (boxModelSize.accessibleLabel): This is used to read the
+# dimensions of a node by a screen reader. This helps communicate
+# the visual information in a more explicit form. Example:
+# Size: Width 100, height 200.
+boxModelSize.accessibleLabel=Size: Width %1$S, height %2$S
+
+# LOCALIZATION NOTE (boxModelInfo.accessibleLabel): This is used to read the
+# dimensions and position of a node by a screen reader. This helps communicate
+# the visual information in a more explicit form. Example:
+# Dimensions: Width 100, height 200, position static.
+boxModelInfo.accessibleLabel=Dimensions: Width %1$S, height %2$S, position %3$S
+
+# LOCALIZATION NOTE (boxModelEditable.accessibleLabel): The string spoken by
+# screen readers for each button in the box model view that opens that property
+# for editing. %1$S is the property displayed in the tooltip when hovering.
+# %2$S is the value that is visually displayed.
+# Example: margin-left: 0.
+boxModelEditable.accessibleLabel=%1$S: %2$S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/sourceeditor.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/sourceeditor.properties
new file mode 100644
index 0000000000..0d4bd64f89
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/sourceeditor.properties
@@ -0,0 +1,117 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools - current examples are the
+# Scratchpad and the Style Editor tools.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools (like Style Editor).
+
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (findCmd.promptMessage): This is the message shown when
+# the user wants to search for a string in the code. You can
+# access this feature by pressing Ctrl-F on Windows/Linux or Cmd-F on Mac.
+findCmd.promptMessage=Search for:
+
+# LOCALIZATION NOTE (gotoLineCmd.promptTitle): This is the dialog title used
+# when the user wants to jump to a specific line number in the code. You can
+# access this feature by pressing Ctrl-J on Windows/Linux or Cmd-J on Mac.
+gotoLineCmd.promptTitle=Go to line…
+
+# LOCALIZATION NOTE (autocompletion.docsLink): This is the text shown on
+# the link inside of the documentation popup. If you type 'document' in Scratchpad
+# then press Shift+Space you can see the popup.
+autocompletion.docsLink=docs
+
+# LOCALIZATION NOTE (autocompletion.notFound): This is the text shown in
+# the documentation popup if Tern fails to find a type for the object.
+autocompletion.notFound=not found
+
+# LOCALIZATION NOTE (jumpToLine.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to jump to
+# a specific line in the editor.
+jumpToLine.commandkey=J
+
+# LOCALIZATION NOTE (toggleComment.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to either
+# comment or uncomment selected lines in the editor.
+toggleComment.commandkey=/
+
+# LOCALIZATION NOTE (indentLess.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to reduce
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools so we disable it.
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentLess.commandkey=[
+
+# LOCALIZATION NOTE (indentMore.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to increase
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentMore.commandkey=]
+
+# LOCALIZATION NOTE (moveLineUp.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Up", or change the format of the string. These are key
+# identifiers, not messages displayed to the user.
+moveLineUp.commandkey=Alt-Up
+
+# LOCALIZATION NOTE (moveLineDown.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Down", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+moveLineDown.commandkey=Alt-Down
+
+# LOCALIZATION NOTE (autocompletion.commandkey): This is the key, used with
+# Ctrl, for code autocompletion.
+# Do not localize "Space", it's the key identifier, not a message displayed to
+# the user.
+autocompletion.commandkey=Space
+
+# LOCALIZATION NOTE (showInformation2.commandkey): This is the combination of
+# keys used to display more information, like type inference.
+# Do not localize "Shift", "Ctrl", "Space", or change the format of the string.
+# These are key identifiers, not messages displayed to the user.
+showInformation2.commandkey=Shift-Ctrl-Space
+
+# LOCALIZATION NOTE (find.key):
+# Key shortcut used to find the typed search
+# Do not localize "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAll.key):
+# Key shortcut used to replace the content of the editor
+# Do not localize "Shift", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAll.key=Shift+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAllMac.key):
+# Key shortcut used to replace the content of the editor on Mac
+# Do not localize "Alt", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAllMac.key=Alt+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (findNext.key):
+# Key shortcut used to find again the typed search
+# Do not localize "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findNext.key=CmdOrCtrl+G
+
+# LOCALIZATION NOTE (findPrev.key):
+# Key shortcut used to find the previous typed search
+# Do not localize "Shift", "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findPrev.key=Shift+CmdOrCtrl+G
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/startup.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/startup.properties
new file mode 100644
index 0000000000..c5fc62b2e0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/startup.properties
@@ -0,0 +1,248 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (optionsButton.tooltip): This is used as the tooltip
+# for the options panel tab.
+optionsButton.tooltip=Toolbox Options
+
+# LOCALIZATION NOTE (options.label): This is used as the label of the tab in
+# the devtools window.
+options.label=Options
+
+# LOCALIZATION NOTE (options.panelLabel): This is used as the label for the
+# toolbox panel.
+options.panelLabel=Toolbox Options Panel
+
+# LOCALIZATION NOTE (options.darkTheme.label2)
+# Used as a label for dark theme
+options.darkTheme.label2=Dark
+
+# LOCALIZATION NOTE (options.lightTheme.label2)
+# Used as a label for light theme
+options.lightTheme.label2=Light
+
+# LOCALIZATION NOTE (performance.label):
+# This string is displayed in the title of the tab when the profiler is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+performance.label=Performance
+
+# LOCALIZATION NOTE (performance.panelLabel):
+# This is used as the label for the toolbox panel.
+performance.panelLabel=Performance Panel
+
+# LOCALIZATION NOTE (performance.accesskey)
+# Used for the menuitem in the tool menu
+performance.accesskey=P
+
+# LOCALIZATION NOTE (performance.tooltip):
+# This string is displayed in the tooltip of the tab when the profiler is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Performance Tools will be shown inside brackets.
+performance.tooltip=Performance (%S)
+
+# LOCALIZATION NOTE (MenuWebconsole.label): the string displayed in the Tools
+# menu as a shortcut to open the devtools with the Web Console tab selected.
+MenuWebconsole.label=Web Console
+
+# LOCALIZATION NOTE (ToolboxTabWebconsole.label): the string displayed as the
+# label of the tab in the devtools window.
+ToolboxTabWebconsole.label=Console
+
+# LOCALIZATION NOTE (ToolboxWebConsole.panelLabel): the string used as the
+# label for the toolbox panel.
+ToolboxWebConsole.panelLabel=Console Panel
+
+# LOCALIZATION NOTE (ToolboxWebconsole.tooltip2): the string displayed in the
+# tooltip of the tab when the Web Console is displayed inside the developer
+# tools window.
+# Keyboard shortcut for Console will be shown inside the brackets.
+ToolboxWebconsole.tooltip2=Web Console (%S)
+
+webConsoleCmd.accesskey=W
+
+# LOCALIZATION NOTE (ToolboxDebugger.label):
+# This string is displayed in the title of the tab when the debugger is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxDebugger.label=Debugger
+
+# LOCALIZATION NOTE (ToolboxDebugger.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxDebugger.panelLabel=Debugger Panel
+
+# LOCALIZATION NOTE (ToolboxDebugger.tooltip4):
+# This string is displayed in the tooltip of the tab when the debugger is
+# displayed inside the developer tools window.
+ToolboxDebugger.tooltip4=JavaScript Debugger (%S)
+
+# LOCALIZATION NOTE (debuggerMenu.accesskey)
+# Used for the menuitem in the tool menu
+debuggerMenu.accesskey=D
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.label):
+# This string is displayed in the title of the tab when the style editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxStyleEditor.label=Style Editor
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxStyleEditor.panelLabel=Style Editor Panel
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.tooltip3):
+# This string is displayed in the tooltip of the tab when the style editor is
+# displayed inside the developer tools window.
+# A keyboard shortcut for Stylesheet Editor will be shown inside the latter pair of brackets.
+ToolboxStyleEditor.tooltip3=Stylesheet Editor (CSS) (%S)
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+open.accesskey=l
+
+# LOCALIZATION NOTE (inspector.*)
+# Used for the menuitem in the tool menu
+inspector.label=Inspector
+inspector.accesskey=I
+
+# LOCALIZATION NOTE (inspector.panelLabel)
+# Labels applied to the panel and views within the panel in the toolbox
+inspector.panelLabel=Inspector Panel
+
+# LOCALIZATION NOTE (inspector.tooltip2)
+# Keyboard shortcut for DOM and Style Inspector will be shown inside brackets.
+inspector.tooltip2=DOM and Style Inspector (%S)
+
+# LOCALIZATION NOTE (inspector.mac.tooltip)
+# This is the exact same string as inspector.tooltip2, except that we show it
+# on mac only, where we support toggling the inspector with either cmd+shift+C,
+# or cmd+opt+C
+inspector.mac.tooltip=DOM and Style Inspector (%1$S or %2$S)
+
+# LOCALIZATION NOTE (netmonitor.label):
+# This string is displayed in the title of the tab when the Network Monitor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+netmonitor.label=Network
+
+# LOCALIZATION NOTE (netmonitor.panelLabel):
+# This is used as the label for the toolbox panel.
+netmonitor.panelLabel=Network Panel
+
+# LOCALIZATION NOTE (netmonitor.accesskey)
+# Used for the menuitem in the tool menu
+netmonitor.accesskey=N
+
+# LOCALIZATION NOTE (netmonitor.tooltip2):
+# This string is displayed in the tooltip of the tab when the Network Monitor is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Network Monitor will be shown inside the brackets.
+netmonitor.tooltip2=Network Monitor (%S)
+
+# LOCALIZATION NOTE (storage.accesskey): The access key used to open the storage
+# editor.
+storage.accesskey=a
+
+# LOCALIZATION NOTE (storage.label):
+# This string is displayed as the label of the tab in the developer tools window
+storage.label=Storage
+
+# LOCALIZATION NOTE (storage.menuLabel):
+# This string is displayed in the Tools menu as a shortcut to open the devtools
+# with the Storage Inspector tab selected.
+storage.menuLabel=Storage Inspector
+
+# LOCALIZATION NOTE (storage.panelLabel):
+# This string is used as the aria-label for the iframe of the Storage Inspector
+# tool in developer tools toolbox.
+storage.panelLabel=Storage Panel
+
+# LOCALIZATION NOTE (storage.tooltip3):
+# This string is displayed in the tooltip of the tab when the storage editor is
+# displayed inside the developer tools window.
+# A keyboard shortcut for Storage Inspector will be shown inside the brackets.
+storage.tooltip3=Storage Inspector (Cookies, Local Storage, …) (%S)
+
+# LOCALIZATION NOTE (memory.label): This string is displayed in the title of the
+# tab when the memory tool is displayed inside the developer tools window and in
+# the Developer Tools Menu.
+memory.label=Memory
+
+# LOCALIZATION NOTE (memory.panelLabel): This is used as the label for the
+# toolbox panel.
+memory.panelLabel=Memory Panel
+
+# LOCALIZATION NOTE (memory.tooltip): This string is displayed in the tooltip of
+# the tab when the memory tool is displayed inside the developer tools window.
+memory.tooltip=Memory
+
+# LOCALIZATION NOTE (dom.label):
+# This string is displayed in the title of the tab when the DOM panel is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+dom.label=DOM
+
+# LOCALIZATION NOTE (dom.panelLabel):
+# This is used as the label for the toolbox panel.
+dom.panelLabel=DOM Panel
+
+# LOCALIZATION NOTE (dom.accesskey)
+# Used for the menuitem in the tool menu
+dom.accesskey=D
+
+# LOCALIZATION NOTE (dom.tooltip):
+# This string is displayed in the tooltip of the tab when the DOM is
+# displayed inside the developer tools window.
+# Keyboard shortcut for DOM panel will be shown inside the brackets.
+dom.tooltip=DOM (%S)
+
+# LOCALIZATION NOTE (accessibility.label):
+# This string is displayed in the title of the tab when the Accessibility panel
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+accessibility.label=Accessibility
+
+# LOCALIZATION NOTE (accessibility.panelLabel):
+# This is used as the label for the toolbox panel.
+accessibility.panelLabel=Accessibility Panel
+
+# LOCALIZATION NOTE (accessibility.accesskey)
+# Used for the menuitem in the tool menu
+accessibility.accesskey=y
+
+# LOCALIZATION NOTE (accessibility.tooltip3):
+# This string is displayed in the tooltip of the tab when the Accessibility is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Accessibility panel will be shown inside the brackets.
+accessibility.tooltip3=Accessibility (%S)
+
+# LOCALIZATION NOTE (application.label):
+# This string is displayed in the title of the tab when the Application panel
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+application.label=Application
+
+# LOCALIZATION NOTE (application.panelLabel):
+# This is used as the label for the toolbox panel.
+application.panelLabel=Application Panel
+
+# LOCALIZATION NOTE (application.tooltip):
+# This string is displayed in the tooltip of the tab when the Application panel is
+# displayed inside the developer tools window.
+application.tooltip=Application Panel
+
+# LOCALIZATION NOTE (toolbox.buttons.responsive):
+# This is the tooltip of the button in the toolbox toolbar that toggles
+# the Responsive mode.
+# Keyboard shortcut will be shown inside brackets.
+toolbox.buttons.responsive = Responsive Design Mode (%S)
+
+# LOCALIZATION NOTE (toolbox.buttons.screenshot):
+# This is the tooltip of the button in the toolbox toolbar that allows you to
+# take a screenshot of the entire page
+toolbox.buttons.screenshot = Take a screenshot of the entire page
+
+# LOCALIZATION NOTE (toolbox.buttons.rulers):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# rulers in the page
+toolbox.buttons.rulers = Toggle rulers for the page
+
+# LOCALIZATION NOTE (toolbox.buttons.measure):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# measuring tools
+toolbox.buttons.measure = Measure a portion of the page
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/styleeditor.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/styleeditor.properties
new file mode 100644
index 0000000000..a1f9b1e897
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/styleeditor.properties
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Style Editor.
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (inlineStyleSheet): This is the name used for an style sheet
+# that is declared inline in the <style> element. Shown in the stylesheets list.
+# the argument is the index (order) of the containing <style> element in the
+# document.
+inlineStyleSheet=<inline style sheet #%S>
+
+# LOCALIZATION NOTE (newStyleSheet): This is the default name for a new
+# user-created style sheet.
+newStyleSheet=New style sheet #%S
+
+# LOCALIZATION NOTE (ruleCount.label): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is shown in the style sheets list.
+# #1 rule.
+# example: 111 rules.
+ruleCount.label=#1 rule.;#1 rules.
+
+# LOCALIZATION NOTE (error-load): This is shown when loading fails.
+error-load=Style sheet could not be loaded.
+
+# LOCALIZATION NOTE (error-save): This is shown when saving fails.
+error-save=Style sheet could not be saved.
+
+# LOCALIZATION NOTE (importStyleSheet.title): This is the file picker title,
+# when you import a style sheet into the Style Editor.
+importStyleSheet.title=Import style sheet
+
+# LOCALIZATION NOTE (importStyleSheet.filter): This is the *.css filter title
+importStyleSheet.filter=CSS files
+
+# LOCALIZATION NOTE (saveStyleSheet.title): This is the file picker title,
+# when you save a style sheet from the Style Editor.
+saveStyleSheet.title=Save style sheet
+
+# LOCALIZATION NOTE (saveStyleSheet.filter): This is the *.css filter title
+saveStyleSheet.filter=CSS files
+
+# LOCALIZATION NOTE (saveStyleSheet.commandkey): This the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to Save
+saveStyleSheet.commandkey=S
+
+# LOCALIZATION NOTE (focusFilterInput.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to focus the
+# filter input. Don't use "F" as it's used by the CodeMirror editor to perform an
+# in-file search; if possible, keep it the same as sources.search.key2.
+focusFilterInput.commandkey=P
+
+# LOCALIZATION NOTE (showOriginalSources.label): This is the label on the context
+# menu item to toggle showing original sources in the editor.
+showOriginalSources.label=Show original sources
+
+# LOCALIZATION NOTE (showOriginalSources.accesskey): This is the access key for
+# the menu item to toggle showing original sources in the editor.
+showOriginalSources.accesskey=o
+
+# LOCALIZATION NOTE (showAtRulesSidebar.label): This is the label on the context
+# menu item to toggle showing at-rules shortcuts in a sidebar.
+# "@media" and "@supports" should not be translated as they are CSS rule identifiers.
+showAtRulesSidebar.label=Show At-rules Sidebar (@media, @supports, …)
+
+# LOCALIZATION NOTE (showAtRulesSidebar.accesskey): This is the access key for
+# the menu item to toggle showing the at-rules sidebar.
+showAtRulesSidebar.accesskey=a
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/toolbox.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/toolbox.properties
new file mode 100644
index 0000000000..0be5cf1bb6
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/toolbox.properties
@@ -0,0 +1,267 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (toolbox.titleTemplate1): This is the template
+# used to format the title of the toolbox.
+# The URL of the page being targeted: %1$S.
+toolbox.titleTemplate1=Developer Tools — %1$S
+
+# LOCALIZATION NOTE (toolbox.titleTemplate2): This is the template
+# used to format the title of the toolbox.
+# The page title or other name for the thing being targeted: %1$S
+# The URL of the page being targeted: %2$S.
+toolbox.titleTemplate2=Developer Tools — %1$S — %2$S
+
+# LOCALIZATION NOTE (toolbox.multiProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` is true.
+# This Browser Toolbox allows to debug the parent process as well as the content
+# processes in the same toolbox.
+toolbox.multiProcessBrowserToolboxTitle=Multiprocess Browser Toolbox
+
+# LOCALIZATION NOTE (toolbox.parentProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` and
+# `devtools.browsertoolbox.scope` is set to "parent-process".
+# This Browser Toolbox allows to debug only the parent process resources.
+toolbox.parentProcessBrowserToolboxTitle=Parent process Browser Toolbox
+
+# LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
+# name when no tool is selected.
+toolbox.defaultTitle=Developer Tools
+
+# LOCALIZATION NOTE (toolbox.label): This is used as the label for the
+# toolbox as a whole
+toolbox.label=Developer Tools
+
+# LOCALIZATION NOTE (options.autoTheme.label)
+# Used as a label for auto theme
+options.autoTheme.label=Auto
+
+# LOCALIZATION NOTE (options.toolNotSupportedMarker): This is the template
+# used to add a * marker to the label for the Options Panel tool checkbox for the
+# tool which is not supported for the current toolbox target.
+# The name of the tool: %1$S.
+options.toolNotSupportedMarker=%1$S *
+
+# LOCALIZATION NOTE (toolbox.pickButton.tooltip)
+# This is the tooltip of the element picker button in the toolbox toolbar.
+# %S is the keyboard shortcut that toggles the element picker.
+toolbox.elementPicker.tooltip=Pick an element from the page (%S)
+
+# LOCALIZATION NOTE (toolbox.pickButton.mac.tooltip)
+# Like toolbox.pickButton.tooltip, but for macOS there are two possible keyboard
+# shortcuts: Cmd+Shift+C or Cmd+Opt+C
+toolbox.elementPicker.mac.tooltip=Pick an element from the page (%1$S or %2$S)
+
+# LOCALIZATION NOTE (toolbox.androidElementPicker.tooltip)
+# This is the tooltip of the element picker button in the about:devtools-toolbox toolbox toolbar
+# when debugging an Android device
+# %S is the keyboard shortcut that toggles the element picker.
+toolbox.androidElementPicker.tooltip=Pick an element from the Android phone (%S)
+
+# LOCALIZATION NOTE (toolbox.androidElementPicker.mac.tooltip)
+# Like toolbox.androidElementPicker.tooltip, but for macOS as there are two possible keyboard
+# shortcuts (Cmd+Shift+C or Cmd+Opt+C)
+# %1$S and %2$S are the keyboard shortcuts that toggle the element picker.
+toolbox.androidElementPicker.mac.tooltip=Pick an element from the Android phone (%1$S or %2$S)
+
+# LOCALIZATION NOTE (toolbox.elementPicker.key)
+# Key shortcut used to toggle the element picker.
+toolbox.elementPicker.key=CmdOrCtrl+Shift+C
+
+# LOCALIZATION NOTE (toolbox.elementPicker.mac.key)
+# Key shortcut used to toggle the element picker for macOS.
+toolbox.elementPicker.mac.key=Cmd+Opt+C
+
+# LOCALIZATION NOTE (toolbox.viewCssSourceInStyleEditor.label)
+# Used as a message in either tooltips or contextual menu items to open the
+# corresponding URL as a css file in the Style-Editor tool.
+# DEV NOTE: Mostly used wherever toolbox.viewSourceInStyleEditorByXX is used.
+toolbox.viewCssSourceInStyleEditor.label=Open File in Style-Editor
+
+# LOCALIZATION NOTE (toolbox.viewJsSourceInDebugger.label)
+# Used as a message in either tooltips or contextual menu items to open the
+# corresponding URL as a js file in the Debugger tool.
+# DEV NOTE: Mostly used wherever toolbox.viewSourceInDebugger is used.
+toolbox.viewJsSourceInDebugger.label=Open File in Debugger
+
+toolbox.resumeOrderWarning=Page did not resume after the debugger was attached. To fix this, please close and re-open the toolbox.
+
+# LOCALIZATION NOTE (toolbox.help.key)
+# Key shortcut used to open the options panel
+toolbox.help.key=F1
+
+# LOCALIZATION NOTE (toolbox.nextTool.key)
+# Key shortcut used to select the next tool
+toolbox.nextTool.key=CmdOrCtrl+]
+
+# LOCALIZATION NOTE (toolbox.previousTool.key)
+# Key shortcut used to select the previous tool
+toolbox.previousTool.key=CmdOrCtrl+[
+
+# LOCALIZATION NOTE (toolbox.zoom*.key)
+# Key shortcuts used to zomm in/out or reset the toolbox
+# Should match full-zoom-*-shortcut values from browserSets.ftl
+toolbox.zoomIn.key=CmdOrCtrl+Plus
+toolbox.zoomIn2.key=CmdOrCtrl+=
+
+toolbox.zoomOut.key=CmdOrCtrl+-
+toolbox.zoomOut2.key=
+
+toolbox.zoomReset.key=CmdOrCtrl+0
+toolbox.zoomReset2.key=
+
+# LOCALIZATION NOTE (toolbox.reload*.key)
+# Key shortcuts used to reload the page
+toolbox.reload.key=CmdOrCtrl+R
+toolbox.reload2.key=F5
+
+# LOCALIZATION NOTE (toolbox.forceReload*.key)
+# Key shortcuts used to force reload of the page by bypassing caches
+toolbox.forceReload.key=CmdOrCtrl+Shift+R
+toolbox.forceReload2.key=CmdOrCtrl+F5
+
+# LOCALIZATION NOTE (toolbox.toggleHost.key)
+# Key shortcut used to move the toolbox in bottom or side of the browser window
+toolbox.toggleHost.key=CmdOrCtrl+Shift+D
+
+# LOCALIZATION NOTE (toolbox.closeToolbox.key) Key shortcut used to close the toolbox
+toolbox.closeToolbox.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (toolbox.toggleToolbox.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolbox.key=CmdOrCtrl+Shift+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxOSX.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxOSX.key=CmdOrCtrl+Alt+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxF12.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxF12.key=F12
+
+# LOCALIZATION NOTE (toolbox.frames.tooltip): This is the label for
+# the iframes menu list that appears only when the document has some.
+# It allows you to switch the context of the whole toolbox.
+toolbox.frames.tooltip=Select an iframe as the currently targeted document
+
+# LOCALIZATION NOTE (toolbox.frames.disabled.tooltip): This is the title
+# displayed as a tooltip of the iframes menu button, when disabled. The button
+# is normally hidden when no frames are available. But if the user is on the
+# DevTools Options panel, the button is always shown for discoverability.
+toolbox.frames.disabled.tooltip=This button is only available on pages with several iframes
+
+# LOCALIZATION NOTE (toolbox.showFrames.key)
+# Key shortcut used to show frames menu when 'frames' button is focused
+toolbox.showFrames.key=Alt+Down
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.button.tooltip): This is the tooltip
+# for the "..." button on the developer tools toolbox.
+toolbox.meatballMenu.button.tooltip=Customize Developer Tools and get help
+
+# LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
+# the close button the developer tools toolbox.
+toolbox.closebutton.tooltip=Close Developer Tools
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
+# the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Show Split Console
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
+# will be used for the error count button in the devTools settings panel.
+toolbox.errorCountButton.description=Show the number of errors on the page
+
+# LOCALIZATION NOTE (toolbox.sourceMapFailure): This is shown in the web console
+# when there is a failure to fetch or parse a source map.
+# The text of the error: %1$S
+# The URL that caused DevTools to try to fetch a source map: %2$S
+# The URL of the source map itself: %3$S
+toolbox.sourceMapFailure=Source map error: %1$S\nResource URL: %2$S\nSource Map URL: %3$S
+
+# LOCALIZATION NOTE (toolbox.sourceMapSourceFailure): This is shown in
+# the web console when there is a failure to fetch or parse an
+# original source that was mentioned in a source map.
+# The text of the error: %1$S
+# The URL of the source: %2$S
+toolbox.sourceMapSourceFailure=Error while fetching an original source: %1$S\nSource URL: %2$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.runtimeLabel): This is displayed as a toolbox
+# header in about:devtools-toolbox. about:devtools-toolbox is used for instance when
+# inspecting tabs in about:debugging.
+# e.g. Mozilla Fennec (65.0a1)
+# The name of runtime: %1$S
+# The version of runtime: %2$S
+toolbox.debugTargetInfo.runtimeLabel=%1$S (%2$S)
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.runtimeLabel.thisRuntime): this is displayed
+# as a toolbox header in about:devtools-toolbox, when inspecting the current Firefox runtime
+# (for instance, when inspecting one of its tabs in about:debugging)
+# e.g. This Firefox (65.0a1)
+# The name of the current runtime/application (brandShorterName): %1$S
+# The version of runtime: %2$S
+toolbox.debugTargetInfo.runtimeLabel.thisRuntime=This %1$S (%2$S)
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleRemote):
+# Used as the tab title for about:devtools-toolbox when connected to a remote target.
+# The connection type (see toolbox.debugTargetInfo.connection.*): %1$S
+# The target type (see toolbox.debugTargetInfo.targetType.*): %2$S
+# The target name (retrieved from DevTools, eg the extension's name): %3$S
+toolbox.debugTargetInfo.tabTitleRemote=Toolbox (%1$S) - %2$S / %3$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleLocal):
+# Used as the tab title for about:devtools-toolbox when connected to This Firefox.
+# The target type (see toolbox.debugTargetInfo.targetType.*): %1$S
+# The target name (retrieved from DevTools, eg the extension's name): %2$S
+toolbox.debugTargetInfo.tabTitleLocal=Toolbox - %1$S / %2$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleError):
+# Used as the tab title for about:devtools-toolbox when it failed to connect to the
+# target.
+toolbox.debugTargetInfo.tabTitleError=Toolbox - error occurred
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.connection.*): This is displayed in the
+# toolbox header in about:devtools-toolbox, to indicate how the connection to the
+# runtime being inspected was made.
+toolbox.debugTargetInfo.connection.usb=USB
+toolbox.debugTargetInfo.connection.network=Network
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.reload):
+# Used as the reload button tooltip
+toolbox.debugTargetInfo.reload=Reload
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.forward):
+# Used as the navigation's "forward" button tooltip
+toolbox.debugTargetInfo.forward=Forward
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.back):
+# Used as the navigation's "back" button tooltip
+toolbox.debugTargetInfo.back=Back
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.targetType.*): This is displayed as the
+# alt attribute for an icon in the toolbox header in about:devtools-toolbox,
+# to indicate what is the type of the debug target being inspected.
+toolbox.debugTargetInfo.targetType.extension=Extension
+toolbox.debugTargetInfo.targetType.process=Process
+toolbox.debugTargetInfo.targetType.tab=Tab
+toolbox.debugTargetInfo.targetType.worker=Worker
+
+# LOCALIZATION NOTE (browserToolbox.statusMessage): This is the label
+# shown next to status details when the Browser Toolbox fails to connect or
+# appears to be taking a while to do so.
+browserToolbox.statusMessage=Browser Toolbox connection status:
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.title): This is the title
+# for the Error view shown by the toolbox when a connection to a debug target
+# could not be made
+toolbox.debugTargetErrorPage.title = Error
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.description): This is the
+# text that appears in the Error view and explains to the user that an error
+# has happened while trying to connect to a debug target
+toolbox.debugTargetErrorPage.description = Cannot connect to the debug target. See error details below:
+
+# LOCALIZATION NOTE (options.deprecationNotice): This is the text that appears in the
+# settings panel for panel that will be removed in future releases.
+# This entire text is treated as a link to an MDN page.
+options.deprecationNotice=Deprecated. Learn More…
+
+# LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
+# settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
+options.enableMultiProcessToolbox=Enable the Multiprocess Browser Toolbox (requires restarting the Browser Toolbox)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/webconsole.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/webconsole.properties
new file mode 100644
index 0000000000..5961f37d7d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/client/webconsole.properties
@@ -0,0 +1,601 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# LOCALIZATION NOTE
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (multiProcessBrowserConsole.title): Title of the Browser
+# Console window when the pref `devtools.browsertoolbox.scope` is set to "everything". This
+# Browser Console will log messages from all processes, not just the the parent
+# process.
+multiProcessBrowserConsole.title=Multiprocess Browser Console
+
+# LOCALIZATION NOTE (parentProcessBrowserConsole.title): Title used for
+# the Browser Console when the pref `devtools.browsertoolbox.scope` is set to "parent-process".
+parentProcessBrowserConsole.title=Parent process Browser Console
+
+# LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
+# %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
+timestampFormat=%02S:%02S:%02S.%03S
+
+ConsoleAPIDisabled=The Web Console logging API (console.log, console.info, console.warn, console.error) has been disabled by a script on this page.
+
+# LOCALIZATION NOTE (webConsoleXhrIndicator): the indicator displayed before
+# a URL in the Web Console that was requested using an XMLHttpRequest.
+webConsoleXhrIndicator=XHR
+
+# LOCALIZATION NOTE (webConsoleMoreInfoLabel): the more info tag displayed
+# after security related web console messages.
+webConsoleMoreInfoLabel=Learn More
+
+# LOCALIZATION NOTE (stacktrace.anonymousFunction): this string is used to
+# display JavaScript functions that have no given name - they are said to be
+# anonymous. Test console.trace() in the webconsole.
+stacktrace.anonymousFunction=<anonymous>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+stacktrace.asyncStack=(Async: %S)
+
+# LOCALIZATION NOTE (timeLog): this string is used to display the result of
+# the console.timeLog() call. Parameters: %1$S is the name of the timer, %2$S
+# is the number of milliseconds.
+timeLog=%1$S: %2$Sms
+
+# LOCALIZATION NOTE (console.timeEnd): this string is used to display the result of
+# the console.timeEnd() call. Parameters: %1$S is the name of the timer, %2$S
+# is the number of milliseconds.
+console.timeEnd=%1$S: %2$Sms - timer ended
+
+# LOCALIZATION NOTE (consoleCleared): this string is displayed when receiving a
+# call to console.clear() to let the user know the previous messages of the
+# console have been removed programmatically.
+consoleCleared=Console was cleared.
+
+# LOCALIZATION NOTE (preventedConsoleClear): this string is displayed when receiving a
+# call to console.clear() when the user has the "Persist logs" option enabled, to let the
+# user know the console method call was ignored.
+# "Persist Logs" should be kept in sync with webconsole.console.settings.menu.item.enablePersistentLogs.label
+preventedConsoleClear=console.clear() was prevented due to “Persist Logs”
+
+# LOCALIZATION NOTE (noCounterLabel): this string is used to display
+# count-messages with no label provided.
+noCounterLabel=<no label>
+
+# LOCALIZATION NOTE (counterDoesntExist): this string is displayed when
+# console.countReset() is called with a counter that doesn't exist.
+counterDoesntExist=Counter “%S” doesn’t exist.
+
+# LOCALIZATION NOTE (noGroupLabel): this string is used to display
+# console.group messages with no label provided.
+noGroupLabel=<no group label>
+
+maxTimersExceeded=The maximum allowed number of timers in this page was exceeded.
+timerAlreadyExists=Timer “%S” already exists.
+timerDoesntExist=Timer “%S” doesn’t exist.
+timerJSError=Failed to process the timer name.
+
+# LOCALIZATION NOTE (connectionTimeout): message displayed when the Remote Web
+# Console fails to connect to the server due to a timeout.
+connectionTimeout=Connection timeout. Check the Error Console on both ends for potential error messages. Reopen the Web Console to try again.
+
+# LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
+# appears in the filter text box for the properties view container.
+propertiesFilterPlaceholder=Filter properties
+
+# LOCALIZATION NOTE (messageRepeats.tooltip2): the tooltip text that is displayed
+# when you hover the red bubble that shows how many times a message is repeated
+# in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of message repeats
+# example: 3 repeats
+messageRepeats.tooltip2=#1 repeat;#1 repeats
+
+# LOCALIZATION NOTE (openNodeInInspector): the text that is displayed in a
+# tooltip when hovering over the inspector icon next to a DOM Node in the console
+# output
+openNodeInInspector=Click to select the node in the inspector
+
+# LOCALIZATION NOTE (selfxss.msg): the text that is displayed when
+# a new user of the developer tools pastes code into the console
+# %1 is the text of selfxss.okstring
+selfxss.msg=Scam Warning: Take care when pasting things you don’t understand. This could allow attackers to steal your identity or take control of your computer. Please type ‘%S’ below (no need to press enter) to allow pasting.
+
+# LOCALIZATION NOTE (selfxss.okstring): the string to be typed
+# in by a new user of the developer tools when they receive the sefxss.msg prompt.
+# Please avoid using non-keyboard characters here
+selfxss.okstring=allow pasting
+
+# LOCALIZATION NOTE (evaluationNotifcation.noOriginalVariableMapping.msg): the text for the notification message that is displayed
+# in the console when the debugger is paused in a non-pretty printed original file and original variable mapping is turned off.
+# `Show original variables` should be kept in sync with the checkbox label in the Scopes panel header.
+evaluationNotifcation.noOriginalVariableMapping.msg=Original variables name mapping in the debugger is disabled. Evaluation results might not be accurate. Click the `Show original variables` checkbox in the debugger scopes panel to enable.
+
+# LOCALIZATION NOTE (messageToggleDetails): the text that is displayed when
+# you hover the arrow for expanding/collapsing the message details. For
+# console.error() and other messages we show the stacktrace.
+messageToggleDetails=Show/hide message details.
+
+# LOCALIZATION NOTE (groupToggle): the text that is displayed when
+# you hover the arrow for expanding/collapsing the messages of a group.
+groupToggle=Show/hide group.
+
+# LOCALIZATION NOTE (table.index, table.iterationIndex, table.key, table.value):
+# the column header displayed in the console table widget.
+table.index=(index)
+table.iterationIndex=(iteration index)
+table.key=Key
+table.value=Values
+
+# LOCALIZATION NOTE (level.error, level.warn, level.info, level.log, level.debug):
+# tooltip for icons next to console output
+level.error=Error
+level.warn=Warning
+level.info=Info
+level.log=Log
+level.debug=Debug
+
+# LOCALIZATION NOTE (logpoint.title)
+# Tooltip shown for logpoints sent from the debugger
+logpoint.title=Logpoints from the debugger
+
+# LOCALIZATION NOTE (logtrace.title)
+# Tooltip shown for JavaScript tracing logs
+logtrace.title=JavaScript tracing
+
+# LOCALIZATION NOTE (blockedReason.title)
+# Tooltip shown for blocked network events sent from the network panel
+blockedrequest.label=Blocked by DevTools
+
+# LOCALIZATION NOTE (webconsole.disableIcon.title)
+# Tooltip shown for disabled console messages
+webconsole.disableIcon.title=This message is no longer active, message details are not available
+
+# LOCALIZATION NOTE (command.title)
+# Tooltip shown for console input evaluated code displayed in the console output
+command.title=Evaluated code
+
+# LOCALIZATION NOTE (result.title)
+# Tooltip shown for evaluation result displayed in the console output
+result.title=Evaluation result
+
+# LOCALIZATION NOTE (webconsole.find.key)
+# Key shortcut used to focus the search box on upper right of the console
+webconsole.find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (webconsole.close.key)
+# Key shortcut used to close the Browser console (doesn't work in regular web console)
+webconsole.close.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (webconsole.clear.key*)
+# Key shortcut used to clear the console output
+webconsole.clear.key=Ctrl+Shift+L
+webconsole.clear.keyOSX=Ctrl+L
+webconsole.clear.alternativeKeyOSX=Cmd+K
+
+# LOCALIZATION NOTE (webconsole.menu.copyURL.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# copies the URL displayed in the message to the clipboard.
+webconsole.menu.copyURL.label=Copy Link Location
+webconsole.menu.copyURL.accesskey=a
+
+# LOCALIZATION NOTE (webconsole.menu.openURL.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# opens the URL displayed in a new browser tab.
+webconsole.menu.openURL.label=Open URL in New Tab
+webconsole.menu.openURL.accesskey=T
+
+# LOCALIZATION NOTE (webconsole.menu.openInNetworkPanel.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# opens the network message in the Network panel
+webconsole.menu.openInNetworkPanel.label=Open in Network Panel
+webconsole.menu.openInNetworkPanel.accesskey=N
+
+# LOCALIZATION NOTE (webconsole.menu.resendNetworkRequest.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# resends the network request
+webconsole.menu.resendNetworkRequest.label=Resend Request
+webconsole.menu.resendNetworkRequest.accesskey=n
+
+# LOCALIZATION NOTE (webconsole.menu.openNodeInInspector.label)
+# Label used for a context-menu item displayed for DOM Node logs. Clicking on it will
+# reveal that specific DOM Node in the Inspector.
+webconsole.menu.openNodeInInspector.label=Reveal in Inspector
+webconsole.menu.openNodeInInspector.accesskey=Q
+
+# LOCALIZATION NOTE (webconsole.menu.storeAsGlobalVar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# creates a new global variable pointing to the logged variable.
+webconsole.menu.storeAsGlobalVar.label=Store as global variable
+webconsole.menu.storeAsGlobalVar.accesskey=S
+
+# LOCALIZATION NOTE (webconsole.menu.copyMessage.label)
+# Label used for a context-menu item displayed for any log. Clicking on it will copy the
+# content of the log (or the user selection, if any).
+webconsole.menu.copyMessage.label=Copy message
+webconsole.menu.copyMessage.accesskey=C
+
+# LOCALIZATION NOTE (webconsole.menu.copyObject.label)
+# Label used for a context-menu item displayed for object/variable log. Clicking on it
+# will copy the object/variable.
+webconsole.menu.copyObject.label=Copy object
+webconsole.menu.copyObject.accesskey=o
+
+# LOCALIZATION NOTE (webconsole.menu.openInSidebar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# opens the webconsole sidebar for the logged variable.
+webconsole.menu.openInSidebar.label1=Inspect object in Sidebar
+webconsole.menu.openInSidebar.accesskey=V
+
+# LOCALIZATION NOTE (webconsole.menu.copyAllMessages.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# copies the entire output of the console to the clipboard.
+webconsole.menu.copyAllMessages.label=Copy all Messages
+webconsole.menu.copyAllMessages.accesskey=M
+
+# LOCALIZATION NOTE (webconsole.menu.saveAllMessagesFile.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# opens a file picker to allow the user save a file containing
+# the output of the console.
+webconsole.menu.saveAllMessagesFile.label=Save all Messages to File
+webconsole.menu.saveAllMessagesFile.accesskey=F
+
+# LOCALIZATION NOTE (webconsole.clearButton.tooltip)
+# Label used for the tooltip on the clear logs button in the console top toolbar bar.
+# Clicking on it will clear the content of the console.
+webconsole.clearButton.tooltip=Clear the Web Console output
+
+# LOCALIZATION NOTE (webconsole.toggleFilterButton.tooltip)
+# Label used for the tooltip on the toggle filter bar button in the console top
+# toolbar bar. Clicking on it will toggle the visibility of an additional bar which
+# contains filter buttons.
+webconsole.toggleFilterButton.tooltip=Toggle filter bar
+
+# LOCALIZATION NOTE (webconsole.filterInput.placeholder)
+# Label used for for the placeholder on the filter input, in the console top toolbar.
+webconsole.filterInput.placeholder=Filter output
+
+# LOCALIZATION NOTE (webconsole.errorsFilterButton.label)
+# Label used as the text of the "Errors" button in the additional filter toolbar.
+# It shows or hides error messages, either inserted in the page using
+# console.error() or as a result of a javascript error..
+webconsole.errorsFilterButton.label=Errors
+
+# LOCALIZATION NOTE (webconsole.warningsFilterButton.label)
+# Label used as the text of the "Warnings" button in the additional filter toolbar.
+# It shows or hides warning messages, inserted in the page using console.warn().
+webconsole.warningsFilterButton.label=Warnings
+
+# LOCALIZATION NOTE (webconsole.logsFilterButton.label)
+# Label used as the text of the "Logs" button in the additional filter toolbar.
+# It shows or hides log messages, inserted in the page using console.log().
+webconsole.logsFilterButton.label=Logs
+
+# LOCALIZATION NOTE (webconsole.infoFilterButton.label)
+# Label used as the text of the "Info" button in the additional filter toolbar.
+# It shows or hides info messages, inserted in the page using console.info().
+webconsole.infoFilterButton.label=Info
+
+# LOCALIZATION NOTE (webconsole.debugFilterButton.label)
+# Label used as the text of the "Debug" button in the additional filter toolbar.
+# It shows or hides debug messages, inserted in the page using console.debug().
+webconsole.debugFilterButton.label=Debug
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.label)
+# Label used as the text of the "CSS" button in the additional filter toolbar.
+# It shows or hides CSS warning messages, inserted in the page by the browser
+# when there are CSS errors in the page.
+webconsole.cssFilterButton.label=CSS
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.inactive.tooltip)
+# Label used as the tooltip of the "CSS" button in the additional filter toolbar, when the
+# filter is inactive (=unchecked).
+webconsole.cssFilterButton.inactive.tooltip=Stylesheets will be reparsed to check for errors. Refresh the page to also see errors from stylesheets modified from Javascript.
+
+# LOCALIZATION NOTE (webconsole.xhrFilterButton.label)
+# Label used as the text of the "XHR" button in the additional filter toolbar.
+# It shows or hides messages displayed when the page makes an XMLHttpRequest or
+# a fetch call.
+webconsole.xhrFilterButton.label=XHR
+
+# LOCALIZATION NOTE (webconsole.requestsFilterButton.label)
+# Label used as the text of the "Requests" button in the additional filter toolbar.
+# It shows or hides messages displayed when the page makes a network call, for example
+# when an image or a scripts is requested.
+webconsole.requestsFilterButton.label=Requests
+
+# LOCALIZATION NOTE (webconsole.filteredMessagesByText.label)
+# Text on the filter input displayed when some console messages are hidden because the
+# user has filled in the input.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# example: 345 hidden.
+webconsole.filteredMessagesByText.label=#1 hidden;#1 hidden
+
+# LOCALIZATION NOTE (webconsole.filteredMessagesByText.tooltip)
+# Tooltip on the filter input "hidden" text, displayed when some console messages are
+# hidden because the user has filled in the input.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# example: 345 items hidden by text filter.
+webconsole.filteredMessagesByText.tooltip=#1 item hidden by text filter;#1 items hidden by text filter
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.menuButton.tooltip)
+# Tooltip for the filter bar preferences menu. This menu will display multiple perefences for the
+# filter bar, such as enabling the compact toolbar mode, enable the timestamps, persist logs, etc
+webconsole.console.settings.menu.button.tooltip=Console Settings
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.compactToolbar.label)
+# Label for the `Compact Toolbar` preference option. This will turn the message filters buttons
+# into a Menu Button, making the filter bar more compact.
+webconsole.console.settings.menu.item.compactToolbar.label=Compact Toolbar
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.label)
+# Label for enabling the timestamps in the Web Console.
+webconsole.console.settings.menu.item.timestamps.label=Show Timestamps
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
+webconsole.console.settings.menu.item.timestamps.tooltip=If you enable this option commands and output in the Web Console will display a timestamp
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.label)
+# Label for grouping the similar messages in the Web Console
+webconsole.console.settings.menu.item.warningGroups.label=Group Similar Messages
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
+webconsole.console.settings.menu.item.warningGroups.tooltip=When enabled, similar messages are placed into groups
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.label)
+# Label for enabling autocomplete for input in the Web Console
+webconsole.console.settings.menu.item.autocomplete.label=Enable autocomplete
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
+webconsole.console.settings.menu.item.autocomplete.tooltip=If you enable this option the input will display suggestions as you type in it
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.label)
+webconsole.console.settings.menu.item.enablePersistentLogs.label=Persist Logs
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
+webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=If you enable this option the output will not be cleared each time you navigate to a new page
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.label)
+webconsole.console.settings.menu.item.instantEvaluation.label=Instant Evaluation
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
+webconsole.console.settings.menu.item.instantEvaluation.tooltip=If you enable this option the input will be instantly evaluated as you type in it
+
+# LOCALIZATION NOTE (browserconsole.enableNetworkMonitoring.label)
+# Label used in the browser console / browser toolbox console. This label is used for a checkbox that
+# allows the user enable monitoring of network requests.
+browserconsole.enableNetworkMonitoring.label=Enable Network Monitoring
+# LOCALIZATION NOTE (browserconsole.enableNetworkMonitoring.tooltip)
+# Tooltip for the "Enable Network Monitoring" check item.
+browserconsole.enableNetworkMonitoring.tooltip=Enable this to start listening to network requests
+
+# LOCALIZATION NOTE (webconsole.navigated): this string is used in the console when the
+# current inspected page is navigated to a new location.
+# Parameters: %S is the new URL.
+webconsole.navigated=Navigated to %S
+
+# LOCALIZATION NOTE (webconsole.closeSplitConsoleButton.tooltip): This is the tooltip for
+# the close button of the split console.
+webconsole.closeSplitConsoleButton.tooltip=Close Split Console (Esc)
+
+# LOCALIZATION NOTE (webconsole.closeSidebarButton.tooltip): This is the tooltip for
+# the close button of the sidebar.
+webconsole.closeSidebarButton.tooltip=Close Sidebar
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.input.placeHolder):
+# This string is displayed in the placeholder of the reverse search input in the console.
+webconsole.reverseSearch.input.placeHolder=Search history
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.closeButton.tooltip):
+# This string is displayed in the tooltip of the close button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.closeButton.tooltip=Close (%S)
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.results):
+# This string is displayed in the reverse search UI when there are at least one result
+# to the search.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 index of current search result displayed.
+# #2 total number of search results.
+webconsole.reverseSearch.results=1 result;#1 of #2 results
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.noResult):
+# This string is displayed in the reverse search UI when there is no results to the search.
+webconsole.reverseSearch.noResult=No results
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.previousButton.tooltip):
+# This string is displayed in the tooltip of the "previous result" button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.result.previousButton.tooltip=Previous result (%S)
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.nextButton.tooltip):
+# This string is displayed in the tooltip of the "next result" button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.result.nextButton.tooltip=Next result (%S)
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.label)
+# Label used for the "invoke getter" confirm dialog that appears in the console when
+# a user tries to autocomplete a property with a getter.
+# Example: given the following object `x = {get y() {}}`, when the user types `x.y.`, it
+# would return "Invoke getter y to retrieve the property list?".
+# Parameters: %S is the name of the getter.
+webconsole.confirmDialog.getter.label=Invoke getter %S to retrieve the property list?
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.invokeButtonLabelWithShortcut)
+# Label used for the confirm button in the "invoke getter" dialog that appears in the
+# console when a user tries to autocomplete a property with a getter.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.confirmDialog.getter.invokeButtonLabelWithShortcut=Invoke (%S)
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.closeButton.tooltip)
+# Label used as the tooltip for the close button in the "invoke getter" dialog that
+# appears in the console when a user tries to autocomplete a property with a getter.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.confirmDialog.getter.closeButton.tooltip=Close (%S)
+
+# LOCALIZATION NOTE (webconsole.cssWarningElements.label)
+# Label for the list of HTML elements matching the selector associated
+# with the CSS warning. Parameters: %S is the CSS selector.
+webconsole.cssWarningElements.label=Elements matching selector: %S
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.label)
+# Label displayed when the webconsole couldn't handle a given packet.
+# Parameters: %S is the URL to file a bug about the error.
+webconsole.message.componentDidCatch.label=[DEVTOOLS ERROR] We’re sorry, we couldn’t render the message. This shouldn’t have happened - please file a bug at %S with the message metadata in the description.
+
+# LOCALIZATION NOTE (webconsole.message.commands.copyValueToClipboard)
+# Label displayed when the string is copied to the clipboard as a result of a copy command,
+# in the console, for example, copy({hello: "world"}).
+webconsole.message.commands.copyValueToClipboard=String was copied to clipboard.
+
+# LOCALIZATION NOTE (webconsole.message.commands.startTracingToWebConsole)
+# Label displayed when :trace command was executed and the JavaScript tracer started to log to the web console.
+webconsole.message.commands.startTracingToWebConsole=Started tracing to Web Console
+
+# LOCALIZATION NOTE (webconsole.message.commands.startTracingToStdout)
+# Label displayed when :trace command was executed and the JavaScript tracer started to log to stdout.
+webconsole.message.commands.startTracingToStdout=Started tracing to stdout
+
+# LOCALIZATION NOTE (webconsole.message.commands.startTracingToProfiler)
+# Label displayed when :trace command was executed and the JavaScript tracer will open the profiler showing all the traces,
+# but only on stop.
+webconsole.message.commands.startTracingToProfiler=Started tracing to the Profiler. The traces will be displayed in the profiler on stop.
+
+# LOCALIZATION NOTE (webconsole.message.commands.stopTracing)
+# Label displayed when :trace command was executed and the JavaScript tracer stopped.
+webconsole.message.commands.stopTracing=Stopped tracing
+
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=`copy` command failed, object can’t be stringified: %S
+
+# LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
+# Label displayed when the :block <url> command is successful
+# Parameters: %S is the URL filter
+webconsole.message.commands.blockedURL=Requests to URL containing “%S” are now blocked
+
+# LOCALIZATION NOTE (webconsole.message.commands.unblockedURL)
+# Label displayed when the :unblock <url> command is successful
+# Parameters: %S is the URL filter
+webconsole.message.commands.unblockedURL=Removed blocking filter “%S”
+
+# LOCALIZATION NOTE (webconsole.messages.commands.blockArgMissing)
+# Message displayed when no filter is passed to block/unblock command
+webconsole.messages.commands.blockArgMissing=No filter was specified
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.copyButton.label)
+# Label displayed on the button next to the message we display when the webconsole
+# couldn't handle a given packet (See webconsole.message.componentDidCatch.label).
+webconsole.message.componentDidCatch.copyButton.label=Copy message metadata to clipboard
+
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.label)
+# Label used for the text of the execute button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.executeButton.label=Run
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip)
+# Label used for the tooltip on the reverse search button for opening the Reverse Search UI.
+# The Reverse Search is a feature that mimics the bash-like reverse search of
+# command history in WebConsole, searching commands from the last item backwards.
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip=Open History Reverse Search (%S)
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip)
+# Label used for the tooltip on the reverse search button for closing the Reverse Search UI.
+# The Reverse Search is a feature that mimics the bash-like reverse search of
+# command history in WebConsole, searching commands from the last item backwards.
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip=Close History Reverse Search (%S)
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the execute button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.executeButton.tooltip=Run expression (%S). This won’t clear the input.
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.prettyPrintButton.tooltip)
+# Label used for the tooltip on the prettyPrint button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.prettyPrintButton.tooltip=Pretty print expression
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history previous expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.prevExpressionButton.tooltip=Previous Expression
+
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history next expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.nextExpressionButton.tooltip=Next Expression
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.closeButton.tooltip2)
+# Label used for the tooltip on the close button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.closeButton.tooltip2=Switch back to inline mode (%S)
+
+# LOCALIZATION NOTE (webconsole.input.openEditorButton.tooltip2)
+# Label used for the tooltip on the open editor button, in console input, which is
+# displayed when the console is in regular mode.
+# Parameters: %S is the keyboard shortcut.
+webconsole.input.openEditorButton.tooltip2=Switch to multi-line editor mode (%S)
+
+# LOCALIZATION NOTE (webconsole.warningGroup.messageCount.tooltip): the tooltip text
+# displayed when you hover a warning group badge (i.e. repeated warning messages for a
+# given category, for example Content Blocked messages) in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of message in the group.
+# example: 3 messages
+webconsole.warningGroup.messageCount.tooltip=#1 message;#1 messages
+
+# LOCALIZATION NOTE (webconsole.input.editor.onboarding.label): the text that is displayed
+# when displaying the multiline-input mode for the first time, until the user dismiss the
+# text.
+# Parameters: %1$S is Enter key, %2$S is the shortcut to evaluate the expression (
+# Ctrl+Enter or Cmd+Enter on OSX).
+webconsole.input.editor.onboarding.label=Iterate on your code faster with the new multi-line editor mode. Use %1$S to add new lines and %2$S to run.
+
+# LOCALIZATION NOTE (webconsole.input.editor.onboarding.dismiss.label): the text that is
+# displayed in the multiline-input mode onboarding UI to dismiss it.
+webconsole.input.editor.onboarding.dismiss.label=Got it!
+
+# LOCALIZATION NOTE (webconsole.enterKey): The text that will be used to represent the
+# Enter key in the editor onboarding UI, as well as on the Editor toolbar "Run" button
+# tooltip.
+webconsole.enterKey=Enter
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFile): This is a label
+# used for opening a file in the console input (Ctrl+O or Cmd+O on OSX while
+# being focused on the input).
+webconsole.input.openJavaScriptFile=Open JavaScript File
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFileFilter):
+# This string is displayed as a filter when opening a file in the console input.
+webconsole.input.openJavaScriptFileFilter=JavaScript Files
+
+# LOCALIZATION NOTE (webconsole.input.selector.top): This is the term used
+# to describe the primary thread of execution in the page
+webconsole.input.selector.top=Top
+
+# LOCALIZATION NOTE (webconsole.input.selector.tooltip): This is the tooltip
+# shown when users select a thread that they want to evaluate an
+# expression for.
+webconsole.input.selector.tooltip=Select evaluation context
+
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Some cookies are misusing the “SameSite“ attribute, so it won’t work as expected
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Some cookies are misusing the recommended “SameSite“ attribute
+
+# LOCALIZATION NOTE (webconsole.group.csp): do not translate
+# 'Content-Security-Policy', as that's the name of the header.
+webconsole.group.csp=Content-Security-Policy warnings
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/accessibility.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/accessibility.properties
new file mode 100644
index 0000000000..849299620a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/accessibility.properties
@@ -0,0 +1,142 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio): A title text for the color contrast
+# ratio description, used by the accessibility highlighter to display the value. %S in the
+# content will be replaced by the contrast ratio numerical value.
+accessibility.contrast.ratio=Kontrasti: %S
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.ratio.error=Ei voida määrittää
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.label): A title text for the color
+# contrast ratio description, used together with the actual values.
+accessibility.contrast.ratio.label=Kontrasti:
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.label.large): A title text for the color
+# contrast ratio description that also specifies that the color contrast criteria used is
+# if for large text.
+accessibility.contrast.ratio.label.large=Kontrasti (suuri teksti):
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.area): A title text that
+# describes that currently selected accessible object for an <area> element must have
+# its name provided via the alt attribute.
+accessibility.text.label.issue.area = Use “alt” attribute to label “area” elements that have the “href” attribute.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.dialog): A title text that
+# describes that currently selected accessible object for a dialog should have a name
+# provided.
+accessibility.text.label.issue.dialog = Dialogs should be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.document.title): A title text that
+# describes that currently selected accessible object for a document must have a name
+# provided via title.
+accessibility.text.label.issue.document.title = Documents must have a title.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.embed): A title text that
+# describes that currently selected accessible object for an <embed> must have a name
+# provided.
+accessibility.text.label.issue.embed = Embedded content must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.figure): A title text that
+# describes that currently selected accessible object for a figure should have a name
+# provided.
+accessibility.text.label.issue.figure = Figures with optional captions should be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided.
+accessibility.text.label.issue.fieldset = “fieldset” elements must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset.legend2): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided via <legend> element.
+accessibility.text.label.issue.fieldset.legend2 = Use a “legend” element to label a “fieldset”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.form): A title text that
+# describes that currently selected accessible object for a form element must have a name
+# provided.
+accessibility.text.label.issue.form = Form elements must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.form.visible): A title text that
+# describes that currently selected accessible object for a form element should have a name
+# provided via a visible label/element.
+accessibility.text.label.issue.form.visible = Form elements should have a visible text label.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.frame): A title text that
+# describes that currently selected accessible object for a <frame> must have a name
+# provided.
+accessibility.text.label.issue.frame = “frame” elements must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.glyph): A title text that
+# describes that currently selected accessible object for a <mglyph> must have a name
+# provided via alt attribute.
+accessibility.text.label.issue.glyph = Use “alt” attribute to label “mglyph” elements.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.heading): A title text that
+# describes that currently selected accessible object for a heading must have a name
+# provided.
+accessibility.text.label.issue.heading = Headings must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.heading.content): A title text that
+# describes that currently selected accessible object for a heading must have visible
+# content.
+accessibility.text.label.issue.heading.content = Headings should have visible text content.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.iframe): A title text that
+# describes that currently selected accessible object for an <iframe> have a name
+# provided via title attribute.
+accessibility.text.label.issue.iframe = Use “title” attribute to describe “iframe” content.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.image): A title text that
+# describes that currently selected accessible object for graphical content must have a
+# name provided.
+accessibility.text.label.issue.image = Content with images must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.interactive): A title text that
+# describes that currently selected accessible object for interactive element must have a
+# name provided.
+accessibility.text.label.issue.interactive = Interactive elements must be labeled.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.optgroup.label2): A title text that
+# describes that currently selected accessible object for an <optgroup> must have a
+# name provided via label attribute.
+accessibility.text.label.issue.optgroup.label2 = Use a “label” attribute to label an “optgroup”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.toolbar): A title text that
+# describes that currently selected accessible object for a toolbar must have a
+# name provided when there is more than one toolbar in the document.
+accessibility.text.label.issue.toolbar = Toolbars must be labeled when there is more than one toolbar.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.semantics): A title text that
+# describes that currently selected accessible object is focusable and should
+# indicate that it could be interacted with.
+accessibility.keyboard.issue.semantics=Focusable elements should have interactive semantics.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.tabindex): A title text that
+# describes that currently selected accessible object has a corresponding
+# DOMNode that defines a tabindex attribute greater that 0 which can result in
+# unexpected behaviour when navigating with keyboard.
+accessibility.keyboard.issue.tabindex=Avoid using “tabindex” attribute greater than zero.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.action): A title text that
+# describes that currently selected accessible object is interactive but can not
+# be activated using keyboard or accessibility API.
+accessibility.keyboard.issue.action=Interactive elements must be able to be activated using a keyboard.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.focusable): A title text that
+# describes that currently selected accessible object is interactive but is not
+# focusable with a keyboard.
+accessibility.keyboard.issue.focusable=Interactive elements must be focusable.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.focus.visible): A title text
+# that describes that currently selected accessible object is focusable but
+# might not have appropriate focus styling.
+accessibility.keyboard.issue.focus.visible=Focusable element may be missing focus styling.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.mouse.only): A title text that
+# describes that currently selected accessible object is not focusable and not
+# semantic but can be activated via mouse (e.g. has click handler).
+accessibility.keyboard.issue.mouse.only=Clickable elements must be focusable and should have interactive semantics.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/debugger.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/debugger.properties
new file mode 100644
index 0000000000..70de56aa2b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/debugger.properties
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Web Developer sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Browser Tools sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptTitle=Incoming Connection
+
+# LOCALIZATION NOTE (remoteIncomingPromptHeader): Header displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptHeader=An incoming request to permit remote debugging connection was detected. A remote client can take complete control over your browser!
+# LOCALIZATION NOTE (remoteIncomingPromptClientEndpoint): Part of the prompt
+# dialog for the user to choose whether an incoming connection should be
+# allowed.
+# %1$S: The host and port of the client such as "127.0.0.1:6000"
+remoteIncomingPromptClientEndpoint=Client Endpoint: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptServerEndpoint): Part of the prompt
+# dialog for the user to choose whether an incoming connection should be
+# allowed.
+# %1$S: The host and port of the server such as "127.0.0.1:6000"
+remoteIncomingPromptServerEndpoint=Server Endpoint: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptFooter): Footer displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptFooter=Allow connection?
+
+# LOCALIZATION NOTE (remoteIncomingPromptDisable): The label displayed on the
+# third button in the incoming connection dialog that lets the user disable the
+# remote debugger server.
+remoteIncomingPromptDisable=Disable
+
+# LOCALIZATION NOTE (clientSendOOBTitle): The title displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBTitle=Client Identification
+# LOCALIZATION NOTE (clientSendOOBHeader): Header displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBHeader=The endpoint you are connecting to needs more information to authenticate this connection. Please provide the token below in the prompt that appears on the other end.
+# LOCALIZATION NOTE (clientSendOOBHash): Part of the dialog that instructs the
+# user to transfer an authentication token to the server.
+# %1$S: The client's cert fingerprint
+clientSendOOBHash=My Cert: %1$S
+# LOCALIZATION NOTE (clientSendOOBToken): Part of the dialog that instructs the
+# user to transfer an authentication token to the server.
+# %1$S: The authentication token that the user will transfer.
+clientSendOOBToken=Token: %1$S
+
+# LOCALIZATION NOTE (serverReceiveOOBTitle): The title displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBTitle=Provide Client Token
+# LOCALIZATION NOTE (serverReceiveOOBBody): Main text displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBBody=The client should be displaying a token value. Enter that token value here to complete authentication with this client.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/eyedropper.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/eyedropper.properties
new file mode 100644
index 0000000000..0f320ab37c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/eyedropper.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the Eyedropper color tool.
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE (colorValue.copied): This text is displayed when the user selects a
+# color with the eyedropper and it's copied to the clipboard.
+colorValue.copied=copied
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/screenshot.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/screenshot.properties
new file mode 100644
index 0000000000..6f669acdcb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/screenshot.properties
@@ -0,0 +1,148 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Web Console commands.
+# The Web Console command line is available from the Web Developer sub-menu
+# -> 'Web Console'.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Web Console commands
+# which can be executed in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (screenshotDesc) A very short description of the
+# 'screenshot' command. Displayed when the --help flag is passed to
+# the screenshot command.
+screenshotDesc=Save an image of the page
+
+# LOCALIZATION NOTE (screenshotFilenameDesc) A very short string to describe
+# the 'filename' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotFilenameDesc=Destination filename
+
+# LOCALIZATION NOTE (screenshotFilenameManual) A fuller description of the
+# 'filename' parameter to the 'screenshot' command.
+screenshotFilenameManual=The name of the file (should have a ‘.png’ extension) to which we write the screenshot.
+
+# LOCALIZATION NOTE (screenshotClipboardDesc) A very short string to describe
+# the 'clipboard' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotClipboardDesc=Copy screenshot to clipboard? (true/false)
+
+# LOCALIZATION NOTE (screenshotClipboardManual) A fuller description of the
+# 'clipboard' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotClipboardManual=True if you want to copy the screenshot instead of saving it to a file.
+
+# LOCALIZATION NOTE (screenshotGroupOptions) A label for the optional options of
+# the screenshot command. Displayed when the --help flag is passed to the
+# screenshot command.
+screenshotGroupOptions=Options
+
+# LOCALIZATION NOTE (screenshotDelayDesc) A very short string to describe
+# the 'delay' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotDelayDesc=Delay (seconds)
+
+# LOCALIZATION NOTE (screenshotDelayManual) A fuller description of the
+# 'delay' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotDelayManual=The time to wait (in seconds) before the screenshot is taken
+
+# LOCALIZATION NOTE (screenshotDPRDesc) A very short string to describe
+# the 'dpr' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotDPRDesc=Device pixel ratio
+
+# LOCALIZATION NOTE (screenshotDPRManual) A fuller description of the
+# 'dpr' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotDPRManual=The device pixel ratio to use when taking the screenshot
+
+# LOCALIZATION NOTE (screenshotFullPageDesc) A very short string to describe
+# the 'fullpage' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFullPageDesc=Entire webpage? (true/false)
+
+# LOCALIZATION NOTE (screenshotFullPageManual) A fuller description of the
+# 'fullpage' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFullPageManual=True if the screenshot should also include parts of the webpage which are outside the current scrolled bounds.
+
+# LOCALIZATION NOTE (screenshotFileDesc) A very short string to describe
+# the 'file' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFileDesc=Save to file? (true/false)
+
+# LOCALIZATION NOTE (screenshotFileManual) A fuller description of the
+# 'file' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFileManual=True if the screenshot should save the file even when other options are enabled (eg. clipboard).
+
+# LOCALIZATION NOTE (screenshotGeneratedFilename) The auto generated filename
+# when no file name is provided. The first argument (%1$S) is the date string
+# in yyyy-mm-dd format and the second argument (%2$S) is the time string
+# in HH.MM.SS format. Please don't add the extension here.
+screenshotGeneratedFilename=Screen Shot %1$S at %2$S
+
+# LOCALIZATION NOTE (screenshotErrorSavingToFile) Text displayed to user upon
+# encountering error while saving the screenshot to the file specified.
+# The argument (%1$S) is the filename.
+screenshotErrorSavingToFile=Error saving to %1$S
+
+# LOCALIZATION NOTE (screenshotSavedToFile) Text displayed to user when the
+# screenshot is successfully saved to the file specified.
+# The argument (%1$S) is the filename.
+screenshotSavedToFile=Saved to %1$S
+
+# LOCALIZATION NOTE (screenshotErrorCopying) Text displayed to user upon
+# encountering error while copying the screenshot to clipboard.
+screenshotErrorCopying=Error occurred while copying screenshot to clipboard.
+
+# LOCALIZATION NOTE (screenshotCopied) Text displayed to user when the
+# screenshot is successfully copied to the clipboard.
+screenshotCopied=Screenshot copied to clipboard.
+
+# LOCALIZATION NOTE (inspectNodeDesc) A very short string to describe the
+# 'node' parameter to the 'inspect' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+inspectNodeDesc=CSS selector
+
+# LOCALIZATION NOTE (inspectNodeManual) A fuller description of the 'node'
+# parameter to the 'inspect' command. Displayed when the --help flag is
+# passed to the `screenshot command.
+inspectNodeManual=A CSS selector for use with document.querySelector which identifies a single element
+
+# LOCALIZATION NOTE (screenshotTruncationWarning) Text displayed to user when the image
+# that would be created by the screenshot is too big and needs to be truncated to avoid
+# errors.
+# The first parameter is the width of the final image and the second parameter is the
+# height of the image.
+screenshotTruncationWarning=The image was cut off to %1$S×%2$S as the resulting image was too large
+
+# LOCALIZATION NOTE (screenshotDPRDecreasedWarning2) Text displayed to user when
+# taking the screenshot initially failed. When the Device Pixel Ratio is larger
+# than 1.0 a second try immediately after displaying this message is attempted.
+screenshotDPRDecreasedWarning=The device pixel ratio was reduced to 1 as the resulting image was too large
+
+# LOCALIZATION NOTE (screenshotRenderingError) Text displayed to user upon
+# encountering an error while rendering the screenshot. This most often happens when the
+# resulting image is too large to be rendered.
+screenshotRenderingError=Error creating the image. The resulting image was probably too large.
+
+# LOCALIZATION NOTE (screenshotNoSelectorMatchWarning) Text displayed to user when the
+# provided selector for the screenshot does not match any element on the page.
+# The argument (%1$S) is selector.
+screenshotNoSelectorMatchWarning=The ‘%S’ selector does not match any element on the page.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/shared.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/shared.properties
new file mode 100644
index 0000000000..0978450dee
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/shared.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (ellipsis): The ellipsis (three dots) character
+ellipsis=…
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/styleinspector.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/styleinspector.properties
new file mode 100644
index 0000000000..8de6f4a527
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/devtools/shared/styleinspector.properties
@@ -0,0 +1,267 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Style Inspector.
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+
+# LOCALIZATION NOTE (rule.status): For each style property the panel shows
+# the rules which hold that specific property. For every rule, the rule status
+# is also displayed: a rule can be the best match, a match, a parent match, or a
+# rule did not match the element the user has highlighted.
+rule.status.BEST=Best Match
+rule.status.MATCHED=Matched
+rule.status.PARENT_MATCH=Parent Match
+
+# LOCALIZATION NOTE (rule.sourceElement, rule.sourceInline,
+# rule.sourceConstructed): For each style property the panel shows the rules
+# which hold that specific property.
+# For every rule, the rule source is also displayed: a rule can come from a
+# file, from the same page (inline), from a constructed style sheet
+# (constructed), or from the element itself (element).
+rule.sourceInline=inline
+rule.sourceConstructed=constructed
+rule.sourceElement=element
+
+# LOCALIZATION NOTE (rule.inheritedFrom): Shown for CSS rules
+# that were inherited from a parent node. Will be passed a node
+# identifier of the parent node.
+# e.g "Inherited from body#bodyID"
+rule.inheritedFrom=Inherited from %S
+
+# LOCALIZATION NOTE (rule.keyframe): Shown for CSS Rules keyframe header.
+# Will be passed an identifier of the keyframe animation name.
+rule.keyframe=Keyframes %S
+
+# LOCALIZATION NOTE (rule.userAgentStyles): Shown next to the style sheet
+# link for CSS rules that were loaded from a user agent style sheet.
+# These styles will not be editable, and will only be visible if the
+# devtools.inspector.showUserAgentStyles pref is true.
+rule.userAgentStyles=(user agent)
+
+# LOCALIZATION NOTE (rule.pseudoElement): Shown for CSS rules
+# pseudo element header
+rule.pseudoElement=Pseudo-elements
+
+# LOCALIZATION NOTE (rule.selectedElement): Shown for CSS rules element header if
+# pseudo elements are present in the rule view.
+rule.selectedElement=This Element
+
+# LOCALIZATION NOTE (rule.warning.title): When an invalid property value is
+# entered into the rule view a warning icon is displayed. This text is used for
+# the title attribute of the warning icon.
+rule.warning.title=Invalid property value
+
+# LOCALIZATION NOTE (rule.warningName.title): When an invalid property name is
+# entered into the rule view a warning icon is displayed. This text is used for
+# the title attribute of the warning icon.
+rule.warningName.title=Invalid property name
+
+# LOCALIZATION NOTE (rule.filterProperty.title): Text displayed in the tooltip
+# of the search button that is shown next to a property that has been overridden
+# in the rule view.
+rule.filterProperty.title=Filter rules containing this property
+
+# LOCALIZATION NOTE (rule.empty): Text displayed when the highlighter is
+# first opened and there's no node selected in the rule view.
+rule.empty=No element selected.
+
+# LOCALIZATION NOTE (rule.variableValue): Text displayed in a tooltip
+# when the mouse is over a variable use (like "var(--something)") in
+# the rule view. The first argument is the variable name and the
+# second argument is the value.
+rule.variableValue=%S = %S
+
+# LOCALIZATION NOTE (rule.variableUnset): Text displayed in a tooltip
+# when the mouse is over a variable use (like "var(--something)"),
+# where the variable is not set. the rule view. The argument is the
+# variable name.
+rule.variableUnset=%S is not set
+
+# LOCALIZATION NOTE (rule.selectorHighlighter.tooltip): Text displayed in a
+# tooltip when the mouse is over a selector highlighter icon in the rule view.
+rule.selectorHighlighter.tooltip=Highlight all elements matching this selector
+
+# LOCALIZATION NOTE (rule.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the rule view.
+rule.colorSwatch.tooltip=Click to open the color picker, shift+click to change the color format
+
+# LOCALIZATION NOTE (rule.bezierSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a cubic-bezier swatch in the rule view.
+rule.bezierSwatch.tooltip=Click to open the timing-function editor
+
+# LOCALIZATION NOTE (rule.filterSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a filter swatch in the rule view.
+rule.filterSwatch.tooltip=Click to open the filter editor
+
+# LOCALIZATION NOTE (rule.angleSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a angle swatch in the rule view.
+rule.angleSwatch.tooltip=Shift+click to change the angle format
+
+# LOCALIZATION NOTE (rule.flexToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a Flexbox toggle icon in the rule view.
+rule.flexToggle.tooltip=Click to toggle the Flexbox highlighter
+
+# LOCALIZATION NOTE (rule.gridToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a CSS Grid toggle icon in the rule view.
+rule.gridToggle.tooltip=Click to toggle the CSS Grid highlighter
+
+# LOCALIZATION NOTE (rule.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+rule.filterStyles.placeholder=Filter Styles
+
+# LOCALIZATION NOTE (rule.addRule.tooltip): This is the tooltip shown when
+# hovering the `Add new rule` button in the rules view toolbar.
+rule.addRule.tooltip=Add new rule
+
+# LOCALIZATION NOTE (rule.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+rule.togglePseudo.tooltip=Toggle pseudo-classes
+
+# LOCALIZATION NOTE (rule.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+rule.classPanel.toggleClass.tooltip=Toggle classes
+
+# LOCALIZATION NOTE (rule.classPanel.newClass.placeholder): This is the placeholder
+# shown inside the text field used to add a new class in the rule-view.
+rule.classPanel.newClass.placeholder=Add new class
+
+# LOCALIZATION NOTE (rule.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+rule.classPanel.noClasses=No classes on this element
+
+# LOCALIZATION NOTE (rule.printSimulation.tooltip):
+# This is the tooltip of the print simulation button in the Rule View toolbar
+# that toggles print simulation.
+rule.printSimulation.tooltip=Toggle print media simulation for the page
+
+# LOCALIZATION NOTE (rule.colorSchemeSimulation.tooltip):
+# This is the tooltip of the color scheme simulation button in the Rule View
+# toolbar that toggles color-scheme simulation.
+rule.colorSchemeSimulation.tooltip=Toggle color-scheme simulation for the page
+
+# LOCALIZATION NOTE (rule.twistyCollapse.label): The text a screen reader
+# speaks when the header of a rule is expanded.
+rule.twistyCollapse.label=Collapse
+
+# LOCALIZATION NOTE (rule.twistyExpand.label): The text a screen reader
+# speaks when the header of a rule is collapsed.
+rule.twistyExpand.label=Expand
+
+# LOCALIZATION NOTE (rule.expandableContainerToggleButton.title):
+# This is the tooltip for expandable container toggle button in the Rule View (Pseudo-elements, keyframes, …)
+rule.expandableContainerToggleButton.title=Toggle panel
+
+# LOCALIZATION NOTE (rule.containerQuery.selectContainerButton.tooltip): Text displayed in a
+# tooltip when the mouse is over the icon to select a container in a container query in the rule view.
+rule.containerQuery.selectContainerButton.tooltip=Click to select the container node
+
+# LOCALIZATION NOTE (rule.propertyToggle.label):
+# This is the label for the checkbox input in the rule view that allow to disable/re-enable
+# a specific property in a rule.
+# The argument is the property name.
+rule.propertyToggle.label=Enable %S property
+
+# LOCALIZATION NOTE (rule.newPropertyName.label):
+# This is the label for the new property input in the rule view.
+rule.newPropertyName.label=New property name
+
+# LOCALIZATION NOTE (rule.propertyName.label):
+# This is the label for the property name input in the rule view.
+rule.propertyName.label=Property name
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor): Text displayed in the rule
+# and computed view context menu when a color value was clicked.
+styleinspector.contextmenu.copyColor=Copy Color
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor.accessKey): Access key for
+# the rule and computed view context menu "Copy Color" entry.
+styleinspector.contextmenu.copyColor.accessKey=L
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl): In rule and computed view :
+# text displayed in the context menu for an image URL.
+# Clicking it copies the URL to the clipboard of the user.
+styleinspector.contextmenu.copyUrl=Copy URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy URL" entry.
+styleinspector.contextmenu.copyUrl.accessKey=U
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyImageDataUrl): In rule and computed view :
+# text displayed in the context menu for an image URL.
+# Clicking it copies the image as Data-URL to the clipboard of the user.
+styleinspector.contextmenu.copyImageDataUrl=Copy Image Data-URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyImageDataUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy Image Data-URL" entry.
+styleinspector.contextmenu.copyImageDataUrl.accessKey=I
+
+# LOCALIZATION NOTE (styleinspector.copyImageDataUrlError): Text set in the clipboard
+# if an error occurs when using the copyImageDataUrl context menu action
+# (invalid image link, timeout, etc...)
+styleinspector.copyImageDataUrlError=Failed to copy image Data-URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources): Text displayed in the rule view
+# context menu.
+styleinspector.contextmenu.toggleOrigSources=Show Original Sources
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources.accessKey): Access key for
+# the rule view context menu "Show original sources" entry.
+styleinspector.contextmenu.toggleOrigSources.accessKey=O
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule): Text displayed in the
+# rule view context menu for adding a new rule to the element.
+# This should match inspector.addRule.tooltip in inspector.properties
+styleinspector.contextmenu.addNewRule=Add New Rule
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule.accessKey): Access key for
+# the rule view context menu "Add rule" entry.
+styleinspector.contextmenu.addNewRule.accessKey=R
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.selectAll=Select All
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll.accessKey): Access key for
+# the computed view context menu "Select all" entry.
+styleinspector.contextmenu.selectAll.accessKey=A
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.copy=Copy
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy.accessKey): Access key for
+# the computed view context menu "Copy" entry.
+styleinspector.contextmenu.copy.accessKey=C
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyLocation): Text displayed in the
+# rule view context menu for copying the source location.
+styleinspector.contextmenu.copyLocation=Copy Location
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyDeclaration): Text
+# displayed in the rule view context menu for copying the CSS declaration.
+styleinspector.contextmenu.copyDeclaration=Copy Declaration
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyName): Text displayed in
+# the rule view context menu for copying the property name.
+styleinspector.contextmenu.copyPropertyName=Copy Property Name
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyValue): Text displayed in
+# the rule view context menu for copying the property value.
+styleinspector.contextmenu.copyPropertyValue=Copy Property Value
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyRule): Text displayed in the
+# rule view context menu for copying the rule.
+styleinspector.contextmenu.copyRule=Copy Rule
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copySelector): Text displayed in the
+# rule view context menu for copying the selector.
+styleinspector.contextmenu.copySelector=Copy Selector
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/accessible.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/accessible.properties
new file mode 100644
index 0000000000..61a2eae8c8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/accessible.properties
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Siirry
+press = Paina
+check = Valitse
+uncheck = Poista valinta
+select = Valitse
+open = Avaa
+close = Sulje
+switch = Vaihda
+click = Osoita
+collapse= Kutista
+expand = Laajenna
+activate= Aktivoi
+cycle = Kelaa
+# An action provided to accessibility clients such as screen readers to allow
+# them to click an element when the click will be handled by a container
+# (ancestor) element. This is not normally reported to users.
+click ancestor = Napsauta edeltäjää
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = HTML-sisältö
+# The Role Description for the Tab button.
+tab = välilehti
+# The Role Description for definition list dl, dt and dd
+term = termi
+definition = määritelmä
+# The Role Description for an input type="search" text field
+searchTextField = haun tekstikenttä
+# Role Description (exposed as AXTitle) for datepickers
+dateField = päivämääräkenttä
+# The Role Description for WAI-ARIA Landmarks
+application = ohjelma
+search = haku
+banner = palkki
+navigation = siirtyminen
+complementary = ylimääräinen
+content = sisältö
+main = keskus
+# The (spoken) role description for various WAI-ARIA roles
+alert = hälytys
+alertDialog = hälytysikkuna
+dialog = ikkuna
+article = artikkeli
+document = dokumentti
+# The (spoken) role description for the WAI-ARIA figure role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-figure
+figure = kuva
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+heading = otsikko
+log = loki
+marquee = rullaava tekstikenttä
+math = matemaatiikka
+note = muistiinpano
+region = alue
+status = ohjelman tila
+timer = ajastin
+tooltip = työkaluvihje
+separator = erotin
+tabPanel = välilehtipaneeli
+# The roleDescription for the html:mark element
+highlight = korostus
+# The roleDescription for the details element
+details = lisätiedot
+# The roleDescription for the summary element
+summary = yhteenveto
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/intl.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/intl.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/platformKeys.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..626a82f089
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/mac/platformKeys.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Mac
+# This file defines the on-screen display names for the various modifier keys
+# and the Return key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key - open up arrow symbol (ctrl-e)
+VK_SHIFT=\u21e7
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_META=\u2318
+
+# The Win key - never generated by native key event
+VK_WIN=win
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_COMMAND_OR_WIN=\u2318
+
+# The Option/Alt key - splitting tracks symbol (ctrl-g)
+VK_ALT=\u2325
+
+# The Control key - hat symbol (ctrl-f)
+VK_CONTROL=\u2303
+
+# The Return key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Return
+
+# The separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/accessible.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/accessible.properties
new file mode 100644
index 0000000000..d0958aadfb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/accessible.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Siirry
+press = Paina
+check = Valitse
+uncheck = Poista valinta
+select = Valitse
+open = Avaa
+close = Sulje
+switch = Vaihda
+click = Napsauta
+collapse= Kutista
+expand = Laajenna
+activate= Aktivoi
+cycle = Kelaa
+# An action provided to accessibility clients such as screen readers to allow
+# them to click an element when the click will be handled by a container
+# (ancestor) element. This is not normally reported to users.
+click ancestor = Napsauta edeltäjää
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/intl.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/intl.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/platformKeys.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..708c60fa5b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/unix/platformKeys.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Unix
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Vaihto
+
+# The Command key
+VK_META=Meta
+
+# The Win key (Super key and Hyper keys are mapped to DOM Win key)
+VK_WIN=Win
+
+# The Super/Hyper key
+VK_COMMAND_OR_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/accessible.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/accessible.properties
new file mode 100644
index 0000000000..d0958aadfb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/accessible.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Siirry
+press = Paina
+check = Valitse
+uncheck = Poista valinta
+select = Valitse
+open = Avaa
+close = Sulje
+switch = Vaihda
+click = Napsauta
+collapse= Kutista
+expand = Laajenna
+activate= Aktivoi
+cycle = Kelaa
+# An action provided to accessibility clients such as screen readers to allow
+# them to click an element when the click will be handled by a container
+# (ancestor) element. This is not normally reported to users.
+click ancestor = Napsauta edeltäjää
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/intl.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/intl.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/platformKeys.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..bc7c568be6
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global-platform/win/platformKeys.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Windows
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Vaihto
+
+# The Command key
+VK_META=Meta
+
+# The Win key
+VK_WIN=Win
+
+# The Win key
+VK_COMMAND_OR_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/aboutStudies.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/aboutStudies.properties
new file mode 100644
index 0000000000..60c264265b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/aboutStudies.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# LOCALIZATION NOTE (title): keep "Shield" in English. See
+# https://wiki.mozilla.org/Firefox/Shield/Shield_Studies for more information
+title = Shield-tutkimukset
+removeButton = Poista
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = Aktiiviset tutkimukset
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = Valmistuneet tutkimukset
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = Aktiivinen
+
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = Valmis
+
+updateButtonWin = Päivitä asetuksia
+updateButtonUnix = Päivitä asetuksia
+learnMore = Lue lisää
+noStudies = Et ole osallistunut tutkimuksiin.
+disabledList = Tässä on listattuna tutkimukset, joihin olet osallistunut. Uusia tutkimuksia ei suoriteta.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = Mikä tämä on? %S saattaa asentaa ja suorittaa tutkimuksia silloin tällöin.
+
+# LOCALIZATION NOTE (preferenceStudyDescription) $1%S will be replaced with the
+# name of a preference (such as "stream.improvesearch.topSiteSearchShortcuts")
+# and $2%S will be replaced with the value of that preference. Both values will
+# be formatted differently than the surrounding text.
+preferenceStudyDescription = Tämä tutkimus asettaa asetuksen %1$S arvoon %2$S.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/appstrings.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/appstrings.properties
new file mode 100644
index 0000000000..04ea79a03e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/appstrings.properties
@@ -0,0 +1,37 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+malformedURI2=Tarkista, että osoite on oikea ja yritä uudestaan.
+fileNotFound=Tiedostoa %S ei löytynyt. Tarkista sen sijainti ja yritä uudelleen.
+fileAccessDenied=Tiedosto %S ei ole luettavissa.
+dnsNotFound2=Osoitetta %S ei löytynyt. Tarkista osoite ja yritä uudelleen.
+unknownProtocolFound=Jokin seuraavista (%S) ei ole rekisteröity yhteyskäytäntö tai sitä ei ole sallittu käyttää tällä tavalla.
+connectionFailure=Yhteyden muodostus osoitteeseen %S epäonnistui.
+netInterrupt=Yhteys sivulle %S katkesi yllättäen. Voi olla, että tietoa siirrettiin.
+netTimeout=Yhteyden muodostus osoitteeseen %S aikakatkaistiin.
+redirectLoop=Uudelleenohjausraja osoitteelle ylittyi. Pyydettyä sivua ei voida ladata. Tämä voi johtua estetyistä evästeistä.
+confirmRepostPrompt=Sivu voidaan näyttää vain lähettämällä jo aikaisemmin lähetetyt tiedot. Tietojen lähettäminen toistaa aikaisemmin suoritetun toiminnon (kuten haun tai tuotteen tilauksen verkkokaupasta).
+resendButton.label=Lähetä uudestaan
+unknownSocketType=Tätä dokumenttia ei voida avata, ellet asenna Henkilökohtaista turvallisuuden hallintaa (PSM). Lataa ja asenna PSM ja yritä uudelleen tai ota yhteyttä järjestelmänvalvojaasi.
+netReset=Tiedosto on tyhjä.
+notCached=Tämä dokumentti ei ole enää saatavilla.
+netOffline=Sivua ei voida näyttää yhteydettömässä tilassa. Siirry yhteystilaan poistamalla valinta Tiedosto-valikon kohdasta Työskentele yhteydettömässä tilassa.
+isprinting=Sivu ei voi muuttua, kun sitä tulostetaan tai tulostusta esikatsellaan.
+deniedPortAccess=Pääsy pyydettyyn porttiin on estetty turvallisuussyistä.
+proxyResolveFailure=Välityspalvelinta ei löytynyt. Tarkista välityspalvelinasetukset ja yritä uudelleen.
+proxyConnectFailure=Välityspalvelin kieltäytyi yhteydestä. Tarkista välityspalvelinasetukset ja yritä uudelleen.
+contentEncodingError=Avattava sivu on pakattu virheellisesti tai tuntemattomalla tavalla, eikä sivua voida näyttää.
+unsafeContentType=Avattava sivu lähetettiin tiedostomuodossa, joka ei aina ole turvallinen eikä sivua siksi voida näyttää. Ilmoita tästä ongelmasta sivuston omistajalle.
+malwareBlocked=Sivuston %S on ilmoitettu olevan hyökkäyssivusto ja sen avaaminen on estetty turvallisuusasetuksiesi perusteella.
+harmfulBlocked=Sivuston %S on ilmoitettu olevan mahdollisesti haitallinen ja sen avaaminen on estetty turvallisuusasetuksiesi perusteella.
+unwantedBlocked=Sivuston %S on ilmoitettu yrittävän asentaa sovelluksia pyytämättä ja sen avaaminen on estetty turvallisuusasetuksiesi perusteella.
+deceptiveBlocked=Sivuston %S on ilmoitettu olevan petollinen sivusto ja sen avaaminen on estetty turvallisuusasetuksiesi perusteella.
+cspBlocked=Tällä sivulla on sisällön tietosuojakäytäntö, joka estää sen sisällyttämisen toiseen sivuun tällä tavalla.
+xfoBlocked=Tällä sivulla on X-Frame-Options-käytäntö, joka estää sen lataamisen tässä yhteydessä.
+corruptedContentErrorv2=Sivusto osoitteessa %S on kohdannut yhteyskäytäntövirheen, josta ei voi toipua.
+sslv3Used=Tietojesi turvallisuutta palvelimella %S ei voida taata, koska se käyttää rikkoutunutta turvallisuuskäytäntöä SSLv3.
+weakCryptoUsed=Sivuston %S omistaja on määrittänyt sivustonsa asetukset väärin. Sivustoon ei muodostettu yhteyttä suojellaksemme tietojasi varkaudelta.
+inadequateSecurityError=Sivusto yritti neuvotella riittämättömän tasoisen turvallisuuden.
+blockedByPolicy=Organisaatiosi on estänyt pääsyn tälle sivulle tai sivustolle.
+networkProtocolError=Firefox kohtasi verkkoyhteyskäytäntöä koskevan rikkomuksen, josta ei voi toipua.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/autocomplete.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/autocomplete.properties
new file mode 100644
index 0000000000..105e0ff25c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/autocomplete.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (bookmarkKeywordSearch): This is the title of autocomplete
+# entries that are bookmark keyword searches. %1$S will be replaced with the
+# domain name of the bookmark, and %2$S will be replaced with the keyword
+# search text that the user is typing. %2$S will not be empty.
+bookmarkKeywordSearch = %1$S: %2$S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/browser.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/browser.properties
new file mode 100644
index 0000000000..9f15cf3c25
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/browser.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+formPostSecureToInsecureWarning.title = Turvallisuusvaroitus
+formPostSecureToInsecureWarning.message = Antamasi tiedot tullaan lähettämään salaamattoman yhteyden kautta, ja muut henkilöt voivat helposti lukea niitä.\n\nHaluatko varmasti jatkaa tietojen lähettämistä?
+formPostSecureToInsecureWarning.continue = Jatka
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/commonDialogs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/commonDialogs.properties
new file mode 100644
index 0000000000..fc3d969577
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/commonDialogs.properties
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Alert=Huomio
+Confirm=Vahvista
+ConfirmCheck=Vahvista
+Prompt=Kysy
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Tunnistautuminen vaaditaan - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Salasana vaaditaan - %S
+Select=Valitse
+OK=OK
+Cancel=Peruuta
+Yes=&Kyllä
+No=&Ei
+Save=&Tallenna
+Revert=&Palauta
+DontSave=&Älä tallenna
+ScriptDlgGenericHeading=[Javascript-sovelma]
+ScriptDlgHeading=Sivulla osoitteessa %S lukee:
+ScriptDlgNullPrincipalHeading=Tämä sivu sanoo:
+ScriptDialogLabel=Älä anna tämän sivun luoda uusia ikkunoita
+ScriptDialogLabelNullPrincipal=Estä tämä sivusto näyttämästä uusia kehotteita
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
+ScriptDialogLabelContentPrincipal=Estä %S näyttämästä uusia kehotteita
+ScriptDialogPreventTitle=Vahvista asetus
+# LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
+# %1 is an untrusted string provided by a remote server. It could try to
+# take advantage of sentence structure in order to mislead the user (see
+# bug 244273). %1 should be integrated into the translated sentences as
+# little as possible. %2 is the url of the site being accessed.
+EnterLoginForRealm3=%2$S pyytää käyttäjätunnusta ja salasanaa. Sivusto sanoo: ”%1$S”
+EnterLoginForProxy3=Välityspalvelin %2$S pyytää käyttäjätunnusta ja salasanaa. Sivusto sanoo: ”%1$S”
+EnterUserPasswordFor2=%1$S pyytää käyttäjätunnusta ja salasanaa.
+EnterUserPasswordForCrossOrigin2=%1$S pyytää käyttäjätunnusta ja salasanaa. VAROITUS: Salasanaa ei lähetetä sivustolle, jolla olet juuri nyt!
+EnterPasswordFor=Kirjoita salasana käyttäjätunnukselle %1$S palvelimella %2$S
+EnterCredentials=Tämä sivusto pyytää sinua kirjautumaan sisään.
+# %S is the username for which a password is requested.
+EnterPasswordOnlyFor=Tämä sivusto pyytää sinua kirjautumaan sisään käyttäjänä %S.
+# %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=Sivusto pyytää sinua kirjautumaan sisään. Varoitus: kirjautumistiedot jaetaan sivustolle %S eikä tällä hetkellä vierailemallesi sivustolle.
+SignIn=Kirjaudu sisään
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/contentAreaCommands.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..36282cd042
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/contentAreaCommands.properties
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# context menu strings
+
+SaveImageTitle=Tallenna kuva
+SaveMediaTitle=Tallenna media
+SaveVideoTitle=Tallenna video
+SaveAudioTitle=Tallenna äänite
+SaveLinkTitle=Tallenna nimellä
+WebPageCompleteFilter=Verkkosivu, kokonainen
+WebPageHTMLOnlyFilter=Verkkosivu, pelkkä HTML
+WebPageXHTMLOnlyFilter=Verkkosivu, pelkkä XHTML
+WebPageSVGOnlyFilter=Verkkosivu, pelkkä SVG
+WebPageXMLOnlyFilter=Verkkosivu, pelkkä XML
+
+# LOCALIZATION NOTE (UntitledSaveFileName):
+# This is the default filename used when saving a file if a filename could
+# not be determined or if a filename was invalid. A period and file
+# extension may be appended to this string.
+UntitledSaveFileName=Nimetön
+
+# LOCALIZATION NOTE (filesFolder):
+# This is the name of the folder that is created parallel to a HTML file
+# when it is saved "With Images". The %S section is replaced with the
+# leaf name of the file being saved (minus extension).
+filesFolder=%S_tiedostot
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/css.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/css.properties
new file mode 100644
index 0000000000..6fb5cd40fa
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/css.properties
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MimeNotCss=The stylesheet %1$S was not loaded because its MIME type, "%2$S", is not "text/css".
+MimeNotCssWarn=The stylesheet %1$S was loaded as CSS even though its MIME type, "%2$S", is not "text/css".
+
+PEDeclDropped=Declaration dropped.
+PEDeclSkipped=Skipped to next declaration.
+PEUnknownProperty=Unknown property '%1$S'.
+PEPRSyntaxFieldEmptyInput=@property syntax descriptor is empty.
+PEPRSyntaxFieldExpectedPipe=@property syntax descriptor ‘%S’ contains components without a pipe between them.
+PEPRSyntaxFieldInvalidNameStart=@property syntax descriptor ‘%S’ contains a component name that starts with an invalid character.
+PEPRSyntaxFieldInvalidName=@property syntax descriptor ‘%S’ contains a component name with an invalid character.
+PEPRSyntaxFieldUnclosedDataTypeName=@property syntax descriptor ‘%S’ contains an unclosed data type name.
+PEPRSyntaxFieldUnexpectedEOF=@property syntax descriptor ‘%S’ is incomplete.
+PEPRSyntaxFieldUnknownDataTypeName=@property syntax descriptor ‘%S’ contains an unknown data type name.
+PEValueParsingError=Error in parsing value for '%1$S'.
+PEUnknownAtRule=Unrecognized at-rule or error parsing at-rule '%1$S'.
+PEMQUnexpectedOperator=Unexpected operator in media list.
+PEMQUnexpectedToken=Unexpected token ‘%1$S’ in media list.
+PEAtNSUnexpected=Unexpected token within @namespace: '%1$S'.
+PEKeyframeBadName=Expected identifier for name of @keyframes rule.
+PEBadSelectorRSIgnored=Ruleset ignored due to bad selector.
+PEBadSelectorKeyframeRuleIgnored=Keyframe rule ignored due to bad selector.
+PESelectorGroupNoSelector=Selector expected.
+PESelectorGroupExtraCombinator=Dangling combinator.
+PEClassSelNotIdent=Expected identifier for class selector but found '%1$S'.
+PETypeSelNotType=Expected element name or '*' but found '%1$S'.
+PEUnknownNamespacePrefix=Unknown namespace prefix '%1$S'.
+PEAttributeNameExpected=Expected identifier for attribute name but found '%1$S'.
+PEAttributeNameOrNamespaceExpected=Expected attribute name or namespace but found '%1$S'.
+PEAttSelNoBar=Expected '|' but found '%1$S'.
+PEAttSelUnexpected=Unexpected token in attribute selector: '%1$S'.
+PEAttSelBadValue=Expected identifier or string for value in attribute selector but found '%1$S'.
+PEPseudoSelBadName=Expected identifier for pseudo-class or pseudo-element but found '%1$S'.
+PEPseudoSelEndOrUserActionPC=Expected end of selector or a user action pseudo-class after pseudo-element but found '%1$S'.
+PEPseudoSelUnknown=Unknown pseudo-class or pseudo-element '%1$S'.
+PEPseudoClassArgNotIdent=Expected identifier for pseudo-class parameter but found '%1$S'.
+PEColorNotColor=Expected color but found '%1$S'.
+PEParseDeclarationDeclExpected=Expected declaration but found '%1$S'.
+PEUnknownFontDesc=Unknown descriptor '%1$S' in @font-face rule.
+PEMQExpectedFeatureName=Expected media feature name but found '%1$S'.
+PEMQNoMinMaxWithoutValue=Media features with min- or max- must have a value.
+PEMQExpectedFeatureValue=Found invalid value for media feature.
+PEExpectedNoneOrURL=Expected 'none' or URL but found '%1$S'.
+PEExpectedNoneOrURLOrFilterFunction=Expected 'none', URL, or filter function but found '%1$S'.
+PEDisallowedImportRule=@import rules are not yet valid in constructed stylesheets.
+PENeverMatchingHostSelector=:host selector in ‘%S’ is not featureless and will never match. Maybe you intended to use :host()?
+
+TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
+TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/dialog.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/dialog.properties
new file mode 100644
index 0000000000..0cf2e23ffb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/dialog.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+button-accept=OK
+button-cancel=Peruuta
+button-help=Ohje
+button-disclosure=Lisätietoja
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=O
+accesskey-disclosure=L
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/dom/dom.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/dom/dom.properties
new file mode 100644
index 0000000000..8aa514e487
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/dom/dom.properties
@@ -0,0 +1,451 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+KillScriptTitle=Varoitus: komentosarja ei vastaa kutsuihin
+KillScriptMessage=Tällä sivulla oleva komentosarja on varattuna tai ei enää vastaa kutsuihin. Voit pysäyttää komentosarjan suorittamisen tai odottaa sen suorituksen valmistumista.
+KillScriptWithDebugMessage=Tällä sivulla oleva komentosarja on varattuna tai ei enää vastaa kutsuihin. Voit pysäyttää komentosarjan suorittamisen, tutkia sitä debug-ohjelmalla tai odottaa sen suorituksen valmistumista.
+KillScriptLocation=Komentosarja: %S
+
+KillAddonScriptTitle=Varoitus: lisäosan komentosarja ei vastaa kutsuihin
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=Komentosarja laajennuksesta ”%1$S” on käynnissä tällä sivulla ja saa %2$Sin olemaan vastaamatta kutsuihin.\n\nKomentosarja voi olla varattuna tai se voi olla pysyvästi lakannut vastaamasta. Voit pysäyttää komentosarjan nyt tai odottaa ja katsoa, valmistuuko se.
+KillAddonScriptGlobalMessage=Estä laajennuksen komentosarjan suoritus tällä sivulla ennen sen uudelleenlatausta
+
+StopScriptButton=Pysäytä komentosarja
+DebugScriptButton=Tutki komentosarjaa
+WaitForScriptButton=Jatka
+DontAskAgain=&Älä kysy uudestaan
+WindowCloseBlockedWarning=Komentosarjat eivät voi sulkea ikkunoita, joita ne eivät ole avanneet.
+OnBeforeUnloadTitle=Sivulta poistumisen vahvistus
+OnBeforeUnloadMessage2=Tämä sivu haluaa sinun vahvistavan, että tarkoituksesi on poistua sivulta. Sivulle antamiasi tietoja ei välttämättä tallenneta.
+OnBeforeUnloadStayButton=Jää sivulle
+OnBeforeUnloadLeaveButton=Poistu sivulta
+EmptyGetElementByIdParam=Empty string passed to getElementById().
+SpeculationFailed2=An unbalanced tree was written using document.write() causing data from the network to be reparsed. More information: https://developer.mozilla.org/en-US/docs/Glossary/speculative_parsing
+DocumentWriteIgnored=A call to document.write() from an asynchronously-loaded external script was ignored.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Dropping a file into a contenteditable element failed: %S.
+FormValidationTextTooLong=Lyhennä kentän teksti %S merkkiin tai vähempään (nyt käytössä %S merkkiä).
+FormValidationTextTooShort=Käytä vähintään %S merkkiä (nyt käytössä %S merkkiä).
+FormValidationValueMissing=Täytä tämä kenttä.
+FormValidationCheckboxMissing=Valitse tämä kohta jos haluat jatkaa.
+FormValidationRadioMissing=Valitse yksi vaihtoehdoista.
+FormValidationFileMissing=Valitse tiedosto.
+FormValidationSelectMissing=Valitse kohta listalta.
+FormValidationInvalidEmail=Kirjoita kelvollinen sähköpostiosoite.
+FormValidationInvalidURL=Kirjoita osoite.
+FormValidationInvalidDate=Anna kelvollinen päiväys.
+FormValidationInvalidTime=Anna kelvollinen aika.
+FormValidationInvalidDateTime=Anna kelvollinen päiväys ja aika.
+FormValidationInvalidDateMonth=Anna kelvollinen kuukausi.
+FormValidationInvalidDateWeek=Anna kelvollinen viikko.
+FormValidationPatternMismatch=Anna arvo pyydetyssä muodossa.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Anna arvo pyydetyssä muodossa: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Valitse arvo, joka on enintään %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Valitse arvo, joka ei ole myöhempi kuin %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Valitse arvo, joka vähintään %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=Valitse arvo, joka ei ole aikaisempi kuin %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Valitse kelvollinen arvo. Kaksi lähintä kelvollista arvoa ovat %S ja %S.
+# LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
+FormValidationStepMismatchOneValue=Valitse kelvollinen arvo. Lähin kelvollinen arvo on %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Valitse arvo väliltä %1$S ja %2$S.
+FormValidationBadInputNumber=Kirjoita luku.
+FullscreenDeniedDisabled=Request for fullscreen was denied because Fullscreen API is disabled by user preference.
+FullscreenDeniedFocusedPlugin=Request for fullscreen was denied because a windowed plugin is focused.
+FullscreenDeniedHidden=Request for fullscreen was denied because the document is no longer visible.
+FullscreenDeniedHTMLDialog=Request for fullscreen was denied because requesting element is a <dialog> element.
+FullscreenDeniedContainerNotAllowed=Request for fullscreen was denied because at least one of the document's containing elements is not an iframe or does not have an "allowfullscreen" attribute.
+FullscreenDeniedNotInputDriven=Request for fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.
+FullscreenDeniedMouseEventOnlyLeftBtn=Request for fullscreen was denied because Element.requestFullscreen() was called from inside a mouse event handler not triggered by left mouse button.
+FullscreenDeniedNotHTMLSVGOrMathML=Request for fullscreen was denied because requesting element is not <svg>, <math>, or an HTML element.
+FullscreenDeniedNotInDocument=Request for fullscreen was denied because requesting element is no longer in its document.
+FullscreenDeniedMovedDocument=Request for fullscreen was denied because requesting element has moved document.
+FullscreenDeniedLostWindow=Request for fullscreen was denied because we no longer have a window.
+FullscreenDeniedSubDocFullscreen=Request for fullscreen was denied because a subdocument of the document requesting fullscreen is already fullscreen.
+FullscreenDeniedNotFocusedTab=Request for fullscreen was denied because requesting element is not in the currently focused tab.
+FullscreenDeniedFeaturePolicy=Request for fullscreen was denied because of FeaturePolicy directives.
+FullscreenExitWindowFocus=Exited fullscreen because a window was focused.
+RemovedFullscreenElement=Exited fullscreen because fullscreen element was removed from document.
+FocusedWindowedPluginWhileFullscreen=Exited fullscreen because windowed plugin was focused.
+PointerLockDeniedDisabled=Request for pointer lock was denied because Pointer Lock API is disabled by user preference.
+PointerLockDeniedInUse=Request for pointer lock was denied because the pointer is currently controlled by a different document.
+PointerLockDeniedNotInDocument=Request for pointer lock was denied because the requesting element is not in a document.
+PointerLockDeniedSandboxed=Request for pointer lock was denied because Pointer Lock API is restricted via sandbox.
+PointerLockDeniedHidden=Request for pointer lock was denied because the document is not visible.
+PointerLockDeniedNotFocused=Request for pointer lock was denied because the document is not focused.
+PointerLockDeniedMovedDocument=Request for pointer lock was denied because the requesting element has moved document.
+PointerLockDeniedNotInputDriven=Request for pointer lock was denied because Element.requestPointerLock() was not called from inside a short running user-generated event handler, and the document is not in full screen.
+PointerLockDeniedFailedToLock=Request for pointer lock was denied because the browser failed to lock the pointer.
+HTMLSyncXHRWarning=HTML parsing in XMLHttpRequest is not supported in the synchronous mode.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Attempt to set a forbidden header was denied: %S
+ResponseTypeSyncXHRWarning=Use of XMLHttpRequest's responseType attribute is no longer supported in the synchronous mode in window context.
+TimeoutSyncXHRWarning=Use of XMLHttpRequest's timeout attribute is not supported in the synchronous mode in window context.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+UseSendBeaconDuringUnloadAndPagehideWarning=Use of navigator.sendBeacon instead of synchronous XMLHttpRequest during unload and pagehide improves user experience.
+JSONCharsetWarning=An attempt was made to declare a non-UTF-8 encoding for JSON retrieved using XMLHttpRequest. Only UTF-8 is supported for decoding JSON.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+MediaElementAudioSourceNodeCrossOrigin=The HTMLMediaElement passed to createMediaElementSource has a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+MediaStreamAudioSourceNodeCrossOrigin=The MediaStream passed to createMediaStreamSource has a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+MediaStreamTrackAudioSourceNodeCrossOrigin=The MediaStreamTrack passed to createMediaStreamTrackSource is a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=The captured HTMLMediaElement is playing a MediaStream. Applying volume or mute status is not currently supported.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementStreamCaptureCycle=The MediaStream assigned to srcObject comes from a capture of this HTMLMediaElement, forming a cycle, assignment ignored.
+MediaLoadExhaustedCandidates=All candidate resources failed to load. Media load paused.
+MediaLoadSourceMissingSrc=<source> element has no "src" attribute. Media resource load failed.
+MediaStreamAudioSourceNodeDifferentRate=Connecting AudioNodes from AudioContexts with different sample-rate is currently not supported.
+# LOCALIZATION NOTE: %1$S is the Http error code the server returned (e.g. 404, 500, etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadHttpError=HTTP load failed with status %1$S. Load of media resource %2$S failed.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=Invalid URI. Load of media resource %S failed.
+# LOCALIZATION NOTE: %1$S is the media resource's format/codec type (basically equivalent to the file type, e.g. MP4,AVI,WMV,MOV etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedTypeAttribute=Specified "type" attribute of "%1$S" is not supported. Load of media resource %2$S failed.
+MediaLoadUnsupportedTypeAttributeLoadingNextChild=Specified “type” attribute of “%1$S” is not supported. Load of media resource %2$S failed. Trying to load from next <source> element.
+# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedMimeType=HTTP "Content-Type" of "%1$S" is not supported. Load of media resource %2$S failed.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=Media resource %S could not be decoded.
+MediaWidevineNoWMF=Yritetään toistaa Widevineä ilman Windows Media Foundationia. Katso https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaWMFNeeded=Jotta voit toistaa videotiedostomuotoja %S, sinun tarvitsee asentaa Microsoftin lisäohjelmistoja. Katso https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaPlatformDecoderNotFound=Tällä sivulla olevaa videota ei voida toistaa. Järjestelmässä ei välttämättä ole tarvittavia koodekkeja tiedostomuodoille %S.
+MediaUnsupportedLibavcodec=Tällä sivulla olevaa videota ei voida toistaa. Järjestelmässä on libavcodec-versio, jota ei tueta
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=Mediaresurssin %1$S purkaminen epäonnistui virheellä: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Mediaresurssin %1$S purkaminen onnistui, mutta virheellä: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Mediaa ei voida toistaa. Ei purkajia pyydetyille tiedostomuodoille: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=Ei purkajia joillekin pyydetyistä tiedostomuodoista: %S
+MediaCannotInitializePulseAudio=PulseAudion käyttäminen ei onnistu
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+MediaEMEInsecureContextDeprecatedWarning=Using Encrypted Media Extensions at %S on an insecure (i.e. non-HTTPS) context is deprecated and will soon be removed. You should consider switching to a secure origin such as HTTPS.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (either an audioCapabilities or a videoCapabilities) that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+MediaEMENoCapabilitiesDeprecatedWarning=Calling navigator.requestMediaKeySystemAccess() (at %S) without passing a candidate MediaKeySystemConfiguration containing audioCapabilities or videoCapabilities is deprecated and will soon become unsupported.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (a "codecs" string in the "contentType") that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+MediaEMENoCodecsDeprecatedWarning=Calling navigator.requestMediaKeySystemAccess() (at %S) passing a candidate MediaKeySystemConfiguration containing audioCapabilities or videoCapabilities without a contentType with a “codecs” string is deprecated and will soon become unsupported.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=Use of Mutation Events is deprecated. Use MutationObserver instead.
+BlockAutoplayError=Automaattinen toisto sallitaan vain, kun käyttäjä on antanut suostumuksen, käyttäjä on aktivoinut sivuston tai median äänet on vaimennettu.
+BlockAutoplayWebAudioStartError=An AudioContext was prevented from starting automatically. It must be created or resumed after a user gesture on the page.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=The Components object is deprecated. It will soon be removed.
+PluginHangUITitle=Varoitus: Liitännäinen ei vastaa kutsuihin
+PluginHangUIMessage=Liitännäinen %S on varattuna tai ei enää vastaa kutsuihin. Voit pysäyttää liitännäisen suorittamisen tai odottaa sen suorituksen valmistumista.
+PluginHangUIWaitButton=Jatka
+PluginHangUIStopButton=Pysäytä liitännäinen
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=Calling detach() on a NodeIterator no longer has an effect.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=Ignoring get or set of property that has [LenientThis] because the "this" object is incorrect.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=Use of captureEvents() is deprecated. To upgrade your code, use the DOM 2 addEventListener() method. For more help http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=Use of releaseEvents() is deprecated. To upgrade your code, use the DOM 2 removeEventListener() method. For more help http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=window.controllers/Controllers is deprecated. Do not use it for UA detection.
+ImportXULIntoContentWarning=Importing XUL nodes into a content document is deprecated. This functionality may be removed soon.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+IndexedDBTransactionAbortNavigation=An IndexedDB transaction that was not yet complete has been aborted due to page navigation.
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=Will-change memory consumption is too high. Budget limit is the document surface area multiplied by %1$S (%2$S px). Occurrences of will-change over the budget will be ignored.
+# LOCALIZATION NOTE: Do not translate "Worker".
+HittingMaxWorkersPerDomain2=A Worker could not be started immediately because other documents in the same origin are already using the maximum number of workers. The Worker is now queued and will be started after some of the other workers have completed.
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+AppCacheWarning=Application Cache API (AppCache) on vanhentunut ja se tullaan poistamaan tulevaisuudessa. Harkitse ServiceWorkerin käyttöä offline-tuen saavuttamiseksi.
+# LOCALIZATION NOTE: Do not translate "Worker".
+EmptyWorkerSourceWarning=Attempting to create a Worker from an empty source. This is probably unintentional.
+NavigatorGetUserMediaWarning=navigator.mozGetUserMedia has been replaced by navigator.mediaDevices.getUserMedia
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+RTCPeerConnectionGetStreamsWarning=RTCPeerConnection.getLocalStreams/getRemoteStreams are deprecated. Use RTCPeerConnection.getSenders/getReceivers instead.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+InterceptionFailedWithURL=Failed to load '%S'. A ServiceWorker intercepted the request and encountered an unexpected error.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+CorsResponseForSameOriginRequest=Failed to load ‘%1$S’ by responding ‘%2$S’. A ServiceWorker is not allowed to synthesize a cors Response for a same-origin Request.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
+BadOpaqueInterceptionRequestModeWithURL=Failed to load '%1$S'. A ServiceWorker passed an opaque Response to FetchEvent.respondWith() while handling a '%2$S' FetchEvent. Opaque Response objects are only valid when the RequestMode is 'no-cors'.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+InterceptedErrorResponseWithURL=Failed to load '%S'. A ServiceWorker passed an Error Response to FetchEvent.respondWith(). This typically means the ServiceWorker performed an invalid fetch() call.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+InterceptedUsedResponseWithURL=Failed to load '%S'. A ServiceWorker passed a used Response to FetchEvent.respondWith(). The body of a Response may only be read once. Use Response.clone() to access the body multiple times.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %s is a URL.
+BadOpaqueRedirectInterceptionWithURL=Failed to load '%S'. A ServiceWorker passed an opaqueredirect Response to FetchEvent.respondWith() while handling a non-navigation FetchEvent.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+BadRedirectModeInterceptionWithURL=Failed to load ‘%S’. A ServiceWorker passed a redirected Response to FetchEvent.respondWith() while RedirectMode is not ‘follow’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+InterceptionCanceledWithURL=Kohteen '%S' lataaminen epäonnistui. ServiceWorker peruutti latauksen kutsumalla FetchEvent.preventDefault()-metodia.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+InterceptionRejectedResponseWithURL=Failed to load '%1$S'. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with '%2$S'.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
+InterceptedNonResponseWithURL=Failed to load '%1$S'. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value '%2$S'.
+
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+ServiceWorkerScopePathMismatch=Failed to register a ServiceWorker: The path of the provided scope ‘%1$S’ is not under the max scope allowed ‘%2$S’. Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a stringified numeric HTTP status code like "404" and %3$S is a URL.
+ServiceWorkerRegisterNetworkError=Failed to register/update a ServiceWorker for scope ‘%1$S’: Load failed with status %2$S for script ‘%3$S’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
+ServiceWorkerRegisterMimeTypeError2=Failed to register/update a ServiceWorker for scope ‘%1$S’: Bad Content-Type of ‘%2$S’ received for script ‘%3$S’. Must be a JavaScript MIME type.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerRegisterStorageError=Failed to register/update a ServiceWorker for scope ‘%S’: Storage access is restricted in this context due to user settings or private browsing mode.
+ServiceWorkerGetRegistrationStorageError=Failed to get service worker registration(s): Storage access is restricted in this context due to user settings or private browsing mode.
+ServiceWorkerGetClientStorageError=Failed to get service worker’s client(s): Storage access is restricted in this context due to user settings or private browsing mode.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerPostMessageStorageError=The ServiceWorker for scope ‘%S’ failed to execute ‘postMessage‘ because storage access is restricted in this context due to user settings or private browsing mode.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerGraceTimeoutTermination=Terminating ServiceWorker for scope ‘%1$S’ with pending waitUntil/respondWith promises because of grace timeout.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ServiceWorkerNoFetchHandler=Fetch event handlers must be added during the worker script’s initial evaluation.
+ExecCommandCutCopyDeniedNotInputDriven=document.execCommand('cut'/'copy') was denied because it was not called from inside a short running user-generated event handler.
+ManifestIdIsInvalid=The id member did not resolve to a valid URL.
+ManifestIdNotSameOrigin=The id member must have the same origin as the start_url member.
+ManifestShouldBeObject=Manifest should be an object.
+ManifestScopeURLInvalid=The scope URL is invalid.
+ManifestScopeNotSameOrigin=The scope URL must be same origin as document.
+ManifestStartURLOutsideScope=The start URL is outside the scope, so the scope is invalid.
+ManifestStartURLInvalid=The start URL is invalid.
+ManifestStartURLShouldBeSameOrigin=The start URL must be same origin as document.
+# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
+ManifestInvalidType=Expected the %1$S's %2$S member to be a %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
+ManifestInvalidCSSColor=%1$S: %2$S is not a valid CSS color.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+ManifestLangIsInvalid=%1$S: %2$S is not a valid language code.
+# LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
+ManifestImageURLIsInvalid=%1$S item at index %2$S is invalid. The %3$S member is an invalid URL %4$S
+# LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
+ManifestImageUnusable=%1$S item at index %2$S lacks a usable purpose. It will be ignored.
+# LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
+ManifestImageUnsupportedPurposes=%1$S item at index %2$S includes unsupported purpose(s): %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the parent property that has a repeated purpose (e.g., "icons"). %2$S is the index of the image object that has the repeated purpose (from 0). %3$S is the repeated purposes. E.g. "icons item at index 2 includes repeated purpose(s): a b."
+ManifestImageRepeatedPurposes=%1$S item at index %2$S includes repeated purpose(s): %3$S.
+PatternAttributeCompileFailure=Unable to check <input pattern='%S'> because the pattern is not a valid regexp: %S
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+TargetPrincipalDoesNotMatch=Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('%S') does not match the recipient window's origin ('%S').
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbed=Rewriting old-style YouTube Flash embed (%S) to iframe embed (%S). Please update page to use iframe instead of embed/object, if possible.
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbedPathParams=Rewriting old-style YouTube Flash embed (%S) to iframe embed (%S). Params were unsupported by iframe embeds and converted. Please update page to use iframe instead of embed/object, if possible.
+# LOCALIZATION NOTE: This error is reported when the "Encryption" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Encryption", and "salt". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Encryption’ header must include a unique ‘salt‘ parameter for each message. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when the "Crypto-Key" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Crypto-Key", and "dh". %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoKeyHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Crypto-Key‘ header must include a ‘dh‘ parameter containing the app server’s public key. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt because the deprecated
+# "Encryption-Key" header for an incoming push message is missing or invalid.
+# Do not translate "ServiceWorker", "Encryption-Key", "dh", "Crypto-Key", and
+# "Content-Encoding: aesgcm". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionKeyHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Encryption-Key’ header must include a ‘dh‘ parameter. This header is deprecated and will soon be removed. Please use ‘Crypto-Key‘ with ‘Content-Encoding: aesgcm‘ instead. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "Content-Encoding" header is missing or contains an
+# unsupported encoding. Do not translate "ServiceWorker", "Content-Encoding",
+# "aesgcm", and "aesgcm128". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncodingHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Content-Encoding‘ header must be ‘aesgcm‘. ‘aesgcm128‘ is allowed, but deprecated and will soon be removed. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "dh" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "dh", "Crypto-Key", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+PushMessageBadSenderKey=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘dh‘ parameter in the ‘Crypto-Key‘ header must be the app server’s Diffie-Hellman public key, base64url-encoded (https://tools.ietf.org/html/rfc7515#appendix-C) and in “uncompressed” or “raw” form (65 bytes before encoding). See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "salt" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+PushMessageBadSalt=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘salt‘ parameter in the ‘Encryption‘ header must be base64url-encoded (https://tools.ietf.org/html/rfc7515#appendix-C), and be at least 16 bytes before encoding. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "rs" parameter is not a number, or is less than the pad size.
+# Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
+# ServiceWorker scope URL. %2$S is the minimum value (1 for aesgcm128, 2 for
+# aesgcm).
+PushMessageBadRecordSize=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘rs‘ parameter of the ‘Encryption‘ header must be between %2$S and 2^36-31, or omitted entirely. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because an encrypted record is shorter than the pad size, the pad is larger
+# than the record, or any of the padding bytes are non-zero. Do not translate
+# "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is the pad size
+# (1 for aesgcm128, 2 for aesgcm).
+PushMessageBadPaddingError=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. A record in the encrypted message was not padded correctly. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
+# LOCALIZATION NOTE: This error is reported when push message decryption fails
+# and no specific error info is available. Do not translate "ServiceWorker".
+# %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoError=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. For help with encryption, please see https://developer.mozilla.org/docs/Web/API/Push_API/Using_the_Push_API#Encryption
+# LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
+PreventDefaultFromPassiveListenerWarning=Ignoring ‘preventDefault()’ call on event of type ‘%1$S’ from a listener registered as ‘passive’.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+ImageBitmapRenderingContext_TransferImageBitmapWarning=ImageBitmapRenderingContext.transferImageBitmap is deprecated and will be removed soon. Use ImageBitmapRenderingContext.transferFromImageBitmap instead.
+IIRFilterChannelCountChangeWarning=IIRFilterNode channel count changes may produce audio glitches.
+BiquadFilterChannelCountChangeWarning=BiquadFilterNode channel count changes may produce audio glitches.
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=kuva.png
+GenericFileName=tiedosto
+GeolocationInsecureRequestIsForbidden=A Geolocation request can only be fulfilled in a secure context.
+NotificationsInsecureRequestIsForbidden=The Notification permission may only be requested in a secure context.
+NotificationsCrossOriginIframeRequestIsForbidden=The Notification permission may only be requested in a top-level document or same-origin iframe.
+NotificationsRequireUserGesture=The Notification permission may only be requested from inside a short running user-generated event handler.
+NotificationsRequireUserGestureDeprecationWarning=Requesting Notification permission outside a short running user-generated event handler is deprecated and will not be supported in the future.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+WindowContentUntrustedWarning=The ‘content’ attribute of Window objects is deprecated. Please use ‘window.top’ instead.
+# LOCALIZATION NOTE: The first %S is the tag name of the element that starts the loop, the second %S is the element's ID.
+SVGRefLoopWarning=The SVG <%S> with ID “%S” has a reference loop.
+# LOCALIZATION NOTE: The first %S is the tag name of the element in the chain where the chain was broken, the second %S is the element's ID.
+SVGRefChainLengthExceededWarning=An SVG <%S> reference chain which is too long was abandoned at the element with ID “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceEmpty=‘%S’ attribute of <script> element is empty.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceInvalidUri=‘%S’ attribute of <script> element is not a valid URI: “%S”
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceLoadFailed=Loading failed for the <script> with source “%S”.
+ModuleSourceLoadFailed=Loading failed for the module with source “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceMalformed=<script> source URI is malformed: “%S”.
+ModuleSourceMalformed=Module source URI is malformed: “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=<script> source URI is not allowed in this document: “%S”.
+ModuleSourceNotAllowed=Module source URI is not allowed in this document: “%S”.
+WebExtContentScriptModuleSourceNotAllowed=WebExtension content scripts may only load modules with moz-extension URLs and not: “%S”.
+ImportMapInvalidAddress=Osoite “%S” oli virheellinen.
+# %1$S is the specifier key, %2$S is the URL.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+InvalidKeyframePropertyValue=Keyframe property value “%1$S” is invalid according to the syntax for “%2$S”.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=Failed to read data from the ReadableStream: “%S”.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=Can’t use registerProtocolHandler inside private browsing mode.
+MotionEventWarning=Use of the motion sensor is deprecated.
+OrientationEventWarning=Use of the orientation sensor is deprecated.
+ProximityEventWarning=Use of the proximity sensor is deprecated.
+AmbientLightEventWarning=Use of the ambient light sensor is deprecated.
+UnsupportedEntryTypesIgnored=Ignoring unsupported entryTypes: %S.
+AllEntryTypesIgnored=No valid entryTypes; aborting registration.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+GTK2Conflict2=Key event not available on GTK2: key=“%S” modifiers=“%S” id=“%S”
+WinConflict2=Key event not available on some keyboard layouts: key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
+DocumentSetDomainNotAllowedWarning=Setting document.domain in a cross-origin isolated environment is not allowed.
+
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingInterfaceWarning=TestingDeprecatedInterface is a testing-only interface and this is its testing deprecation message.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingMethodWarning=TestingDeprecatedInterface.deprecatedMethod() is a testing-only method and this is its testing deprecation message.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingAttributeWarning=TestingDeprecatedInterface.deprecatedAttribute is a testing-only attribute and this is its testing deprecation message.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+CreateImageBitmapCanvasRenderingContext2DWarning=Use of CanvasRenderingContext2D in createImageBitmap is deprecated.
+
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
+DrawWindowCanvasRenderingContext2DWarning=Use of drawWindow method from CanvasRenderingContext2D is deprecated. Use tabs.captureTab extensions API instead https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs/captureTab
+
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() is deprecated.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange is deprecated.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror is deprecated.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider is deprecated.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+MouseEvent_MozPressureWarning=MouseEvent.mozPressure is deprecated. Use PointerEvent.pressure instead.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+MathML_DeprecatedMathSizeValueWarning=“small”, “normal” and “big” are deprecated values for the mathsize attribute and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” and “veryverythickmathspace” are deprecated values for MathML lengths and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+MathML_DeprecatedStyleAttributeWarning=MathML attributes “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” and “fontweight” are deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+MathML_DeprecatedStixgeneralOperatorStretchingWarning=Support for rendering stretched MathML operators with STIXGeneral fonts is deprecated and may be removed at a future date. For details about newer fonts that will continue to be supported, see %S
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+MathML_DeprecatedScriptminsizeAttributeWarning=MathML attribute “scriptminsize” is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+MathML_DeprecatedScriptsizemultiplierAttributeWarning=MathML attribute “scriptsizemultiplier” is deprecated and will be removed at a future date.
+FormSubmissionUntrustedEventWarning=Form submission via untrusted submit event is deprecated and will be removed at a future date.
+WebShareAPI_Failed=Jakamisoperaatio on epäonnistunut.
+WebShareAPI_Aborted=Jakamisoperaatio keskeytettiin.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+UnknownProtocolNavigationPrevented=Estettiin siirtyminen osoitteeseen “%1$S” tuntemattoman protokollan takia.
+PostMessageSharedMemoryObjectToCrossOriginWarning=Cannot post message containing a shared memory object to a cross-origin window.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+UnusedLinkPreloadPending=The resource at “%S” preloaded with link preload was not used within a few seconds. Make sure all attributes of the preload tag are set correctly.
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+RequestStorageAccessNullPrincipal=document.requestStorageAccess() may not be called on a document with an opaque origin, such as a sandboxed iframe without allow-same-origin in its sandbox attribute.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+RequestStorageAccessSandboxed=document.requestStorageAccess() may not be called in a sandboxed iframe without allow-storage-access-by-user-activation in its sandbox attribute.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+RequestStorageAccessNested=document.requestStorageAccess() may not be called in a nested iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+RequestStorageAccessUserGesture=document.requestStorageAccess() may only be requested from inside a short running user-generated event handler.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+LocChangeFloodingPrevented=Too many calls to Location or History APIs within a short timeframe.
+FolderUploadPrompt.title = Vahvista lähetys
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+FolderUploadPrompt.message = Haluatko varmasti lähettää kaikki tiedostot kansiosta ”%S”? Tee tämä vain, jos luotat sivustoon.
+FolderUploadPrompt.acceptButtonLabel = Lähetä
+InputPickerBlockedNoUserActivation=<input> picker was blocked due to lack of user activation.
+ExternalProtocolFrameBlockedNoUserActivation=Iframe with external protocol was blocked due to lack of user activation, or because not enough time has passed since the last such iframe was loaded.
+MultiplePopupsBlockedNoUserActivation=Opening multiple popups was blocked due to lack of user activation.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+PreloadIgnoredInvalidAttr=Preload of %S was ignored due to unknown “as” or “type” values, or non-matching “media” attribute.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+BlobDifferentClusterError=Cannot access blob URL “%S” from a different agent cluster.
+# LOCALIZATION NOTE: Do not translate "Element.setCapture()" and "Element.setPointerCapture()"".
+ElementSetCaptureWarning=Element.setCapture() is deprecated. Use Element.setPointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture
+# LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
+ElementReleaseCaptureWarning=Element.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+# LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
+DocumentReleaseCaptureWarning=Document.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+
+# LOCALIZATION NOTE: Don't translate browser.runtime.lastError, %S is the error message from the unchecked value set on browser.runtime.lastError.
+WebExtensionUncheckedLastError=browser.runtime.lastError value was not checked: %S
+
+# LOCALIZATION NOTE: Do not translate "OffscreenCanvas.toBlob()" and "OffscreenCanvas.convertToBlob()".
+OffscreenCanvasToBlobWarning=OffscreenCanvas.toBlob() is deprecated. Use OffscreenCanvas.convertToBlob() instead.
+
+# LOCALIZATION NOTE: Do not translate "InstallTrigger"
+InstallTriggerDeprecatedWarning=InstallTrigger is deprecated and will be removed in the future.
+# LOCALIZATION NOTE: Do not translate "InstallTrigger.install()"
+InstallTriggerInstallDeprecatedWarning=InstallTrigger.install() is deprecated and will be removed in the future. For more help https://extensionworkshop.com/documentation/publish/self-distribution/
+
+# LOCALIZATION NOTE: Do not translate "mozCurrentTransform", "CanvasRenderingContext2D.getTransform()", and "CanvasRenderingContext2D.setTransform()".
+# LOCALIZATION NOTE: Do not translate "mozCurrentTransformInverse", "CanvasRenderingContext2D.getTransform()", and "CanvasRenderingContext2D.setTransform()".
+
+
+FullscreenDeniedPopoverOpen=Request for fullscreen was denied because the element is already open as a popover.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.nearestViewportElement or SVGElement.viewportElement.
+SVGNearestViewportElement=SVGGraphicsElement.nearestViewportElement is deprecated and will be removed at a future date. Use SVGElement.viewportElement instead.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.farthestViewportElement.
+SVGFarthestViewportElement=SVGGraphicsElement.farthestViewportElement is deprecated and will be removed at a future date.
+ModuleResolveFailureNoWarn=Error resolving module specifier “%S”.
+ModuleResolveFailureWarnRelative=Error resolving module specifier “%S”. Relative module specifiers must start with “./”, “../” or “/”.
+ImportMapInvalidTopLevelKey=An invalid top-level key “%S” was present in the import map.
+ImportMapEmptySpecifierKeys=Specifier keys cannot be empty strings.
+ImportMapAddressesNotStrings=Addresses need to be strings.
+# %1$S is the specifier key, %2$S is the URL.
+ImportMapAddressNotEndsWithSlash=An invalid address was given for the specifier key “%1$S”; since “%1$S” ended in a slash, the address “%2$S” needs to as well.
+ImportMapScopePrefixNotParseable=The scope prefix URL “%S” was not parseable.
+ImportMapResolutionBlockedByNullEntry=Resolution of specifier “%S” was blocked by a null entry.
+ImportMapResolutionBlockedByAfterPrefix=Resolution of specifier “%S” was blocked since the substring after prefix could not be parsed as a URL relative to the address in the import map.
+ImportMapResolutionBlockedByBacktrackingPrefix=Resolution of specifier “%S” was blocked since the parsed URL does not start with the address in the import map.
+ImportMapResolveInvalidBareSpecifierWarnRelative=The specifier “%S” was a bare specifier, but was not remapped to anything. Relative module specifiers must start with “./”, “../” or “/”.
+# LOCALIZATION NOTE: Do not translate "<script type='importmap'>", "src".
+ImportMapExternalNotSupported=External import maps are not supported: <script type='importmap'> with a src attribute is currently not supported.
+ImportMapNotAllowedMultiple=Multiple import maps are not allowed.
+ImportMapNotAllowedAfterModuleLoad=Import maps are not allowed after a module load or preload has started.
+# LOCALIZATION NOTE: Do not translate "HTMLOptionsCollection.length". %1$S is the invalid value, %2$S is the current limit.
+SelectOptionsLengthAssignmentWarning=Refused to expand <select> option list via assignment to HTMLOptionsCollection.length (value %1$S). The maximum supported size is %2$S.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/extensions.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/extensions.properties
new file mode 100644
index 0000000000..5fc478732c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/extensions.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = Poista %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = Laajennus ”%S” pyytää, että se poistetaan. Mitä tehdään?
+
+uninstall.confirmation.button-0.label = Poista
+uninstall.confirmation.button-1.label = Pidä asennettuna
+
+saveaspdf.saveasdialog.title = Tallenna nimellä
+
+#LOCALIZATION NOTE (newTabControlled.message2) %S is the icon and name of the extension which updated the New Tab page.
+newTabControlled.message2 = Laajennus, %S, muutti sivun, jonka näet avatessasi uuden välilehden.
+newTabControlled.learnMore = Lue lisää
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = Laajennus, %S, muutti sivun, jonka näet avatessasi aloitussivun tai uuden ikkunan.
+homepageControlled.learnMore = Lue lisää
+
+#LOCALIZATION NOTE (tabHideControlled.message) %1$S is the icon and name of the extension which hid tabs, %2$S is the icon of the all tabs button.
+tabHideControlled.message = Laajennus, %1$S, pitää joitain välilehtiä piilossa. Voit edelleen käyttää niitä %2$S-painikkeen kautta.
+tabHideControlled.learnMore = Lue lisää
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/fallbackMenubar.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..f07487b6b3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/fallbackMenubar.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=Lopeta
+quitMenuitem.key=q
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/filepicker.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/filepicker.properties
new file mode 100644
index 0000000000..46b6ec46ec
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/filepicker.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The extensions to which these descriptions refer
+# now live in toolkit/content/filepicker.properties
+allTitle=Kaikki tiedostot
+htmlTitle=HTML-tiedostot
+textTitle=Tekstitiedostot
+imageTitle=Kuvatiedostot
+xmlTitle=XML-tiedostot
+xulTitle=XUL-tiedostot
+appsTitle=Ohjelmat
+audioTitle=Äänitiedostot
+videoTitle=Videotiedostot
+
+pdfTitle=PDF-tiedostot
+
+formatLabel=Tiedostomuoto:
+selectedFileNotReadableError=Valittuun tiedostoon ei ole lukuoikeutta
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/global-strres.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/global-strres.properties
new file mode 100644
index 0000000000..a9dc991328
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/global-strres.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+16389=Tuntematon virhe tapahtui (%1$S)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.css b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.css
new file mode 100644
index 0000000000..2f54eb367d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.css
@@ -0,0 +1,11 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*
+ * This file contains all localizable skin settings such as
+ * font, layout, and geometry
+ */
+window {
+ font: 3mm tahoma,arial,helvetica,sans-serif;
+}
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.properties
new file mode 100644
index 0000000000..4826bdb1cf
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/intl.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.accept_languages):
+# This is a comma-separated list of valid BCP 47 language tags.
+#
+# Begin with the value of 'general.useragent.locale'. Next, include language
+# tags for other languages that you expect most users of your locale to be
+# able to speak, so that their browsing experience degrades gracefully if
+# content is not available in their primary language.
+#
+# It is recommended that you include "en-US, en" at the end of the list as a
+# last resort. However, if you know that users of your locale would prefer a
+# different variety of English, or if they are not likely to understand
+# English at all, you may opt to include a different English language tag, or
+# to exclude English altogether.
+#
+# For example, the Breton [br] locale might consider including French and
+# British English in their list, since those languages are commonly spoken in
+# the same area as Breton:
+# intl.accept_languages=br, fr-FR, fr, en-GB, en
+intl.accept_languages=fi-fi, fi, en-us, en
+
+# LOCALIZATION NOTE (font.language.group):
+# This preference controls the initial setting of the language drop-down menu
+# in the Content > Fonts & Colors > Advanced preference panel.
+#
+# Set it to the value of one of the menuitems in the "selectLangs" menulist in
+# http://mxr.mozilla.org/mozilla/source/browser/components/preferences/fonts.xul
+font.language.group=x-western
+
+# LOCALIZATION NOTE (pluralRule): Pick the appropriate plural rule for your
+# language. This will determine how many plural forms of a word you will need
+# to provide and in what order.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+pluralRule=1
+
+# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys):
+# Valid values are: true, false, <empty string>
+# Missing preference or empty value equals false.
+intl.menuitems.alwaysappendaccesskeys=
+intl.menuitems.insertseparatorbeforeaccesskeys=true
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/keys.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/keys.properties
new file mode 100644
index 0000000000..9173c63d23
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/keys.properties
@@ -0,0 +1,78 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevelant kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevalent kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# F1..F10 should probably not be translated unless there are keyboards that actually have other labels
+# F11..F20 might be something else, but are really keyboard specific and not region/language specific
+# there are actually two different F11/F12 keys, I don't know which one these labels represent.
+# eg, F13..F20 on a sparc keyboard are labeled Props, Again .. Find, Cut
+# sparc also has Stop, Again and F11/F12. VK_F11/VK_F12 probably map to Stop/Again
+# LOCALIZATION NOTE : BLOCK Do not translate the next block
+VK_F1=F1
+VK_F2=F2
+VK_F3=F3
+VK_F4=F4
+VK_F5=F5
+VK_F6=F6
+VK_F7=F7
+VK_F8=F8
+VK_F9=F9
+VK_F10=F10
+
+VK_F11=F11
+VK_F12=F12
+VK_F13=F13
+VK_F14=F14
+VK_F15=F15
+VK_F16=F16
+VK_F17=F17
+VK_F18=F18
+VK_F19=F19
+VK_F20=F20
+# LOCALIZATION NOTE : BLOCK end do not translate block
+
+# LOCALIZATION NOTE : BLOCK GLYPHS, DO translate this block
+VK_UP=Nuoli yl\u00F6s
+VK_DOWN=Nuoli alas
+VK_LEFT=Nuoli vasemmalle
+VK_RIGHT=Nuoli oikealle
+VK_PAGE_UP=Page Up
+VK_PAGE_DOWN=Page Down
+# LOCALIZATION NOTE : BLOCK end GLYPHS
+
+# Enter, backspace, and Tab might have both glyphs and text
+# if the keyboards usually have a glyph,
+# if there is a meaningful translation,
+# or if keyboards are localized
+# then translate them or insert the appropriate glyph
+# otherwise you should probably just translate the glyph regions
+
+VK_TAB=Sarkain
+VK_BACK=Askelpalautin
+VK_DELETE=Del
+# LOCALIZATION NOTE : BLOCK end maybe GLYPHS
+# LOCALIZATION NOTE : BLOCK typing state keys
+VK_HOME=Home
+VK_END=End
+
+VK_ESCAPE=Esc
+VK_INSERT=Ins
+# LOCALIZATION NOTE : BLOCK end
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/HtmlForm.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/HtmlForm.properties
new file mode 100644
index 0000000000..dd472b99dc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/HtmlForm.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Reset=Palauta oletusarvot
+Submit=Lähetä
+Browse=Selaa…
+FileUpload=Lähetä tiedosto
+DirectoryUpload=Valitse lähetettävä kansio
+DirectoryPickerOkButtonLabel=Lähetä
+ForgotPostWarning=Lomakkeessa on määre enctype=%S, mutta siitä puuttuu määre method=post. Lähetetään sen sijaan normaalisti attribuutilla method=GET ilman enctype-tietoa.
+ForgotFileEnctypeWarning=Lomakkeessa on tiedoston syöttökenttä, mutta siitä puuttuu määreet method=POST ja enctype=multipart/form-data. Tiedostoa ei lähetetä.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=Lomake lähetetty %Sista
+CannotEncodeAllUnicode=Lomake lähetettiin %S-koodauksella, joka ei kata kaikkia Unicode-merkkejä. Käyttäjän viesti voi välittyä virheellisesti. Ongelman voi välttää muuttamalla sivua niin, että lomake lähetetään UTF-8 -merkistökoodauksella. Tämän voi tehdä joko muuttamalla itse sivun merkistökoodauksen UTF-8:ksi tai määrittämällä "accept-charset=utf-8" lomake-elementtiin.
+AllSupportedTypes=Kaikki tuetut tyypit
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=Ei valittua tiedostoa.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=Ei valittuja tiedostoja.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=Ei valittua kansiota.
+# LOCALIZATION NOTE (XFilesSelected): this string is shown on a
+# <input type='file' multiple> when there are more than one selected file.
+# %S will be a number greater or equal to 2.
+XFilesSelected=%S tiedostoa valittu.
+ColorPicker=Valitse väri
+# LOCALIZATION NOTE (DefaultSummary): this string is shown on a <details> when
+# it has no direct <summary> child. Google Chrome should already have this
+# string translated.
+DefaultSummary=Yksityiskohdat
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/MediaDocument.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/MediaDocument.properties
new file mode 100644
index 0000000000..99291dc14c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/MediaDocument.properties
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (ImageTitleWithDimensions2AndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height
+#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type
+#LOCALIZATION NOTE (ImageTitleWithDimensions2): first %S is type, second %S is width and third %S is height
+#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type
+#LOCALIZATION NOTE (MediaTitleWithFile): first %S is filename, second %S is type
+#LOCALIZATION NOTE (MediaTitleWithNoInfo): first %S is type
+ImageTitleWithDimensions2AndFile=%S (%S-kuva, %S\u00A0\u00D7\u00A0%S kuvapistettä)
+ImageTitleWithoutDimensions=%S (%S-kuva)
+ImageTitleWithDimensions2=(%S-kuva, %S\u00A0\u00D7\u00A0%S kuvapistettä)
+ImageTitleWithNeitherDimensionsNorFile=(%S-kuva)
+MediaTitleWithFile=%S (%S-tiedosto)
+MediaTitleWithNoInfo=(%S-tiedosto)
+
+InvalidImage=Kuvaa %S ei voida näyttää, koska se sisältää virheitä.
+UnsupportedImage=Kuvaa ”%S” ei voida näyttää, koska se vaatii ominaisuuksia, joita ei tueta.
+ScaledImage=Pienennetty (%S %% alkuperäisestä)
+
+TitleWithStatus=%S — %S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties
new file mode 100644
index 0000000000..a6cf47bfb3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties
@@ -0,0 +1,145 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Encoding warnings and errors
+EncNoDeclarationFrame=Kehystetyn dokumentin käyttämää merkistökoodausta ei määritelty. Dokumentti voi näyttää erilaiselta jos se ei ole kehystetty.
+EncXmlDecl=The character encoding of an HTML document was declared using the XML declaration syntax. This is non-conforming, and declaring the encoding using a meta tag at the start of the head part is more efficient.
+EncMetaTooLate=A meta tag attempting to declare the character encoding declaration was found too late, and the encoding was guessed from content instead. The meta tag needs to be moved to the start of the head part of the document.
+EncMetaTooLateFrame=A meta tag attempting to declare the character encoding declaration was found too late, and the encoding of the parent document was used instead. The meta tag needs to be moved to the start of the head part of the document.
+EncMetaAfterHeadInKilobyte=The meta tag declaring the character encoding of the document should be moved to start of the head part of the document.
+EncNoDecl=The character encoding of the document was not declared, so the encoding was guessed from content. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncNoDeclPlain=The character encoding of the document was not declared, so the encoding was guessed from content. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncMetaUnsupported=HTML-dokumentille on määritelty ei tuettu merkistökoodaus meta-tunnisteella. Määrittelyä ei huomioitu.
+EncProtocolUnsupported=Ei tuettu merkistökoodaus määritelty tiedonsiirtotasolla. Määrittelyä ei huomioitu.
+EncMetaUtf16=Meta-tunnisteella määriteltiin merkistökoodaukseksi UTF-16. Tämän tulkittiin tarkoittavan UTF-8:a.
+EncMetaUserDefined=Meta-tunnisteella määriteltiin merkistökoodaukseksi x-user-defined. Tämän tulkittiin tarkoittavan windows-1252:a, jotta varmistettaisiin yhteensopivuus tarkoituksella väärin koodattujen vanhojen kirjasinlajien kanssa. Tämän sivuston pitäisi ruveta käyttämään Unicode-koodausta.
+
+EncMetaReplacement=A meta tag was used to declare an encoding that is a cross-site scripting hazard. The replacement encoding was used instead.
+EncProtocolReplacement=An encoding that is a cross-site scripting hazard was declared on the transfer protocol level. The replacement encoding was used instead.
+EncDetectorReload=The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncDetectorReloadPlain=The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncError=The byte stream was erroneous according to the character encoding that was declared. The character encoding declaration may be incorrect.
+EncErrorFrame=The byte stream was erroneous according to the character encoding that was inherited from the parent document. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncErrorFramePlain=The byte stream was erroneous according to the character encoding that was inherited from the parent document. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncSpeculationFailMeta=The start of the document was reparsed, because there were non-ASCII characters before the meta tag that declared the encoding. The meta should be the first child of head without non-ASCII comments before.
+EncSpeculationFailXml=The start of the document was reparsed, because there were non-ASCII characters in the part of the document that was unsuccessfully searched for a meta tag before falling back to the XML declaration syntax. A meta tag at the start of the head part should be used instead of the XML declaration syntax.
+# The audience of the following message isn't the author of the document but other people debugging browser behavior.
+EncSpeculationFail2022=The start of the document was reparsed, because ISO-2022-JP is an ASCII-incompatible encoding.
+
+# The bulk of the messages below are derived from
+# https://hg.mozilla.org/projects/htmlparser/file/1f633cef7de7/src/nu/validator/htmlparser/impl/ErrorReportingTokenizer.java
+# which is available under the MIT license.
+
+# Tokenizer errors
+errGarbageAfterLtSlash=Garbage after “</”.
+errLtSlashGt=Saw “</>”. Probable causes: Unescaped “<” (escape as “&lt;”) or mistyped end tag.
+errCharRefLacksSemicolon=Character reference was not terminated by a semicolon.
+errNoDigitsInNCR=No digits in numeric character reference.
+errGtInSystemId=“>” in system identifier.
+errGtInPublicId=“>” in public identifier.
+errNamelessDoctype=Nameless doctype.
+errConsecutiveHyphens=Consecutive hyphens did not terminate a comment. “--” is not permitted inside a comment, but e.g. “- -” is.
+errPrematureEndOfComment=Premature end of comment. Use “-->” to end a comment properly.
+errBogusComment=Bogus comment.
+errUnquotedAttributeLt=“<” in an unquoted attribute value. Probable cause: Missing “>” immediately before.
+errUnquotedAttributeGrave=“`” in an unquoted attribute value. Probable cause: Using the wrong character as a quote.
+errUnquotedAttributeQuote=Quote in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
+errUnquotedAttributeEquals=“=” in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
+errSlashNotFollowedByGt=A slash was not immediately followed by “>”.
+errNoSpaceBetweenAttributes=No space between attributes.
+errUnquotedAttributeStartLt=“<” at the start of an unquoted attribute value. Probable cause: Missing “>” immediately before.
+errUnquotedAttributeStartGrave=“`” at the start of an unquoted attribute value. Probable cause: Using the wrong character as a quote.
+errUnquotedAttributeStartEquals=“=” at the start of an unquoted attribute value. Probable cause: Stray duplicate equals sign.
+errAttributeValueMissing=Attribute value missing.
+errBadCharBeforeAttributeNameLt=Saw “<” when expecting an attribute name. Probable cause: Missing “>” immediately before.
+errEqualsSignBeforeAttributeName=Saw “=” when expecting an attribute name. Probable cause: Attribute name missing.
+errBadCharAfterLt=Bad character after “<”. Probable cause: Unescaped “<”. Try escaping it as “&lt;”.
+errLtGt=Saw “<>”. Probable causes: Unescaped “<” (escape as “&lt;”) or mistyped start tag.
+errProcessingInstruction=Saw “<?”. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.)
+errUnescapedAmpersandInterpretedAsCharacterReference=The string following “&” was interpreted as a character reference. (“&” probably should have been escaped as “&amp;”.)
+errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or “&” should have been escaped as “&amp;”.)
+errNoNamedCharacterMatch=“&” did not start a character reference. (“&” probably should have been escaped as “&amp;”.)
+errQuoteBeforeAttributeName=Saw a quote when expecting an attribute name. Probable cause: “=” missing immediately before.
+errLtInAttributeName=“<” in attribute name. Probable cause: “>” missing immediately before.
+errQuoteInAttributeName=Quote in attribute name. Probable cause: Matching quote missing somewhere earlier.
+errExpectedPublicId=Expected a public identifier but the doctype ended.
+errBogusDoctype=Bogus doctype.
+maybeErrAttributesOnEndTag=End tag had attributes.
+maybeErrSlashInEndTag=Stray “/” at the end of an end tag.
+errNcrNonCharacter=Character reference expands to a non-character.
+errNcrSurrogate=Character reference expands to a surrogate.
+errNcrControlChar=Character reference expands to a control character.
+errNcrCr=A numeric character reference expanded to carriage return.
+errNcrInC1Range=A numeric character reference expanded to the C1 controls range.
+errEofInPublicId=End of file inside public identifier.
+errEofInComment=End of file inside comment.
+errEofInDoctype=End of file inside doctype.
+errEofInAttributeValue=End of file reached when inside an attribute value. Ignoring tag.
+errEofInAttributeName=End of file occurred in an attribute name. Ignoring tag.
+errEofWithoutGt=Saw end of file without the previous tag ending with “>”. Ignoring tag.
+errEofInTagName=End of file seen when looking for tag name. Ignoring tag.
+errEofInEndTag=End of file inside end tag. Ignoring tag.
+errEofAfterLt=End of file after “<”.
+errNcrOutOfRange=Character reference outside the permissible Unicode range.
+errNcrUnassigned=Character reference expands to a permanently unassigned code point.
+errDuplicateAttribute=Duplicate attribute.
+errEofInSystemId=End of file inside system identifier.
+errExpectedSystemId=Expected a system identifier but the doctype ended.
+errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
+errNcrZero=Character reference expands to zero.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
+errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=No space between the doctype “PUBLIC” keyword and the quote.
+
+# Tree builder errors
+errDeepTree=The document tree is too deep. The tree will be flattened to be 513 elements deep.
+errStrayStartTag2=Stray start tag “%1$S”.
+errStrayEndTag=Stray end tag “%1$S”.
+errUnclosedElements=End tag “%1$S” seen, but there were open elements.
+errUnclosedElementsImplied=End tag “%1$S” implied, but there were open elements.
+errUnclosedElementsCell=A table cell was implicitly closed, but there were open elements.
+errStrayDoctype=Stray doctype.
+errAlmostStandardsDoctype=Almost standards mode doctype. Expected “<!DOCTYPE html>”.
+errQuirkyDoctype=Quirky doctype. Expected “<!DOCTYPE html>”.
+errAlmostStandardsDoctypeVerbose=This page is in Almost Standards Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
+errQuirkyDoctypeVerbose=This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
+errNonSpaceInTrailer=Non-space character in page trailer.
+errNonSpaceAfterFrameset=Non-space after “frameset”.
+errNonSpaceInFrameset=Non-space in “frameset”.
+errNonSpaceAfterBody=Non-space character after body.
+errNonSpaceInColgroupInFragment=Non-space in “colgroup” when parsing fragment.
+errNonSpaceInNoscriptInHead=Non-space character inside “noscript” inside “head”.
+errFooBetweenHeadAndBody=“%1$S” element between “head” and “body”.
+errStartTagWithoutDoctype=Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+errNoSelectInTableScope=No “select” in table scope.
+errStartSelectWhereEndSelectExpected=“select” start tag where end tag expected.
+errStartTagWithSelectOpen=“%1$S” start tag with “select” open.
+errBadStartTagInNoscriptInHead=Bad start tag “%1$S” in “noscript” in “head”.
+errImage=Saw a start tag “image”.
+errFooSeenWhenFooOpen2=Start tag “%1$S” seen but an element of the same type was already open.
+errHeadingWhenHeadingOpen=Heading cannot be a child of another heading.
+errFramesetStart=“frameset” start tag seen.
+errNoCellToClose=No cell to close.
+errStartTagInTable=Start tag “%1$S” seen in “table”.
+errFormWhenFormOpen=Saw a “form” start tag, but there was already an active “form” element. Nested forms are not allowed. Ignoring the tag.
+errTableSeenWhileTableOpen=Start tag for “table” seen but the previous “table” is still open.
+errStartTagInTableBody=“%1$S” start tag in table body.
+errEndTagSeenWithoutDoctype=End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+errEndTagAfterBody=Saw an end tag after “body” had been closed.
+errEndTagSeenWithSelectOpen=“%1$S” end tag with “select” open.
+errGarbageInColgroup=Garbage in “colgroup” fragment.
+errEndTagBr=End tag “br”.
+errNoElementToCloseButEndTagSeen=No “%1$S” element in scope but a “%1$S” end tag seen.
+errHtmlStartTagInForeignContext=HTML start tag “%1$S” in a foreign namespace context.
+errNoTableRowToClose=No table row to close.
+errNonSpaceInTable=Misplaced non-space characters inside a table.
+errUnclosedChildrenInRuby=Unclosed children in “ruby”.
+errStartTagSeenWithoutRuby=Start tag “%1$S” seen without a “ruby” element being open.
+errSelfClosing=Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.
+errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
+errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
+errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
+errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Unclosed element or elements.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/xmlparser.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/xmlparser.properties
new file mode 100644
index 0000000000..d77bb4c6d7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/xmlparser.properties
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Map Expat error codes to error strings
+1 = muisti ei riitä
+2 = syntaksivirhe
+3 = juurielementtiä ei löytynyt
+4 = XML ei ole hyvämuotoista
+5 = sulkematon poletti
+6 = vaillinainen merkki
+7 = elementin alku- ja loppumerkintä eivät täsmää
+8 = elementillä on sama attribuutti kahdesti
+9 = ylimääräistä sisältöä juurielementin jälkeen
+10 = virheellinen parametrientiteettiviittaus
+11 = määrittelemätön entiteetti
+12 = rekursiivinen entiteettiviittaus
+13 = asynkroninen entiteetti
+14 = viittaus virheelliseen merkistönumeroon
+15 = viittaus binäärientiteettiin
+16 = attribuutissa on viittaus ulkoiseen entiteettiin
+17 = XML- tai tekstimäärittely ei ole entiteetin alussa
+18 = tuntematon merkistö
+19 = XML-määrittelyssä määritetty koodaus on väärä
+20 = avoin CDATA-lohko
+21 = virhe ulkoisen entiteettiviittauksen käsittelyssä
+22 = dokumentti on muista tiedostoista riippuvainen
+23 = jäsennin päätyi odottamattomaan tilaan
+24 = entiteetti määriteltiin parametrientiteetissä
+27 = etuliitettä ei ole sidottu nimiavaruuteen
+28 = etuliitteen määrittelyä ei saa poistaa
+29 = puutteellinen merkintä parametrientiteetissä
+30 = XML-määrittely on virheellisesti muotoiltu
+31 = tekstimäärittely on virheellisesti muotoiltu
+32 = julkisessa tunnisteeessa on kiellettyjä merkkejä
+38 = varatun etuliitteen (xml) määrittelyä ei saa poistaa tai sitoa toiseen nimiavaruus-URI:in
+39 = varattua etuliitettä (xmlns) ei saa määritellä tai poistaa määrittelyä
+40 = etuliitettä ei saa sitoa varattuun nimiavaruus-URI:in
+
+# %1$S is replaced by the Expat error string, may be followed by Expected (see below)
+# %2$S is replaced by URL
+# %3$u is replaced by line number
+# %4$u is replaced by column number
+XMLParsingError = XML-jäsennysvirhe: %1$S\nURL: %2$S\nRivinumero %3$u, sarake %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . Odotettu elementtimerkintä: </%S>.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties
new file mode 100644
index 0000000000..de7c726605
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ImageMapRectBoundsError=The "coords" attribute of the <area shape="rect"> tag is not in the "left,top,right,bottom" format.
+ImageMapCircleWrongNumberOfCoords=The "coords" attribute of the <area shape="circle"> tag is not in the "center-x,center-y,radius" format.
+ImageMapCircleNegativeRadius=The "coords" attribute of the <area shape="circle"> tag has a negative radius.
+ImageMapPolyWrongNumberOfCoords=The "coords" attribute of the <area shape="poly"> tag is not in the "x1,y1,x2,y2 …" format.
+ImageMapPolyOddNumberOfCoords=The "coords" attribute of the <area shape="poly"> tag is missing the last "y" coordinate (the correct format is "x1,y1,x2,y2 …").
+
+ScrollLinkedEffectFound3=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features!
+
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
+## %1$S is an integer value of the area of the frame
+## %2$S is an integer value of the area of a limit based on the viewport size
+CompositorAnimationWarningContentTooLargeArea=Animation cannot be run on the compositor because the area of the frame (%1$S) is too large relative to the viewport (larger than %2$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLarge2):
+## (%1$S, %2$S) is a pair of integer values of the frame size
+## (%3$S, %4$S) is a pair of integer values of a limit based on the viewport size
+## (%5$S, %6$S) is a pair of integer values of an absolute limit
+CompositorAnimationWarningContentTooLarge2=Animation cannot be run on the compositor because the frame size (%1$S, %2$S) is too large relative to the viewport (larger than (%3$S, %4$S)) or larger than the maximum allowed value (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=Animations of ‘backface-visibility: hidden’ transforms cannot be run on the compositor
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=Animations of ‘transform’ on elements with SVG transforms cannot be run on the compositor
+CompositorAnimationWarningTransformWithGeometricProperties=Animations of ‘transform’ cannot be run on the compositor when geometric properties are animated on the same element at the same time
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=Animation of ‘transform’ cannot be run on the compositor because it should be synchronized with animations of geometric properties that started at the same time
+CompositorAnimationWarningTransformFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘transform’ animation
+CompositorAnimationWarningTransformIsBlockedByImportantRules=Transform animation cannot be run on the compositor because transform-related properties are overridden by !important rules
+CompositorAnimationWarningOpacityFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘opacity’ animation
+CompositorAnimationWarningHasRenderingObserver=Animation cannot be run on the compositor because the element has rendering observers (-moz-element or SVG clipping/masking)
+CompositorAnimationWarningHasCurrentColor=Animations of ‘background-color’ cannot be run on the compositor with ‘current-color’ keyframe.
+
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”.
+
+## LOCALIZATION NOTE(PrincipalWritingModePropagationWarning):
+## Do not translate <html>, <body>, CSS, "writing-mode", "direction", "text-orientation", :root, and "The Principal Writing Mode" because they are technical terms.
+PrincipalWritingModePropagationWarning=When rendering the <html> element, the used values of CSS properties “writing-mode”, “direction”, and “text-orientation” on the <html> element are taken from the computed values of the <body> element, not from the <html> element’s own values. Consider setting these properties on the :root CSS pseudo-class. For more information see “The Principal Writing Mode” in https://www.w3.org/TR/css-writing-modes-3/#principal-flow
+
+## LOCALIZATION NOTE(ScrollAnchoringDisabledInContainer):
+## %1$S is an integer value with the total number of adjustments
+## %2$S is a floating point value with the average distance adjusted
+## %3$S is a floating point value with the total adjusted distance
+ScrollAnchoringDisabledInContainer=Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (%1$S) with too little total distance (%2$S px average, %3$S px total).
+
+ForcedLayoutStart=Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/mathml/mathml.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/mathml/mathml.properties
new file mode 100644
index 0000000000..28793b66d0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/mathml/mathml.properties
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+InvalidChild=Invalid markup: <%1$S> is not allowed as a child of <%2$S>.
+ChildCountIncorrect=Invalid markup: Incorrect number of children for <%1$S/> tag.
+DuplicateMprescripts=Invalid markup: More than one <mprescripts/> in <mmultiscripts/>.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=Invalid markup: Expected exactly one Base element in <mmultiscripts/>. Found none.
+SubSupMismatch=Invalid markup: Incomplete subscript/superscript pair in <mmultiscripts/>.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=Error in parsing the value '%1$S' for '%2$S' attribute of <%3$S/>. Attribute ignored.
+AttributeParsingErrorNoTag=Error in parsing the value '%1$S' for '%2$S' attribute. Attribute ignored.
+LengthParsingError=Error in parsing MathML attribute value '%1$S' as length. Attribute ignored.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/narrate.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/narrate.properties
new file mode 100644
index 0000000000..df82a0c6c1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/narrate.properties
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# "Listen, which allows users to listen to Firefox reading the text,
+# instead of having to read it themselves." This is the name
+# of the feature and it is the label for the popup button.
+# %S is the keyboard shortcut for the listen command
+listen-label = Kuuntele (%S)
+back = Takaisin
+# %S is the keyboard shortcut for the start command
+start-label = Aloita (%S)
+# %S is the keyboard shortcut for the stop command
+stop-label = Pysäytä (%S)
+# Keyboard shortcut to toggle the narrate feature
+narrate-key-shortcut = K
+forward = Eteenpäin
+speed = Nopeus
+selectvoicelabel = Ääni:
+# Default voice is determined by the language of the document.
+defaultvoice = Oletus
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/nsWebBrowserPersist.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..7b70cb3afd
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/nsWebBrowserPersist.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+readError=Tiedostoa %S ei voitu tallentaa, koska lähdetiedostoa ei voitu lukea.\n\nYritä myöhemmin uudelleen tai ota yhteyttä palvelimen ylläpitäjään.
+writeError=Tiedostoa %S ei voitu tallentaa tuntemattoman virheen vuoksi.\n\nPahoittelumme. Yritä tallentaa toiseen kansioon.
+launchError=Tiedostoa %S ei voitu avata tuntemattoman virheen vuoksi.\n\nMozilla.org pahoittelee. Yritä ensin tallentaa tiedosto levylle ja vasta sitten avata tiedosto.
+diskFull=Levyllä ei ole tarpeeksi tilaa, jotta %S voitaisiin tallentaa.\n\nPoista tarpeettomia tiedostoja ja yritä uudelleen tai yritä tallentaa muualle.
+readOnly=Tiedostoa %S ei voitu tallentaa, koska levylle, kansioon tai tiedostoon ei ole kirjoitusoikeuksia.\n\nPoista kirjoitussuojaus tai koita tallentaa muualle.
+accessError=Kohdetta %S ei voitu tallentaa, koska et voi muuttaa sen kansion sisältöä.\n\nMuuta kansion oikeuksia ja yritä uudelleen tai koita tallentaa muualle.
+SDAccessErrorCardReadOnly=Ei voitu ladata tiedostoa, koska SD-korttia on käytössä.
+SDAccessErrorCardMissing=Ei voitu ladata tiedostoa, koska SD-korttia ei löydy.
+helperAppNotFound=Tiedostoa %S ei voitu avata, koska tiedostotyyppiin liitettyä apuohjelmaa ei löydy. Muuta tiedostotyypin asetuksia.
+noMemory=Muisti ei riitä pyytämäsi toiminnon suorittamiseen.\n\nSulje joitain ohjelmia ja yritä uudestaan.
+title=Ladataan: %S
+fileAlreadyExistsError=Tiedostoa %S ei voitu tallentaa, koska samanniminen tiedosto on jo olemassa "_tiedostot"-kansiona.\n\nTallenna tiedosto toiseen kansioon.
+fileNameTooLongError=Tiedostoa %S ei voitu tallentaa, koska tiedostonimi on liian pitkä.\n\nTallenna tiedosto lyhyemmällä nimellä.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/printdialog.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/printdialog.properties
new file mode 100644
index 0000000000..a436284cff
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/printdialog.properties
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# These strings are used in the native GTK, Mac and Windows print dialogs.
+
+# GTK titles:
+printTitleGTK=Tulosta
+optionsTabLabelGTK=Asetukset
+
+# Mac titles:
+optionsTitleMac=Asetukset:
+appearanceTitleMac=Ulkonäkö:
+pageHeadersTitleMac=Sivun yläotsakkeet:
+pageFootersTitleMac=Sivun alaotsakkeet:
+
+# Windows titles:
+optionsTitleWindows=Asetukset
+
+# TRANSLATOR NOTE: For radio button labels and check button labels, an underscore _
+# before a character will turn that character into an accesskey in the GTK dialog.
+# e.g. "_As laid out" will make A the accesskey.
+# In the Windows labels, use an ampersand (&).
+# On Mac, underscores will be stripped.
+
+shrinkToFit=Älä huomioi suurennosta ja _sovita sivun leveyteen
+selectionOnly=Tulosta _vain valinta
+printBGOptions=Tulosta taustat
+printBGColors=Tulosta tausta_väri
+printBGImages=Tulosta tausta_kuvat
+headerFooter=Ylä- ja alaotsakkeet
+left=Vasen
+center=Keskellä
+right=Oikea
+headerFooterBlank=--tyhjä--
+headerFooterTitle=Otsikko
+headerFooterURL=URL
+headerFooterDate=Pvm/Aika
+headerFooterPage=Sivu #
+headerFooterPageTotal=Sivu # / #
+headerFooterCustom=Oma...
+customHeaderFooterPrompt=Kirjoita oma ylä-/alaotsaketekstisi
+
+summarySelectionOnlyTitle=Tulosta valinta
+summaryShrinkToFitTitle=Sovita sivulle
+summaryPrintBGColorsTitle=Tulosta taustavärit
+summaryPrintBGImagesTitle=Tulosta taustakuvat
+summaryHeaderTitle=Sivun yläotsakkeet
+summaryFooterTitle=Sivun alaotsakkeet
+summaryNAValue=N/A
+summaryOnValue=On
+summaryOffValue=Off
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/printing.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/printing.properties
new file mode 100644
index 0000000000..b0b6a5a8fd
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/printing.properties
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page number formating
+## @page_number The current page number
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+pagenumber=%1$d
+
+# Page number formating
+## @page_number The current page number
+## @page_total The total number of pages
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+# the second %ld will receive the total number of pages
+pageofpages=%1$d / %2$d
+
+PrintToFile=Tulosta tiedostoon
+print_error_dialog_title=Tulostin ei toimi
+printpreview_error_dialog_title=Tulosteen esikatselussa tapahtui virhe
+
+# Printing error messages.
+#LOCALIZATION NOTE: Some of these messages come in pairs, one
+# for printing and one for print previewing. You can remove that
+# distinction in your language by removing the entity with the _PP
+# suffix; then the entity without a suffix will be used for both.
+# You can also add that distinction to any of the messages that don't
+# already have it by adding a new entity with a _PP suffix.
+#
+# For instance, if you delete PERR_GFX_PRINTER_DOC_IS_BUSY_PP, then
+# the PERR_GFX_PRINTER_DOC_IS_BUSY message will be used for that error
+# condition when print previewing as well as when printing. If you
+# add PERR_FAILURE_PP, then PERR_FAILURE will only be used when
+# printing, and PERR_FAILURE_PP will be used under the same conditions
+# when print previewing.
+#
+PERR_FAILURE=Tulostaessa tapahtui virhe.
+
+PERR_ABORT=Tulostustyö keskeytettin tai peruutettiin.
+PERR_NOT_AVAILABLE=Kaikki tulostustoiminnot eivät ole käytettävissä tällä hetkellä.
+PERR_NOT_IMPLEMENTED=Kaikki tulostustoiminnot eivät ole vielä käytettävissä.
+PERR_OUT_OF_MEMORY=Tulostus ei onnistunut. Muisti ei riitä tulostamiseen.
+PERR_UNEXPECTED=Tulostettaessa tapahtui odottamaton virhe.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=Tulostimia ei löytynyt.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=Ei voida näyttää tulostuksen esikatselua, koska tulostimia ei löytynyt.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=Valittua tulostinta ei löytynyt.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=Tulostetiedostoa ei voitu avata tulostusta varten.
+PERR_GFX_PRINTER_STARTDOC=Tulostustyö epäonnistui aloitettaessa tulostusta.
+PERR_GFX_PRINTER_ENDDOC=Tulostustyö epäonnistui lopetettaessa tulostusta.
+PERR_GFX_PRINTER_STARTPAGE=Tulostustyö epäonnistui aloitettaessa uuden sivun tulostusta.
+PERR_GFX_PRINTER_DOC_IS_BUSY=Ei voida tulostaa sivua, koska sitä ladataan vielä.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=Ei voida näyttää tulostuksen esikatselua, ksoka sivua ladataan vielä.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/resetProfile.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/resetProfile.properties
new file mode 100644
index 0000000000..ada73c2e67
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/resetProfile.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for profile reset.
+
+# LOCALIZATION NOTE (resetUnusedProfile.message): %S is brandShortName.
+resetUnusedProfile.message=Näyttää siltä, että %Sia ei ole käynnistetty aikoihin. Siivotaanko asetuksia niin, että käyttökokemus on varmasti näpsäkkä ja uudenveroinen? Ja tervetuloa muuten takaisin!
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=Näyttää siltä, että olet asentanut %Sin uudestaan. Siivotaanko asetuksia niin, että käyttökokemus on varmasti näpsäkkä ja uudenveroinen?
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=Palauta %S uudenveroiseksi…
+refreshProfile.resetButton.accesskey=P
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/caps.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/caps.properties
new file mode 100644
index 0000000000..c259db1502
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/caps.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+CheckLoadURIError = Turvallisuusvirhe: Sisältö kohteessa %S ei voi ladata tai linkittää kohteeseen %S.
+CheckSameOriginError = Turvallisuusvirhe: Sisältö kohteessa %S ei voi ladata dataa kohteesta %S.
+ExternalDataError = Turvallisuusvirhe: Sisältö kohteessa %S yritti ladata kohdetta %S, mutta sen ei ole sallittua ladata ulkoista dataa kun sitä käytetään kuvana
+
+CreateWrapperDenied = Ei lupaa luoda pakettia luokan %S objektille
+CreateWrapperDeniedForOrigin = <%2$S>:lla ei ole lupaa luoda pakettia luokan %1$S objektille
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/csp.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/csp.properties
new file mode 100644
index 0000000000..9245eb1ffb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/csp.properties
@@ -0,0 +1,125 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# CSP Warnings:
+# LOCALIZATION NOTE (CSPViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPViolation = Sivuston asetukset estivät resurssin lataamisen: %1$S
+# LOCALIZATION NOTE (CSPViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPViolationWithURI = Sivuston asetukset estivät resurssin lataamisen osoitteesta %2$S ("%1$S").
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = Tapahtui virhe CSP-raportointikäytännössä ("%1$S"). Käytös oli sallittua ja CSP-raportti lähetettiin.
+# LOCALIZATION NOTE (CSPROViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPROViolationWithURI = Havaittiin resurssin lataaminen osoitteesta %2$S ("%1$S"). CSP-raportti lähetetään.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = Yritettiin lähettää raportti virheelliseen osoitteeseen: "%1$S"
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = raportointiosoitteen jäsennys epäonnistui: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = Tuntemattoman direktiivin '%1$S' suoritus ei onnistunut
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = Ohitetaan tuntematon valinta %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = Ohitetaan toistettu lähde %1$S
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = Ohitetaan lähde '%1$S' (Ei tuettu meta-elementin kautta toimitettaessa).
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = Ohitetaan lähde ”%1$S” (Tuetaan vain script-src:ssä).
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+strictDynamicButNoHashOrNonce = Avainsana ”strict-dynamic” ”%1$S”:ssä ilman kelvollista nonce- tai hash-arvoa voi estää kaikkia komentosarjoja latautumasta
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = Raportointiosoitteen (%1$S) pitäisi olla HTTP- tai HTTPS-osoite.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = Sivustolla (%1$S) on raportointikäytäntö ilman raportointiosoitetta. CSP ei estä eikä voi raportoida tämän käytännön rikkomisia.
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = Ei kyetty jäsentämään tuntematonta lähdettä %1$S
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = Päivitetään turvatonta pyyntöä '%1$S' käyttämään '%2$S'
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = Ohitetaan srcs direktiiville '%1$S'
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = Tulkitaan %1$S palvelimen nimeksi, ei hakusanaksi. Jos halusit kirjoittaa hakusanan, kirjoita '%2$S' (heittomerkeillä ympyröitynä).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = Ei tueta direktiiviä '%1$S'. Direktiivi ja arvo ohitetaan.
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = Estetään turvaton pyyntö '%1$S'.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values
+ignoringDirectiveWithNoValues = Ohitetaan ’%1$S’, koska se ei sisällä yhtään parametria.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = Ignoring sandbox directive when delivered in a report-only policy ‘%1$S’
+# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective):
+# %1$S is the name of the src that is ignored.
+# %2$S is the name of the directive that causes the src to be ignored.
+IgnoringSrcBecauseOfDirective=Ohitetaan ’%1$S’ direktiivin ’%2$S’ takia.
+
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Ohitetaan lähde ”%1$S” (Ei tueta ”%2$S” sisällä).
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = Ei voitu jäsentää virheellistä lähdettä %1$S
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = Ei voitu jäsentää virheellistä palvelintietoa %1$S
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = Ei voitu jäsentää porttitietoa osoitteessa %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Kopioita %1$S direktiivistä löydettiin. Vain ensimmäinen versio direktiivistä huomioidaan.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = Couldn’t parse invalid sandbox flag ‘%1$S’
+
+
+# LOCALIZATION NOTE (ignoringNonAsciiToken):
+# %1$S defines the name of the directive
+# %2$S is the token string containing non-ASCII characters.
+ignoringNonAsciiToken = Ignoring directive ‘%1$S’ with the non-ASCII token ‘%2$S’
+# LOCALIZATION NOTE (ignoringSrcWithinNonceOrHashDirective):
+# %1$S is the ignored src (e.g. "unsafe-inline")
+# %2$S is the directive (e.g. "script-src-elem")
+ignoringSrcWithinNonceOrHashDirective = Ignoring “%1$S” within %2$S: nonce-source or hash-source specified
+# LOCALIZATION NOTE (ignoringScriptSrcForStrictDynamic):
+# %1$S is the ignored src
+# %1$S is the directive src (e.g. "script-src-elem")
+# 'strict-dynamic' should not be localized
+ignoringScriptSrcForStrictDynamic = Ignoring “%1$S” within %2$S: ‘strict-dynamic’ specified
+# LOCALIZATION NOTE (ignoringUnsafeEval):
+# %1$S is the csp directive (e.g. script-src-elem)
+# 'unsafe-eval' and 'wasm-unsafe-eval' should not be localized
+ignoringUnsafeEval = Ignoring ‘unsafe-eval’ or ‘wasm-unsafe-eval’ inside “%1$S”.
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+obsoleteBlockAllMixedContent = Ignoring ‘%1$S’ because mixed content display upgrading makes block-all-mixed-content obsolete.
+# LOCALIZATION NOTE (CSPMessagePrefix):
+# Do not translate "Content-Security-Policy", only handle spacing for the colon.
+# %S is a console message that is being prefixed here.
+CSPMessagePrefix = Content-Security-Policy: %S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties
new file mode 100644
index 0000000000..316d003831
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties
@@ -0,0 +1,164 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Mixed Content Blocker
+# LOCALIZATION NOTE: "%1$S" is the URI of the blocked mixed content resource
+BlockMixedDisplayContent = Estettiin osittain suojaamattoman, näytettävän sisällön lataus "%1$S"
+BlockMixedActiveContent = Estettiin osittain suojaamattoman, interaktiivisen sisällön lataus "%1$S"
+
+# CORS
+# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
+CORSDisabled=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS disabled).
+CORSDidNotSucceed2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request did not succeed). Status code: %2$S.
+CORSOriginHeaderNotAdded=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Origin’ cannot be added).
+CORSExternalRedirectNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request external redirect not allowed).
+CORSRequestNotHttp=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request not http).
+CORSMissingAllowOrigin2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: %2$S.
+CORSMultipleAllowOriginNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Multiple CORS header ‘Access-Control-Allow-Origin’ not allowed).
+CORSAllowOriginNotMatchingOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header 'Access-Control-Allow-Origin' does not match '%2$S').
+CORSNotSupportingCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ‘%1$S’. (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).
+CORSMethodNotFound=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Did not find method in CORS header 'Access-Control-Allow-Methods').
+CORSMissingAllowCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: expected 'true' in CORS header 'Access-Control-Allow-Credentials').
+CORSPreflightDidNotSucceed3=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS preflight response did not succeed). Status code: %2$S.
+CORSInvalidAllowMethod=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token '%2$S' in CORS header 'Access-Control-Allow-Methods').
+CORSInvalidAllowHeader=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token '%2$S' in CORS header 'Access-Control-Allow-Headers').
+CORSMissingAllowHeaderFromPreflight2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: header ‘%2$S’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: An unknown error occurred processing the header specified by the site.
+STSCouldNotParseHeader=Strict-Transport-Security: The site specified a header that could not be parsed successfully.
+STSNoMaxAge=Strict-Transport-Security: The site specified a header that did not include a 'max-age' directive.
+STSMultipleMaxAges=Strict-Transport-Security: The site specified a header that included multiple 'max-age' directives.
+STSInvalidMaxAge=Strict-Transport-Security: The site specified a header that included an invalid 'max-age' directive.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: The site specified a header that included multiple 'includeSubDomains' directives.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: The site specified a header that included an invalid 'includeSubDomains' directive.
+STSCouldNotSaveState=Strict-Transport-Security: An error occurred noting the site as a Strict-Transport-Security host.
+
+InsecurePasswordsPresentOnPage=Salasanakenttiä suojaamattomalla (http://) sivulla. Tämä on turvallisuusriski, jonka avulla käyttäjän kirjautumistiedot voidaan varastaa.
+InsecureFormActionPasswordsPresent=Salasanakenttiä lomakkeessa suojaamattoman (http://) lomaketoiminnon yhteydessä. Tämä on turvallisuusriski, jonka avulla käyttäjän kirjautumistiedot voidaan varastaa.
+InsecurePasswordsPresentOnIframe=Salasanakenttiä suojaamattomassa (http://) iframessa. Tämä on turvallisuusriski, jonka avulla käyttäjän kirjautumistiedot voidaan varastaa.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=Ladataan osittain suojaamaton interaktiivista sisältöä "%1$S" suojatulla sivulla
+LoadingMixedDisplayContent2=Ladataan osittain suojaamatonta näytettävää sisältöä "%1$S" suojatulla sivulla
+LoadingMixedDisplayObjectSubrequestDeprecation=Loading mixed (insecure) content “%1$S” within a plugin on a secure page is discouraged and will be blocked soon.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Blocked downloading insecure content “%S”.
+
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=iframe-kehyksellä, jolle on asetettu sekä allow-scripts, että allow-same-origin sen sandbox-ominaisuuksiin voi poistaa hiekkalaatikkotilan käytöstä.
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=An iframe which has both allow-top-navigation and allow-top-navigation-by-user-activation for its sandbox attribute will permit top navigations.
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=The script element has a malformed hash in its integrity attribute: "%1$S". The correct format is "<hash algorithm>-<hash value>".
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=The hash contained in the integrity attribute has the wrong length.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=The hash contained in the integrity attribute could not be decoded.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource="%1$S" is not eligible for integrity checks since it's neither CORS-enabled nor same-origin.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Unsupported hash algorithm in the integrity attribute: "%1$S"
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=The integrity attribute does not contain any valid metadata.
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=Tämä sivusto on suojattu RC4-salausavaimella, joka on vanhentunut ja turvaton.
+
+DeprecatedTLSVersion2=Tämä sivusto käyttää TLS:n käytöstä poistuvaa versiota. Päivitä TLS-versioon 1.2 tai 1.3.
+
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=The resource from “%1$S” was blocked due to MIME type (“%2$S”) mismatch (X-Content-Type-Options: nosniff).
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XCTOHeaderValueMissing=X-Content-Type-Options header warning: value was “%1$S”; did you mean to send “nosniff”?
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=The resource from “%1$S” was not rendered due to an unknown, incorrect or missing MIME type (X-Content-Type-Options: nosniff).
+
+BlockScriptWithWrongMimeType2=Script from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+WarnScriptWithWrongMimeType=The script from “%1$S” was loaded even though its MIME type (“%2$S”) is not a valid JavaScript MIME type.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=Loading script from “%1$S” with importScripts() was blocked because of a disallowed MIME type (“%2$S”).
+BlockWorkerWithWrongMimeType=Loading Worker from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+BlockModuleWithWrongMimeType=Loading module from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=Navigation to toplevel data: URI not allowed (Blocked loading of: “%1$S”)
+
+RestrictBrowserEvalUsage=eval() and eval-like uses are not allowed in the Parent Process or in System Contexts (Blocked usage in “%1$S”)
+
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Upgrading insecure display request ‘%1$S’ to use ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=Clear-Site-Data header forced the clean up of “%S” data.
+UnknownClearSiteDataValue=Clear-Site-Data header found. Unknown value “%S”.
+
+# Reporting API
+ReportingHeaderInvalidJSON=Reporting Header: invalid JSON value received.
+ReportingHeaderInvalidNameItem=Reporting Header: invalid name for group.
+ReportingHeaderDuplicateGroup=Reporting Header: ignoring duplicated group named “%S”.
+ReportingHeaderInvalidItem=Reporting Header: ignoring invalid item named “%S”.
+ReportingHeaderInvalidEndpoint=Reporting Header: ignoring invalid endpoint for item named “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Reporting Header: ignoring invalid endpoint URL “%1$S” for item named “%2$S”.
+
+FeaturePolicyUnsupportedFeatureName=Feature Policy: Skipping unsupported feature name “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Feature Policy: Skipping empty allow list for feature: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Feature Policy: Skipping unsupported allow value “%S”.
+
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=HTTP Referrer header: Length is over “%1$S” bytes limit - stripping referrer header down to origin: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=HTTP Referrer header: Length of origin within referrer is over “%1$S” bytes limit - removing referrer with origin “%2$S”.
+
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Less restricted policies, including ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ and ‘unsafe-url’, will be ignored soon for the cross-site request: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: Ignoring the less restricted referrer policy “%1$S” for the cross-site request: %2$S
+
+# X-Frame-Options
+# LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
+XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “%2$S”: “%1$S” is not a valid directive.
+# LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
+XFrameOptionsDeny=The loading of “%2$S” in a frame is denied by “X-Frame-Options“ directive set to “%1$S“.
+
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Päivitetään suojaamaton pyyntö “%1$S” käyttämään skeemaa “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = Ei päivitetä suojaamatonta pyyntöä “%1$S”, koska se on vapautettu.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Suojaamattoman pyynnön “%1$S” päivittäminen epäonnistui. (%2$S)
+# LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
+
+# LOCALIZATION NOTE: Hints or indicates a new transaction for a URL is likely coming soon. We use
+# a speculative connection to start a TCP connection so that the resource is immediately ready
+# when the transaction is actually submitted. HTTPS-Only and HTTPS-First will upgrade such
+# speculative TCP connections from http to https.
+# %1$S is the URL of the upgraded speculative TCP connection; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeSpeculativeConnection = Upgrading insecure speculative TCP connection “%1$S” to use “%2$S”.
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Download of “%S” was blocked because the triggering iframe has the sandbox flag set.
+
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Received empty or no input. Returning an empty DocumentFragment.
+
+CORSAllowHeaderFromPreflightDeprecation=Cross-Origin Request Warning: The Same Origin Policy will disallow reading the remote resource at %1$S soon. (Reason: When the `Access-Control-Allow-Headers` is `*`, the `Authorization` header is not covered. To include the `Authorization` header, it must be explicitly listed in CORS header `Access-Control-Allow-Headers`).
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256"). "%2$S" is the value we saw.
+IntegrityMismatch2=None of the “%1$S” hashes in the integrity attribute match the content of the subresource. The computed hash is “%2$S”.
+BlockRedirectToDataURI=Redirecting to data: URI not allowed (Blocked loading of: “%1$S”)
+# LOCALIZATION NOTE: Do not translate "file: URI". “%1$S” is the whole URI of the loaded file. “%2$S” is the MIME type e.g. "text/plain".
+BlockFileScriptWithWrongMimeType=Loading script from file: URI (“%1$S”) was blocked because its MIME type (“%2$S”) is not a valid JavaScript MIME type.
+# LOCALIZATION NOTE: “%S” is the whole URI of the loaded file.
+BlockExtensionScriptWithWrongExt=Loading script with URI “%S” was blocked because the file extension is not allowed.
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+SandboxBlockedCustomProtocols = Blocked navigation to custom protocol “%S” from a sandboxed context.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/svg/svg.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/svg/svg.properties
new file mode 100644
index 0000000000..fd5df60b06
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/svg/svg.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+AttributeParseWarning=Odottamaton arvo %2$S jäsennettäessä attribuuttia %1$S.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/viewSource.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/viewSource.properties
new file mode 100644
index 0000000000..61a57225a5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/viewSource.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+goToLineTitle =Siirry riville
+goToLineText =Kirjoita rivinumero
+invalidInputTitle =Virheellinen syöte
+invalidInputText =Annettu rivinumero oli virheellinen.
+outOfRangeTitle =Riviä ei löytynyt
+outOfRangeText =Annettua riviä ei löytynyt.
+viewSelectionSourceTitle = Valinnan DOM-lähdekoodi
+
+context_goToLine_label = Siirry riville…
+context_goToLine_accesskey = r
+context_wrapLongLines_label = Rivitä pitkät rivit
+context_highlightSyntax_label = Syntaksin värikoodaus
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/wizard.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/wizard.properties
new file mode 100644
index 0000000000..345c68e790
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/wizard.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+default-first-title=Tervetuloa
+default-last-title=Viimeistely
+default-first-title-mac=Esittely
+default-last-title-mac=Viimeistely
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/xslt/xslt.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/xslt/xslt.properties
new file mode 100644
index 0000000000..010bbe13ef
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/xslt/xslt.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+1 =XSLT-tyylitiedoston jäsennys epäonnistui.
+2 =XPath-lausekkeen jäsennys epäonnistui.
+3 =
+4 =XSLT-muunnos epäonnistui.
+5 =XSLT/XPath kutsui tuntematonta funktiota.
+6 =XSLT-tyylitiedosto sisältää (mahdollisesti) rekursion.
+7 =Attribuutin arvo ei ole sallittu XSLT 1.0:ssa.
+8 =XPath-lausekkeen odotettiin palauttavan solmujoukko.
+9 =<xsl:message> päätti XSLT-muunnoksen.
+10 =XSLT-tyylitiedostoa ladatessa tapahtui verkkovirhe:
+11 =XSLT-tyylitiedostolla ei ole XML MIME -tyyppiä:
+12 =XSLT-tyylitiedosto joko suoraan tai epäsuoraan tuo tai sisältää itsensä:
+13 =XPath-funktiota kutsuttiin väärällä lukumäärällä argumentteja.
+14 =Kutsuttiin tuntematonta XPath extension -funktiota.
+15 =XPath-jäsennysvirhe: odotettiin ")"-merkkiä:
+16 =XPath-jäsennysvirhe: virheellinen siirtymä (axis):
+17 =XPath-jäsennysvirhe: odotettiin kohteen nimeä tai solmutestiä:
+18 =XPath-jäsennysvirhe: odotettiin "]"-merkkiä:
+19 =XPath-jäsennysvirhe: virheellinen muuttujan nimi:
+20 =XPath-jäsennysvirhe: lauseke päättyi ennenaikaisesti:
+21 =XPath-jäsennysvirhe: odotettiin operaattoria:
+22 =XPath-jäsennysvirhe: sulkematon literaali:
+23 =XPath-jäsennysvirhe: odottamaton ":"-merkki:
+24 =XPath-jäsennysvirhe: odottamaton "!"-merkki, kielto-operaattori on not():
+25 =XPath-jäsennysvirhe: löydettiin kielletty merkki:
+26 =XPath-jäsennysvirhe: odotettiin kaksipaikkaista operaattoria:
+27 =XSLT-tyylitiedostoa ei ladattu turvallisuussyistä.
+28 =Suoritetaan virheellistä lauseketta.
+29 =Pariton aaltosulje.
+30 =Luodaan elementtiä virheellisellä QName:lla.
+31 =Muuttujan määrittely peittää toisen muuttujan määrittelyn samassa mallipohjassa.
+32 = Avainfunktion kutsu ei sallittu.
+
+LoadingError =Virhe ladattaessa tyylitiedostoa: %S
+TransformError =Virhe XSLT-muunnoksen aikana: %S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/xul.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/xul.properties
new file mode 100644
index 0000000000..7a9417333b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/xul.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+PINotInProlog=<?%1$S?> käsittelykomennolla ei ole enään mitään vaikutusta prologin ulkopuolella (kts. bugi 360119).
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning-toolbar.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..010a506e20
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "Kalenterityökalupalkki">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "K">
+<!ENTITY lightning.toolbar.task.name "Tehtävätyökalupalkki">
+<!ENTITY lightning.toolbar.task.name.accesskey "T">
+
+<!ENTITY lightning.toolbar.sync.label "Synkronoi">
+<!ENTITY lightning.toolbar.sync.tooltip "Lataa kalenterit uudelleen ja synkronoi muutokset">
+<!ENTITY lightning.toolbar.delete.label "Poista">
+<!ENTITY lightning.toolbar.delete.tooltip "Poista valitut tapahtumat tai tehtävät">
+<!ENTITY lightning.toolbar.edit.label "Muokkaa">
+<!ENTITY lightning.toolbar.edit.tooltip "Muokkaa valittua tapahtumaa tai tehtävää">
+<!ENTITY lightning.toolbar.gototoday.label "Siirry tähän päivään">
+<!ENTITY lightning.toolbar.gototoday.tooltip "Siirry tähän päivään">
+<!ENTITY lightning.toolbar.print.label "Tulosta">
+<!ENTITY lightning.toolbar.print.tooltip "Tulosta tapahtumat tai tehtävät">
+
+<!-- Mode Toolbar -->
+<!ENTITY lightning.toolbar.calendar.label "Kalenteri">
+<!ENTITY lightning.toolbar.calendar.tooltip "Siirry Kalenteri-välilehteen">
+<!ENTITY lightning.toolbar.calendar.accesskey "K">
+<!ENTITY lightning.toolbar.task.label "Tehtävät">
+<!ENTITY lightning.toolbar.task.tooltip "Siirry Tehtävät-välilehteen">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+
+<!-- Toolbar write button -->
+<!ENTITY lightning.toolbar.newevent.label "Tapahtuma">
+<!ENTITY lightning.toolbar.newevent.tooltip "Luo uusi tapahtuma">
+<!ENTITY lightning.toolbar.newtask.label "Tehtävä">
+<!ENTITY lightning.toolbar.newtask.tooltip "Luo uusi tehtävä">
+
+<!-- Calendar and Task Mode Toolbar -->
+<!ENTITY lightning.toolbar.day.label "Päivä">
+<!ENTITY lightning.toolbar.day.accesskey "P">
+<!ENTITY lightning.toolbar.week.label "Viikko">
+<!ENTITY lightning.toolbar.week.accesskey "V">
+<!ENTITY lightning.toolbar.multiweek.label "Moniviikko">
+<!ENTITY lightning.toolbar.multiweek.accesskey "M">
+<!ENTITY lightning.toolbar.month.label "Kuukausi">
+<!ENTITY lightning.toolbar.month.accesskey "K">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "Sovellusvalikko">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "Avaa &brandShortName;-valikon">
+<!ENTITY lightning.toolbar.calendarmenu.label "Kalenteripaneeli">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "K">
+<!ENTITY lightning.toolbar.calendarpane.label "Näytä kalenteripaneeli">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "N">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.dtd
new file mode 100644
index 0000000000..756a5aba2a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "Kalenteri">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "Tapahtuma…">
+<!ENTITY lightning.menupopup.new.event.accesskey "T">
+<!ENTITY lightning.menupopup.new.task.label "Tehtävä…">
+<!ENTITY lightning.menupopup.new.task.accesskey "e">
+<!ENTITY lightning.menupopup.new.calendar.label "Kalenteri…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "l">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Kalenteritiedosto…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "K">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Kalenteri">
+<!ENTITY lightning.menu.view.calendar.accesskey "n">
+<!ENTITY lightning.menu.view.tasks.label "Tehtävät">
+<!ENTITY lightning.menu.view.tasks.accesskey "T">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "Tapahtumat ja tehtävät">
+<!ENTITY lightning.menu.eventtask.accesskey "a">
+
+<!-- properties dialog, calendar creation wizard -->
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.email.label,
+ lightning.calendarproperties.forceEmailScheduling.label)
+ These strings are used in the calendar wizard and the calendar properties dialog, but are only
+ displayed when setting/using a caldav calendar -->
+<!ENTITY lightning.calendarproperties.email.label "Sähköposti:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "Suosi asiakaspuolen sähköpostien ajastusta">
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.forceEmailScheduling.tooltiptext1,
+ lightning.calendarproperties.forceEmailScheduling.tooltiptext2)
+ - tooltiptext1 is used in the calendar wizard when setting a new caldav calendar
+ - tooltiptext2 is used in the calendar properties dialog for caldav calendars -->
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1 "Voit ottaa tämän ominaisuuden käyttöön kalenterin asentamisen jälkeen sallimalla ominaisuuden kalenterin ominaisuusikkunassa, jos palvelin tukee ajastamista.">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "Tämä asetus on käytettävissä vain, jos kalenteripalvelin tukee ajastamista. Ominaisuuden salliminen palauttaa ajastamisen sähköpostipohjaiseen ajastukseen palvelimen suorittaman ajastuksen sijaan.">
+
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label "Ilmoitukset">
+<!ENTITY lightning.calendarproperties.globalNotifications.label "Yleiset ilmoitusasetukset…">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "Hyväksy">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "Hyväksy tapahtumakutsu">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "Hyväksy kaikki">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "Hyväksy tapahtumakutsu koskien kaikkia tapahtuman tapauksia">
+<!ENTITY lightning.imipbar.btnAdd.label "Lisää">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "Lisää tapahtuma kalenteriin">
+<!ENTITY lightning.imipbar.btnDecline.label "Hylkää">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "Hylkää tapahtumakutsu">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "Hylkää kaikki">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "Hylkää tapahtumakutsu koskien kaikkia tapahtuman tapauksia">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "Hylkää">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "Hylkää vastaehdotus">
+<!ENTITY lightning.imipbar.btnDelete.label "Poista">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "Poista kalenterista">
+<!ENTITY lightning.imipbar.btnDetails.label "Lisätiedot…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "Näytä lisää tietoa tapahtumasta">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "Älä näytä näitä viestejä">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "Kalenteri">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "Siirry Kalenteri-välilehteen">
+<!ENTITY lightning.imipbar.btnMore.label "Lisää">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "Napsauta, niin näet lisää valintoja">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "Vahvista uudelleen">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "Lähettää järjestäjälle uudelleenvahvistuksen">
+<!ENTITY lightning.imipbar.btnReschedule.label "Ajoita uudelleen">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "Ajoita tapahtuma uudelleen">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "Tallenna kopio">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "Tallenna kalenteriin kopio tapahtumasta ilman, että järjestäjä saa tietää. Osallistujaluettelo tyhjennetään.">
+<!ENTITY lightning.imipbar.btnTentative.label "Alustava">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "Hyväksy tapahtumakutsu alustavasti">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "Alustavasti kaikki">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "Hyväksy kaikki tapahtuman esiintymät alustavasti">
+<!ENTITY lightning.imipbar.btnUpdate.label "Päivitä">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "Päivitä tapahtumaa kalenterissa">
+<!ENTITY lightning.imipbar.description "Tässä viestissä on kutsu tapahtumaan.">
+
+<!ENTITY lightning.imipbar.btnSend.label "Lähetä vastaus nyt">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "Lähetä vastaus järjestäjälle">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "Lähetä vastaus kaikille järjestäjille">
+<!ENTITY lightning.imipbar.btnDontSend.label "Älä lähetä vastausta">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "Muuta osallistumistilaasi ilman vastauksen lähettämistä tapahtuman järjestäjälle">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "Muuta osallistumistilaasi ilman vastauksen lähettämistä tapahtumasarjan järjestäjälle">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.showCalendar.key "C">
+<!ENTITY lightning.keys.event.showTasks.key "D">
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "Luo uusi kalenteri">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "Näytä pienoiskuukausi">
+<!ENTITY todaypane.showMinimonth.accesskey "N">
+<!ENTITY todaypane.showMiniday.label "Näytä pienoispäivä">
+<!ENTITY todaypane.showMiniday.accesskey "N">
+<!ENTITY todaypane.showNone.label "Älä näytä mitään">
+<!ENTITY todaypane.showNone.accesskey "n">
+<!ENTITY todaypane.showTodayPane.label "Näytä tänään-ruutu">
+<!ENTITY todaypane.showTodayPane.accesskey "N">
+<!ENTITY todaypane.statusButton.label "Tänään-ruutu">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.properties
new file mode 100644
index 0000000000..60470494d9
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/lightning/lightning.properties
@@ -0,0 +1,201 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description=Integroitu kalenteri ja aikataulutus sähköpostiohjelmaan
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator=Mozillan kalenteriprojekti
+
+# Lightning branding
+brandShortName=Lightning
+
+# Task mode title
+taskModeApplicationTitle=Tehtävät
+
+# Tab titles
+tabTitleCalendar=Kalenteri
+tabTitleTasks=Tehtävät
+
+# Html event display in message
+imipHtml.header=Kutsu tapahtumaan
+imipHtml.summary=Otsikko:
+imipHtml.location=Paikka:
+imipHtml.when=Aika:
+imipHtml.organizer=Järjestäjä:
+imipHtml.description=Kuvaus:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=Liitteet:
+imipHtml.comment=Kommentti:
+imipHtml.attendees=Osallistujat:
+# LOCALIZATION_NOTE(imipHtml.url): This is a label for a reference to an (alternate) online
+# representation of the event (either directly human readable or not).
+imipHtml.url=Aiheeseen liittyvä linkki:
+imipHtml.canceledOccurrences=Peruutetut esiintymät:
+imipHtml.modifiedOccurrences=Muokatut esiintymät:
+imipHtml.newLocation=Uusi sijainti: %1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedFrom): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegator or a comma separated list of delegators
+imipHtml.attendeeDelegatedFrom=(delegoija/delegoijat: %1$S)
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedTo): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+imipHtml.attendeeDelegatedTo=(delegoitu: %1$S)
+
+# LOCALIZATION_NOTE(imipHtml.attendee.combined): tooltip for itip icon in email invitation preview.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of imipHtml.attendeeRole2.*
+# %2$S - value of imipHtml.attendeePartStat2.*
+imipHtml.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.CHAIR): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.CHAIR=%1$S johtaa tapahtumaa.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S ei osallistu.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.OPT-PARTICIPANT=%1$S on valinnainen osallistuja.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.REQ-PARTICIPANT=%1$S on välttämätön osallistuja.
+
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.ACCEPTED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.ACCEPTED=%1$S on vahvistanut osallistumisen.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DECLINED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.DECLINED=%1$S ei osallistu.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DELEGATED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+# %2$S - single delegatee or comma separated list of delegatees
+# delegation is different from invitation forwarding - in case of the former the original attendee
+# is replaced, while on the latter the receiver may take part additionally
+imipHtml.attendeePartStat2.DELEGATED=%1$S on delegoinut osallistumisen henkilölle %2$S.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.NEEDS-ACTION): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.NEEDS-ACTION=%1$S ei ole vielä vastannut.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.TENTATIVE): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.TENTATIVE=%1$S on vahvistanut osallistumisen alustavasti.
+
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.INDIVIDUAL): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an individual attendee
+imipHtml.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.GROUP): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a group (e.g. a distribution list)
+imipHtml.attendeeUserType2.GROUP=%1$S (ryhmä)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.RESOURCE): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a resource (e.g. projector)
+imipHtml.attendeeUserType2.RESOURCE=%1$S (resurssi)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.ROOM): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing a room
+imipHtml.attendeeUserType2.ROOM=%1$S (tila)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.UNKNOWN): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name <email address> representing an attendee of unknown type
+imipHtml.attendeeUserType2.UNKNOWN=%1$S
+
+imipAddedItemToCal2=Tapahtuma on lisätty kalenteriisi.
+imipCanceledItem2=Tapahtuma on poistettu kalenteristasi.
+imipUpdatedItem2=Tapahtuma on päivitetty.
+imipBarCancelText=Tässä viestissä ilmoitetaan tapahtuman peruuntumisesta.
+imipBarCounterErrorText=Tämä viesti sisältää vastaehdotuksen kutsulle, jota ei voi käsitellä.
+imipBarCounterPreviousVersionText=Tämä viesti sisältää vastaehdotuksen kutsun edelliselle versiolle.
+imipBarCounterText=Tämä viesti sisältää vastaehdotuksen kutsulle.
+imipBarDisallowedCounterText=Tämä viesti sisältää vastaehdotuksen kutsulle, vaikka kielsit vastaehdotukset tälle tapahtumalle.
+imipBarDeclineCounterText=Tämä viesti sisältää vastauksen vastaehdotuksellesi.
+imipBarRefreshText=Tässä viestissä pyydetään päivittämään tapahtuma.
+imipBarPublishText=Tämä viesti sisältää tapahtuman.
+imipBarRequestText=Tämä viesti sisältää kutsun tapahtumaan.
+imipBarSentText=Tämä viesti sisältää lähetetyn tapahtuman.
+imipBarSentButRemovedText=Tämä viesti sisältää lähetetyn tapahtuman, joka ei ole enää kalenterissasi.
+imipBarUpdateText=Tämä viesti sisältää päivityksen olemassaolevaan tapahtumaan.
+imipBarUpdateMultipleText=Tämä viesti sisältää päivityksiä useisiin olemassa oleviin tapahtumiin.
+imipBarUpdateSeriesText=Tämä viesti sisältää päivityksen olemassa olevaan tapahtumasarjaan.
+imipBarAlreadyProcessedText=Tämä viesti sisältää tapahtuman, joka on jo käsitelty.
+imipBarProcessedNeedsAction=Tämä viesti sisältää tapahtuman, johon et vielä ole vastannut.
+imipBarProcessedMultipleNeedsAction=Tämä viesti sisältää useita tapahtumia, joihin et ole vielä vastannut.
+imipBarProcessedSeriesNeedsAction=Tämä viesti sisältää tapahtumasarjoja joihin et ole vielä vastannut.
+imipBarReplyText=Tämä viesti sisältää vastauksen kutsuun.
+imipBarReplyToNotExistingItem=Tämä viesti sisältää vastauksen tapahtumaan jota ei löydy kalenteristasi.
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarReplyToRecentlyRemovedItem=Tämä viesti sisältää vastauksen tapahtumaan joka poistettiin kalenteristasi %1$S.
+imipBarUnsupportedText=Tässä viestissä on tapahtuma, jota tämä Lightningin versio ei voi käsitellä.
+imipBarUnsupportedText2=Tässä viestissä on tapahtuma, jota nykyinen versio %1$S ei voi käsitellä.
+imipBarProcessingFailed=Viestin käsittely epäonnistui. Tila: %1$S.
+imipBarCalendarDeactivated=Tämä viesti sisältää tietoa tapahtumasta. Ota kalenteri käyttöön käsitelläksesi viestiä.
+imipBarNotWritable=Kutsuja varten ei ole määritetty muokattavaa kalenteria. Tarkista kalenterin asetukset.
+imipSendMail.title=Sähköposti-ilmoitus
+imipSendMail.text=Haluatko lähettää ilmoitusviestin nyt?
+imipNoIdentity=Ei mitään
+imipNoCalendarAvailable=Käytettävissä ei ole muokattavaa kalenteria.
+
+itipReplySubject2=Vastaus kutsuun: %1$S
+itipReplyBodyAccept=%1$S on hyväksynyt tapahtumakutsusi.
+itipReplyBodyDecline=%1$S on hylännyt tapahtumakutsusi.
+itipReplySubjectAccept2=Hyväksytty: %1$S
+itipReplySubjectDecline2=Kutsu hylätty: %1$S
+itipReplySubjectTentative2=Hyväksytty alustavasti: %1$S
+itipRequestSubject2=Kutsu: %1$S
+itipRequestUpdatedSubject2=Päivitetty: %1$S
+itipRequestBody=%1$S on kutsunut sinut tapahtumaan %2$S
+itipCancelSubject2=Peruttu: %1$S
+itipCancelBody=%1$S on peruuttanut tapahtuman: %2$S
+itipCounterBody=%1$S on tehnyt vastaehdotuksen tapahtumaan ”%2$S”:
+itipDeclineCounterBody=%1$S on hylännyt vastaehdotuksesi tapahtumaan ”%2$S”.
+itipDeclineCounterSubject=Vastaehdotus hylätty: %1$S
+
+confirmProcessInvitation=Olet äskettäin poistanut tämän kohteen. Haluatko varmasti käsitellä tämän kutsun?
+confirmProcessInvitationTitle=Käsitelläänkö kutsu?
+
+invitationsLink.label=Kutsut: %1$S
+
+# LOCALIZATION_NOTE(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+binaryComponentKnown=%1$S:n vaatimaa binaarista komponenttia ei voitu ladata. Syynä tähän on todennäköisesti se, että käytössä on väärä versioyhdistelmä. Parhaillaan on asennettuna %1$S %2$S, mutta pitäisi käyttää versiota %3$S.
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+binaryComponentUnknown=%1$S.n vaatimaa binaarista komponenttia ei voitu ladata. Syynä tähän on todennäköisesti se, että käytössä on väärä versioyhdistelmä. Parhaillaan on asennettuna %2$S %3$S ja %1$S %4$S. Katso lisätietoja sivulta https://developer.mozilla.org/en/Calendar/Calendar_Versions.
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+binaryComponentTitle=Epäsopiva %1$S-versio
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=Jos haluat käyttää tätä kalenteria kutsujen säilyttämiseen, lisää sähköpostinimesi alle.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-mapi/mapi.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-mapi/mapi.properties
new file mode 100644
index 0000000000..73806925b2
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-mapi/mapi.properties
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Mail Integration Dialog
+dialogTitle=%S
+dialogText=Asetetaanko %S oletussähköpostiohjelmaksi?
+newsDialogText=Asetetaanko %S oletuskeskusteluryhmäohjelmaksi?
+feedDialogText=Asetetaanko %S oletusohjelmaksi RSS-syötteille?
+checkboxText=Älä näytä tätä ikkunaa uudestaan
+setDefaultMail=%S ei ole oletussähköpostiohjelmana. Asetetaanko se oletussähköpostiohjelmaksi?
+setDefaultNews=%S ei ole oletuskeskusteluryhmäohjelmana. Asetetaanko se oletuskeskusteluryhmäohjelmaksi?
+setDefaultFeed=%S ei ole oletusohjelmana RSS-syötteille. Asetetaanko se oletusohjelmaksi RSS-syötteille?
+alreadyDefaultMail=%S on jo asetettu oletussähköpostiohjelmaksi.
+alreadyDefaultNews=%S on jo asetettu oletuskeskusteluryhmäohjelmaksi.
+alreadyDefaultFeed=%S on jo asetettu oletusohjelmaksi RSS-syötteille.
+
+# MAPI Messages
+loginText=Kirjoita salasana palvelimelle %S:
+loginTextwithName=Anna käyttäjätunnus ja salasana
+loginTitle=%S
+PasswordTitle=%S
+
+# MAPI Error Messages
+errorMessage=%Siä ei voitu asettaa oletusohjelmaksi sähköposteille, koska jotain rekisteriavainta ei voitu muuttaa. Varmista järjestelmäsi ylläpitäjältä, että sinulla on kirjoitusoikeudet järjestelmärekisteriin ja yritä uudelleen.
+errorMessageNews=%Siä ei voitu asettaa oletusohjelmaksi keskusteluryhmille, koska jotain rekisteriavainta ei voitu muuttaa. Varmista järjestelmäsi ylläpitäjältä, että sinulla on kirjoitusoikeudet järjestelmärekisteriin ja yritä uudelleen.
+errorMessageTitle=%S
+
+# MAPI Security Messages
+mapiBlindSendWarning=Joku toinen ohjelma yrittää lähettää sähköpostia profiilillasi. Sallitaanko tämä?
+mapiBlindSendDontShowAgain=Varoita minua kun muut ohjelmat yrittävät lähettää sähköpostia nimissäni.
+
+#Default Mail Display String
+# localization note, %S is the vendor name
+defaultMailDisplayTitle=%S
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/am-newsblog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/am-newsblog.dtd
new file mode 100644
index 0000000000..575242925c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/am-newsblog.dtd
@@ -0,0 +1,14 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY biffAll.label "Salli päivitykset kaikille syötteille">
+<!ENTITY biffAll.accesskey "S">
+
+<!ENTITY newFeedSettings.label "Oletusasetukset uusille syötteille">
+
+<!ENTITY manageSubscriptions.label "Muokkaa tilauksia…">
+<!ENTITY manageSubscriptions.accesskey "M">
+
+<!ENTITY feedWindowTitle.label "Ohjattu syötetilin luonti">
+<!ENTITY feeds.accountName "Uutiset ja blogit">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/feed-subscriptions.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/feed-subscriptions.dtd
new file mode 100644
index 0000000000..10b9cf1819
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/feed-subscriptions.dtd
@@ -0,0 +1,55 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Subscription Dialog -->
+<!ENTITY feedSubscriptions.label "Tilatut syötteet">
+<!ENTITY learnMore.label "Lue lisää syötteistä">
+
+<!ENTITY feedTitle.label "Otsikko:">
+<!ENTITY feedTitle.accesskey "O">
+
+<!ENTITY feedLocation.label "Syötteen osoite:">
+<!ENTITY feedLocation.accesskey "S">
+<!ENTITY feedLocation2.placeholder "Syötä kelvollinen syötteen osoite">
+<!ENTITY locationValidate.label "Varmista">
+<!ENTITY validateText.label "Varmista syöte ja hae kelvollinen osoite.">
+
+<!ENTITY feedFolder.label "Säilytä artikkeleita:">
+<!ENTITY feedFolder.accesskey "a">
+
+<!-- Account Settings and Subscription Dialog -->
+<!ENTITY biffStart.label "Etsi uusia artikkeleita aina ">
+<!ENTITY biffStart.accesskey "u">
+<!ENTITY biffMinutes.label "minuutin">
+<!ENTITY biffMinutes.accesskey "m">
+<!ENTITY biffDays.label "päivän">
+<!ENTITY biffDays.accesskey "p">
+<!ENTITY recommendedUnits.label "Julkaisijan suositukset:">
+
+<!ENTITY quickMode.label "Älä lataa artikkelin verkkosivua vaan näytä artikkelin yhteenveto">
+<!ENTITY quickMode.accesskey "v">
+
+<!ENTITY autotagEnable.label "Luo tunnisteet automaattisesti syötteen &lt;kategorioiden&gt; nimistä">
+<!ENTITY autotagEnable.accesskey "L">
+<!ENTITY autotagUsePrefix.label "Lisää tunnisteisiin etuliite:">
+<!ENTITY autotagUsePrefix.accesskey "e">
+<!ENTITY autoTagPrefix.placeholder "Kirjoita tunnisteen etuliite">
+
+<!-- Subscription Dialog -->
+<!ENTITY button.addFeed.label "Lisää">
+<!ENTITY button.addFeed.accesskey "L">
+<!ENTITY button.verifyFeed.label "Vertaile">
+<!ENTITY button.verifyFeed.accesskey "e">
+<!ENTITY button.updateFeed.label "Päivitä">
+<!ENTITY button.updateFeed.accesskey "P">
+<!ENTITY button.removeFeed.label "Poista">
+<!ENTITY button.removeFeed.accesskey "o">
+<!ENTITY button.importOPML.label "Tuo">
+<!ENTITY button.importOPML.accesskey "T">
+<!ENTITY button.exportOPML.label "Vie">
+<!ENTITY button.exportOPML.accesskey "V">
+<!ENTITY button.exportOPML.tooltip "Vie syötteet kansiorakenteella; Napsauta ctrl-näppäin pohjassa tai ctrl+enter jos haluat viedä syötteet listana">
+
+<!ENTITY cmd.close.commandKey "w">
+<!ENTITY button.close.label "Sulje">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/newsblog.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/newsblog.properties
new file mode 100644
index 0000000000..edb1a7abca
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-newsblog/newsblog.properties
@@ -0,0 +1,93 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+subscribe-validating-feed=Tarkistetaan syötettä…
+subscribe-cancelSubscription=Peruutetaanko syötteen tilaus?
+subscribe-cancelSubscriptionTitle=Tilataan syötettä…
+subscribe-feedAlreadySubscribed=Syöte on jo tilattu.
+subscribe-errorOpeningFile=Tiedoston avaus ei onnistunut.
+subscribe-feedAdded=Lisättiin syöte.
+subscribe-feedUpdated=Päivitettiin syöte.
+subscribe-feedMoved=Syötteen tilaus siirretty.
+subscribe-feedCopied=Syötteen tilaus kopioitu.
+subscribe-feedRemoved=Peruutettu syötteen tilaus.
+subscribe-feedNotValid=Syötteen osoite ei ole kelvollinen syöte.
+subscribe-feedVerified=Syötteen URL on vahvistettu.
+subscribe-networkError=Syötteen osoitetta ei löytynyt. Tarkista nimi ja yritä uudestaan.
+subscribe-noAuthError=Syötteen verkko-osoitetta ei ole hyväksytty.
+subscribe-loading=Ladataan, odota hetki…
+
+subscribe-OPMLImportTitle=Valitse tuotava OPML-tiedosto
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleList):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleList=Vie tili %S OPML-tiedostoksi - Syötelista
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleStruct):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleStruct=Vie tili %S OPML-tiedostoksi - Syötteet kansiorakenteella
+## LOCALIZATION NOTE(subscribe-OPMLExportFileDialogTitle):
+## %1$S is the brandShortName, %2$S is the name of the feed account folder name.
+subscribe-OPMLExportFileDialogTitle=%1$Sin OPML-vienti - %2$S
+## LOCALIZATION NOTE(subscribe-OPMLExportDefaultFileName):
+## %1$S is the brandShortName (Thunderbird for example), %2$S is the account name.
+## The default extension (.opml) is added here as it is not automatically appended in the file picker on MacOS.
+subscribe-OPMLExportDefaultFileName=%1$Sin_syötteet-%2$S.opml
+## LOCALIZATION NOTE(subscribe-OPMLImportInvalidFile): %S is the name of the OPML file the user tried to import.
+subscribe-OPMLImportInvalidFile=Tiedosto %S ei näytä olevan oikein muotoiltu OPML-tiedosto.
+## LOCALIZATION NOTE(subscribe-OPMLImportFeedCount): Semi-colon list of plural forms.
+## See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of new imported entries.
+subscribe-OPMLImportFeedCount=Tuotiin #1 uusi syöte.;Tuotiin #1 uutta syötettä.
+## LOCALIZATION NOTE(subscribe-OPMLImportUniqueFeeds): Semi-colon list of plural forms.
+## #1 is the count of new imported entries
+subscribe-OPMLImportUniqueFeeds=Tuotiin #1 syöte, jota et vielä tilannut;Tuotiin #1 syötettä, joita et vielä tilannut
+## LOCALIZATION NOTE(subscribe-OPMLImportFoundFeeds):
+## #1 is total number of elements found in the file
+subscribe-OPMLImportFoundFeeds=(yhteensä #1 löydetystä syötteestä);(yhteensä #1 löydetystä syötteestä)
+## LOCALIZATION NOTE(subscribe-OPMLImportStatus):
+## This is the concatenation of the two strings defined above to compose 1 sentence.
+## %1$S = subscribe-OPMLImportUniqueFeeds
+## %2$S = subscribe-OPMLImportFoundFeeds
+subscribe-OPMLImportStatus=%1$S %2$S.
+
+subscribe-OPMLExportOPMLFilesFilterText=OPML-tiedostot
+## LOCALIZATION NOTE(subscribe-OPMLExportDone): %S is the export file name.
+subscribe-OPMLExportDone=Tämän tilin syötteet on viety kohteeseen %S.
+
+subscribe-confirmFeedDeletionTitle=Poista syöte
+## LOCALIZATION NOTE(subscribe-confirmFeedDeletion): %S is the name of the feed the user wants to unsubscribe from.
+subscribe-confirmFeedDeletion=Poistetaanko syöte %S?
+
+## LOCALIZATION NOTE(subscribe-gettingFeedItems):
+## - The first %S is the number of articles processed so far;
+## - The second %S is the total number of items
+subscribe-gettingFeedItems=Noudetaan syötteen artikkeleita (%S / %S)…
+
+newsblog-noNewArticlesForFeed=Syötteessä ei ole uusia artikkeleita
+## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
+newsblog-networkError=Osoitetta %S ei voitu avata. Tarkista osoite ja yritä uudelleen.
+## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
+newsblog-feedNotValid=%S ei ole kelvollinen syöte
+## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
+newsblog-badCertError=%S käyttää virheellistä turvallisuusvarmennetta.
+## LOCALIZATION NOTE(newsblog-noAuthError): %S is the feed URL
+newsblog-noAuthError=%S ei ole hyväksytty verkko-osoite.
+newsblog-getNewMsgsCheck=Haetaan uusia artikkeleita sisältäviä syötteitä…
+
+## LOCALIZATION NOTE(feeds-accountname): This string should be the same as feeds.accountName in am-newsblog.dtd
+feeds-accountname=Uutiset ja blogit
+
+## LOCALIZATION NOTE(externalAttachmentMsg): Content in the MIME part for external link attachments.
+externalAttachmentMsg=Tämä MIME-liite tallennetaan erillään viestistä.
+
+## Import wizard.
+ImportFeedsCreateNewListItem=* Uusi tili *
+ImportFeedsNewAccount=Luo ja tuo uuteen syötetiliin
+ImportFeedsExistingAccount=Tuo olemassa olevaan syötetiliin
+## LOCALIZATION NOTE(ImportFeedsDone):
+## - The first %S is the import file name;
+## - The second %S is the value of either ImportFeedsNew or ImportFeedsExisting;
+## - The third %S is the feed account name.
+ImportFeedsNew=uudelle
+ImportFeedsExisting=olemassa olevalle
+ImportFeedsDone=Tilattujen syötteiden tuonti tiedostosta %1$S %2$S tilille '%3$S' onnistui.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-region/region.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-region/region.properties
new file mode 100644
index 0000000000..f3edbdf297
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-region/region.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# To make mapit buttons to disappear in the addressbook, specify empty string. For example:
+# mail.addr_book.mapit_url.format=
+# The format for "mail.addr_book.mapit_url.format" is:
+# @A1 == address, part 1
+# @A2 == address, part 2
+# @CI == city
+# @ST == state
+# @ZI == zip code
+# @CO == country
+mail.addr_book.mapit_url.format=https://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+
+mailnews.messageid_browser.url=http://groups.google.com/search?as_umsgid=%mid
+
+# Recognize non-standard versions of "Re:" in subjects from localized versions of MS Outlook et al.
+# Specify a comma-separated list without spaces. For example: mailnews.localizedRe=AW,SV
+mailnews.localizedRe=VS,SV
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/certFetchingStatus.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/certFetchingStatus.dtd
new file mode 100644
index 0000000000..5038696976
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/certFetchingStatus.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE shown while obtaining certificates from a directory -->
+
+<!ENTITY title.label "Noudetaan varmenteita">
+<!ENTITY info.message "Etsitään hakemistosta vastaanottajien varmenteita. Tämä saattaa kestää hetken.">
+<!ENTITY stop.label "Lopeta etsiminen">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSMIMEOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSMIMEOverlay.dtd
new file mode 100644
index 0000000000..020a713182
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSMIMEOverlay.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSMIMEOverlay.dtd UI for s/mime hooks in message composition -->
+
+<!-- not yet used
+<!ENTITY menu_securityEncryptOptional.label "Allow Encryption">
+<!ENTITY menu_securityEncryptOptional.accesskey "w">
+-->
+
+<!ENTITY menu_techPGP.label "OpenPGP">
+<!ENTITY menu_techPGP.accesskey "O">
+<!ENTITY menu_techSMIME.label "S/MIME">
+<!ENTITY menu_techSMIME.accesskey "S">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.dtd
new file mode 100644
index 0000000000..ae769b3416
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSecurityInfo.dtd UI for viewing security status when composing a message -->
+
+<!ENTITY title.label "Viestin suojaustiedot">
+<!ENTITY subject.plaintextWarning "Huomaa: Sähköpostiviestien aihekenttää ei salata koskaan.">
+<!ENTITY status.heading "Viestisi sisältö lähetetään seuraavanlaisena:">
+<!ENTITY status.signed "Digitaalisesti allekirjoitettu:">
+<!ENTITY status.encrypted "Salattu:">
+<!ENTITY status.certificates "Varmenteet:">
+<!ENTITY view.label "Näytä">
+<!ENTITY view.accesskey "N">
+<!ENTITY tree.recipient "Vastaanottaja:">
+<!ENTITY tree.status "Tila:">
+<!ENTITY tree.issuedDate "Myönnetty:">
+<!ENTITY tree.expiresDate "Vanhenee:">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.properties
new file mode 100644
index 0000000000..050e49421b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgCompSecurityInfo.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+StatusNotFound=Ei l\u00F6ydetty
+StatusValid=Kelvollinen
+StatusExpired=Vanhentunut
+StatusUntrusted=Ei luotettu
+StatusRevoked=Kumottu
+StatusInvalid=Virheellinen
+StatusYes=Kyll\u00E4
+StatusNo=Ei
+StatusNotPossible=Ei ole mahdollinen
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSMIMEOverlay.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSMIMEOverlay.properties
new file mode 100644
index 0000000000..38422e8bd7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSMIMEOverlay.properties
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ImapOnDemand=Avattu viesti on digitaalisesti allekirjoitettu, mutta kaikkia sen liitteist\u00E4 ei ole viel\u00E4 noudettu ja siksi allekirjoitusta ei voida vahvistaa. Napsauta OK noutaaksesi koko viestin ja vahvistaaksesi allekirjoituksen.
+#
+#NOTE To translater, anything between %..% and <..> should not be translated.
+# the former will be replaced by java script, and the latter is HTML formatting.
+#
+CantDecryptTitle=%brand% ei pysty purkamaan viestin salausta
+CantDecryptBody=Viestin l\u00E4hett\u00E4j\u00E4 salasi viestin k\u00E4ytt\u00E4en jotain digitaalista varmennettasi, mutta %brand% ei l\u00F6yt\u00E4nyt t\u00E4t\u00E4 varmennetta tai vastaavaa salaista avainta. <br> Mahdollisia ratkaisuja: <br><ul><li>Jos omistat \u00E4lykortin, sy\u00F6t\u00E4 se nyt lukijaan. <li>Jos tietokone on uusi tai k\u00E4yt\u00F6ss\u00E4 on uusi profiili, varmenne ja salainen avain t\u00E4ytyy palauttaa varmennuskopiosta. Varmenteiden varmuuskopioiden tiedostop\u00E4\u00E4te on yleens\u00E4 ".p12".</ul>
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSecurityInfo.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSecurityInfo.dtd
new file mode 100644
index 0000000000..cc76ffe94f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgReadSecurityInfo.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgReadSecurityInfo.dtd UI for viewing security status when reading a received message -->
+
+<!ENTITY status.label "Viestin suojaus">
+<!ENTITY signatureCert.label "Näytä allekirjoituksen varmenne">
+<!ENTITY encryptionCert.label "Näytä salausvarmenne">
+
+<!ENTITY signer.name "Allekirjoittaja:">
+<!ENTITY recipient.name "Salattu vastaanottajalle:">
+<!ENTITY email.address "Sähköpostiosoite:">
+<!ENTITY issuer.name "Varmenteen myöntäjä:">
+
+<!-- LOCALIZATION NOTE(SMIME.label): This a name for a technical standard. You should not translate it, but if applicable, you may write it using localized characters. -->
+<!ENTITY SMIME.label "S/MIME">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgSecurityInfo.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgSecurityInfo.properties
new file mode 100644
index 0000000000..51be2e63b8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger-smime/msgSecurityInfo.properties
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Signature Information strings
+SINoneLabel=Viestiä ei ole digitaalisesta allekirjoitettu
+SINone=Tämä viesti ei sisällä lähettäjän digitaalista allekirjoitusta. Digitaalisen allekirjoituksen puuttumien tarkoittaa, että viestin on voinut lähettää joku tämän sähköpostiosoitteen omistajaksi tekeytyvä. On myös mahdollista, että viestiä on muokattu sitä verkossa siirrettäessä. Molemmat tapahtumat ovat kuitenkin epätodennäköisiä.
+SIValidLabel=Viesti on allekirjoitettu
+SIValid=Tässä viestissä on kelvollinen digitaalinen allekirjoitus. Viestiä ei ole muokattu sen lähettämisen jälkeen.
+SIInvalidLabel=Digitaalinen allekirjoitus ei ole kelvollinen
+SIInvalidHeader=Tässä viestissä on digitaalinen allekirjoitus, mutta allekirjoitus ei ole kelvollinen.
+SIContentAltered=Allekirjoitus ei täsmää viestin sisällön kanssa. Näyttää siltä, että viestiä on muutettu sen jälkeen kun sen kirjoittaja on lähettänyt sen. Sinun ei pitäisi luottaa tämän viestin oikeellisuuteen, ennen kuin vahvistat sisällön lähettäjältä.
+SIExpired=Tämän viestin allekirjoittamiseen käytetty varmenne näyttää vanhentuneen. Varmista, että tietokoneesi kello on oikeassa ajassa.
+SIRevoked=Tämän viestin allekirjoittamiseen käytetty varmenne on kumottu. Sinun ei pitäisi luottaa tämän viestin allekirjoitukseen, ennen kuin vahvistat sisällön lähettäjältä.
+SINotYetValid=Tämän viestin allekirjoittamiseen käytetty varmenne ei ole vielä kelvollinen. Varmista, että tietokoneesi kello on oikeassa ajassa.
+SIUnknownCA=Tämän viestin allekirjoittamiseen käytetyn varmenteen on myöntänyt tuntematon taho.
+SIUntrustedCA=Tämän viestin allekirjoittamiseen käytetyn varmenteen on myöntänyt taho, jonka myöntämiin tämän kaltaisiin varmenteisiin et luota.
+SIExpiredCA=Tämän viestin allekirjoittamiseen käytetyn varmenteen on myöntänyt taho, jonka oma varmenne on vanhentunut. Varmista, että tietokoneesi kello on oikeassa ajassa.
+SIRevokedCA=Tämän viestin allekirjoittamiseen käytetyn varmenteen on myöntänyt taho, jonka oma varmenne on kumottu. Sinun ei pitäisi luottaa tämän viestin oikeellisuuteen, ennen kuin vahvistat sisällön lähettäjältä.
+SINotYetValidCA=Tämän viestin allekirjoittamiseen käytetyn varmenteen on myöntänyt taho, jonka oma varmenne ei ole vielä voimassa. Varmista, että tietokoneesi kello on oikeassa ajassa.
+SIInvalidCipher=&brandShortName;in tämä versio ei tue tämän viestin allekirjoittamiseen käytettyä salausvahvuutta.
+SIClueless=Viestin digitaalisessa allekirjoituksessa on tuntemattomia virheitä. Sinun ei pitäisi luottaa tämän viestin oikeellisuuteen, ennen kuin vahvistat sisällön lähettäjältä.
+SIPartiallyValidLabel=Viesti on allekirjoitettu
+SIPartiallyValidHeader=Vaikka digitaalinen allekirjoitus on pätevä, ei ole varmaa että lähettäjä ja allekirjoittaja ovat sama henkilö.
+SIHeaderMismatch=Lähettäjän varmenteessa mainittu sähköpostiosoite ja lähettäjän osoite eivät ole samat. Katso allekirjoituksen varmenteen tarkat tiedot tutkiaksesi kuka allekirjoitti tämän viestin.
+SICertWithoutAddress=Tämän viestin allekirjoittamiseen käytetty varmenne ei sisällä sähköpostiosoitetta. Katso allekirjoituksen varmenteen tarkat tiedot tutkiaksesi kuka allekirjoitti tämän viestin.
+
+## Encryption Information strings
+EINoneLabel2=Viestiä ei ole salattu
+EINone=Tätä viestiä ei salattu ennen sen lähettämistä. Verkossa salaamatta lähetty viesti on muiden nähtävillä siirron aikana.
+EIValidLabel=Viesti on salattu
+EIValid=Tämä viesti salattiin ennen kuin se lähetettiin sinulle. Salaus tekee viestin lukemisen sen siirron aikana hyvin vaikeaksi.
+EIInvalidLabel=Viestin salausta ei voida purkaa
+EIInvalidHeader=Tämä viesti salattiin ennen lähettämistä, mutta sitä ei voida purkaa.
+EIContentAltered=Viestin sisältöä on ilmeisesti muutettu sen siirron aikana.
+EIClueless=Tämän salatun viestin salauksessa on tuntemattomia ongelmia.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountManager.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountManager.dtd
new file mode 100644
index 0000000000..93438586d9
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountManager.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from AccountManager.xhtml -->
+
+<!ENTITY accountManagerTitle.label "Tilien asetukset">
+<!ENTITY accountManagerCloseButton.label "Sulje">
+
+<!ENTITY accountActionsButton.label "Tilitoiminnot">
+<!ENTITY accountActionsButton.accesskey "T">
+<!ENTITY addMailAccountButton.label "Lisää sähköpostitili…">
+<!ENTITY addMailAccountButton.accesskey "L">
+<!ENTITY addIMAccountButton.label "Lisää pikaviestitili…">
+<!ENTITY addIMAccountButton.accesskey "p">
+<!ENTITY addFeedAccountButton.label "Lisää syötetili…">
+<!ENTITY addFeedAccountButton.accesskey "s">
+<!ENTITY setDefaultButton.label "Aseta oletukseksi">
+<!ENTITY setDefaultButton.accesskey "A">
+<!ENTITY removeButton.label "Poista tili">
+<!ENTITY removeButton.accesskey "o">
+
+<!ENTITY addonsButton.label "Laajennukset ja teemat">
+
+<!-- AccountManager.xhtml -->
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountWizard.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountWizard.dtd
new file mode 100644
index 0000000000..189af848a7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/AccountWizard.dtd
@@ -0,0 +1,55 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Entities for AccountWizard -->
+
+<!ENTITY windowTitle.label "Tilin ohjattu luominen">
+<!ENTITY accountWizard.size "width: 42em; height: 40em;">
+
+<!-- Entities for Account Type page -->
+
+<!-- Entities for Identity page -->
+
+<!ENTITY identityTitle.label "Käyttäjätiedot">
+<!ENTITY identityDesc.label "Jokaiseen tiliin tallennetaan käyttäjätietosi, jotta viestiesi vastaanottajat tunnistavat sinut.">
+
+<!-- LOCALIZATION NOTE (fullnameDesc.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY fullnameDesc.label "Kirjoita nimi, jonka haluat näkyvän lähettämiesi viestien Lähettäjä-kentässä">
+<!-- LOCALIZATION NOTE (fullnameExample.label) : use following directions for below line
+ 1, do not translate two of "&quot;"
+ 2, Use localized full name instead of "John Smith"
+-->
+<!ENTITY fullnameExample.label "(esimerkiksi &quot;Erkki Esimerkki&quot;).">
+<!ENTITY fullnameLabel.label "Nimi:">
+<!ENTITY fullnameLabel.accesskey "N">
+
+<!ENTITY emailLabel.label "Sähköpostiosoite:">
+<!ENTITY emailLabel.accesskey "S">
+
+<!-- Entities for Incoming Server page -->
+
+<!ENTITY incomingTitle.label "Saapuvan postin palvelimen tiedot">
+<!ENTITY incomingUsername.label "Käyttäjätunnus:">
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+<!ENTITY newsServerNameDesc.label "Kirjoita keskusteluryhmäpalvelimesi (NNTP) nimi (esimerkiksi &quot;news.example.net&quot;).">
+<!ENTITY newsServerLabel.label "Keskusteluryhmäpalvelin:">
+<!ENTITY newsServerLabel.accesskey "e">
+
+<!-- Entities for Outgoing Server page -->
+
+<!-- Entities for Account name page -->
+
+<!ENTITY accnameTitle.label "Tilin nimi">
+<!-- LOCALIZATION NOTE (accnameDesc.label) : do not translate any "&quot;" in below line -->
+<!ENTITY accnameDesc.label "Anna tälle tilille jokin nimi (esimerkiksi &quot;Työ&quot;, &quot;Kotitili&quot; tai &quot;Keskusteluryhmätili&quot;).">
+<!ENTITY accnameLabel.label "Tilin nimi:">
+<!ENTITY accnameLabel.accesskey "n">
+
+<!-- Entities for Done (Congratulations) page -->
+
+<!ENTITY completionTitle.label "Valmis">
+<!ENTITY completionText.label "Vahvista, että alla olevat tiedot ovat oikein.">
+<!ENTITY newsServerNamePrefix.label "Keskusteluryhmäpalvelimen (NNTP) nimi:">
+<!ENTITY clickFinish.label "Kun haluat tallentaa tilin asetukset ja lopettaa ohjatun toiminnon, valitse Valmis.">
+<!ENTITY clickFinish.labelMac "Kun haluat tallentaa tilin asetukset ja lopettaa ohjatun toiminnon, valitse Valmis.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/CustomHeaders.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/CustomHeaders.dtd
new file mode 100644
index 0000000000..f8e5375e62
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/CustomHeaders.dtd
@@ -0,0 +1,11 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Muokkaa otsaketietoja">
+<!ENTITY addButton.label "Lisää">
+<!ENTITY addButton.accesskey "L">
+<!ENTITY removeButton.label "Poista">
+<!ENTITY removeButton.accesskey "o">
+<!ENTITY newMsgHeader.label "Uusi otsaketieto:">
+<!ENTITY newMsgHeader.accesskey "U">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterEditor.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterEditor.dtd
new file mode 100644
index 0000000000..8cb6c927c2
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterEditor.dtd
@@ -0,0 +1,66 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Suodatusehdot">
+<!ENTITY filterName.label "Suodattimen nimi:">
+<!ENTITY filterName.accesskey "S">
+
+<!ENTITY junk.label "Roskapostia">
+<!ENTITY notJunk.label "Ei roskapostia">
+
+<!ENTITY lowestPriorityCmd.label "Matalin">
+<!ENTITY lowPriorityCmd.label "Matala">
+<!ENTITY normalPriorityCmd.label "Normaali">
+<!ENTITY highPriorityCmd.label "Korkea">
+<!ENTITY highestPriorityCmd.label "Korkein">
+
+<!ENTITY contextDesc.label "Suodata viestit, kun:">
+<!ENTITY contextIncomingMail.label "Haetaan uusia viestejä:">
+<!ENTITY contextIncomingMail.accesskey "H">
+<!ENTITY contextManual.label "Suorita käsin">
+<!ENTITY contextManual.accesskey "k">
+<!ENTITY contextBeforeCls.label "Suodata ennen roskapostiluokitusta">
+<!ENTITY contextAfterCls.label "Suodata roskapostiluokituksen jälkeen">
+<!ENTITY contextOutgoing.label "Lähettämisen jälkeen">
+<!ENTITY contextOutgoing.accesskey "L">
+<!ENTITY contextArchive.label "Arkistoitaessa">
+<!ENTITY contextArchive.accesskey "A">
+<!ENTITY contextPeriodic.accesskey "i">
+
+<!ENTITY filterActionDesc.label "Suorita nämä toiminnot:">
+<!ENTITY filterActionDesc.accesskey "o">
+
+<!ENTITY filterActionOrderWarning.label "Huom.: Suodatintoiminnot suoritetaan eri järjestyksessä.">
+<!ENTITY filterActionOrder.label "Näytä suoritusjärjestys">
+
+<!-- New Style Filter Rule Actions -->
+<!ENTITY moveMessage.label "Siirrä kansioon">
+<!ENTITY copyMessage.label "Kopioi kansioon">
+<!ENTITY forwardTo.label "Välitä osoitteeseen">
+<!ENTITY replyWithTemplate.label "Vastaa mallipohjalla">
+<!ENTITY markMessageRead.label "Merkitse luetuksi">
+<!ENTITY markMessageUnread.label "Merkitse ei luetuksi">
+<!ENTITY markMessageStarred.label "Lisää tähti">
+<!ENTITY setPriority.label "Aseta tärkeysasteeksi">
+<!ENTITY addTag.label "Lisää tunnus">
+<!ENTITY setJunkScore.label "Aseta roskapostitila">
+<!ENTITY deleteMessage.label "Poista viesti">
+<!ENTITY deleteFromPOP.label "Poista viesti palvelimelta">
+<!ENTITY fetchFromPOP.label "Nouda viestin runko palvelimelta">
+<!ENTITY ignoreThread.label "Ohita viestiketju">
+<!ENTITY ignoreSubthread.label "Ohita aliketju">
+<!ENTITY watchThread.label "Seuraa viestiketjua">
+<!ENTITY stopExecution.label "Pysäytä suodattaminen">
+
+<!ENTITY addAction.tooltip "Lisää uusi tehtävä">
+<!ENTITY removeAction.tooltip "Poista tämä tehtävä">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the filter action widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!-- Flex Attribute: https://developer.mozilla.org/docs/XUL/Attribute/flex -->
+<!ENTITY filterActionTypeFlexValue "1">
+<!ENTITY filterActionTargetFlexValue "4">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterListDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterListDialog.dtd
new file mode 100644
index 0000000000..d9e259dabc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/FilterListDialog.dtd
@@ -0,0 +1,43 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Viestisuodattimet">
+<!ENTITY nameColumn.label "Suodattimen nimi">
+<!ENTITY activeColumn.label "Käytössä">
+<!ENTITY newButton.label "Uusi…">
+<!ENTITY newButton.accesskey "U">
+<!ENTITY newButton.popupCopy.label "Kopioi…">
+<!ENTITY newButton.popupCopy.accesskey "K">
+<!ENTITY editButton.label "Muokkaa…">
+<!ENTITY editButton.accesskey "M">
+<!ENTITY deleteButton.label "Poista">
+<!ENTITY deleteButton.accesskey "o">
+<!ENTITY reorderTopButton "Siirrä ylimmäksi">
+<!ENTITY reorderTopButton.accessKey "y">
+<!ENTITY reorderTopButton.toolTip "Siirrä suodatin niin, että se suoritetaan ensimmäisenä">
+<!ENTITY reorderUpButton.label "Siirrä ylös">
+<!ENTITY reorderUpButton.accesskey "y">
+<!ENTITY reorderDownButton.label "Siirrä alas">
+<!ENTITY reorderDownButton.accesskey "a">
+<!ENTITY reorderBottomButton "Siirrä alimmaiseksi">
+<!ENTITY reorderBottomButton.accessKey "a">
+<!ENTITY reorderBottomButton.toolTip "Siirrä suodatin niin, että se suoritetaan viimeisenä">
+<!ENTITY filterHeader.label "Käytössä olevat suodattimet suoritetaan alla näkyvässä järjestyksessä.">
+<!ENTITY filtersForPrefix.label "Suodattimet kohteelle:">
+<!ENTITY filtersForPrefix.accesskey "S">
+<!ENTITY viewLogButton.label "Suodatinloki">
+<!ENTITY viewLogButton.accesskey "S">
+<!ENTITY runFilters.label "Suorita nyt">
+<!ENTITY runFilters.accesskey "n">
+<!ENTITY stopFilters.label "Pysäytä">
+<!ENTITY stopFilters.accesskey "y">
+<!ENTITY folderPickerPrefix.label "Suorita valitut suodattimet kansiolle:">
+<!ENTITY folderPickerPrefix.accesskey "v">
+<!ENTITY helpButton.label "Ohje">
+<!ENTITY helpButton.accesskey "O">
+<!ENTITY closeCmd.key "W">
+<!ENTITY searchBox.emptyText "Etsi suodatinta nimellä…">
+
+
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/SearchDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/SearchDialog.dtd
new file mode 100644
index 0000000000..3bd2b621cc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/SearchDialog.dtd
@@ -0,0 +1,38 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- for SearchDialog.xul -->
+<!ENTITY searchHeading.label "Etsi kohteesta:">
+<!ENTITY searchHeading.accesskey "k">
+<!ENTITY searchSubfolders.label "Etsi alikansioista">
+<!ENTITY searchSubfolders.accesskey "a">
+<!ENTITY searchOnServer.label "Suorita haku palvelimella">
+<!ENTITY searchOnServer.accesskey "u">
+<!ENTITY resetButton.label "Tyhjennä">
+<!ENTITY resetButton.accesskey "T">
+<!ENTITY openButton.label "Avaa">
+<!ENTITY openButton.accesskey "v">
+<!ENTITY deleteButton.label "Poista">
+<!ENTITY deleteButton.accesskey "o">
+<!ENTITY searchDialogTitle.label "Etsi viesteistä">
+<!ENTITY results.label "Tulokset">
+<!ENTITY moveButton.label "Siirrä kohteeseen">
+<!ENTITY moveButton.accesskey "k">
+<!ENTITY closeCmd.key "W">
+<!ENTITY openInFolder.label "Avaa kansioon">
+<!ENTITY openInFolder.accesskey "k">
+<!ENTITY saveAsVFButton.label "Tallenna hakukansiona">
+<!ENTITY saveAsVFButton.accesskey "h">
+
+<!-- for ABSearchDialog.xul -->
+<!ENTITY abSearchHeading.label "Etsi kohteesta:">
+<!ENTITY abSearchHeading.accesskey "k">
+<!ENTITY propertiesButton.label "Ominaisuudet">
+<!ENTITY propertiesButton.accesskey "O">
+<!ENTITY composeButton.label "Kirjoita">
+<!ENTITY composeButton.accesskey "K">
+<!ENTITY deleteCardButton.label "Poista">
+<!ENTITY deleteCardButton.accesskey "P">
+<!ENTITY abSearchDialogTitle.label "Etsi osoitekirjasta">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutDownloads.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutDownloads.dtd
new file mode 100644
index 0000000000..a6d3a1973e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutDownloads.dtd
@@ -0,0 +1,23 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutDownloads.title "Tallennetut tiedostot">
+<!-- LOCALIZATION NOTE (cmd.show.label, cmd.show.accesskey, cmd.showMac.label,
+ cmd.showMac.accesskey):
+ The show and showMac commands are never shown together, thus they can share
+ the same access key (though the two access keys can also be different).
+ -->
+<!ENTITY cmd.show.label "Avaa tallennuskansio">
+<!ENTITY cmd.show.accesskey "A">
+<!ENTITY cmd.showMac.label "Avaa Finderissa">
+<!ENTITY cmd.showMac.accesskey "F">
+<!ENTITY cmd.open.label "Avaa">
+<!ENTITY cmd.open.accesskey "v">
+<!ENTITY cmd.removeFromHistory.label "Poista historiasta">
+<!ENTITY cmd.removeFromHistory.accesskey "o">
+<!ENTITY cmd.clearList.label "Tyhjennä lista">
+<!ENTITY cmd.clearList.accesskey "T">
+<!ENTITY cmd.clearList.tooltip "Poista kaikki merkinnät tallentuista tiedostoista, paitsi käynnissä olevat lataukset.">
+<!ENTITY cmd.searchDownloads.label "Etsi…">
+<!ENTITY cmd.searchDownloads.key "F">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutRights.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutRights.properties
new file mode 100644
index 0000000000..edf4038ea3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutRights.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buttonLabel=Tietoa oikeuksistasi…
+buttonAccessKey=T
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutSupportMail.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutSupportMail.properties
new file mode 100644
index 0000000000..21b4c30deb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/aboutSupportMail.properties
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (warningLabel): Label for warning text that shows up when private data is included
+warningLabel=VAROITUS:
+# LOCALIZATION NOTE (warningText): Warning text that shows up when private data is included
+warningText=Tiedot ovat osaksi luottamuksellisia, eikä niitä tule välittää eteenpäin tai julkaista ilman erillistä lupaa.
+
+# LOCALIZATION NOTE (fsType.local): Indicator that the displayed directory is on a local drive
+fsType.local = (Paikallinen levy)
+# LOCALIZATION NOTE (fsType.network): Indicator that the displayed directory is on the network
+fsType.network = (Verkkolevy)
+# LOCALIZATION NOTE (fsType.unknown): Indicator that we couldn't figure out whether the directory is local or on a network
+fsType.unknown = (Tuntematon sijainti)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationModel.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationModel.properties
new file mode 100644
index 0000000000..2053c2fd84
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationModel.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: fetchConfig.js, readFromXML.js, guessConfig.js, verifyConfig.js, createInBackend.js
+
+
+# readFromXML.js
+no_emailProvider.error=XML-asetustiedosto ei sisällä sähköpostitilin asetustietoja.
+outgoing_not_smtp.error=Lähtevän postin palvelimen täytyy olla SMTP-palvelin
+
+# verifyConfig.js
+cannot_login.error=Palvelimelle kirjautuminen ei onnistunut. Luultavasti asetukset, käyttäjätunnus tai salasana ovat väärin.
+
+
+# guessConfig.js
+cannot_find_server.error=Palvelinta ei löydy
+
+# exchangeAutoDiscover.js
+no_autodiscover.error=Exchangen AutoDiscover XML on virheellinen.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationUtil.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationUtil.properties
new file mode 100644
index 0000000000..165adcca37
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/accountCreationUtil.properties
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: sanitizeDatatypes.js, fetchhttp.js, util.js
+
+
+# sanitizeDatatypes.js
+hostname_syntax.error=Palvelinkenttä on tyhjä tai sisältää kiellettyjä merkkejä. Vain kirjaimet, numerot, - ja . ovat sallittuja merkkejä.
+alphanumdash.error=Merkkijono sisältää merkkejä, joita ei tueta. Vain kirjaimet, numerot, - ja _ ovat sallittuja merkkejä.
+allowed_value.error=Annettu arvo ei ole sallittujen listalla
+url_scheme.error=URL-muoto ei ole sallittu
+url_parsing.error=URL-osoitetta ei tunnistettu
+string_empty.error=Tälle merkkijonolle täytyy antaa arvo
+boolean.error=Ei boolean
+no_number.error=Ei numero
+number_too_large.error=Numero on liian suuri
+number_too_small.error=Numero on liian pieni
+
+
+# fetchhttp.js
+cannot_contact_server.error=Ei saada yhteyttä palvelimeen
+bad_response_content.error=Virheellinen vastaus palvelimelta
+
+# verifyConfig.js
+# LOCALIZATION NOTE(auth_failed_generic.error): The login failed (server refused to allow the user in), but the server did not give any meaningful error message. This is a common case when the user entered a wrong password or is otherwise not allowed.
+auth_failed_generic.error=Kirjautuminen epäonnistui. Tarkista käyttäjätunnus/sähköpostiosoite ja salasana.
+# LOCALIZATION NOTE(auth_failed_with_reason.error): The login failed (server refused to allow the user in), and the server gave an error message which we can present to the user. This is a common case when the user entered a wrong password or is otherwise not allowed. %1$S will be the IMAP/POP3/SMTP server hostname. %2$S will be the error message from the server (usually in the local language where the server is or in English).
+auth_failed_with_reason.error=Kirjautuminen epäonnistui. Palvelimen %1$S vastaus: %2$S
+# LOCALIZATION NOTE(verification_failed.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we unfortunately have no detailed error message.
+verification_failed.error=Kirjautumisen todennus epäonnistui tuntemattomasta syystä.
+# LOCALIZATION NOTE(verification_failed_with_exception.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we have an error message. %1$S will be an error message, possibly in English
+verification_failed_with_exception.error=Kirjautumisen todennus epäonnistui ilmoituksella: %1$S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.dtd
new file mode 100644
index 0000000000..fe8b5aa475
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (window.width2, window.height): These values should be
+close to the golden ratio (1.618:1) while making sure it's wide enough for long
+file names and tall enough to hint that there are more activities in the list -->
+<!ENTITY window.width2 "485">
+<!ENTITY window.height "300">
+
+<!ENTITY activity.title "Toimintojen hallinta">
+
+<!ENTITY cmd.close.commandkey "w">
+<!ENTITY cmd.close2.commandkey "j">
+<!ENTITY cmd.close2Unix.commandkey "y">
+<!ENTITY cmd.clearList.label "Tyhjennä lista">
+<!ENTITY cmd.clearList.tooltip "Poistaa valmiit, peruutetut tai epäonnistuneet kohdat listasta">
+<!ENTITY cmd.clearList.accesskey "T">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.properties
new file mode 100644
index 0000000000..c10af411b3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/activity.properties
@@ -0,0 +1,99 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Status Text
+paused2=Pysäytetty
+processing=Käsitellään
+notStarted=Ei aloitettu
+failed=Epäonnistui
+waitingForInput=Odotetaan lisätietoja
+waitingForRetry=Odotetaan lisätietoja
+completed=Valmis
+canceled=Peruutettu
+
+# LOCALIZATION NOTE (sendingMessages): this is used as a title for grouping processes in the activity manager when sending email.
+sendingMessages=Lähetetään viestejä
+sendingMessage=Lähetetään viestiä
+# LOCALIZATION NOTE (sendingMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sendingMessageWithSubject=Lähetetään viestiä: %S
+copyMessage=Kopioidaan viestiä kansioon lähetetyt
+sentMessage=Viesti lähetettiin
+# LOCALIZATION NOTE (sentMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sentMessageWithSubject=Lähetettiin viesti: %S
+failedToSendMessage=Viestin lähetys ei onnistunut
+failedToCopyMessage=Viestin kopioiminen ei onnistunut
+# LOCALIZATION NOTE (failedToSendMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToSendMessageWithSubject=Viestin lähettäminen ei onnistunut: %S
+# LOCALIZATION NOTE (failedToCopyMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToCopyMessageWithSubject=Viestin kopioiminen ei onnistunut: %S
+
+# LOCALIZATION NOTE (autosyncProcessProgress2): Do not translate the words "%1$S", "%2$S", "%3$S" and "%4$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Place the word %4$S in your translation where the name of account being processed should appear.
+# EXAMPLE: Ted's account: Downloading message 334 of 1008 in Inbox…
+autosyncProcessProgress2=%4$S: Ladataan viestiä %1$S/%2$S kansioon %3$S…
+# LOCALIZATION NOTE (autosyncProcessDisplayText): %S will be replaced by the folder name
+autosyncProcessDisplayText=Päivitetään kansion %S sisältöä
+# LOCALIZATION NOTE (autosyncEventDisplayText): %S will be replaced by the account name
+autosyncEventDisplayText=%S on päivitetty ajan tasalle
+# LOCALIZATION NOTE (autosyncEventStatusText): %S will be replaced by total number of downloaded messages
+autosyncEventStatusText=Viestejä noudettu yhteensä: %S
+autosyncEventStatusTextNoMsgs=Viestejä ei ole noudettu
+# LOCALIZATION NOTE (autosyncContextDisplayText): %S will be replaced by the account name
+autosyncContextDisplayText=Synkronoidaan tiliä: %S
+
+# LOCALIZATION NOTE (pop3EventStartDisplayText2): Do not translate the words "%1$S" and "%2$S" below.
+# Place the word %1$S in your translation where the name of the account being checked for new messages should appear.
+# Place the word %2$S in your translation where the name of the folder being checked for new messages should appear.
+# EXAMPLE: George's account: Checking Inbox for new messages…
+pop3EventStartDisplayText2=%1$S: Tarkistetaan uusia viestejä kansioon %2$S…
+# LOCALIZATION NOTE (pop3EventDisplayText): %S will be replaced by the account name
+pop3EventDisplayText=Tili %S on ajan tasalla
+# LOCALIZATION NOTE (pop3EventStatusText): #1 will be replaced by total number of downloaded messages
+pop3EventStatusText=#1 viesti ladattu;#1 viestiä ladattu
+pop3EventStatusTextNoMsgs=Ei uusia viestejä
+
+# Message actions that show up in activity manager
+# LOCALIZATION NOTE (deletedMessages2): #1 number of messages, #2 folder name
+deletedMessages2=Poistettiin #1 viesti kansiosta #2;Poistettiin #1 viestiä kansiosta #2
+# LOCALIZATION NOTE (movedMessages): #1 number of messages, #2 and #3: folder names
+movedMessages=Siirrettiin #1 viesti kansiosta #2 kansioon #3;Siirrettiin #1 viestiä kansiosta #2 kansioon #3
+# LOCALIZATION NOTE (copiedMessages): #1 number of messages, #2 and #3: folder names
+copiedMessages=Kopioitiin #1 viesti kansiosta #2 kansioon #3;Kopioitiin #1 viestiä kansiosta #2 kansioon #3
+# LOCALIZATION NOTE (fromServerToServer): #1 source server, #2 destination server
+fromServerToServer=palvelimelta #1 palvelimelle #2
+# LOCALIZATION NOTE (deletedFolder): #1 folder name
+deletedFolder=Poistettiin kansio #1
+emptiedTrash=Tyhjennettiin roskakori
+# LOCALIZATION NOTE (movedFolder): #1 and #2 are folder names
+movedFolder=Siirrettiin kansio #1 kansioon #2
+# LOCALIZATION NOTE (movedFolderToTrash): #1 is the folder name
+movedFolderToTrash=Siirrettiin kansio #1 roskakoriin
+# LOCALIZATION NOTE (copiedFolder): #1 and #2 are folder names
+copiedFolder=Kopioitiin kansio #1 kansioon #2
+# LOCALIZATION NOTE (renamedFolder): #1 and #2 are folder names
+renamedFolder=Kansio #1 nimettiin uudelleen kansioksi #2
+indexing=Luodaan hakemistoa viesteistä
+# LOCALIZATION NOTE (indexingFolder): #1 is a folder name
+indexingFolder=Luodaan hakemistoa kansion #1 viesteistä
+indexingStatusVague=Valitaan viestejä, joista luodaan hakemisto
+# LOCALIZATION NOTE (indexingFolderStatusVague): #1 is a folder name
+indexingFolderStatusVague=Valitaan kansiosta #1 viestejä, joista luodaan hakemisto
+# LOCALIZATION NOTE (indexingStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+indexingStatusExact=Luodaan hakemistoa #1 / #2 viestistä;Luodaan hakemistoa #1 / #2 viestistä (#3% valmis)
+# LOCALIZATION NOTE (indexingFolderStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+# #4 is a folder name
+indexingFolderStatusExact=Luodaan hakemistoa kansion #4 #1 / #2 viestistä;Luodaan hakemistoa kansion #4 #1 / #2 viestistä (#3% valmis)
+# LOCALIZATION NOTE (indexedFolder): #1 number of messages; #2 folder name
+indexedFolder=Luotiin hakemisto #1 viestistä kansiossa #2;Luotiin hakemisto #1 viestistä kansiossa #2
+# LOCALIZATION NOTE (indexedFolderStatus): #1 number of seconds spent indexing
+indexedFolderStatus=Kulutettiin #1 sekunti;Kulutettiin #1 sekuntia
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addbuddy.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addbuddy.dtd
new file mode 100644
index 0000000000..b7767feaf5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addbuddy.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY addBuddyWindow.title "Lisää yhteystieto">
+<!ENTITY name.label "Käyttäjätunnus">
+<!ENTITY account.label "Tili">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abAddressBookNameDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abAddressBookNameDialog.dtd
new file mode 100644
index 0000000000..eff1b5f815
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abAddressBookNameDialog.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Labels -->
+<!ENTITY name.label "Osoitekirjan nimi">
+<!ENTITY name.accesskey "O">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abContactsPanel.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abContactsPanel.dtd
new file mode 100644
index 0000000000..ba685b3edd
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abContactsPanel.dtd
@@ -0,0 +1,49 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY propertiesMenu.label "Ominaisuudet">
+<!ENTITY propertiesMenu.accesskey "i">
+<!ENTITY propertiesCmd.key "i">
+<!ENTITY abPropertiesMenu.label "Osoitekirjan ominaisuudet">
+<!ENTITY abPropertiesMenu.accesskey "i">
+<!ENTITY contactPropertiesMenu.label "Yhteyshenkilön ominaisuudet">
+<!ENTITY contactPropertiesMenu.accesskey "i">
+<!ENTITY mailingListPropertiesMenu.label "Postituslistan ominaisuudet">
+<!ENTITY mailingListPropertiesMenu.accesskey "i">
+
+<!ENTITY abContextMenuButton.tooltip "Näytä Osoitekirjan pikavalikko">
+<!ENTITY addressbookPicker.label "Osoitekirja:">
+<!ENTITY addressbookPicker.accesskey "O">
+<!ENTITY searchContacts.label "Etsi yhteyshenkilöitä:">
+<!ENTITY searchContacts.accesskey "y">
+<!ENTITY SearchNameOrEmail.label "Nimestä tai osoitteesta">
+
+<!ENTITY addtoToFieldMenu.label "Lisää vastaanottajakenttään">
+<!ENTITY addtoToFieldMenu.accesskey "v">
+<!ENTITY addtoCcFieldMenu.label "Lisää kopiokenttään">
+<!ENTITY addtoCcFieldMenu.accesskey "k">
+<!ENTITY addtoBccFieldMenu.label "Lisää piilokopiokenttään">
+<!ENTITY addtoBccFieldMenu.accesskey "p">
+<!ENTITY deleteAddrBookCard.label "Poista">
+<!ENTITY deleteAddrBookCard.accesskey "P">
+<!ENTITY propertiesContext.label "Ominaisuudet">
+<!ENTITY propertiesContext.accesskey "O">
+<!ENTITY abPropertiesContext.label "Ominaisuudet">
+<!ENTITY abPropertiesContext.accesskey "O">
+<!ENTITY editContactContext.label "Muokkaa yhteyshenkilön tietoja">
+<!ENTITY editContactContext.accesskey "M">
+<!ENTITY editMailingListContext.label "Muokkaa luetteloa">
+<!ENTITY editMailingListContext.accesskey "M">
+
+<!ENTITY newContactAbContext.label "Uusi yhteyshenkilö">
+<!ENTITY newContactAbContext.accesskey "y">
+<!ENTITY newListAbContext.label "Uusi lista">
+<!ENTITY newListAbContext.accesskey "l">
+
+<!ENTITY toButton.label "Vastaanottaja:">
+<!ENTITY toButton.accesskey "V">
+<!ENTITY ccButton.label "Kopio:">
+<!ENTITY ccButton.accesskey "K">
+<!ENTITY bccButton.label "Piilokopio:">
+<!ENTITY bccButton.accesskey "P">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMailListDialog.dtd
new file mode 100644
index 0000000000..86ab5ba135
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMailListDialog.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Title -->
+<!ENTITY mailListWindowAdd.title "Uusi postituslista">
+
+<!-- Labels and Access Keys -->
+<!ENTITY addToAddressBook.label "Lisää tähän: ">
+<!ENTITY addToAddressBook.accesskey "L">
+<!ENTITY ListName.label "Listan nimi: ">
+<!ENTITY ListName.accesskey "s">
+<!ENTITY ListNickName.label "Listan lempinimi: ">
+<!ENTITY ListNickName.accesskey "a">
+<!ENTITY ListDescription.label "Kuvaus: ">
+<!ENTITY ListDescription.accesskey "K">
+<!-- See bug 58485, when we implement drag and drop, add 'or drag addresses' back in -->
+<!ENTITY AddressTitle.label "Lisää sähköpostiosoitteet listalle kirjoittamalla:">
+<!ENTITY AddressTitle.accesskey "s">
+<!ENTITY UpButton.label "Siirrä ylöspäin">
+<!ENTITY DownButton.label "Siirrä alaspäin">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMainWindow.dtd
new file mode 100644
index 0000000000..3337dea811
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abMainWindow.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY showAsDefault.label "Oletuskansio">
+<!ENTITY showAsDefault.accesskey "K">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Nimi tai osoite">
+
+<!-- Results Pane -->
+<!ENTITY Addrbook.label "Osoitekirja">
+<!ENTITY GeneratedName.label "Nimi">
+<!ENTITY PrimaryEmail.label "Sähköpostiosoite">
+
+<!-- Card Summary Pane -->
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abResultsPane.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abResultsPane.dtd
new file mode 100644
index 0000000000..b080e01898
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/abResultsPane.dtd
@@ -0,0 +1,38 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY Addrbook.label "Osoitekirja">
+<!ENTITY Addrbook.accesskey "O">
+<!ENTITY GeneratedName.label "Nimi">
+<!ENTITY GeneratedName.accesskey "N">
+<!ENTITY PrimaryEmail.label "Sähköpostiosoite">
+<!ENTITY PrimaryEmail.accesskey "S">
+<!ENTITY Company.label "Organisaatio">
+<!ENTITY Company.accesskey "r">
+<!ENTITY _PhoneticName.label "Foneettinen nimi">
+<!ENTITY _PhoneticName.accesskey "F">
+<!ENTITY NickName.label "Lempinimi">
+<!ENTITY NickName.accesskey "L">
+<!ENTITY SecondEmail.label "Toissijainen sähköposti">
+<!ENTITY SecondEmail.accesskey "T">
+<!ENTITY Department.label "Osasto">
+<!ENTITY Department.accesskey "s">
+<!ENTITY JobTitle.label "Työnimike">
+<!ENTITY JobTitle.accesskey "ö">
+<!ENTITY CellularNumber.label "Matkapuhelin">
+<!ENTITY CellularNumber.accesskey "p">
+<!ENTITY PagerNumber.label "Hakulaite">
+<!ENTITY PagerNumber.accesskey "H">
+<!ENTITY FaxNumber.label "Faksi">
+<!ENTITY FaxNumber.accesskey "k">
+<!ENTITY HomePhone.label "Kotipuhelin">
+<!ENTITY HomePhone.accesskey "i">
+<!ENTITY WorkPhone.label "Työpuhelin">
+<!ENTITY WorkPhone.accesskey "y">
+<!ENTITY ChatName.label "Chat-nimi">
+<!ENTITY ChatName.accesskey "C">
+<!ENTITY sortAscending.label "Nouseva">
+<!ENTITY sortAscending.accesskey "N">
+<!ENTITY sortDescending.label "Laskeva">
+<!ENTITY sortDescending.accesskey "L">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/addressBook.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/addressBook.properties
new file mode 100644
index 0000000000..e7f538e791
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/addressBook.properties
@@ -0,0 +1,179 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the Mailing list dialog.
+# LOCALIZATION NOTE (mailingListTitleEdit): %S will be replaced by the Mailing List's display name.
+mailingListTitleEdit=Muokkaa postituslistaa %S
+emptyListName=Listalla pitää olla nimi.
+badListNameCharacters=Listan nimi ei voi sisältää seuraavia merkkejä: < > ; , "
+badListNameSpaces=Listan nimi ei voi sisältää useita peräkkäisiä välilyöntejä.
+lastFirstFormat=%S, %S
+firstLastFormat=%S %S
+
+allAddressBooks=Kaikki osoitekirjat
+
+newContactTitle=Uusi yhteystieto
+# %S will be the contact's display name
+newContactTitleWithDisplayName=Uudet yhteystiedot nimelle "%S"
+editContactTitle=Muokkaa yhteystietoa
+# %S will be the contact's display name
+editContactTitleWithDisplayName=Muokkaa nimen "%S" yhteystietoja
+# don't translate vCard
+editVCardTitle=Muokkaa vCardia
+# %S will be the card's display name, don't translate vCard
+editVCardTitleWithDisplayName=Muokkaa vCardia %S
+
+## LOCALIZATION NOTE (cardRequiredDataMissingMessage): do not localize \n
+cardRequiredDataMissingMessage=Kirjoita ainakin jokin seuraavista tiedoista:\nSähköpostiosoite, etunimi, sukunimi, kutsumanimi, organisaatio.
+cardRequiredDataMissingTitle=Tarvittuja tietoja puuttuu
+incorrectEmailAddressFormatMessage=Ensisijaisen sähköpostiosoitteen tulee olla muotoa tunnus@palvelin.
+incorrectEmailAddressFormatTitle=Virheellinen sähköpostiosoitteen muoto
+
+viewListTitle=Postituslista: %S
+mailListNameExistsTitle=Postituslista on jo olemassa
+mailListNameExistsMessage=Tämän niminen postituslista on jo olemassa. Valitse toinen nimi.
+
+propertyPrimaryEmail=Sähköposti
+propertyListName=Listan nimi
+propertySecondaryEmail=Toinen sähköpostiosoite
+propertyNickname=Lempinimi
+propertyDisplayName=Näyttönimi
+propertyWork=Työ
+propertyHome=Koti
+propertyFax=Faksi
+propertyCellular=Matkapuhelin
+propertyPager=Hakulaite
+propertyBirthday=Syntymäpäivä
+propertyCustom1=Oma 1
+propertyCustom2=Oma 2
+propertyCustom3=Oma 3
+propertyCustom4=Oma 4
+
+propertyGtalk=Google Talk
+propertyAIM=AIM
+propertyYahoo=Yahoo!
+propertySkype=Skype
+propertyQQ=QQ
+propertyMSN=MSN
+propertyICQ=ICQ
+propertyXMPP=Jabber-tunnus
+propertyIRC=IRC-tunnus
+
+## LOCALIZATION NOTE (cityAndStateAndZip):
+## %1$S is city, %2$S is state, %3$S is zip
+cityAndStateAndZip=%3$S, %1$S, %2$S
+## LOCALIZATION NOTE (cityAndStateNoZip):
+## %1$S is city, %2$S is state
+cityAndStateNoZip=%1$S, %2$S
+## LOCALIZATION NOTE (cityOrStateAndZip):
+## %1$S is city or state, %2$S is zip
+cityOrStateAndZip=%1$S %2$S
+
+stateZipSeparator=
+
+prefixTo=Vastaanottaja
+prefixCc=Kopio
+prefixBcc=Piilokopio
+addressBook=Osoitekirja
+
+# Contact photo management
+browsePhoto=Yhteystiedon kuva
+stateImageSave=Tallennetaan kuvaa…
+errorInvalidUri=Virhe: Virheellinen lähdekuva.
+errorNotAvailable=Virhe: Tiedosto ei ole saatavilla.
+errorInvalidImage=Virhe: Vain JPG-, PNG- ja GIF-kuvatyypit ovat tuettuja.
+errorSaveOperation=Virhe: Kuvaa ei voitu tallentaa.
+
+# mailnews.js
+ldap_2.servers.pab.description=Oma osoitekirja
+ldap_2.servers.history.description=Kerätyt osoitteet
+## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
+ldap_2.servers.osx.description=Mac OS X:n osoitekirja
+
+## LOCALIZATION NOTE (ldap_2.servers.outlook.description is only used on Windows)
+ldap_2.servers.outlook.description=Outlook-osoitekirja
+
+# status bar stuff
+## LOCALIZATION NOTE (totalContactStatus):
+## %1$S is address book name, %2$S is contact count
+totalContactStatus=Osoitekirjassa %1$S on %2$S korttia
+noMatchFound=Ei yhtään osumaa
+## LOCALIZATION NOTE (matchesFound1):
+## Semicolon-separated list of singular and plural forms.
+## See: https://developer.mozilla.org/docs/Mozilla/Localization/Localization_and_Plurals
+## #1 is the number of matching contacts found
+matchesFound1=#1 vastaavuus löytyi;#1 vastaavuutta löytyi
+
+## LOCALIZATION NOTE (contactsCopied): Semi-colon list of plural forms
+## %1$S is the number of contacts that were copied. This should be used multiple
+## times wherever you need it. Do not replace by %S.
+contactsCopied=%1$S yhteystieto kopioitiin;%1$S yhteystietoa kopioitiin
+
+## LOCALIZATION NOTE (contactsMoved): Semi-colon list of plural forms
+## %1$S is the number of contacts that were moved. This should be used multiple
+## times wherever you need it. Do not replace by %S.
+contactsMoved=%1$S yhteystieto siirrettiin;%1$S yhteystietoa siirrettiin
+
+# LDAP directory stuff
+invalidName=Kirjoita kelvollinen nimi.
+invalidHostname=Kirjoita kelvollinen palvelinnimi.
+invalidPortNumber=Kirjoita kelvollinen portin numero.
+invalidResults=Kirjoita kelvollinen numero tuloskenttään.
+abReplicationOfflineWarning=LDAP-toisinnuksen voi tehdä vain verkkoyhteydettömässä tilassa.
+abReplicationSaveSettings=Asetukset täytyy tallentaa ennen hakemiston lataamista.
+
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+ExportAddressBookNameTitle=Vie osoitekirja - %S
+LDIFFiles=LDIF
+CSVFiles=Pilkuin eroteltu
+CSVFilesSysCharset=Pilkuin eroteltu (järjestelmän merkistö)
+CSVFilesUTF8=Pilkuin eroteltu (UTF-8)
+TABFiles=Sarkaimin eroteltu
+TABFilesSysCharset=Sarkaimin eroteltu (järjestelmän merkistö)
+TABFilesUTF8=Sarkaimin eroteltu (UTF-8)
+VCFFiles=vCard
+SupportedABFiles=Tuetut osoitekirjatiedostot
+failedToExportTitle=Vienti epäonnistui
+failedToExportMessageNoDeviceSpace=Osoitekirjan vienti epäonnistui. Levyllä ei ole tilaa.
+failedToExportMessageFileAccessDenied=Osoitekirjan vienti epäonnistui. Pääsy hakemistoon estetty.
+
+# For getting authDN for replication using dlg box
+AuthDlgTitle=Osoitekirjan LDAP-toisinnus
+AuthDlgDesc=Jos haluat käyttää hakemistopalvelinta, kirjoita käyttäjätunnuksesi ja salasanasi.
+
+# LOCALIZATION NOTE(joinMeInThisChat)
+# use + for spaces
+joinMeInThisChat=Liity+tähän+keskusteluun.
+
+# For printing
+headingHome=Koti
+headingWork=Työ
+headingOther=Muu
+headingChat=Keskustelu
+headingPhone=Puhelin
+headingDescription=Kuvaus
+headingAddresses=Osoitteet
+
+## For address books
+addressBookTitleNew=Uusi osoitekirja
+# LOCALIZATION NOTE (addressBookTitleEdit):
+# %S is the current name of the address book.
+# Example: My Custom AB Properties
+addressBookTitleEdit=Ominaisuudet: %S
+duplicateNameTitle=Identtinen osoitekirjan nimi
+# LOCALIZATION NOTE (duplicateNameText):
+# Don't localize "\n• %S" unless your local layout comes out wrong.
+# %S is the name of the existing address book.
+# Example: An address book with this name already exists:
+# • My Custom AB
+duplicateNameText=Tämän niminen osoitekirja on jo olemassa:\n• %S
+
+# For corrupt .mab files
+corruptMabFileTitle=Korruptoitunut osoitekirjatiedosto
+corruptMabFileAlert=Yhtä osoitekirjatiedostoistasi (%1$S tiedosto) ei voida lukea. Uusi tiedosto nimeltään %2$S luodaan ja varmuuskopio vanhasta tiedostosta luodaan samaan hakemistoon nimellä %3$S.
+
+# For locked .mab files
+lockedMabFileTitle=Osoitekirjatiedoston lukeminen ei onnistunut
+lockedMabFileAlert=Osoitekirjatiedoston %S lukeminen ei onnistunut. Se voi olla kirjoitussuojattu tai lukittu toisen ohjelman käyttöön. Yritä myöhemmin uudestaan.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/ldapAutoCompErrs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/ldapAutoCompErrs.properties
new file mode 100644
index 0000000000..3e3baa9e36
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/ldapAutoCompErrs.properties
@@ -0,0 +1,104 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# These are error strings for problems that happen while in the
+# various states declared in nsILDAPAutoCompFormatter.idl. Note that
+# the number that indexes each error state is the same as the number
+# corresponding to that state in nsILDAPAutoCompFormatter.idl.
+
+## @name ERR_STATE_UNBOUND
+## @loc none
+0=LDAP:n alustusongelma
+
+## @name ERR_STATE_INITIALIZING
+## @loc none
+1=LDAP-palvelinyhteys epäonnistui
+
+## @name ERR_STATE_BINDING
+## @loc none
+2=LDAP-palvelinyhteys epäonnistui
+
+## @name ERR_STATE_BOUND
+## @loc none
+3=Ongelma LDAP-palvelimen kanssa kommunikoitaessa
+
+## @name ERR_STATE_SEARCHING
+## @loc none
+4=Ongelma LDAP-palvelimen haussa
+
+
+# The format of the alert dialog itself
+#
+## @name ALERT_FORMAT
+## @loc None of %1$S, %2$S and %3$S should be localized.
+## %1$S is the error code itself, %2$S is an LDAP SDK error message from
+## chrome://mozldap/locale/ldap.properties, and %3$S is a hint relating
+## to that specific error, found in this file.
+errorAlertFormat=Virhekoodi %1$S: %2$S\n\n %3$S
+
+## The following errors are for error codes other than LDAP-specific ones.
+## Someday mozilla will actually have a system for mapping nsresults to
+## error strings that's actually widely used, unlike nsIErrorService. But
+## until it does, these strings live here...
+
+## @name HOST_NOT_FOUND
+## @loc none
+5000=Palvelinta ei löytynyt
+
+## @name GENERIC_ERROR
+## @loc none
+9999=Tuntematon virhe
+
+
+# Hints to for the user, associated with specific error codes (ie error code
+# + 10000)
+
+
+## @name TIMELIMIT_EXCEEDED_HINT
+## @loc none
+10003=Yritä uudestaan myöhemmin tai ota yhteys järjestelmän ylläpitäjään.
+
+## @name STRONGAUTH_REQUIRED_HINT
+## @loc none
+10008=Vahvaa tunnistautumista ei tällä hetkellä tueta.
+
+## @name INVALID_SYNTAX_HINT
+## @loc none
+10021=Varmista, että etsinnän suodatin on määritetty oikein ja yritä uudelleen tai ota yhteyttä järjestelmän ylläpitäjään. Voit tarkistaa etsinnän suodattimen asetukset valitsemalla "Muokkaa" valikosta "Ominaisuudet", sieltä "Sähköposti ja keskusteluryhmät" ja edelleen "Osoitteisto". Avautuneesta ikkunasta napsauta "Muokkaa hakemistoja" ja valitse käytössä oleva LDAP-palvelin. Näet etsinnän suodattimen asetukset palvelimen muokkausvalikosta löytyvästä "Lisäasetuksia" ikkunasta.
+
+## @name NO_SUCH_OBJECT_HINT
+## @loc none
+10032=Varmista, että kanta-DN on oikea ja yritä uudelleen, tai ota yhteyttä järjestelmänvalvojaasi. Kanta-DN:ä (base DN) eli yksilöllistä kantanimeä voi muuttaa valitsemalla Muokkaa-valikosta Asetukset, Sähköposti ja keskusteluryhmät ja sieltä osoitteidenhaku. Valitse Muokkaa hakemistoja ja valitse käyttämäsi LDAP-palvelin. Paina Muokkaa nähdäksesi kanta-dn.
+
+## @name BUSY_HINT
+## @loc none
+10051=Yritä myöhemmin uudestaan
+
+## @name SERVER_DOWN_HINT
+## @loc none
+10081=Varmista, että isäntäpalvelimen nimi ja portin numero ovat oikeat ja yritä uudestaan tai ota yhteyttä järjestelmän ylläpitäjään. Voit katsoa isäntäpalvelimen nimen ja portin numeron valitsemalla "Muokkaa" valikosta "Ominaisuudet", sieltä "Sähköposti ja keskusteluryhmät" ja edelleen "Osoitteisto". Avautuneesta ikkunasta napsauta "Muokkaa hakemistoja" ja valitse käytössä oleva LDAP-palvelin. Palvelimen asetuksia muokkaamalla näet isäntäpalvelimen nimen ja muokkausvalikosta löytyvästä "Lisäasetuksia" ikkunasta portin numeron.
+
+## @name TIMEOUT_HINT
+## @loc none
+10085=Yritä myöhemmin uudestaan
+
+## @name FILTER_ERROR_HINT
+## @loc none
+10087=Varmista, että etsinnän suodatin on määritetty oikein ja yritä uudelleen tai ota yhteyttä järjestelmän ylläpitäjään. Voit tarkistaa etsinnän suodattimen asetukset valitsemalla "Muokkaa" valikosta "Ominaisuudet", sieltä "Sähköposti ja keskusteluryhmät" ja edelleen "Osoitteisto". Avautuneesta ikkunasta napsauta "Muokkaa hakemistoja" ja valitse käytössä oleva LDAP-palvelin. Näet etsinnän suodattimen asetukset palvelimen muokkausvalikosta löytyvästä "Lisäasetuksia" ikkunasta.
+
+## @name NO_MEMORY_HINT
+## @loc none
+10090=Sulje ensin joitain muita ikkunoita ja/tai sovelluksia ja yritä uudelleen.
+
+## @name CONNECT_ERROR_HINT
+## @loc none
+10091=Varmista, että isäntäpalvelimen nimi ja portin numero ovat oikeat ja yritä uudestaan tai ota yhteyttä järjestelmän ylläpitäjään. Voit katsoa isäntäpalvelimen nimen ja portin numeron valitsemalla "Muokkaa" valikosta "Ominaisuudet", sieltä "Sähköposti ja keskusteluryhmät" ja edelleen "Osoitteisto". Avautuneesta ikkunasta napsauta "Muokkaa hakemistoja" ja valitse käytössä oleva LDAP-palvelin. Palvelimen asetuksia muokkaamalla näet isäntäpalvelimen nimen ja muokkausvalikosta löytyvästä "Lisäasetuksia" ikkunasta portin numeron.
+
+## @name HOST_NOT_FOUND_HINT
+## @loc none
+15000=Tarkista, että isäntäpalvelimen nimi on oikea ja yritä sitten uudestaan tai ota yhteyttä järjestelmänvalvojaasi. Nimen voit tarkistaa valitsemalla Muokkaa-valikosta Asetukset, Sähköposti ja keskusteluryhmät ja sieltä osoitteidenhaku. Valitse Muokkaa hakemistoja ja valitse käyttämäsi LDAP-palvelin. Paina Muokkaa nähdäksesi isäntäpalvelimen nimen.
+
+## @name GENERIC_HINT
+## @loc none
+19999=Ota yhteyttä järjestelmänvalvojaasi.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory-add.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory-add.dtd
new file mode 100644
index 0000000000..f68cecfd79
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory-add.dtd
@@ -0,0 +1,45 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY directoryName.label "Nimi: ">
+<!ENTITY directoryName.accesskey "N">
+<!ENTITY directoryHostname.label "Palvelin: ">
+<!ENTITY directoryHostname.accesskey "P">
+<!ENTITY directoryBaseDN.label "Kanta-DN: ">
+<!ENTITY directoryBaseDN.accesskey "K">
+<!ENTITY findButton.label "Etsi">
+<!ENTITY findButton.accesskey "E">
+<!ENTITY directorySecure.label "Käytä suojattua yhteyttä (SSL):">
+<!ENTITY directorySecure.accesskey "K">
+<!ENTITY directoryLogin.label "Sidottu DN: ">
+<!ENTITY directoryLogin.accesskey "d">
+<!ENTITY General.tab "Yleiset">
+<!ENTITY Offline.tab "Yhteydettömässä tilassa">
+<!ENTITY Advanced.tab "Lisäasetukset">
+<!ENTITY portNumber.label "Portti: ">
+<!ENTITY portNumber.accesskey "P">
+<!ENTITY searchFilter.label "Hakusuodatin: ">
+<!ENTITY searchFilter.accesskey "H">
+<!ENTITY scope.label "Alue: ">
+<!ENTITY scope.accesskey "A">
+<!ENTITY scopeOneLevel.label "Yksi taso">
+<!ENTITY scopeOneLevel.accesskey "Y">
+<!ENTITY scopeSubtree.label "Alipuu">
+<!ENTITY scopeSubtree.accesskey "A">
+<!ENTITY return.label "Älä palauta yli">
+<!ENTITY return.accesskey "t">
+<!ENTITY results.label "tulosta">
+<!ENTITY offlineText.label "Luettelosta on mahdollista ladata paikallinen kopio, joka on käytettävissä ollessasi yhteydettömässä tilassa.">
+<!ENTITY saslMechanism.label "Kirjautumistapa: ">
+<!ENTITY saslMechanism.accesskey "K">
+<!ENTITY saslOff.label "Yksinkertainen">
+<!ENTITY saslOff.accesskey "Y">
+<!ENTITY saslGSSAPI.label "Kerberos (GSSAPI)">
+<!ENTITY saslGSSAPI.accesskey "K">
+
+<!-- Localization note: this is here because the width of the dialog
+ is determined by the width of the base DN box; and that is likely
+ to vary somewhat with the language.
+-->
+<!ENTITY newDirectoryWidth "36em">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory.dtd
new file mode 100644
index 0000000000..7aea92c90f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/pref-directory.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (window.title) : do not translate "LDAP" in below line -->
+<!ENTITY pref.ldap.window.title "LDAP-hakemistopalvelimet">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "LDAP-hakemistopalvelin:">
+<!-- LOCALIZATION NOTE (directoriesText.label) : do not translate "LDAP" in below line -->
+<!ENTITY directoriesText.label "Valitse LDAP-hakemistopalvelin:">
+<!ENTITY directoriesText.accesskey "V">
+<!ENTITY addDirectory.label "Lisää">
+<!ENTITY addDirectory.accesskey "L">
+<!ENTITY editDirectory.label "Muokkaa">
+<!ENTITY editDirectory.accesskey "M">
+<!ENTITY deleteDirectory.label "Poista">
+<!ENTITY deleteDirectory.accesskey "o">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/replicationProgress.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/replicationProgress.properties
new file mode 100644
index 0000000000..b1db4e00f7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/addressbook/replicationProgress.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+replicationStarted=Toisinnus alkoi…
+changesStarted=Toisinnettavien muutosten haku alkoi…
+replicationSucceeded=Toisinnus onnistui
+replicationFailed=Toisinnus epäonnistui
+replicationCancelled=Toisinnus peruttu
+# LOCALIZATION NOTE
+# do not localize %S. %S is the current entry number (an integer)
+currentCount=Toisinnetaan kansiota: %S
+
+downloadButton=Lataa nyt
+downloadButton.accesskey=L
+cancelDownloadButton=Peruuta lataus
+cancelDownloadButton.accesskey=P
+
+directoryTitleNew=Uusi LDAP-hakemisto
+## LOCALIZATION NOTE (directoryTitleEdit): %S will be replaced by the LDAP directory's display name
+directoryTitleEdit=Ominaisuudet: %S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-addressing.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-addressing.dtd
new file mode 100644
index 0000000000..5b1f33b968
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-addressing.dtd
@@ -0,0 +1,51 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-addressing.xul -->
+
+<!-- extracted from am-addressing.xhtml -->
+
+<!ENTITY addressing.label "Kirjoittaminen ja osoitteet">
+<!ENTITY addressingGroupTitle.label "Osoitteisto">
+<!ENTITY addressingText.label "Etsittäessä osoitteita:">
+<!-- LOCALIZATION NOTE (override.label) : do not translate "LDAP" in below line -->
+<!ENTITY useGlobal.label "Käytä yleisiä LDAP-palvelinasetuksia">
+<!ENTITY useGlobal.accesskey "ä">
+<!ENTITY editDirectories.label "Muokkaa hakemistoja…">
+<!ENTITY editDirectories.accesskey "M">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Käytä seuraavaa LDAP-palvelinta:">
+<!ENTITY directories.accesskey "t">
+<!ENTITY directoriesNone.label "Ei mitään">
+
+<!-- am-addressing.xul -->
+
+<!-- am-addressing.xhtml -->
+
+<!ENTITY compositionGroupTitle.label "Viestien kirjoittaminen">
+<!-- LOCALIZATION NOTE (useHtml.label) : do not translate "html" in below line -->
+<!ENTITY useHtml.label "Kirjoita viestit HTML-muotoisina">
+<!ENTITY useHtml.accesskey "K">
+<!ENTITY autoQuote.label "Vastattaessa liitä alkuperäinen viesti automaattisesti lainauksena">
+<!ENTITY autoQuote.accesskey "V">
+<!-- LOCALIZATION NOTE (quoting.label): This will concatenate with the 4 strings that follow. -->
+<!ENTITY quoting.label "Vastattaessa,">
+<!ENTITY quoting.accesskey "V">
+<!ENTITY aboveQuote.label "aloita vastaukseni ennen lainausta">
+<!ENTITY belowQuote.label "aloita vastaukseni lainauksen jälkeen">
+<!ENTITY selectAndQuote.label "valitse lainattu teksti">
+<!ENTITY place.label "sekä sijoita allekirjoitukseni">
+<!ENTITY place.accesskey "s">
+<!ENTITY belowText.label "viestin loppuun (suositeltu)">
+<!ENTITY aboveText.label "vastaukseni jälkeen (ennen lainausta)">
+<!ENTITY includeSigOnReply.label "Lisää allekirjoitus vastauksiin">
+<!ENTITY includeSigOnReply.accesskey "L">
+<!ENTITY includeSigOnForward.label "Lisää allekirjoitus välitettyihin viesteihin">
+<!ENTITY includeSigOnForward.accesskey "a">
+
+<!ENTITY globalComposingPrefs.label "Yleiset viestinluontiasetukset…">
+<!ENTITY globalComposingPrefs.accesskey "v">
+
+<!ENTITY globalAddressingPrefs.label "Yleiset osoitteistoasetukset…">
+<!ENTITY globalAddressingPrefs.accesskey "o">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-advanced.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-advanced.dtd
new file mode 100644
index 0000000000..df2285de48
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-advanced.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-advanced.xul -->
+
+<!-- extracted from am-advanced.xhtml -->
+
+<!-- LOCALIZATION NOTE (smtpServer.label): do not translate "SMTP" in below line -->
+<!ENTITY smtpServer.label "Lähtevän postin palvelimen asetukset">
+
+<!-- LOCALIZATION NOTE (smtpDescription.label): do not translate "SMTP" in below line -->
+<!ENTITY smtpDescription.label "Valitse käyttäjätiedolle lähtevän postin palvelin (SMTP) listasta tai käytä oletuspalvelinta valitsemalla &quot;Käytä oletuspalvelinta&quot;.">
+
+<!ENTITY smtpListAdd.label "Lisää…">
+<!ENTITY smtpListAdd.accesskey "L">
+<!ENTITY smtpListEdit.label "Muokkaa…">
+<!ENTITY smtpListEdit.accesskey "M">
+<!ENTITY smtpListDelete.label "Poista">
+<!ENTITY smtpListDelete.accesskey "o">
+<!ENTITY smtpListSetDefault.label "Aseta oletukseksi">
+<!ENTITY smtpListSetDefault.accesskey "A">
+
+<!ENTITY serverDetails.label "Valitun palvelimen tiedot:">
+<!ENTITY serverDescription.label "Kuvaus:">
+<!ENTITY serverName.label "Palvelin:">
+<!ENTITY serverPort.label "Portti:">
+<!ENTITY userName.label "Käyttäjätunnus:">
+<!ENTITY connectionSecurity.label "Yhteyden suojaus: ">
+<!ENTITY authMethod.label "Todennustapa: ">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-archiveoptions.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-archiveoptions.dtd
new file mode 100644
index 0000000000..8d0439d109
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-archiveoptions.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-archiveoptions.xul -->
+
+<!-- extracted from am-archiveoptions.xhtml -->
+
+<!ENTITY dialogTitle.label "Arkistointiasetukset">
+<!ENTITY archiveGranularityPrefix.label "Tallenna arkistoitavat viestit:">
+<!ENTITY archiveFlat.label "Yhteen kansioon">
+<!ENTITY archiveFlat.accesskey "Y">
+<!ENTITY archiveYearly.label "Vuosittaisiin arkistokansioihin">
+<!ENTITY archiveYearly.accesskey "V">
+<!ENTITY archiveMonthly.label "Kuukausittaisiin arkistokansioihin">
+<!ENTITY archiveMonthly.accesskey "K">
+<!ENTITY keepFolderStructure.label "Säilytä nykyinen arkistointikansioiden rakenne">
+<!ENTITY keepFolderStructure.accesskey "S">
+<!ENTITY archiveExample.label "Esimerkki">
+<!-- LOCALIZATION NOTE (archiveFolderName.label): this should match the default
+ name for the "Archives" folder -->
+<!ENTITY archiveFolderName.label "Arkistokansio">
+<!-- LOCALIZATION NOTE (inboxFolderName.label): this should match the default
+ name for the "Inbox" folder -->
+<!ENTITY inboxFolderName.label "Saapuneet">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-copies.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-copies.dtd
new file mode 100644
index 0000000000..dae0a81b66
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-copies.dtd
@@ -0,0 +1,52 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-copies.xul -->
+
+<!-- extracted from am-copies.xhtml -->
+
+<!ENTITY copyAndFolderTitle.label "Kopiot ja kansiot">
+<!ENTITY sendingPrefix.label "Lähetettäessä viestiä">
+<!ENTITY fccMailFolder.label "Luo kopio kansioon:">
+<!ENTITY fccMailFolder.accesskey "L">
+<!ENTITY fccReplyFollowsParent.label "Tallenna vastaukset kansioon, jossa on viesti, johon vastataan">
+<!ENTITY fccReplyFollowsParent.accesskey "l">
+<!-- LOCALIZATION NOTE (ccAddress.label): do not translate "Cc" in below line -->
+<!ENTITY ccAddress.label "Lähetä kopio (Cc) näihin osoitteisiin:">
+<!ENTITY ccAddress.accesskey "C">
+<!ENTITY ccAddressList.placeholder "Erottele osoitteet pilkuin">
+<!-- LOCALIZATION NOTE (bccAddress.label): do not translate "Bcc" in below line -->
+<!ENTITY bccAddress.label "Lähetä piilokopio (Bcc) näihin osoitteisiin:">
+<!ENTITY bccAddress.accesskey "h">
+<!ENTITY bccAddressList.placeholder "Erottele osoitteet pilkuin">
+<!ENTITY saveMessageDlg.label "Kysy vahvistus viestejä tallennettaessa">
+<!ENTITY saveMessageDlg.accesskey "K">
+<!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY sentFolderOn.label "Lähetetyt, tilillä:">
+<!ENTITY sentFolderOn.accesskey "ä">
+<!ENTITY sentInOtherFolder.label "Muu:">
+<!ENTITY sentInOtherFolder.accesskey "M">
+<!-- LOCALIZATION NOTE (archivesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY archivesTitle.label "Viestiarkistot">
+<!ENTITY keepArchives.label "Arkistoi viestit kansioon:">
+<!ENTITY keepArchives.accesskey "A">
+<!ENTITY archiveHierarchyButton.label "Arkistointiasetukset…">
+<!ENTITY archiveHierarchyButton.accesskey "A">
+<!ENTITY archivesFolderOn.label "&quot;Arkistokansio&quot;, tilillä:">
+<!ENTITY archivesFolderOn.accesskey "r">
+<!ENTITY archiveInOtherFolder.label "Muu:">
+<!ENTITY archiveInOtherFolder.accesskey "M">
+<!ENTITY specialFolders.label "Luonnokset ja mallipohjat ">
+<!ENTITY keepDrafts2.label "Säilytä viestien luonnokset kansiossa:">
+<!-- LOCALIZATION NOTE (draftsFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY draftsFolderOn.label "Luonnokset, tilillä:">
+<!ENTITY draftsFolderOn.accesskey "u">
+<!ENTITY draftInOtherFolder.label "Muu:">
+<!ENTITY draftInOtherFolder.accesskey "M">
+<!ENTITY keepTemplates.label "Säilytä viestien mallipohjat kansiossa:">
+<!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY templatesFolderOn.label "&quot;Mallipohjat&quot;, tilillä:">
+<!ENTITY templatesFolderOn.accesskey "a">
+<!ENTITY templateInOtherFolder.label "Muu:">
+<!ENTITY templateInOtherFolder.accesskey "M">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-e2e.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-e2e.properties
new file mode 100644
index 0000000000..eb7081745f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-e2e.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+prefPanel-e2e=Päästä päähän -salaus
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identities-list.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identities-list.dtd
new file mode 100644
index 0000000000..172b66a98c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identities-list.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identitiesListManageDesc.label "Hallinnoi tilin käyttäjätietoja. Ensimmäinen käyttäjätieto on oletustieto.">
+<!ENTITY identitiesListAdd.label "Lisää…">
+<!ENTITY identitiesListAdd.accesskey "L">
+<!ENTITY identitiesListEdit.label "Muokkaa…">
+<!ENTITY identitiesListEdit.accesskey "M">
+<!ENTITY identitiesListDefault.label "Aseta oletukseksi">
+<!ENTITY identitiesListDefault.accesskey "A">
+<!ENTITY identitiesListDelete.label "Poista">
+<!ENTITY identitiesListDelete.accesskey "o">
+<!ENTITY identitiesListClose.label "Sulje">
+<!ENTITY identitiesListClose.accesskey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identity-edit.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identity-edit.dtd
new file mode 100644
index 0000000000..2a5c64ad1c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-identity-edit.dtd
@@ -0,0 +1,14 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identityListDesc.label "Aseta käyttäjätiedot:">
+
+<!ENTITY settingsTab.label "Asetukset">
+<!ENTITY copiesFoldersTab.label "Kopiot ja kansiot">
+<!ENTITY addressingTab.label "Kirjoittaminen ja osoitteet">
+
+<!ENTITY publicData.label "Julkiset tiedot">
+<!ENTITY privateData.label "Yksityiset tiedot">
+<!ENTITY identityAlias.label "Käyttäjätiedon otsikko:">
+<!ENTITY identityAlias.accesskey "o">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-im.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-im.dtd
new file mode 100644
index 0000000000..366759846a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-im.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY accountWindow.title "Tilin asetukset">
+<!ENTITY accountWindow.width "300">
+<!ENTITY account.general "Yleiset">
+<!ENTITY account.advanced "Lisäasetukset">
+<!ENTITY account.name "Käyttäjätunnus:">
+<!ENTITY account.password "Salasana:">
+<!ENTITY account.alias "Alias:">
+<!ENTITY account.newMailNotification "Ilmoita uudesta postista">
+<!ENTITY account.autojoin "Automaattisesti liitytyt kanavat:">
+<!ENTITY account.proxySettings.caption "Välityspalvelinasetukset:">
+<!ENTITY account.proxySettings.change.label "Muokkaa…">
+<!ENTITY account.proxySettings.change.accessKey "M">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-junk.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-junk.dtd
new file mode 100644
index 0000000000..cf229efb49
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-junk.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY junkSettings.label "Roskapostiasetukset">
+<!ENTITY trainingDescription.label "Jos roskapostisuodatus otetaan käyttöön, &brandShortName; täytyy harjoittaa tunnistamaan roskapostit merkitsemällä ne Roskaposti-painikkeella. Jotta suodatus toimisi tehokkaasti, korjaa myös väärin luokiteltujen viestien roskapostiluokitus. Harjoittelun jälkeen &brandShortName; tunnistaa roskapostit automaattisesti.">
+<!ENTITY level.label "Käytä roskapostin mukautuvaa tunnistusta tällä tilillä">
+<!ENTITY level.accesskey "t">
+
+<!ENTITY move.label "Siirrä uudet roskapostiviestit kansioon:">
+<!ENTITY move.accesskey "S">
+<!ENTITY junkFolderOn.label "Roskapostikansioon tilillä:">
+<!ENTITY junkFolderOn.accesskey "R">
+<!ENTITY otherFolder.label "Muu:">
+<!ENTITY otherFolder.accesskey "M">
+<!ENTITY purge1.label "Poista kansiosta yli">
+<!ENTITY purge1.accesskey "P">
+<!ENTITY purge2.label "päivää vanhat roskapostit">
+
+<!ENTITY whitelistHeader.label "Viestiä ei merkitä roskapostiksi, jos lähettäjä kuuluu: ">
+<!ENTITY whitelistHeader.accesskey "V">
+
+<!ENTITY ispHeadersWarning.label "Tämän ollessa päällä &brandShortName; luottaa tahon roskapostitunnistukseen.">
+<!ENTITY ispHeaders.label "Luota roskapostiotsakkeisiin, jotka on asettanut: ">
+<!ENTITY ispHeaders.accesskey "L">
+
+<!ENTITY junkClassification.label "Valinta">
+<!ENTITY junkActions.label "Kohde ja säilytys">
+
+<!ENTITY globalJunkPrefs.label "Yleiset roskapostiasetukset…">
+<!ENTITY globalJunkPrefs.accesskey "r">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-main.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-main.dtd
new file mode 100644
index 0000000000..84fbacef2e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-main.dtd
@@ -0,0 +1,49 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-main.xul -->
+
+<!-- extracted from am-main.xhtml -->
+
+<!ENTITY accountTitle.label "Tilien asetukset">
+<!ENTITY accountName.label "Tilin nimi:">
+<!ENTITY accountName.accesskey "T">
+<!ENTITY identityTitle.label "Oletuskäyttäjätiedot">
+<!ENTITY identityDesc.label "Jokaiseen tiliin tallennetaan käyttäjätietosi, jotta viestiesi vastaanottajat tunnistavat sinut.">
+<!ENTITY name.label "Nimi:">
+<!ENTITY name.accesskey "N">
+<!ENTITY email.label "Sähköpostiosoite:">
+<!ENTITY email.accesskey "S">
+<!ENTITY catchAll.label "Vastaus tästä identiteetistä, kun toimitusotsikot vastaavat:">
+<!ENTITY catchAll.accesskey "d">
+<!ENTITY replyTo.label "Vastausosoite:">
+<!ENTITY replyTo.accesskey "V">
+<!ENTITY replyTo.placeholder "Vastaanottajat vastaavat tähän osoitteeseen">
+<!ENTITY organization.label "Organisaatio:">
+<!ENTITY organization.accesskey "O">
+<!ENTITY signatureText.label "Allekirjoitus:">
+<!ENTITY signatureText.accesskey "A">
+<!ENTITY signatureHtml.label "Käytä HTML:ää (esim. &lt;b&gt;bold&lt;/b&gt;)">
+<!ENTITY signatureHtml.accesskey "H">
+<!ENTITY signatureFile.label "Liitä tiedosto allekirjoituksena (tekstiä, HTML:ää tai kuva):">
+<!ENTITY signatureFile.accesskey "t">
+<!ENTITY edit.label "Muokkaa…">
+<!ENTITY choose.label "Valitse…">
+<!ENTITY choose.accesskey "a">
+<!ENTITY editVCard.label "Muokkaa vCardia…">
+<!ENTITY editVCard.accesskey "M">
+<!-- LOCALIZATION NOTE (attachVCard.label) : do not translate "vCard" in below line -->
+<!ENTITY attachVCard.label "Liitä viesteihin vCard-käyntikortti">
+<!ENTITY attachVCard.accesskey "t">
+
+<!ENTITY manageIdentities.label "Muokkaa vaihtoehtoisia käyttäjätietoja...">
+<!ENTITY manageIdentities.accesskey "u">
+
+<!-- LOCALIZATION NOTE (smtpName.label) : do not translate "SMTP" in below line -->
+<!ENTITY smtpName.label "Lähtevän postin palvelin (SMTP)">
+<!ENTITY smtpName.accesskey "p">
+<!ENTITY smtpDefaultServer.label "Käytä oletuspalvelinta">
+
+<!ENTITY smtpServerEdit.label "Muokkaa SMTP-palvelinta…">
+<!ENTITY smtpServerEdit.accesskey "P">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.dtd
new file mode 100644
index 0000000000..a37a0f99eb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.dtd
@@ -0,0 +1,33 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY pane.title "Vastaanottokuittaukset">
+<!ENTITY useGlobalPrefs.label "Käytä yleisiä vastaanottokuittausasetuksia">
+<!ENTITY useGlobalPrefs.accesskey "K">
+<!ENTITY globalReceipts.label "Yleiset asetukset…">
+<!ENTITY globalReceipts.accesskey "Y">
+<!ENTITY useCustomPrefs.label "Määritä tilille omat vastaanottokuittausasetukset">
+<!ENTITY useCustomPrefs.accesskey "M">
+<!ENTITY requestReceipt.label "Lähetettäessä viestiä, pyydä aina vastaanottokuittaus">
+<!ENTITY requestReceipt.accesskey "L">
+<!ENTITY receiptArrive.label "Kuittauksen saapuessa:">
+<!ENTITY leaveIt.label "Jätä se saapuneet-kansioon">
+<!ENTITY leaveIt.accesskey "J">
+<!-- LOCALIZATION NOTE moveToSent.label Translate: 'Sent' according to Netscape glossary -->
+<!ENTITY moveToSent.label "Siirrä se lähetetyt-kansioon">
+<!ENTITY moveToSent.accesskey "S">
+<!ENTITY requestMDN.label "Vastaanottaessani vastaanottokuittauspyynnön:">
+<!ENTITY returnSome.label "Lähetä kuittaus seuraavasti:">
+<!ENTITY returnSome.accesskey "h">
+<!ENTITY never.label "Älä koskaan lähetä vastaanottokuittausta">
+<!ENTITY never.accesskey "Ä">
+<!ENTITY notInToCc.label "Kun en ole viestin vastaanottaja- tai kopio-kentässä:">
+<!ENTITY notInToCc.accesskey "K">
+<!ENTITY outsideDomain.label "Kun lähettäjä on verkkoalueeni ulkopuolelta:">
+<!ENTITY outsideDomain.accesskey "u">
+<!ENTITY otherCases.label "Muissa tapauksissa:">
+<!ENTITY otherCases.accesskey "M">
+<!ENTITY askMe.label "Kysy">
+<!ENTITY alwaysSend.label "Lähetä">
+<!ENTITY neverSend.label "Älä lähetä">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.properties
new file mode 100644
index 0000000000..0f97271d30
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-mdn.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Strings used in prefs.
+prefPanel-mdn=Vastaanottokuittaukset
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-offline.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-offline.dtd
new file mode 100644
index 0000000000..e24f1093c5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-offline.dtd
@@ -0,0 +1,57 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY doNotDownloadPop3Movemail.label "Säästä tilaa lataamatta:">
+<!ENTITY doNotDownloadNntp.label "Säästä tilaa, jätä lataamatta yhteydettömään käyttöön:">
+<!ENTITY doNotDownloadImap.label "Viestien noutamista ja säilyttämistä omalla koneella voidaan rajoittaa viestin iän ja koon mukaan levytilan säästämiseksi.">
+<!ENTITY allFoldersOffline2.label "Säilytä tämän tilin kaikkien kansioiden viestejä paikallisella tietokoneella">
+<!ENTITY allFoldersOffline2.accesskey "t">
+<!ENTITY allFoldersOfflineNote.label "Huomaa: Tämän asetuksen muuttaminen vaikuttaa kaikkiin tämän tilin kansioihin. Jos haluat muuttaa yksittäisen kansion asetuksia, napsauta Lisäasetukset… -painiketta.">
+<!ENTITY offlineNotDownload.label "Viestejä, joiden koko on yli">
+<!ENTITY offlineNotDownload.accesskey "e">
+<!ENTITY autosyncNotDownload.label "Älä nouda viestejä, jotka ovat suurempia kuin">
+<!ENTITY autosyncNotDownload.accesskey "Ä">
+<!ENTITY kb.label "kt">
+<!ENTITY daysOld.label "päivää vanhoja">
+<!ENTITY message.label "viestiä">
+<!ENTITY nntpNotDownloadRead.label "Luettuja viestejä">
+<!ENTITY nntpNotDownloadRead.accesskey "L">
+<!ENTITY nntpDownloadMsg.label "Viestejä, jotka ovat yli">
+<!ENTITY nntpDownloadMsg.accesskey "s">
+<!ENTITY retentionCleanup.label "Kiintolevytilaa voi vapauttaa poistamalla vanhoja viestejä pysyvästi.">
+<!ENTITY retentionCleanupImap.label "Kiintolevytilaa voidaan vapauttaa poistamalla lopullisesti vanhat viestit sekä omalta koneelta että palvelimelta.">
+<!ENTITY retentionCleanupPop.label "Kiintolevytilaa voidaan vapauttaa poistamalla vanhat viestit lopullisesti, myös sähköpostipalvelimelta.">
+<!ENTITY retentionKeepMsg.label "Poista viestit, jotka ovat yli">
+<!ENTITY retentionKeepMsg.accesskey "o">
+<!ENTITY retentionKeepAll.label "Älä poista mitään viestejä">
+<!ENTITY retentionKeepAll.accesskey "Ä">
+<!ENTITY retentionKeepRecent.label "Poista kaikki paitsi uusimmat">
+<!ENTITY retentionKeepRecent.accesskey "P">
+<!ENTITY retentionApplyToFlagged.label "Älä koskaan poista tähdellä merkittyjä viestejä">
+<!ENTITY retentionApplyToFlagged.accesskey "k">
+<!ENTITY nntpRemoveMsgBody.label "Poista viestirungot viesteistä, jotka ovat yli">
+<!ENTITY nntpRemoveMsgBody.accesskey "o">
+<!ENTITY offlineSelectNntp.label "Valitse yhteydettömässä tilassa käytettävät ryhmät…">
+<!ENTITY offlineSelectNntp.accesskey "V">
+<!ENTITY offlineImapAdvancedOffline.label "Lisäasetukset…">
+<!ENTITY offlineImapAdvancedOffline.accesskey "L">
+<!ENTITY syncGroupTitle.label "Viestien synkronointi">
+<!ENTITY diskspaceGroupTitle.label "Levytilan käyttö">
+
+<!-- LOCALIZATION NOTE: (ageAutosyncBefore.label, ageAutosyncMiddle.label, ageAutosyncAfter.label):
+ The entities ageAutosyncBefore.label, ageAutosyncMiddle.label, and ageAutosyncAfter.label appear
+ on a single line within the scope of useAutosync.ByAge as follows:
+
+ &ageAutosyncBefore.label [textbox for autosync value] &ageAutosyncMiddle.label; [dropdown for autosync interval] &ageAutosyncAfter.label;
+-->
+<!ENTITY allAutosync.label "Synkronoi kaikki viestit iästä huolimatta">
+<!ENTITY allAutosync.accesskey "S">
+<!ENTITY ageAutosyncBefore.label "Synkronoi viestit viimeiseltä">
+<!ENTITY ageAutosync.accesskey "n">
+<!ENTITY ageAutosyncMiddle.label "">
+<!ENTITY dayAgeInterval.label "päivältä">
+<!ENTITY weekAgeInterval.label "viikolta">
+<!ENTITY monthAgeInterval.label "kuukaudelta">
+<!ENTITY yearAgeInterval.label "vuodelta">
+<!ENTITY ageAutosyncAfter.label "">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-advanced.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-advanced.dtd
new file mode 100644
index 0000000000..d561e4aecb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-advanced.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY serverAdvanced.label "Tilin lisäasetukset">
+<!-- LOCALIZATION NOTE (serverDirectory.label): Do not translate "IMAP" -->
+<!ENTITY serverDirectory.label "IMAP-palvelinhakemisto:">
+<!ENTITY serverDirectory.accesskey "I">
+<!ENTITY usingSubscription.label "Näytä vain tilatut kansiot">
+<!ENTITY usingSubscription.accesskey "N">
+<!ENTITY dualUseFolders.label "Palvelin tukee kansioita, joissa on alikansioita ja viestejä">
+<!ENTITY dualUseFolders.accesskey "P">
+<!ENTITY maximumConnectionsNumber.label "Suurin sallittu määrä välimuistiin tallennettuja palvelinyhteyksiä">
+<!ENTITY maximumConnectionsNumber.accesskey "S">
+<!-- LOCALIZATION NOTE (namespaceDesc.label): Do not translate "IMAP" -->
+<!ENTITY namespaceDesc.label "Nämä asetukset määrittävät IMAP-palvelimesi nimiavaruudet">
+<!ENTITY personalNamespace.label "Käyttäjäkohtainen:">
+<!ENTITY personalNamespace.accesskey "ä">
+<!ENTITY publicNamespace.label "Julkinen (yhteiskäytössä):">
+<!ENTITY publicNamespace.accesskey "u">
+<!ENTITY otherUsersNamespace.label "Muut käyttäjät:">
+<!ENTITY otherUsersNamespace.accesskey "M">
+<!ENTITY overrideNamespaces.label "Palvelin voi korvata nämä nimiavaruudet">
+<!ENTITY overrideNamespaces.accesskey "a">
+<!ENTITY pop3DeferringDesc.label "Ladattaessa postia tämän tilin palvelimelta, tallennetaan uudet viestit kansioon:" >
+<!ENTITY accountInbox.label "Tämän tilin Saapuneet">
+<!ENTITY accountInbox.accesskey "t">
+<!ENTITY deferToServer.label "Saapuvat viestit toisen tilin saapuneet-kansioon">
+<!ENTITY deferToServer.accesskey "p">
+<!ENTITY deferGetNewMail.label "Nouda tilin viestit samalla kun muidenkin tilien viestit">
+<!ENTITY deferGetNewMail.accesskey "N">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-top.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-top.dtd
new file mode 100644
index 0000000000..41556c52d0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-server-top.dtd
@@ -0,0 +1,89 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageStorage.label "Viestien säilytys">
+<!ENTITY securitySettings.label "Turva-asetukset">
+<!ENTITY serverSettings.label "Palvelimen asetukset">
+<!ENTITY serverType.label "Palvelintyyppi:">
+<!ENTITY serverName.label "Palvelin:">
+<!ENTITY serverName.accesskey "P">
+<!ENTITY userName.label "Käyttäjätunnus:">
+<!ENTITY userName.accesskey "K">
+<!ENTITY port.label "Portti:">
+<!ENTITY port.accesskey "o">
+<!ENTITY serverPortDefault.label "Oletus:">
+<!-- LOCALIZATION NOTE (biffStart.label) : translate below 2 line with grammar dependency
+ For example, in Japanese cases:
+ biffStart.label "every"
+ biffEnd.label "minutes for new messages Check"
+-->
+<!ENTITY biffStart.label "Hae uusia viestejä">
+<!ENTITY biffStart.accesskey "H">
+<!ENTITY biffEnd.label "minuutin välein">
+<!ENTITY useIdleNotifications.label "Ilmoita uusien viestien saapumisesta välittömästi">
+<!ENTITY useIdleNotifications.accesskey "u">
+<!ENTITY connectionSecurity.label "Yhteyden suojaus:">
+<!ENTITY connectionSecurity.accesskey "Y">
+<!ENTITY connectionSecurityType-0.label "Ei mitään">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, jos mahdollista">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY authMethod.label "Todennustapa:">
+<!ENTITY authMethod.accesskey "T">
+<!ENTITY leaveOnServer.label "Jätä viestit palvelimelle">
+<!ENTITY leaveOnServer.accesskey "J">
+<!ENTITY headersOnly.label "Nouda vain otsakkeet">
+<!ENTITY headersOnly.accesskey "o">
+<!ENTITY deleteByAgeFromServer.label "Poista viestit palvelimelta kun ne ovat">
+<!ENTITY deleteByAgeFromServer.accesskey "s">
+<!ENTITY daysEnd.label "päivän ikäisiä">
+<!ENTITY deleteOnServer2.label "Poista viestit palvelimelta, kun ne poistetaan saapuneet-kansiosta">
+<!ENTITY deleteOnServer2.accesskey "a">
+<!ENTITY downloadOnBiff.label "Nouda uudet viestit automaattisesti">
+<!ENTITY downloadOnBiff.accesskey "N">
+<!ENTITY deleteMessagePrefix.label "Kun viesti poistetaan:">
+<!ENTITY modelMoveToTrash.label "Siirrä viesti roskakoriin">
+<!ENTITY modelMoveToTrash.accesskey "i">
+<!ENTITY modelMarkDeleted.label "Merkitse viesti poistetuksi">
+<!ENTITY modelMarkDeleted.accesskey "p">
+<!ENTITY modelDeleteImmediately.label "Poista viesti heti">
+<!ENTITY modelDeleteImmediately.accesskey "h">
+<!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY expungeOnExit.label "Lopetettaessa poista poistettavaksi merkityt viestit lopullisesti saapuneet-kansiosta">
+<!ENTITY expungeOnExit.accesskey "L">
+<!ENTITY emptyTrashOnExit.label "Tyhjennä roskakori kun ohjelma lopetetaan">
+<!ENTITY emptyTrashOnExit.accesskey "e">
+<!ENTITY loginAtStartup.label "Tarkista saapunut posti käynnistyksen yhteydessä">
+<!ENTITY loginAtStartup.accesskey "s">
+<!-- LOCALIZATION NOTE (maxMessagesStart.label) : translate below 2 lines with grammar dependency
+ maxMessengerStart.label will be followed by maxMessagesEnd.label with the number
+ of messages between them
+-->
+<!ENTITY maxMessagesStart.label "Kysy ennen kuin noudetaan yli">
+<!ENTITY maxMessagesStart.accesskey "K">
+<!-- LOCALIZATION NOTE (maxMessagesEnd.label) : see note for maxMessagesStart.label -->
+<!ENTITY maxMessagesEnd.label "viestiä">
+<!ENTITY alwaysAuthenticate.label "Vaadi todennusta otettaessa yhteyttä tähän palvelimeen">
+<!ENTITY alwaysAuthenticate.accesskey "V">
+<!ENTITY newsrcFilePath1.label "News.rc-tiedosto:">
+<!ENTITY newsrcPicker1.label "Valitse News.rc-tiedosto">
+<!ENTITY abbreviate.label "Näytä keskusteluryhmien nimet Postikansiot-paneelissa">
+<!ENTITY abbreviateOn.label "Kokonaisina (esimerkiksi netscape.public.mozilla.mail-news)">
+<!ENTITY abbreviateOff.label "Lyhennä nimet (esimerkiksi &quot;n.p.m.mail-news&quot;)">
+<!ENTITY advancedButton.label "Lisäasetukset…">
+<!ENTITY advancedButton.accesskey "L">
+<!ENTITY serverDefaultCharset2.label "Oletusmerkistökoodaus:">
+<!ENTITY localPath1.label "Paikallinen hakemisto:">
+<!ENTITY localFolderPicker.label "Valitse paikalliskansioiden sijainti">
+<!ENTITY browseFolder.label "Selaa…">
+<!ENTITY browseFolder.accesskey "e">
+<!ENTITY browseNewsrc.label "Selaa…">
+<!ENTITY browseNewsrc.accesskey "S">
+
+<!ENTITY accountTitle.label "Tilien asetukset">
+<!ENTITY accountSettingsDesc.label "Seuraava tili on erikoistapaus. Siihen ei liity käyttäjätietoja.">
+<!ENTITY storeType.label "Viestisäilötyyppi:">
+<!ENTITY storeType.accesskey "T">
+<!ENTITY mboxStore2.label "Tiedosto jokaiselle kansiolle (mbox)">
+<!ENTITY maildirStore.label "Tiedosto jokaiselle viestille (maildir)">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-serverwithnoidentities.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-serverwithnoidentities.dtd
new file mode 100644
index 0000000000..69b4c6dd53
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-serverwithnoidentities.dtd
@@ -0,0 +1,6 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY accountName.label "Tilin nimi:">
+<!ENTITY accountName.accesskey "T">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.dtd
new file mode 100644
index 0000000000..f58ddd38b4
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.dtd
@@ -0,0 +1,47 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY e2eTitle.label "Päästä päähän -salaus">
+<!ENTITY e2eLearnMore.label "Lue lisää">
+
+<!ENTITY e2eEnc.description "Ilman päästä päähän -salausta viestien sisältö altistuu helposti sähköpostipalveluntarjoajallesi ja joukkovalvonnalle.">
+
+<!ENTITY e2eTechPref.description "Suositeltava salaustekniikka:">
+
+<!ENTITY encryptionCert2.message "Henkilökohtainen varmenne salausta varten:">
+<!ENTITY digitalSign.certificate.button "Valitse…">
+<!ENTITY digitalSign.certificate.accesskey "V">
+<!ENTITY digitalSign.certificate_clear.button "Tyhjennä">
+<!ENTITY digitalSign.certificate_clear.accesskey "T">
+<!ENTITY encryption.certificate.button "Valitse…">
+<!ENTITY encryption.certificate.accesskey "a">
+<!ENTITY encryption.certificate_clear.button "Tyhjennä">
+<!ENTITY encryption.certificate_clear.accesskey "y">
+<!ENTITY signingGroupTitle.label "Digitaalinen allekirjoittaminen">
+
+<!ENTITY signingCert2.message "Henkilökohtainen varmenne digitaaliseen allekirjoittamiseen:">
+
+<!ENTITY sendingDefaults.label "Viestien lähettämisen oletusasetukset">
+
+<!ENTITY technologyAutomatic.label "Valitse automaattisesti käytettävissä olevien avainten tai varmenteiden perusteella">
+
+<!ENTITY certificates2.label "S/MIME">
+<!ENTITY manageCerts3.label "Hallinnoi S/MIME-varmenteita">
+<!ENTITY manageCerts3.accesskey "M">
+<!ENTITY manageDevices2.label "S/MIME-suojauslaitteet">
+<!ENTITY manageDevices2.accesskey "u">
+
+<!ENTITY technologySMIME.label "Suosi S/MIME:ä">
+<!ENTITY technologyOpenPGP.label "Suosi OpenPGP:tä">
+
+<!ENTITY openpgpKeys.label "OpenPGP">
+
+<!-- Strings for the cert picker dialog -->
+<!ENTITY certPicker.title "Valitse varmenne">
+<!ENTITY certPicker.info "Varmenne:">
+<!ENTITY certPicker.detailsLabel "Valitun varmenteen yksityiskohdat:">
+
+<!ENTITY openpgpKey.message "Henkilökohtainen avain salaukseen ja digitaaliseen allekirjoittamiseen:">
+<!ENTITY openpgpKey.button "Aseta henkilökohtainen avain…">
+<!ENTITY openpgpKey.accesskey "h">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.properties
new file mode 100644
index 0000000000..768a3d0d07
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/am-smime.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## S/MIME error strings.
+## Note to localization: %S is a placeholder
+NoSenderSigningCert=Haluat allekirjoittaa tämän viestin, mutta sovellus ei joko löytänyt Posti- ja keskusteluryhmätilien asetuksissa määrittämääsi allekirjoitusvarmennetta tai varmenne on vanhentunut.
+NoSenderEncryptionCert=Haluat salata tämän viestin, mutta sovellus ei joko löytänyt Posti- ja keskusteluryhmätilien asetuksissa määrittämääsi salausvarmennetta tai varmenne on vanhentunut.
+MissingRecipientEncryptionCert=Halusit salata tämän viestin, mutta sovellus ei löytänyt salausvarmennetta vastaanottajalle %S.
+ErrorEncryptMail=Viestiä ei voida salata. Tarkista, että sinulla on voimassaoleva sähköpostivarmenne jokaiselle vastaanottajalle. Tarkista, että Posti- ja keskusteluryhmätilien asetuksissa tälle tilille määritetyt varmenteet ovat voimassa ja luotettuja sähköpostivarmenteita.
+ErrorCanNotSignMail=Viestiä ei voida allekirjoittaa. Tarkista, että Posti- ja keskusteluryhmätilien asetuksissa tälle tilille määritetyt varmenteet ovat voimassa ja luotettuja sähköpostivarmenteita.
+
+NoSigningCert=Varmenteiden hallinta ei löydä voimassa olevaa varmennetta, jota voitaisiin käyttää viestiesi allekirjoittamiseen.
+NoSigningCertForThisAddress=Varmenteiden hallinta ei löydä voimassa olevaa varmennetta, jota voitaisiin käyttää viestiesi allekirjoittamiseen osoitteella <%S>.
+NoEncryptionCert=Varmenteiden hallinta ei löydä voimassa olevaa varmennetta, jota muut voivat käyttää salattujen sähköpostiviestien lähettämiseen sinulle.
+NoEncryptionCertForThisAddress=Varmenteiden hallinta ei löydä voimassa olevaa varmennetta, jota muut voivat käyttää salattujen sähköpostiviestien lähettämiseen sinulle osoitteeseen <%S>.
+
+encryption_needCertWantSame=Sinun tulisi myös määrittää varmenne, jota toiset voivat käyttää lähettäessään sinulle salattuja viestejä. Haluatko käyttää samaa varmennetta salaamaan viestejä ja purkamaan sinulle tulleiden viestien salaus?
+encryption_wantSame=Haluatko käyttää samaa varmennetta salaamaan viestejä ja purkamaan sinulle tulleiden viestien salaus?
+encryption_needCertWantToSelect=Sinun tulisi myös määrittää varmenne, jota toiset voivat käyttää lähettäessään sinulle salattuja viestejä. Haluatko määrittää salausvarmenteen nyt?
+signing_needCertWantSame=Sinun tulisi myös määrittää varmenne viestien allekirjoittamista varten. Haluatko käyttää samaa varmennetta viestiesi allekirjoittamiseen?
+signing_wantSame=Haluatko käyttää samaa varmennetta viestiesi allekirjoittamiseen?
+signing_needCertWantToSelect=Sinun tulisi myös määrittää varmenne viestien allekirjoittamista varten. Haluatko määrittää allekirjoitusvarmenteen nyt?
+
+## Strings used by nsMsgComposeSecure
+mime_smimeEncryptedContentDesc=S/MIME-salattu viesti
+mime_smimeSignatureContentDesc=S/MIME-salakirjoitettu allekirjoitus
+
+## Strings used by the cert picker.
+CertInfoIssuedFor=Myönnetty:
+CertInfoIssuedBy=Myöntäjä:
+CertInfoValid=Voimassa
+CertInfoFrom=ajankohdasta
+CertInfoTo=ajankohtaan
+CertInfoPurposes=Tarkoitukset
+CertInfoEmail=Sähköposti
+CertInfoStoredIn=Tallennettu kohteeseen:
+NicknameExpired=(vanhentunut)
+NicknameNotYetValid=(ei vielä voimassa)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appUpdate.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appUpdate.properties
new file mode 100644
index 0000000000..3c595ea83e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appUpdate.properties
@@ -0,0 +1,40 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (updateAvailableTitle): %S will be replaced with brandShortName
+updateAvailableTitle=Uusi %S-päivitys on saatavilla.
+# LOCALIZATION NOTE (updateAvailableMessage): %S will be replaced with brandShortName
+updateAvailableMessage=Hanki uusimmat suorituskyky- ja yksityisyysominaisuudet päivittämällä %S.
+updateAvailablePrimaryButtonLabel=Lataa päivitys
+updateAvailablePrimaryButtonAccessKey=L
+updateAvailableSecondaryButtonLabel=Ei nyt
+updateAvailableSecondaryButtonAccessKey=E
+
+# LOCALIZATION NOTE (updateManualTitle): %S will be replaced with brandShortName
+updateManualTitle=%S ei voida päivittää uusimpaan versioon.
+# LOCALIZATION NOTE (updateManualMessage): %S will be replaced with brandShortName
+updateManualMessage=Lataa uusin %S-versio, ja me autamme sinua asentamaan sen.
+# LOCALIZATION NOTE (updateManualPrimaryButtonLabel): %S will be replaced with brandShortName
+updateManualPrimaryButtonLabel=Lataa %S
+updateManualPrimaryButtonAccessKey=L
+updateManualSecondaryButtonLabel=Ei nyt
+updateManualSecondaryButtonAccessKey=E
+
+# LOCALIZATION NOTE (updateUnsupportedTitle): %S will be replaced with brandShortName
+updateUnsupportedTitle=%S ei pysty päivittymään uusimpaan versioon.
+# LOCALIZATION NOTE (updateUnsupportedMessage): %S will be replaced with brandShortName
+updateUnsupportedMessage=Uusin %S-versio ei ole tuettu järjestelmässäsi.
+updateUnsupportedPrimaryButtonLabel=Lue lisää
+updateUnsupportedPrimaryButtonAccessKey=L
+updateUnsupportedSecondaryButtonLabel=Sulje
+updateUnsupportedSecondaryButtonAccessKey=S
+
+# LOCALIZATION NOTE (updateRestartTitle): %S will be replaced with brandShortName
+updateRestartTitle=Päivitä %S käynnistämällä se uudelleen.
+# LOCALIZATION NOTE (updateRestartMessage): %S will be replaced with brandShortName
+updateRestartMessage=Nopean uudelleenkäynnistyksen jälkeen %S palauttaa kaikki välilehdet ja ikkunat.
+updateRestartPrimaryButtonLabel=Käynnistä uudelleen
+updateRestartPrimaryButtonAccessKey=K
+updateRestartSecondaryButtonLabel=Ei nyt
+updateRestartSecondaryButtonAccessKey=E
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appleMailImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appleMailImportMsgs.properties
new file mode 100644
index 0000000000..95df432b69
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/appleMailImportMsgs.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Short name of import module
+ApplemailImportName=Apple Mail
+
+# Description of import module
+ApplemailImportDescription=Tuo paikalliset viestit Mac OS X Mailista
+
+# Success Message
+# LOCALIZATION NOTE(ApplemailImportMailboxSuccess): Do not translate the word "%S" below.
+ApplemailImportMailboxSuccess=Paikallisten viestien tuonti ohjelmasta %S onnistui
+
+# Error Message
+ApplemailImportMailboxBadparam=Tapahtui sisäinen virhe. Tuonti epäonnistui. Yritä tuoda viestejä uudestaan.
+
+# Error message
+# LOCALIZATION NOTE(ApplemailImportMailboxConverterror): Do not translate the word "%S" below.
+ApplemailImportMailboxConverterror=Viestien tuonti ohjelmasta %S epäonnistui. Viestejä ei tuotu.
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/baseMenuOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..315425bfc5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/baseMenuOverlay.dtd
@@ -0,0 +1,34 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Help Menu -->
+<!ENTITY helpMenu.label "Ohje">
+<!ENTITY helpMenu.accesskey "O">
+<!-- LOCALIZATION NOTE some localizations of Windows use "?"
+ for the help button in the menubar but Gnome does not. -->
+<!ENTITY helpMenuWin.label "Ohje">
+<!ENTITY helpMenuWin.accesskey "O">
+<!ENTITY aboutProduct2.label "Tietoja - &brandShorterName;">
+<!ENTITY aboutProduct2.accesskey "T">
+<!ENTITY productHelp.label "&brandShortName;-ohje">
+<!ENTITY productHelp.accesskey "O">
+
+<!ENTITY productHelp.commandkey "VK_F1">
+<!ENTITY productHelpMac.commandkey "?">
+<!ENTITY productHelpMac.modifiers "Kiihdytä">
+
+<!ENTITY helpKeyboardShortcuts.label "Pikanäppäimet">
+<!ENTITY helpKeyboardShortcuts.accesskey "P">
+
+<!ENTITY helpFeedbackPage.label "Lähetä palautetta…">
+<!ENTITY helpFeedbackPage.accesskey "L">
+
+<!ENTITY helpShowTour2.label "&brandShorterName;-esittely">
+<!ENTITY helpShowTour2.accesskey "e">
+
+<!ENTITY helpGetInvolvedPage.label "Tule mukaan">
+<!ENTITY helpGetInvolvedPage.accesskey "T">
+
+<!ENTITY helpDonationsPage.label "Lahjoita">
+<!ENTITY helpDonationsPage.accesskey "J">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/beckyImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/beckyImportMsgs.properties
new file mode 100644
index 0000000000..46a13f2106
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/beckyImportMsgs.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# The following are used by the becky import code to display status/error
+# and informational messages
+
+# Short name of import module
+BeckyImportName=Becky! -internet-sähköposti
+
+# Description of import module
+BeckyImportDescription=Tuo viestit Becky! -internet-sähköpostista
+
+# Success Message
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+# The variable %S will contain the name of the Mailbox
+BeckyImportMailboxSuccess=Paikalliset viestit onnistuttiin tuomaan palvelusta %S.
+
+BeckyImportAddressSuccess=Osoitekirja on tuotu
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/charsetTitles.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/charsetTitles.properties
new file mode 100644
index 0000000000..9a067c56ec
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/charsetTitles.properties
@@ -0,0 +1,84 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Rule of this file:
+## 1. key should always be in lower case ascii so we can do case insensitive
+## comparison in the code faster.
+
+## Format of this file:
+## charset_name.title = a_title - specifies the human readable title for
+## this charset
+
+## Format of this file:
+## charset_name.title = a_title - specifies the human readable title for
+## this charset
+
+iso-8859-1.title =Länsimainen (ISO-8859-1)
+iso-8859-2.title =Keskieurooppalainen (ISO-8859-2)
+iso-8859-3.title =Eteläeurooppalainen (ISO-8859-3)
+iso-8859-4.title =Balttilainen (ISO-8859-4)
+iso-8859-10.title =Pohjoismaalainen (ISO-8859-10)
+iso-8859-13.title =Balttilainen (ISO-8859-13)
+iso-8859-14.title =Kelttiläinen (ISO-8859-14)
+iso-8859-15.title =Länsimainen (ISO-8859-15)
+iso-8859-16.title =Romanialainen (ISO-8859-16)
+windows-1250.title =Keskieurooppalainen (Windows-1250)
+windows-1252.title =Länsimainen (Windows-1252)
+windows-1254.title =Turkkilainen (Windows-1254)
+windows-1257.title =Balttilainen (Windows-1257)
+macintosh.title = Länsimainen (MacRoman)
+x-mac-ce.title =Keskieurooppalainen (MacCE)
+x-mac-turkish.title =Turkkilainen (MacTurkish)
+x-mac-croatian.title =Kroatialainen (MacCroatian)
+x-mac-romanian.title =Romanialainen (MacRomanian)
+x-mac-icelandic.title =Islantilainen (MacIcelandic)
+iso-2022-jp.title =Japanilainen (ISO-2022-JP)
+shift_jis.title =Japanilainen (Shift_JIS)
+euc-jp.title =Japanilainen (EUC-JP)
+big5.title =Kiinalainen, perinteinen (Big5)
+big5-hkscs.title =Kiinalainen, perinteinen (Big5-HKSCS)
+gb2312.title =Kiinalainen, yksinkertaistettu (GB2312)
+gbk.title =Kiinalainen, yksinkertaistettu (GBK)
+euc-kr.title =Korealainen (EUC-KR)
+utf-7.title = Unicode (UTF-7)
+utf-8.title = Unicode (UTF-8)
+utf-16.title = Unicode (UTF-16)
+utf-16le.title = Unicode (UTF-16LE)
+utf-16be.title = Unicode (UTF-16BE)
+iso-8859-5.title =Kyrillinen (ISO-8859-5)
+windows-1251.title =Kyrillinen (Windows-1251)
+x-mac-cyrillic.title =Kyrillinen (MacCyrillic)
+x-mac-ukrainian.title =Kyrillinen/ukrainalainen (MacUkrainian)
+koi8-r.title =Kyrillinen (KOI8-R)
+koi8-u.title =Kyrillinen/ukrainalainen (KOI8-U)
+iso-8859-7.title =Kreikkalainen (ISO-8859-7)
+windows-1253.title =Kreikkalainen (Windows-1253)
+x-mac-greek.title =Kreikkalainen (MacGreek)
+windows-1258.title =Vietnamilainen (Windows-1258)
+windows-874.title =Thaimaalainen (Windows-874)
+iso-8859-6.title =Arabialainen (ISO-8859-6)
+iso-8859-8.title =Heprealainen, visuaalinen (ISO-8859-8)
+iso-8859-8-i.title =Heprealainen (ISO-8859-8-I)
+windows-1255.title =Heprealainen (Windows-1255)
+windows-1256.title =Arabialainen (Windows-1256)
+x-user-defined.title =Käyttäjän määrittelemä
+ibm866.title =Kyrillinen/Venäläinen (CP-866)
+gb18030.title =Kiinalainen, yksinkertaistettu (GB18030)
+x-mac-arabic.title =Arabialainen (MacArabic)
+x-mac-farsi.title =Farsilainen (MacFarsi)
+x-mac-hebrew.title =Heprealainen (MacHebrew)
+x-mac-devanagari.title =Hindiläinen (MacDevanagari)
+x-mac-gujarati.title =Gujaratilainen (MacGujarati)
+x-mac-gurmukhi.title =Gurmukhilainen (MacGurmukhi)
+
+chardet.off.title =(Pois päältä)
+chardet.universal_charset_detector.title =Yleinen
+chardet.ja_parallel_state_machine.title =Japanilainen
+chardet.ko_parallel_state_machine.title =Korealainen
+chardet.zhtw_parallel_state_machine.title =Kiinalainen, perinteinen
+chardet.zhcn_parallel_state_machine.title =Kiinalainen, yksinkertaistettu
+chardet.zh_parallel_state_machine.title =Kiinalainen
+chardet.cjk_parallel_state_machine.title =Itäaasialainen
+chardet.ruprob.title =Venäläinen
+chardet.ukprob.title =Ukrainalainen
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.dtd
new file mode 100644
index 0000000000..44798421e9
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.dtd
@@ -0,0 +1,44 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY onlineContactsHeader.label "Linjoilla olevat tuttavat">
+<!ENTITY offlineContactsHeader.label "Poissa linjoilta olevat tuttavat">
+<!ENTITY conversationsHeader.label "Keskustelut">
+<!ENTITY searchResultConversation.label "Hakutulokset">
+<!ENTITY chat.noConv.title "Keskustelut näkyvät tässä.">
+<!ENTITY chat.noConv.description "Aloita keskustelu vasemman paneelin tuttavalistasta.">
+<!ENTITY chat.noPreviousConv.description "&brandShortName;ssä ei ole tallennettuna yhtään keskustelua tämän tuttavan kanssa.">
+<!ENTITY chat.noAccount.title "Et ole vielä luonut pikaviestitiliä.">
+<!ENTITY chat.noAccount.description "&brandShortName; avustaa sinua luomaan pikaviestitilin.">
+<!ENTITY chat.accountWizard.button "Aloita">
+<!ENTITY chat.noConnectedAccount.title "Pikaviestitileihisi ei ole luotu yhteyttä.">
+<!ENTITY chat.noConnectedAccount.description "Voit muodostaa yhteyden pikaviestitileihisi Läsnäolotila-valikosta:">
+<!ENTITY chat.showAccountManager.button "Näytä läsnäolotila">
+
+<!ENTITY chat.participants "Osallistujat:">
+<!ENTITY chat.previousConversations "Aikaisemmat keskustelut:">
+<!ENTITY chat.ongoingConversation "Käynnissä oleva keskustelu">
+
+<!ENTITY openConversationCmd.label "Keskustele">
+<!ENTITY openConversationCmd.accesskey "K">
+<!ENTITY closeConversationCmd.label "Lopeta keskustelu">
+<!ENTITY closeConversationCmd.accesskey "L">
+<!ENTITY aliasCmd.label "Nimeä uudelleen">
+<!ENTITY aliasCmd.accesskey "u">
+<!ENTITY deleteCmd.label "Poista yhteyshenkilö">
+<!ENTITY deleteCmd.accesskey "o">
+
+<!ENTITY openConversationButton.tooltip "Aloita keskustelu">
+<!ENTITY closeConversationButton.tooltip "Lopeta keskustelu">
+
+<!ENTITY addBuddyButton.label "Lisää tuttava">
+<!ENTITY joinChatButton.label "Liity keskusteluun">
+<!ENTITY chatAccountsButton.label "Näytä tilit">
+
+<!ENTITY status.available "Tavoitettavissa">
+<!ENTITY status.unavailable "Poissa">
+<!ENTITY status.offline "Poissa linjoilta">
+
+<!ENTITY openLinkCmd.label "Avaa linkki…">
+<!ENTITY openLinkCmd.accesskey "A">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.properties
new file mode 100644
index 0000000000..c425f0e64e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/chat.properties
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chatTabTitle=Keskustelu
+goBackToCurrentConversation.button=Palaa käynnissä olevaan keskusteluun
+# LOCALIZATION NOTE (startAConversationWith.button):
+# %S is replaced with the display name of a contact.
+startAConversationWith.button=Keskustele %S:n kanssa
+
+# LOCALIZATION NOTE (defaultGroup):
+# this is used in the addBuddies dialog if the list of existing groups is empty
+defaultGroup=Tuttavat
+
+# LOCALIZATION NOTE (buddy.authRequest.label):
+# This string appears in a notification bar at the
+# top of the Contacts window when someone added the user to his/her
+# contact list, to request the permission from the user to share
+# status information with this potential new contact.
+# %S is replaced with the user name of the potential new contact.
+buddy.authRequest.label=%S haluaa keskustella kanssasi
+buddy.authRequest.allow.label=Salli
+buddy.authRequest.allow.accesskey=S
+buddy.authRequest.deny.label=Estä
+buddy.authRequest.deny.accesskey=E
+
+## LOCALIZATION NOTE (buddy.verificationRequest):
+# Strings used in a notification bar at the top of the chat tab when someone
+# sends a verification request for end-to-end encryption keys.
+# %S is replaced with the display name of the user or, if this is to verify a
+# session of yourself, a string that identifies the session.
+buddy.verificationRequest.label=%S haluaa vahvistaa molempien henkilöyden
+buddy.verificationRequest.allow.label=Aloita vahvistus
+buddy.verificationRequest.deny.label=Estä
+
+# LOCALIZATION NOTE (buddy.deletePrompt.title):
+# %S here will be replaced by the alias (or username) of a buddy about
+# to be removed from the buddy list.
+buddy.deletePrompt.title=Poistetanko %S?
+
+# LOCALIZATION NOTE (buddy.deletePrompt.message):
+# %1$S will be replaced by the name of a buddy (either the alias
+# followed by the username between parenthesis if an alias is set, or
+# only the username otherwise).
+# %2$S will be the name of the protocol on which this buddy is removed
+# (for example: AIM, MSN, Google Talk).
+#
+# Please find a wording that will keep the username as close as
+# possible to the beginning of the string, because this is the
+# important information that an user should see when looking quickly
+# at this prompt.
+buddy.deletePrompt.message=Tuttava %1$S poistetaan pysyvästi %2$S-tuttavalistalta.
+
+# LOCALIZATION NOTE (buddy.deletePrompt.displayName):
+# This is used to format the display name inserted in buddy.deletePrompt.message
+# %1$S is the alias, %2$S is the username.
+buddy.deletePrompt.displayName=%1$S (%2$S)
+
+# LOCALIZATION NOTE (buddy.deletePrompt.button):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+buddy.deletePrompt.button=&Poista
+
+displayNameEmptyText=Näyttönimi
+userIconFilePickerTitle=Valitse uusi kuvake…
+
+# LOCALIZATION NOTE (chat.isTyping, chat.hasStoppedTyping):
+# The contact display name is displayed with a big font on a first
+# line and these two strings are displayed on a second line with a
+# smaller font. Please try to find a wording that make this look
+# almost like a sentence.
+chat.isTyping=kirjoittaa…
+chat.hasStoppedTyping=lopetti kirjoittamisen.
+# LOCALIZATION NOTE (chat.contactIsTyping, chat.contactHasStoppedTyping):
+# These strings are displayed in a tooltip when hovering the status type icon.
+# %S is replaced with the display name of the contact.
+chat.contactIsTyping=%S kirjoittaa.
+chat.contactHasStoppedTyping=%S lopetti kirjoittamisen.
+
+# LOCALIZATION NOTE (unknownCommand):
+# This is shown when an unknown command (/foo) is attempted. %S is the command.
+unknownCommand=%S ei ole tuettu komento. Kirjoita /help nähdäksesi listan komennoista.
+
+#LOCALIZATION NOTE
+# These are special entries in the log tree for the corresponding days.
+log.today=Tänään
+log.yesterday=Eilen
+
+#LOCALIZATION NOTE
+# These are special groups in the log tree for the last 3-7 days and
+# the last 8-14 days.
+log.currentWeek=Tällä viikolla
+log.previousWeek=Viime viikolla
+
+# LOCALIZATION NOTE (messagePreview):
+# This is the default message preview to be shown
+# when the user has chosen not to show any info in the notification about the
+# incoming message being notified.
+messagePreview=Uusi keskusteluryhmäviesti
+
+#LOCALIZATION NOTE (bundledMessagePreview): Semi-colon list of plural forms.
+# Used when multiple incoming messages from the same sender are bundled
+# into a single notification.
+# #1 is the number of incoming messages the user is being notified about. When #1
+# is greater than one, the plural form after the semicolon is used.
+# Do not translate %1$S, it is the message preview to be shown in the
+# notification, i.e. the first incoming message.
+bundledMessagePreview=%1$S… (ja #1 viesti lisää);%1$S… (ja #1 viestiä lisää)
+
+buddy.verificationRequest.allow.accesskey=S
+buddy.verificationRequest.deny.accesskey=D
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/configEditorOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/configEditorOverlay.dtd
new file mode 100644
index 0000000000..3d78799d68
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/configEditorOverlay.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY closeCmd.key "W">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.dtd
new file mode 100644
index 0000000000..a1b162d5c7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.dtd
@@ -0,0 +1,11 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY converterDialog.title "Viestivaraston tyypin muunnin">
+<!ENTITY converterDialog.continueButton "Jatka">
+<!ENTITY converterDialog.cancelButton "Keskeytä">
+<!ENTITY converterDialog.finishButton "Viimeistele">
+<!ENTITY converterDialog.complete "Muunnos on nyt valmis. &brandShortName; käynnistyy uudelleen.">
+<!ENTITY converterDialog.error "Muunnos epäonnistui.">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.properties
new file mode 100644
index 0000000000..5691e39b0b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/converterDialog.properties
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (converterDialog.warning):
+# %1$S will be replaced by the name of the account which is going to be converted.
+# %2$S will be replaced by the format into which the account will be converted.
+# %3$S will be replaced by $BrandShortName.
+converterDialog.warning=Viestit tilillä %1$S muunnetaan nyt muotoon %2$S. %3$S käynnistyy uudelleen kun muunnos on suoritettu.
+
+# LOCALIZATION NOTE (converterDialog.message):
+# %1$S will be replaced by the name of the account which is being converted.
+# %2$S will be replaced by the format into which the account will be converted.
+converterDialog.message=Muunnetaan tiliä %1$S muotoon %2$S…
+
+# LOCALIZATION NOTE (converterDialog.warningForDeferredAccount):
+# %1$S will be replaced by the name of the deferred account for which migration is initiated by the user.
+# %2$S will be replaced by the name of the account to which the deferred account is deferred ie the name of the deferred-to account.
+# %3$S will be replaced by the name of the deferred-to account.
+# %4$S will be replaced by a comma separated list of names of accounts which are deferred to the deferred-to account.
+# %5$S will be replaced by a comma separated list of names of accounts which are going to get converted.
+# %6$S will be replaced by the format into which the accounts will be converted.
+# %7$S will be replaced by $BrandShortName.
+converterDialog.warningForDeferredAccount=%1$S muutetaan nimelle %2$S. Nimelle %3$S muutetaan seuraava(t) tilit: %4$S. Tileillä %5$S olevat viestit muutetaan muotoon %6$S. %7$S käynnistyy uudelleen muunnoksen jälkeen.
+
+# LOCALIZATION NOTE (converterDialog.warningForDeferredToAccount):
+# %1$S will be replaced by the name of the deferred-to account for which migration is initiated by the user and to which other accounts are deferred.
+# %2$S will be replaced by a comma separated list of names of accounts which are deferred to the deferred-to account.
+# %3$S will be replaced by a comma separated list of names of accounts which are going to get converted.
+# %4$S will be replaced by the format into which the accounts will be converted.
+# %5$S will be replaced by $BrandShortName.
+converterDialog.warningForDeferredToAccount=Nimelle %1$S muunnetut tilit: %2$S. Tilillä %3$S olevat viestit muunnetaan nyt muotoon %4$S. %5$S käynnistyy uudelleen muunnoksen jälkeen.
+
+# LOCALIZATION NOTE (converterDialog.messageForDeferredAccount):
+# %1$S will be replaced by a comma separated list of names of accounts which are being converted.
+# %2$S will be replaced by the format into which the accounts will be converted.
+converterDialog.messageForDeferredAccount=Muunnetaan tilit %1$S muotoon %2$S…
+
+# LOCALIZATION NOTE (converterDialog.percentDone):
+# %1$S will be replaced by the percentage of conversion that is complete.
+converterDialog.percentDone=%1$S%% valmiina
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/custom.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/custom.properties
new file mode 100644
index 0000000000..821e412254
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/custom.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+colonInHeaderName=Antamasi otsake sisältää virheellisiä merkkejä, kuten ":", ei-tulostettavan merkin, ascii-merkistöön kuulumattoman merkin tai kahdeksanbittisen ascii-merkin. Poista virheellinen merkki ja yritä uudelleen.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.dtd
new file mode 100644
index 0000000000..a5a5629bc3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY dialog.title "Muokkaa työkalupalkkia">
+<!ENTITY dialog.dimensions "width: 92ch; height: 36em;">
+<!ENTITY instructions.description "Voit lisätä kohteita työkalupalkkiin tai poistaa niitä sieltä raahaamalla.">
+<!ENTITY show.label "Näytä:">
+<!ENTITY iconsAndText.label "Kuvakkeet ja teksti">
+<!ENTITY icons.label "Kuvakkeet">
+<!ENTITY text.label "Teksti">
+<!ENTITY iconsBesideText.label "Kuvakkeet tekstin vieressä">
+<!ENTITY useSmallIcons.label "Käytä pieniä kuvakkeita">
+<!ENTITY restoreDefaultSet.label "Palauta oletusasetukset">
+<!ENTITY showTitlebar2.label "Otsikkopalkki">
+<!ENTITY extraDragSpace2.label "Lisää tyhjää tilaa">
+<!ENTITY saveChanges.label "Valmis">
+<!ENTITY undoChanges.label "Peruuta muutokset">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.properties
new file mode 100644
index 0000000000..1e5f175c02
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/customizeToolbar.properties
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+enterToolbarTitle=Uusi työkalupalkki
+enterToolbarName=Anna työkalupalkin nimi:
+enterToolbarDup=Nimellä ”%S” on jo olemassa työkalupalkki. Syötä toinen nimi.
+enterToolbarBlank=Jos haluat luoda uuden työkalupalkin, sille on annettava nimi.
+separatorTitle=Erotin
+springTitle=Joustava väli
+spacerTitle=Väli
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/downloadheaders.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/downloadheaders.dtd
new file mode 100644
index 0000000000..dde46de93a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/downloadheaders.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY all.label "Nouda kaikki viestiotsakkeet">
+<!ENTITY all.accesskey "N">
+<!--LOCALIZATION NOTE (download.label):
+ consider the download.label and headers.label as a single sentence
+ with the number of headers to be downloaded inserted between them:
+ EXAMPLE: "Download" <some number> "headers"
+ Either label could be set to null ("") if required grammatically.
+-->
+
+<!--LOCALIZATION NOTE (download.label):
+ consider the download.label and headers.label as a single sentence
+ with the number of headers to be downloaded inserted between them:
+ EXAMPLE: "Download" <some number> "headers"
+ Either label could be set to null ("") if required grammatically.
+-->
+
+<!ENTITY download.label "Nouda">
+<!ENTITY download.accesskey "d">
+<!--LOCALIZATION NOTE (headers.label): see note for download.label -->
+<!ENTITY headers.label "viestiä">
+<!ENTITY headers.accesskey "v">
+<!ENTITY mark.label "Merkitse jäljelle jääneet viestit luetuiksi">
+<!ENTITY mark.accesskey "M">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.dtd
new file mode 100644
index 0000000000..5a27629de8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.dtd
@@ -0,0 +1,20 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY editContactPanelDeleteContact.label "Poista">
+<!ENTITY editContactPanelDeleteContact.accesskey "o">
+
+<!ENTITY editContactName.label "Nimi:">
+<!ENTITY editContactName.accesskey "N">
+
+<!ENTITY editContactEmail.label "Sähköposti:">
+<!ENTITY editContactEmail.accesskey "S">
+
+<!ENTITY editContactAddressBook.label "Osoitekirja:">
+<!ENTITY editContactAddressBook.accesskey "O">
+
+<!ENTITY editContactPanelDone.label "Valmis">
+<!ENTITY editContactPanelDone.accesskey "V">
+
+<!ENTITY contactMoveDisabledWarning.description "Osoitekirjaa ei voi vaihtaa, koska yhteystieto on postituslistalla.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.properties
new file mode 100644
index 0000000000..fbc01460c0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/editContactOverlay.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+editTitle=Muokkaa yhteystietoja
+viewTitle=Näytä tiedot
+
+editDetailsLabel=Muokkaa yksityiskohtia
+editDetailsAccessKey=M
+viewDetailsLabel=Näytä yksityiskohdat
+viewDetailsAccessKey=N
+
+deleteContactTitle=Poista yhteystieto
+deleteContactMessage=Poistetaanko yhteystieto?
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/fieldMapImport.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/fieldMapImport.dtd
new file mode 100644
index 0000000000..8dc3bfb361
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/fieldMapImport.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY fieldMapImport.next.label "Seuraava">
+<!ENTITY fieldMapImport.next.accesskey "S">
+<!ENTITY fieldMapImport.previous.label "Edellinen">
+<!ENTITY fieldMapImport.previous.accesskey "E">
+<!ENTITY fieldMapImport.text "Siirrä vasemmalla olevat osoitekirjan kentät kohdakkain niitä vastaavien oikeanpuoleisten tietojen kanssa käyttämällä Siirrä ylös- ja Siirrä alas -painikkeita. Poista valinta niistä tiedoista, joita et halua tuoda osoitekirjaan.">
+<!ENTITY fieldMapImport.up.label "Siirrä ylös">
+<!ENTITY fieldMapImport.up.accesskey "y">
+<!ENTITY fieldMapImport.down.label "Siirrä alas">
+<!ENTITY fieldMapImport.down.accesskey "a">
+<!ENTITY fieldMapImport.fieldListTitle "Osoitekirjan kentät">
+<!ENTITY fieldMapImport.dataTitle "Tietueesta tuotavat tiedot">
+<!ENTITY fieldMapImport.skipFirstRecord.label "Kenttien nimet ovat ensimmäisellä rivillä">
+<!ENTITY fieldMapImport.skipFirstRecord.accessKey "K">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/filter.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/filter.properties
new file mode 100644
index 0000000000..e8853836fe
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/filter.properties
@@ -0,0 +1,109 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+mustSelectFolder=Valitse kohdekansio.
+enterValidEmailAddress=Kirjoita sähköpostiosoite, johon viesti välitetään.
+pickTemplateToReplyWith=Valitse vastauksen mallipohja.
+mustEnterName=Kirjoita nimi suodattimelle.
+cannotHaveDuplicateFilterTitle=Kahdella suodattimella on sama nimi
+cannotHaveDuplicateFilterMessage=Kirjoittamasi suodattimen nimi on jo olemassa. Kirjoita toinen nimi.
+mustHaveFilterTypeTitle=Suodatintoimintoa ei ole valittu
+mustHaveFilterTypeMessage=Suodattimeen täytyy valita ainakin yksi toiminto sitä suoritettaessa. Jos et väliaikaisesti halua suodattaa mitään viestejä, poista suodattimet käytöstä viestien suodatusikkunasta.
+deleteFilterConfirmation=Poistetaanko tämä suodatin?
+matchAllFilterName=Valitse kaikki viestit
+filterListBackUpMsg=Suodattimesi eivät toimi, koska msgFilterRules.dat-tiedostoa, joka sisältää suodattimesi, ei voi lukea. Uusi msgFilterRules.dat-tiedosto luodaan, ja kopio vanhasta tiedostosta, nimeltä rulesbackup.dat, luodaan samaan hakemistoon.
+customHeaderOverflow=Olet ylittänyt 50:n muokatun otsakekentän rajan. Poista yksi tai useampia muokatuista otsakekentistä ja yritä uudelleen.
+filterCustomHeaderOverflow=Suodattimesi ovat ylittäneet 50:n oman otsakkeen rajan. Muokkaa msgFilterRules.dat -tiedostoa, joka sisältää suodattimesi, käyttääksesi harvempia muokattuja otsakkeita.
+invalidCustomHeader=Yksi suodattimistasi käyttää otsaketta, jossa on virheellinen merkki, kuten ":", ei-tulostuva merkki, muu kuin ascii-merkki tai 8-bittinen ascii-merkki. Muokkaa msgFilterRules.dat -tiedostoa, joka sisältää suodattimesi, poistaaksesi virheelliset merkit otsakkeista.
+continueFilterExecution=Suodattimen %S käyttöönotto epäonnistui. Jatketaanko suodattimien käyttöönottoa?
+promptTitle=Suoritetaan suodattimia
+promptMsg=Suodatat parhaillaan viestejä.\nJatketaanko suodattimien käyttöönottoa?
+stopButtonLabel=Pysäytä
+continueButtonLabel=Jatka
+# LOCALIZATION NOTE(cannotEnableIncompatFilter)
+# %S=the name of the application
+cannotEnableIncompatFilter=Tämä suodatin on todennäköisesti luotu uudemmalla tai yhteensopimattomalla %Sin versiolla. Et voi ottaa tätä suodatinta käyttöön, koska emme tiedä kuinka sitä tulisi käyttää.
+dontWarnAboutDeleteCheckbox=Älä kysy uudelleen
+# LOCALIZATION NOTE(copyToNewFilterName)
+# %S=the name of the filter that is being copied
+copyToNewFilterName=%S - kopio
+# LOCALIZATION NOTE(contextPeriodic.label): Semi-colon list of plural forms.
+# #1=the number of minutes
+contextPeriodic.label=Määräajoin, minuutin välein;Määräajoin, #1 minuutin välein
+
+# LOCALIZATION NOTE(filterFailureWarningPrefix)
+# %1$S=filter error action
+# %2$S=error code as hexadecimal string.
+filterFailureWarningPrefix=Suodatintoiminto epäonnistui: "%1$S" virhekoodilla=%2$S yritettäessä:
+filterFailureSendingReplyError=Virhe vastauksen lähettämisessä
+filterFailureSendingReplyAborted=Vastauksen lähettäminen keskeytettiin
+filterFailureMoveFailed=Siirtäminen epäonnistui
+filterFailureCopyFailed=Kopiointi epäonnistui
+
+filterFailureAction=Suodatustoiminto epäonnistui
+
+searchTermsInvalidTitle=Virheelliset hakutermit
+# LOCALIZATION NOTE(searchTermsInvalidRule)
+# %1$S=search attribute name from the invalid rule
+# %2$S=search operator from the bad rule
+searchTermsInvalidRule=Suodatinta ei voi tallentaa, koska hakutermi ja ehto "%1$S %2$S" eivät sovi tähän käyttötarkoitukseen.
+# LOCALIZATION NOTE(filterActionOrderExplanation)
+# Keep the \n\n that mean 2 linebreaks.
+filterActionOrderExplanation=Kun viesti on suodattimen mukainen, suodattimen toimet suoritetaan seuraavassa järjestyksessä:\n\n
+filterActionOrderTitle=Todellinen toimintajärjestys
+## LOCALIZATION NOTE(filterActionItem):
+# %1$S=sequence number of the action, %2$S=action text, %3$S=action argument
+filterActionItem=%1$S. %2$S %3$S\n
+
+## LOCALIZATION NOTE(filterCountVisibleOfTotal):
+# %1$S=number of matching filters, %2$S=total number of filters
+filterCountVisibleOfTotal=%1$S / %2$S
+## LOCALIZATION NOTE(filterCountItems):
+## Semicolon-separated list of singular and plural forms.
+## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of items in the list.
+filterCountItems=#1 kohta; #1 kohtaa
+# for junk mail logging / mail filter logging
+# LOCALIZATION NOTE(junkLogDetectStr)
+# %1$S=author, %2$S=subject, %3$S=date
+junkLogDetectStr=Havaittiin roskapostiviesti "%2$S" osoitteesta %1$S %3$S
+# LOCALIZATION NOTE(logMoveStr)
+# %1$S=message id, %2$S=folder URI
+logMoveStr=siirrettiin viestitunnus %1$S kansioon %2$S
+# LOCALIZATION NOTE(logCopyStr)
+# %1$S=message id, %2$S=folder URI
+logCopyStr=kopioitiin viestitunnus %1$S kansioon %2$S
+# LOCALIZATION NOTE(filterLogLine):
+# %1$S=timestamp, %2$S=log message
+filterLogLine=[%1$S] %2$S
+# LOCALIZATION NOTE(filterMessage):
+# %1$S=filter name, %1$S=log message
+filterMessage=Sanoma suodattimelta "%1$S": %2$S
+# LOCALIZATION NOTE(filterLogDetectStr)
+# %1$S=filter name %2$S=author, %3$S=subject, %4$S=date
+filterLogDetectStr=Suoritettiin suodatin "%1$S" viestille "%3$S" osoitteesta %2$S %4$S
+filterMissingCustomAction=Omaa toimintoa ei löydetty
+filterAction2=tärkeysastetta muutettiin
+filterAction3=poistettiin
+filterAction4=merkitty luetuksi
+filterAction5=viestiketju tapettiin
+filterAction6=viestiketjua tarkkaillaan
+filterAction7=merkittiin tähdellä
+filterAction8=merkittiin tunnuksella
+filterAction9=vastattiin
+filterAction10=välitettiin
+filterAction11=suoritus keskeytettiin
+filterAction12=poistettiin POP3-palvelimelta
+filterAction13=jätettiin POP3-palvelimelle
+filterAction14=roskaposti-pisteytys
+filterAction15=viestirunko noudettiin POP3-palvelimelta
+filterAction16=kopioitiin kansioon
+filterAction17=merkittiin avainsanalla
+filterAction18=ohitettiin aliketju
+filterAction19=merkittiin ei luetuksi
+# LOCALIZATION NOTE(filterAutoNameStr)
+# %1$S=Header or item to match, e.g. "From", "Tag", "Age in days", etc.
+# %2$S=Operator, e.g. "Contains", "is", "is greater than", etc.
+# %3$S=Value, e.g. "Steve Jobs", "Important", "42", etc.
+filterAutoNameStr=%1$S %2$S: %3$S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderProps.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderProps.dtd
new file mode 100644
index 0000000000..a0c9c19aab
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderProps.dtd
@@ -0,0 +1,70 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY folderProps.windowtitle.label "Ominaisuudet">
+
+<!ENTITY generalInfo.label "Yleiset tiedot">
+<!ENTITY folderRebuildSummaryFileTip2.label "Kokoa hakemistot uudelleen">
+<!ENTITY folderRebuildSummaryFile2.label "Korjaa kansio">
+<!ENTITY folderRebuildSummaryFile2.accesskey "K">
+<!ENTITY folderRebuildSummaryFile.explanation "Joissain tilanteissa kansion hakemistotiedosto (.msf) vaurioituu ja tällöin jotkin tai kaikki kansion viestit voivat näyttää kadonneen tai jo poistetut viestit voivat palata listaukseen. Joissain tapauksissa kansion korjaaminen auttaa ongelmaan.">
+<!ENTITY folderIncludeInGlobalSearch.label "Kansion viestit ovat löydettävissä haulla">
+<!ENTITY folderIncludeInGlobalSearch.accesskey "l">
+
+<!ENTITY retention.label "Viestien säilytyskäytäntö">
+<!ENTITY retentionUseAccount.label "Käytä tilini asetuksia">
+<!ENTITY retentionUseAccount.accesskey "a">
+<!ENTITY daysOld.label "päivää vanhoja">
+<!ENTITY message.label "viestiä">
+<!ENTITY retentionCleanup.label "Kiintolevytilaa voi vapauttaa poistamalla vanhoja viestejä pysyvästi.">
+<!ENTITY retentionCleanupImap.label "Kiintolevytilaa voidaan vapauttaa poistamalla lopullisesti vanhat viestit sekä omalta koneelta, että palvelimelta.">
+<!ENTITY retentionCleanupPop.label "Kiintolevytilaa voidaan vapauttaa poistamalla vanhat viestit lopullisesti, myös sähköpostipalvelimelta.">
+<!ENTITY retentionDeleteMsg.label "Poista viestit, jotka ovat yli">
+<!ENTITY retentionDeleteMsg.accesskey "y">
+<!ENTITY retentionKeepAll.label "Älä poista mitään viestejä">
+<!ENTITY retentionKeepAll.accesskey "Ä">
+<!ENTITY retentionKeepRecent.label "Poista kaikki paitsi uusimmat">
+<!ENTITY retentionKeepRecent.accesskey "P">
+<!ENTITY retentionApplyToFlagged.label "Älä koskaan poista tähdellä merkittyjä viestejä">
+<!ENTITY retentionApplyToFlagged.accesskey "k">
+
+<!ENTITY folderSynchronizationTab.label "Synkronointi">
+<!ENTITY folderCheckForNewMessages2.label "Tarkista tilille saapuvien viestien yhteydessä, onko tähän kansioon tullut uusia viestejä">
+<!ENTITY folderCheckForNewMessages2.accesskey "T">
+
+<!ENTITY offlineFolder.check.label "Kansio on käytettävänä yhteydettömässä tilassa">
+<!ENTITY offlineFolder.check.accesskey "y">
+<!ENTITY offlineFolder.button.label "Nouda heti">
+<!ENTITY offlineFolder.button.accesskey "h">
+
+<!ENTITY selectofflineNewsgroup.check.label "Keskusteluryhmä on luettavana yhteydettömässä tilassa">
+<!ENTITY selectofflineNewsgroup.check.accesskey "y">
+<!ENTITY offlineNewsgroup.button.label "Nouda heti">
+<!ENTITY offlineNewsgroup.button.accesskey "h">
+
+<!ENTITY folderProps.name.label "Nimi:">
+<!ENTITY folderProps.name.accesskey "N">
+<!ENTITY folderProps.color.label "Kuvakkeen väri:">
+<!ENTITY folderProps.color.accesskey "I">
+<!ENTITY folderProps.reset.tooltip "Palauta oletusväri">
+<!ENTITY folderProps.location.label "Sijainti:">
+<!ENTITY folderProps.location.accesskey "S">
+
+<!ENTITY folderSharingTab.label "Yhteiskäyttö">
+<!ENTITY privileges.button.label "Käyttöoikeudet…">
+<!ENTITY privileges.button.accesskey "K">
+<!ENTITY permissionsDesc.label "Sinulla on seuraavat käyttöoikeudet:">
+<!ENTITY folderOtherUsers.label "Muut, joilla on pääsy tähän kansioon:">
+<!ENTITY folderType.label "Kansion tyyppi:">
+
+<!ENTITY folderQuotaTab.label "Kiintiö">
+<!ENTITY folderQuotaUsage.label "Käytössä:">
+<!ENTITY folderQuotaStatus.label "Tila:">
+
+<!ENTITY numberOfMessages.label "Viestien lukumäärä:">
+<!-- LOCALIZATION NOTE: When the number of messages can't be determined, this string is displayed as the number -->
+<!ENTITY numberUnknown.label "tuntematon">
+<!ENTITY sizeOnDisk.label "Koko levyllä:">
+<!-- LOCALIZATION NOTE: When the size can't be determined, this string is displayed as the size -->
+<!ENTITY sizeUnknown.label "tuntematon">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderWidgets.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderWidgets.properties
new file mode 100644
index 0000000000..e727d43c01
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderWidgets.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(globalInbox)
+# %S=name of the Local folders account
+globalInbox=Yhdistetyt saapuneet (%S)
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S palvelimella %2$S
+chooseFolder=Valitse kansio…
+chooseAccount=Valitse tili…
+noFolders=Ei mahdollisia kansioita
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderpane.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderpane.dtd
new file mode 100644
index 0000000000..0e45242372
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/folderpane.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY nameColumn.label "Nimi">
+<!ENTITY unreadColumn.label "Lukematta">
+<!ENTITY totalColumn.label "Yhteensä">
+<!ENTITY folderSizeColumn.label "Koko">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/gloda.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/gloda.properties
new file mode 100644
index 0000000000..ab572828e0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/gloda.properties
@@ -0,0 +1,175 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (*.facetNameLabel): These are the labels used to label the facet
+# displays in the global search facet display mechanism. They should be
+# compact descriptions of the facet type (e.g. "Folder", and don't need to
+# refer to the objects being faceted (e.g. "Message" or "Mail").
+
+# LOCALIZATION NOTE (*.includeLabel): The label to use for the included group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.included.fallbackLabel".
+
+# LOCALIZATION NOTE (*.excludeLabel): The label to use for the excluded group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.excluded.fallbackLabel".
+
+# LOCALIZATION NOTE (*.remainderLabel): The label to use for the remaining items
+# that are neither part of the included group or the excluded group in the
+# facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.remainder.fallbackLabel".
+
+# LOCALIZATION NOTE (*.mustMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.cantMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.cantMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchLabel): The label to use for the popup menu
+# to indicate that the results should no longer be restricted relative to
+# this particular facet value. If not provided, we will fall back to
+# "glodaFacetView.facets.mayMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchSomeLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have
+# _some_ value (e.g. at least one tag is set). If not provided, we will fall
+# back to "glodaFacetView.facets.mustMatchSome.fallbackLabel". #1, if present,
+# is replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchNoneLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have _no_
+# value (e.g. no tags are set). If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchAnyLabel): The label to use for the popup menu
+# to indicate that the results should not be restricted to messages which have
+# any or no value (e.g. no requirements on any tags are set). If not provided,
+# we will fall back to "glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel".
+# #1, if present, is replaced by the value of the facet (name, folder, mailing
+# list, etc.)
+
+# LOCALIZATION NOTE (gloda.message.attr.account.*): Stores the account in which
+# a message's folder is located.
+gloda.message.attr.account.facetNameLabel=Tili
+gloda.message.attr.account.includeLabel=tallennettu johonkin seuraavista:
+gloda.message.attr.account.excludeLabel=ei tallennettu kohteeseen:
+gloda.message.attr.account.remainderLabel=muut tilit:
+gloda.message.attr.account.mustMatchLabel=pitää olla tilillä #1
+gloda.message.attr.account.cantMatchLabel=ei saa olla tilillä #1
+
+# LOCALIZATION NOTE (gloda.message.attr.folder.*): Stores the message folder in
+# which the message is stored.
+gloda.message.attr.folder.facetNameLabel=kansio
+gloda.message.attr.folder.includeLabel=tallennettu johonkin seuraavista:
+gloda.message.attr.folder.excludeLabel=ei tallennettu kohteeseen:
+gloda.message.attr.folder.remainderLabel=muut kansiot:
+gloda.message.attr.folder.mustMatchLabel=pitää olla kansiossa #1
+gloda.message.attr.folder.cantMatchLabel=ei saa olla kansiossa #1
+
+# LOCALIZATION NOTE (gloda.message.attr.fromMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.fromMe.facetNameLabel=minulta
+
+# LOCALIZATION NOTE (gloda.message.attr.toMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.toMe.facetNameLabel=minulle
+
+# LOCALIZATION NOTE (gloda.message.attr.involves.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.involves.facetNameLabel=ihmiset
+gloda.message.attr.involves.includeLabel=osapuolena jokin seuraavista:
+gloda.message.attr.involves.excludeLabel=ei osapuolena:
+gloda.message.attr.involves.remainderLabel=muut osallistuja:
+gloda.message.attr.involves.mustMatchLabel=sisältää #1
+gloda.message.attr.involves.cantMatchLabel=ei sisällä #1
+
+# LOCALIZATION NOTE (gloda.message.attr.date.*): Stores the date of the message.
+# Thunderbird normally stores the date the message claims it was composed
+# according to the "Date" header. This is not the same as when the message
+# was sent or when it was eventually received by the user. In the future we
+# may change this to be one of the other dates, but not anytime soon.
+gloda.message.attr.date.facetNameLabel=päiväys
+
+# LOCALIZATION NOTE (gloda.message.attr.attachmentTypes.*): Stores the list of
+# MIME types (ex: image/png, text/plain) of real attachments (not just part of
+# the message content but explicitly named attachments) on the message.
+# Although we hope to be able to provide localized human-readable explanations
+# of the MIME type (ex: "PowerPoint document"), I don't know if that is going
+# to happen.
+gloda.message.attr.attachmentTypes.facetNameLabel=liitteitä
+
+# LOCALIZATION NOTE (gloda.message.attr.mailing-list.*): Stores the mailing
+# lists detected in the message. This will normally be the e-mail address of
+# the mailing list and only be detected in messages received from the mailing
+# list. Extensions may contribute additional detected mailing-list-like
+# things.
+gloda.message.attr.mailing-list.facetNameLabel=postituslista
+gloda.message.attr.mailing-list.noneLabel=Ei mitään
+gloda.message.attr.mailing-list.includeLabel=vastaanotettu joltakin seuraavista:
+gloda.message.attr.mailing-list.excludeLabel=ei vastaanotettu keneltäkään seuraavista:
+gloda.message.attr.mailing-list.remainderLabel=muut postituslistat:
+gloda.message.attr.mailing-list.mustMatchLabel=pitää olla tullut listalta #1
+gloda.message.attr.mailing-list.cantMatchLabel=ei saa olla tullut listalta #1
+gloda.message.attr.mailing-list.mustMatchSomeLabel=pitää olla tullut postituslistalle
+gloda.message.attr.mailing-list.mustMatchNoneLabel=ei saa olla tullut postituslistalle
+
+# LOCALIZATION NOTE (gloda.message.attr.tag.*): Stores the tags applied to the
+# message. Notably, gmail's labels are not currently exposed via IMAP and we
+# do not do anything clever with gmail, so this is independent of gmail labels
+# This may change in the future, but it's a safe bet it's not happening on
+# Thunderbird's side prior to 3.0.
+gloda.message.attr.tag.facetNameLabel=tunnukset
+gloda.message.attr.tag.noneLabel=Ei mitään
+gloda.message.attr.tag.includeLabel=merkitty miksi tahansa seuraavista:
+gloda.message.attr.tag.excludeLabel=ei merkitty:
+gloda.message.attr.tag.remainderLabel=muut tunnisteet:
+gloda.message.attr.tag.mustMatchLabel=pitää olla tunniste #1
+gloda.message.attr.tag.cantMatchLabel=ei saa olla tunnistetta #1
+gloda.message.attr.tag.mustMatchSomeLabel=pitää olla merkitty
+gloda.message.attr.tag.mustMatchNoneLabel=ei saa olla merkitty
+
+# LOCALIZATION NOTE (gloda.message.attr.star.*): Stores whether the message is
+# starred or not, as indicated by a pretty star icon. In the past, the icon
+# used to be a flag. The IMAP terminology continues to be "flagged".
+gloda.message.attr.star.facetNameLabel=tähti
+
+# LOCALIZATION NOTE (gloda.message.attr.read.*): Stores whether the user has
+# read the message or not.
+gloda.message.attr.read.facetNameLabel=luettu
+
+# LOCALIZATION NOTE (gloda.message.attr.repliedTo.*): Stores whether we believe
+# the user has ever replied to the message. We normally show a little icon in
+# the thread pane when this is the case.
+gloda.message.attr.repliedTo.facetNameLabel=vastaus lähetetty
+
+# LOCALIZATION NOTE (gloda.message.attr.forwarded.*): Stores whether we believe
+# the user has ever forwarded the message. We normally show a little icon in
+# the thread pane when this is the case.
+gloda.message.attr.forwarded.facetNameLabel=välitetty eteenpäin
+
+# LOCALIZATION NOTE (gloda.mimetype.category.*.label): Map categories of MIME
+# types defined in MimeTypeCategories.jsm to labels.
+# LOCALIZATION NOTE (gloda.mimetype.category.archives.label): Archive is
+# referring to things like zip files, tar files, tar.gz files, etc.
+gloda.mimetype.category.archives.label=paketit
+gloda.mimetype.category.documents.label=dokumentit
+gloda.mimetype.category.images.label=kuvat
+# LOCALIZATION NOTE (gloda.mimetype.category.media.label): Media is meant to
+# encompass both audio and video. This is because video and audio streams are
+# frequently stored in the same type of container and we cannot rely on the
+# sending e-mail client to have been clever enough to figure out what was
+# really in the file. So we group them together.
+gloda.mimetype.category.media.label=mediat (ääni, video)
+gloda.mimetype.category.pdf.label=PDF-tiedostot
+# LOCALIZATION NOTE (gloda.mimetype.category.other.label): Other is the category
+# for MIME types that we don't really know what it is.
+gloda.mimetype.category.other.label=muut
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaComplete.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaComplete.properties
new file mode 100644
index 0000000000..76bd64fe0f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaComplete.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (glodaComplete.messagesTagged.label): The label used
+# in the autocomplete widget to refer to a query for all messages tagged
+# by a particular tag (replacing #1).
+glodaComplete.messagesTagged.label=Viestit merkitty: #1
+
+# LOCALIZATION NOTE (glodaComplete.messagesMentioning.label): The label used
+# in the autocomplete widget to refer to a search for all messages mentioning
+# a particular word (replacing #1).
+glodaComplete.messagesMentioning.label=Viestit joissa mainitaan: #1
+
+# LOCALIZATION NOTE (glodaComplete.messagesWithMany.label): The label used
+# in the autocomplete widget to refer to a search for all messages mentioning
+# a set of words, or a phrase containing multiple words (e.g. "red pepper")
+# We use the same words in en-US, but maybe that's not always true.
+glodaComplete.messagesMentioningMany.label=Viestit joissa mainitaan: #1
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.dtd
new file mode 100644
index 0000000000..3fce69915d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (glodaFacetView.filters.label): Label at the top of the
+ faceting sidebar. Serves as a header both for the checkboxes under it as
+ well for labeled facets with multiple options. -->
+<!ENTITY glodaFacetView.filters.label "Suodattimet">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.loading.label): Label that appears when
+ the search results take a long time to appear. -->
+<!ENTITY glodaFacetView.loading.label "Etsitään&#8230;">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.empty.label): Label that appears when
+ there are no results that match the search query. -->
+<!ENTITY glodaFacetView.empty.label "Ei löytynyt hakua vastaavia viestejä">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.pageMore.label): Label at the bottom
+ of the results list to show more hits. -->
+<!ENTITY glodaFacetView.pageMore.label "Lisää &#187;">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.label2): The
+ label for the button/link that causes us to display all of the emails in
+ the active set in a new thread pane display tab. -->
+<!ENTITY glodaFacetView.openEmailAsList.label "Näytä tulokset luettelona">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.tooltip):
+ The tooltip to display when hovering over the openEmailAsList label. -->
+<!ENTITY glodaFacetView.openEmailAsList.tooltip "Näytä kaikki aktiivisessa ryhmässä olevat viestit uudessa välilehdessä">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.properties
new file mode 100644
index 0000000000..8011dbbefb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/glodaFacetView.properties
@@ -0,0 +1,171 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (glodaFacetView.tab.query.label):
+# The tab title to display for tabs that are based on a gloda (global database)
+# query or collection rather than a user search. At some point we might try
+# and explain what the query/collection is in automatic fashion, but not today.
+glodaFacetView.tab.query.label=Etsi
+
+# LOCALIZATION NOTE (glodaFacetView.tab.search.label):
+# The tab title to display for tabs with a new gloda (global database)
+# user search (rather than a query or collection) without a search string.
+# After the search has been started, we just display the search string entered
+# by the user.
+glodaFacetView.tab.search.label=Etsi
+
+# LOCALIZATION NOTE(glodaFacetView.search.label2):
+# The heading for the search page.
+# A short description of user's search query will be appended.
+glodaFacetView.search.label2=Tulokset haulle:
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.fulltext.label):
+# The label to display to describe when our base query was a fulltext search
+# across messages. The value is displayed following the label.
+glodaFacetView.constraints.query.fulltext.label=Etsitään termiä #1
+glodaFacetView.constraints.query.fulltext.andJoinWord=ja
+glodaFacetView.constraints.query.fulltext.orJoinWord=tai
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.initial):
+# The label to display to describe when our base query is not a full-text
+# search. Additional labels are appended describing each constraint.
+glodaFacetView.constraints.query.initial=Etsitään viestejä
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.involves.label):
+# The label to display to describe when our base query was on messages
+# involving a given contact from the address book. The value is displayed
+# where the #1 is.
+glodaFacetView.constraints.query.involves.label=sisältäen #1
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.contact.label):
+# The label to display to describe when our base query was on messages
+# tagged with a specific tag. The tag is displayed following the label.
+glodaFacetView.constraints.query.tagged.label=luokiteltu:
+
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mode.top.listAllLabel): The label to
+# use when we are only displaying the top entries for a facet. When the
+# label is clicked on, it results in us displaying all of the values for that
+# facet. The value "#1" (if present) is replaced with the total number of
+# values that will be displayed (rather than the number currently hidden).
+# This string supports pluralization. See
+# https://developer.mozilla.org/en/Localization_and_Plurals for details on
+# how this stuff works.
+glodaFacetView.facets.mode.top.listAllLabel=Listaa kaikki #1;Listaa kaikki #1
+
+# LOCALIZATION NOTE (glodaFacetView.facets.included.fallbackLabel): The label to
+# use for groups in a facet that have been explicitly included by the user if
+# there is no explicit attribute "includeLabel" defined. (The explicit label
+# would be named "gloda.message.attr.ATTRIBUTE.includeLabel".)
+glodaFacetView.facets.included.fallbackLabel=sisältäen:
+# LOCALIZATION NOTE (glodaFacetView.facets.excluded.fallbackLabel): The label to
+# use for groups in a facet that have been explicitly excluded by the user if
+# there is no explicit attribute "excludeLabel" defined. (The explicit label
+# would be named "gloda.message.attr.ATTRIBUTE.excludeLabel".)
+glodaFacetView.facets.excluded.fallbackLabel=pois lukien:
+# LOCALIZATION NOTE (glodaFacetView.facets.remainder.fallbackLabel): The label
+# to use for groups in a facet that are neither part of the included group or
+# the excluded group if there is no explicit attribute "remainderLabel"
+# defined. (The explicit label would be named
+# "gloda.message.attr.ATTRIBUTE.remainderLabel".)
+glodaFacetView.facets.remainder.fallbackLabel=muut:
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mustMatchLabel.fallbackLabel): The label
+# to use to restrict a facet by a particular value if there is no explicit
+# attribute "mustMatchLabel" defined. (The explicit label would be named
+# "gloda.message.attr.ATTRIBUTE.mustMatchLabel".)
+glodaFacetView.facets.mustMatchLabel.fallbackLabel=täytyy täsmätä #1
+glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel=ei saa olla arvoa
+
+# LOCALIZATION NOTE (glodaFacetView.facets.cantMatchLabel.fallbackLabel): The label
+# to use to restrict a facet by the absence of a particular value if there is
+# no explicit attribute "cantMatchLabel" defined. (The explicit label would be
+# named "gloda.message.attr.ATTRIBUTE.cantMatchLabel".)
+glodaFacetView.facets.cantMatchLabel.fallbackLabel=ei saa täsmätä #1
+glodaFacetView.facets.mustMatchSomeLabel.fallbackLabel=täytyy olla arvo
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mayMatchLabel.fallbackLabel): The label
+# to use to undo the restriction of a facet by a particular value if there is
+# no explicit attribute "mayMatchLabel" defined. (The explicit label would be
+# named "gloda.message.attr.ATTRIBUTE.mayMatchLabel".)
+glodaFacetView.facets.mayMatchLabel.fallbackLabel=poista rajoite
+glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel=poista rajoite
+
+# LOCALIZATION NOTE (glodaFacetView.facets.noneLabel): The text to display when
+# a facet needs to indicate that an attribute omitted a value or was otherwise
+# empty.
+glodaFacetView.facets.noneLabel=Ei mikään
+
+# LOCALIZATION NOTE (glodaFacetView.facets.filter.attachmentTypes.allLabel):
+# The label to use when all types of attachments are being displayed.
+glodaFacetView.facets.filter.attachmentTypes.allLabel=Mikä tahansa
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.fromLabel): Used in the
+# faceted search message display to indicate the author of a message.
+# An example usage is "from: Bob".
+glodaFacetView.result.message.fromLabel=lähettäjä:
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.toLabel): Used in the
+# faceted search message display to indicate the recipients of a message.
+# An example usage is "to: Bob, Chuck, Don".
+glodaFacetView.result.message.toLabel=vastaanottaja:
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.noSubject): Used in the
+# faceted search message display to act as a click target for messages with
+# no subject.
+glodaFacetView.result.message.noSubject=(ei aihetta)
+
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel):
+# This label is displayed above the list of result messages; it tells the user
+# how many messages we are displaying in the list out of the total number of
+# messages in the active set (the set of messages remaining after the
+# application of the facet constraints.)
+# The goal of the various sub-parts here is to make a label along the lines of
+# "M of N". Because there are two numbers, this is split into two parts,
+# 'NMessages' for what in English is just the first number and 'ofN' for the
+# "of N" part. We then use 'grouping' to decide how to combine the two. This
+# was suggested by Rimas Kudelis.
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.NMessages):
+# The first part of the countLabel string (although you can change the order
+# in 'grouping'). This is pluralized using the mechanism described at
+# https://developer.mozilla.org/en/Localization_and_Plurals. We replace
+# "#1" with the number of messages being shown in the result list.
+glodaFacetView.results.header.countLabel.NMessages=#1;#1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.ofN):
+# The second part of the countLabel string (although you can change the order
+# in 'grouping'). This is pluralized using the mechanism described at
+# https://developer.mozilla.org/en/Localization_and_Plurals. We replace
+# "#1" with the total number of messagse in the active set.
+glodaFacetView.results.header.countLabel.ofN=/ #1;/ #1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.grouping):
+# Combines the pluralized
+# "glodaFacetView.results.header.countLabel.NMessages" string (as #1) with
+# the pluralized "glodaFacetView.results.header.countLabel.ofN" (as #2)
+# to make a single label.
+glodaFacetView.results.header.countLabel.grouping=#1 #2
+
+glodaFacetView.results.message.timeline.label=Piilota/näytä aikajana
+# LOCALIZATION NOTE(glodaFacetView.results.message.sort.relevance2):
+# a clickable label causing the sort to be done by most relevant messages first.
+glodaFacetView.results.message.sort.relevance2=Lajittele osuvuuden mukaan
+# LOCALIZATION NOTE(glodaFacetView.results.message.sort.date2):
+# a clickable label causing the sort to be done by most recent messages first.
+glodaFacetView.results.message.sort.date2=Järjestä päiväyksen mukaan
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.recipientSeparator): This is
+# the string in between the names of recipients (see
+# glodaFacetView.results.message.andOthers for more information). The \u0020
+# character is a Unicode space character, which is needed as otherwise the
+# trailing whitespace is trimmed before it gets to the code.
+glodaFacetView.results.message.recipientSeparator=,\u0020
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.andOthers):
+# When a message has too many recipients, we only show the first few and then
+# display this label to express how many are not displayed. So if a message
+# has 5 recipients, we might only show the first 3, and then use this label
+# to indicate that there are 2 that are not displayed. This string can be
+# pluralized; see https://developer.mozilla.org/en/Localization_and_Plurals
+# for details on how to do that. Note that in English, we use the "serial
+# comma", but other languages may not need a leading separator there.
+glodaFacetView.results.message.andOthers=ja #1 muu; ja #1 muuta
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccountWizard.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccountWizard.dtd
new file mode 100644
index 0000000000..2c6beecd42
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccountWizard.dtd
@@ -0,0 +1,32 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Pikaviestitilin ohjattu asennus">
+
+<!ENTITY accountProtocolTitle.label "Pikaviestipalvelu">
+<!ENTITY accountProtocolInfo.label "Valitse pikaviestipalveluntarjoaja.">
+<!ENTITY accountProtocolField.label "Palvelu:">
+<!ENTITY accountProtocolGetMore.label "Hae lisää…">
+
+<!ENTITY accountUsernameTitle.label "Käyttäjätunnus">
+<!ENTITY accountUsernameDuplicate.label "Tämä tili on jo asetettu.">
+
+<!ENTITY accountPasswordTitle.label "Salasana">
+<!ENTITY accountPasswordInfo.label "Kirjoita salasanasi alla olevaan kenttään.">
+<!ENTITY accountPasswordField.label "Salasana:">
+<!ENTITY accountPasswordManager.label "Salasana tallennetaan salasanojen hallintaan. Jos haluat, että salasana kysytään aina yhdistettäessä, jätä kenttä tyhjäksi.">
+
+<!ENTITY accountAdvancedTitle.label "Lisäasetukset">
+<!ENTITY accountAdvancedInfo.label "Voit ohittaa nämä asetukset, jos haluat.">
+<!ENTITY accountAdvanced.newMailNotification.label "Ilmoita uuden sähköpostin yhteydessä">
+<!ENTITY accountAliasGroupbox.caption "Paikallinen alias">
+<!ENTITY accountAliasField.label "Alias:">
+<!ENTITY accountAliasInfo.label "Tämä näkyy omissa keskusteluikkunoissasi keskustellessasi, muut eivät näe tätä.">
+<!ENTITY accountProxySettings.caption "Välityspalvelinasetukset">
+<!ENTITY accountProxySettings.change.label "Muokkaa…">
+<!ENTITY accountProxySettings.change.accessKey "M">
+
+<!ENTITY accountSummaryTitle.label "Yhteenveto">
+<!ENTITY accountSummaryInfo.label "Yhteenveto annetuista tiedoista on alla. Tarkista tiedot ennen kuin luot tilin.">
+<!ENTITY accountSummary.connectNow.label "Yhdistä tili.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccounts.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccounts.properties
new file mode 100644
index 0000000000..fa826997b6
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imAccounts.properties
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (protoOptions):
+# %S is replaced by the name of a protocol
+protoOptions=%S-asetukset
+accountUsername=Käyttäjätunnus:
+# LOCALIZATION NOTE (accountColon):
+# This string is used to append a colon after the label of each
+# option. It's localizable so that the typography can be adapted.
+accountColon=%S:
+# LOCALIZATION NOTE (accountUsernameInfo):
+# %S is replaced by the name of a protocol
+accountUsernameInfo=Kirjoita käyttäjätunnus tilille %S.
+# LOCALIZATION NOTE (accountUsernameInfoWithDescription):
+# %1$S is a hint for the expected format of the username
+# %2$S is the name of a protocol
+accountUsernameInfoWithDescription=Kirjoita käyttäjätunnus (%1$S) %2$S-tilille.
+
+# LOCALIZATION NOTE (account.connection.error):
+# %S is the error message.
+account.connection.error=Virhe: %S
+# LOCALIZATION NOTE (account.connection.errorUnknownPrpl)
+# %S is the id (not very user friendly; hence the quotes) of the missing plugin.
+account.connection.errorUnknownPrpl=Ei liitännäistä yhteyskäytännölle "%S".
+account.connection.errorEnteringPasswordRequired=Yhteyden muodostaminen tähän tiliin vaatii salasanan.
+account.connection.errorCrashedAccount=Tiliin yhdistäminen epäonnistui ohjelmavirheeseen.
+# LOCALIZATION NOTE (account.connection.progress):
+# %S is a message indicating progress of the connection process
+account.connection.progress=Muodostetaan yhteyttä: %S…
+account.connecting=Muodostetaan yhteyttä…
+account.connectedForSeconds=Yhdistetty muutaman sekunnin ajan.
+# LOCALIZATION NOTE (account.connectedFor{Double,Single},
+# account.reconnectIn{Double,Single}):
+# Each pair of %S is a number followed by a unit. The units are
+# already localized in a downloads.properties file of the toolkit.
+account.connectedForDouble=Yhdistetty %1$S %2$S ja %3$S %4$S.
+account.connectedForSingle=Yhdistetty noin %1$S %2$S.
+account.reconnectInDouble=Palautetaan yhteys %1$S %2$S ja %3$S %4$S.
+account.reconnectInSingle=Palautetaan yhteys %1$S %2$S.
+
+requestAuthorizeTitle=Todennuspyyntö
+# LOCALIZATION NOTE (requestAuthorizeAllow, requestAuthorizeDeny):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+requestAuthorizeAllow=&Salli
+requestAuthorizeDeny=&Estä
+# LOCALIZATION NOTE (requestAuthorizeText):
+# %S is a contact username.
+requestAuthorizeText=%S lisäsi sinut tuttavalistaansa. Sallitko hänen nähdä sinut?
+
+accountsManager.notification.button.accessKey=M
+accountsManager.notification.button.label=Muodosta yhteys nyt
+accountsManager.notification.userDisabled.label=Olet ottanut automaattiset yhteydet pois käytöstä
+accountsManager.notification.safeMode.label=Automaattisia yhteysasetuksia ei huomioida koska ohjelma on vikasietotilassa.
+accountsManager.notification.startOffline.label=Automaattisia yhteysasetuksia ei huomioida koska ohjelma käynnistettiin yhteydettömässä tilassa.
+accountsManager.notification.crash.label=Viimeisin yritys keskeytyi odottamattomasti muodostettaessa yhteyttä. Automaattiset yhteydet on otettu pois päältä, jotta voit muokata asetuksiasi.
+# LOCALIZATION NOTE (accountsManager.notification.singleCrash.label): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of accounts that are suspected to have caused a crash.
+accountsManager.notification.singleCrash.label=Aikaisempi yritys keskeytyi odottamattomasti muodostettaessa yhteyttä uuteen tai muokattuun tiliin. Yhteyttä ei ole yritetty muodostaa uudelleen, jotta voit muokata tilin asetuksia.;Aikaisempi yritys keskeytyi odottamattomasti muodostettaessa yhteyttä #1 uuteen tai muokattuun tiliin. Yhteyksiä ei ole yritetty muodostaa uudelleen, jotta voit muokata tilien asetuksia.
+accountsManager.notification.other.label=Automaattiset yhteydet on otettu pois päältä.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imapMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imapMsgs.properties
new file mode 100644
index 0000000000..60cbd5d982
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/imapMsgs.properties
@@ -0,0 +1,268 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the imap code to display progress/status/error messages
+#
+
+#LOCALIZATION NOTE(imapAlertDialogTile): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+imapAlertDialogTitle=Hälytys tilille %S
+
+# Status - opening folder
+imapStatusSelectingMailbox=Avataan kansiota %S…
+
+# Status - create folder
+imapStatusCreatingMailbox=Luodaan kansiota…
+
+# Status - deleting a folder
+# LOCALIZATION NOTE (imapStatusDeletingMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being deleted.
+imapStatusDeletingMailbox=Poistetaan kansiota %S…
+
+# Status - renaming mailbox
+# LOCALIZATION NOTE (imapStatusRenamingMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being renamed.
+imapStatusRenamingMailbox=Nimetään kansiota %S uudelleen…
+
+# Status - looking for mailboxes
+imapStatusLookingForMailbox=Etsitään kansioita…
+
+# Status - subscribing to mailbox
+# LOCALIZATION NOTE (imapStatusSubscribeToMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being subscribed to.
+imapStatusSubscribeToMailbox=Tilataan kansiota %S…
+
+# Status - unsubscribing from mailbox
+# LOCALIZATION NOTE (imapStatusUnsubscribeMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being unsubscribed from.
+imapStatusUnsubscribeMailbox=Peruutetaan kansion %S tilausta…
+
+# Status - searching imap folder
+imapStatusSearchMailbox=Etsitään kansiota…
+
+# Status - closing a folder
+imapStatusCloseMailbox=Suljetaan kansiota…
+
+# Status - compacting a folder
+imapStatusExpungingMailbox=Tiivistetään kansiota…
+
+# Status - logging out
+imapStatusLoggingOut=Kirjaudutaan ulos…
+
+# Status - checking server capabilities
+imapStatusCheckCompat=Tarkistetaan postipalvelimen ominaisuuksia…
+
+# Status - logging on
+imapStatusSendingLogin=Lähetetään sisäänkirjautumistietoja…
+
+# Status - auth logon
+imapStatusSendingAuthLogin=Lähetetään sisäänkirjautumistietoja…
+
+imapDownloadingMessage=Ladataan viestiä…
+
+# LOCALIZATION NOTE (imapGettingACLForFolder): Do not translate the word "ACL" below.
+imapGettingACLForFolder=Noudetaan kansion ACL-tietoja…
+
+imapGettingServerInfo=Noudetaan palvelimen kokoonpanotietoja…
+
+imapGettingMailboxInfo=Noudetaan postilaatikon kokoonpanotietoja…
+
+imapEmptyMimePart=Tämä osa viestin runkoa ladataan pyydettäessä.
+
+# LOCALIZATION NOTE (imapReceivingMessageHeaders3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the header being downloaded should appear.
+# Place the word %2$S in your translation where the total number of headers to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Joe's Account: Downloading message header 100 of 1000 in Drafts…"
+imapReceivingMessageHeaders3=Ladataan viestiotsikkoa %1$S/%2$S kansioon %3$S…
+
+# LOCALIZATION NOTE (imapReceivingMessageFlags3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the flag being downloaded should appear.
+# Place the word %2$S in your translation where the total number of flags to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Jim's Account: Downloading message flag 100 of 1000 in INBOX…"
+imapReceivingMessageFlags3=Ladataan viestilippua %1$S/%2$S kansioon %3$S…
+
+imapDeletingMessages=Poistetaan viestejä…
+
+imapDeletingMessage=Poistetaan viestiä…
+
+# LOCALIZATION NOTE (imapMovingMessages): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapMovingMessages=Siirretään viestejä kansioon %S…
+
+# LOCALIZATION NOTE (imapMovingMessage): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapMovingMessage=Siirretään viestiä kansioon %S…
+
+# LOCALIZATION NOTE (imapCopyingMessages): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapCopyingMessages=Kopioidaan viestejä kansioon %S…
+
+# LOCALIZATION NOTE (imapCopyingMessage): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapCopyingMessage=Kopioidaan viestiä kansioon %S…
+
+# LOCALIZATION NOTE (imapFolderReceivingMessageOf3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Juan's Account: Downloading message 100 of 1000 in Sent…"
+imapFolderReceivingMessageOf3=Ladataan viestiä %1$S/%2$S kansioon %3$S…
+
+# LOCALIZATION NOTE (imapDiscoveringMailbox): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapDiscoveringMailbox=Löydettiin kansio: %S
+
+# LOCALIZATION NOTE (imapEnterServerPasswordPrompt): Do not translate the words %1$S and %2$S below.
+# Place the word %1$S in your translation where the username should appear.
+# Place the word %2$S in your translation where the servername should appear.
+imapEnterServerPasswordPrompt=Kirjoita salasana tunnukselle %1$S palvelimella %2$S:
+
+# LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
+imapServerNotImap4=Sähköpostipalvelin %S ei ole IMAP4-postipalvelin.
+
+# This is intentionally left blank.
+imapDone=
+
+# LOCALIZATION NOTE (imapEnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+imapEnterPasswordPromptTitleWithUsername=Kirjoita käyttäjän %1$S salasana
+
+imapUnknownHostError=Yhteyden muodostaminen palvelimeen %S epäonnistui.
+imapOAuth2Error=Kirjautumisvirhe yhdistettäessä palvelimeen %S.
+
+imapConnectionRefusedError=Postipalvelimeen %S ei saatu yhteyttä. Yhteys estyi.
+
+imapNetTimeoutError=Yhteys palvelimeen %S aikakatkaistiin.
+
+imapTlsError=Tapahtui ohittamaton TLS-virhe. Kättelyvirhe tai todennäköisesti palvelimen %S käyttämä TLS-versio tai varmenne ei ole yhteensopiva.
+
+# Status - no messages to download
+imapNoNewMessages=Palvelimella ei ole uusia viestejä.
+
+imapDefaultAccountName=%S:n posti
+
+imapSpecialChar2=Merkki %S on varattu tällä IMAP-palvelimella. Valitse toinen nimi.
+
+imapPersonalSharedFolderTypeName=Oma kansio
+
+imapPublicFolderTypeName=Yleinen kansio
+
+imapOtherUsersFolderTypeName=Toisen käyttäjän kansio
+
+imapPersonalFolderTypeDescription=Tämä on henkilökohtainen postikansio, joka ei ole yhteiskäytössä.
+
+imapPersonalSharedFolderTypeDescription=Tämä on henkilökohtainen postikansio, joka on yhteiskäytössä.
+
+imapPublicFolderTypeDescription=Tämä on yleinen kansio.
+
+imapOtherUsersFolderTypeDescription=Tämä postikansio on yhteiskäytössä käyttäjän "%S" kanssa.
+
+imapAclFullRights=Täydet oikeudet
+
+imapAclLookupRight=Hae
+
+imapAclReadRight=Lue
+
+imapAclSeenRight=Aseta luettu/lukematta-tila
+
+imapAclWriteRight=Kirjoita
+
+imapAclInsertRight=Lisää (Kopioi)
+
+imapAclPostRight=Lähetä
+
+imapAclCreateRight=Luo alikansio
+
+imapAclDeleteRight=Poista viestit
+
+imapAclAdministerRight=Kansion hallinta
+
+imapServerDoesntSupportAcl=Tämä palvelin ei tue kansioiden yhteiskäyttöä.
+
+imapAclExpungeRight=Poista lopullisesti
+
+imapServerDisconnected= Yhteys palvelimeen %S on katkennut. Palvelin saattaa olla poissa käytöstä tai kyseessä saattaa olla verkkovirhe.
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the imap folder.
+imapSubscribePrompt=Tilataanko kansio %1$S?
+
+imapServerDroppedConnection=IMAP-palvelimeen ei saatu yhteyttä. Olet saattanut ylittää yhteyksien maksimimäärän \
+palvelimelle. Tällaisessa tapauksessa vähennä välimuistissa olevien yhteyksien määrää \
+IMAP-palvelimen Lisäasetukset-ikkunasta.
+
+# This will occur when a folder that has never been imap selected or opened
+# (left-clicked) is first right-clicked to access quota properties.
+imapQuotaStatusFolderNotOpen=Kiintiötietoa ei ole saatavilla, koska kansio ei ole auki.
+
+# The imap capability response reports that QUOTA is not supported.
+imapQuotaStatusNotSupported=Tämä palvelin ei tue kiintiöitä.
+
+# The getqutaroot command succeeded but reported no quota information.
+imapQuotaStatusNoQuota2=Tällä kansiolla ei ole kiintiötietoja.
+
+# Folder properties were requested by the user (right-click) before the getquotaroot
+# command was sent.
+imapQuotaStatusInProgress=Kiintiötietoja ei ole vielä saatavilla.
+
+# Out of memory
+imapOutOfMemory=Sovellukselle ei ole tarpeeksi muistia.
+
+# LOCALIZATION NOTE (imapCopyingMessageOf2): Do not translate the word "%S" below.
+# Place the word %3$S in your translation where the name of the destination folder should appear.
+# Place the word %1$S where the currently copying message should appear.
+# Place the word %2$S where the total number of messages should appear.
+imapCopyingMessageOf2=Kopioidaan viestiä %1$S / %2$S kansioon %3$S…
+
+# LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapMoveFolderToTrash=Poistetaanko kansio "%S"?
+
+# LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapDeleteNoTrash=Kansion poistamista ei voi kumota ja kaikki siihen tallennetut viestit ja alikansiot poistetaan. Poistetaanko kansio '%S' silti?
+
+imapDeleteFolderDialogTitle=Poista kansio
+
+imapDeleteFolderButtonLabel=&Poista kansio
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainSSL=IMAP-palvelin %S ei näytä tukevan salattuja salasanoja. Jos juuri loit tilin, yritä vaihtaa todennustavaksi "Normaali salasana" palvelinasetuksista: Tilien asetukset - Palvelinasetukset. Jos yhteys toimi ennen, mutta lakkasi yhtäkkiä toimimasta, ota yhteys sähköpostitilisi hallinnoijaan tai palveluntarjoajaan.
+
+# LOCALIZATION NOTE (imapAuthChangePlainToEncrypt): %S is the server hostname
+imapAuthChangePlainToEncrypt=IMAP-palvelin %S ei hyväksy salaamattomia salasanoja. Yritä vaihtaa todennustavaksi "Salattu salasana" palvelinasetuksista: Tilien asetukset - Palvelinasetukset.
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
+imapAuthChangeEncryptToPlainNoSSL=IMAP-palvelin %S ei näytä tukevan salattuja salasanoja. Jos juuri loit tilin, yritä vaihtaa todennustavaksi "Salasana, turvaton lähetys" palvelinasetuksista: Tilien asetukset - Palvelinasetukset. Jos yhteys toimi ennen, mutta lakkasi yhtäkkiä toimimasta, salasanaasi voidaan yrittää varastaa.
+
+# LOCALIZATION NOTE (imapAuthMechNotSupported): %S is the server hostname
+imapAuthMechNotSupported=IMAP-palvelimen %S ei tue valittua todennustapaa. Muuta todennustapaa palvelinasetuksista: Tilien asetukset - Palvelinasetukset.
+
+# LOCALIZATION NOTE (imapAuthGssapiFailed): %S is the server hostname
+imapAuthGssapiFailed=IMAP-palvelin %S ei hyväksynyt Kerberos/GSSAPI-lippuasi. Tarkista, että olet kirjautunut Kerberos/GSSAPI-verkkoon.
+
+# LOCALIZATION NOTE (imapServerCommandFailed):
+# Place the word %1$S in your translation where the name of the account name should appear.
+# Place the word %2$S in your translation where the server response should appear.
+imapServerCommandFailed=Komennon suorittaminen ei onnistunut. Tilin %1$S postipalvelin vastasi: %2$S
+
+# LOCALIZATION NOTE (imapFolderCommandFailed): Do not translate the word %S below.
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the name of the folder should appear.
+# Place the word %3$S in your translation where the server response should appear.
+imapFolderCommandFailed=Operaatio kansiolle "%2$S" ei onnistunut. Tilin %1$S postipalvelin vastasi: %3$S
+
+# LOCALIZATION NOTE (imapServerAlert):
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the alert from the server should appear.
+imapServerAlert=Hälytys tilille %1$S: %2$S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importDialog.dtd
new file mode 100644
index 0000000000..5537fc5f1c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importDialog.dtd
@@ -0,0 +1,48 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--
+LOCALIZATION NOTE : 'Communicator 4.x' is the used for previous versions of
+Netscape Communicator, Please translate using the brandname in respective
+languages for Netscape Communicator 4 releases.
+LOCALIZATION NOTE : Do not translate any of the occurrences of the word
+"&brandShortName;" below.
+-->
+
+<!ENTITY importDialog.windowTitle "Tuo">
+<!ENTITY importAll.label "Tuo kaikki">
+<!ENTITY importAll.accesskey "k">
+<!ENTITY importMail.label "Sähköposti">
+<!ENTITY importMail.accesskey "S">
+<!ENTITY importFeeds.label "Tilatut syötteet">
+<!ENTITY importFeeds.accesskey "T">
+<!ENTITY importAddressbook.label "Osoitekirjat">
+<!ENTITY importAddressbook.accesskey "O">
+<!ENTITY importSettings.label "Asetukset">
+<!ENTITY importSettings.accesskey "A">
+<!ENTITY importFilters.label "Viestisuodattimet">
+<!ENTITY importFilters.accesskey "V">
+
+<!ENTITY importTitle.label "&brandShortName;in ohjattu tietojen tuonti">
+<!ENTITY importShortDesc.label "Tuo sähköposti, osoitekirjat, asetukset ja viestisuodattimet muista ohjelmista">
+
+<!ENTITY importDescription1.label "Tämä ohjattu toiminto tuo &brandShortName;iin sähköpostiviestit, osoitekirjan, viestisuodattimet tai asetukset muista sähköpostiohjelmista ja yleisistä osoitekirjan muodoista.">
+<!ENTITY importDescription2.label "Tuonnin valmistuttua, tuodut kohteet ovat käytettävissä &brandShortName;issä tai Osoitekirjassa.">
+
+<!ENTITY selectDescription.label "Valitse ohjelma, josta haluat tuoda tietoja:">
+<!ENTITY selectDescriptionB.label "Valitse olemassa oleva tili tai luo uusi tili:">
+<!ENTITY selectDescription.accesskey "V">
+<!ENTITY acctName.label "Nimi:">
+<!ENTITY acctName.accesskey "N">
+<!ENTITY noModulesFound.label "Yhtään ohjelmaa tai tiedostoa, josta olisi voitu tuoda tietoja, ei löytynyt.">
+
+<!ENTITY back.label "&lt; Edellinen">
+<!ENTITY forward.label "Seuraava &gt;">
+<!ENTITY finish.label "Valmis">
+<!ENTITY cancel.label "Peruuta">
+
+<!ENTITY select.label "tai valitse tuotavan aineiston tyyppi:">
+
+<!ENTITY title.label "Otsikko">
+<!ENTITY processing.label "Tuodaan…">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importMsgs.properties
new file mode 100644
index 0000000000..9264659557
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/importMsgs.properties
@@ -0,0 +1,304 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the import code to display status/error
+# and informational messages
+
+# Success message when no address books are found to import
+## @name IMPORT_NO_ADDRBOOKS
+## @loc None
+2000=Yhtään tuotavaa osoitekirjaa ei löytynyt.
+
+# Error: Address book import not initialized
+## @name IMPORT_ERROR_AB_NOTINITIALIZED
+## @loc None
+2001=Osoitekirjoja ei voida tuoda: alustusvirhe.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_AB_NOTHREAD
+## @loc None
+2002=Osoitekirjoja ei voida tuoda: tuontisäiettä ei onnistuttu luomaan.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_GETABOOK
+## @loc None
+# LOCALIZATION NOTE (Error 2003): Do not translate the word "%S" below.
+2003=Virhe tuotaessa kohdetta %S: ei voi luoda osoitekirjaa.
+
+# Success message when no mailboxes are found to import
+## @name IMPORT_NO_MAILBOXES
+## @loc None
+2004=Tuotavia postilaatikoita ei löytynyt
+
+# Error: Mailbox import not initialized
+## @name IMPORT_ERROR_MB_NOTINITIALIZED
+## @loc None
+2005=Postilaatikoita ei voida tuoda: alustusvirhe.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_MB_NOTHREAD
+## @loc None
+2006=Postilaatikoita ei voida tuoda: tuontisäiettä ei onnistuttu luomaan.
+
+# Error: Unable to create the proxy object for importing mailboxes
+## @name IMPORT_ERROR_MB_NOPROXY
+## @loc None
+2007=Postilaatikoiden tuonti ei onnistu, ei voi luoda välityspalvelinobjektia kohdepostilaatikoille
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_FINDCHILD
+## @loc None
+# LOCALIZATION NOTE (Error 2008): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2008=Virhe kohdepostilaatikoita luettaessa, postilaatikkoa %S ei löydy
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_CREATE
+## @loc None
+# LOCALIZATION NOTE (Error 2009): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2009=Virhe tuotaessa postilaatikkoa %S, kohdepostilaatikkoa ei voida luoda
+
+# Error: No destination folder to import mailboxes
+## @name IMPORT_ERROR_MB_NODESTFOLDER
+## @loc None
+2010=Kansion luominen tuotavalle postille ei onnistu...
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_START
+## @loc None
+2100=Etunimi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2101=Sukunimi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2102=Näyttönimi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2103=Lempinimi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2104=Ensisijainen sähköposti
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2105=Toissijainen sähköposti
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2106=Työpuhelin
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2107=Kotipuhelin
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2108=Faksin numero
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2109=Hakulaitteen numero
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2110=Matkapuhelinnumero
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2111=Kotiosoite
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2112=Kotiosoite 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2113=Kotikaupunki
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2114=Kodin lääni
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2115=Kodin postinumero
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2116=Kotimaa
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2117=Työosoite
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2118=Työosoite 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2119=Työpaikan kaupunki
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2120=Työpaikan lääni
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2121=Työpaikan postinumero
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2122=Työpaikan maa
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2123=Ammattinimi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2124=Osasto
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2125=Järjestö
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2126=Verkkosivu 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2127=Verkkosivu 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2128=Syntymävuosi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2129=Syntymäkuukausi
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2130=Syntymäpäivä
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2131=Oma 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2132=Oma 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2133=Oma 3
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2134=Oma 4
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2135=Muistiinpanot
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_END
+## @loc None
+2136=Näyttönimi
+
+#Error strings
+ImportAlreadyInProgress=Tuonti on parhaillaan käynnissä. Yritä uudelleen, kun tuonti on valmis.
+
+#Error strings for settings import
+ImportSettingsBadModule=Asetukset-moduulin lataaminen ei onnistu
+ImportSettingsNotFound=Asetuksia ei löydy. Tarkista, että sovellus on asennettu tälle koneelle.
+ImportSettingsFailed=Tuotaessa asetuksia tapahtui virhe. Jotkin, tai kaikki, asetuksista saattoivat jäädä tuomatta.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportSettingsSuccess=Asetukset tuotiin lähteestä %S.
+
+#Error string for mail import
+ImportMailBadModule=Postin tuonti -moduulin lataaminen ei onnistu
+ImportMailNotFound=Tuotavaa postia ei löydy. Tarkista, että sovellus on asennettu tälle koneelle.
+ImportEmptyAddressBook=Ei voi tuoda tyhjää osoitekirjaa %S.
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailFailed=Tapahtui virhe tuotaessa postia ohjelmasta %S
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailSuccess=Posti tuotiin onnistuneesti ohjelmasta %S
+
+# Error string for address import
+ImportAddressBadModule=Osoitekirjan tuonti -moduulin lataaminen ei onnistu.
+ImportAddressNotFound=Yhtään tuotavaa osoitekirjaa ei löydy. Tarkista, että valittu sovellus tai muoto on asennettu tälle koneelle.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressFailed=Tuotaessa osoitekirjaa lähteestä %S tapahtui virhe
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressSuccess=Osoitteiden tuonti lähteestä %S onnistui
+
+# Error string for filters import
+ImportFiltersBadModule=Viestisuodattimien tuontimoduuliin lataus epäonnistui.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersFailed=Tuotaessa viestisuodattimia ohjelmasta %S tapahtui virhe.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersSuccess=Viestisuodattimet tuotiin ohjelmasta %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersPartial=Osa viestisuodattimista tuotiin ohjelmasta %S. Varoitusilmoitukset:
+
+#Progress strings
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MailProgressMeterText=Muunnetaan postilaatikoita %S:sta
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+AddrProgressMeterText=Muunnetaan osoitekirjoja lähteestä %S
+
+#Import file dialog strings
+ImportSelectSettings=Valitse asetukset-tiedosto
+ImportSelectMailDir=Valitse postitiedosto
+ImportSelectAddrDir=Valitse osoitekirjan hakemisto
+ImportSelectAddrFile=Valitse osoitekirjatiedosto
+
+# Folder Names for imported Mail
+DefaultFolderName=Tuotu posti
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportModuleFolderName=%S Import
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/joinChat.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/joinChat.dtd
new file mode 100644
index 0000000000..81bf5f953b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/joinChat.dtd
@@ -0,0 +1,10 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY joinChatWindow.title "Liity keskusteluun">
+<!ENTITY name.label "Huone">
+<!ENTITY optional.label "(valinnainen)">
+<!ENTITY account.label "Tili">
+<!ENTITY autojoin.label "Liity keskusteluhuoneeseen automaattisesti">
+<!ENTITY autojoin.accesskey "L">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/junkLog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/junkLog.dtd
new file mode 100644
index 0000000000..25fa86113d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/junkLog.dtd
@@ -0,0 +1,10 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY adaptiveJunkLog.title "Roskapostiloki">
+<!ENTITY adaptiveJunkLogInfo.label "Loki roskapostin suodatuksen toiminnasta.">
+<!ENTITY clearLog.label "Tyhjennä loki">
+<!ENTITY clearLog.accesskey "T">
+<!ENTITY closeLog.label "Sulje">
+<!ENTITY closeLog.accesskey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/localMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/localMsgs.properties
new file mode 100644
index 0000000000..650e11cc92
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/localMsgs.properties
@@ -0,0 +1,140 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the local mail code to display progress/status/error messages
+#
+
+# LOCALIZATION NOTE(pop3ErrorDialogTitle): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+pop3ErrorDialogTitle=Virhe tilin %S kanssa
+
+# LOCALIZATION NOTE (pop3EnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+pop3EnterPasswordPromptTitleWithUsername=Kirjoita käyttäjän %1$S salasana
+
+# LOCALIZATION NOTE(pop3EnterPasswordPrompt): Do not translate the words "%1$S"
+# and "%2$S" below. Place the word %1$S where the user name should appear, and
+# %2$S where the host name should appear.
+pop3EnterPasswordPrompt=Kirjoita salasanasi käyttäjätunnukselle %1$S palvelimella %2$S:
+
+# LOCALIZATION NOTE(pop3PreviouslyEnteredPasswordIsInvalidPrompt): Do not
+# translate the words "%1$S" and "%2$S" below. Place the word %1$S where the
+# user name should appear, and %2$S where the host name should appear.
+pop3PreviouslyEnteredPasswordIsInvalidPrompt=Kirjoita uusi salasana käyttäjätunnukselle %1$S palvelimella %2$S:
+
+# Status - Downloading message n of m
+# LOCALIZATION NOTE (receivingMessages): Do not translate %1$S or %2$S in the following lines.
+# Place the word %1$S where the number of messages downloaded so far should appear.
+# Place the word %2$S where the total number of messages to receive should appear;
+receivingMessages=Ladataan viestiä %1$S / %2$S…
+
+# Status - connecting to host
+hostContact=Yhteys muodostettu, lähetetään kirjautumistietoja…
+
+# Status - no messages to download
+noNewMessages=Ei uusia viestejä.
+
+# Status - messages received after the download
+#LOCALIZATION NOTE : Do not translate %1$S or %2$S in the following line.
+# %1$S will receive the number of messages received
+# %2$S will receive the total number of messages
+receivedMsgs=Vastaanotettu %1$S / %2$S viestiä
+
+# Status - parsing folder
+#LOCALIZATION NOTE (buildingSummary): Do not translate %S in the following line.
+# Place the word %S where the name of the mailbox should appear
+buildingSummary=Luodaan tiivistelmätiedostoa kansiolle %S…
+
+# Status - parsing folder
+localStatusDocumentDone=Valmis
+
+# Status - pop3 server error
+#LOCALIZATION NOTE (pop3ServerError): Do not translate POP3 in the following line.
+pop3ServerError=POP3-sähköpostipalvelimella tapahtui virhe.
+
+# Status - pop3 user name failed
+pop3UsernameFailure=Käyttäjätunnuksen lähettäminen ei onnistunut.
+
+# Status - password failed
+#LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
+# Place the word %1$S where the user name should appear.
+pop3PasswordFailed=Käyttäjän %1$S salasanan lähettäminen ei onnistunut.
+
+# Status - write error occurred
+pop3MessageWriteError=Postia ei voi tallentaa postilaatikkoon. Varmista, että sinulla on kirjoitusoikeus ja riittävästi levytilaa postilaatikon kopioimiseen.
+
+# Status - retr failure from the server
+pop3RetrFailure=RETR-komento ei onnistunut. Virhe noudettaessa viestiä..
+
+# Status - password undefined
+pop3PasswordUndefined=Virhe sähköpostitilin salasanaa lukiessa.
+
+# Status - username undefined
+pop3UsernameUndefined=Et ole määrittänyt käyttäjätunnusta tälle palvelimelle. Määritä sellainen tilin asetukset -valikossa ja yritä uudelleen.
+
+# Status - list failure
+pop3ListFailure=LIST-komento ei onnistunut. Virhe luettaessa viestin tunnistetta ja kokoa.
+
+# Status - delete error
+pop3DeleFailure=DELE-komento ei onnistunut. Virhe merkittäessä viestiä poistetuksi.
+
+# Status - stat failed
+pop3StatFail=STAT-komento ei onnistunut. Virhe luettaessa viestien lukumäärää ja kokoja.
+
+#LOCALIZATION NOTE (pop3ServerSaid): Do not remove the leading space during translation.
+pop3ServerSaid= Sähköpostipalvelin %S vastasi:
+
+#LOCALIZATION NOTE (pop3TempServerError): %S is where the POP3 server name will appear.
+pop3TempServerError=Väliaikainen virhe palvelimelta %S haettaessa uusia viestejä. \
+Toimenpide yritetään toistaa uudelleen seuraavalla viestien tarkistuskerralla.
+
+copyingMessagesStatus=%S / %S viestin kopiointi kansioon %S
+
+movingMessagesStatus=%S / %S viestin siirto kansioon %S
+
+# Status - pop3 server or folder busy
+# LOCALIZATION NOTE (pop3ServerBusy): Do not translate the word "%S" below.
+# Place %S where the account name should appear.
+pop3ServerBusy=Tiliä %S käsitellään. Odota kunnes käsittely on valmis, jotta saat viestit käyttöösi.
+
+pop3TmpDownloadError=Seuraavan viestiä ladattaessa tapahtui virhe: \nLähettäjä: %S\n Aihe: %S\n Viestissä voi olla virus, tai levyllä ei ole tarpeeksi tilaa sille. Ohitetaanko viesti?
+
+# Status - the server doesn't support UIDL…
+# LOCALIZATION NOTE(pop3ServerDoesNotSupportUidlEtc): The following sentence should be translated in this way:
+# Do not translate "POP3"
+# Do not translate "%S". Place %S in your translation where the name of the server should appear.
+# Do not translate "UIDL"
+pop3ServerDoesNotSupportUidlEtc=POP3-sähköpostipalvelin (%S) ei tue UIDL- tai XTND XLST -toimintoa, joita tarvitaan toimintoihin ''Jätä viestit palvelimelle'', ''Viestin enimmäiskoko'' tai ''Nouda vain otsakkeet.'' Poista nämä toiminnot käytöstä tilin asetuksista, jotta viestejä voidaan vastaanottaa.
+
+# Status - the server doesn't support the top command
+# LOCALIZATION NOTE(pop3ServerDoesNotSupportTopCommand): The following sentence should be translated in this way:
+# Do not translate "POP3"
+# Do not translate "%S". Place %S in your translation where the name of the server should appear.
+# Do not translate "TOP"
+pop3ServerDoesNotSupportTopCommand=POP3-palvelin (%S) ei tue TOP-komentoa ja toiminnot ''Viestin enimmäiskoko'' ja ''Nouda vain otsakkeet'' eivät toimi jos palvelin ei tue tätä komentoa. Viestit ladataan niiden koosta riippumatta.
+
+nsErrorCouldNotConnectViaTls=TLS-yhteyttä POP3-palvelimeen ei kyetty muodostamaan. Palvelin voi olla pois toiminnasta tai virheellisesti asetettu. Tarkista, että omat sähköposti- ja keskusteluryhmäasetuksesi ovat oikein ja yritä uudelleen.
+
+# LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+pop3MoveFolderToTrash=Poistetaanko kansio "%S"?
+
+pop3DeleteFolderDialogTitle=Poista kansio
+
+pop3DeleteFolderButtonLabel=&Poista kansio
+
+pop3AuthInternalError=Sisäinen tilavirhe POP3-palvelimelle todennettaessa. Tämä on sisäinen, odottamaton virhe ohjelmassa. Ole hyvä ja raportoi ohjelmavirheenä.
+
+pop3AuthChangeEncryptToPlainNoSSL=POP3-palvelin ei näytä tukevan salattuja salasanoja. Yritä vaihtaa todennustavaksi "Salasana, turvaton lähetys" palvelinasetuksista: Tilien asetukset - Palvelinasetukset. Jos yhteys toimi ennen, mutta lakkasi yhtäkkiä toimimasta, salasanaasi voidaan yrittää varastaa.
+
+pop3AuthChangeEncryptToPlainSSL=POP3-palvelin ei näytä tukevan salattuja salasanoja. Jos juuri loit tilin, yritä vaihtaa todennustavaksi "Normaali salasana" palvelinasetuksista: Tilien asetukset - Palvelinasetukset. Jos yhteys toimi ennen, mutta lakkasi yhtäkkiä toimimasta, ota yhteys sähköpostitilisi hallinnoijaan tai palveluntarjoajaan.
+
+pop3AuthChangePlainToEncrypt=POP3-palvelin ei hyväksy salaamattomia salasanoja. Yritä vaihtaa todennustavaksi "Salattu salasana" palvelinasetuksista: Tilien asetukset - Palvelinasetukset.
+
+# Authentication server caps and pref don't match
+pop3AuthMechNotSupported=Palvelin ei tue valittua todennustapaa. Muuta todennustapaa palvelinasetuksista: Tilien asetukset - Palvelinasetukset.
+
+# Status - Could not log in to GSSAPI, and it was the only method
+pop3GssapiFailure=POP-palvelin ei hyväksynyt Kerberos/GSSAPI-lippuasi. Tarkista, että olet kirjautunut Kerberos/GSSAPI-verkkoon.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailEditorOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailEditorOverlay.dtd
new file mode 100644
index 0000000000..5a100c5feb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailEditorOverlay.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY sendPage.label "Lähetä sivu…">
+<!ENTITY sendPage.accesskey "L">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailOverlay.dtd
new file mode 100644
index 0000000000..ce7c019da9
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailOverlay.dtd
@@ -0,0 +1,11 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Viesti">
+<!ENTITY newMessageCmd.accesskey "V">
+
+<!ENTITY newContactCmd.label "Osoitekirjan yhteystieto…">
+<!ENTITY newContactCmd.accesskey "O">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewList.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewList.dtd
new file mode 100644
index 0000000000..e8e044accf
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewList.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewListTitle.label "Muokkaa viestinäkymiä">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewSetup.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewSetup.dtd
new file mode 100644
index 0000000000..96ec10be49
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailViewSetup.dtd
@@ -0,0 +1,11 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewSetupTitle.label "Viestinäkymän asetukset">
+<!ENTITY mailViewHeading.label "Viestinäkymän nimi:">
+<!ENTITY mailViewHeading.accesskey "V">
+<!ENTITY searchTermCaption.label "Kun tämä näkymä on valittu, näytä vain viestit jotka:">
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailviews.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailviews.properties
new file mode 100644
index 0000000000..90a6b72be3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mailviews.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# Mail Views
+#
+
+mailViewPeopleIKnow=Tutut ihmiset
+mailViewRecentMail=Tuoreet viestit
+mailViewLastFiveDays=Viimeiset 5 pv
+mailViewNotJunk=Ei roskapostit
+mailViewHasAttachments=Sis. liitteit\u00E4
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/markByDate.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/markByDate.dtd
new file mode 100644
index 0000000000..1f0fd3737b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/markByDate.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageMarkByDate.label "Merkitse viestit luetuksi päiväyksen perusteella">
+<!ENTITY markByDateLower.label "Merkitse viestit luetuiksi päivästä:">
+<!ENTITY markByDateLower.accesskey "p">
+<!ENTITY markByDateUpper.label "päivään:">
+<!ENTITY markByDateUpper.accesskey "p">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.dtd
new file mode 100644
index 0000000000..ddaf87d083
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.dtd
@@ -0,0 +1,945 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY titledefault.label "&brandFullName;">
+<!ENTITY titleSeparator.label " - ">
+
+<!-- File Menu -->
+<!ENTITY newFolderCmd.label "Kansio…">
+<!ENTITY newFolderCmd.accesskey "K">
+<!ENTITY closeTabCmd2.label "Sulje välilehti">
+<!ENTITY closeTabCmd2.accesskey "S">
+<!ENTITY closeOtherTabsCmd2.label "Sulje muut välilehdet">
+<!ENTITY closeOtherTabsCmd2.accesskey "m">
+<!ENTITY recentlyClosedTabsCmd.label "Suljetut välilehdet">
+<!ENTITY recentlyClosedTabsCmd.accesskey "S">
+
+<!ENTITY undoCloseTabCmd.commandkey "T">
+<!-- LOCALIZATION NOTE (moveToNewWindow.label):
+ Menu option to cause the current tab to be migrated to a new Thunderbird
+ window.
+ -->
+<!ENTITY moveToNewWindow.label "Siirrä uuteen ikkunaan">
+<!ENTITY moveToNewWindow.accesskey "S">
+<!ENTITY newVirtualFolderCmd.label "Tallennettu haku…">
+<!ENTITY newVirtualFolderCmd.accesskey "h">
+<!ENTITY newCreateEmailAccountCmd.label "Hanki uusi sähköpostitili…">
+<!ENTITY newCreateEmailAccountCmd.accesskey "H">
+<!ENTITY newExistingEmailAccountCmd.label "Olemassa oleva sähköpostitili…">
+<!ENTITY newExistingEmailAccountCmd.accesskey "O">
+<!ENTITY newIMAccountCmd.label "Pikaviestitili…">
+<!ENTITY newIMAccountCmd.accesskey "v">
+<!ENTITY newFeedAccountCmd.label "Syötetili…">
+<!ENTITY newFeedAccountCmd.accesskey "t">
+<!ENTITY newIMContactCmd.label "Pikaviestikontakti…">
+<!ENTITY newIMContactCmd.accesskey "k">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Viesti">
+<!ENTITY newMessageCmd.accesskey "V">
+<!ENTITY newContactCmd.label "Osoitekirjan yhteyshenkilö…">
+<!ENTITY newContactCmd.accesskey "y">
+<!ENTITY openMenuCmd.label "Avaa">
+<!ENTITY openMenuCmd.accesskey "A">
+<!ENTITY openMessageFileCmd.label "Avaa tallennettu viesti…">
+<!ENTITY openMessageFileCmd.accesskey "A">
+<!ENTITY saveAsMenu.label "Tallenna nimellä">
+<!ENTITY saveAsMenu.accesskey "n">
+<!ENTITY saveAsFileCmd.key "s">
+<!ENTITY saveAsTemplateCmd.label "Mallipohja">
+<!ENTITY saveAsTemplateCmd.accesskey "M">
+<!ENTITY getNewMsgForCmd.label "Nouda uudet viestit tilille">
+<!ENTITY getNewMsgForCmd.accesskey "d">
+<!ENTITY getAllNewMsgCmdPopupMenu.label "Kaikki tilit">
+<!ENTITY getAllNewMsgCmdPopupMenu.accesskey "K">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Valittu tili">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "V">
+<!ENTITY getNextNMsgCmd2.label "Lataa uudet viestit">
+<!ENTITY getNextNMsgCmd2.accesskey "L">
+<!ENTITY sendUnsentCmd.label "Lähetä lähtevät viestit">
+<!ENTITY sendUnsentCmd.accesskey "ä">
+<!ENTITY subscribeCmd.label "Tilaa…">
+<!ENTITY subscribeCmd.accesskey "T">
+<!ENTITY deleteFolder.label "Poista kansio">
+<!ENTITY deleteFolder.accesskey "P">
+<!ENTITY renameFolder.label "Nimeä kansio uudelleen…">
+<!ENTITY renameFolder.accesskey "m">
+<!ENTITY renameFolder.key "VK_F2">
+<!ENTITY compactFolders.label "Tiivistä kansiot">
+<!ENTITY compactFolders.accesskey "k">
+<!ENTITY emptyTrashCmd.label "Tyhjennä roskakori">
+<!ENTITY emptyTrashCmd.accesskey "r">
+<!ENTITY offlineMenu.label "Yhteydetön tila">
+<!ENTITY offlineMenu.accesskey "Y">
+<!ENTITY offlineGoOfflineCmd.label "Työskentele yhteydettömässä tilassa">
+<!ENTITY offlineGoOfflineCmd.accesskey "y">
+<!ENTITY synchronizeOfflineCmd.label "Nouda/Synkronoi nyt…">
+<!ENTITY synchronizeOfflineCmd.accesskey "S">
+<!ENTITY settingsOfflineCmd2.label "Yhteydettömän tilan asetukset">
+<!ENTITY settingsOfflineCmd2.accesskey "a">
+<!ENTITY downloadSelectedCmd.label "Nouda valitut viestit">
+<!ENTITY downloadSelectedCmd.accesskey "v">
+<!ENTITY downloadStarredCmd.label "Nouda tähdellä merkityt viestit">
+<!ENTITY downloadStarredCmd.accesskey "t">
+<!ENTITY printCmd.label "Tulosta…">
+<!ENTITY printCmd.accesskey "o">
+<!ENTITY printCmd.key "p">
+
+<!-- Edit Menu -->
+<!ENTITY deleteMsgCmd.label "Poista viesti">
+<!ENTITY deleteMsgCmd.accesskey "o">
+<!ENTITY undeleteMsgCmd.label "Kumoa viestin poisto">
+<!ENTITY undeleteMsgCmd.accesskey "m">
+<!ENTITY deleteMsgsCmd.label "Poista valitut viestit">
+<!ENTITY deleteMsgsCmd.accesskey "o">
+<!ENTITY undeleteMsgsCmd.label "Kumoa valittujen viestien poisto">
+<!ENTITY undeleteMsgsCmd.accesskey "m">
+<!ENTITY deleteFolderCmd.label "Poista kansio">
+<!ENTITY deleteFolderCmd.accesskey "o">
+<!ENTITY unsubscribeNewsgroupCmd.label "Peruuta tilaus">
+<!ENTITY unsubscribeNewsgroupCmd.accesskey "P">
+<!ENTITY selectMenu.label "Valitse">
+<!ENTITY selectMenu.accesskey "V">
+<!ENTITY all.label "Kaikki">
+<!ENTITY all.accesskey "K">
+<!ENTITY selectThreadCmd.label "Viestiketju">
+<!ENTITY selectThreadCmd.accesskey "V">
+<!ENTITY selectThreadCmd.key "a">
+<!ENTITY selectFlaggedCmd.label "Tähdellä merkityt viestit">
+<!ENTITY selectFlaggedCmd.accesskey "T">
+<!ENTITY menuFavoriteFolder.label "Merkitse suosikkikansioksi">
+<!ENTITY menuFavoriteFolder.accesskey "r">
+<!ENTITY folderPropsCmd2.label "Ominaisuudet">
+<!ENTITY folderPropsFolderCmd2.label "Kansion ominaisuudet">
+<!ENTITY folderPropsNewsgroupCmd2.label "Keskusteluryhmän ominaisuudet">
+<!ENTITY folderPropsCmd.accesskey "O">
+<!ENTITY undoDeleteMsgCmd.label "Kumoa Poista viesti">
+<!ENTITY redoDeleteMsgCmd.label "Tee uudelleen Poista viesti">
+<!ENTITY undoMoveMsgCmd.label "Kumoa Siirrä viesti">
+<!ENTITY redoMoveMsgCmd.label "Tee uudelleen Siirrä viesti">
+<!ENTITY undoCopyMsgCmd.label "Kumoa Kopioi viesti">
+<!ENTITY redoCopyMsgCmd.label "Tee uudelleen Kopioi viesti">
+<!ENTITY undoMarkAllCmd.label "Kumoa merkitse kaikki luetuksi">
+<!ENTITY redoMarkAllCmd.label "Tee uudestaan merkitse kaikki luetuksi">
+<!ENTITY undoDefaultCmd.label "Kumoa">
+<!ENTITY undoDefaultCmd.accesskey "m">
+<!ENTITY redoDefaultCmd.label "Tee uudelleen">
+<!ENTITY redoDefaultCmd.accesskey "T">
+
+<!-- View Menu -->
+<!ENTITY menubarCmd.label "Valikkopalkki">
+<!ENTITY menubarCmd.accesskey "V">
+<!ENTITY showMessengerToolbarCmd.label "Postipalkki">
+<!ENTITY showMessengerToolbarCmd.accesskey "P">
+<!ENTITY customizeToolbar.label "Muokkaa…">
+<!ENTITY customizeToolbar.accesskey "M">
+
+<!ENTITY messagePaneLayoutStyle.label "Ruudun asettelu">
+<!ENTITY messagePaneLayoutStyle.accesskey "R">
+<!ENTITY messagePaneClassic.label "Perinteinen">
+<!ENTITY messagePaneClassic.accesskey "P">
+<!ENTITY messagePaneWide.label "Leveä">
+<!ENTITY messagePaneWide.accesskey "L">
+<!ENTITY messagePaneVertical.label "Pystysuora">
+<!ENTITY messagePaneVertical.accesskey "s">
+<!ENTITY showFolderPaneCmd.label "Kansiopaneeli">
+<!ENTITY showFolderPaneCmd.accesskey "K">
+<!ENTITY showFolderPaneColsCmd.label "Kansiopaneelin sarakkeet">
+<!ENTITY showFolderPaneColsCmd.accesskey "s">
+<!ENTITY showMessageCmd.label "Viestipaneeli">
+<!ENTITY showMessageCmd.accesskey "V">
+
+<!ENTITY folderView.label "Kansiot">
+<!ENTITY folderView.accesskey "K">
+<!ENTITY unifiedFolders.label "Yhdistetty">
+<!ENTITY unifiedFolders.accesskey "Y">
+<!ENTITY allFolders.label "Kaikki">
+<!ENTITY allFolders.accesskey "a">
+<!ENTITY unreadFolders.label "Lukematta">
+<!ENTITY unreadFolders.accesskey "L">
+<!ENTITY favoriteFolders.label "Suosikit">
+<!ENTITY favoriteFolders.accesskey "S">
+<!ENTITY recentFolders.label "Nykyinen">
+<!ENTITY recentFolders.accesskey "u">
+<!ENTITY compactVersion.label "Tiivis näkkymä">
+<!ENTITY compactVersion.accesskey "T">
+
+<!-- Sort Menu -->
+<!ENTITY sortMenu.label "Järjestelyperuste">
+<!ENTITY sortMenu.accesskey "J">
+<!ENTITY sortByDateCmd.label "Päiväys">
+<!ENTITY sortByDateCmd.accesskey "P">
+<!ENTITY sortByReceivedCmd.label "Vastaanotettu">
+<!ENTITY sortByReceivedCmd.accesskey "a">
+<!ENTITY sortByStarCmd.label "Tähti">
+<!ENTITY sortByStarCmd.accesskey "T">
+<!ENTITY sortByAttachmentsCmd.label "Liitteet">
+<!ENTITY sortByAttachmentsCmd.accesskey "e">
+<!ENTITY sortByPriorityCmd.label "Tärkeysaste">
+<!ENTITY sortByPriorityCmd.accesskey "ä">
+<!ENTITY sortBySizeCmd.label "Koko">
+<!ENTITY sortBySizeCmd.accesskey "K">
+<!ENTITY sortByStatusCmd.label "Tila">
+<!ENTITY sortByStatusCmd.accesskey "i">
+<!ENTITY sortByTagsCmd.label "Tunnukset">
+<!ENTITY sortByTagsCmd.accesskey "n">
+<!ENTITY sortByJunkStatusCmd.label "Roskapostitila">
+<!ENTITY sortByJunkStatusCmd.accesskey "R">
+<!ENTITY sortBySubjectCmd.label "Aihe">
+<!ENTITY sortBySubjectCmd.accesskey "A">
+<!ENTITY sortByFromCmd.label "Lähettäjä">
+<!ENTITY sortByFromCmd.accesskey "ä">
+<!ENTITY sortByRecipientCmd.label "Vastaanottaja">
+<!ENTITY sortByRecipientCmd.accesskey "V">
+<!ENTITY sortByCorrespondentCmd.label "Keskustelukumppanit">
+<!ENTITY sortByCorrespondentCmd.accesskey "K">
+<!ENTITY sortByUnreadCmd.label "Luettu">
+<!ENTITY sortByUnreadCmd.accesskey "u">
+<!ENTITY sortByOrderReceivedCmd.label "Saapumisjärjestys">
+<!ENTITY sortByOrderReceivedCmd.accesskey "S">
+<!ENTITY sortAscending.label "Nouseva järjestys">
+<!ENTITY sortAscending.accesskey "o">
+<!ENTITY sortDescending.label "Laskeva järjestys">
+<!ENTITY sortDescending.accesskey "j">
+<!ENTITY sortThreaded.label "Viestiketjuina">
+<!ENTITY sortThreaded.accesskey "V">
+<!ENTITY sortUnthreaded.label "Yksittäin">
+<!ENTITY sortUnthreaded.accesskey "Y">
+<!ENTITY groupBySort.label "Lajin mukaan ryhmiteltynä">
+<!ENTITY groupBySort.accesskey "m">
+<!ENTITY msgsMenu.label "Viestit">
+<!ENTITY msgsMenu.accesskey "V">
+<!ENTITY threads.label "Viestiketjut">
+<!ENTITY threads.accesskey "s">
+<!ENTITY allMsgsCmd.label "Kaikki">
+<!ENTITY allMsgsCmd.accesskey "K">
+<!ENTITY expandAllThreadsCmd.label "Laajenna kaikki viestiketjut">
+<!ENTITY expandAllThreadsCmd.accesskey "a">
+<!ENTITY expandAllThreadsCmd.key "*">
+<!ENTITY collapseAllThreadsCmd.label "Kutista kaikki viestiketjut">
+<!ENTITY collapseAllThreadsCmd.accesskey "u">
+<!ENTITY collapseAllThreadsCmd.key "\">
+<!ENTITY unreadMsgsCmd.label "Lukematta">
+<!ENTITY unreadMsgsCmd.accesskey "L">
+<!ENTITY threadsWithUnreadCmd.label "Viestiketjut, joissa viestejä lukematta">
+<!ENTITY threadsWithUnreadCmd.accesskey "V">
+<!ENTITY watchedThreadsWithUnreadCmd.label "Seuratut viestiketjut, joissa viestejä lukematta">
+<!ENTITY watchedThreadsWithUnreadCmd.accesskey "S">
+<!ENTITY ignoredThreadsCmd.label "Ohitetut viestiketjut">
+<!ENTITY ignoredThreadsCmd.accesskey "O">
+
+<!ENTITY headersMenu.label "Otsaketiedot">
+<!ENTITY headersMenu.accesskey "O">
+<!ENTITY headersAllCmd.label "Täydelliset">
+<!ENTITY headersAllCmd.accesskey "T">
+<!ENTITY headersNormalCmd.label "Suppeat">
+<!ENTITY headersNormalCmd.accesskey "S">
+<!ENTITY bodyMenu.label "Viesti muodossa">
+<!ENTITY bodyMenu.accesskey "m">
+<!ENTITY bodyAllowHTML.label "Alkuperäinen HTML">
+<!ENTITY bodyAllowHTML.accesskey "A">
+<!ENTITY bodySanitized.label "Yksinkertainen HTML">
+<!ENTITY bodySanitized.accesskey "Y">
+<!ENTITY bodyAsPlaintext.label "Pelkkä teksti">
+<!ENTITY bodyAsPlaintext.accesskey "P">
+<!ENTITY bodyAllParts.label "Kaikki viestirungon osat">
+<!ENTITY bodyAllParts.accesskey "K">
+
+<!ENTITY bodyMenuFeed.label "Syötteen viesti muodossa">
+<!ENTITY bodyMenuFeed.accesskey "S">
+<!ENTITY viewFeedWebPage.label "Verkkosivu">
+<!ENTITY viewFeedWebPage.accesskey "V">
+<!ENTITY viewFeedSummary.label "Yhteenveto">
+<!ENTITY viewFeedSummary.accesskey "Y">
+<!ENTITY viewFeedSummaryFeedPropsPref.label "Oletusmuotoilu">
+<!ENTITY viewFeedSummaryFeedPropsPref.accesskey "O">
+
+<!ENTITY viewAttachmentsInlineCmd.label "Näytä liitteet viestiin sisällytettynä">
+<!ENTITY viewAttachmentsInlineCmd.accesskey "N">
+
+<!ENTITY pageSourceCmd.label "Viestin lähdekoodi">
+<!ENTITY pageSourceCmd.accesskey "k">
+<!ENTITY pageSourceCmd.key "u">
+<!ENTITY getNewMessagesCmd.key "y">
+<!ENTITY getAllNewMessagesCmd.key "Y">
+
+<!-- Search Menu -->
+<!ENTITY findMenu.label "Etsi">
+<!ENTITY findMenu.accesskey "E">
+<!ENTITY findCmd.label "Etsi tästä viestistä…">
+<!ENTITY findCmd.accesskey "E">
+<!ENTITY findCmd.key "f">
+<!ENTITY findAgainCmd.label "Etsi seuraava">
+<!ENTITY findAgainCmd.accesskey "s">
+<!ENTITY findAgainCmd.key "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.key "g">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY searchMailCmd.label "Etsi viesteistä…">
+<!ENTITY searchMailCmd.accesskey "v">
+<!ENTITY searchMailCmd.key "f">
+<!ENTITY glodaSearchCmd.label "Globaali haku…">
+<!ENTITY glodaSearchCmd.accesskey "G">
+<!ENTITY searchAddressesCmd.label "Etsi osoitekirjasta…">
+<!ENTITY searchAddressesCmd.accesskey "o">
+
+<!-- Go Menu -->
+<!ENTITY goMenu.label "Siirry">
+<!ENTITY goMenu.accesskey "S">
+<!ENTITY nextMenu.label "Seuraava">
+<!ENTITY nextMenu.accesskey "S">
+<!ENTITY nextMsgCmd.label "Viesti">
+<!ENTITY nextMsgCmd.accesskey "V">
+<!ENTITY nextMsgCmd.key "f">
+<!ENTITY nextUnreadMsgCmd.label "Lukematon viesti">
+<!ENTITY nextUnreadMsgCmd.accesskey "L">
+<!ENTITY nextUnreadMsgCmd.key "n">
+<!ENTITY nextStarredMsgCmd.label "Tähdellä merkitty viesti">
+<!ENTITY nextStarredMsgCmd.accesskey "T">
+<!ENTITY nextUnreadThread.label "Lukematon viestiketju">
+<!ENTITY nextUnreadThread.accesskey "k">
+<!ENTITY nextUnreadThread.key "t">
+<!ENTITY prevMenu.label "Edellinen">
+<!ENTITY prevMenu.accesskey "E">
+<!ENTITY prevMsgCmd.label "Viesti">
+<!ENTITY prevMsgCmd.accesskey "V">
+<!ENTITY prevMsgCmd.key "b">
+<!ENTITY prevUnreadMsgCmd.label "Lukematon viesti">
+<!ENTITY prevUnreadMsgCmd.accesskey "L">
+<!ENTITY prevUnreadMsgCmd.key "p">
+<!ENTITY goForwardCmd.label "Seuraava">
+<!ENTITY goForwardCmd.accesskey "S">
+<!ENTITY goForwardCmd.commandKey "Ä">
+<!ENTITY goBackCmd.label "Edellinen">
+<!ENTITY goBackCmd.accesskey "E">
+<!ENTITY goBackCmd.commandKey "Ö">
+<!ENTITY goChatCmd.label "Keskustele">
+<!ENTITY goChatCmd.accesskey "K">
+<!ENTITY prevStarredMsgCmd.label "Tähdellä merkitty viesti">
+<!ENTITY prevStarredMsgCmd.accesskey "T">
+<!ENTITY folderMenu.label "Kansio">
+<!ENTITY folderMenu.accesskey "K">
+<!ENTITY goRecentlyClosedTabs.label "Suljetut välilehdet">
+<!ENTITY goRecentlyClosedTabs.accesskey "S">
+<!ENTITY startPageCmd.label "Aloitussivu">
+<!ENTITY startPageCmd.accesskey "A">
+
+<!-- Message Menu -->
+<!ENTITY msgMenu.label "Viesti">
+<!ENTITY msgMenu.accesskey "V">
+<!ENTITY newMsgCmd.label "Uusi viesti">
+<!ENTITY newMsgCmd.accesskey "U">
+<!ENTITY newNewMsgCmd.label "Viesti">
+<!ENTITY newNewMsgCmd.accesskey "V">
+<!ENTITY archiveMsgCmd.label "Arkistoi">
+<!ENTITY archiveMsgCmd.accesskey "A">
+<!ENTITY archiveMsgCmd.key "a">
+<!ENTITY cancelNewsMsgCmd.label "Peruuta viesti">
+<!ENTITY cancelNewsMsgCmd.accesskey "P">
+<!ENTITY replyMsgCmd.label "Vastaa">
+<!ENTITY replyMsgCmd.accesskey "V">
+<!ENTITY replyMsgCmd.key "r">
+<!ENTITY replySenderCmd.label "Vastaa vain lähettäjälle">
+<!ENTITY replySenderCmd.accesskey "n">
+<!ENTITY replyNewsgroupCmd2.label "Osoita vastaukset ryhmään">
+<!ENTITY replyNewsgroupCmd2.accesskey "r">
+<!ENTITY replyToAllMsgCmd.label "Vastaa kaikille">
+<!ENTITY replyToAllMsgCmd.accesskey "a">
+<!ENTITY replyToAllMsgCmd.key "r">
+<!ENTITY replyToListMsgCmd.label "Vastaa postituslistalle">
+<!ENTITY replyToListMsgCmd.accesskey "p">
+<!ENTITY replyToListMsgCmd.key "l">
+<!ENTITY forwardMsgCmd.label "Välitä">
+<!ENTITY forwardMsgCmd.accesskey "ä">
+<!ENTITY forwardMsgCmd.key "l">
+<!ENTITY forwardAsMenu.label "Välitä muodossa">
+<!ENTITY forwardAsMenu.accesskey "m">
+<!ENTITY forwardAsInline.label "Viestiin sisällytettynä">
+<!ENTITY forwardAsInline.accesskey "V">
+<!ENTITY forwardAsAttachmentCmd.label "Liitetiedostona">
+<!ENTITY forwardAsAttachmentCmd.accesskey "L">
+<!ENTITY editAsNewMsgCmd.label "Muokkaa viestiä uutena">
+<!ENTITY editAsNewMsgCmd.accesskey "o">
+<!ENTITY editAsNewMsgCmd.key "e">
+<!ENTITY editDraftMsgCmd.label "Muokkaa viestiluonnosta">
+<!ENTITY editDraftMsgCmd.accesskey "u">
+<!ENTITY editTemplateMsgCmd.label "Muokkaa mallia">
+<!ENTITY editTemplateMsgCmd.accesskey "m">
+<!ENTITY newMsgFromTemplateCmd.label "Uusi viesti mallista">
+<!ENTITY newMsgFromTemplateCmd.keycode "VK_RETURN"><!-- do not change "VK_RETURN" -->
+<!ENTITY createFilter.label "Luo viestistä suodatin…">
+<!ENTITY createFilter.accesskey "d">
+<!ENTITY moveMsgToMenu.label "Siirrä">
+<!ENTITY moveMsgToMenu.accesskey "S">
+<!ENTITY moveCopyMsgRecentMenu.label "Nykyinen">
+<!ENTITY moveCopyMsgRecentMenu.accesskey "T">
+<!ENTITY copyMessageLocation.label "Kopioi viestin sijainti">
+<!ENTITY copyMessageLocation.accesskey "o">
+<!ENTITY copyMsgToMenu.label "Kopioi">
+<!ENTITY copyMsgToMenu.accesskey "K">
+<!ENTITY moveToFolderAgain.label "Siirrä uudestaan">
+<!ENTITY moveToFolderAgain.accesskey "u">
+<!ENTITY moveToFolderAgainCmd.key "m">
+<!ENTITY killThreadMenu.label "Ohita viestiketju">
+<!ENTITY killThreadMenu.accesskey "h">
+<!ENTITY killThreadMenu.key "k">
+<!ENTITY killSubthreadMenu.label "Ohita aliketju">
+<!ENTITY killSubthreadMenu.accesskey "a">
+<!ENTITY killSubthreadMenu.key "k">
+<!ENTITY watchThreadMenu.label "Seuraa viestiketjua">
+<!ENTITY watchThreadMenu.accesskey "u">
+<!ENTITY watchThreadMenu.key "w">
+<!ENTITY tagMenu.label "Tunnus">
+<!ENTITY tagMenu.accesskey "T">
+<!ENTITY tagCmd0.key "0">
+<!ENTITY tagCmd1.key "1">
+<!ENTITY tagCmd2.key "2">
+<!ENTITY tagCmd3.key "3">
+<!ENTITY tagCmd4.key "4">
+<!ENTITY tagCmd5.key "5">
+<!ENTITY tagCmd6.key "6">
+<!ENTITY tagCmd7.key "7">
+<!ENTITY tagCmd8.key "8">
+<!ENTITY tagCmd9.key "9">
+<!ENTITY markMenu.label "Merkitse">
+<!ENTITY markMenu.accesskey "e">
+<!ENTITY toggleReadCmd.key "m">
+<!ENTITY markAsReadCmd.label "Luetuksi">
+<!ENTITY markAsReadCmd.accesskey "L">
+<!ENTITY markAsUnreadCmd.label "Ei luetuksi">
+<!ENTITY markAsUnreadCmd.accesskey "E">
+<!ENTITY markThreadAsReadCmd.label "Viestiketju luetuksi">
+<!ENTITY markThreadAsReadCmd.accesskey "V">
+<!ENTITY markThreadAsReadCmd.key "r">
+<!ENTITY markReadByDateCmd.label "Luetuksi päivän mukaan…">
+<!ENTITY markReadByDateCmd.accesskey "u">
+<!ENTITY markReadByDateCmd.key "c">
+<!ENTITY markAllReadCmd.label "Kaikki luetuiksi">
+<!ENTITY markAllReadCmd.accesskey "K">
+<!ENTITY markAllReadCmd.key "c">
+<!ENTITY markStarredCmd.label "Lisää tähti">
+<!ENTITY markStarredCmd.accesskey "t">
+<!ENTITY markStarredCmd.key "S">
+<!ENTITY markAsJunkCmd.label "Roskapostiksi">
+<!ENTITY markAsJunkCmd.accesskey "R">
+<!ENTITY markAsJunkCmd.key "j">
+<!ENTITY markAsNotJunkCmd.label "Ei roskapostiksi">
+<!ENTITY markAsNotJunkCmd.accesskey "i">
+<!ENTITY markAsNotJunkCmd.key "j">
+<!ENTITY recalculateJunkScoreCmd.label "Tunnista roskapostit">
+<!ENTITY recalculateJunkScoreCmd.accesskey "n">
+<!ENTITY openMessageWindowCmd.label "Avaa viesti">
+<!ENTITY openMessageWindowCmd.accesskey "i">
+<!ENTITY openMessageWindowCmd.key "o">
+<!ENTITY openInConversationCmd.label "Avaa keskusteluna">
+<!ENTITY openInConversationCmd.accesskey "k">
+<!ENTITY openInConversationCmd.key "o">
+<!ENTITY openAttachmentListCmd.label "Liitetiedostot">
+<!ENTITY openAttachmentListCmd.accesskey "L">
+<!ENTITY openFeedMessage1.label "Avattaessa syöteviestejä">
+<!ENTITY openFeedMessage1.accesskey "A">
+<!ENTITY openFeedWebPage.label "Avaa verkkosivuna">
+<!ENTITY openFeedWebPage.accesskey "v">
+<!ENTITY openFeedSummary.label "Avaa yhteenvetona">
+<!ENTITY openFeedSummary.accesskey "y">
+<!ENTITY openFeedWebPageInMP.label "Vaihda viestipaneelissa verkkosivun ja yhteenvedon kesken">
+<!ENTITY openFeedWebPageInMP.accesskey "V">
+
+<!-- Windows Menu -->
+<!ENTITY windowMenu.label "Ikkuna">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Työkalut">
+<!ENTITY tasksMenu.accesskey "y">
+<!ENTITY messengerCmd.label "Sähköposti ja keskusteluryhmät">
+<!ENTITY messengerCmd.accesskey "S">
+<!ENTITY addressBookCmd.label "Osoitekirja">
+<!ENTITY addressBookCmd.accesskey "O">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY addonNoPrefs.label "Lisäosan asetuksia ei löytynyt.">
+<!ENTITY activitymanager.label "Toimintojen hallinta">
+<!ENTITY activitymanager.accesskey "h">
+<!ENTITY imAccountsStatus.label "Läsnäolotila">
+<!ENTITY imAccountsStatus.accesskey "L">
+<!ENTITY imStatus.available "Tavoitettavissa">
+<!ENTITY imStatus.unavailable "Poissa">
+<!ENTITY imStatus.offline "Poissa linjoilta">
+<!ENTITY imStatus.showAccounts "Näytä tilit…">
+<!ENTITY joinChatCmd.label "Liity keskusteluun…">
+<!ENTITY joinChatCmd.accesskey "L">
+<!ENTITY savedFiles.label "Tallennetut tiedostot">
+<!ENTITY savedFiles.accesskey "a">
+<!ENTITY savedFiles.key "j">
+<!ENTITY filtersCmd2.label "Viestisuodattimet">
+<!ENTITY filtersCmd2.accesskey "V">
+<!ENTITY filtersApply.label "Suodata kansion viestit">
+<!ENTITY filtersApply.accesskey "S">
+<!ENTITY filtersApplyToSelection.label "Suodata valitut viestit">
+<!ENTITY filtersApplyToSelection.accesskey "u">
+<!ENTITY filtersApplyToMessage.label "Suorita suodattimet viestille">
+<!ENTITY filtersApplyToMessage.accesskey "u">
+<!ENTITY runJunkControls.label "Tunnista kansion roskapostit">
+<!ENTITY runJunkControls.accesskey "u">
+<!ENTITY deleteJunk.label "Poista kansiosta roskapostiviestiksi merkityt">
+<!ENTITY deleteJunk.accesskey "P">
+<!ENTITY importCmd.label "Tuo toisista ohjelmista…">
+<!ENTITY importCmd.accesskey "T">
+<!ENTITY exportCmd.label "Vie…">
+<!ENTITY exportCmd.accesskey "V">
+<!ENTITY clearRecentHistory.label "Tyhjennä viimeaikaiset historiatiedot…">
+<!ENTITY clearRecentHistory.accesskey "H">
+<!ENTITY accountManagerCmd2.label "Tilien asetukset">
+<!ENTITY accountManagerCmd2.accesskey "S">
+<!-- LOCALIZATION NOTE (accountManagerCmdUnix.accesskey):
+ Belongs to accountManagerCmd.label, which is placed under the Edit menu
+ on Unix systems
+ -->
+<!ENTITY accountManagerCmdUnix2.accesskey "a">
+
+<!-- Developer Tools Submenu -->
+<!ENTITY devtoolsMenu.label "Kehittäjän työkalut">
+<!ENTITY devtoolsMenu.accesskey "h">
+<!ENTITY devToolboxCmd.label "Kehittäjän työkalulaatikko">
+<!ENTITY devToolboxCmd.accesskey "t">
+<!ENTITY devToolboxCmd.commandkey "y">
+<!ENTITY debugAddonsCmd.label "Virheenkorjaa lisäosia">
+<!ENTITY debugAddonsCmd.accesskey "l">
+<!ENTITY errorConsoleCmd.label "Virhekonsoli">
+<!ENTITY errorConsoleCmd.accesskey "V">
+<!ENTITY errorConsoleCmd.commandkey "j">
+
+<!-- Mail Toolbar -->
+<!ENTITY getMsgButton1.label "Nouda viestit">
+<!ENTITY newMsgButton.label "Kirjoita">
+<!ENTITY replyButton.label "Vastaa">
+<!ENTITY replyAllButton.label "Vastaa kaikille ">
+<!ENTITY replyListButton.label "Vastaa listalle">
+<!ENTITY forwardButton.label "Välitä">
+<!ENTITY fileButton.label "Tiedosto">
+<!ENTITY archiveButton.label "Arkistoi">
+<!ENTITY openConversationButton.label "Keskustelu">
+<!ENTITY nextButton.label "Seuraava">
+<!ENTITY nextButtonToolbarItem.label "Seuraava lukematon">
+<!ENTITY nextMsgButton.label "Seuraava">
+<!ENTITY previousButton.label "Edellinen">
+<!ENTITY previousButtonToolbarItem.label "Edellinen lukematon">
+<!ENTITY previousMsgButton.label "Edellinen">
+<!ENTITY backButton1.label "Siirry edelliseen">
+<!ENTITY goForwardButton1.label "Siirry seuraavaan">
+<!ENTITY deleteItem.title "Poista">
+<!ENTITY markButton.label "Merkitse">
+<!ENTITY printButton.label "Tulosta">
+<!ENTITY stopButton.label "Pysäytä">
+<!ENTITY throbberItem.title "Toimintaindikaattori">
+<!ENTITY junkItem.title "Roskapostiksi">
+<!ENTITY addressBookButton.label "Osoitekirja">
+<!ENTITY chatButton.label "Keskustele">
+<!ENTITY glodaSearch.title "Yleishaku">
+<!ENTITY searchItem.title "Pikahaku">
+<!ENTITY mailViewsToolbarItem.title "Viestinäkymät">
+<!ENTITY folderLocationToolbarItem.title "Kansion sijainti">
+<!ENTITY tagButton.label "Tunnus">
+<!ENTITY compactButton.label "Tiivistä">
+<!ENTITY appmenuButton.label "Sovellusvalikko">
+
+<!-- Mail Toolbar Tooltips-->
+<!ENTITY advancedButton.tooltip "Tarkennettu viestien haku">
+<!ENTITY getMsgButton.tooltip "Nouda uudet viestit">
+<!ENTITY getAllNewMsgCmd.label "Nouda kaikki uudet viestit">
+<!ENTITY getAllNewMsgCmd.accesskey "N">
+<!ENTITY newMsgButton.tooltip "Luo uusi viesti">
+<!ENTITY replyButton.tooltip "Vastaa viestiin">
+<!ENTITY replyAllButton.tooltip "Vastaa lähettäjälle ja kaikille vastaanottajille">
+<!ENTITY replyListButton.tooltip "Vastaa postituslistalle">
+<!ENTITY forwardButton.tooltip "Välitä viesti eteenpäin">
+<!ENTITY forwardAsInline.tooltip "Välitä viesti viestirungossa">
+<!ENTITY forwardAsAttachment.tooltip "Välitä viesti liitteenä">
+<!ENTITY fileButton.tooltip "Tallenna valittu viesti">
+<!ENTITY archiveButton.tooltip "Arkistoi valitut viestit">
+<!ENTITY openMsgConversationButton.tooltip "Näytä valitun viestin keskustelu">
+<!ENTITY nextButton.tooltip "Siirry seuraavaan lukematta olevaan viestiin">
+<!ENTITY nextMsgButton.tooltip "Siirry seuraavaan viestiin">
+<!ENTITY previousButton.tooltip "Siirry edelliseen lukematta olevaan viestiin">
+<!ENTITY previousMsgButton.tooltip "Siirry edelliseen viestiin">
+<!ENTITY goForwardButton.tooltip "Siirry seuraavaan viestiin">
+<!ENTITY goBackButton.tooltip "Siirry edelliseen viestiin">
+<!ENTITY markButton.tooltip "Merkitse viestit">
+<!ENTITY printButton.tooltip "Tulosta viesti">
+<!ENTITY stopButton.tooltip "Keskeytä lataus">
+<!ENTITY addressBookButton.tooltip "Siirry osoitekirjaan">
+<!ENTITY chatButton.tooltip "Näytä keskustelu-välilehti">
+<!ENTITY tagButton.tooltip "Aseta viesteihin tunnuksia">
+<!ENTITY compactButton.tooltip "Poista poistettu viesti valitusta kansiosta">
+<!ENTITY appmenuButton1.tooltip "Avaa &brandShortName;-valikko">
+
+<!-- Toolbar Button Popup -->
+<!ENTITY buttonMenuForwardAsInline.label "Välitä rungossa">
+<!ENTITY buttonMenuForwardAsAttachment.label "Välitä liitteenä">
+
+<!-- Remote Content Button Popup -->
+<!ENTITY remoteContentOptionsAllowForMsg.label "Näytä etäsisältö tässä viestissä">
+<!ENTITY remoteContentOptionsAllowForMsg.accesskey "N">
+<!ENTITY editRemoteContentSettings.label "Muokkaa etäsisällön asetuksia…">
+<!ENTITY editRemoteContentSettings.accesskey "M">
+<!ENTITY editRemoteContentSettingsUnix.label "Muokkaa etäsisällön asetuksia…">
+<!ENTITY editRemoteContentSettingsUnix.accesskey "M">
+
+<!-- Phishing Button Popup -->
+<!ENTITY phishingOptionIgnore.label "Ohita varoitus">
+<!ENTITY phishingOptionIgnore.accesskey "O">
+<!ENTITY phishingOptionSettings.label "Muokkaa huijausten tunnistuksen asetuksia…">
+<!ENTITY phishingOptionSettings.accesskey "k">
+<!ENTITY phishingOptionSettingsUnix.label "Muokkaa huijausten tunnistuksen asetuksia…">
+<!ENTITY phishingOptionSettingsUnix.accesskey "k">
+
+<!-- AppMenu Popup -->
+<!ENTITY appmenuNewMsgCmd.label "Uusi viesti">
+<!ENTITY appmenuNewContactCmd.label "Osoitekirjan yhteyshenkilö…">
+<!ENTITY appmenuEditMenu.label "Muokkaa">
+<!ENTITY appmenuToolbarLayout.label "Työkalupalkin asettelu…">
+<!ENTITY appmenuSelectThread.label "Valitse viestiketju">
+<!ENTITY appmenuSelectFlagged.label "Valitse tähdellä merkityt viestit">
+
+<!-- Tags Menu Popup -->
+<!ENTITY addNewTag.label "Uusi tunnus…">
+<!ENTITY addNewTag.accesskey "t">
+<!ENTITY manageTags.label "Hallinnoi tunnuksia…">
+<!ENTITY manageTags.accesskey "M">
+
+<!-- Folder Pane -->
+<!ENTITY folderNameColumn.label "Nimi">
+<!ENTITY folderUnreadColumn.label "Lukematta">
+<!ENTITY folderTotalColumn.label "Yhteensä">
+<!ENTITY folderSizeColumn.label "Koko">
+
+<!-- Folder Pane Context Menu -->
+<!ENTITY folderContextGetMessages.label "Hae viestit">
+<!ENTITY folderContextGetMessages.accesskey "H">
+<!ENTITY folderContextMarkAllFoldersRead.label "Merkitse kaikki kansiot luetuiksi">
+<!ENTITY folderContextPauseAllUpdates.label "Keskeytä kaikki päivitykset">
+<!ENTITY folderContextPauseUpdates.label "Keskeytä päivitykset">
+<!ENTITY folderContextPauseUpdates.accesskey "K">
+<!ENTITY folderContextOpenInNewWindow.label "Avaa uudessa ikkunassa">
+<!ENTITY folderContextOpenInNewWindow.accesskey "A">
+<!ENTITY folderContextOpenNewTab.label "Avaa uuteen välilehteen">
+<!ENTITY folderContextOpenNewTab.accesskey "v">
+<!ENTITY folderContextNew.label "Uusi alakansio…">
+<!ENTITY folderContextNew.accesskey "s">
+<!ENTITY folderContextRename.label "Nimeä uudelleen">
+<!ENTITY folderContextRename.accesskey "m">
+<!ENTITY folderContextRemove.label "Poista">
+<!ENTITY folderContextRemove.accesskey "o">
+<!ENTITY folderContextCompact.label "Tiivistä">
+<!ENTITY folderContextCompact.accesskey "T">
+<!ENTITY folderContextEmptyTrash.label "Tyhjennä roskakori">
+<!ENTITY folderContextEmptyTrash.accesskey "h">
+<!ENTITY folderContextEmptyJunk.label "Tyhjennä roskaposti">
+<!ENTITY folderContextEmptyJunk.accesskey "h">
+<!ENTITY folderContextSendUnsentMessages.label "Lähetä lähtevät viestit">
+<!ENTITY folderContextSendUnsentMessages.accesskey "ä">
+<!ENTITY folderContextUnsubscribe.label "Peruuta tilaus">
+<!ENTITY folderContextUnsubscribe.accesskey "P">
+<!ENTITY folderContextMarkNewsgroupRead.label "Merkitse ryhmä luetuksi">
+<!ENTITY folderContextMarkNewsgroupRead.accesskey "e">
+<!ENTITY folderContextMarkMailFolderRead.label "Merkitse kansio luetuksi">
+<!ENTITY folderContextMarkMailFolderRead.accesskey "e">
+<!ENTITY folderContextSubscribe.label "Tilaa…">
+<!ENTITY folderContextSubscribe.accesskey "T">
+<!ENTITY folderContextSearchForMessages.label "Etsi viesteistä…">
+<!ENTITY folderContextSearchForMessages.accesskey "E">
+<!ENTITY folderContextProperties2.label "Ominaisuudet">
+<!ENTITY folderContextProperties2.accesskey "O">
+<!ENTITY folderContextFavoriteFolder.label "Suosikkikansio">
+<!ENTITY folderContextFavoriteFolder.accesskey "S">
+<!ENTITY folderContextSettings2.label "Asetukset">
+<!ENTITY folderContextSettings2.accesskey "A">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Nimi- tai sähköpostikentässä:">
+<!ENTITY SearchNameOrEmail.accesskey "N">
+
+<!-- Gloda Search Bar -->
+<!ENTITY glodaSearchBar.placeholder "Etsi viesteistä…">
+
+<!-- Quick Search Menu Bar -->
+<!ENTITY searchSubjectMenu.label "Aihe">
+<!ENTITY searchFromMenu.label "Lähettäjä">
+<!ENTITY searchSubjectOrFromMenu.label "Aihe tai lähettäjä">
+<!ENTITY searchRecipient.label "Vastaanottaja tai kopio">
+<!ENTITY searchSubjectOrRecipientMenu.label "Aihe, vastaanottaja tai kopio">
+<!ENTITY searchMessageBody.label "Koko viestit">
+<!ENTITY saveAsVirtualFolderMenu.label "Tallenna haku kansiona…">
+
+<!-- Thread Pane -->
+<!ENTITY selectColumn.label "Valitse viestit">
+<!ENTITY threadColumn.label "Viestiketju">
+<!ENTITY fromColumn.label "Lähettäjä">
+<!ENTITY recipientColumn.label "Vastaanottaja">
+<!ENTITY correspondentColumn.label "Keskustelukumppanit">
+<!ENTITY subjectColumn.label "Aihe">
+<!ENTITY dateColumn.label "Päiväys">
+<!ENTITY priorityColumn.label "Tärkeysaste">
+<!ENTITY tagsColumn.label "Tunnus">
+<!ENTITY accountColumn.label "Tili">
+<!ENTITY statusColumn.label "Tila">
+<!ENTITY sizeColumn.label "Koko">
+<!ENTITY junkStatusColumn.label "Roskapostitila">
+<!ENTITY unreadColumn.label "Lukematta">
+<!ENTITY totalColumn.label "Yhteensä">
+<!ENTITY readColumn.label "Luettu">
+<!ENTITY receivedColumn.label "Vastaanotettu">
+<!ENTITY starredColumn.label "Tähti">
+<!ENTITY locationColumn.label "Sijainti">
+<!ENTITY idColumn.label "Saapumisjärjestys">
+<!ENTITY attachmentColumn.label "Liitteet">
+<!ENTITY deleteColumn.label "Poista">
+
+<!-- Thread Pane Tooltips -->
+<!ENTITY columnChooser2.tooltip "Valitse näkyvät sarakkeet">
+<!ENTITY selectColumn.tooltip "Valitse kaikki viestit tai poista valinta">
+<!ENTITY threadColumn2.tooltip "Näytä viestiketjut">
+<!ENTITY fromColumn2.tooltip "Järjestä lähettäjän mukaan">
+<!ENTITY recipientColumn2.tooltip "Järjestä vastaanottajan mukaan">
+<!ENTITY correspondentColumn2.tooltip "Järjestä keskustelukumppaneiden mukaan">
+<!ENTITY subjectColumn2.tooltip "Järjestä aiheen mukaan">
+<!ENTITY dateColumn2.tooltip "Järjestä päiväyksen mukaan">
+<!ENTITY priorityColumn2.tooltip "Järjestä tärkeysasteen mukaan">
+<!ENTITY tagsColumn2.tooltip "Järjestä tunnuksen mukaan">
+<!ENTITY accountColumn2.tooltip "Järjestä tilin mukaan">
+<!ENTITY statusColumn2.tooltip "Järjestä tilan mukaan">
+<!ENTITY sizeColumn2.tooltip "Järjestä koon mukaan">
+<!ENTITY junkStatusColumn2.tooltip "Järjestä roskapostitilan mukaan">
+<!ENTITY unreadColumn2.tooltip "Viestiketjun lukematta olevien viestien määrä">
+<!ENTITY totalColumn2.tooltip "Viestien määrä viestiketjussa">
+<!ENTITY readColumn2.tooltip "Järjestä luettujen mukaan">
+<!ENTITY receivedColumn2.tooltip "Järjestä vastaanottopäivän mukaan">
+<!ENTITY starredColumn2.tooltip "Järjestä tähden olemassaolon mukaan">
+<!ENTITY locationColumn2.tooltip "Järjestä sijainnin mukaan">
+<!ENTITY idColumn2.tooltip "Järjestä saapumisjärjestyksen mukaan">
+<!ENTITY attachmentColumn2.tooltip "Järjestä liitteiden mukaan">
+<!ENTITY deleteColumn.tooltip "Poista viesti">
+
+<!-- Thread Pane Context Menu -->
+<!ENTITY contextNewMsgFromTemplate.label "Uusi viesti mallista">
+<!ENTITY contextOpenNewWindow.label "Avaa viesti uudessa ikkunassa">
+<!ENTITY contextOpenNewWindow.accesskey "A">
+<!-- The contextOpenNewTab.accesskey ("T") potentially conflicts with
+ cutCmd.accessKey which is defined in textcontext.dtd from toolkit. Right
+ now, both menu items can't be visible at the same time, but should someone
+ enable copy/paste of message, this key would probably need to be changed. -->
+<!ENTITY contextOpenNewTab.label "Avaa viesti uudessa välilehdessä">
+<!ENTITY contextOpenNewTab.accesskey "v">
+<!ENTITY contextOpenConversation.label "Avaa viesti keskusteluna">
+<!ENTITY contextOpenConversation.accesskey "k">
+<!ENTITY contextOpenContainingFolder.label "Avaa viesti sisältävässä kansiossa">
+<!ENTITY contextOpenContainingFolder.accesskey "s">
+<!ENTITY contextEditMsgAsNew.label "Muokkaa uutena viestinä">
+<!ENTITY contextEditMsgAsNew.accesskey "M">
+<!ENTITY contextEditDraftMsg.label "Muokkaa viestiluonnosta">
+<!ENTITY contextEditTemplate.label "Muokkaa mallia">
+<!ENTITY contextEditTemplate.accesskey "m">
+<!ENTITY contextArchive.label "Arkistoi">
+<!ENTITY contextArchive.accesskey "o">
+<!ENTITY contextReplySender.label "Vastaa vain lähettäjälle">
+<!ENTITY contextReplySender.accesskey "n">
+<!ENTITY contextReplyNewsgroup2.label "Osoita vastaukset ryhmään">
+<!ENTITY contextReplyNewsgroup2.accesskey "r">
+<!ENTITY contextReplyAll.label "Vastaa kaikille">
+<!ENTITY contextReplyAll.accesskey "a">
+<!ENTITY contextReplyList.label "Vastaa listalle">
+<!ENTITY contextReplyList.accesskey "l">
+<!ENTITY contextForward.label "Välitä">
+<!ENTITY contextForward.accesskey "ä">
+<!ENTITY contextForwardAsMenu.label "Välitä">
+<!ENTITY contextForwardAsMenu.accesskey "V">
+<!ENTITY contextForwardAsInline.label "Rungossa">
+<!ENTITY contextForwardAsInline.accesskey "R">
+<!ENTITY contextForwardAsAttachmentItem.label "Liitteenä">
+<!ENTITY contextForwardAsAttachmentItem.accesskey "L">
+<!ENTITY contextMultiForwardAsAttachment.label "Välitä liitteinä">
+<!ENTITY contextMultiForwardAsAttachment.accesskey "i">
+<!ENTITY contextMoveMsgMenu.label "Siirrä kansioon">
+<!ENTITY contextMoveMsgMenu.accesskey "S">
+<!ENTITY contextMoveCopyMsgRecentMenu.label "Nykyinen">
+<!ENTITY contextMoveCopyMsgRecentMenu.accesskey "T">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.label "Suosikit">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.accesskey "o">
+<!ENTITY contextCopyMsgMenu.label "Kopioi kansioon">
+<!ENTITY contextCopyMsgMenu.accesskey "K">
+<!ENTITY contextKillThreadMenu.label "Ohita viestiketju">
+<!ENTITY contextKillSubthreadMenu.accesskey "a">
+<!ENTITY contextKillThreadMenu.accesskey "O">
+<!ENTITY contextKillSubthreadMenu.label "Ohita alaviestiketju">
+<!ENTITY contextWatchThreadMenu.label "Tarkkaile viestiketjua">
+<!-- LOCALIZATION NOTE (contextWatchThreadMenu.accesskey):
+ In the en-US locale we ran out of access keys, so there is an empty access key for
+ Watch Thread. Localizers can pick a suitable key
+ -->
+<!ENTITY contextWatchThreadMenu.accesskey "">
+<!ENTITY contextSaveAs.label "Tallenna nimellä…">
+<!ENTITY contextSaveAs.accesskey "n">
+<!ENTITY contextPrint.label "Tulosta…">
+<!ENTITY contextPrint.accesskey "o">
+<!ENTITY contextPrintPreview.label "Tulostuksen esikatselu">
+<!ENTITY contextPrintPreview.accesskey "u">
+
+<!-- LOCALIZATION NOTE (columnPicker.applyTo.label):
+ This option in the thread pane column picker pops up a sub-menu containing
+ the "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" options. This item indicates
+ a desire to apply the currently displayed set of columns to some other
+ folder(s). The sub-menu items indicate whether we want to apply it to just
+ a folder or also its children.
+ -->
+<!ENTITY columnPicker.applyTo.label "Käytä sarakkeita…">
+<!-- LOCALIZATION NOTE (columnPicker.applyToFolder.label):
+ This option in the thread pane column picker is found on a sub-menu beneath
+ the "columnPicker.applyTo.label" alongside
+ "columnPicker.applyToFolderAndChildren.label". It indicates a desire to
+ apply the currently display thread pane column settings to a single folder
+ that the user selects using the same widget as the move to/copy to
+ mechanism (via a series of popups).
+ -->
+<!ENTITY columnPicker.applyToFolder.label "Kansiolle…">
+<!-- LOCALIZATION NOTE (columnPicker.applyToFolderAndChildren.label):
+ This option in the thread pane column picker is found on a sub-menu beneath
+ the "columnPicker.applyTo.label" alongside
+ "columnPicker.applyToFolder.label". It indicates a desire to
+ apply the currently display thread pane column settings to a folder and all
+ of its descendents. The user selects the folder using the same widget as the
+ move to/copy to mechanism (via a series of popups).
+ -->
+<!ENTITY columnPicker.applyToFolderAndChildren.label "Kansiolle ja sen alikansioille…">
+<!-- LOCALIZATION NOTE (columnPicker.thisFolder.label):
+ This is used in the folder selection widget for the
+ "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" menu options. Whenever
+ a folder has children, it results in a menu popup; the first menu item
+ in that popup is given this label to indicate that that folder should be
+ selected. For example, if folder "A" has two children, "B" and "C", then
+ when the user hovers over "A", a new popup menu will be displayed whose
+ items are "This folder", "B", and "C". This is the equivalent of the
+ "File here" option for the move to/copy to widget.
+ -->
+<!ENTITY columnPicker.thisFolder.label "Tälle kansiolle">
+
+<!-- Media (video/audio) controls -->
+<!ENTITY contextPlay.label "Toista">
+<!ENTITY contextPlay.accesskey "T">
+<!ENTITY contextPause.label "Pysäytä">
+<!ENTITY contextPause.accesskey "P">
+<!ENTITY contextMute.label "Vaimenna">
+<!ENTITY contextMute.accesskey "V">
+<!ENTITY contextUnmute.label "Palauta ääni">
+<!ENTITY contextUnmute.accesskey "P">
+
+<!-- Quick Search Bar -->
+<!-- LOCALIZATION NOTE (quickSearchCmd.key):
+ This is actually the key used for the global message search box; we have
+ not changed
+ -->
+<!ENTITY quickSearchCmd.key "k">
+<!-- LOCALIZATION NOTE (search.label.base1):
+ This is the base of the empty text for the global search box. We replace
+ #1 with the contents of the appropriate search.keyLabel.* value for the
+ platform.
+ The goal is to convey to the user that typing in the box will allow them
+ to search for messages globally and that there is a hotkey they can press
+ to get to the box faster. If the global indexer is disabled, the search
+ box will be collapsed and the user will never see this message.
+ -->
+<!ENTITY search.label.base1 "Etsi #1">
+<!-- LOCALIZATION NOTE (search.keyLabel.nonmac):
+ The description of the key-binding to get into the global search box on
+ windows and linux (which use the control key). We use the key defined in
+ the quickSearchCmd.key entity defined above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.nonmac "&lt;Ctrl+K&gt;">
+<!-- LOCALIZATION NOTE (search.keyLabel.mac):
+ The description of the key-binding to get into the global search box on mac
+ systems. We use the key defined in the quickSearchCmd.key entity defined
+ above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.mac "&lt;&#x2318;K&gt;">
+
+<!-- Message Header Context Menu -->
+<!ENTITY AddToAddressBook.label "Lisää osoitekirjaan…">
+<!ENTITY AddToAddressBook.accesskey "L">
+<!ENTITY AddDirectlyToAddressBook.label "Lisää osoitekirjaan">
+<!ENTITY AddDirectlyToAddressBook.accesskey "L">
+<!ENTITY EditContact1.label "Muokkaa yhteystietoja">
+<!ENTITY EditContact1.accesskey "M">
+<!ENTITY ViewContact.label "Näytä yhteystiedot">
+<!ENTITY ViewContact.accesskey "N">
+<!ENTITY SubscribeToNewsgroup.label "Tilaa keskusteluryhmä">
+<!ENTITY SubscribeToNewsgroup.accesskey "T">
+<!ENTITY SendMessageTo.label "Lähetä viesti">
+<!ENTITY SendMessageTo.accesskey "ä">
+<!ENTITY CopyEmailAddress.label "Kopioi sähköpostiosoite">
+<!ENTITY CopyEmailAddress.accesskey "s">
+<!ENTITY CopyNameAndEmailAddress.label "Kopioi nimi ja sähköpostiosoite">
+<!ENTITY CopyNameAndEmailAddress.accesskey "n">
+<!ENTITY CopyNewsgroupName.label "Kopioi keskusteluryhmän nimi">
+<!ENTITY CopyNewsgroupName.accesskey "e">
+<!ENTITY CopyNewsgroupURL.label "Kopioi keskusteluryhmän URL">
+<!ENTITY CopyNewsgroupURL.accesskey "U">
+<!ENTITY CreateFilterFrom.label "Luo viestistä suodatin…">
+<!ENTITY CreateFilterFrom.accesskey "u">
+<!ENTITY reportPhishingURL.label "Ilmoita sähköpostihuijauksesta">
+<!ENTITY reportPhishingURL.accesskey "I">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Hae sanastoja…">
+<!ENTITY spellAddDictionaries.accesskey "H">
+
+<!-- Content Pane Context Menu -->
+<!ENTITY saveLinkAsCmd.label "Tallenna kohde nimellä…">
+<!ENTITY saveLinkAsCmd.accesskey "T">
+<!ENTITY saveImageAsCmd.label "Tallenna kuva nimellä…">
+<!ENTITY saveImageAsCmd.accesskey "a">
+<!ENTITY copyLinkCmd.label "Kopioi linkin osoite">
+<!ENTITY copyLinkCmd.accesskey "o">
+<!ENTITY copyImageAllCmd.label "Kopioi kuvan osoite">
+<!ENTITY copyImageAllCmd.accesskey "I">
+<!ENTITY copyEmailCmd.label "Kopioi sähköpostiosoite">
+<!ENTITY copyEmailCmd.accesskey "s">
+<!ENTITY stopCmd.label "Pysäytä">
+<!ENTITY stopCmd.accesskey "P">
+<!ENTITY reloadCmd.label "Päivitä">
+<!ENTITY reloadCmd.accesskey "ä">
+<!ENTITY openInBrowser.label "Avaa selaimessa">
+<!ENTITY openInBrowser.accesskey "s">
+<!ENTITY openLinkInBrowser.label "Avaa linkki selaimessa">
+<!ENTITY openLinkInBrowser.accesskey "l">
+
+<!-- Statusbar -->
+<!ENTITY statusText.label "Valmis">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.label "Pienennä ikkuna">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Näytä kaikki">
+<!ENTITY zoomWindow.label "Suurenna ikkunaa">
+
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac2.label "Asetukset">
+<!ENTITY preferencesCmdMac.commandkey ",">
+<!ENTITY preferencesCmdMac.modifiers "accel">
+<!ENTITY servicesMenuMac.label "Palvelut">
+<!ENTITY hideThisAppCmdMac.label "Piilota &brandShortName;">
+<!ENTITY hideThisAppCmdMac.commandkey "H">
+<!ENTITY hideThisAppCmdMac.modifiers "accel">
+<!ENTITY hideOtherAppsCmdMac.label "Piilota muut">
+<!ENTITY hideOtherAppsCmdMac.commandkey "H">
+<!ENTITY hideOtherAppsCmdMac.modifiers "accel,alt">
+<!ENTITY showAllAppsCmdMac.label "Näytä kaikki">
+
+<!-- Mac OS X Dock Icon pop-up menu -->
+<!ENTITY dockOptions.label "Sovelluskuvakkeen asetukset…">
+<!ENTITY writeNewMessageDock.label "Kirjoita uusi viesti">
+<!ENTITY openAddressBookDock.label "Avaa osoitekirja">
+
+<!-- Content tab Navigation buttons -->
+<!ENTITY browseBackButton.tooltip "Siirry sivu taaksepäin">
+<!ENTITY browseForwardButton.tooltip "Siirry sivu eteenpäin">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.properties
new file mode 100644
index 0000000000..10beea3e27
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messenger.properties
@@ -0,0 +1,768 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the messenger application
+#
+
+# LOCALIZATION NOTE(statusMessage):
+# Do not translate the words %1$S and %2$S below. Place the word %1$S where the
+# account name should appear and %2$S where the status message should appear.
+# EXAMPLE: Jim's Account: Downloading messages...
+statusMessage=%1$S: %2$S
+
+removeAccount=Poista tili…
+newFolderMenuItem=Kansio…
+newSubfolderMenuItem=Alikansio…
+newFolder=Uusi kansio…
+newSubfolder=Uusi alikansio…
+markFolderRead=Merkitse kansio luetuksi;Merkitse kansiot luetuksi
+markNewsgroupRead=Merkitse keskusteluryhmä luetuksi;Merkitse keskusteluryhmät luetuiksi
+folderProperties=Kansion ominaisuudet
+newTag=Uusi tunnus…
+# LOCALIZATION NOTE (getNextNewsMessages): Semi-colon list of plural forms.
+# #1 is the number of news messages to get.
+getNextNewsMessages=Nouda seuraava keskusteluryhmäviesti;Nouda seuraava #1 keskusteluryhmäviestiä
+advanceNextPrompt=Siirrytäänkö kansion %S seuraavaan lukematta olevaan viestiin?
+titleNewsPreHost=palvelimella
+replyToSender=Vastaa lähettäjälle
+reply=Vastaa
+EMLFiles=Viestitiedostot (*.eml)
+OpenEMLFiles=Avaa viesti
+# LOCALIZATION NOTE(defaultSaveMessageAsFileName): Do not translate ".eml"
+# in the line below. Also, the complete file name should be 8.3.
+defaultSaveMessageAsFileName=viesti.eml
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+longMsgSubjectTruncator=...
+SaveMailAs=Tallenna viesti nimellä
+SaveAttachment=Tallenna liitetiedosto
+SaveAllAttachments=Tallenna kaikki liitetiedostot
+DetachAttachment=Poista liite
+DetachAllAttachments=Poista kaikki liitteet
+ChooseFolder=Valitse kansio
+MessageLoaded=Viesti ladattu…
+PreviewTitle=%S - %S
+saveAttachmentFailed=Liitetiedoston tallentaminen ei onnistunut. Tarkista tiedoston nimi ja yritä uudelleen.
+saveMessageFailed=Viestin tallentaminen epäonnistui. Tarkista tiedoston nimi ja yritä myöhemmin uudelleen.
+fileExists=Tiedosto %S on jo olemassa. Korvataanko se?
+# LOCALIZATION NOTE(failedToReadFile): %1$S is replaced by the file name, %2$S is replaced by the reason the file load failed.
+failedToReadFile=Tiedostoa %1$S ei onnistuttu lukemaan syystä: %2$S
+
+downloadingNewsgroups=Ladataan keskusteluryhmiä yhteydettömässä tilassa työskentelyä varten
+downloadingMail=Noudetaan postia yhteydettömässä tilassa työskentelyä varten
+sendingUnsent=Lähetetään lähteviä viestejä
+
+folderExists=Tämän niminen kansio on jo olemassa. Anna toinen nimi.
+# LOCALIZATION NOTE(confirmDuplicateFolderRename): %1$S is name of folder being moved, %2$S is parent folder name, %3$S is proposed new folder name
+confirmDuplicateFolderRename=Alakansio nimellä '%1$S' on jo olemassa kansiossa '%2$S'. Siirretäänkö kansio uudella nimellä '%3$S'?
+folderCreationFailed=Kansiota ei voitu luoda, koska antamassasi kansion nimessä on tunnistamaton merkki. Anna toinen nimi ja yritä uudelleen.
+
+compactingFolder=Tiivistetään kansiota %S…
+# LOCALIZATION NOTE(compactingDone): %1$S is the compaction gain.
+compactingDone=Kansiot tiivistetty (arviolta %1$S tilaa vapautui).
+
+confirmFolderDeletionForFilter=Kansion "%S" poistaminen poistaa käytöstä kaikki siihen liittyvät suodattimet. Poistetaanko kansio?
+alertFilterChanged=Tähän kansioon liittyvät suodattimet päivitetään.
+filterDisabled=Kansiota "%S" ei löydy, joten tähän kansioon liittyvät suodattimet poistetaan käytöstä. Varmista, että kansio on olemassa ja että suodattimet osoittavat oikeaan kohdekansioon.
+filterFolderDeniedLocked=Viestejä ei voitu suodattaa kansioon %S koska toinen toiminto on varannut kansion.
+parsingFolderFailed=Kansiota %S ei voida avata, koska jokin toinen toiminto on varannut sen. Odota, kunnes toiminto on valmis, ja valitse kansio sitten uudelleen.
+deletingMsgsFailed=Viestejä kansiosta %S ei voitu poistaa, koska jokin toinen toiminto on varannut kansion. Odota, kunnes toiminto on valmis, ja yritä sitten uudelleen.
+alertFilterCheckbox=\u00C4lä varoita minua jatkossa.
+compactFolderDeniedLock=Kansiota %S ei voida tiivistää, koska toinen toiminto on varannut kansion. Yritä uudelleen, kun toiminto on valmis.
+compactFolderWriteFailed=Kansiota %S ei voida tiivistää, koska kansioon kirjoittaminen epäonnistui. Varmista, että sinulla on tarpeeksi levytilaa ja kirjoitusoikeudet. Yritä sen jälkeen uudestaan.
+compactFolderInsufficientSpace=Joitain kansiota (esim. "%S") ei voida tiivistää, koska kiintolevyllä ei ole riittävästi vapaata tilaa. Vapauta levytilaa poistamalla tiedostoja ja yritä uudestaan.
+filterFolderHdrAddFailed=Viestejä ei voitu suodattaa kansioon %S, koska viestin lisääminen kansioon epäonnistui. Tarkista, että kansio näkyy normaalisti tai yritä korjata sitä kansion ominaisuuksista.
+filterFolderWriteFailed=Viestejä ei voitu suodattaa kansioon %S, koska kansioon kirjoittaminen epäonnistui. Varmista, että sinulla on tarpeeksi levytilaa ja kirjoitusoikeudet. Yritä sen jälkeen uudelleen.
+copyMsgWriteFailed=Viestejä ei voitu siirtää tai kopioida kansioon %S, koska kansioon kirjoittaminen epäonnistui. Vapauttaaksesi levytilaa valitse Tiedosto-valikosta ensin Tyhjennä roskakori ja sitten Tiivistä kansiot, ja yritä uudelleen.
+cantMoveMsgWOBodyOffline=Kun olet yhteydettömässä tilassa, et voi siirtää tai kopioida viestejä, joita ei ole erityisesti noudettu yhteydettömässä tilassa käytettäväksi. Valitse posti-ikkunan Tiedosto-valikosta Yhteydetön tila ja sitten Yhteystila, ja yritä uudelleen.
+operationFailedFolderBusy=Toimintoa ei voi suorittaa, koska toinen toiminto on varannut kansion. Odota kunnes aikaisempi toiminto on valmis ja yritä sitten uudelleen.
+folderRenameFailed=Kansiota ei voitu nimetä uudelleen. Mahdollisesti kansiota jäsennetään uudelleen tai nimi ei ole kelvollinen kansion nimi.
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S tilillä %2$S
+# LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
+filterFolderTruncateFailed=Suodatin siirsi viestin kansioon %1$S, mutta saapuneet-kansion järjestelyssä tapahtui virhe. Voit joutua sulkemaan %2$Sin ja poistamaan tiedoston INBOX.msf.
+
+mailboxTooLarge=Kansio %S on täynnä, eikä sinne voi tallentaa enempää viestejä. Vapauta tilaa poistamalla vanhoja tai tarpeettomia viestejä ja tiivistämällä kansio sen jälkeen.
+outOfDiskSpace=Kiintolevytila ei riitä uusille viesteille. Vapauta levytilaa poistamalla vanhoja viestejä, tyhjentämällä roskakori tai tiivistämällä kansioita ja yritä sitten uudelleen.
+errorGettingDB=Yhteenvetotiedoston avaus kohteelle %S epäonnistui. Levyllä oli virhe tai polku on liian pitkä.
+defaultServerTag=(Oletus)
+
+# Used in message database list view to provide a text value for graphic based cells.
+messageUnread=Lukematta
+messageHasFlag=Tähti
+messageHasAttachment=On liitteitä
+messageJunk=Roskapostia
+messageExpanded=Laajennuttu
+messageCollapsed=Kutistettu
+
+# Used in the SMTP Account Settings panel when a server value has no properties
+smtpServerList-NotSpecified=<ei määritelty>
+smtpServer-ConnectionSecurityType-0=Ei mitään
+smtpServer-ConnectionSecurityType-1=STARTTLS, jos mahdollista
+smtpServer-ConnectionSecurityType-2=STARTTLS
+smtpServer-ConnectionSecurityType-3=SSL/TLS
+smtpServers-confirmServerDeletionTitle=Poista palvelin
+smtpServers-confirmServerDeletion=Poistetaanko palvelin %S?
+
+# Account Settings - Both Incoming and SMTP server
+authNo=Ei todennusta
+authOld=Salasana, alkuperäinen tapa (turvaton)
+authPasswordCleartextInsecurely=Salasana, turvaton lähetys
+authPasswordCleartextViaSSL=Normaali salasana
+authPasswordEncrypted=Salattu salasana
+authKerberos=Kerberos / GSSAPI
+authExternal=TLS-varmenne
+authNTLM=NTLM
+authOAuth2=OAuth2
+authAnySecure=Mikä tahansa turvallinen tapa (vanhentunut)
+authAny=Mikä tahansa (turvaton)
+
+# OAuth2 window title
+# LOCALIZATION NOTE(oauth2WindowTitle):
+# %1$S is the username (or full email address) used for authentication.
+# %2$S is the hostname of the account being authenticated.
+oauth2WindowTitle=Kirjoita salasana tunnukselle %1$S palvelimella %2$S
+
+# LOCALIZATION NOTE(serverType-nntp): Do not translate "NNTP" in the line below
+serverType-nntp=Keskusteluryhmäpalvelin (NNTP)
+# LOCALIZATION NOTE(serverType-pop3): Do not translate "POP" in the line below
+serverType-pop3=POP-sähköpostipalvelin
+# LOCALIZATION NOTE(serverType-imap): Do not translate "IMAP" in the line below
+serverType-imap=IMAP-sähköpostipalvelin
+serverType-none=Paikallinen sähköpostivarasto
+
+sizeColumnTooltip2=Napsauta järjestääksesi koon mukaan
+sizeColumnHeader=Koko
+linesColumnTooltip2=Napsauta järjestääksesi rivimäärän mukaan
+linesColumnHeader=Rivejä
+
+# LOCALIZATION NOTE (getMsgButtonTooltip): Do not translate the word "%S" below.
+# Place the word "%S" in your translation where the name of the comma separated accounts should appear.
+getMsgButtonTooltip=Nouda uudet viestit tileille %S
+# Used to separate email addresses in a list. Note the trailing space ', '
+getMsgButtonTooltip.listSeparator=,\u0020
+
+# status feedback stuff
+documentDone=
+documentLoading=Ladataan viestiä…
+
+# LOCALIZATION NOTE (autosyncProgress): Do not translate the word "%1$S" or "%2$S" below.
+# Place the word %1$S in your translation where the name of the comma separated folders should appear.
+# Place the word %2$S in your translation where the name of the comma separated accounts should appear.
+autosyncProgress=Synkronoidaan viestejä kansioista %1$S tileiltä %2$S…
+
+unreadMsgStatus=Lukematta: %S
+selectedMsgStatus=Valittuna: %S
+totalMsgStatus=Yhteensä: %S
+
+# localized folder names
+
+localFolders=Paikalliset kansiot
+
+# LOCALIZATION NOTE (inboxFolderName): OK to translate all foldernames, bugzilla #57440 & bugzilla #23625 fixed
+inboxFolderName=Saapuneet
+trashFolderName=Roskakori
+sentFolderName=Lähetetyt
+draftsFolderName=Luonnokset
+templatesFolderName=Mallipohjat
+outboxFolderName=Lähtevät
+junkFolderName=Roskapostit
+archivesFolderName=Arkisto
+
+# "Normal" priority is often blank,
+# depending on the consumers of these strings
+priorityLowest=Matalin
+priorityLow=Matala
+priorityNormal=Normaali
+priorityHigh=Korkea
+priorityHighest=Korkein
+
+#Group by date thread pane titles
+today=Tänään saapuneet
+yesterday=Eilen saapuneet
+lastWeek=Viikon aikana saapuneet
+last7Days=Viimeiset 7 päivää
+twoWeeksAgo=Viime viikolla saapuneet
+last14Days=Viimeiset 14 päivää
+older=Vanhemmat
+futureDate=Tulevat
+
+#Grouped By Tags
+untaggedMessages=Viestit, joihin ei liity tunnusta
+
+# Grouped by status
+messagesWithNoStatus=Viestit, joilla ei ole tilaa
+
+#Grouped by priority
+noPriority=Ei tärkeysastetta
+
+#Grouped by has attachments
+noAttachments=Ei liitteitä
+attachments=On liitteitä
+
+#Grouped by starred
+notFlagged=Ei tähteä
+groupFlagged=Tähti
+
+# defaults descriptions for tag prefs listed in mailnews.js
+# (we keep the .labels. names for backwards compatibility)
+mailnews.tags.remove=Poista kaikki tunnukset
+mailnews.labels.description.1=Tärkeä
+mailnews.labels.description.2=Työ
+mailnews.labels.description.3=Oma
+mailnews.labels.description.4=Tehtävä
+mailnews.labels.description.5=Myöhemmin
+
+# Format definition tag menu texts.
+# This is necessary in order to get the accesskeys to be the on the first
+# character of the menu text instead of after the menu text.
+# If a key definition exists for the tag at index n, that key's key will be
+# taken as the accesskey, eg.
+# <key id="key_tag3" key="&tagCmd3.key;" oncommand="ToggleMessageTagKey(3);"/>
+# makes the third tag have the accesskey &tagCmd3.key;.
+# In the menuitem's label, this accesskey appears at %1$S below; %2$S will be
+# replaced by the tag label.
+mailnews.tags.format=%1$S %2$S
+
+replied=Vastattu
+forwarded=Välitetty
+redirected=Uudelleenohjattu
+new=Uusi
+read=Luettu
+flagged=Merkitty tähdellä
+
+# for junk status picker in search and mail views
+junk=Roskapostia
+
+# for junk score origin picker in search and mail views
+junkScoreOriginPlugin=Liitännäinen
+junkScoreOriginFilter=Suodatin
+junkScoreOriginWhitelist=Valkoinen lista
+junkScoreOriginUser=Käyttäjä
+junkScoreOriginImapFlag=IMAP-lippu
+
+# for the has attachment picker in search and mail views
+hasAttachments=Sisältää liitteitä
+
+# for the Tag picker in search and mail views.
+tag=Tunnukset
+
+# LOCALIZATION NOTE(andOthers):
+# for multiple authors, add this abbreviation to the first author to indicate
+# there are more; for the From column in the threadpane message list.
+andOthers=jne.
+
+# whether to also show phonetic fields in the addressbook
+# LOCALIZATION NOTE(mail.addr_book.show_phonetic_fields):
+# the only valid values are: true OR false (choose from the untranslated English words)
+mail.addr_book.show_phonetic_fields=false
+
+# valid format options are:
+# 1: yyyy/mm/dd
+# 2: yyyy/dd/mm
+# 3: mm/dd/yyyy
+# 4: mm/yyyy/dd
+# 5: dd/mm/yyyy
+# 6: dd/yyyy/mm
+#
+# 0: auto-detect the current locale format
+# a separator has to be either '/', '-', '.' and the year in Christian year
+# otherwise mm/dd/yyyy (option 3) is used
+#
+mailnews.search_date_format=0
+# separator for search date (e.g. "/", "-"), or empty when search_date_format is zero
+mailnews.search_date_separator=
+# leading zeros for day and month values, not used if mailnews.search_date_format is not zero
+mailnews.search_date_leading_zeros=true
+
+# offline msg
+nocachedbodybody2=Viestin runkoa ei ole ladattu palvelimelta luettavaksi \
+yhteydettömässä tilassa. Lukeaksesi viestin, siirry yhteystilaan poistamalla \
+valinta Tiedosto-valikon alavalikosta Yhteydetön tila kohdasta Työskentele \
+yhteydettömässä tilassa. Voit valita, mitkä viestit ja kansiot \
+voidaan lukea yhteydettömässä tilassa valitsemalla samasta valikosta \
+Nouda/Synkronoi kun ollaan yhteystilassa. Voit myös määritellä \
+levytilan käyttöasetukset, jotta suurikokoisia viestejä ei ladata.
+
+# LOCALIZATION NOTE(acctCentralTitleFormat): %1$S is brand, %2$S is account type, %3$S is account name
+acctCentralTitleFormat=%1$S %2$S - %3$S
+mailAcctType=Sähköposti
+newsAcctType=Keskusteluryhmät
+feedsAcctType=Syötteet
+
+# LOCALIZATION NOTE(nocachedbodytitle): Do not translate "<TITLE>" or "</TITLE>" in the line below
+nocachedbodytitle=<TITLE>Siirry yhteystilaan, jotta voit lukea tämän viestin</TITLE>\n
+
+# mailWindowOverlay.js
+confirmUnsubscribeTitle=Vahvista tilauksen peruminen
+confirmUnsubscribeText=Peruutetaanko ryhmän %S tilaus?
+confirmUnsubscribeManyText=Peruutetaanko näiden ryhmien tilaus?
+restoreAllTabs=Palauta kaikki välilehdet
+
+confirmMarkAllFoldersReadTitle=Merkitse kaikki kansiot luetuiksi
+confirmMarkAllFoldersReadMessage=Haluatko varmasti merkitä tämän tilin kaikkien kansioiden kaikki viestit luetuiksi?
+
+# LOCALIZATION NOTE(junkBarMessage): %S is brand
+junkBarMessage=%S epäilee viestiä roskapostiksi.
+junkBarButton=Ei roskapostia
+junkBarButtonKey=E
+junkBarInfoButton=Lue lisää
+junkBarInfoButtonKey=L
+
+# LOCALIZATION NOTE(remoteContentBarMessage): %S is brand
+remoteContentBarMessage=%S ei ladannut viestiin liitettyä etäsisältöä yksityisyydensuojan vuoksi.
+remoteContentPrefLabel=Asetukset
+remoteContentPrefAccesskey=A
+remoteContentPrefLabelUnix=Asetukset
+remoteContentPrefAccesskeyUnix=A
+
+# LOCALIZATION NOTE(remoteAllowResource): %S is origin
+remoteAllowResource=Salli etäsisältö lähteestä %S
+# LOCALIZATION NOTE(remoteAllowAll): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 is the number of origins
+remoteAllowAll=Salli etäsisältö edellämainitusta lähteestä;Salli etäsisältö #1 edellämainitusta lähteestä
+
+phishingBarMessage=Tämä viesti voi olla huijaus.
+phishingBarPrefLabel=Asetukset
+phishingBarPrefAccesskey=A
+phishingBarPrefLabelUnix=Asetukset
+phishingBarPrefAccesskeyUnix=A
+
+mdnBarIgnoreButton=Ohita pyyntö
+mdnBarIgnoreButtonKey=O
+mdnBarSendReqButton=Lähetä kuittaus
+mdnBarSendReqButtonKey=L
+
+draftMessageMsg=This is a draft message.
+draftMessageButton=Edit
+draftMessageButtonKey=E
+
+# msgHdrViewOverlay.js
+openLabel=Avaa
+openLabelAccesskey=A
+saveLabel=Tallenna nimellä…
+saveLabelAccesskey=T
+detachLabel=Irrota…
+detachLabelAccesskey=I
+deleteLabel=Poista
+deleteLabelAccesskey=o
+openFolderLabel=Avaa sisältävä kansio
+openFolderLabelAccesskey=K
+deleteAttachments=Seuraavat liitteet poistetaan pysyvästi tästä viestistä:\n%S\nTätä toimintoa ei voi kumota. Jatketaanko toimintoa?
+detachAttachments=Seuraavat liitteet tallennettiin onnistuneesti ja ne poistetaan pysyvästi tästä viestistä:\n%S\nTätä toimintoa ei voi kumota. Jatketaanko toimintoa?
+deleteAttachmentFailure=Valittujen liitetiedostojen poistaminen ei onnistunut.
+emptyAttachment=Tämä liitetiedosto näyttäisi olevan tyhjä.\nTarkista sähköpostin lähettäjältä pitäisikö näin olla.\nUsein yritysten palomuurit tai virustentorjuntaohjelmat poistavat liitteet.
+externalAttachmentNotFound=Viestin liitetiedostoa tai linkin kohdetta ei löydy tai se ei ole enää käytettävissä tässä sijainnissa.
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of attachments
+attachmentCount=#1 liite;#1 liitettä
+
+# LOCALIZATION NOTE (attachmentCountSingle): This is the format for the
+# attachment header when a message has only one attachment. This is separate
+# from attachmentCount above, since attachmentCountSingle typically ends with a
+# colon.
+attachmentCountSingle=1 liite:
+
+# LOCALIZATION NOTE (attachmentSizeUnknown): The string to show for the total
+# size of all attachments when none of the attachments' sizes can be detected.
+attachmentSizeUnknown=tuntematon koko
+
+# LOCALIZATION NOTE (attachmentSizeAtLeast): The string to show for the total
+# size of all attachments when at least one (but not all) of the attachments'
+# sizes can't be detected. %1$S is the formatted size.
+attachmentSizeAtLeast=ainakin %1$S
+
+# This is the format for prepending accesskeys to the
+# each of the attachments in the file|attachments menu:
+# ie: 1 file.txt
+# 2 another file.txt
+attachmentDisplayNameFormat=%S %S
+
+# This is the heading for the attachment summary when printing an email
+attachmentsPrintHeader=Liitteenä:
+
+# Connection Error Messages
+# LOCALIZATION NOTE(unknownHostError): %S is the server name
+unknownHostError=Yhteys palvelimeen %S ei onnistu.
+# LOCALIZATION NOTE(connectionRefusedError): %S is the server name
+connectionRefusedError=Ei voitu yhdistää palvelimeen %S; yhdistäminen estettiin.
+# LOCALIZATION NOTE(netTimeoutError): %S is the server name
+netTimeoutError=Yhteys palvelimeen %S aikakatkaistiin.
+# LOCALIZATION NOTE(netResetError): %S is the server name
+netResetError=Yhteys palvelimeen %S nollattiin.
+# LOCALIZATION NOTE(netInterruptError): %S is the server name
+netInterruptError=Yhteys palvelimeen %S keskeytyi.
+
+recipientSearchCriteria=Aihe- tai Vastaanottaja-kentässä:
+fromSearchCriteria=Aihe- tai Lähettäjä-kentässä:
+
+# LOCALIZATION NOTE(biffNotification): %1$S is the number of new messages
+biffNotification_message=sisältää %1$S uuden viestin
+biffNotification_messages=sisältää %1$S uutta viestiä
+
+# LOCALIZATION NOTE(newMailNotification_message): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_message=Tilille %1$S vastaanotettu %2$S uusi viesti
+
+# LOCALIZATION NOTE(newMailNotification_messages): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_messages=Tilille %1$S vastaanotettu %2$S uutta viestiä
+
+# LOCALIZATION NOTE(newMailNotification_messagetitle): %1$S is subject of new message and %2$S is sender of new message.
+# This is UNIX only
+newMailNotification_messagetitle=%1$S lähettäjältä %2$S
+
+# LOCALIZATION NOTE(newMailAlert_message):
+# Semi-colon list of plural forms. See:
+# https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the name of the account, #2 is the number of new messages
+newMailAlert_message=Tilille #1 vastaanotettiin #2 uusi viesti;Tilille #1 vastaanotettiin #2 uutta viestiä
+
+# For the Quota tab in the mail folder properties dialog
+quotaPercentUsed=%S %% täynnä
+# for quota in main window (commandglue.js)
+percent=%S %%
+quotaTooltip2=IMAP-kiintiö: %S/%S käytetty. Lue lisätietoja napsauttamalla.
+
+# for message views
+confirmViewDeleteTitle=Vahvista
+confirmViewDeleteMessage=Poistetaanko tämä näkymä?
+
+# for virtual folders
+confirmSavedSearchTitle=Vahvista tallennetun haun poistaminen
+confirmSavedSearchDeleteMessage=Poistetaanko tallennettu haku?
+
+## @name ENTER_PASSWORD_PROMPT
+## @loc None
+# LOCALIZATION NOTE (passwordPrompt): Do not translate the word %S below.
+# Place the word "%S" in your translation where the email address
+# or the username should appear
+passwordPrompt=Kirjoita salasana käyttäjätunnukselle %1$S palvelimella %2$S:
+
+## @name ENTER_PASSWORD_PROMPT_TITLE
+## @loc None
+passwordTitle=Kirjoita sähköpostitilin salasana
+
+# for checking if the user really wants to open lots of messages in separate windows.
+openWindowWarningTitle=Vahvista
+# LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openWindowWarningConfirmation=Viestin avaaminen voi olla hidasta. Jatketaanko silti?;#1 viestin avaaminen voi olla hidasta. Jatketaanko silti?
+
+# for checking if the user really wants to open lots of messages in tabs.
+openTabWarningTitle=Vahvista
+# LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openTabWarningConfirmation=Viestin avaaminen voi olla hidasta. Jatketaanko silti?;#1 viestin avaaminen voi olla hidasta. Jatketaanko silti?
+
+# for warning the user that a tag they're trying to create already exists
+tagExists=Tämän niminen tunnus on jo olemassa.
+
+# title of the edit tag dialog
+editTagTitle=Muokkaa tunnusta
+
+# for the virtual folder list dialog title
+# %S is the name of the saved search folder
+editVirtualFolderPropertiesTitle=Muokkaa tallennetun haun %S asetuksia
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+virtualFolderSourcesChosen=#1 kansio valittu;#1 kansiota valittu
+
+#alert to inform the user to choose one or more folders to search for a saved search folder
+alertNoSearchFoldersSelected=Valitse ainakin yksi kansio, jossa haku suoritetaan.
+
+# These are displayed in the message and folder pane windows
+# LOCALIZATION NOTE %.*f is the abbreviated size in the appropriate units
+byteAbbreviation2=%.*f tavua
+kiloByteAbbreviation2=%.*f kt
+megaByteAbbreviation2=%.*f Mt
+gigaByteAbbreviation2=%.*f Gt
+teraByteAbbreviation2=%.*f Tt
+petaByteAbbreviation2=%.*f Pt
+
+## LOCALIZATION NOTE(folderWithAccount):
+## This is used to show folder name together with an account name.
+## %1$S = folder name
+## %2$S = account name
+folderWithAccount=%1$S - %2$S
+## LOCALIZATION NOTE(folderWithUnreadMsgs):
+## This is a concatenation of two strings to compose a folder label with unread messages.
+## %1$S = folder name
+## %2$S = count of unread messages
+folderWithUnreadMsgs=%1$S (%2$S)
+## LOCALIZATION NOTE(summarizedValue):
+## This string shows an indication that the value shown is actually a summary
+## accumulated from all subfolders.
+## %S = summarized value from all subfolders
+folderSummarizedSymbolValue=▾%S
+## LOCALIZATION NOTE(subfoldersExplanation):
+## This is a tooltip message shown on the values in the numeric folder pane columns.
+## %1$S = is the count of messages having the respective property, found in the folder under mouse cursor
+## %2$S = is the count of messages having the respective property, found in subfolders of the folder under mouse cursor
+subfoldersExplanation=%1$S tässä kansiossa, %2$S alikansioissa
+
+# Error message if message for a message id wasn't found
+errorOpenMessageForMessageIdTitle=Virhe avattaessa viestitunnusta
+errorOpenMessageForMessageIdMessage=Viestitunnukseen %S liittyvää viestiä ei löytynyt
+
+# Warnings to alert users about phishing urls
+confirmPhishingTitle=Sähköpostihuijaushälytys
+linkMismatchTitle=Havaittu virheellinen linkki
+#LOCALIZATION NOTE %1$S is the brand name, %2$S is the host name of the url being visited
+confirmPhishingUrl=%1$S arvioi tämän viestin olevan sähköpostihuijaus. Sähköpostin linkit voivat näyttää linkeiltä sivustoille, joilla haluat vierailla. Avataanko yhteys sivustoon %2$S?
+#LOCALIZATION NOTE %1$S is the host name of indicated host, %2$S is the host name of the actual host.
+confirmPhishingUrlAlternate=Napsauttamasi linkki vaikuttaa johtavan eri sivustolle kuin mihin linkin teksti viittaisi. Tätä käytetään toisinaan seuraamaan oletko napsauttanut linkkiä, mutta se voi myös olla huijaus.\n\nLinkin teksti viittaa sivustolle %1$S, mutta se johtaa sivustolle %2$S.
+#LOCALIZATION NOTE $1$S is the host name of the indicated host.
+confirmPhishingGoAhead=Siirry silti sivustolle %1$S
+#LOCALIZATION NOTE %1$S is the host name that was displayed to the user.
+confirmPhishingGoDirect=Siirry sivustolle %1$S
+
+# Check for Updates
+# LOCALIZATION NOTE (updatesItem_*): these are alternative labels for Check for Update item in Help menu.
+# Which one is used depends on Update process state.
+updatesItem_default=Hae päivityksiä…
+updatesItem_defaultFallback=Hae päivityksiä…
+updatesItem_default.accesskey=H
+updatesItem_downloading=Ladataan päivitystä %S…
+updatesItem_downloadingFallback=Ladataan päivitystä…
+updatesItem_downloading.accesskey=L
+updatesItem_resume=Jatka päivityksen %S lataamista…
+updatesItem_resumeFallback=Jatka päivityksen lataamista…
+updatesItem_resume.accesskey=J
+updatesItem_pending=Asenna ladattu päivitys heti…
+updatesItem_pendingFallback=Asenna ladattu päivitys heti…
+updatesItem_pending.accesskey=A
+
+# Folder Pane Header Title Strings
+folderPaneModeHeader_all=Kaikki kansiot
+folderPaneModeHeader_unread=Kansiot, joissa lukematta
+folderPaneModeHeader_favorite=Suosikkikansiot
+folderPaneModeHeader_recent=Kansiot, joissa tuoreita
+folderPaneModeHeader_smart=Yhdistetyt kansiot
+unifiedAccountName=Yhdistetyt kansiot
+
+# Copy / Move to Folder Again
+#LOCALIZATION NOTE %1$S is the name of the folder we will move to. moveToFolderAgainAccessKey
+# should have the same value as copyToFolderAgainAccessKey as they are the same menu item in the UI
+# moveToFolderAgainAccessKey should also be a letter that occurs before %1$S
+moveToFolderAgain=Siirrä uudestaan kansioon %1$S
+moveToFolderAgainAccessKey=u
+#LOCALIZATION NOTE %1$S is the name of the folder we will copy to
+# copyToFolderAgainAccessKey
+# should have the same value as moveToFolderAgainAccessKey as they are the same menu item in the UI
+# copyToFolderAgainAccessKey should also be a letter that occurs before %1$S
+copyToFolderAgain=Kopioi uudestaan kansioon %1$S
+copyToFolderAgainAccessKey=u
+
+#LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
+mdnBarMessageNormal=%1$S on pyytänyt kuittausta viestin lukemisesta.
+#LOCALIZATION NOTE(mdnBarMessageAddressDiffers) %1$S is the name of the sender, %2$S is the address(es) to send return receipt to
+mdnBarMessageAddressDiffers=%1$S on pyytänyt kuittausta (osoitteeseen %2$S) viestin lukemisesta.
+
+# mailCommands.js
+emptyJunkFolderTitle=Tyhjennä kansio "%S"
+emptyJunkFolderMessage=Poistetaanko roskapostikansiosta pysyvästi kaikki viestit ja alikansiot?
+emptyJunkDontAsk=Älä kysy uudelleen.
+emptyTrashFolderTitle=Tyhjennä kansio "%S"
+emptyTrashFolderMessage=Haluatko varmasti poistaa pysyvästi kaikki viestit ja alikansiot Roskakorista?
+emptyTrashDontAsk=Älä kysy uudelleen.
+
+# junkCommands.js
+junkAnalysisPercentComplete=Roskapostianalyysi %S valmis
+processingJunkMessages=Käsitellään roskapostiviestejä
+
+# Messenger bootstrapping messages
+fileNotFoundTitle = Tiedostoa ei löytynyt
+#LOCALIZATION NOTE(fileNotFoundMsg): %S is the filename
+fileNotFoundMsg = Tiedostoa %S ei ole olemassa.
+
+fileEmptyTitle = Tiedosto tyhjä
+#LOCALIZATION NOTE(fileEmptyMsg): %S is the filename
+fileEmptyMsg = Tiedosto %S on tyhjä.
+
+# LOCALIZATION NOTE (headerMoreAddrs): semicolon separated list of plural
+# forms of the word "more" as used after the number of addresses
+# currently hidden while displaying a header such as "to", "cc", or "bcc"
+# in the message header box. English has two identical forms here, so it will
+# construct strings that look like (for example) "1 more" or "20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrs=#1 lisää;#1 lisää
+
+# LOCALIZATION NOTE (headerMoreAddrsTooltip): semicolon separated list of
+# plural forms of the phrase ", and #1 more" as used in the tooltip text
+# of the more widget displayed in the header pane (see headerMoreAddrs).
+# English has two identical forms here, so it will construct strings that
+# look like (for example) ", and 1 more" or ", and 20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrsTooltip=ja #1 muu; ja #1 muuta
+
+# LOCALIZATION NOTE (headertoFieldMe): first person prepositional object
+# pronoun used in the "to" header of the message header pane. This is also
+# used for the fallback case if a header-specific localization is not
+# available.
+headertoFieldMe=Minä
+
+# LOCALIZATION NOTE (headerfromFieldMe): first person prepositional object
+# pronoun used in the "from" header of the message header pane.
+headerfromFieldMe=Minä
+
+# LOCALIZATION NOTE (headerreply-toFieldMe): first person prepositional
+# object pronoun used in the "reply-to" header of the message header pane.
+headerreply-toFieldMe=Minä
+
+# LOCALIZATION NOTE (headerccFieldMe): first person prepositional object
+# pronoun used in the "cc" header of the message header pane.
+headerccFieldMe=Minä
+
+# LOCALIZATION NOTE (headerbccFieldMe): first person prepositional object
+# pronoun used in the "bcc" header of the message header pane.
+headerbccFieldMe=Minä
+
+expandAttachmentPaneTooltip=Näytä liitetiedostopaneeli
+collapseAttachmentPaneTooltip=Piilota liitetiedostopaneeli
+
+# Shown when content tabs are being loaded.
+loadingTab=Ladataan…
+
+confirmMsgDelete.title=Vahvista poistaminen
+confirmMsgDelete.collapsed.desc=Poistetaanko viestit kutistetuista viestiketjuista?
+confirmMsgDelete.deleteNoTrash.desc=Poistetaanko viestit välittömästi siirtämättä niitä ensin roskakoriin?
+confirmMsgDelete.deleteFromTrash.desc=Poistetaanko viestit pysyvästi roskakorista?
+confirmMsgDelete.dontAsk.label=Älä kysy uudelleen.
+confirmMsgDelete.delete.label=Poista
+
+mailServerLoginFailedTitle=Kirjautuminen epäonnistui
+# LOCALIZATION NOTE (mailServerLoginFailedTitleWithAccount):
+# "%S" is the account name.
+mailServerLoginFailedTitleWithAccount=Kirjautuminen tilille ”%S” epäonnistui
+# LOCALIZATION NOTE (mailServerLoginFailed2):
+# %1$S is the host name of the server, %2$S is the user name.
+mailServerLoginFailed2=Kirjautuminen palvelimelle %1$S käyttäjänimellä %2$S epäonnistui.
+mailServerLoginFailedRetryButton=&Yritä uudestaan
+mailServerLoginFailedEnterNewPasswordButton=&Kirjoita uusi salasana
+
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.noChildren.title):
+# When the user selects a folder to apply the currently displayed columns to
+# via the "columnPicker.applyToFolder.label" menu option, this is the title of
+# the confirmation dialog used to verify they selected the correct folder. This
+# is the case in which we apply the columns only to the folder and not to any of
+# its children.
+threadPane.columnPicker.confirmFolder.noChildren.title=Saatetaanko muutokset voimaan?
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.noChildren.message):
+# When the user selects a folder to apply the currently displayed columns to
+# via the "columnPicker.applyToFolder.label" menu option, this is the text of
+# the confirmation dialog used to verify they selected the correct folder. The
+# string '%S' is replaced with the name of the folder the user selected in
+# order to help them confirm they picked what they thought they picked. This
+# is the case in which we apply the columns only to the folder and not to any of
+# its children.
+threadPane.columnPicker.confirmFolder.noChildren.message=Asetetaanko avoimen kansion sarakkeet kansiolle %S?
+
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.withChildren.title):
+# When the user selects a folder to apply the currently displayed columns to via
+# the "columnPicker.applyToFolderAndChildren.label" menu option, this is the
+# title of the confirmation dialog used to verify they selected the correct
+# folder. This is the case in which we apply the columns to the folder and all
+# of its children.
+threadPane.columnPicker.confirmFolder.withChildren.title=Saatetaanko muutokset voimaan?
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.withChildren.message):
+# When the user selects a folder to apply the currently displayed columns to via
+# the "columnPicker.applyToFolderAndChildren.label" menu option, this is the
+# text of the confirmation dialog used to verify they selected the correct
+# folder. The string '%S' is replaced with the name of the folder the user
+# selected in order to help them confirm they picked what they thought they
+# picked. This is the case in which we apply the columns to the folder and all
+# of its children.
+threadPane.columnPicker.confirmFolder.withChildren.message=Asetetaanko avoimen kansion sarakkeet kansiolle %S ja sen alikansioille?
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message=Palvelin (%S) yrittää asentaa teemaa.
+lwthemeInstallRequest.allowButton=Salli
+lwthemeInstallRequest.allowButton.accesskey=S
+
+lwthemePostInstallNotification.message=Uusi teema asennettiin.
+lwthemePostInstallNotification.undoButton=Kumoa
+lwthemePostInstallNotification.undoButton.accesskey=m
+lwthemePostInstallNotification.manageButton=Muokkaa teemoja…
+lwthemePostInstallNotification.manageButton.accesskey=M
+
+# troubleshootModeRestart
+troubleshootModeRestartPromptTitle=Käynnistä uudelleen ongelmanratkaisutilassa
+troubleshootModeRestartPromptMessage=Ongelmanratkaisutila poistaa kaikki lisäosat käytöstä ja käyttää väliaikaisesti joitain oletusasetuksia.\n Haluatko varmasti käynnistää uudelleen?
+troubleshootModeRestartButton=Käynnistä uudelleen
+
+# LOCALIZATION NOTE (downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=Päivitä versioon %S
+update.downloadAndInstallButton.accesskey=P
+
+# Sanitize
+# LOCALIZATION NOTE (sanitizeDialog2.everything.title): When "Time range to
+# clear" is set to "Everything", the Clear Recent History dialog's title is
+# changed to this. See UI mockup and comment 11 at bug 480169 -->
+sanitizeDialog2.everything.title=Poista kaikki historiatiedot
+sanitizeButtonOK=Poista heti
+# LOCALIZATION NOTE (sanitizeEverythingWarning2): Warning that appears when
+# "Time range to clear" is set to "Everything" in Clear Recent History dialog,
+# provided that the user has not modified the default set of history items to clear.
+sanitizeEverythingWarning2=Kaikki historiatiedot poistetaan.
+# LOCALIZATION NOTE (sanitizeSelectedWarning): Warning that appears when
+# "Time range to clear" is set to "Everything" in Clear Recent History dialog,
+# provided that the user has modified the default set of history items to clear.
+sanitizeSelectedWarning=Kaikki valitut kohdat tyhjennetään.
+
+learnMoreAboutIgnoreThread=Lue lisää…
+learnMoreAboutIgnoreThreadAccessKey = L
+undoIgnoreThread=Kumoa viestiketjun ohittaminen
+undoIgnoreThreadAccessKey=u
+undoIgnoreSubthread=Kumoa alaviestiketjun ohittaminen
+undoIgnoreSubthreadAccessKey=a
+# LOCALIZATION NOTE (ignoredThreadFeedback): #1 is the message thread title
+ignoredThreadFeedback=Vastauksia viestiketjuun "#1" ei näytetä.
+# LOCALIZATION NOTE (ignoredSubthreadFeedback): #1 is the message subthread title
+ignoredSubthreadFeedback=Vastauksia alaviestiketjuun "#1" ei näytetä.
+# LOCALIZATION NOTE (ignoredThreadsFeedback): Semi-colon list of plural forms.
+# #1 is the number of threads
+ignoredThreadsFeedback=Vastauksia valittuun viestiketjuun ei näytetä.;Vastauksia #1 valittuun viestiketjuun ei näytetä.
+# LOCALIZATION NOTE (ignoredSubthreadsFeedback): Semi-colon list of plural forms.
+# #1 is number of subthreads
+ignoredSubthreadsFeedback=Vastauksia valittuun alaviestiketjuun ei näytetä.;Vastauksia #1 valittuun alaviestiketjuun ei näytetä.
+# LOCALIZATION NOTE (saveAsType): replace %S with the extension of the file to be saved.
+saveAsType=%S-tiedosto
+
+# LOCALIZATION NOTE (openSearch.label): The label used in the autocomplete
+# widget to refer to a search on the web for a short string containing at most
+# 15 characters. %1$S is the search provider to use. %2$S is the string to
+# search for.
+openSearch.label=Hae %1$S hakukoneella ”%2$S”
+
+# LOCALIZATION NOTE (openSearch.label.truncated): The label used in the
+# autocomplete widget to refer to a search on the web for a short string
+# containing more than 15 characters. %1$S is the search provider to use. %2$S
+# is the string to search for, truncated to 15 characters.
+openSearch.label.truncated=Hae hakukoneella %1$S ”%2$S…”
+
+# LOCALIZATION NOTE (aboutDialog.architecture.*):
+# The sixtyFourBit and thirtyTwoBit strings describe the architecture of the
+# current Thunderbird build: 32-bit or 64-bit. These strings are used in parentheses
+# after the Thunderbird version in the About dialog,
+# e.g.: "48.0.2 (32-bit)" or "51.0a1 (2016-09-05) (64-bit)".
+aboutDialog.architecture.sixtyFourBit = 64-bittinen
+aboutDialog.architecture.thirtyTwoBit = 32-bittinen
+
+errorConsoleTitle = Virhekonsoli
+
+# LOCALIZATION NOTE (panel.back):
+# This is used by screen readers to label the "back" button in various browser
+# popup panels, including the sliding subviews of the appmenu.
+panel.back = Takaisin
+
+# LOCALIZATION NOTE (folderErrorAlertTitle):
+# %S is a pretty string to identify the folder and account.
+# EXAMPLE: Error - Inbox on bob@example.com
+folderErrorAlertTitle = Virhe - %S
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdAdvancedEdit.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..a73007d20c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdAdvancedEdit.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY WindowTitle.label "Lisäasetusten muokkaus">
+<!ENTITY AttName.label "Määre: ">
+<!ENTITY AttValue.label "Arvo: ">
+<!ENTITY PropertyName.label "Ominaisuus: ">
+<!ENTITY currentattributesfor.label "Nykyiset määreet kohteelle: ">
+<!ENTITY tree.attributeHeader.label "Määre">
+<!ENTITY tree.propertyHeader.label "Ominaisuus">
+<!ENTITY tree.valueHeader.label "Arvo">
+<!ENTITY tabHTML.label "HTML-määreet">
+<!ENTITY tabCSS.label "Sisätyyli">
+<!ENTITY tabJSE.label "JavaScript-tapahtumat">
+
+<!ENTITY editAttribute.label "Napsauta yläpuolella olevaa kohdetta muokataksesi sen arvoa">
+<!ENTITY removeAttribute.label "Poista">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdColorPicker.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdColorPicker.dtd
new file mode 100644
index 0000000000..5cb5fe8a5c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdColorPicker.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Väri">
+<!ENTITY lastPickedColor.label "Viimeisin poimittu väri">
+<!ENTITY lastPickedColor.accessKey "V">
+<!ENTITY chooseColor1.label "Valitse väri:">
+<!ENTITY chooseColor2.label "Syötä HTML-värikoodi">
+<!ENTITY chooseColor2.accessKey "H">
+<!ENTITY setColorExample.label "(esim.: &quot;#0000ff&quot; tai &quot;blue&quot;):">
+<!ENTITY default.label "Oletus">
+<!ENTITY default.accessKey "O">
+<!ENTITY palette.label "Paletti:">
+<!ENTITY standardPalette.label "Vakio">
+<!ENTITY webPalette.label "Kaikki web-värit">
+<!ENTITY background.label "Tausta kohteelle:">
+<!ENTITY background.accessKey "u">
+<!ENTITY table.label "Taulukko">
+<!ENTITY table.accessKey "T">
+<!ENTITY cell.label "Solut">
+<!ENTITY cell.accessKey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdConvertToTable.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdConvertToTable.dtd
new file mode 100644
index 0000000000..78cdfb74e1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdConvertToTable.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Muunna taulukoksi">
+<!ENTITY instructions1.label "Composer luo uuden taulukon rivin jokaiselle valinnan kappaleelle.">
+<!ENTITY instructions2.label "Valitse merkki, joka erottaa valinnan sarakkeisiin:">
+<!ENTITY commaRadio.label "Pilkku">
+<!ENTITY spaceRadio.label "Tyhjä tila">
+<!ENTITY otherRadio.label "Muu merkki:">
+<!ENTITY deleteCharCheck.label "Poista erotinmerkki">
+<!ENTITY collapseSpaces.label "Jätä ylimääräiset välilyönnit huomioimatta">
+<!ENTITY collapseSpaces.tooltip "Muunna vierekkäiset välilyönnit yhdeksi erottimeksi">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdDialogOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..ee8d4bccb7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdDialogOverlay.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY AdvancedEditButton.label "Laajennettu muokkaus…">
+<!ENTITY AdvancedEditButton.accessKey "L">
+<!ENTITY AdvancedEditButton.tooltip "Lisää tai muokkaa HTML:n määreitä, tyylin määreitä ja JavaScriptiä">
+<!ENTITY chooseFileButton.label "Valitse tiedosto...">
+<!ENTITY chooseFileButton.accessKey "V">
+<!ENTITY chooseFileLinkButton.label "Valitse tiedosto...">
+<!ENTITY chooseFileLinkButton.accessKey "a">
+<!ENTITY makeUrlRelative.label "URL on suhteessa sivun sijaintiin">
+<!ENTITY makeUrlRelative.accessKey "U">
+<!ENTITY makeUrlRelative.tooltip "Vaihda suhteellisen ja absoluuttisen URL:n välillä. Sinun täytyy ensin tallentaa sivu muuttaaksesi tämän.">
+
+<!-- Shared by Link and Image dialogs -->
+<!ENTITY LinkURLEditField2.label "Syötä kelvollinen verkkosivuston osoite, paikallinen tiedosto tai valitse kentän pikavalikosta nimetty ankkuri tai otsikko:">
+<!ENTITY LinkURLEditField2.accessKey "k">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdNamedAnchorProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..4508d2db13
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EdNamedAnchorProperties.dtd
@@ -0,0 +1,10 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Nimetyn ankkurin ominaisuudet">
+<!ENTITY anchorNameEditField.label "Ankkurin nimi:">
+<!ENTITY anchorNameEditField.accessKey "A">
+<!ENTITY nameInput.tooltip "Kirjoita yksilöllinen nimi tälle nimetylle ankkurille (kohde)">
+
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorColorProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorColorProperties.dtd
new file mode 100644
index 0000000000..08624099a7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorColorProperties.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Sivun värit ja tausta">
+<!ENTITY pageColors.label "Sivun värit">
+<!ENTITY defaultColorsRadio.label "Lukijan oletusvärit (Älä aseta värejä sivuille)">
+<!ENTITY defaultColorsRadio.accessKey "o">
+<!ENTITY defaultColorsRadio.tooltip "Käytä vain sivun tarkastelijan selaimen väriasetuksia">
+<!ENTITY customColorsRadio.label "Käytä järjestelmän värejä:">
+<!ENTITY customColorsRadio.accessKey "K">
+<!ENTITY customColorsRadio.tooltip "Nämä väriasetukset ohittavat lukijan selaimen asetukset">
+
+<!ENTITY normalText.label "Normaali teksti">
+<!ENTITY normalText.accessKey "N">
+<!ENTITY linkText.label "Linkin teksti">
+<!ENTITY linkText.accessKey "L">
+<!ENTITY activeLinkText.label "Aktiivisen linkin teksti">
+<!ENTITY activeLinkText.accessKey "A">
+<!ENTITY visitedLinkText.label "Avatun linkin teksti">
+<!ENTITY visitedLinkText.accessKey "u">
+<!ENTITY background.label "Tausta:">
+<!ENTITY background.accessKey "T">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Taustakuva:">
+<!ENTITY backgroundImage.accessKey "s">
+<!ENTITY backgroundImage.tooltip "Käytä kuvaa verkkosivusi taustana">
+<!ENTITY backgroundImage.shortenedDataURI "Lyhennetty datan URI (kopioiminen sijoittaa täydellisen URIn leikepöydälle)">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorHLineProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..4597b7a164
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorHLineProperties.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Vaakaviivan ominaisuudet">
+
+<!ENTITY dimensionsBox.label "Mitat">
+<!ENTITY heightEditField.label "Korkeus:">
+<!ENTITY heightEditField.accessKey "K">
+<!ENTITY widthEditField.label "Leveys:">
+<!ENTITY widthEditField.accessKey "e">
+<!ENTITY pixelsPopup.value "kuvapistettä">
+<!ENTITY alignmentBox.label "Tasaus">
+<!ENTITY leftRadio.label "Vasen">
+<!ENTITY leftRadio.accessKey "V">
+<!ENTITY centerRadio.label "Keskitetty">
+<!ENTITY centerRadio.accessKey "K">
+<!ENTITY rightRadio.label "Oikea">
+<!ENTITY rightRadio.accessKey "O">
+
+<!ENTITY threeDShading.label "3-D varjostus">
+<!ENTITY threeDShading.accessKey "D">
+<!ENTITY saveSettings.label "Käytä oletusarvona">
+<!ENTITY saveSettings.accessKey "O">
+<!ENTITY saveSettings.tooltip "Tallenna nämä asetukset käytettäväksi uusia vaakaviivoja lisättäessä.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorImageProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorImageProperties.dtd
new file mode 100644
index 0000000000..10530fe101
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorImageProperties.dtd
@@ -0,0 +1,79 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Kuvan ominaisuudet">
+
+<!ENTITY pixelsPopup.value "kuvapistettä">
+
+<!-- These are in the Location tab panel -->
+<!ENTITY locationEditField.label "Kuvan sijainti:">
+<!ENTITY locationEditField.accessKey "K">
+<!ENTITY locationEditField.tooltip "Kirjoita kuvan tiedostonimi tai sijainti">
+<!ENTITY locationEditField.shortenedDataURI "Lyhennetty datan URI (kopioiminen sijoittaa täydellisen URIn leikepöydälle)">
+<!ENTITY title.label "Työkaluvihje:">
+<!ENTITY title.accessKey "T">
+<!ENTITY title.tooltip "HTML-määre ”title”, joka näkyy työkaluvihjeenä">
+<!ENTITY altText.label "Vaihtoehtoinen teksti:">
+<!ENTITY altText.accessKey "V">
+<!ENTITY altTextEditField.tooltip "Kirjoita kuvan tilalla näytettävä teksti">
+<!ENTITY noAltText.label "Älä käytä vaihtoehtoista tekstiä">
+<!ENTITY noAltText.accessKey "Ä">
+
+<!ENTITY previewBox.label "Kuvan esikatselu">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- actualSize.label should be same as actualSizeRadio.label + ":" -->
+<!ENTITY actualSize.label "Todellinen koko:">
+<!ENTITY actualSizeRadio.label "Todellinen koko">
+<!ENTITY actualSizeRadio.accessKey "T">
+<!ENTITY actualSizeRadio.tooltip "Palaa kuvan todelliseen kokoon">
+<!ENTITY customSizeRadio.label "Mukautettu koko">
+<!ENTITY customSizeRadio.accessKey "M">
+<!ENTITY customSizeRadio.tooltip "Muuta kuvan kokoa näytöllä">
+<!ENTITY heightEditField.label "Korkeus:">
+<!ENTITY heightEditField.accessKey "K">
+<!ENTITY widthEditField.label "Leveys:">
+<!ENTITY widthEditField.accessKey "e">
+<!ENTITY constrainCheckbox.label "Säilytä muoto">
+<!ENTITY constrainCheckbox.accessKey "S">
+<!ENTITY constrainCheckbox.tooltip "Säilytä kuvan suhteet ennallaan">
+
+<!-- These controls are in the Image Map box of the expanded area -->
+<!ENTITY imagemapBox.label "Kuvan kartta">
+<!ENTITY removeImageMapButton.label "Poista">
+<!ENTITY removeImageMapButton.accessKey "P">
+
+<!-- These are the options for image alignment -->
+<!ENTITY alignment.label "Linjaa teksti kuvaan">
+<!ENTITY bottomPopup.value "Pohjalle">
+<!ENTITY topPopup.value "Ylös">
+<!ENTITY centerPopup.value "Keskelle">
+<!ENTITY wrapRightPopup.value "Rivitä oikealle">
+<!ENTITY wrapLeftPopup.value "Rivitä vasemmalle">
+
+<!-- These controls are in the Spacing Box -->
+<!ENTITY spacingBox.label "Vapaa tila">
+<!ENTITY leftRightEditField.label "Vasemmalla ja oikealla:">
+<!ENTITY leftRightEditField.accessKey "V">
+<!ENTITY topBottomEditField.label "Ylhäällä ja alhaalla:">
+<!ENTITY topBottomEditField.accessKey "Y">
+<!ENTITY borderEditField.label "Jatkuva reunaviiva:">
+<!ENTITY borderEditField.accessKey "n">
+
+<!-- These controls are in the Link Box -->
+<!ENTITY showImageLinkBorder.label "Näytä linkkikuvan ympärillä reunus">
+<!ENTITY showImageLinkBorder.accessKey "N">
+<!ENTITY LinkAdvancedEditButton.label "Linkin lisäasetukset…">
+<!ENTITY LinkAdvancedEditButton.accessKey "a">
+<!ENTITY LinkAdvancedEditButton.tooltip "Lisää tai muokkaa HTML-attribuutteja, tyyliattribuutteja ja JavaScript-komentosarjoja">
+
+<!-- These tabs are currently used in the image input dialog -->
+<!ENTITY imageInputTab.label "Lomake">
+<!ENTITY imageLocationTab.label "Sijainti">
+<!ENTITY imageDimensionsTab.label "Mitat">
+<!ENTITY imageAppearanceTab.label "Ulkoasu">
+<!ENTITY imageLinkTab.label "Linkki">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertChars.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertChars.dtd
new file mode 100644
index 0000000000..edd6638d03
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertChars.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Lisää merkki">
+<!ENTITY category.label "Luokka">
+<!ENTITY letter.label "Kirjain:">
+<!ENTITY letter.accessKey "K">
+<!ENTITY character.label "Merkki:">
+<!ENTITY character.accessKey "M">
+<!ENTITY accentUpper.label "Aksentti, iso kirjain">
+<!ENTITY accentLower.label "Aksentti, pieni kirjain">
+<!ENTITY otherUpper.label "Muu merkki, iso kirjain">
+<!ENTITY otherLower.label "Muu merkki, pieni kirjain">
+<!ENTITY commonSymbols.label "Yleiset symbolit">
+<!ENTITY insertButton.label "Lisää">
+<!ENTITY closeButton.label "Sulje">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertMath.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertMath.dtd
new file mode 100644
index 0000000000..e6e9e8e1c7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertMath.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Syötä matematiikkaa">
+
+<!ENTITY sourceEditField.label "Kirjoita LaTeX-lähdekoodia:">
+
+<!ENTITY options.label "Asetukset">
+<!ENTITY optionInline.label "Tekstin seassa">
+<!ENTITY optionInline.accesskey "T">
+<!ENTITY optionDisplay.label "Erikseen näytettynä">
+<!ENTITY optionDisplay.accesskey "E">
+<!ENTITY optionLTR.label "Suunta vasemmalta oikealle">
+<!ENTITY optionLTR.accesskey "v">
+<!ENTITY optionRTL.label "Suunta oikealta vasemmalle">
+<!ENTITY optionRTL.accesskey "o">
+
+<!ENTITY insertButton.label "Syötä">
+<!ENTITY insertButton.accesskey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertSource.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertSource.dtd
new file mode 100644
index 0000000000..1c2a4e80ff
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertSource.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Lisää HTML -koodia">
+<!ENTITY sourceEditField.label "Kirjoita HTML-tunnukset ja teksti:">
+<!ENTITY example.label "Esimerkki: ">
+<!-- LOCALIZATION NOTE (exampleOpenTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleOpenTag.label "&lt;i&gt;">
+<!-- LOCALIZATION NOTE (exampleCloseTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleCloseTag.label "&lt;/i&gt;">
+<!ENTITY exampleText.label "Moi kaikki!">
+<!ENTITY insertButton.label "Lisää">
+<!ENTITY insertButton.accesskey "L">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTOC.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..c4466180e3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTOC.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY Window.title "Sisällysluettelo">
+<!ENTITY buildToc.label "Koosta sisällysluettelo kohteista:">
+<!ENTITY tag.label "HTML-tunnus:">
+<!ENTITY class.label "Luokka:">
+<!ENTITY header1.label "Taso 1">
+<!ENTITY header2.label "Taso 2">
+<!ENTITY header3.label "Taso 3">
+<!ENTITY header4.label "Taso 4">
+<!ENTITY header5.label "Taso 5">
+<!ENTITY header6.label "Taso 6">
+<!ENTITY makeReadOnly.label "Anna sisällysluettelolle vain lukuoikeudet">
+<!ENTITY orderedList.label "Numeroi sisällysluettelon kaikki kohdat">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTable.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTable.dtd
new file mode 100644
index 0000000000..1d22947450
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorInsertTable.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Lisää taulukko">
+
+<!ENTITY size.label "Koko">
+<!ENTITY numRowsEditField.label "Rivejä:">
+<!ENTITY numRowsEditField.accessKey "R">
+<!ENTITY numColumnsEditField.label "Sarakkeita:">
+<!ENTITY numColumnsEditField.accessKey "S">
+<!ENTITY widthEditField.label "Leveys:">
+<!ENTITY widthEditField.accessKey "L">
+<!ENTITY borderEditField.label "Reunus:">
+<!ENTITY borderEditField.accessKey "e">
+<!ENTITY borderEditField.tooltip "Anna luku reunuksen koolle tai 0, jos et halua reunusta.">
+<!ENTITY pixels.label "kuvapistettä">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorLinkProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..6528d4190b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorLinkProperties.dtd
@@ -0,0 +1,6 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Linkin ominaisuudet">
+<!ENTITY LinkURLBox.label "Linkin sijainti">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorListProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorListProperties.dtd
new file mode 100644
index 0000000000..0c9bd34d43
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorListProperties.dtd
@@ -0,0 +1,20 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Listan ominaisuudet">
+
+<!ENTITY ListType.label "Listan tyyppi">
+<!ENTITY bulletStyle.label "Numeroimaton tyyli:">
+<!ENTITY startingNumber.label "Aloita kohdasta:">
+<!ENTITY startingNumber.accessKey "A">
+<!ENTITY none.value "Ei mitään">
+<!ENTITY bulletList.value "Numeroimaton lista">
+<!ENTITY numberList.value "Numeroitu lista">
+<!ENTITY definitionList.value "Määritelmälista">
+<!ENTITY changeEntireListRadio.label "Vaihda koko lista">
+<!ENTITY changeEntireListRadio.accessKey "V">
+<!ENTITY changeSelectedRadio.label "Vaihda vain valitut kohdat">
+<!ENTITY changeSelectedRadio.accessKey "a">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorPersonalDictionary.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..ba3d1760ef
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorPersonalDictionary.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Käyttäjäkohtainen sanakirja">
+
+<!ENTITY wordEditField.label "Uusi sana:">
+<!ENTITY wordEditField.accessKey "U">
+<!ENTITY AddButton.label "Lisää">
+<!ENTITY AddButton.accessKey "L">
+<!ENTITY DictionaryList.label "Sanoja sanastossa:">
+<!ENTITY DictionaryList.accessKey "s">
+<!ENTITY RemoveButton.label "Poista">
+<!ENTITY RemoveButton.accessKey "P">
+
+<!ENTITY CloseButton.label "Sulje">
+<!ENTITY CloseButton.accessKey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorReplace.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorReplace.dtd
new file mode 100644
index 0000000000..f4f9919789
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorReplace.dtd
@@ -0,0 +1,29 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from EdReplace.xul -->
+
+<!-- extracted from EdReplace.xhtml -->
+
+<!ENTITY replaceDialog.title "Etsi ja korvaa">
+<!ENTITY findField.label "Etsi:">
+<!ENTITY findField.accesskey "E">
+<!ENTITY replaceField.label "Korvaava teksti:">
+<!ENTITY replaceField.accesskey "K">
+<!ENTITY caseSensitiveCheckbox.label "Huomioi kirjainkoko">
+<!ENTITY caseSensitiveCheckbox.accesskey "H">
+<!ENTITY wrapCheckbox.label "Kierrä lopusta alkuun">
+<!ENTITY wrapCheckbox.accesskey "e">
+<!ENTITY backwardsCheckbox.label "Etsi taaksepäin">
+<!ENTITY backwardsCheckbox.accesskey "t">
+<!ENTITY findNextButton.label "Etsi seuraava">
+<!ENTITY findNextButton.accesskey "s">
+<!ENTITY replaceButton.label "Korvaa">
+<!ENTITY replaceButton.accesskey "K">
+<!ENTITY replaceAndFindButton.label "Korvaa ja etsi">
+<!ENTITY replaceAndFindButton.accesskey "o">
+<!ENTITY replaceAllButton.label "Korvaa kaikki">
+<!ENTITY replaceAllButton.accesskey "r">
+<!ENTITY closeButton.label "Sulje">
+<!ENTITY closeButton.accesskey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..5020115692
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorSpellCheck.dtd
@@ -0,0 +1,38 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Oikolue">
+
+<!ENTITY misspelledWord.label "Väärin kirjoitettu sana:">
+<!ENTITY wordEditField.label "Korvaa sanalla:">
+<!ENTITY wordEditField.accessKey "K">
+<!ENTITY checkwordButton.label "Tarkista sana">
+<!ENTITY checkwordButton.accessKey "a">
+<!ENTITY suggestions.label "Ehdotukset:">
+<!ENTITY suggestions.accessKey "E">
+<!ENTITY ignoreButton.label "Ohita">
+<!ENTITY ignoreButton.accessKey "O">
+<!ENTITY ignoreAllButton.label "Ohita kaikki">
+<!ENTITY ignoreAllButton.accessKey "h">
+<!ENTITY replaceButton.label "Korvaa">
+<!ENTITY replaceButton.accessKey "o">
+<!ENTITY replaceAllButton.label "Korvaa kaikki">
+<!ENTITY replaceAllButton.accessKey "r">
+<!ENTITY stopButton.label "Pysäytä">
+<!ENTITY stopButton.accessKey "y">
+<!ENTITY userDictionary.label "Käyttäjän sanasto:">
+<!ENTITY moreDictionaries.label "Hae sanastoja…">
+<!ENTITY addToUserDictionaryButton.label "Lisää sana">
+<!ENTITY addToUserDictionaryButton.accessKey "L">
+<!ENTITY editUserDictionaryButton.label "Muokkaa…">
+<!ENTITY editUserDictionaryButton.accessKey "M">
+<!ENTITY recheckButton2.label "Tarkista teksti uudelleen">
+<!ENTITY recheckButton2.accessKey "T">
+<!ENTITY closeButton.label "Sulje">
+<!ENTITY closeButton.accessKey "S">
+<!ENTITY sendButton.label "Lähetä">
+<!ENTITY sendButton.accessKey "ä">
+<!ENTITY languagePopup.label "Kieli:">
+<!ENTITY languagePopup.accessKey "K">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorTableProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorTableProperties.dtd
new file mode 100644
index 0000000000..66f07edafc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/EditorTableProperties.dtd
@@ -0,0 +1,76 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY tableWindow.title "Taulukon ominaisuudet">
+<!ENTITY applyButton.label "Käytä">
+<!ENTITY applyButton.accesskey "K">
+<!ENTITY closeButton.label "Sulje">
+<!ENTITY tableTab.label "Taulukko">
+<!ENTITY cellTab.label "Solut">
+<!ENTITY tableRows.label "Rivit:">
+<!ENTITY tableRows.accessKey "R">
+<!ENTITY tableColumns.label "Sarakkeet:">
+<!ENTITY tableColumns.accessKey "S">
+<!ENTITY tableHeight.label "Korkeus:">
+<!ENTITY tableHeight.accessKey "o">
+<!ENTITY tableWidth.label "Leveys:">
+<!ENTITY tableWidth.accessKey "e">
+<!ENTITY tableBorderSpacing.label "Reunukset ja välit">
+<!ENTITY tableBorderWidth.label "Reunus:">
+<!ENTITY tableBorderWidth.accessKey "u">
+<!ENTITY tableSpacing.label "Väli:">
+<!ENTITY tableSpacing.accessKey "l">
+<!ENTITY tablePadding.label "Täyte:">
+<!ENTITY tablePadding.accessKey "T">
+<!ENTITY tablePxBetwCells.label "pikseliä solujen välissä">
+<!ENTITY tablePxBetwBrdrCellContent.label "pikseliä solujen reunuksen ja sisällön välissä">
+<!ENTITY tableAlignment.label "Taulukon tasaus:">
+<!ENTITY tableAlignment.accessKey "n">
+<!ENTITY tableCaption.label "Selite:">
+<!ENTITY tableCaption.accessKey "e">
+<!ENTITY tableCaptionAbove.label "Taulukon yläpuolella">
+<!ENTITY tableCaptionBelow.label "Taulukon alapuolella">
+<!ENTITY tableCaptionLeft.label "Taulukon vasemmalla puolella">
+<!ENTITY tableCaptionRight.label "Taulukon oikealla puolella">
+<!ENTITY tableCaptionNone.label "Ei mitään">
+<!ENTITY tableInheritColor.label "(Anna sivun värin näkyä läpi)">
+
+<!ENTITY cellSelection.label "Valinta">
+<!ENTITY cellSelectCell.label "Solu">
+<!ENTITY cellSelectRow.label "Rivi">
+<!ENTITY cellSelectColumn.label "Sarake">
+<!ENTITY cellSelectNext.label "Seuraava">
+<!ENTITY cellSelectNext.accessKey "S">
+<!ENTITY cellSelectPrevious.label "Edellinen">
+<!ENTITY cellSelectPrevious.accessKey "E">
+<!ENTITY applyBeforeChange.label "Tehdyt muutokset toteutetaan ennen kuin valintaa muutetaan.">
+<!-- LOCALIZATION NOTE Next 2 form 1 sentence (we don't want to use HTML tag to wrap) -->
+<!ENTITY cellContentAlignment.label "Sisällön tasaus">
+<!ENTITY cellHorizontal.label "Vaaka:">
+<!ENTITY cellHorizontal.accessKey "V">
+<!ENTITY cellVertical.label "Pysty:">
+<!ENTITY cellVertical.accessKey "P">
+<!ENTITY cellStyle.label "Solun tyyli:">
+<!ENTITY cellStyle.accessKey "o">
+<!ENTITY cellNormal.label "Normaali">
+<!ENTITY cellHeader.label "Otsikko">
+<!ENTITY cellTextWrap.label "Tekstin rivitys:">
+<!ENTITY cellTextWrap.accessKey "r">
+<!ENTITY cellWrap.label "Rivitä">
+<!ENTITY cellNoWrap.label "Älä rivitä">
+<!ENTITY cellAlignTop.label "Ylä">
+<!ENTITY cellAlignMiddle.label "Keski">
+<!ENTITY cellAlignBottom.label "Ala">
+<!ENTITY cellAlignJustify.label "Tasan">
+<!ENTITY cellInheritColor.label "(Anna taulukon värin näkyä läpi)">
+<!ENTITY cellUseCheckboxHelp.label "Käytä valintaruutuja osoittamaan, mitkä ominaisuudet koskevat valittua solua">
+
+<!-- Used in both Table and Cell panels -->
+<!ENTITY size.label "Koko">
+<!ENTITY pixels.label "kuvapistettä">
+<!ENTITY backgroundColor.label "Taustaväri:">
+<!ENTITY backgroundColor.accessKey "i">
+<!ENTITY AlignLeft.label "Vasen">
+<!ENTITY AlignCenter.label "Keskitetty">
+<!ENTITY AlignRight.label "Oikea">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/composeMsgs.properties
new file mode 100644
index 0000000000..e311a98c1a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/composeMsgs.properties
@@ -0,0 +1,463 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the compose back end
+#
+## LOCALIZATION NOTE (unableToOpenFile, unableToOpenTmpFile):
+## %S will be replaced with the name of file that could not be opened
+unableToOpenFile=Tiedoston %S avaaminen ei onnistunut.
+unableToOpenTmpFile=Väliaikaistiedoston %S avaaminen ei onnistunut. Tarkista "Väliaikainen hakemisto"-asetuksesi.
+unableToSaveTemplate=Viestisi tallennus mallipohjana ei onnistunut.
+unableToSaveDraft=Viestisi tallennus luonnoksena ei onnistunut.
+couldntOpenFccFolder=Lähetetyt viestit -kansion avaaminen epäonnistui. Tarkista, että sähköpostiasetuksesi ovat oikeat.
+noSender=Lähettäjää ei ole annettu. Täytä sähköpostiosoitteesi tiliasetuksiin.
+noRecipients=Yhtään vastaanottajaa ei ole annettu. Kirjoita vastaanottaja tai keskusteluryhmä osoiteriville.
+errorWritingFile=Virhe väliaikaistiedostoa kirjoitettaessa.
+
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingFromCommand=Postia lähetettäessä tapahtui virhe. Postipalvelin vastasi: %s. Tarkista että sähköpostiosoitteesi on asetuksissa oikein ja yritä uudelleen.
+
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+errorSendingDataCommand=Postia lähetettäessä tapahtui virhe (SMTP). Palvelin vastasi: %s.
+
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+errorSendingMessage=Postia lähetettäessä tapahtui virhe. Postipalvelin vastasi: %s. Tarkista viesti ja yritä uudelleen
+postFailed=Viestiä ei voitu lähettää, koska yhteys keskusteluryhmäpalvelimeen epäonnistui. Palvelin voi olla varattu tai estää yhteyspyynnöt. Varmista, että keskusteluryhmä-palvelinasetuksesi ovat oikeat ja yritä uudelleen tai vaihtoehtoisesti ota yhteyttä verkon ylläpitoon.
+errorQueuedDeliveryFailed=Lähtevien viestien lähettämisessä tapahtui virhe.
+sendFailed=Viestin lähettäminen epäonnistui.
+
+## LOCALIZATION NOTE (sendFailedUnexpected): argument %X is a hex error code value
+sendFailedUnexpected=Toiminto epäonnistui odottamattoman virheen %X vuoksi. Lisätietoja ei ole saatavilla.
+
+## LOCALIZATION NOTE (smtpSecurityIssue): argument %S is the Outgoing server (SMTP) response
+smtpSecurityIssue=Lähtevän palvelimen vastaukseen %S liittyvät asetukset täytyy korjata.
+
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+smtpServerError=Postia lähetettäessä tapahtui SMTP-palvelinvirhe. Palvelin vastasi: %s.
+unableToSendLater=Ei pystynyt tallentamaan viestiä myöhempää lähettämistä varten.
+
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+communicationsError=Tapahtui kommunikaatiovirhe: %d. Ole hyvä ja yritä uudelleen.
+dontShowAlert=THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.
+
+couldNotGetUsersMailAddress2=Tapahtui virhe lähetettäessä viestiä: lähettäjän osoite (Lähettäjä:) oli virheellinen. Varmista että tämä osoite on oikein ja yritä uudelleen.
+couldNotGetSendersIdentity=Tapahtui virhe lähetettäessä viestiä: lähettäjän käyttäjätieto oli virheellinen. Tarkista käyttäjätiedon asetukset ja yritä uudelleen.
+
+mimeMpartAttachmentError=Liitetiedostovirhe.
+failedCopyOperation=Viestin lähettäminen onnistui, mutta sitä ei voitu kopioida Lähetetyt-kansioon.
+nntpNoCrossPosting=Voit lähettää viestin vain yhteen keskusteluryhmäpalvelimeen kerrallaan.
+msgCancelling=Peruutetaan…
+sendFailedButNntpOk=Viestisi on lähetetty keskusteluryhmään, mutta sitä ei ole lähetetty toiselle vastaanottajalle.
+errorReadingFile=Virhe luettaessa tiedostoa.
+followupToSenderMessage=Viestin kirjoittaja on pyytänyt, että vastaukset lähetettäisiin vain kirjoittajalle. Jos haluat vastata myös tähän keskusteluryhmään, lisää uusi rivi osoitealueelle, valitse keskusteluryhmä listasta ja kirjoita ryhmän nimi.
+
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of the object to be attached
+errorAttachingFile=Tiedoston %S liittämisessä tapahtui virhe. Tarkista, että sinulla on oikeudet lukea tiedostoa.
+
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+incorrectSmtpGreeting=Postia lähetettäessä tapahtui virhe: postipalvelimen kättelyviesti oli virheellinen: %s
+
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+errorSendingRcptCommand=Postia lähetettäessä tapahtui virhe. Postipalvelin vastasi: \n%1$S.\n. Tarkista osoite %2$S ja yritä uudelleen.
+
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+startTlsFailed=Postia lähetettäessä tapahtui virhe: SMTP-palvelimeen %S ei kyetty muodostamaan suojattua yhteyttä STARTTLS-käytännöllä, koska palvelin ei kerro tukevansa ominaisuutta. Poista STARTTLS käytöstä tälle palvelimelle tai ota yhteyttä palveluntarjoajaasi.
+
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+smtpPasswordUndefined=Postia lähetettäessä tapahtui virhe: Salasanaa palvelimelle %S ei ole annettu. Viestiä ei lähetetty.
+
+## LOCALIZATION NOTE (smtpSendNotAllowed): argument %s is the Outgoing server (SMTP) response
+smtpSendNotAllowed=Sähköpostia lähettäessä tapahtui virhe. Sähköpostipalvelin vastasi:\n%s.\nVarmista, että käytät oikeaa käyttäjätietoa lähettämiseen, ja että käytetty todennustapa on oikea. Varmista myös, että tämän SMTP-palvelimen kautta lähetys onnistuu nykyisillä kirjautumistiedoilla ja nykyisellä verkkoyhteydelläsi.
+
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+smtpTempSizeExceeded=Viestin, jota yritit lähettää, koko ylittää palvelimella olevan väliaikaisen viestien kokorajoituksen. Viestiä ei lähetetty. Odota hetki ja yritä uudelleen tai tee viestistäsi pienempi. Palvelin vastasi: %s.
+
+## LOCALIZATION NOTE (smtpTooManyRecipients): argument %s is the Outgoing server (SMTP) response
+smtpTooManyRecipients=Viestiä ei lähetetty, koska vastaanottajien sallittu määrä ylittyi. Palvelin vastasi: %s.
+
+## LOCALIZATION NOTE (smtpClientid): argument %s is the Outgoing server (SMTP) response
+smtpClientid=Lähtevän postin palvelin (SMTP) havaitsi virheen CLIENTID-komennossa. Viestiä ei lähetetty. Palvelimen vastaus: %s
+
+## LOCALIZATION NOTE (smtpClientidPermission): argument %s is the Outgoing server (SMTP) response
+smtpClientidPermission=Lähtevän postin palvelimen (SMTP) vastaus CLIENTID-komentoon ilmaisee, että laitteellasi ei ole oikeutta lähettää sähköpostia. Palvelimen vastaus: %s
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+smtpPermSizeExceeded1=Viestin, jota yritit lähettää, koko ylittää palvelimen kokorajoituksen viesteille (%d tavua). Viestiä ei lähetetty. Tee viestistäsi pienempi ja yritä uudelleen.
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the Outgoing server (SMTP) response
+smtpPermSizeExceeded2=Viestin, jota yritit lähettää, koko ylittää palvelimen kokorajoituksen viesteille. Viestiä ei lähetetty. Tee viestistäsi pienempi ja yritä uudelleen. Palvelin vastasi: %s.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownServer=Postia lähetettäessä tapahtui virhe: SMTP-palvelinta %S ei tunneta. Palvelinasetukset voivat olla virheelliset. Varmista, että SMTP-palvelinasetuksesi ovat oikein ja yritä uudelleen.
+
+## LOCALIZATION NOTE (smtpSendRequestRefused): argument %S is the Outgoing server (SMTP)
+smtpSendRequestRefused=Viestiä ei voitu lähettää, koska yhteyttä lähtevän postin palvelimeen (SMTP) %S ei onnistuttu luomaan. Palvelin voi olla varattu tai estää SMTP-yhteyspyynnöt. Varmista, että SMTP-palvelinasetuksesi ovat oikein ja yritä uudelleen.
+
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+smtpSendInterrupted=Viestiä ei voitu lähettää, koska yhteys SMTP-palvelimeen %S katkesi kesken tiedonsiirron. Yritä uudelleen tai ota yhteyttä verkon ylläpitoon.
+
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+smtpSendTimeout=Viestiä ei voitu lähettää, koska yhteys SMTP-palvelimeen %S aikakatkaistiin. Yritä uudelleen tai ota yhteyttä verkon ylläpitoon.
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+smtpSendFailedUnknownReason=Viestiä ei voitu lähettää SMTP-palvelimen %S kautta tuntemattomasta syystä. Varmista, että SMTP-palvelinasetuksesi ovat oikein ja yritä uudelleen tai ota yhteyttä verkon ylläpitoon.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainNoSsl=Lähtevän postin palvelin (SMTP) %S ei näytä tukevan salattuja salasanoja. Jos juuri loit tilin, yritä vaihtaa todennustavaksi "Salasana, turvaton lähetys" palvelinasetuksista: Tilien asetukset - Jos yhteys toimi ennen, mutta lakkasi yhtäkkiä toimimasta, salasanaasi voidaan yrittää varastaa.
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
+smtpHintAuthEncryptToPlainSsl=Lähtevän postin palvelin (SMTP) %S ei näytä tukevan salattuja salasanoja. Jos juuri loit tilin, yritä vaihtaa todennustavaksi "Normaali salasana" palvelinasetuksista: Tilien asetukset - Palvelinasetukset.
+
+# LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
+smtpHintAuthPlainToEncrypt=Lähtevän postin palvelin (SMTP) %S ei hyväksy salaamattomia salasanoja. Yritä vaihtaa todennustavaksi "Salattu salasana" palvelinasetuksista: Tilien asetukset - Palvelinasetukset.
+
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+smtpAuthFailure=Todennus SMTP-palvelimelle %S epäonnistui. Tarkista salasanasi ja todennustapa palvelinasetuksissa: Tilien asetukset - Lähtevän postin palvelin (SMTP).
+
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+smtpAuthGssapi=SMTP-palvelin %S ei hyväksynyt Kerberos/GSSAPI-lippuasi. Tarkista, että olet kirjautunut Kerberos/GSSAPI-verkkoon.
+
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+smtpAuthMechNotSupported=SMTP-palvelin %S ei tue valittua todennustapaa. Muuta todennustapaa palvelinasetuksista: Tilien asetukset - Lähtevän postin palvelin (STMP).
+
+# LOCALIZATION NOTE (errorIllegalLocalPart2): %s is an email address with an illegal localpart
+errorIllegalLocalPart2=Vastaanottajan osoitteen %s paikallisosassa on merkkejä, jotka eivät kuulu ASCII-merkistöön, ja palvelimesi ei tue STMPUTF8:aa. Muokkaa osoitetta ja yritä uudelleen.
+
+## Strings used for the save message dialog shown when the user closes a message compose window
+saveDlogTitle=Tallenna viesti
+
+## LOCALIZATION NOTE (saveDlogMessages3): Do not translate the words %1$S and \n.
+## %1$S is replaced by the folder name configured for saving drafts (typically the "Drafts" folder).
+## Translate "Write" to match the translation of item "windowTitleWrite" below.
+saveDlogMessages3=Tallennetaanko tämä viesti Luonnokset-kansioon (%1$S) ja suljetaanko Kirjoita-ikkuna?
+discardButtonLabel=&Hylkää muutokset
+
+## generics string
+defaultSubject=(ei aihetta)
+chooseFileToAttach=Liitä tiedosto(t)
+genericFailureExplanation=Varmista, että sähköposti- ja keskusteluryhmätilien asetukset ovat oikein ja yritä uudelleen.
+
+## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
+undisclosedRecipients=ei-julkituotuja-vastaanottajia
+
+# LOCALIZATION NOTE (chooseFileToAttachViaCloud): %1$S is the cloud
+# provider to save the file to.
+chooseFileToAttachViaCloud=Liitä tiedostot palvelun %1$S avulla
+
+## Window titles
+# LOCALIZATION NOTE (windowTitleWrite):
+# %1$S is the message subject.
+# %2$S is the application name.
+# Example: Write: Re: Invitation - Thunderbird
+windowTitleWrite=Kirjoita: %1$S - %2$S
+# LOCALIZATION NOTE (windowTitlePrintPreview):
+# %1$S is the message subject.
+# %2$S is the application name.
+# Example: Print Preview: Re: Invitation - Thunderbird
+windowTitlePrintPreview=Tulostuksen esikatselu: %1$S - %2$S
+
+## From field
+msgIdentityPlaceholder=Anna muokattu lähettäjän osoite, jota käytetään osoitteen %S sijaan
+customizeFromAddressTitle=Muokkaa lähettäjän osoitetta
+customizeFromAddressWarning=Jos sähköpostin palveluntarjoajasi tukee sitä, voit muokata kertaluontoisesti lähettäjän osoitetta ilman että tarvitsisi luoda uutta käyttäjätietoa tilin asetuksissa. Jos lähettäjän osoite on esimerkiksi John Doe <john@example.com> se voidaan tilapäisesti muuttaa muotoon John Doe <john+doe@example.com> tai John <john@example.com>.
+customizeFromAddressIgnore=Älä ilmoita tästä enää uudelleen
+
+## Strings used by the empty subject dialog
+subjectEmptyTitle=Muistutus aiheesta
+subjectEmptyMessage=Viestilläsi ei ole kirjoitettu aihetta.
+sendWithEmptySubjectButton=&Lähetä viesti ilman aihetta
+cancelSendingButton=&Peruuta lähettäminen
+
+## Strings used by the dialog that informs about the lack of newsgroup support.
+noNewsgroupSupportTitle=Keskusteluryhmiä ei tueta
+recipientDlogMessage=Tämä tili tukee vain sähköpostin vastaanottajia. Jatkettaessa keskusteluryhmät jätetään huomiotta.
+
+## Strings used by the alert that tells the user that an email address is invalid.
+addressInvalidTitle=Virheellinen sähköpostiosoite
+addressInvalid=%1$S ei ole oikea sähköpostiosoite, koska sen muoto ei ole käyttäjä@palvelin. Korjaa osoite ennen kuin lähetät sähköpostin.
+
+## String used by the dialog that asks the user to attach a web page
+attachPageDlogTitle=Määritä liitettävä tiedosto
+attachPageDlogMessage=Verkkosivu (URL):
+
+## String used for attachment pretty name, when the attachment is a message
+messageAttachmentSafeName=Liitetty viesti
+
+## String used for attachment pretty name, when the attachment is a message part
+partAttachmentSafeName=Liitetty viestin osa
+
+# LOCALIZATION NOTE (attachmentBucketAttachFilesTooltip):
+# This tooltip should be same as attachFile.label in messengercompose.dtd,
+# but without ellipsis (…).
+attachmentBucketAttachFilesTooltip=Liitä tiedosto(t)
+attachmentBucketClearSelectionTooltip=Peruuta valinta
+attachmentBucketHeaderShowTooltip=Näytä Liitteet-paneeli
+attachmentBucketHeaderMinimizeTooltip=Pienennä Liitteet-paneeli
+attachmentBucketHeaderRestoreTooltip=Palauta Liitteet-paneeli
+
+## String used by the Initialization Error dialog
+initErrorDlogTitle=Viestin kirjoitus
+initErrorDlgMessage=Viestin kirjoitus-ikkunaa luotaessa tapahtui virhe. Yritä uudelleen.
+
+## String used if a file to attach does not exist when passed as
+## a command line argument
+errorFileAttachTitle=Liitä tiedosto
+
+## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name.
+errorFileAttachMessage=Tiedostoa %1$S ei löydy, eikä sitä siksi voitu liittää viestiin.
+
+## String used if a file to serve as message body does not exist or cannot be loaded when passed
+## as a command line argument
+errorFileMessageTitle=Viestitiedosto
+
+## LOCALIZATION NOTE (errorFileMessageMessage): %1$S will be replaced by the non-existent file name.
+errorFileMessageMessage=Tiedostoa %1$S ei ole olemassa, eikä sitä voi käyttää viestinä.
+
+## LOCALIZATION NOTE (errorLoadFileMessageMessage): %1$S will be replaced by the name of the file that can't be loaded.
+errorLoadFileMessageMessage=Tiedostoa %1$S ei voitu ladata viestiksi.
+
+## Strings used by the Save as Draft/Template dialog
+SaveDialogTitle=Tallenna viesti
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
+SaveDialogMsg=Viestisi on tallennettu tilin %2$S kansioon %1$S.
+CheckMsg=Älä näytä tätä ikkunaa uudestaan.
+
+## Strings used by the prompt when Quitting while in progress
+quitComposeWindowTitle=Lähetetään viestiä
+
+## LOCALIZATION NOTE (quitComposeWindowMessage2): don't translate \n
+quitComposeWindowMessage2=%1$S lähettää parhaillaan viestiä.\nLopetetaanko vasta kun viesti on lähetetty vai lopetetaanko heti?
+quitComposeWindowQuitButtonLabel2=&Lopeta
+quitComposeWindowWaitButtonLabel2=&Odota
+quitComposeWindowSaveTitle=Tallentaan viestiä
+
+## LOCALIZATION NOTE (quitComposeWindowSaveMessage): don't translate \n
+quitComposeWindowSaveMessage=%1$S parhaillaan tallentaa viestiä.\nLopetetaanko vasta kun viesti on tallennettu vai lopetetaan heti?
+
+## Strings used by the prompt for Ctrl-Enter check before sending message
+sendMessageCheckWindowTitle=Lähetä viesti
+sendMessageCheckLabel=Lähetetäänkö viesti?
+sendMessageCheckSendButtonLabel=Lähetä
+assemblingMessageDone=Kootaan viestiä…Valmis
+assemblingMessage=Kootaan viestiä…
+smtpDeliveringMail=Lähetetään postia…
+smtpMailSent=Postin lähettäminen onnistui
+assemblingMailInformation=Kootaan postin tietoja…
+
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
+gatheringAttachment=Liitetään tiedostoa %S…
+creatingMailMessage=Luodaan sähköpostiviestiä…
+
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
+copyMessageStart=Kopioidaan viestiä kansioon %S…
+copyMessageComplete=Kopiointi valmis.
+copyMessageFailed=Kopiointi epäonnistui.
+filterMessageComplete=Suodatin suoritettiin.
+filterMessageFailed=Suodattimen suoritus epäonnistui.
+
+## LOCALIZATION NOTE (largeMessageSendWarning):
+## Do not translate %S. It is the size of the message in user-friendly notation.
+largeMessageSendWarning=Varoitus! Olet lähettämässä %S kokoista viestiä, joka voi olla suurempi kuin postipalvelin hyväksyy. Lähetetäänkö viesti?
+sendingMessage=Lähetetään viestiä…
+sendMessageErrorTitle=Viestin lähetyksen virhe
+postingMessage=Lähetetään viestiä…
+sendLaterErrorTitle=Virhe myöhemmin lähettämisessä
+saveDraftErrorTitle=Virhe luonnoksen tallentamisessa
+saveTemplateErrorTitle=Virhe mallipohjan tallentamisessa
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSaving=Tiedoston %.200S liittämisessä viestiin tapahtui virhe. Tallennetaanko viesti ilman tätä tiedostoa?
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSending=Tiedoston %.200S liittämisessä viestiin tapahtui virhe. Lähetetäänkö viesti ilman tätä tiedostoa?
+returnToComposeWindowQuestion=Palataanko viestin kirjoitus -ikkunaan?
+
+## reply header in composeMsg
+## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is the author (name of the person replying to)
+mailnews.reply_header_authorwrotesingle=#1 kirjoitti:
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_ondateauthorwrote=#1 kirjoitti #2 klo #3:
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_authorwroteondate=#1 kirjoitti #2 #3:
+
+## reply header in composeMsg
+## user specified
+mailnews.reply_header_originalmessage=-------- Alkuperäinen viesti / Orig.Msg. --------
+
+## forwarded header in composeMsg
+## user specified
+mailnews.forward_header_originalmessage=-------- Välitetty viesti / Fwd.Msg --------
+
+## Strings used by the rename attachment dialog
+renameAttachmentTitle=Nimeä liite uudelleen
+renameAttachmentMessage=Liitteen nimi:
+
+## Attachment Reminder
+## LOCALIZATION NOTE (mail.compose.attachment_reminder_keywords): comma separated
+## words that should trigger an attachment reminder.
+mail.compose.attachment_reminder_keywords=.doc,.pdf,attachment,attach,attached,attaching,enclosed,CV,cover letter,liite,liitteenä,liitetiedosto,liitetiedostot,liitetiedostoissa,liitetiedostossa,ohessa,hakemus
+
+remindLaterButton=Muistuta minua myöhemmin
+remindLaterButton.accesskey=M
+disableAttachmentReminderButton=Estä liitteen muistuttaja tässä viestissä
+attachmentReminderTitle=Liitetiedostoista muistuttaja
+attachmentReminderMsg=Unohditko liittää tiedoston?
+
+# LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of keywords
+attachmentReminderKeywordsMsgs=Löydettiin liitetiedosto-avainsana:;Löydettiin #1 liitetiedosto-avainsanaa:
+attachmentReminderOptionsMsg=Liitetiedosto-avainsanoja voidaan muuttaa asetuksista
+attachmentReminderYesIForgot=Kyllä unohdin!
+attachmentReminderFalseAlarm=En. Lähetä viesti
+
+# Strings used by the Filelink offer notification bar.
+learnMore.label=Lue lisää…
+learnMore.accesskey=L
+
+# LOCALIZATION NOTE (bigFileDescription): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of big attached files
+bigFileDescription=Tämä on suuri tiedosto. Olisi ehkä parempi käyttää Filelink-palvelua.;Nämä ovat suuria tiedostoja. Olisi ehkä parempi käyttää Filelink-palvelua.
+bigFileShare.label=Linkki
+bigFileShare.accesskey=L
+bigFileAttach.label=Ohita
+bigFileAttach.accesskey=O
+bigFileChooseAccount.title=Valitse tili
+bigFileChooseAccount.text=Valitse pilvipalvelutili, johon liite siirretään
+bigFileHideNotification.title=Älä siirrä tiedostoja
+bigFileHideNotification.text=Sinua ei huomauteta vaikka liittäisit tähän viestiin lisää suuria tiedostoja.
+bigFileHideNotification.check=Älä ikinä uudestaan huomauta tästä.
+
+# LOCALIZATION NOTE(cloudFileUploadingTooltip): Do not translate the string
+# %S. %S is the display name for the cloud account the attachment is being
+# uploaded to.
+cloudFileUploadingTooltip=Siirretään palveluun %S…
+
+# LOCALIZATION NOTE(cloudFileUploadedTooltip): Do not translate the string
+# %S. %S is the display name for the cloud account the attachment was uploaded
+# to.
+cloudFileUploadedTooltip=Siirrettiin palveluun %S
+cloudFileUploadingNotification=Tiedostoasi linkitetään. Linkki ilmestyy viestin runkoon kun linkitys on valmis.;Tiedostojasi linkitetään. Linkit ilmestyvät viestin runkoon kun linkitykset ovat valmiita.
+cloudFileUploadingCancel.label=Peruuta
+cloudFileUploadingCancel.accesskey=P
+cloudFilePrivacyNotification=Linkitys suoritettu. Huomaa, että linkitetyt liitetiedostot voivat olla saatavilla ihmisille, jotka näkevät tai arvaavat linkin.
+
+## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
+## word %S. Place the word %S where the host name should appear.
+smtpEnterPasswordPrompt=Kirjoita salasanasi palvelimelle %S:
+
+## LOCALIZATION NOTE(smtpEnterPasswordPromptWithUsername): Do not translate the
+## words %1$S and %2$S. Place the word %1$S where the host name should appear,
+## and %2$S where the user name should appear.
+smtpEnterPasswordPromptWithUsername=Kirjoita salasanasi käyttäjätunnukselle %2$S palvelimella %1$S:
+## LOCALIZATION NOTE(smtpEnterPasswordPromptTitleWithHostname): Do not translate the
+## word %1$S. Place the word %1$S where the server host name should appear.
+smtpEnterPasswordPromptTitleWithHostname=Salasana vaaditaan lähtevän postin SMTP-palvelimelle %1$S
+
+# LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentMsgs=Poista liitetiedosto;Poista liitetiedostot
+
+## LOCALIZATION NOTE(promptToSaveSentLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved sent messages (typically the "Sent" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+## Translate "Write" to match the translation of item "windowTitleWrite" above.
+promptToSaveSentLocally2=Viestisi lähetettiin, mutta sitä ei voitu tallentaa Lähetetyt-kansioosi (%1$S) verkkovirheen tai tiedoston käsittelyvirheen vuoksi.\nVoit yrittää uudelleen tai tallentaa viestin paikallisesti kansioon %3$S/%1$S-%2$S.
+errorFilteringMsg=Viesti lähetettiin ja tallennettiin, mutta suodattimen suorittaminen viestille epäonnistui.
+errorCloudFileAuth.title=Todennusvirhe
+
+## LOCALIZATION NOTE(promptToSaveDraftLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved draft messages (typically the "Drafts" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+promptToSaveDraftLocally2=Luonnostasi ei tallennettu Luonnokset-kansioosi (%1$S) verkkovirheen tai tiedoston käsittelyvirheen vuoksi.\nVoit yrittää uudelleen tai tallentaa luonnoksen kansioon %3$S/%1$S-%2$S.
+buttonLabelRetry2=&Yritä uudelleen
+
+## LOCALIZATION NOTE(promptToSaveTemplateLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved templates (typically the "Templates" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+promptToSaveTemplateLocally2=Malliasi ei voitu kopioida Mallit-kansioosi (%1$S) verkkovirheen tai tiedostonkäsittelyvirheen vuoksi.\nVoit yrittää uudelleen tai tallentaa mallin paikallisesti kansioon %3$S/%1$S-%2$S.
+
+## LOCALIZATION NOTE(saveToLocalFoldersFailed): Message appears after normal
+## save fails (e.g., to Sent) and save to Local Folders also fails. This could
+## occur if network is down and filesystem problems are present such as disk
+## full, permission issues or hardware failure.
+saveToLocalFoldersFailed=Viestiäsi ei voitu tallentaa paikallisiin kansioihin. Syynä saattaa olla levytilan puute.
+
+## LOCALIZATION NOTE(errorCloudFileAuth.message):
+## %1$S is the name of the online storage service against which the authentication failed.
+errorCloudFileAuth.message=Ei voitu todentaa palvelussa %1$S.
+errorCloudFileUpload.title=Siirtovirhe
+
+## LOCALIZATION NOTE(errorCloudFileUpload.message):
+## %1$S is the name of the online storage service against which the uploading failed.
+## %2$S is the name of the file that failed to upload.
+errorCloudFileUpload.message=Ei voitu siirtää tiedostoa %2$S palveluun %1$S.
+errorCloudFileQuota.title=Tilavirhe
+
+## LOCALIZATION NOTE(errorCloudFileQuota.message):
+## %1$S is the name of the online storage service being uploaded to.
+## %2$S is the name of the file that could not be uploaded due to exceeding the storage limit.
+errorCloudFileQuota.message=Tiedoston %2$S siirtäminen palveluun %1$S ylittäisi palvelussa olevan vapaan tilan.
+errorCloudFileLimit.title=Tiedostokokovirhe
+
+## LOCALIZATION NOTE(errorCloudFileLimit.message):
+## %1$S is the name of the online storage service being uploaded to.
+## %2$S is the name of the file that could not be uploaded due to size restrictions.
+errorCloudFileLimit.message=Tiedosto %2$S ylittää palvelun %1$S maksimitiedostokoon.
+errorCloudFileOther.title=Tuntematon virhe
+
+## LOCALIZATION NOTE(errorCloudFileOther.message):
+## %1$S is the name of the online storage service that cannot be communicated with.
+errorCloudFileOther.message=Tapahtui tuntematon virhe kommunikoitaessa palvelun %1$S kanssa.
+errorCloudFileDeletion.title=Poistamisvirhe
+
+## LOCALIZATION NOTE(errorCloudFileDeletion.message):
+## %1$S is the name of the online storage service that the file is to be deleted from.
+## %2$S is the name of the file that failed to be deleted.
+errorCloudFileDeletion.message=Tapahtui virhe poistettaessa tiedostoa %2$S palvelusta %1$S.
+errorCloudFileUpgrade.label=Päivitä
+
+## LOCALIZATION NOTE(stopShowingUploadingNotification): This string is used in the Filelink
+## upload notification bar to allow the user to dismiss the notification permanently.
+stopShowingUploadingNotification.accesskey=Ä
+stopShowingUploadingNotification.label=Älä näytä enää uudestaan
+replaceButton.label=Korvaa…
+replaceButton.accesskey=K
+replaceButton.tooltip=Näytä Etsi ja korvaa -ikkuna
+
+## LOCALIZATION NOTE(blockedAllowResource): %S is the URL to load.
+blockedAllowResource=Poista esto verkko-osoitteelta %S
+## LOCALIZATION NOTE (blockedContentMessage): Semi-colon list of plural forms.
+## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+## %S will be replaced by brandShortName.
+## Files must be unblocked individually, therefore the plural form reads:
+## Unblocking a file (one of several) will include it (that one file) in your sent message.
+## In other words:
+## Unblocking one/several file(s) will include it/them in your message.
+blockedContentMessage=%S on estänyt tähän viestiin liitetyn tiedoston lataamisen. Eston poistaminen sisällyttää tiedoston lähetettyyn viestiisi.;%S on estänyt joidenkin tähän viestiin liitettyjen tiedostojen lataamisen. Eston poistaminen sisällyttää tiedostot lähetettyyn viestiisi.
+
+blockedContentPrefLabel=Asetukset
+blockedContentPrefAccesskey=A
+
+blockedContentPrefLabelUnix=Asetukset
+blockedContentPrefAccesskeyUnix=A
+
+## Recipient pills fields.
+## LOCALIZATION NOTE(confirmRemoveRecipientRowTitle2): %S will be replaced with the field name.
+confirmRemoveRecipientRowTitle2=Poista %S-osoitteet
+## LOCALIZATION NOTE(confirmRemoveRecipientRowBody2): %S will be replaced with the field name.
+confirmRemoveRecipientRowBody2=Haluatko varmasti poistaa %S-osoitteet?
+confirmRemoveRecipientRowButton=Poista
+
+## LOCALIZATION NOTE headersSpaceStyle is for aligning label of a newly create recipient row.
+## It should be larger than the largest Header label and identical to &headersSpace2.style;
+headersSpaceStyle=width: 8em
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editor.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editor.properties
new file mode 100644
index 0000000000..a8f71da1ee
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editor.properties
@@ -0,0 +1,208 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE FILE: embedded "\n" represent HTML breaks (<br>)
+# Don't translate embedded "\n".
+# Don't translate strings like this: %variable%
+# as they will be replaced using JavaScript
+#
+No=Ei
+Save=Tallenna
+More=Enemmän
+Less=Vähemmän
+MoreProperties=Enemmän ominaisuuksia
+FewerProperties=Vähemmän ominaisuuksia
+PropertiesAccessKey=O
+None=Ei mitään
+none=ei mitään
+OpenHTMLFile=Avaa HTML-tiedosto
+OpenTextFile=Avaa tekstitiedosto
+SelectImageFile=Valitse kuvatiedosto
+SaveDocument=Tallenna sivu
+SaveDocumentAs=Tallenna sivu nimellä
+SaveTextAs=Tallenna teksti nimellä
+EditMode=Muokkaustila
+Preview=Esikatselu
+Publish=Julkaise
+PublishPage=Julkaise sivu
+DontPublish=Älä julkaise
+SavePassword=Tallenna salasana Salasanojen hallintaan
+CorrectSpelling=(oikea kirjoitusasu)
+NoSuggestedWords=(ei ehdotettuja sanoja)
+NoMisspelledWord=Ei väärin kirjoitettuja sanoja
+CheckSpellingDone=Oikoluku valmis.
+CheckSpelling=Oikolue
+InputError=Virhe
+Alert=Huomio
+CantEditFramesetMsg=Composer ei voi muokata HTML-kehysjoukkoa tai sivuja, joissa on upotettuja kehyksiä. Jos sivulla on kehysjoukko, yritä muokata jokaista kehystä erikseen. Jos sivulla on upotettuja kehyksiä, tallenna kopio sivusta ja poista <iframe>-tunnus.
+CantEditMimeTypeMsg=Tämän tyyppistä sivua ei voi muokata.
+CantEditDocumentMsg=Tätä sivua ei voi muokata tuntemattomasta syystä.
+BeforeClosing=ennen sulkemista
+BeforePreview=ennen tarkastelua selaimessa
+BeforeValidate=ennen dokumentin hyväksyttämistä
+# LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
+SaveFilePrompt=Tallennetaanko muutokset sivuun "%title%" %reason%?
+PublishPrompt=Tallennetaanko muutokset sivuun "%title%" %reason%?
+SaveFileFailed=Tiedoston tallennus epäonnistui!
+
+# Publishing error strings:
+# LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
+FileNotFound=Tiedostoa %file% ei löytynyt.
+SubdirDoesNotExist=Tällä sivustolla ei ole alikansiota "%dir%" tai tiedostonimi "%file%" on jo jonkin toisen alikansion käytössä.
+FilenameIsSubdir=Tiedoston nimi "%file%" on jo jonkin toisen alihakemiston käytössä.
+ServerNotAvailable=Palvelin ei ole käytettävissä. Tarkista yhteytesi ja yritä myöhemmin uudelleen.
+Offline=Olet yhteydettömässä tilassa. Siirry yhteystilaan napsauttamalla ikkunan oikeassa alanurkassa olevaa kuvaketta.
+DiskFull=Levytila ei riitä tiedoston "%file%" tallentamiseen.
+NameTooLong=Tiedoston nimi tai alihakemiston nimi on liian pitkä.
+AccessDenied=Sinulla ei ole lupaa julkaista tähän osoitteeseen.
+UnknownPublishError=Tapahtui tuntematon julkaisuvirhe.
+PublishFailed=Julkaiseminen epäonnistui.
+PublishCompleted=Julkaiseminen valmis.
+AllFilesPublished=Kaikki tiedostot julkaistu
+# LOCALIZATION NOTE Don't translate %x% or %total%
+FailedFileMsg=%x% / %total% tiedoston julkaisu epäonnistui.
+# End-Publishing error strings
+Prompt=Kysy
+# LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
+PromptFTPUsernamePassword=Kirjoita käyttäjätunnus ja salasana FTP-palvelimelle kohteessa %host%
+RevertCaption=Palauta viimeiseksi tallennettuun
+Revert=Palauta
+SendPageReason=ennen sivun lähettämistä
+Send=Lähetä
+## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
+PublishProgressCaption=Julkaistaan: %title%
+PublishToSite=Julkaistaan sivustolle: %title%
+AbandonChanges=Hylätäänkö sivuun %title% tehdyt tallentamattomat muutokset ja ladataanko sivu uudelleen?
+DocumentTitle=Sivun otsikko
+NeedDocTitle=Kirjoita otsikko nykyiselle sivulle.
+DocTitleHelp=Tämä näkyy sivun nimenä ikkunan otsikkorivillä ja kirjanmerkeissä.
+CancelPublishTitle=Keskeytetäänkö julkaiseminen?
+## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
+## the CancelPublishContinue key below
+CancelPublishMessage=Jos keskeytät julkaisemisen, tiedostosi saattavat siirtyä virheellisesti. Haluatko jatkaa vai keskeyttää?
+CancelPublishContinue=Jatka
+MissingImageError=Valitse kuva, joka on tyypiltään gif, jpg, tai png.
+EmptyHREFError=Valitse sijainti, johon uusi linkki luodaan.
+LinkText=Linkkiteksti
+LinkImage=Linkkikuva
+MixedSelection=[Sekavalinta]
+Mixed=(sekalainen)
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+NotInstalled=%S (ei asennettu)
+EnterLinkText=Kirjoita linkin kohdalla näytettävä teksti:
+EnterLinkTextAccessKey=t
+EmptyLinkTextError=Kirjoita jokin teksti tälle linkille.
+EditTextWarning=Tämä korvaa nykyisen sisällön.
+#LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
+ValidateRangeMsg=Kirjoitettu numero (%n%) on sallitun alueen ulkopuolella.
+ValidateNumberMsg=Kirjoita numero väliltä %min% - %max%.
+MissingAnchorNameError=Kirjoita nimi tälle ankkurille.
+#LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
+DuplicateAnchorNameError="%name%" on jo olemassa tällä sivulla. Kirjoita toinen nimi.
+BulletStyle=Luettelomerkki
+SolidCircle=Täytetty ympyrä
+OpenCircle=Tyhjä ympyrä
+SolidSquare=Täytetty neliö
+NumberStyle=Numerointi
+Automatic=Automaattinen
+Style_1=1, 2, 3…
+Style_I=I, II, III…
+Style_i=i, ii, iii…
+Style_A=A, B, C…
+Style_a=a, b, c…
+Pixels=kuvapistettä
+Percent=prosenttia
+PercentOfCell=% solusta
+PercentOfWindow=% ikkunasta
+PercentOfTable=% taulukosta
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledTitle=nimetön-%S
+untitledDefaultFilename=nimetön
+ShowToolbar=Näytä työkalurivi
+HideToolbar=Piilota työkalurivi
+ImapError=Kuvaa ei voitu ladata
+ImapCheck=\nValitse uusi osoite (URL) ja yritä uudelleen.
+SaveToUseRelativeUrl=Suhteellisia osoitteita (URL) voi käyttää vain tallennetuilla sivuilla
+NoNamedAnchorsOrHeadings=(Ei nimettyjä ankkureita tai otsikoita tällä sivulla)
+TextColor=Tekstin väri
+HighlightColor=Korostusväri
+PageColor=Sivun taustaväri
+BlockColor=Lohkon taustaväri
+TableColor=Taulukon taustaväri
+CellColor=Solun taustaväri
+TableOrCellColor=Taulukon tai solun väri
+LinkColor=Linkkitekstin väri
+ActiveLinkColor=Aktiivisen linkin väri
+VisitedLinkColor=Avatun linkin väri
+NoColorError=Napsauta väriä tai kirjoita kelvollinen HTML-värikoodi
+Table=Taulukko
+TableCell=Taulukon solu
+NestedTable=Sisäkkäinen taulu
+HLine=Vaakaviiva
+Link=Linkki
+Image=Kuva
+ImageAndLink=Kuva ja linkki
+NamedAnchor=Nimetty ankkuri
+List=Luettelo
+ListItem=Luettelon kohta
+Form=Lomake
+InputTag=Lomakekenttä
+InputImage=Lomakekuva
+TextArea=Tekstikenttä
+Select=Pudotusvalikko
+Button=Painike
+Label=Tunnus
+FieldSet=Kenttäryhmä
+Tag=Tunnus
+MissingSiteNameError=Kirjoita tämän julkaisusivuston nimi.
+MissingPublishUrlError=Kirjoita tämän sivun julkaisuosoite.
+MissingPublishFilename=Kirjoita tiedostonimi nykyiselle sivulle.
+#LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
+DuplicateSiteNameError="%name%" on jo olemassa. Kirjoita sivustolle toinen nimi.
+AdvancedProperties=Lisäominaisuudet…
+AdvancedEditForCellMsg=Laajennettu muokkaus ei ole käytettävissä, kun useita soluja on valittuna
+# LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
+ObjectProperties=%obj%:n ominaisuudet…
+# LOCALIZATION NOTE This character must be in the above string and not confict with other accesskeys in Format menu
+ObjectPropertiesAccessKey=d
+# LOCALIZATION NOTE (JoinSelectedCells): This variable should contain the "tablejoincells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinSelectedCells=Liitä valitut solut
+# LOCALIZATION NOTE (JoinCellToRight): This variable should contain the "tablejoincells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinCellToRight=Liitä soluun oikealla
+JoinCellAccesskey=t
+# LOCALIZATION NOTE (TableSelectKey): DONT_TRANSLATE
+TableSelectKey=Ctrl+
+# LOCALIZATION NOTE (XulKeyMac): DONT_TRANSLATE
+XulKeyMac=Cmd+
+# LOCALIZATION NOTE (Del): DONT_TRANSLATE
+Del=Del
+Delete=Poista
+DeleteCells=Poista soluja
+DeleteTableTitle=Poista rivejä tai sarakkeita
+DeleteTableMsg=Rivien tai sarakkeitten määrän vähentäminen poistaa taulukon soluja ja niiden sisällön. Tehdäänkö näin?
+Clear=Tyhjennä
+#Mouse actions
+Click=Napsauta
+Drag=Vedä
+Unknown=Tuntematon
+#
+# LOCALIZATION NOTE "RemoveTextStylesAccesskey" is used for both
+# menu items: "RemoveTextStyles" and "StopTextStyles"
+RemoveTextStylesAccesskey=t
+RemoveTextStyles=Poista kaikki tekstityylit
+StopTextStyles=Keskeytä tekstityyli
+#
+# LOCALIZATION NOTE "RemoveLinksAccesskey" is used for both
+# menu items: "RemoveLinks" and "StopLinks"
+RemoveLinksAccesskey=L
+RemoveLinks=Poista linkit
+StopLinks=Katkaise linkki
+#
+NoFormAction=On suositeltavaa, että lisäät toiminnon tälle lomakkeelle. Itselähettyvät lomakkeet ovat edistynyt tekniikka, joka ei välttämättä toimi johdonmukaisesti kaikissa selaimissa.
+NoAltText=Jos kuva on olennainen dokumentin sisällölle, sinun pitää lisätä vaihtoehtoinen teksti, joka näkyy tekstiselaimissa ja muissa selaimissa kuvan latautuessa tai kun kuvien lataaminen on poistettu käytöstä.
+#
+Malformed=Lähdekoodia ei voitu muuntaa takaisin dokumentiksi, koska koodi ei ole virheetöntä XHTML:ää.
+NoLinksToCheck=Ei ole elementtejä, joissa olisi tarkistettavia linkkejä
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editorOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editorOverlay.dtd
new file mode 100644
index 0000000000..471695f662
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/editorOverlay.dtd
@@ -0,0 +1,303 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Attn: Localization - some of the menus in this dialog directly affect mail also. -->
+
+<!-- Edit menu items -->
+<!ENTITY pasteNoFormatting.label "Liitä ilman muotoilua">
+<!ENTITY pasteNoFormatting.accesskey "m">
+<!ENTITY pasteNoFormatting.key "V">
+<!ENTITY pasteAsQuotationCmd.label "Liitä lainauksena">
+<!ENTITY pasteAsQuotationCmd.accesskey "n">
+
+<!-- Insert menu items -->
+<!ENTITY insertMenu.label "Lisää">
+<!ENTITY insertMenu.accesskey "L">
+<!ENTITY insertLinkCmd2.label "Lähetä linkki…">
+<!ENTITY insertLinkCmd2.accesskey "L">
+<!ENTITY insertLinkCmd2.key "k">
+<!ENTITY insertAnchorCmd.label "Nimetty ankkuri…">
+<!ENTITY insertAnchorCmd.accesskey "N">
+<!ENTITY insertImageCmd.label "Kuva…">
+<!ENTITY insertImageCmd.accesskey "K">
+<!ENTITY insertHLineCmd.label "Vaakaviiva">
+<!ENTITY insertHLineCmd.accesskey "V">
+<!ENTITY insertTableCmd.label "Taulukko…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+<!ENTITY insertMathCmd.label "Matematiikkaa…">
+<!ENTITY insertMathCmd.accesskey "a">
+<!ENTITY insertCharsCmd.label "Merkit ja symbolit…">
+<!ENTITY insertCharsCmd.accesskey "M">
+<!ENTITY insertBreakAllCmd.label "Rivinvaihto kuvien jälkeen">
+<!ENTITY insertBreakAllCmd.accesskey "R">
+
+<!-- Used just in context popup. -->
+<!ENTITY createLinkCmd.label "Luo linkki…">
+<!ENTITY createLinkCmd.accesskey "n">
+<!ENTITY editLinkCmd.label "Muokkaa linkkiä uudessa Composer-ikkunassa">
+<!ENTITY editLinkCmd.accesskey "u">
+
+<!-- Font Face SubMenu -->
+<!ENTITY FontFaceSelect.tooltip "Valitse kirjasinlaji">
+<!ENTITY fontfaceMenu.label "Kirjasinlaji">
+<!ENTITY fontfaceMenu.accesskey "K">
+<!ENTITY fontVarWidth.label "Suhteellinen">
+<!ENTITY fontVarWidth.accesskey "S">
+<!ENTITY fontFixedWidth.label "Tasavälinen">
+<!ENTITY fontFixedWidth.accesskey "T">
+<!ENTITY fontFixedWidth.key "T">
+<!ENTITY fontHelvetica.label "Helvetica, Arial">
+<!ENTITY fontHelvetica.accesskey "H">
+<!ENTITY fontTimes.label "Times">
+<!ENTITY fontTimes.accesskey "T">
+<!ENTITY fontCourier.label "Courier">
+<!ENTITY fontCourier.accesskey "C">
+
+<!-- Font Size SubMenu -->
+<!ENTITY FontSizeSelect.tooltip "Valitse kirjasinten koko">
+<!ENTITY decreaseFontSize.label "Pienempi">
+<!ENTITY decreaseFontSize.accesskey "P">
+<!ENTITY decrementFontSize.key "-">
+<!ENTITY decrementFontSize.key2 "_"> <!-- < is above this key on many keyboards -->
+<!ENTITY increaseFontSize.label "Suurempi">
+<!ENTITY increaseFontSize.accesskey "S">
+<!ENTITY incrementFontSize.key "+">
+<!ENTITY incrementFontSize.key2 "?"> <!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Koko">
+<!ENTITY fontSizeMenu.accesskey "o">
+<!ENTITY size-tinyCmd.label "Pienin">
+<!ENTITY size-tinyCmd.accesskey "P">
+<!ENTITY size-smallCmd.label "Pieni">
+<!ENTITY size-smallCmd.accesskey "n">
+<!ENTITY size-mediumCmd.label "Keskikokoinen">
+<!ENTITY size-mediumCmd.accesskey "K">
+<!ENTITY size-largeCmd.label "Suuri">
+<!ENTITY size-largeCmd.accesskey "u">
+<!ENTITY size-extraLargeCmd.label "Suurempi">
+<!ENTITY size-extraLargeCmd.accesskey "u">
+<!ENTITY size-hugeCmd.label "Suurin">
+<!ENTITY size-hugeCmd.accesskey "r">
+
+<!-- Font Style SubMenu -->
+<!ENTITY fontStyleMenu.label "Tekstin tyyli">
+<!ENTITY fontStyleMenu.accesskey "T">
+<!ENTITY styleBoldCmd.label "Lihavoitu">
+<!ENTITY styleBoldCmd.accesskey "L">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Kursivoitu">
+<!ENTITY styleItalicCmd.accesskey "K">
+<!ENTITY styleItalicCmd.key "I">
+<!ENTITY styleUnderlineCmd.label "Alleviivattu">
+<!ENTITY styleUnderlineCmd.accesskey "A">
+<!ENTITY styleUnderlineCmd.key "U">
+<!ENTITY styleStrikeThruCmd.label "Yliviivattu">
+<!ENTITY styleStrikeThruCmd.accesskey "Y">
+<!ENTITY styleSuperscriptCmd.label "Yläindeksi">
+<!ENTITY styleSuperscriptCmd.accesskey "ä">
+<!ENTITY styleSubscriptCmd.label "Alaindeksi">
+<!ENTITY styleSubscriptCmd.accesskey "a">
+<!ENTITY styleNonbreakingCmd.label "Katkeamaton">
+<!ENTITY styleNonbreakingCmd.accesskey "t">
+<!ENTITY styleEm.label "Korostus">
+<!ENTITY styleEm.accesskey "r">
+<!ENTITY styleStrong.label "Vahvempi korostus">
+<!ENTITY styleStrong.accesskey "V">
+<!ENTITY styleCite.label "Sitaatti">
+<!ENTITY styleCite.accesskey "S">
+<!ENTITY styleAbbr.label "Lyhenne">
+<!ENTITY styleAbbr.accesskey "h">
+<!ENTITY styleAcronym.label "Lyhennesana">
+<!ENTITY styleAcronym.accesskey "y">
+<!ENTITY styleCode.label "Koodi">
+<!ENTITY styleCode.accesskey "d">
+<!ENTITY styleSamp.label "Esimerkkiteksti">
+<!ENTITY styleSamp.accesskey "E">
+<!ENTITY styleVar.label "Muuttuja">
+<!ENTITY styleVar.accesskey "M">
+
+<!ENTITY formatFontColor.label "Tekstin väri…">
+<!ENTITY formatFontColor.accesskey "e">
+<!ENTITY tableOrCellColor.label "Taulukon tai solun taustaväri…">
+<!ENTITY tableOrCellColor.accesskey "T">
+
+<!ENTITY formatRemoveStyles.key "Y">
+<!ENTITY formatRemoveLinks.key "K">
+<!ENTITY formatRemoveNamedAnchors.label "Poista nimetyt ankkurit">
+<!ENTITY formatRemoveNamedAnchors.accesskey "P">
+<!ENTITY formatRemoveNamedAnchors2.key "A">
+
+<!ENTITY paragraphMenu.label "Kappale">
+<!ENTITY paragraphMenu.accesskey "a">
+<!ENTITY paragraphParagraphCmd.label "Kappale">
+<!ENTITY paragraphParagraphCmd.accesskey "K">
+<!ENTITY heading1Cmd.label "Otsikko 1">
+<!ENTITY heading1Cmd.accesskey "1">
+<!ENTITY heading2Cmd.label "Otsikko 2">
+<!ENTITY heading2Cmd.accesskey "2">
+<!ENTITY heading3Cmd.label "Otsikko 3">
+<!ENTITY heading3Cmd.accesskey "3">
+<!ENTITY heading4Cmd.label "Otsikko 4">
+<!ENTITY heading4Cmd.accesskey "4">
+<!ENTITY heading5Cmd.label "Otsikko 5">
+<!ENTITY heading5Cmd.accesskey "5">
+<!ENTITY heading6Cmd.label "Otsikko 6">
+<!ENTITY heading6Cmd.accesskey "6">
+<!ENTITY paragraphAddressCmd.label "Osoite">
+<!ENTITY paragraphAddressCmd.accesskey "O">
+<!ENTITY paragraphPreformatCmd.label "Esimuotoiltu">
+<!ENTITY paragraphPreformatCmd.accesskey "E">
+
+<!-- List menu items -->
+<!ENTITY formatlistMenu.label "Luettelo">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "Ei mitään">
+<!ENTITY noneCmd.accesskey "E">
+<!ENTITY listBulletCmd.label "Numeroimaton">
+<!ENTITY listBulletCmd.accesskey "N">
+<!ENTITY listNumberedCmd.label "Numeroitu">
+<!ENTITY listNumberedCmd.accesskey "u">
+<!ENTITY listTermCmd.label "Termi">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Määritelmä">
+<!ENTITY listDefinitionCmd.accesskey "M">
+<!ENTITY listPropsCmd.label "Luettelon ominaisuudet…">
+<!ENTITY listPropsCmd.accesskey "L">
+
+<!ENTITY ParagraphSelect.tooltip "Valitse kappaleen muotoilu">
+<!-- Shared in Paragraph, and Toolbar menulist -->
+<!ENTITY bodyTextCmd.label "Leipäteksti">
+<!ENTITY bodyTextCmd.accesskey "L">
+
+<!-- Align menu items -->
+<!ENTITY alignMenu.label "Tasaus">
+<!ENTITY alignMenu.accesskey "u">
+<!ENTITY alignLeft.label "Vasen">
+<!ENTITY alignLeft.accesskey "V">
+<!ENTITY alignLeft.tooltip "Tasaa vasemmalle">
+<!ENTITY alignCenter.label "Keskitetty">
+<!ENTITY alignCenter.accesskey "K">
+<!ENTITY alignCenter.tooltip "Tasaa keskelle">
+<!ENTITY alignRight.label "Oikea">
+<!ENTITY alignRight.accesskey "O">
+<!ENTITY alignRight.tooltip "Tasaa oikealle">
+<!ENTITY alignJustify.label "Tasaleveys">
+<!ENTITY alignJustify.accesskey "T">
+<!ENTITY alignJustify.tooltip "Tasaa vakioleveyteen">
+
+<!ENTITY increaseIndent.label "Lisää sisennystä">
+<!ENTITY increaseIndent.accesskey "e">
+<!ENTITY increaseIndent.key "=">
+<!ENTITY decreaseIndent.label "Vähennä sisennystä">
+<!ENTITY decreaseIndent.accesskey "h">
+<!ENTITY decreaseIndent.key "-">
+
+<!ENTITY colorsAndBackground.label "Sivun värit ja tausta…">
+<!ENTITY colorsAndBackground.accesskey "S">
+
+<!-- Table Menu -->
+<!ENTITY tableMenu.label "Taulukko">
+<!ENTITY tableMenu.accesskey "k">
+
+<!-- Select Submenu -->
+<!ENTITY tableSelectMenu.label "Valitse">
+<!ENTITY tableSelectMenu.accesskey "V">
+
+<!ENTITY tableSelectMenu2.label "Valitse taulukko">
+<!ENTITY tableSelectMenu2.accesskey "V">
+<!ENTITY tableInsertMenu2.label "Lisää taulukko">
+<!ENTITY tableInsertMenu2.accesskey "L">
+<!ENTITY tableDeleteMenu2.label "Poista taulukko">
+<!ENTITY tableDeleteMenu2.accesskey "P">
+
+<!-- Insert SubMenu -->
+<!ENTITY tableInsertMenu.label "Lisää">
+<!ENTITY tableInsertMenu.accesskey "L">
+<!ENTITY tableTable.label "Taulukko">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Rivi">
+<!ENTITY tableRows.label "Rivejä">
+<!ENTITY tableRow.accesskey "R">
+<!ENTITY tableRowAbove.label "Rivi yläpuolelle">
+<!ENTITY tableRowAbove.accesskey "R">
+<!ENTITY tableRowBelow.label "Rivi alapuolelle">
+<!ENTITY tableRowBelow.accesskey "v">
+<!ENTITY tableColumn.label "Sarake">
+<!ENTITY tableColumns.label "Sarakkeita">
+<!ENTITY tableColumn.accesskey "S">
+<!ENTITY tableColumnBefore.label "Sarake ennen">
+<!ENTITY tableColumnBefore.accesskey "S">
+<!ENTITY tableColumnAfter.label "Sarake jälkeen">
+<!ENTITY tableColumnAfter.accesskey "a">
+<!ENTITY tableCell.label "Solu">
+<!ENTITY tableCells.label "Soluja">
+<!ENTITY tableCell.accesskey "o">
+<!ENTITY tableCellContents.label "Solun sisältö">
+<!ENTITY tableCellContents.accesskey "n">
+<!ENTITY tableAllCells.label "Kaikki solut">
+<!ENTITY tableAllCells.accesskey "K">
+<!ENTITY tableCellBefore.label "Solu ennen">
+<!ENTITY tableCellBefore.accesskey "S">
+<!ENTITY tableCellAfter.label "Solu jälkeen">
+<!ENTITY tableCellAfter.accesskey "u">
+<!-- Delete SubMenu -->
+<!ENTITY tableDeleteMenu.label "Poista">
+<!ENTITY tableDeleteMenu.accesskey "o">
+
+<!-- text for "Join Cells" is in editor.properties
+ ("JoinSelectedCells" and "JoinCellToRight")
+ the access key must exist in both of those strings
+ But value must be set here for accesskey to draw properly
+-->
+<!ENTITY tableJoinCells.label "t">
+<!ENTITY tableJoinCells.accesskey "t">
+<!ENTITY tableSplitCell.label "Jaa solu">
+<!ENTITY tableSplitCell.accesskey "J">
+<!ENTITY convertToTable.label "Luo taulukko valinnasta">
+<!ENTITY convertToTable.accesskey "u">
+<!ENTITY tableProperties.label "Taulukon ominaisuudet…">
+<!ENTITY tableProperties.accesskey "T">
+
+<!ENTITY imageToolbarCmd.label "Kuva">
+<!ENTITY imageToolbarCmd.tooltip "Lisää uusi kuva tai muokkaa valitun kuvan ominaisuuksia">
+<!ENTITY hruleToolbarCmd.label "Vaakaviiva">
+<!ENTITY hruleToolbarCmd.tooltip "Lisää vaakaviiva tai muokkaa valitun viivan ominaisuuksia">
+<!ENTITY tableToolbarCmd.label "Taulukko">
+<!ENTITY tableToolbarCmd.tooltip "Lisää uusi taulukko tai muokkaa valitun taulukon ominaisuuksia">
+<!ENTITY linkToolbarCmd.label "Linkki">
+<!ENTITY linkToolbarCmd.tooltip "Lisää uusi linkki tai muokkaa valitun linkin ominaisuuksia">
+<!ENTITY anchorToolbarCmd.label "Ankkuri">
+<!ENTITY anchorToolbarCmd.tooltip "Lisää uusi ankkuri tai muokkaa valitun ankkurin ominaisuuksia">
+<!ENTITY TextColorButton.tooltip "Valitse tekstin väri">
+<!ENTITY BackgroundColorButton.tooltip "Valitse taustaväri">
+
+<!-- Editor toolbar -->
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Muuta kirjasinkokoa">
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Pienempi kirjasinkoko">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Suurempi kirjasinkoko">
+<!ENTITY boldToolbarCmd.tooltip "Lihavoi">
+<!ENTITY italicToolbarCmd.tooltip "Kursivoi">
+<!ENTITY underlineToolbarCmd.tooltip "Alleviivaa">
+<!ENTITY bulletListToolbarCmd.tooltip "Lisää tai poista numeroimaton lista">
+<!ENTITY numberListToolbarCmd.tooltip "Lisää tai poista numeroitu lista">
+<!ENTITY outdentToolbarCmd.tooltip "Vähennä sisennystä (siirrä vasemmalle)">
+<!ENTITY indentToolbarCmd.tooltip "Lisää sisennystä (siirrä oikealle)">
+<!ENTITY AlignPopupButton.tooltip "Valitse tekstin tasaus">
+<!ENTITY InsertPopupButton.tooltip "Lisää linkki, ankkuri, kuva, vaakaviiva tai taulukko">
+<!ENTITY alignLeftButton.tooltip "Tasaa teksti vasemman marginaalin mukaan">
+<!ENTITY alignCenterButton.tooltip "Tasaa teksti keskelle">
+<!ENTITY alignRightButton.tooltip "Tasaa teksti oikean marginaalin mukaan">
+<!ENTITY alignJustifyButton.tooltip "Tasaa teksti vasemman ja oikean marginaalin mukaan">
+
+<!-- TOC manipulation -->
+<!ENTITY insertTOC.label "Lisää">
+<!ENTITY insertTOC.accesskey "L">
+<!ENTITY updateTOC.label "Päivitä">
+<!ENTITY updateTOC.accesskey "ä">
+<!ENTITY removeTOC.label "Poista">
+<!ENTITY removeTOC.accesskey "o">
+<!ENTITY tocMenu.label "Sisällysluettelo…">
+<!ENTITY tocMenu.accesskey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/mailComposeEditorOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/mailComposeEditorOverlay.dtd
new file mode 100644
index 0000000000..097cc300e2
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/mailComposeEditorOverlay.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY attachImageSource.label "Liitä tämä kuva viestiin">
+<!ENTITY attachImageSource.accesskey "L">
+
+<!ENTITY attachLinkSource.label "Linkitä kuvan osoite viestiin">
+<!ENTITY attachLinkSource.accesskey "n">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/messengercompose.dtd
new file mode 100644
index 0000000000..42f4aec2ad
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/messengercompose.dtd
@@ -0,0 +1,306 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE messengercompose.dtd Main UI for message composition -->
+<!ENTITY msgComposeWindow.title "Kirjoita: (ei aihetta)">
+
+<!-- File Menu -->
+<!ENTITY fileMenu.label "Tiedosto">
+<!ENTITY fileMenu.accesskey "T">
+<!ENTITY newMenu.label "Uusi">
+<!ENTITY newMenu.accesskey "U">
+<!ENTITY newMessage.label "Viesti">
+<!ENTITY newMessage.accesskey "M">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newContact.label "Yhteystieto…">
+<!ENTITY newContact.accesskey "Y">
+<!ENTITY attachMenu.label "Liitä">
+<!ENTITY attachMenu.accesskey "L">
+<!ENTITY attachCloudCmd.label "Linkitä tiedosto">
+<!ENTITY attachCloudCmd.accesskey "i">
+<!ENTITY attachPageCmd.label "Verkkosivu…">
+<!ENTITY attachPageCmd.accesskey "V">
+<!ENTITY remindLater.label "Muistuta minua myöhemmin">
+<!ENTITY remindLater.accesskey "M">
+<!ENTITY closeCmd.label "Sulje">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "S">
+<!ENTITY saveCmd.label "Tallenna">
+<!ENTITY saveCmd.key "S">
+<!ENTITY saveCmd.accesskey "T">
+<!ENTITY saveAsCmd.label "Tallenna nimellä">
+<!ENTITY saveAsCmd.accesskey "n">
+<!ENTITY saveAsFileCmd.label "Tiedosto…">
+<!ENTITY saveAsFileCmd.accesskey "T">
+<!ENTITY saveAsDraftCmd.label "Luonnos">
+<!ENTITY saveAsDraftCmd.accesskey "L">
+<!ENTITY saveAsTemplateCmd.label "Mallipohja">
+<!ENTITY saveAsTemplateCmd.accesskey "M">
+<!ENTITY sendNowCmd.label "Lähetä nyt">
+<!ENTITY sendCmd.keycode "VK_RETURN">
+<!ENTITY sendNowCmd.accesskey "ä">
+<!ENTITY sendLaterCmd.label "Lähetä myöhemmin">
+<!ENTITY sendLaterCmd.keycode "VK_RETURN">
+<!ENTITY sendLaterCmd.accesskey "h">
+<!ENTITY printCmd.label "Tulosta…">
+<!ENTITY printCmd.key "P">
+<!ENTITY printCmd.accesskey "o">
+
+<!-- Edit Menu -->
+<!ENTITY editMenu.label "Muokkaa">
+<!ENTITY editMenu.accesskey "M">
+<!ENTITY undoCmd.label "Kumoa">
+<!ENTITY undoCmd.key "Z">
+<!ENTITY undoCmd.accesskey "m">
+<!ENTITY redoCmd.label "Tee uudelleen">
+<!ENTITY redoCmd.key "Y">
+<!ENTITY redoCmd.accesskey "T">
+<!ENTITY cutCmd.key "X">
+<!ENTITY copyCmd.key "C">
+<!ENTITY pasteCmd.key "V">
+<!ENTITY pasteNoFormattingCmd.key "V">
+<!ENTITY pasteAsQuotationCmd.key "o">
+<!ENTITY editRewrapCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Poista">
+<!ENTITY deleteCmd.accesskey "o">
+<!ENTITY editRewrapCmd.label "Rivitä uudelleen">
+<!ENTITY editRewrapCmd.key "R">
+<!ENTITY renameAttachmentCmd.label "Nimeä liite uudelleen…">
+<!ENTITY renameAttachmentCmd.accesskey "u">
+<!ENTITY reorderAttachmentsCmd.label "Järjestä liitteet…">
+<!ENTITY reorderAttachmentsCmd.accesskey "J">
+<!ENTITY reorderAttachmentsCmd.key "j">
+<!ENTITY selectAllCmd.accesskey "V">
+<!ENTITY findBarCmd.label "Etsi…">
+<!ENTITY findBarCmd.accesskey "E">
+<!ENTITY findBarCmd.key "F">
+<!ENTITY findReplaceCmd.label "Etsi ja korvaa…">
+<!ENTITY findReplaceCmd.accesskey "j">
+<!ENTITY findReplaceCmd.key "H">
+<!ENTITY findAgainCmd.label "Etsi seuraava">
+<!ENTITY findAgainCmd.accesskey "s">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Etsi edellinen">
+<!ENTITY findPrevCmd.accesskey "d">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+
+<!-- Reorder Attachment Panel -->
+<!ENTITY reorderAttachmentsPanel.label "Järjestä liitteet">
+<!ENTITY moveAttachmentBundleUpPanelBtn.label "Siirrä yhteen">
+
+<!-- LOCALIZATION NOTE (sortAttachmentsPanelBtn.Sort.AZ.label):
+ Please ensure that this translation matches
+ sortAttachmentsPanelBtn.Sort.ZA.label, except for the sort direction. -->
+<!ENTITY sortAttachmentsPanelBtn.Sort.AZ.label "Lajittele: A - Ö">
+<!ENTITY sortAttachmentsPanelBtn.Sort.ZA.label "Lajittele: Ö - A">
+<!-- LOCALIZATION NOTE (sortAttachmentsPanelBtn.SortSelection.AZ.label):
+ Please ensure that this translation matches
+ sortAttachmentsPanelBtn.SortSelection.ZA.label, except for the sort direction. -->
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.AZ.label "Lajittele valinta: A - Ö">
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.ZA.label "Lajittele valinta: Ö - A">
+<!ENTITY sortAttachmentsPanelBtn.key "y">
+
+<!-- View Menu -->
+<!ENTITY viewMenu.label "Näytä">
+<!ENTITY viewMenu.accesskey "N">
+<!ENTITY viewToolbarsMenuNew.label "Työkalupalkit">
+<!ENTITY viewToolbarsMenuNew.accesskey "T">
+<!ENTITY menubarCmd.label "Valikkopalkki">
+<!ENTITY menubarCmd.accesskey "V">
+<!ENTITY showCompositionToolbarCmd.label "Viestin kirjoituspalkki">
+<!ENTITY showCompositionToolbarCmd.accesskey "V">
+<!ENTITY showFormattingBarCmd.label "Muotoilupalkki">
+<!ENTITY showFormattingBarCmd.accesskey "M">
+<!ENTITY showTaskbarCmd.label "Tilarivi">
+<!ENTITY showTaskbarCmd.accesskey "T">
+<!ENTITY customizeToolbar.label "Muokkaa…">
+<!ENTITY customizeToolbar.accesskey "M">
+
+<!ENTITY addressSidebar.label "Yhteystietopalkki">
+<!ENTITY addressSidebar.accesskey "Y">
+
+<!-- Format Menu -->
+<!ENTITY formatMenu.label "Muotoilu">
+<!ENTITY formatMenu.accesskey "u">
+
+<!-- Options Menu -->
+<!ENTITY optionsMenu.label "Valinnat">
+<!ENTITY optionsMenu.accesskey "V">
+<!ENTITY checkSpellingCmd2.label "Oikolue…">
+<!ENTITY checkSpellingCmd2.key "p">
+<!ENTITY checkSpellingCmd2.key2 "VK_F7">
+<!ENTITY checkSpellingCmd2.accesskey "O">
+<!ENTITY enableInlineSpellChecker.label "Oikolue kirjoitettaessa">
+<!ENTITY enableInlineSpellChecker.accesskey "k">
+<!ENTITY quoteCmd.label "Lainaa viestiä">
+<!ENTITY quoteCmd.accesskey "L">
+
+<!--LOCALIZATION NOTE attachVCard.label Don't translate the term 'vCard' -->
+<!ENTITY attachVCard.label "Liitä käyntikortti (vCard)">
+<!ENTITY attachVCard.accesskey "L">
+
+<!ENTITY returnReceiptMenu.label "Vastaanottokuittaus">
+<!ENTITY returnReceiptMenu.accesskey "V">
+<!ENTITY dsnMenu.label "Toimitustilan ilmoitukset">
+<!ENTITY dsnMenu.accesskey "o">
+<!ENTITY priorityMenu.label "Tärkeysaste">
+<!ENTITY priorityMenu.accesskey "T">
+<!ENTITY priorityButton.title "Tärkeysaste">
+<!ENTITY priorityButton.tooltiptext "Muuta viestin tärkeysastetta">
+<!ENTITY priorityButton.label "Tärkeysaste:">
+<!ENTITY lowestPriorityCmd.label "Matalin">
+<!ENTITY lowestPriorityCmd.accesskey "M">
+<!ENTITY lowPriorityCmd.label "Matala">
+<!ENTITY lowPriorityCmd.accesskey "a">
+<!ENTITY normalPriorityCmd.label "Normaali">
+<!ENTITY normalPriorityCmd.accesskey "N">
+<!ENTITY highPriorityCmd.label "Korkea">
+<!ENTITY highPriorityCmd.accesskey "o">
+<!ENTITY highestPriorityCmd.label "Korkein">
+<!ENTITY highestPriorityCmd.accesskey "K">
+<!ENTITY fileCarbonCopyCmd.label "Kopioi kohteeseen">
+<!ENTITY fileCarbonCopyCmd.accesskey "p">
+<!ENTITY fileHereMenu.label "Tallenna tänne">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Työkalut">
+<!ENTITY tasksMenu.accesskey "y">
+<!ENTITY messengerCmd.label "Sähköposti ja keskusteluryhmät">
+<!ENTITY messengerCmd.accesskey "S">
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY addressBookCmd.label "Osoitekirja">
+<!ENTITY addressBookCmd.accesskey "O">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY accountManagerCmd2.label "Tilien asetukset">
+<!ENTITY accountManagerCmd2.accesskey "s">
+<!ENTITY accountManagerCmdUnix2.accesskey "A">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY minimizeWindow.label "Pienennä ikkuna">
+<!ENTITY bringAllToFront.label "Näytä kaikki">
+<!ENTITY zoomWindow.label "Suurenna ikkunaa">
+<!ENTITY windowMenu.label "Ikkuna">
+
+<!-- Mail Toolbar -->
+<!ENTITY sendButton.label "Lähetä">
+<!ENTITY quoteButton.label "Lainaa">
+<!ENTITY addressButton.label "Yhteystiedot">
+<!ENTITY spellingButton.label "Oikoluku">
+<!ENTITY saveButton.label "Tallenna">
+<!ENTITY printButton.label "Tulosta">
+
+<!-- Mail Toolbar Tooltips -->
+<!ENTITY sendButton.tooltip "Lähetä tämä viesti nyt">
+<!ENTITY sendlaterButton.tooltip "Lähetä tämä viesti myöhemmin">
+<!ENTITY quoteButton.tooltip "Lainaa edellistä viestiä">
+<!ENTITY addressButton.tooltip "Valitse vastaanottaja osoitekirjasta">
+<!ENTITY spellingButton.tooltip "Oikolue valinta tai koko viesti">
+<!ENTITY saveButton.tooltip "Tallenna tämä viesti">
+<!ENTITY cutButton.tooltip "Leikkaa">
+<!ENTITY copyButton.tooltip "Kopioi">
+<!ENTITY pasteButton.tooltip "Liitä">
+<!ENTITY printButton.tooltip "Tulosta tämä viesti">
+
+<!-- Headers -->
+<!--LOCALIZATION NOTE headersSpaces.style is for aligning the From:, To: and
+ Subject: rows. It should be larger than the largest Header label -->
+<!ENTITY headersSpace2.style "width: 8em;">
+<!ENTITY fromAddr2.label "Lähettäjä">
+<!ENTITY fromAddr.accesskey "h">
+<!ENTITY replyAddr2.label "Vastausosoite">
+<!ENTITY newsgroupsAddr2.label "Keskusteluryhmä">
+<!ENTITY followupAddr2.label "Vastausryhmä">
+<!ENTITY subject2.label "Aihe">
+<!ENTITY subject.accesskey "A">
+<!ENTITY attachmentBucketCloseButton.tooltip "Piilota Liite-paneeli">
+
+<!-- Format Toolbar, imported from editorAppShell.xhtml -->
+<!ENTITY SmileButton.tooltip "Lisää hymiö">
+<!ENTITY smiley1Cmd.label "Hymy">
+<!ENTITY smiley2Cmd.label "Suru">
+<!ENTITY smiley3Cmd.label "Silmänisku">
+<!ENTITY smiley4Cmd.label "Kieli ulkona">
+<!ENTITY smiley5Cmd.label "Naurava">
+<!ENTITY smiley6Cmd.label "Nolo">
+<!ENTITY smiley7Cmd.label "Epävarma">
+<!ENTITY smiley8Cmd.label "Yllätys">
+<!ENTITY smiley9Cmd.label "Suukko">
+<!ENTITY smiley10Cmd.label "Huuto">
+<!ENTITY smiley11Cmd.label "Viilee">
+<!ENTITY smiley12Cmd.label "Rahat-suuhun">
+<!ENTITY smiley13Cmd.label "Jalka-suussa">
+<!ENTITY smiley14Cmd.label "Viaton">
+<!ENTITY smiley15Cmd.label "Itku">
+<!ENTITY smiley16Cmd.label "Vaikenee">
+
+<!-- Message Pane Context Menu -->
+<!ENTITY spellCheckNoSuggestions.label "Ei ehdotuksia">
+<!ENTITY spellCheckIgnoreWord.label "Ohita sana">
+<!ENTITY spellCheckIgnoreWord.accesskey "h">
+<!ENTITY spellCheckAddToDictionary.label "Lisää sanastoon">
+<!ENTITY spellCheckAddToDictionary.accesskey "s">
+<!ENTITY undo.label "Kumoa">
+<!ENTITY undo.accesskey "m">
+<!ENTITY cut.label "Leikkaa">
+<!ENTITY cut.accesskey "L">
+<!ENTITY copy.label "Kopioi">
+<!ENTITY copy.accesskey "K">
+<!ENTITY paste.label "Liitä">
+<!ENTITY paste.accesskey "i">
+<!ENTITY pasteQuote.label "Liitä lainauksena">
+<!ENTITY pasteQuote.accesskey "t">
+
+<!-- Attachment Item and List Context Menus -->
+<!ENTITY openAttachment.label "Avaa">
+<!ENTITY openAttachment.accesskey "A">
+<!ENTITY delete.label "Poista">
+<!ENTITY delete.accesskey "o">
+<!ENTITY removeAttachment.label "Poista liitetiedosto">
+<!ENTITY removeAttachment.accesskey "l">
+<!ENTITY renameAttachment.label "Nimeä uudelleen…">
+<!ENTITY renameAttachment.accesskey "N">
+<!ENTITY reorderAttachments.label "Järjestä liitteet uudelleen…">
+<!ENTITY reorderAttachments.accesskey "l">
+<!ENTITY removeAllAttachments.label "Poista kaikki liitteet">
+<!ENTITY removeAllAttachments.accesskey "k">
+<!ENTITY selectAll.label "Valitse kaikki">
+<!ENTITY selectAll.accesskey "V">
+<!ENTITY attachCloud.label "Linkitetty liitetiedosto…">
+<!ENTITY attachCloud.accesskey "i">
+<!ENTITY convertCloud.label "Muunna muotoon…">
+<!ENTITY convertCloud.accesskey "M">
+<!ENTITY cancelUpload.label "Peruuta siirto">
+<!ENTITY cancelUpload.accesskey "P">
+<!ENTITY convertRegularAttachment.label "Normaali liitetiedosto">
+<!ENTITY convertRegularAttachment.accesskey "N">
+<!ENTITY attachPage.label "Liitä verkkosivu">
+<!ENTITY attachPage.accesskey "t">
+
+<!-- Attachment Pane Header Bar Context Menu -->
+<!-- LOCALIZATION NOTE (initiallyShowAttachmentPane.label):
+ Should use the same wording as startExpandedCmd.label
+ in msgHdrViewOverlay.dtd. -->
+<!ENTITY initiallyShowAttachmentPane.label "Näytä Liitteet-paneeli oletuksena">
+<!ENTITY initiallyShowAttachmentPane.accesskey "o">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Hae sanastoja…">
+<!ENTITY spellAddDictionaries.accesskey "H">
+
+<!-- Title for the address picker panel -->
+<!ENTITY addressesSidebarTitle.label "Yhteystiedot">
+
+<!-- Identity popup customize menuitem -->
+<!ENTITY customizeFromAddress.label "Muokkaa lähettäjän osoitetta…">
+<!ENTITY customizeFromAddress.accesskey "u">
+
+<!-- Accessibility name for the document -->
+<!ENTITY aria.message.bodyName "Viestin runko">
+
+<!-- Status Bar -->
+<!ENTITY languageStatusButton.tooltip "Oikoluvun kieli">
+<!ENTITY encodingStatusPanel.tooltip "Tekstin merkistökoodaus">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.dtd
new file mode 100644
index 0000000000..5ca0f84b9e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE sendprogress.dtd Main UI for Send Message Progress Dialog -->
+<!ENTITY sendDialog.title "Käsitellään viestiä">
+<!ENTITY status.label "Tila:">
+<!ENTITY progress.label "Edistyminen:">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.properties
new file mode 100644
index 0000000000..bdf1a4710c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/messengercompose/sendProgress.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (titleSendMsgSubject):
+# %S will be replaced by the message subject.
+titleSendMsgSubject=Lähetetään viestiä - %S
+titleSendMsg=Lähetetään viestiä
+# LOCALIZATION NOTE (titleSaveMsgSubject):
+# %S will be replaced by the message subject.
+titleSaveMsgSubject=Tallennetaan viestiä - %S
+titleSaveMsg=Tallennetaan viestiä
+
+# LOCALIZATION NOTE (percentMsg):
+# This string is used to format the text to the right of the progress meter.
+# %S will be replaced by the percentage of the file that has been saved.
+# %% will be replaced a single % sign.
+percentMsg=%S %%
+
+messageSent=Viesti lähetettiin.
+messageSaved=Viesti tallennettiin.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.dtd
new file mode 100644
index 0000000000..47678de836
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY migrationWizard.title "Ohjattu profiilin tuonti">
+
+<!ENTITY importFromWin.label "Tuo asetukset, tilien asetukset, osoitteisto, viestisuodattimet ja muut tiedot ohjelmasta:">
+<!ENTITY importFromNonWin.label "Tuo asetukset, tilien asetukset, osoitteisto, viestisuodattimet ja muut tiedot ohjelmasta:">
+<!ENTITY importSourceNotFound.label "Ei löydetty sovellusta, josta olisi voitu tuoda tietoja.">
+
+<!ENTITY importFromNothing.label "Älä tuo mitään">
+<!ENTITY importFromNothing.accesskey "Ä">
+<!ENTITY importFromSeamonkey3.label "SeaMonkey 2 tai uudempi">
+<!ENTITY importFromSeamonkey3.accesskey "S">
+<!ENTITY importFromOutlook.label "Outlook">
+<!ENTITY importFromOutlook.accesskey "O">
+
+<!ENTITY importSource.title "Tuo asetukset ja postikansiot ohjelmasta">
+<!ENTITY importItems.title "Tuotavat tiedot">
+<!ENTITY importItems.label "Valitse tuotavat tiedot:">
+
+<!ENTITY migrating.title "Tuodaan…">
+<!ENTITY migrating.label "Seuraavia tietoja tuodaan…">
+
+<!ENTITY selectProfile.title "Valitse profiili">
+<!ENTITY selectProfile.label "Seuraavat profiilit voidaan tuoda ohjelmista:">
+
+<!ENTITY done.title "Tuonti valmis">
+<!ENTITY done.label "Seuraavat tiedot tuotiin:">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.properties
new file mode 100644
index 0000000000..934b930357
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/migration/migration.properties
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profileName_format=%S %S
+
+# Import Sources
+1_seamonkey=Asetukset
+
+1_thunderbird=Asetukset
+
+2_seamonkey=Tilien asetukset
+2_thunderbird=Tilin asetukset
+2_outlook=Tilien asetukset
+
+4_seamonkey=Osoitekirjat
+4_thunderbird=Osoitekirjat
+4_outlook=Osoitteisto
+
+8_seamonkey=Roskapostin tunnistuksen harjoitustiedosto
+
+16_seamonkey=Tallennetut salasanat
+
+32_seamonkey=Muita tietoja
+
+64_seamonkey=Keskusteluryhmäkansiot
+
+64_thunderbird=Keskusteluryhmäkansiot
+
+128_seamonkey=Postikansiot
+128_thunderbird=Postikansiot
+128_outlook=Postikansiot
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mime.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mime.properties
new file mode 100644
index 0000000000..21b198c084
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mime.properties
@@ -0,0 +1,154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by libmime to emit header display in HTML
+#
+
+# Mail subject
+## @name MIME_MHTML_SUBJECT
+## @loc None
+1000=Aihe
+
+# Resent-Comments
+## @name MIME_MHTML_RESENT_COMMENTS
+## @loc
+1001=Uudelleenlähetys-Kommentit
+
+# Resent-Date
+## @name MIME_MHTML_RESENT_DATE
+## @loc
+1002=Uudelleenlähetys-Päivämäärä
+
+# Resent-Sender
+## @name MIME_MHTML_RESENT_SENDER
+## @loc
+1003=Uudelleenlähetys-Lähettäjä
+
+# Resent-From
+## @name MIME_MHTML_RESENT_FROM
+## @loc
+1004=Uudelleenlähetys-Lähettäjä
+
+# Resent-To
+## @name MIME_MHTML_RESENT_TO
+## @loc
+1005=Uudelleenlähetys-Vastaanottaja
+
+# Resent-CC
+## @name MIME_MHTML_RESENT_CC
+## @loc
+1006=Uudelleenlähetetty-CC
+
+# Date
+## @name MIME_MHTML_DATE
+## @loc
+1007=Päiväys
+
+# Sender
+## @name MIME_MHTML_SENDER
+## @loc
+1008=Lähettäjä
+
+# From
+## @name MIME_MHTML_FROM
+## @loc
+1009=Lähettäjä
+
+# Reply-To
+## @name MIME_MHTML_REPLY_TO
+## @loc
+1010=Vastausosoite
+
+# Organization
+## @name MIME_MHTML_ORGANIZATION
+## @loc
+1011=Järjestö
+
+# To
+## @name MIME_MHTML_TO
+## @loc
+1012=Vastaanottaja
+
+# CC
+## @name MIME_MHTML_CC
+## @loc
+1013=CC
+
+# Newsgroups
+## @name MIME_MHTML_NEWSGROUPS
+## @loc
+1014=Keskusteluryhmät
+
+# Followup-To
+## @name MIME_MHTML_FOLLOWUP_TO
+## @loc
+1015=Vastausryhmä
+
+# References
+## @name MIME_MHTML_REFERENCES
+## @loc
+1016=Viittaukset
+
+# Message ID
+## @name MIME_MHTML_MESSAGE_ID
+## @loc
+1021=Viestin tunnus
+
+# BCC
+## @name MIME_MHTML_BCC
+## @loc
+1023=Piilokopio
+
+# Link to doc
+## @name MIME_MSG_LINK_TO_DOCUMENT
+## @loc
+1026=Linkki asiakirjaan
+
+# Get Doc info
+## @name MIME_MSG_DOCUMENT_INFO
+## @loc
+1027=<B>Asiakirjan tiedot:</B>
+
+# Msg Attachment
+## @name MIME_MSG_ATTACHMENT
+## @loc
+1028=Liitetiedosto
+
+# default attachment name
+## @name MIME_MSG_DEFAULT_ATTACHMENT_NAME
+## @loc
+# LOCALIZATION NOTE (1040): Do not translate "%s" below.
+# Place the %s where you wish the part number of the attachment to appear
+1040=Osa %s
+
+# default forwarded message prefix
+## @name MIME_FORWARDED_MESSAGE_HTML_USER_WROTE
+## @loc
+1041=-------- Alkuperäinen viesti / Orig.Msg. --------
+
+# Partial Message Truncated
+## @name MIME_MSG_PARTIAL_TRUNCATED
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED=Katkennut!
+
+# Partial Message Truncated Explanation
+## @name MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION=Tämä viesti ylitti viesteille tilin asetuksissa asetetun maksimikoon, joten vain muutama ensimmäinen rivi on ladatattu sähköpostipalvelimelta.
+
+# Partial Message Not Downloaded
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED=Ei ladatttu
+
+# Partial Message Not Downloaded Explanation
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION=Vain tämän viestin otsakkeet ladattiin sähköpostipalvelimelta.
+
+# MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @name MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @loc
+MIME_MSG_PARTIAL_CLICK_FOR_REST=Lataa loput viestistä.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mimeheader.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mimeheader.properties
new file mode 100644
index 0000000000..b649a228cc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/mimeheader.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by libmime for header display in XML & HTML
+#
+TO=Vastaanottaja
+BCC=BCC
+CC=CC
+DATE=Päiväys
+DISTRIBUTION=Jakelu
+FCC=FCC
+FOLLOWUP-TO=Vastausryhmä
+FROM=Lähettäjä
+STATUS=Tila
+LINES=Rivejä
+MESSAGE-ID=Viestin tunnus
+MIME-VERSION=MIME-versio
+NEWSGROUPS=Keskusteluryhmät
+ORGANIZATION=Järjestö
+REFERENCES=Viittaukset
+REPLY-TO=Vastausosoite
+RESENT-COMMENTS=Uudelleenlähetys-Kuvaus
+RESENT-DATE=Uudelleenlähetys-Päivämäärä
+RESENT-FROM=Uudelleenlähetys-Lähettäjä
+RESENT-MESSAGE-ID=Uudelleenlähetys-Viestin tunnus
+RESENT-SENDER=Uudelleenlähetys-Lähettäjä
+RESENT-TO=Uudelleenlähetys-Vastaanottaja
+RESENT-CC=Uudelleenlähetetys-CC
+SENDER=Lähettäjä
+SUBJECT=Aihe
+APPROVED-BY=Hyväksyjä
+USER-AGENT=Asiakasohjelma
+FILENAME=Tiedoston nimi
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/morkImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/morkImportMsgs.properties
new file mode 100644
index 0000000000..aae5112b64
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/morkImportMsgs.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the Mork import code to display status/error
+# and informational messages.
+#
+
+MABFiles = Mork-osoitekirjat
+
+# Short name of import module
+morkImportName = Mork-tietokanta (.mab)
+
+# Description of import module
+morkImportDescription = Tuo osoitekirja SeaMonkeysta tai Thunderbirdin aiemmista versioista.
+
+morkImportSuccess = Onnistui!
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgAccountCentral.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgAccountCentral.dtd
new file mode 100644
index 0000000000..7e106898ba
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgAccountCentral.dtd
@@ -0,0 +1,26 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY emailSectionHdr.label "Sähköposti">
+<!ENTITY readMsgsLink.label "Lue viestejä">
+<!ENTITY composeMsgLink.label "Kirjoita uusi viesti">
+
+<!ENTITY newsSectionHdr.label "Keskusteluryhmät">
+<!ENTITY subscribeNewsLink.label "Muokkaa tilattuja keskusteluryhmiä">
+
+<!ENTITY feedsSectionHdr.label "Syötteet">
+<!ENTITY subscribeFeeds.label "Muokkaa tilauksia">
+
+<!ENTITY chat.label "Keskustelu">
+
+<!ENTITY accountsSectionHdr.label "Tilit">
+<!ENTITY subscribeImapFolders.label "Muokkaa tilattuja kansioita">
+<!ENTITY settingsLink.label "Muokkaa tämän tilin asetuksia">
+<!ENTITY setupNewAcct.label "Määritä tili:">
+
+<!ENTITY advFeaturesSectionHdr.label "Lisäominaisuudet">
+<!ENTITY searchMsgsLink.label "Etsi viesteistä">
+<!ENTITY filtersLink.label "Muokkaa viestisuodattimia">
+<!ENTITY junkSettings.label "Roskapostin asetukset">
+<!ENTITY offlineLink.label "Yhteydettömän tilan asetukset">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgHdrViewOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgHdrViewOverlay.dtd
new file mode 100644
index 0000000000..dec0630c7d
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgHdrViewOverlay.dtd
@@ -0,0 +1,114 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY toField4.label "Vastaanottaja ">
+<!ENTITY fromField4.label "Lähettäjä ">
+<!ENTITY senderField4.label "Lähettäjä ">
+<!ENTITY author.label "Tekijä">
+<!ENTITY organizationField4.label "Organisaatio ">
+<!ENTITY replyToField4.label "Vastausosoite ">
+
+<!ENTITY subjectField4.label "Aihe ">
+<!ENTITY ccField4.label "Kopio ">
+<!ENTITY bccField4.label "Piilokopio ">
+<!ENTITY newsgroupsField4.label "Ryhmät ">
+<!ENTITY followupToField4.label "Vastausryhmä ">
+<!ENTITY tagsHdr4.label "Avainsanat ">
+<!ENTITY dateField4.label "Päiväys ">
+<!ENTITY userAgentField4.label "Asiakasohjelma ">
+<!ENTITY referencesField4.label "Viittaukset ">
+<!ENTITY messageIdField4.label "Viestitunnus ">
+<!ENTITY inReplyToField4.label "Vastauksena viestiin ">
+<!ENTITY originalWebsite4.label "Verkkosivu ">
+
+<!ENTITY hdrArchiveButton1.label "Arkistoi">
+<!ENTITY hdrArchiveButton1.tooltip "Arkistoi viesti">
+<!ENTITY hdrSmartReplyButton1.label "Älyvastaus">
+<!ENTITY hdrReplyButton1.label "Vastaa">
+<!ENTITY hdrReplyButton2.tooltip "Vastaa viestin lähettäjälle">
+<!ENTITY hdrReplyAllButton1.label "Vastaa kaikille">
+<!ENTITY hdrReplyAllButton1.tooltip "Vastaa lähettäjälle ja muille vastaanottajille">
+<!ENTITY hdrReplyListButton1.label "Vastaa listalle">
+<!ENTITY hdrReplyListButton1.tooltip "Vastaa postituslistalle">
+<!ENTITY hdrFollowupButton1.label "Vastaa ryhmään">
+<!ENTITY hdrFollowupButton1.tooltip "Lähetä vastaus tähän keskusteluryhmään">
+<!ENTITY hdrForwardButton1.label "Välitä">
+<!ENTITY hdrForwardButton1.tooltip "Välitä viesti">
+<!ENTITY hdrJunkButton1.label "Roskapostia">
+<!ENTITY hdrJunkButton1.tooltip "Merkitse viesti roskapostiksi">
+<!ENTITY hdrTrashButton1.label "Poista">
+<!ENTITY hdrTrashButton1.tooltip "Poista viesti">
+
+<!ENTITY hdrViewToolbarShowFull.label "Kuvakkeet ja teksti">
+<!ENTITY hdrViewToolbarShowFull.accesskey "j">
+<!ENTITY hdrViewToolbarShowIcons.label "Vain kuvakkeet">
+<!ENTITY hdrViewToolbarShowIcons.accesskey "k">
+<!ENTITY hdrViewToolbarShowText.label "Vain teksti">
+<!ENTITY hdrViewToolbarShowText.accesskey "t">
+<!ENTITY hdrViewToolbarAlwaysReplySender.label "Näytä aina vastaa lähettäjälle">
+<!ENTITY hdrViewToolbarAlwaysReplySender.accesskey "N">
+
+<!ENTITY otherActionsButton2.label "Lisää">
+<!ENTITY otherActionsButton.tooltip "Lisää toimintoja">
+<!ENTITY otherActionsOpenConversation1.label "Avaa keskusteluna">
+<!ENTITY otherActionsOpenConversation1.accesskey "k">
+<!ENTITY otherActionsOpenInNewWindow1.label "Avaa uuteen ikkunaan">
+<!ENTITY otherActionsOpenInNewWindow1.accesskey "a">
+<!ENTITY otherActionsOpenInNewTab1.label "Avaa uuteen välilehteen">
+<!ENTITY otherActionsOpenInNewTab1.accesskey "v">
+<!ENTITY markAsReadMenuItem1.label "Merkitse luetuksi">
+<!ENTITY markAsReadMenuItem1.accesskey "l">
+<!ENTITY markAsUnreadMenuItem1.label "Merkitse ei luetuksi">
+<!ENTITY markAsUnreadMenuItem1.accesskey "e">
+<!ENTITY saveAsMenuItem1.label "Tallenna nimellä…">
+<!ENTITY saveAsMenuItem1.accesskey "t">
+<!ENTITY viewSourceMenuItem1.label "Näytä lähdekoodi…">
+<!ENTITY viewSourceMenuItem1.accesskey "n">
+<!ENTITY otherActionsPrint1.label "Tulosta…">
+<!ENTITY otherActionsPrint1.accesskey "u">
+
+<!-- Attachment bar context menu items -->
+<!ENTITY startExpandedCmd.label "Liitepaneeli näkyvissä oletuksena">
+<!ENTITY startExpandedCmd.accesskey "L">
+
+<!-- Attachment context menu items -->
+<!ENTITY openAttachmentCmd.label "Avaa">
+<!ENTITY openAttachmentCmd.accesskey "A">
+<!ENTITY saveAsAttachmentCmd.label "Tallenna nimellä…">
+<!ENTITY saveAsAttachmentCmd.accesskey "n">
+<!ENTITY detachAttachmentCmd.label "Irrota…">
+<!ENTITY detachAttachmentCmd.accesskey "I">
+<!ENTITY deleteAttachmentCmd.label "Poista">
+<!ENTITY deleteAttachmentCmd.accesskey "P">
+<!ENTITY openAllAttachmentsCmd.label "Avaa kaikki…">
+<!ENTITY openAllAttachmentsCmd.accesskey "v">
+<!ENTITY saveAllAttachmentsCmd.label "Tallenna kaikki…">
+<!ENTITY saveAllAttachmentsCmd.accesskey "k">
+<!ENTITY detachAllAttachmentsCmd.label "Irrota kaikki…">
+<!ENTITY detachAllAttachmentsCmd.accesskey "I">
+<!ENTITY deleteAllAttachmentsCmd.label "Poista kaikki…">
+<!ENTITY deleteAllAttachmentsCmd.accesskey "K">
+
+<!ENTITY openAttachment.tooltip "Avaa liitetty tiedosto">
+
+<!ENTITY detachedAttachmentFolder.show.label "Avaa sisältävä kansio">
+<!ENTITY detachedAttachmentFolder.show.accesskey "s">
+<!ENTITY detachedAttachmentFolder.showMac.label "Näytä Finderissa">
+<!ENTITY detachedAttachmentFolder.showMac.accesskey "F">
+
+<!-- Attachment toolbar items -->
+<!ENTITY saveAttachmentButton1.label "Tallenna">
+<!ENTITY saveAttachmentButton1.tooltip "Tallenna liitetty tiedosto">
+<!ENTITY saveAllAttachmentsButton1.label "Tallenna kaikki">
+<!ENTITY saveAllAttachmentsButton1.tooltip "Tallenna kaikki liitetyt tiedostot">
+
+<!ENTITY copyLinkCmd.label "Kopioi linkin osoite">
+<!ENTITY copyLinkCmd.accesskey "K">
+
+<!ENTITY CopyMessageId.label "Kopioi viestitunnus">
+<!ENTITY CopyMessageId.accesskey "K">
+<!ENTITY OpenMessageForMsgId.label "Avaa viesti tunnukselle">
+<!ENTITY OpenMessageForMsgId.accesskey "A">
+<!ENTITY OpenBrowserWithMsgId.label "Avaa selaimeen viestitunnuksella">
+<!ENTITY OpenBrowserWithMsgId.accesskey "s">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgSynchronize.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgSynchronize.dtd
new file mode 100644
index 0000000000..874d20ee47
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgSynchronize.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from MsgSynchronize.xul and msgSelectOffline.xul-->
+
+<!-- extracted from MsgSynchronize.xul and msgSelectOfflineFolders.xul-->
+
+<!-- extracted from MsgSynchronize.xhtml and msgSelectOfflineFolders.xhtml-->
+
+<!ENTITY MsgSynchronize.label "Nouda ja synkronoi viestit">
+<!ENTITY MsgSelect.label "Yhteydettömässä tilassa käytettävät kohteet">
+<!ENTITY MsgSyncDesc.label "Jos olet jo valinnut yhteydettömässä tilassa käytettävät kansiot ja ryhmät, voit synkronoida paikalliset kopiosi niistä nyt. Muussa tapauksessa valitse yhteystilassa käytettävät ryhmät ja kansiot napsauttamalla Valitse.">
+<!ENTITY MsgSyncDirections.label "Nouda tai synkronoi:">
+<!ENTITY syncTypeMail.label "Sähköpostiviestit">
+<!ENTITY syncTypeMail.accesskey "S">
+<!ENTITY syncTypeNews.label "Keskusteluryhmäviestit">
+<!ENTITY syncTypeNews.accesskey "K">
+<!ENTITY sendMessage.label "Lähetä lähtevät viestit">
+<!ENTITY sendMessage.accesskey "L">
+<!ENTITY workOffline.label "Siirry yhteydettömään tilaan, kun nouto tai synkronointi on valmis">
+<!ENTITY workOffline.accesskey "r">
+<!ENTITY selectButton.label "Valitse…">
+<!ENTITY selectButton.accesskey "V">
+<!ENTITY MsgSelectDesc.label "Valitse yhteydettömässä tilassa käytettävät postikansiot ja keskusteluryhmät.">
+<!ENTITY MsgSelectInd.label "Nouda">
+<!ENTITY MsgSelectItems.label "Kansiot ja keskusteluryhmät">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgViewPickerOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgViewPickerOverlay.dtd
new file mode 100644
index 0000000000..d48f2c62e3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgViewPickerOverlay.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY viewPicker.label "Näytä:">
+<!ENTITY viewPicker.accesskey "y">
+<!ENTITY viewAll.label "Kaikki">
+<!ENTITY viewAll.accesskey "K">
+<!ENTITY viewUnread.label "Lukematta">
+<!ENTITY viewUnread.accesskey "L">
+<!ENTITY viewNotDeleted.label "Ei poistettu">
+<!ENTITY viewNotDeleted.accesskey "E">
+<!ENTITY viewTags.label "Tunnukset">
+<!ENTITY viewTags.accesskey "T">
+<!ENTITY viewCustomViews.label "Omat näkymät">
+<!ENTITY viewCustomViews.accesskey "O">
+<!ENTITY viewVirtualFolder.label "Tallenna näkymä kansiona…">
+<!ENTITY viewVirtualFolder.accesskey "a">
+<!ENTITY viewCustomizeView.label "Muokkaa…">
+<!ENTITY viewCustomizeView.accesskey "M">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgmdn.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgmdn.properties
new file mode 100644
index 0000000000..4a89387a96
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/msgmdn.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+## Msg Mdn Report strings
+MsgMdnDisplayed=Huom.: Tama kuittaus vahvistaa, etta viesti avattiin vastaanottajan tietokoneella. Se ei takaa, etta vastaanottaja luki tai ymmarsi viestin.\n\n[English] Note: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents.
+MsgMdnDispatched=Viesti joko tulostettiin, faksattiin tai valitettiin eteenpain ilman, etta sita naytettiin. Tama ei takaa, etta vastaanottaja lukee viestin myohemmin.\n\n[English] The message was either printed, faxed, or forwarded without being displayed to the recipient. There is no guarantee that the recipient will read the message at a later time.
+MsgMdnProcessed=Vastaanottajan sahkopostiohjelma kasitteli viestin, mutta sita ei naytetty. Tama ei takaa, etta viesti luetaan myohemmin.\n\n[English] The message was processed by the recipient's mail client without being displayed. There is no guarantee that the message will be read at a later time.
+MsgMdnDeleted=Viesti on poistettu. Vastaanottaja ei ole valttamatta nahnyt viestia. Vastaanottaja saattaa palauttaa viestin ja lukea sen myohemmin.\n\n[English] The message has been deleted. The person you sent it to may or may not have seen it. They might undelete it at a later time and read it.
+MsgMdnDenied=Viestin vastaanottaja ei halua lahettaa kuittausta.\n\n[English] The recipient of the message does not wish to send a return receipt back to you.
+MsgMdnFailed=Tapahtui virhe. Toimivaa kuittausta ei voitu luoda tai lahettaa sinulle.\n\n[English] A failure occurred. A proper return receipt could not be generated or sent to you.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MsgMdnMsgSentTo=Tama on vastaanottokuittaus viestille, jonka lahetit vastaanottajalle %S. - This is a Return Receipt for the mail that you sent to the mentioned address.
+MdnDisplayedReceipt=Vastaanottokuittaus (naytetty) --- Return Receipt (displayed)
+MdnDispatchedReceipt=Vastaanottokuittaus (toimitettu eteenpain) --- Return Receipt (dispatched)
+MdnProcessedReceipt=Vastaanottokuittaus (kasitelty) --- Return Receipt (processed)
+MdnDeletedReceipt=Vastaanottokuittaus (poistettu) --- Return Receipt (deleted)
+MdnDeniedReceipt=Vastaanottokuittaus (estetty) --- Return Receipt (denied)
+MdnFailedReceipt=Vastaanottokuittaus (ei onnistunut) --- Return Receipt (failed)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.dtd
new file mode 100644
index 0000000000..cee35eafcf
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Viestiyhteenveto">
+<!ENTITY selectedmessages.label "Valitut viestit">
+<!ENTITY archiveButton.label "Arkistoi">
+<!ENTITY deleteButton.label "Poista">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.properties
new file mode 100644
index 0000000000..147e3a908a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/multimessageview.properties
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (numConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations.
+numConversations=#1 viestiketju; #1 viestiketjua
+
+# LOCALIZATION NOTE (atLeastNumConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations. We use this when we didn't actually scan the entire
+# list of selected messages, so there may be more conversations than reported
+# (or maybe not!).
+atLeastNumConversations=#1+ viestiketju; #1+ viestiketjua
+
+# LOCALIZATION NOTE (numMessages): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of messages in a thread. #1 is the number of messages.
+numMessages=#1 viesti;#1 viestiä
+
+# LOCALIZATION NOTE (numUnread): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of unread messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of unread messages.
+numUnread=, #1 lukematta;, #1 lukematta
+
+# LOCALIZATION NOTE (numIgnored): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of ignored messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of ignored messages.
+numIgnored=, #1 ohitettu;, #1 ohitettu
+
+# LOCALIZATION NOTE (atLeastNumIgnored): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of ignored messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of ignored messages. We use this when we
+# didn't actually scan the entire list of selected messages, so there may be
+# more ignored messages than reported (or maybe not!).
+atLeastNumIgnored=, #1+ ohitettu;, #1+ ohitettu
+
+# LOCALIZATION NOTE (noSubject): What to display for a message if it has no
+# subject.
+noSubject=(ei aihetta)
+
+# LOCALIZATION NOTE (messagesTotalSize): A message indicating the total size on
+# disk of the selected messages. #1 is the size, e.g. "123 KB".
+messagesTotalSize=Nämä viestit vievät #1.
+
+# LOCALIZATION NOTE (messagesTotalSizeMoreThan): A message indicating the total
+# size on disk of the selected messages. #1 is the size, e.g. "123 KB". We use
+# this when we didn't actually scan the entire list of selected messages, so
+# this is a *minimum* size.
+messagesTotalSizeMoreThan=Nämä viestit vievät yli #1.
+
+# LOCALIZATION NOTE (maxCountExceeded): A message to let the user know that not
+# all of the selected messages were summarized. #1 is the total number of
+# messages selected and #2 is the number of messages actually shown.
+maxCountExceeded= (Huom.: #1 viestiä on valittu, ensimmäiset #2 näytetään)
+
+# LOCALIZATION NOTE (maxThreadCountExceeded): A message to let the user know that
+# not all of the selected thread were summarized. #1 is the total number of
+# threads selected and #2 is the number of threads actually shown.
+maxThreadCountExceeded= (Huom: #1 ketjua on valittu, ensimmäiset #2 näytetään)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newFolderDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newFolderDialog.dtd
new file mode 100644
index 0000000000..e5cf21f763
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newFolderDialog.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Labels -->
+<!ENTITY newFolderDialog.title "Uusi kansio">
+<!ENTITY name.label "Nimi:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Luo alikansiona kansiolle:">
+<!ENTITY description.accesskey "L">
+<!ENTITY folderRestriction1.label "Tämä palvelin rajoittaa kansiot kahteen tiettyyn tyyppiin.">
+<!ENTITY folderRestriction2.label "Salli uuden kansion sisältää:">
+<!ENTITY foldersOnly.label "Vain kansioita">
+<!ENTITY messagesOnly.label "Vain viestejä">
+<!ENTITY accept.label "Luo kansio">
+<!ENTITY accept.accesskey "u">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/news.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/news.properties
new file mode 100644
index 0000000000..6b795011cc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/news.properties
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+downloadHeadersTitlePrefix=Otsakkeiden nouto
+downloadHeadersInfoText=Tässä keskusteluryhmässä on %S uutta viestiä ladattavana.
+cancelDisallowed=Tämä viesti ei todennäköisesti ole sinun lähettämäsi. Voit poistaa vain omia viestejäsi.
+cancelConfirm=Poistetaanko tämä viesti?
+messageCancelled=Viesti on peruutettu.
+enterUserPassTitle=Tarvitaan käyttäjätunnus ja salasana keskusteluryhmäpalvelimelle
+# LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
+enterUserPassServer=Kirjoita käyttäjätunnus ja salasana palvelimelle %S:
+# LOCALIZATION NOTE (enterUserPassGroup): %1$S is a specific newsgroup to set
+# the password for; %2$S is the server from which the newsgroup is accessed
+enterUserPassGroup=Kirjoita käyttäjätunnus ja salasana ryhmälle %1$S palvelimella %2$S:
+okButtonText=Nouda
+
+noNewMessages=Palvelimella ei ole uusia viestejä.
+# LOCALIZATION NOTE (newNewsgroupHeaders): %1$S is the number of the current
+# header being downloaded, %2$S is the number of headers to be downloaded, and
+# %3$S is the newsgroup whose headers are being downloaded.
+newNewsgroupHeaders=Noudetaan %1$S / %2$S viestiotsaketta keskustelyryhmästä %3$S
+# LOCALIZATION NOTE (newNewsgroupFilteringHeaders): %1$S is the name of the MIME
+# header being filtered on, %2$S is the number of the current header being
+# downloaded, %3$S is the number of headers to be downloaded, and %4$S is the
+# newsgroup whose headers are being downloaded.
+newNewsgroupFilteringHeaders=Noudetaan otsakkeita suodattimille: %1$S (%2$S/%3$S) keskusteluryhmästä %4$S
+downloadingArticles=Noudetaan artikkeleita %S-%S
+bytesReceived=Noudetaan keskusteluryhmiä: %S vastaanotettu (%Skt luettu nopeudella %Skt/s)
+downloadingArticlesForOffline=Noudetaan artikkeleja %S-%S : %S
+
+# LOCALIZATION NOTE (autoUnsubscribeText): %1$S is the newsgroup and %2$S is the newsgroup-server it is being removed from.
+autoUnsubscribeText=Keskusteluryhmää %1$S ei ole palvelimella %2$S. Peruutetaanko sen tilaus?
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the newsgroup.
+autoSubscribeText=Tilataanko ryhmä %1$S?
+
+# LOCALIZATION NOTE (Error -304): In the following item, don't translate "NNTP"
+# Error - server error
+## @name NNTP_ERROR_MESSAGE
+## @loc None
+-304=Keskusteluryhmävirhe (NNTP):
+
+# Error - newsgroup scan error
+## @name NNTP_NEWSGROUP_SCAN_ERROR
+## @loc None
+-305=Tapahtui virhe. Keskusteluryhmien tarkistus ei onnistunut. Yritä uudelleen kaikkien ryhmien näyttöä.
+
+# Error - NNTP authinfo failure
+## @name NNTP_AUTH_FAILED
+## @loc None
+-260=Virhe käyttöoikeustiedoissa. Anna nimi ja salasana uudelleen.
+
+# Error - TCP error
+## @name TCP_ERROR
+## @loc None
+-206=Tietoliikennevirhe. Yritä uudelleen. TCP-virhe:
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newsError.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newsError.dtd
new file mode 100644
index 0000000000..e6f79ff8f8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/newsError.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (newsError.title): The title of the news error page.
+ Not generally visible. -->
+<!ENTITY newsError.title "Ongelma artikkelin lataamisessa">
+
+<!-- LOCALIZATION NOTE (articleNotFound.title): The main heading for the news
+ error page. -->
+<!ENTITY articleNotFound.title "Artikkelia ei löydy">
+
+<!-- LOCALIZATION NOTE (articleNotFound.desc): A longer description for the news
+ error page. -->
+<!ENTITY articleNotFound.desc "Keskusteluryhmäpalvelin ilmoitaa, että se ei löydä artikkelia.">
+
+<!-- LOCALIZATION NOTE (serverResponded.title): A string preceding the text
+ response from the newsgroup server describing the error. -->
+<!ENTITY serverResponded.title "Keskusteluryhmäpalvelin vastasi:">
+
+<!-- LOCALIZATION NOTE (articleExpired.title): A string explaining that the
+ article may have expired. -->
+<!ENTITY articleExpired.title "Olisiko artikkeli vanhentunut?">
+
+<!-- LOCALIZATION NOTE (trySearching.title): A string preceding the message's
+ ID. -->
+<!ENTITY trySearching.title "Yritä artikkelin etsimistä:">
+
+<!-- LOCALIZATION NOTE (removeExpiredArticles.title): The label for the button
+ to remove all expired articles from the newsgroup. -->
+<!ENTITY removeExpiredArticles.title "Poista kaikki vanhentuneet artikkelit">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offline.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offline.properties
new file mode 100644
index 0000000000..89acf0c7aa
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offline.properties
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Download Messages Prompt
+downloadMessagesWindowTitle1=Työskentele yhteydettömässä tilassa
+downloadMessagesLabel1=Noudetaanko viestit yhteydetöntä tilaa varten ennen kuin poistutaan yhteystilasta?
+downloadMessagesCheckboxLabel1=Kysy aina ennen yhteydettömään tilaan siirtymistä
+downloadMessagesNow2=&Nouda heti
+
+# Send Messages Prompt
+sendMessagesWindowTitle1=Lähettämättä olevat viestit
+sendMessagesLabel2=Lähetetäänkö lähtevien viestien kansiossa olevat viestit?
+sendMessagesCheckboxLabel1=Kysy aina ennen yhteystilaan siirtymistä
+sendMessagesNow2=&Lähetä heti
+
+processMessagesLater2=&Myöhemmin
+
+# GetMessages While Offline Prompt
+getMessagesOfflineWindowTitle1=Nouda viestit
+getMessagesOfflineLabel1=Palvelimeen ei ole muodostettu yhteyttä. Muodostetaanko yhteys, jotta voidaan noutaa uudet viestit?
+
+# Send Messages Offline Prompt
+sendMessagesOfflineWindowTitle1=Lähettämättä olevat viestit
+sendMessagesOfflineLabel1=Palvelimeen ei ole muodostettu yhteyttä. Muodostetaanko yhteys, jotta voidaan lähettää lähtevät viestit?
+
+offlineTooltip=Et ole yhteystilassa.
+onlineTooltip=Olet yhteystilassa.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offlineStartup.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offlineStartup.properties
new file mode 100644
index 0000000000..874655ece7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/offlineStartup.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title=Ty\u00F6skentele yhteystilassa
+desc=Siirryt\u00E4\u00E4nk\u00F6 yhteystilaan?\n\n(Jos haluat ty\u00F6skennell\u00E4 yhteydett\u00F6m\u00E4ss\u00E4 tilassa voit my\u00F6hemmin siirty\u00E4 yhteystilaan poistamalla valinnan "Yhteydet\u00F6n tila" Tiedosto-valikon Yhteydet\u00F6n tila -alavalikosta.)
+workOnline=Ty\u00F6skentele yhteystilassa
+workOffline=Ty\u00F6skentele yhteydett\u00F6m\u00E4ss\u00E4 tilassa
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/outlookImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/outlookImportMsgs.properties
new file mode 100644
index 0000000000..c792b2fe3a
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/outlookImportMsgs.properties
@@ -0,0 +1,87 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the Outlook import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name OUTLOOKIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Outlook
+
+# Description of import module
+## @name OUTLOOKIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2001): In this item, don't translate "Outlook"
+2010=Outlookin postit, osoitekirjat ja asetukset
+
+# Success message
+## @name OUTLOOKIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%S" or "%d"
+## The variable %S will receive the name of the mailbox
+## The variable %d will receive the number of messages
+2002=Postilaatikko %S, tuotiin %d viesti\u00E4
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Tuo postilaatikko -komennolle sy\u00F6tettiin virheellinen parametri.
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will receive the name of the mailbox
+2004=Virhe tuotaessa postilaatikkoa %S. Osa viesteist\u00E4 saattoi j\u00E4\u00E4d\u00E4 tuomatta.
+
+# Address book name
+## @name OUTLOOKIMPORT_ADDRNAME
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "Outlook"
+2005=Outlookin osoitekirjat
+
+# Description
+## @name OUTLOOKIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2006=Tuotiin osoitekirja %S
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADPARAM
+## @loc None
+2007=Tuo osoitekirja -komennolle sy\u00F6tettiin virheellinen parametri.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2008): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Virhe k\u00E4sitelt\u00E4ess\u00E4 osoitekirjan %S tiedostoa.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Virhe tuotaessa osoitekirjaa %S. Osa osoitteista saattoi j\u00E4\u00E4d\u00E4 tuomatta.
+
+
+
+
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/pgpmime.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/pgpmime.properties
new file mode 100644
index 0000000000..79e101f37b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/pgpmime.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the pgpmime content type handler
+#
+
+# LOCALIZATION NOTE(pgpMimeNeedsAddon): The text can contain HTML tags.
+pgpNotAvailable=Tämä on salattu OpenPGP-viesti, mutta tukea OpenPGP-salauksen purkamiselle ei ole saatavana.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applicationManager.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applicationManager.properties
new file mode 100644
index 0000000000..eed13a8e67
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applicationManager.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE
+# in descriptionApplications, %S will be replaced by one of the 3 following strings
+descriptionApplications=Seuraavilla sovelluksilla voi avata %S.
+
+handleProtocol=%S-linkkejä
+handleFile=%S-tiedostoja
+
+descriptionWebApp=Tämän verkkosovelluksen osoite on:
+descriptionLocalApp=Tämä ohjelma on kansiossa:
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applications.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applications.properties
new file mode 100644
index 0000000000..c8e84f31a8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/applications.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dialog_removeAccount):
+# %S will be replaced with the user-defined name of a storage account.
+dialog_removeAccount=Poistetaanko tili "%S"?
+
+# LOCALIZATION NOTE (addProvider):
+# %S will be replace with the display name of a provider, e.g. DropBox
+addProvider=Lisää %S
+
+notConfiguredYet=Tämän tilin asetuksia ei ole vielä tehty
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/messagestyle.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/messagestyle.properties
new file mode 100644
index 0000000000..e6f33aa6d3
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/messagestyle.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Content of preview conversation for chat message styles
+default=Oletus
+nick1=Florian
+buddy1=florian@im.instantbird.org
+nick2=Patrick
+buddy2=patrick@im.instantbird.org
+message1=Hei! :-)
+message2=Mitä kuuluu?
+message3=Kokeilen Thunderbirdiä!;-)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/preferences.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/preferences.properties
new file mode 100644
index 0000000000..7ec7af99a2
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/preferences/preferences.properties
@@ -0,0 +1,100 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#### Junk
+confirmResetJunkTrainingTitle=Vahvista
+confirmResetJunkTrainingText=Nollataanko mukautuvan suodattimen harjoitustiedot?
+
+#### Downloads
+desktopFolderName=Työpöytä
+myDownloadsFolderName=Omat lataukset
+chooseAttachmentsFolderTitle=Valitse kansio
+
+#### Applications
+
+fileEnding=%S-tiedosto
+saveFile=Tallenna tiedosto
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=Käytä sovellusta %S
+useDefault=Käytä sovellusta %S (oletus)
+
+useOtherApp=Valitse uusi apuohjelma…
+fpTitleChooseApp=Valitse uusi apuohjelma
+manageApp=Sovellusten tiedot…
+alwaysAsk=Kysy aina
+delete=Poista toiminto
+confirmDeleteTitle=Poista toiminto
+confirmDeleteText=Poistetaanko toiminto?
+
+# LOCALIZATION NOTE (typeDescriptionWithDetails):
+# %1$S = type description (for example "Portable Document Format")
+# %2$S = details (see below, for example "(application/pdf: .pdf, .pdfx)")
+typeDescriptionWithDetails=%1$S %2$S
+
+# LOCALIZATION NOTE (typeDetailsWithTypeOrExt):
+# %1$S = type or extensions (for example "application/pdf", or ".pdf, .pdfx")
+typeDetailsWithTypeOrExt=(%1$S)
+
+# LOCALIZATION NOTE (typeDetailsWithTypeAndExt):
+# %1$S = type (for example "application/pdf")
+# %2$S = extensions (for example ".pdf, .pdfx")
+typeDetailsWithTypeAndExt=(%1$S: %2$S)
+
+#### Sound Notifications
+soundFilePickerTitle=Valitse äänimerkki
+
+#### Remote content
+imagepermissionstext=Voit määrittää, miltä sivustoilta voidaan ladata kuvia ja muuta etäsisältöä. Voit myös sallia etäsisältöä lähettäjän sähköpostiosoitteen mukaan. Kirjoita sen sivuston osoite tai sähköpostiosoite, jonka asetuksia haluat muokata ja valitse Estä tai Salli.
+imagepermissionstitle=Poikkeukset - Etäsisältö
+
+#### Cookies
+cookiepermissionstitle=Poikkeukset - Evästeet
+cookiepermissionstext=Voit määrittää, mitkä palvelimet voivat asettaa evästeitä. Kirjoita palvelimen osoite ja valitse Estä, Salli istunnon ajaksi tai Salli
+
+#### Cookie Viewer
+hostColon=Palvelin:
+domainColon=Verkkoalue:
+forSecureOnly=Vain salatut yhteydet
+forAnyConnection=Minkä tahansa tapainen yhteys
+expireAtEndOfSession=Istunnon lopuksi
+
+noCookieSelected=<ei valittu evästettä>
+cookiesAll=Seuraavat evästeet on tallennettu koneelle:
+cookiesFiltered=Seuraavat evästeet täsmäävät hakusi kanssa:
+# LOCALIZATION NOTE (removeSelectedCookies):
+# Semicolon-separated list of plural forms. See:
+# https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# If you need to display the number of selected elements in your language,
+# you can use #1 in your localization as a placeholder for the number.
+# For example this is the English string with numbers:
+# removeSelectedCookies=Remove #1 Selected;Remove #1 Selected
+removeSelectedCookies=Poista valittu;Poista valitut
+defaultUserContextLabel=Ei mitään
+
+####Preferences::Advanced::Network
+#LOCALIZATION NOTE: The next string is for the disk usage of the cache.
+# e.g., "Your cache is currently using 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+actualDiskCacheSize=Välimuisti käyttää parhaillaan %1$S %2$S levytilaa
+actualDiskCacheSizeCalculated=Lasketaan välimuistin kokoa…
+
+# LOCALIZATION NOTE (labelDefaultFont): %S = font name
+labelDefaultFont=Oletus (%S)
+labelDefaultFontUnnamed=Oletus
+
+# LOCALIZATION NOTE (appLocale.label): %S = Name of the application locale,
+# e.g. English (United States)
+appLocale.label=Sovelluksen kieli: %S
+appLocale.accesskey=k
+# LOCALIZATION NOTE (rsLocale.label): %S = Name of the locale chosen in regional settings,
+# e.g. German (Germany)
+rsLocale.label=Paikallisten asetusten kieli: %S
+rsLocale.accesskey=s
+
+applications-type-pdf = Portable Document Format (PDF)
+
+# LOCALIZATION NOTE (previewInApp): %S = brandShortName
+previewInApp=Esikatsele %Sissä
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/prefs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/prefs.properties
new file mode 100644
index 0000000000..6edb2ad0ae
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/prefs.properties
@@ -0,0 +1,90 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following are used by the Account Wizard
+#
+enterValidEmail=Kirjoita kelvollinen sähköpostiosoite.
+accountNameExists=Tämän niminen tili on jo olemassa. Kirjoita uusi nimi.
+accountNameEmpty=Tilillä täytyy olla nimi.
+modifiedAccountExists=Tälle käyttäjätunnus-palvelin -yhdistelmälle on jo olemassa tili. Kirjoita toinen käyttäjätunnus tai palvelimen nimi.
+userNameChanged=Käyttäjätunnuksesi on päivitetty. Myös sähköpostiosoitteesi ja tiliin mahdollisesti liittyvä käyttäjätunnus täytyy päivittää.
+serverNameChanged=Palvelimen nimi on muutettu. Varmista, että kaikki kansiot ja suodattimet ovat uudella palvelimella.
+# LOCALIZATION NOTE (junkSettingsBroken): %1$S is the account name
+junkSettingsBroken=Tilin "%1$S" roskapostiasetuksissa havaittiin mahdollisia ongelmia. Haluatko tarkistaa asetukset roskapostiasetukset ennen kuin tilin asetuksia tallennetaan?
+# LOCALIZATION NOTE (localDirectoryChanged): %1$S is program name (&brandShortName;)
+localDirectoryChanged=%1$S pitää käynnistää uudestaan, jotta paikallinen kansio voidaan vaihtaa.
+localDirectoryRestart=Käynnistä uudelleen
+userNameEmpty=Käyttäjätunnus on annettava.
+# LOCALIZATION NOTE (localDirectoryInvalid): %1$S is path to folder
+localDirectoryInvalid=Paikallisen kansion asetuksissa asetettu kansio "%1$S" on virheellinen. Valitse toinen kansio.
+# LOCALIZATION NOTE (localDirectoryNotAllowed): %1$S is path to folder
+localDirectoryNotAllowed=Paikallisen kansion asetuksissa asetettu kansio "%1$S" ei ole kelvollinen viestien tallentamiseen. Valitse toinen kansio.
+# if the user chooses to cancel the wizard when no accounts are there throw a message
+# LOCALIZATION NOTE (cancelWizard)
+# do not localize "\n\n"
+cancelWizard=Lopetetaanko ohjatun tilin luominen? \n\nJos lopetat ohjatun luonnin, kaikki kirjoittamasi tiedot menetetään eikä tiliä luoda.
+accountWizard=Tilin ohjattu luominen
+WizardExit=Lopeta
+WizardContinue=Peruuta
+# when the wizard already has a domain (Should we say something different?)
+enterValidServerName=Kirjoita kelvollinen palvelinnimi.
+failedRemoveAccount=Tilin poistaminen epäonnistui.
+#LOCALIZATION NOTE: accountName: %1$S is server name, %2$S is user name
+accountName=%1$S - %2$S
+
+# LOCALIZATION NOTE: confirmDeferAccountWarning: do not localize "\n\n", it means a new empty line in the string.
+confirmDeferAccountWarning=Jos tilin sähköpostit ohjataan toisen tilin saapuneet-kansioon, tilin vanhoissa kansioissa (saapuneet, luonnokset, mallipohjat jne.) oleviin viesteihin ei enää pääse käsiksi. Tilin viestit pitää etukäteen kopioida toiselle tilille.\n\nViestisuodattimet, jotka ohjaavat viestejä tilille tulee ottaa pois käytöstä tai ohjata suodatettu posti toiselle tilille; jos toisella tilillä on tällä tilillä erikoiskansioita (lähetetyt, luonnokset, mallipohjat), ne pitää siirtää.\n\nTallennetaanko tilin saapuneet viestit toiselle tilille?
+confirmDeferAccountTitle=Ohjataanko viestit toiselle tilille?
+
+directoryAlreadyUsedByOtherAccount=Paikallisen kansion asetuksissa asetettua kansiota on jo käytössä tilille "%S". Valitse toinen kansio.
+directoryParentUsedByOtherAccount=Paikallisen kansion asetuksissa asetetun kansion sisältävä kansio on jo käytössä tilille "%S". Valitse toinen kansio.
+directoryChildUsedByOtherAccount=Paikallisen kansion asetuksissa asetetun kansion alakansio on jo käytössä tilille "%S". Valitse toinen kansio.
+#Provide default example values for sample email address
+exampleEmailUserName=erkki
+exampleEmailDomain=example.net
+emailFieldText=Sähköpostiosoite:
+#LOCALIZATION NOTE: defaultEmailText: %1$S is user name, %2$S is domain
+defaultEmailText=Kirjoita sähköpostiosoitteesi. Tätä osoitetta muut käyttävät lähettäessään postia sinulle (esimerkiksi "%1$S@%2$S").
+#LOCALIZATION NOTE: customizedEmailText: %1$S is provider, %2$S is email username, %3$S is sample email, %4$S is sample username
+customizedEmailText=Kirjoita palvelimesi ja tunnuksesi %1$S %2$S (esimerkiksi jos %1$S-sähköpostiosoitteesi on %3$S, tunnustasi %2$S vastaa esimerkin %4$S).
+
+# account manager stuff
+prefPanel-server=Palvelimen asetukset
+prefPanel-copies=Kopiot ja kansiot
+prefPanel-synchronization=Synkronointi ja levytilan käyttö
+prefPanel-diskspace=Levytilan käyttö
+prefPanel-addressing=Kirjoittaminen ja osoitteet
+prefPanel-junk=Roskapostiasetukset
+## LOCALIZATION NOTE (prefPanel-smtp): Don't translate "SMTP"
+prefPanel-smtp=Lähtevän postin palvelin (SMTP)
+
+# account manager multiple identity support
+#LOCALIZATION NOTE: accountName: %1$S
+identity-list-title=Tilin %1$S käyttäjätiedot
+
+identityDialogTitleAdd=Uusi käyttäjätieto
+## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
+identityDialogTitleEdit=Muokkaa käyttäjätietoa %S
+
+identity-edit-req=Käyttäjätietoihin täytyy liittyä oikea sähköpostiosoite.
+identity-edit-req-title=Virhe luotaessa käyttäjätietoja
+
+## LOCALIZATION NOTE (identity-delete-confirm): %S is the identity name
+# and should be put on a new line. The new line is produced with the "\n" string.
+identity-delete-confirm=Poistetaanko käyttäjätieto\n%S?
+## LOCALIZATION NOTE (identity-delete-confirm-title): %S is the account name
+identity-delete-confirm-title=Poistetaan käyttäjätietoa %S
+identity-delete-confirm-button=Poista
+
+choosefile=Valitse tiedosto
+
+forAccount=Tilille "%S"
+
+removeFromServerTitle=Vahvista pysyvä, automaattinen viestien poisto
+removeFromServer=Poistetaanko pysyvästi vanhat viestit palvelimelta SEKÄ omalta koneelta?
+
+confirmSyncChangesTitle=Vahvista synkronoinnin muutokset
+confirmSyncChanges=Viestien synkronointiasetuksia on muutettu.\n\nHaluatko tallentaa muutokset?
+confirmSyncChangesDiscard=Hylkää
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/profileDowngrade.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/profileDowngrade.dtd
new file mode 100644
index 0000000000..c4e4ca85f5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/profileDowngrade.dtd
@@ -0,0 +1,20 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE:
+ This UI can be most easily shown by modifying the version in compatibility.ini
+ to a newer version and then starting Thunderbird.
+ For this feature, "installation" is used to mean "this discrete download of
+ Thunderbird" and "version" is used to mean "the specific revision number of a
+ given Thunderbird channel". These terms are not synonymous.
+-->
+<!ENTITY window.title "Käynnistit &brandProductName;in vanhemman version">
+<!ENTITY window.style "width: 490px;">
+
+<!ENTITY window.nosync2 "&brandProductName;in uudempi versio on saattanut tehdä profiiliisi muutoksia, jotka eivät ole yhteensopivia tämän vanhemman version kanssa. Käytä tätä profiilia vain uudemman version kanssa, tai luo tälle &brandShortName;in versiolle uusi profiili. Uuden profiilin luomisessa tulee luoda uudelleen tili ja kalenterit ja lisäosat on asennettava uudelleen.">
+
+<!ENTITY window.moreinfo "Lisätietoja…">
+<!ENTITY window.create "Luo uusi profiili">
+<!ENTITY window.quit-win "Poistu">
+<!ENTITY window.quit-nonwin "Lopeta">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.dtd
new file mode 100644
index 0000000000..a951e85621
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY dialogTitle "Poista tili ja tiedot">
+<!ENTITY removeButton.label "Poista">
+<!ENTITY removeButton.accesskey "P">
+<!ENTITY removeAccount.label "Poista tilin tiedot">
+<!ENTITY removeAccount.accesskey "t">
+<!ENTITY removeAccount.desc "Poistaa vain &brandShortName;in tiedot tästä tilistä. Tämä ei vaikuta itse tiliin palvelimella.">
+<!ENTITY removeData.label "Poista viestidata">
+<!ENTITY removeData.accesskey "v">
+<!ENTITY removeDataChat.label "Poista keskusteludata">
+<!ENTITY removeDataChat.accesskey "d">
+<!ENTITY removeDataLocalAccount.desc "Poistaa kaikki viestit, kansiot ja tähän tiliin liitetyt suodattimet paikallisella levyllä. Tämä ei vaikuta viesteihin, jotka säilytetään edelleen palvelimella. Älä valitse tätä vaihtoehtoa, jos olet ajatellut arkistoida paikallisen datan tai käyttää sitä &brandShortName;issa myöhemmin.">
+<!ENTITY removeDataServerAccount.desc "Poistaa paikalliselta levyltä kaikki tämän tilin viestit, kansiot ja suodattimet. Palvelimella olevat viestit ja kansiot säilytetään.">
+<!ENTITY removeDataChatAccount.desc "Poistaa kaikki paikalliselle levylle tallennetut tämän tilin keskustelulokit.">
+<!ENTITY showData.label "Näytä datan sijainti">
+<!ENTITY showData.accesskey "d">
+<!ENTITY progressPending "Poistetaan valitut tiedot…">
+<!ENTITY progressSuccess "Poistaminen onnistui.">
+<!ENTITY progressFailure "Poistaminen epäonnistui.">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.properties
new file mode 100644
index 0000000000..9b84c76c7e
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/removeAccount.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+removeQuestion=Haluatko varmasti poistaa tilin ”%S”?
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/renameFolderDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/renameFolderDialog.dtd
new file mode 100644
index 0000000000..e0dddf266b
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/renameFolderDialog.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY renameFolderDialog.title "Nimeä kansio uudelleen">
+<!ENTITY rename.label "Kirjoita kansion uusi nimi:">
+<!ENTITY rename.accesskey "K">
+<!ENTITY accept.label "Nimeä uudelleen">
+<!ENTITY accept.accesskey "u">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/sanitize.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/sanitize.dtd
new file mode 100644
index 0000000000..f4eb25a511
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/sanitize.dtd
@@ -0,0 +1,36 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY sanitizeDialog2.title "Poista historiatietoja">
+
+<!-- XXX rearrange entities to match physical layout when l10n isn't an issue -->
+<!-- LOCALIZATION NOTE (clearTimeDuration.*): "Time range to clear" dropdown.
+ See UI mockup at bug 480169 -->
+<!ENTITY clearTimeDuration.label "Poistettava aika: ">
+<!ENTITY clearTimeDuration.accesskey "P">
+<!ENTITY clearTimeDuration.lastHour "Viimeinen tunti">
+<!ENTITY clearTimeDuration.last2Hours "Viimeiset 2 tuntia">
+<!ENTITY clearTimeDuration.last4Hours "Viimeiset 4 tuntia">
+<!ENTITY clearTimeDuration.today "Tämä päivä">
+<!ENTITY clearTimeDuration.everything "Kaikki">
+<!-- Localization note (clearTimeDuration.suffix) - trailing entity for languages
+that require it. -->
+<!ENTITY clearTimeDuration.suffix "">
+
+
+<!ENTITY historyGroup.label "Historia">
+
+<!ENTITY itemHistory.label "Selaushistoria">
+<!ENTITY itemHistory.accesskey "S">
+<!ENTITY itemCookies.label "Evästeet">
+<!ENTITY itemCookies.accesskey "E">
+<!ENTITY itemCache.label "Väliaikaistiedostot">
+<!ENTITY itemCache.accesskey "V">
+
+<!-- LOCALIZATION NOTE (sanitizeEverythingUndoWarning): Second warning paragraph
+ that appears when "Time range to clear" is set to "Everything". See UI
+ mockup at bug 480169 -->
+<!ENTITY sanitizeEverythingUndoWarning "Tätä toimintoa ei voi peruuttaa.">
+
+<!ENTITY dialog.width "28em">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/seamonkeyImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/seamonkeyImportMsgs.properties
new file mode 100644
index 0000000000..6f0f195ccd
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/seamonkeyImportMsgs.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# The following are used by the seamonkey import code to display status/error
+# and informational messages
+
+# Short name of import module
+SeamonkeyImportName=SeaMonkey
+
+# Description of import module
+SeamonkeyImportDescription=Tuo osoitekirjat, sähköposti ja tilit SeaMonkeysta.
+
+# Success Message for addressbook import
+SeamonkeyImportAddressSuccess=Osoitekirjat tuotiin onnistuneesti.
+
+# Success Message for mail import
+SeamonkeyImportSettingsSuccess=Paikalliset viestit ja tilit tuotiin onnistuneesti.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-attributes.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-attributes.properties
new file mode 100644
index 0000000000..f6b1dd5989
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-attributes.properties
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#these need to match nsMsgSearchAttrib interface in nsMsgSearchCore.idl
+#and nsMsgSearchAttribMap in nsMsgSearchAdapter.cpp
+Subject=Aihe
+From=Lähettäjä
+Body=Viestin runko
+Date=Päiväys
+Priority=Tärkeysaste
+Status=Tila
+To=Vastaanottaja
+Cc=Kopio
+ToOrCc=Vastaanottaja tai kopio
+AgeInDays=Ikä päivissä
+SizeKB=Koko (kt)
+Tags=Tunnukset
+# for AB and LDAP
+AnyName=Mikä tahansa nimi
+DisplayName=Näyttönimi
+Nickname=Lempinimi
+ScreenName=Näyttönimi
+Email=Sähköposti
+AdditionalEmail=Toinen sähköpostiosoite
+AnyNumber=Mikä tahansa numero
+WorkPhone=Työpuhelin
+HomePhone=Kotipuhelin
+Fax=Faksi
+Pager=Hakulaite
+Mobile=Matkapuhelin
+City=Kaupunki
+Street=Katu
+Title=Ammattinimi
+Organization=Organisaatio
+Department=Osasto
+# more mailnews
+FromToCcOrBcc=Lähettäjä, vastaanottaja ja kopio tai piilokopio-osoite
+JunkScoreOrigin=Roskapostiluku alkuperäinen
+JunkPercent=Roskapostiprosentti
+AttachmentStatus=Liitteen tila
+JunkStatus=Roskapostitila
+Label=Tunnus
+Customize=Muokkaa…
+MissingCustomTerm=Puuttuva oma ehto
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-operators.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-operators.properties
new file mode 100644
index 0000000000..839a8aae5f
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search-operators.properties
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+0=sisältää
+1=ei sisällä
+2=on
+3=ei ole
+4=on tyhjä
+
+5=on ennen
+6=on jälkeen
+
+7=on suurempi kuin
+8=on pienempi kuin
+
+9=alkaa merkeillä
+10=päättyy merkkeihin
+
+11=kuulostaa
+12=LdapDwim
+
+13=on suurempi kuin
+14=on pienempi kuin
+
+15=NameCompletion
+16=on osoitekirjassani
+17=ei ole osoitekirjassani
+18=ei ole tyhjä
+19=vastaa
+20=ei vastaa
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search.properties
new file mode 100644
index 0000000000..b48748e5d5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/search.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# these are the fields that get inserted in the search line
+# for "and" searches, this looks like:
+#
+# searchAnd0 <attribute> searchAnd1 <operator> searchAnd2 <value> searchAnd4
+#
+# for example, in english this looks like:
+# and the [Sender ] [doesn't contain] [John]
+#
+# TODO: need to special-case the first line (filterindex==0)
+
+# filter stuff
+
+searchingMessage=Etsitään…
+# LOCALIZATION NOTE (matchesFound): #1 number of matches found
+matchesFound=#1 osuma löytyi;#1 osumaa löytyi
+noMatchesFound=Ei yhtään osumaa
+labelForStopButton=Pysäytä
+labelForSearchButton=Etsi
+labelForStopButton.accesskey=P
+labelForSearchButton.accesskey=e
+
+moreButtonTooltipText=Lisää tämä sääntö
+lessButtonTooltipText=Poista tämä sääntö
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/searchTermOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/searchTermOverlay.dtd
new file mode 100644
index 0000000000..79193a2ef7
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/searchTermOverlay.dtd
@@ -0,0 +1,19 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY matchAll.label "Osumat täyttävät kaikki ehdot ">
+<!ENTITY matchAll.accesskey "u">
+<!ENTITY matchAny.label "Osumat täyttävät jotkin ehdoista">
+<!ENTITY matchAny.accesskey "m">
+<!ENTITY matchAllMsgs.label "Kaikki viestit (ei ehtoja)">
+<!ENTITY matchAllMsgs.accesskey "K">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the search widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!ENTITY searchTermListAttributesFlexValue "1">
+<!ENTITY searchTermListOperatorsFlexValue "1">
+<!ENTITY searchTermListValueFlexValue "3">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/shutdownWindow.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/shutdownWindow.properties
new file mode 100644
index 0000000000..e6d4cfc2bc
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/shutdownWindow.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# These strings are loaded and represented by the XUL dialog.
+shutdownDialogTitle=Ohjelman sulkemisen edistyminen
+taskProgress=Viimeistellään tehtävää %1$S / %2$S
+
+# These strings are loaded by the individual shutdown tasks.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smime.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smime.properties
new file mode 100644
index 0000000000..15c5b473be
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smime.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the smime content type handler
+#
+
+## @name NS_MSG_UNABLE_TO_OPEN_FILE
+## LOCALIZATION NOTE: the text can contain HTML tags.
+1000=T\u00E4m\u00E4 on <B>SALATTU</B> tai <B>ALLEKIRJOITETTU</B> viesti.<br> T\u00E4m\u00E4 s\u00E4hk\u00F6postiohjelma ei tue salattua tai allekirjoitettua s\u00E4hk\u00F6postia.
+
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smtpEditOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smtpEditOverlay.dtd
new file mode 100644
index 0000000000..adcfec08a0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/smtpEditOverlay.dtd
@@ -0,0 +1,24 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY settings.caption "Asetukset">
+<!ENTITY security.caption "Suojaus ja todennus">
+<!ENTITY serverName.label "Palvelin:">
+<!ENTITY serverName.accesskey "P">
+<!ENTITY serverDescription.label "Kuvaus:">
+<!ENTITY serverDescription.accesskey "K">
+<!ENTITY serverPort.label "Portti:">
+<!ENTITY serverPort.accesskey "o">
+<!ENTITY userName.label "Käyttäjätunnus:">
+<!ENTITY userName.accesskey "ä">
+<!ENTITY connectionSecurity.label "Yhteyden suojaus:">
+<!ENTITY connectionSecurity.accesskey "Y">
+<!ENTITY connectionSecurityType-0.label "Ei mitään">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, jos mahdollista">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY smtpEditTitle.label "SMTP-palvelin">
+<!ENTITY serverPortDefault.label "Oletus:">
+<!ENTITY authMethod.label "Todennustapa:">
+<!ENTITY authMethod.accesskey "T">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.dtd
new file mode 100644
index 0000000000..072b18b833
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY subscribeDialog.title "Tilaa">
+<!ENTITY subscribeButton.label "Tilaa">
+<!ENTITY subscribeButton.accesskey "T">
+<!ENTITY unsubscribeButton.label "Peruuta tilaus">
+<!ENTITY unsubscribeButton.accesskey "P">
+<!ENTITY newGroupsTab.label "Uudet ryhmät">
+<!ENTITY newGroupsTab.accesskey "U">
+<!ENTITY refreshButton.label "Päivitä">
+<!ENTITY refreshButton.accesskey "P">
+<!ENTITY stopButton.label "Pysäytä">
+<!ENTITY stopButton.accesskey "y">
+<!ENTITY server.label "Tili:">
+<!ENTITY server.accesskey "T">
+<!ENTITY subscribedHeader.label "Tilaa">
+<!-- commenting out until bug 38906 is fixed
+<!ENTITY messagesHeader.label "Messages"> -->
+<!ENTITY namefield.label "Näytä kohteet, jotka sisältävät:">
+<!ENTITY namefield.accesskey "N">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.properties
new file mode 100644
index 0000000000..f51cd54c40
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/subscribe.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+subscribeLabel-nntp=Valitse tilattavat keskusteluryhmät:
+subscribeLabel-imap=Valitse tilattavat kansiot:
+currentListTab-nntp.label=Nykyisten ryhmien lista
+currentListTab-nntp.accesskey=N
+currentListTab-imap.label=Kansiolista
+currentListTab-imap.accesskey=K
+pleaseWaitString=Odota hetki…
+offlineState=Ei verkkoyhteyttä. Tietoja ei voitu ladata palvelimelta.
+errorPopulating=Tietojen lataamisessa palvelimelta tapahtui virhe.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/tabmail.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/tabmail.dtd
new file mode 100644
index 0000000000..f4e9531726
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/tabmail.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY closeTab.label "Sulje välilehti">
+<!ENTITY listAllTabs.label "Listaa kaikki välilehdet">
+<!-- LOCALIZATION NOTE(defaultTabTitle.label): This is the default tab
+ title to show when the tab has no title. -->
+<!ENTITY defaultTabTitle.label "Aloitussivu">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/taskbar.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/taskbar.properties
new file mode 100644
index 0000000000..53480a38e8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/taskbar.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+taskbar.tasks.composeMessage.label=Kirjoita uusi viesti
+taskbar.tasks.composeMessage.description=Kirjoita uusi viesti.
+taskbar.tasks.openAddressBook.label=Avaa osoitekirja
+taskbar.tasks.openAddressBook.description=Avaa osoitekirjasi.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/telemetry.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/telemetry.properties
new file mode 100644
index 0000000000..313fc09966
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/telemetry.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Telemetry prompt
+# LOCALIZATION NOTE (telemetryText): %1$S will be replaced by brandFullName,
+# and %2$S by the value of the toolkit.telemetry.server_owner preference.
+telemetryText = Haluatko auttaa kehittämään %1$Siä lähettämällä automaattisesti tietoja muistin käytöstä, suorituskyvystä ja toimintavasteista organisaatiolle %2$S?
+telemetryLinkLabel = Lue lisää
+telemetryYesButtonLabel = Kyllä
+telemetryYesButtonAccessKey = K
+telemetryNoButtonLabel = Ei
+telemetryNoButtonAccessKey = E
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/templateUtils.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/templateUtils.properties
new file mode 100644
index 0000000000..0dd7cd38f0
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/templateUtils.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE yesterday: used in various places where we compute
+# a "friendly" date, e.g. displaying that a message was from yesterday.
+yesterday=eilen
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/textImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/textImportMsgs.properties
new file mode 100644
index 0000000000..cdf8acb5eb
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/textImportMsgs.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the text import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name TEXTIMPORT_NAME
+## @loc None
+2000=Tekstitiedosto (LDIF, .tab, .csv, .txt)
+
+# Description of import module
+## @name TEXTIMPORT_DESCRIPTION
+## @loc None
+2001=Tuo osoitekirja tekstitiedostosta, mukaan lukien: LDIF (.ldif, .ldi), sarkaimin erotellut (.tab, .txt) tai pilkuin erotellut (.csv) muodot.
+
+# Description of import module
+## @name TEXTIMPORT_ADDRESS_NAME
+## @loc None
+2002=Tekstiosoitekirja
+
+# Description
+## @name TEXTIMPORT_ADDRESS_SUCCESS
+## @loc None
+2003=Tuotiin osoitekirja %S
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADPARAM
+## @loc None
+2004=Tuo osoitekirja -komennolle sy\u00F6tettiin virheellinen parametri.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+2005=Virhe k\u00E4sitelt\u00E4ess\u00E4 osoitekirjan %S tiedostoa.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+2006=Virhe tuotaessa osoitekirjaa %S. Osa osoitteista saattoi j\u00E4\u00E4d\u00E4 tuomatta.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/vCardImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/vCardImportMsgs.properties
new file mode 100644
index 0000000000..66eb57bfd1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/vCardImportMsgs.properties
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the vCard import code to display status, error, and
+# informational messages
+#
+
+vCardImportName=vCard-tiedosto (.vcf)
+
+vCardImportDescription=Tuo osoitekirja vCard-muodossa
+
+vCardImportAddressName=vCard-osoitekirja
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressSuccess=Tuoto osoitekirja %S
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressBadSourceFile=Tapahtui virhe luettaessa osoitekirjan %S tiedostoa.
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressConvertError=Virhe tuotaessa osoitekirjaa %S, kaikkien osoitteiden tuonti ei ehkä onnistunut.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewLog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewLog.dtd
new file mode 100644
index 0000000000..4a4356f563
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewLog.dtd
@@ -0,0 +1,12 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY viewLog.title "Suodatinloki">
+<!ENTITY viewLogInfo.text "Suodatinloki on tiedosto, joka pitää kirjaa suoritetuista suodattimista.">
+<!ENTITY clearLog.label "Tyhjennä loki">
+<!ENTITY clearLog.accesskey "T">
+<!ENTITY enableLog.label "Ota suodatinloki käyttöön">
+<!ENTITY enableLog.accesskey "s">
+<!ENTITY closeLog.label "Sulje">
+<!ENTITY closeLog.accesskey "S">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.dtd
new file mode 100644
index 0000000000..8f2c2031b4
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.dtd
@@ -0,0 +1,86 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from content/viewSource.xul -->
+
+<!-- extracted from content/viewSource.xhtml -->
+
+<!-- LOCALIZATION NOTE (mainWindow.title) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.title "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifier) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifier "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifierseparator) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifierseparator " - ">
+<!ENTITY mainWindow.preface "Lähdekoodi sivulle: ">
+
+<!ENTITY editMenu.label "Muokkaa">
+<!ENTITY editMenu.accesskey "M">
+<!ENTITY fileMenu.label "Tiedosto">
+<!ENTITY fileMenu.accesskey "T">
+<!ENTITY savePageCmd.label "Tallenna sivu nimellä…">
+<!ENTITY savePageCmd.accesskey "S">
+<!ENTITY savePageCmd.commandkey "S">
+<!ENTITY printCmd.label "Tulosta…">
+<!ENTITY printCmd.accesskey "o">
+<!ENTITY printCmd.commandkey "P">
+<!ENTITY closeCmd.label "Sulje">
+<!ENTITY closeCmd.accesskey "S">
+<!ENTITY closeCmd.commandkey "W">
+
+<!-- LOCALIZATION NOTE :
+textEnlarge.commandkey3, textReduce.commandkey2 and
+textReset.commandkey2 are alternative acceleration keys for zoom.
+If shift key is needed with your locale popular keyboard for them,
+you can use these alternative items. Otherwise, their values should be empty. -->
+
+<!ENTITY textEnlarge.commandkey "+">
+<!ENTITY textEnlarge.commandkey2 "=">
+<!ENTITY textEnlarge.commandkey3 "">
+<!ENTITY textReduce.commandkey "-">
+<!ENTITY textReduce.commandkey2 "">
+<!ENTITY textReset.commandkey "0">
+<!ENTITY textReset.commandkey2 "">
+
+<!ENTITY goToLineCmd.label "Siirry riville…">
+<!ENTITY goToLineCmd.accesskey "r">
+<!ENTITY goToLineCmd.commandkey "L">
+
+<!ENTITY viewMenu.label "Näytä">
+<!ENTITY viewMenu.accesskey "N">
+<!ENTITY reloadCmd.label "Lataa uudelleen">
+<!ENTITY reloadCmd.accesskey "L">
+<!ENTITY reloadCmd.commandkey "U">
+<!ENTITY menu_wrapLongLines.title "Rivitä pitkät rivit">
+<!ENTITY menu_wrapLongLines.accesskey "R">
+<!ENTITY menu_highlightSyntax.label "Syntaksin korostus">
+<!ENTITY menu_highlightSyntax.accesskey "k">
+<!ENTITY menu_textSize.label "Tekstin koko">
+<!ENTITY menu_textSize.accesskey "e">
+<!ENTITY menu_textEnlarge.label "Suurenna">
+<!ENTITY menu_textEnlarge.accesskey "S">
+<!ENTITY menu_textReduce.label "Pienennä">
+<!ENTITY menu_textReduce.accesskey "P">
+<!ENTITY menu_textReset.label "Normaali">
+<!ENTITY menu_textReset.accesskey "N">
+
+<!ENTITY findOnCmd.label "Etsi tältä sivulta…">
+<!ENTITY findOnCmd.accesskey "t">
+<!ENTITY findOnCmd.commandkey "E">
+<!ENTITY findAgainCmd.label "Etsi seuraava">
+<!ENTITY findAgainCmd.accesskey "u">
+<!ENTITY findAgainCmd.commandkey "G">
+<!ENTITY findAgainCmd.commandkey2 "VK_F3">
+<!ENTITY findSelectionCmd.commandkey "e">
+
+<!ENTITY backCmd.label "Takaisin">
+<!ENTITY backCmd.accesskey "T">
+<!ENTITY forwardCmd.label "Eteenpäin">
+<!ENTITY forwardCmd.accesskey "E">
+<!ENTITY goBackCmd.commandKey "4">
+<!ENTITY goForwardCmd.commandKey "6">
+
+<!ENTITY copyLinkCmd.label "Kopioi linkin sijainti">
+<!ENTITY copyLinkCmd.accesskey "l">
+<!ENTITY copyEmailCmd.label "Kopioi sähköpostiosoite">
+<!ENTITY copyEmailCmd.accesskey "s">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.properties
new file mode 100644
index 0000000000..6cd4c3de5c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewSource.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+goToLineTitle = Siirry riville
+goToLineText = Syötä rivinumero
+invalidInputTitle = Virheellinen syöte
+invalidInputText = Syötetty rivinumero on virheellinen.
+outOfRangeTitle = Riviä ei löydy
+outOfRangeText = Määritettyä riviä ei löydy.
+viewSelectionSourceTitle = DOM-lähde valinnalle
+viewMathMLSourceTitle = MathML:n DOM-lähde
+
+context_goToLine_label = Siirry riville…
+context_goToLine_accesskey = r
+context_wrapLongLines_label = Rivitä pitkät rivit
+context_highlightSyntax_label = Syntaksin korostus
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewZoomOverlay.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewZoomOverlay.dtd
new file mode 100644
index 0000000000..c356d54d10
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/viewZoomOverlay.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE :
+fullZoomEnlargeCmd.commandkey3, fullZoomReduceCmd.commandkey2 and
+fullZoomResetCmd.commandkey2 are alternative acceleration keys for zoom.
+If shift key is needed with your locale popular keyboard for them,
+you can use these alternative items. Otherwise, their values should be empty. -->
+
+<!ENTITY fullZoomEnlargeCmd.label "Suurenna">
+<!ENTITY fullZoomEnlargeCmd.accesskey "S">
+<!ENTITY fullZoomEnlargeCmd.commandkey "+">
+<!ENTITY fullZoomEnlargeCmd.commandkey2 "="> <!-- + is above this key on many keyboards -->
+<!ENTITY fullZoomEnlargeCmd.commandkey3 "">
+
+<!ENTITY fullZoomReduceCmd.label "Pienennä">
+<!ENTITY fullZoomReduceCmd.accesskey "P">
+<!ENTITY fullZoomReduceCmd.commandkey "-">
+<!ENTITY fullZoomReduceCmd.commandkey2 "">
+
+<!ENTITY fullZoomResetCmd.label "Palauta ">
+<!ENTITY fullZoomResetCmd.accesskey "a">
+<!ENTITY fullZoomResetCmd.commandkey "0">
+<!ENTITY fullZoomResetCmd.commandkey2 "">
+
+<!ENTITY fullZoomToggleCmd.label "Muuta vain tekstin kokoa">
+<!ENTITY fullZoomToggleCmd.accesskey "M">
+<!ENTITY fullZoom.label "Viestin suurennus">
+<!ENTITY fullZoom.accesskey "V">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderListDialog.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderListDialog.dtd
new file mode 100644
index 0000000000..8236337c44
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderListDialog.dtd
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY virtualFolderListTitle.title "Valitse kansiot">
+<!ENTITY virtualFolderDesc.label "Valitse kansiot, joista haetaan:">
+<!ENTITY folderName.label "Kansion nimi">
+<!ENTITY folderSearch.label "Haku">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderProperties.dtd
new file mode 100644
index 0000000000..6b8589d5d6
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/virtualFolderProperties.dtd
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY virtualFolderProperties.title "Uusi tallennetun haun kansio">
+<!ENTITY name.label "Nimi:">
+<!ENTITY name.accesskey "N">
+<!ENTITY description.label "Luo alikansiona kansiolle:">
+<!ENTITY description.accesskey "L">
+
+<!ENTITY searchTermCaption.label "Tämän virtuaalikansion hakuehdot:">
+
+<!ENTITY folderSelectionCaption.label "Valitse kansiot, joista haetaan:">
+<!ENTITY chooseFoldersButton.label "Valitse…">
+<!ENTITY chooseFoldersButton.accesskey "V">
+
+<!ENTITY searchOnline.label "Hae yhteystilassa (Kansion avaaminen on hitaampaa, mutta kansio on aina ajantasalla)">
+<!ENTITY searchOnline.accesskey "y">
+<!ENTITY newFolderButton.label "Luo">
+<!ENTITY newFolderButton.accesskey "L">
+<!ENTITY editFolderButton.label "Päivitä">
+<!ENTITY editFolderButton.accesskey "P">
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/wmImportMsgs.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/wmImportMsgs.properties
new file mode 100644
index 0000000000..816a33d671
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/messenger/wmImportMsgs.properties
@@ -0,0 +1,76 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the windows live mail import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name WMIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Windows Live Mail
+
+# Description of import module
+## @name WMIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2001): In this item, don't translate "Windows Live Mail"
+2001=Windows Live Mail -asetukset
+
+# Success message
+## @name WMIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%1$S" or "%2$d"
+## The variable %1$S will contain the name of the Mailbox
+## The variable %2$d will contain the number of messages
+2002=Postilaatikko %1$S, tuotiin %2$d viestiä
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Virheellinen valinta tuotaessa postilaatikkoa.
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2004=Virhe luettaessa postilaatikon %S tiedostoa.
+
+# Error message
+## @name WMIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2005=Virhe tuotaessa postilaatikkoa %S, kaikkia postilaatikon viestejä ei ehkä voida tuoda tästä postilaatikosta.
+
+# Default name of imported addressbook
+## @name WMIMPORT_DEFAULT_NAME
+## @loc None
+2006=Windows Live Mail -osoitteisto
+
+# Autofind description
+## @name WMIMPORT_AUTOFIND
+## @loc None
+2007=Windows Live Mail -osoitteisto (Windowsin osoitteisto)
+
+# Description
+## @name WMIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Tuotu osoitteisto %S
+
+# Error message
+## @name WMIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Virhe tuotaessa osoitteistoa %S, kaikkia yhteystietoja ei ehkä tuotu.
+
+# Error message
+## @name WMIMPORT_ADDRESS_BADPARAM
+## @loc None
+2010=Virheellinen valinta tuotaessa osoitteistoa.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/downloads.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..de27f22f35
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/downloads.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Desktop folder name for downloaded files
+downloadsFolder=Lataukset
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/unknownContentType.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..60daa6cdf8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/downloads/unknownContentType.properties
@@ -0,0 +1,23 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title=Avataan tiedostoa %S
+saveDialogTitle=Anna tallennettavan tiedoston nimi…
+defaultApp=%S (oletus)
+chooseAppFilePickerTitle=Valitse ohjelma
+badApp=Ohjelmaa ("%S") ei löytynyt. Korjaa tiedostonimi tai valitse toinen ohjelma.
+badApp.title=Ohjelmaa ei löytynyt
+badPermissions=Tiedostoa ei voitu tallentaa, koska sinulla ei ole riittäviä kirjoitusoikeuksia. Valitse toinen tallennuskansio.
+badPermissions.title=Riittämättömät kirjoitusoikeudet
+unknownAccept.label=Tallenna tiedosto
+unknownCancel.label=Peruuta
+fileType=%S -tiedosto
+# LOCALIZATION NOTE (orderedFileSizeWithType): first %S is type, second %S is size, and third %S is unit
+orderedFileSizeWithType=%1$S -tiedosto (%2$S %3$S)
+avifExtHandlerDescription=AV1-kuvatiedosto (AVIF)
+pdfExtHandlerDescription=Portable Document Format (PDF)
+svgExtHandlerDescription=Scalable Vector Graphics (SVG)
+webpExtHandlerDescription=WebP-kuva
+xmlExtHandlerDescription=Extensible Markup Language (XML)
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/profile/profileSelection.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..3c99ca73d5
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/profile/profileSelection.properties
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for startup/profile problems and the profile manager.
+
+# Application not responding
+# LOCALIZATION NOTE (restartTitle, restartMessageNoUnlocker2, restartMessageUnlocker, restartMessageNoUnlockerMac, restartMessageUnlockerMac): Messages displayed when the application is running but is not responding to commands. %S is the application name.
+restartTitle=Sulje %S
+restartMessageNoUnlocker2=%S on jo käynnissä, mutta ei vastaa kutsuihin. Ohjelmaa %S voidaan käyttää, kun kaikki %S-prosessit on lopetettu, laite on käynnistetty uudelleen tai käytetään eri profiilia.
+restartMessageUnlocker=%S on jo käynnissä, mutta ei vastaa kutsuihin. Uusi ikkuna voidaan avata, kun %Sin käynnissä oleva prosessi on lopetettu.
+restartMessageNoUnlockerMac=%S on jo käynnissä. Vain yksi %S-kopio voi kerrallaan olla käynnissä.
+restartMessageUnlockerMac=%S on jo käynnissä. Käynnissä oleva %S-kopio lopetetaan, jotta uusi voidaan avata.
+
+# Profile manager
+# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
+profileTooltip=Profiili: "%S" — Kansio: "%S"
+
+pleaseSelectTitle=Valitse profiili
+pleaseSelect=Valitse profiili, jolla %S käynnistetään, tai luo uusi.
+
+renameProfileTitle=Muuta profiilin nimi
+renameProfilePrompt=Muuta profiilin "%S" nimeä:
+
+profileNameInvalidTitle=Virheellinen profiilinnimi
+profileNameInvalid="%S" ei ole sallittu profiilinnimi.
+
+chooseFolder=Valitse profiilikansio
+profileNameEmpty=Profiililla ei voi olla tyhjää nimeä.
+invalidChar=Merkkiä "%S" ei voi käyttää profiilin nimessä. Anna toinen nimi.
+
+deleteTitle=Poista profiili
+deleteProfileConfirm=Profiilin poistamista profiililistalta ei voi peruuttaa.\nHaluttaessa myös profiilin tiedostot, jotka sisältävät mm. asetukset ja varmenteet, voidaan poistaa. Tämä toiminto poistaa kansion "%S" ja sitä ei voi peruuttaa.\nPoistetaanko profiilin tiedostot?
+deleteFiles=Poista tiedostot
+dontDeleteFiles=Älä poista tiedostoja
+
+profileCreationFailed=Profiilia ei voitu luoda. Luultavasti valittuun kansioon ei ole kirjoitusoikeuksia.
+profileCreationFailedTitle=Profiilin luonti epäonnistui
+profileExists=Samanniminen profiili on jo olemassa. Anna uusi nimi.
+profileFinishText=Luo tämä profiili napsauttamalla valmis.
+profileFinishTextMac=Luo tämä profiili napsauttamalla valmis.
+profileMissing=%Sin profiilia ei voitu ladata. Voi olla, että sitä ei ole tai se ei ole luettavissa.
+profileMissingTitle=Profiili puuttuu
+profileDeletionFailed=Profiilin poistaminen epäonnistui, koska se saattaa olla käytössä.
+profileDeletionFailedTitle=Poistaminen epäonnistui
+
+# Profile reset
+# LOCALIZATION NOTE (resetBackupDirectory): Directory name for the profile directory backup created during reset. This directory is placed in a location users will see it (ie. their desktop). %S is the application name.
+resetBackupDirectory=%Sin vanhat tiedot
+
+flushFailTitle=Muutoksia ei tallennettu
+flushFailMessage=Odottamaton virhe on estänyt muutosten tallentamisen.
+# LOCALIZATION NOTE (flushFailRestartButton): $S is brandShortName.
+flushFailRestartButton=Käynnistä %S uudestaan
+flushFailExitButton=Sulje
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/update/updates.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/update/updates.properties
new file mode 100644
index 0000000000..d21f51bede
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozapps/update/updates.properties
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The 1st %S is brandShortName and 2nd %S is update version
+# where update version from the update xml
+# example: MyApplication 10.0.5
+updateName=%S %S
+
+noThanksButton=Ei kiitos
+noThanksButton.accesskey=E
+restartLaterButton=Käynnistä myöhemmin
+restartLaterButton.accesskey=m
+restartNowButton=Käynnistä %S uudelleen
+restartNowButton.accesskey=u
+
+statusFailed=Asennus ei onnistunut
+
+installSuccess=Päivityksen asennus onnistui
+installPending=Asennetaan myöhemmin
+patchApplyFailure=Päivitystä ei voitu asentaa (päivitystiedosto ei toiminut)
+elevationFailure=Sinulla ei ole tarvittavia oikeuksia tämän päivityksen asentamiseen. Ota yhteyttä järjestelmän ylläpitäjään.
+
+check_error-200=Päivityksen XML-tiedosto on virheellisesti muotoiltu (200)
+check_error-403=Pääsy estetty (403)
+check_error-404=Päivityksen XML-tiedostoa ei löytynyt (404)
+check_error-500=Palvelinvirhe (500)
+check_error-2152398849=Epäonnistui (tuntematon syy)
+check_error-2152398861=Yhteyden muodostus ei onnistunut
+check_error-2152398862=Yhteys aikakatkaistiin
+# NS_ERROR_OFFLINE
+check_error-2152398864=Verkkoyhteyttä ei ole (Siirry yhteystilaan)
+check_error-2152398867=Portti on estetty
+check_error-2152398868=Dataa ei siirtynyt (Yritä uudelleen)
+check_error-2152398878=Päivityspalvelinta ei löytynyt (Tarkista verkkoyhteytesi tai ota yhteys ylläpitoon)
+check_error-2152398890=Välityspalvelinta ei löytynyt (Tarkista verkkoyhteytesi tai ota yhteys ylläpitoon)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=Verkkoyhteyttä ei ole (Siirry yhteystilaan)
+check_error-2152398919=Datansiirto keskeytettiin (Yritä uudelleen)
+check_error-2152398920=Yhteyden muodostaminen välityspalvelimeen ei onnistunut (Ota yhteys ylläpitoon)
+check_error-2153390069=Palvelimen varmenne on vanhentunut (Tarkista järjestelmän kello ja päivämäärä ja korjaa ne, jos ne ovat väärin, tai ota yhteys järjestelmän ylläpitoon)
+check_error-verification_failed=Päivityspaketti ei läpäissyt virheettömyystestiä (ota yhteys ylläpitoon)
+check_error-move_failed=Päivityksen valmistelu asennusta varten epäonnistui
+check_error-update_url_not_available=Päivityksen URL-osoite ei ole saatavilla
+check_error-connection_aborted=Yhteys keskeytetty
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/mozldap/ldap.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozldap/ldap.properties
new file mode 100644
index 0000000000..6bd8828895
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/mozldap/ldap.properties
@@ -0,0 +1,261 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The following two strings are used when prompting the user for authentication
+# information:
+
+## @name AUTH_PROMPT_TITLE
+## @loc none
+authPromptTitle=LDAP-palvelimen salasana t\u00E4ytyy antaa
+
+## @name AUTH_PROMPT_TEXT
+## @loc %1$S should not be localized. It is the hostname of the LDAP server.
+authPromptText=Kirjoita palvelimen %1$S salasana.
+
+# These are string versions of all the errors defined in
+# nsILDAPErrors.idl, as well as the nsresult codes based on those
+# errors. See that file for the genesis of these codes, as well as
+# for info about how to get documentation about their precise
+# meanings.
+
+## @name OPERATIONS_ERROR
+## @loc none
+1=Operaatiovirhe
+
+## @name PROTOCOL_ERROR
+## @loc none
+2=Protokollavirhe
+
+## @name TIMELIMIT_EXCEEDED
+## @loc none
+3=Aikaraja ylitetty
+
+## @name SIZELIMIT_EXCEEDED
+## @loc none
+4=Kokoraja ylitetty
+
+## @name COMPARE_FALSE
+## @loc none
+5=Vertailu ep\u00E4tosi
+
+## @name COMPARE_TRUE
+## @loc none
+6=Vertailu tosi
+
+## @name STRONG_AUTH_NOT_SUPPORTED
+## @loc none
+7=Autentikointimenetelm\u00E4 ei ole tuettu
+
+## @name STRONG_AUTH_REQUIRED
+## @loc none
+8=Vahva k\u00E4ytt\u00E4j\u00E4n tunnistaminen vaadittu
+
+## @name PARTIAL_RESULTS
+## @loc none
+9=Osittaiset tulokset ja viittaukset vastaanotettu
+
+## @name REFERRAL
+## @loc none
+10=Viittaus vastaanotettu
+
+## @name ADMINLIMIT_EXCEEDED
+## @loc none
+11=Ylläpidollinen raja on ylitetty
+
+## @name UNAVAILABLE_CRITICAL_EXTENSION
+## @loc none
+12=T\u00E4rke\u00E4 laajennus ei saatavilla
+
+## @name CONFIDENTIALITY_REQUIRED
+## @loc none
+13=Luottamuksellisuus vaadittu
+
+## @name SASL_BIND_IN_PROGRESS
+## @loc none
+14=SASL sidonta k\u00E4ynniss\u00E4
+
+## @name NO_SUCH_ATTRIBUTE
+## @loc none
+16=Ei annetunlaista attribuuttia
+
+## @name UNDEFINED_TYPE
+## @loc none
+17=M\u00E4\u00E4rittelem\u00E4t\u00F6n attribuuttityyppi
+
+## @name INAPPROPRIATE MATCHING
+## @loc none
+18=Sopimaton vastaavuus
+
+## @name CONSTRAINT_VIOLATION
+## @loc none
+19=Rajoiterikkomus
+
+## @name TYPE_OR_VALUE_EXISTS
+## @loc none
+20=Tyyppi tai arvo on olemassa
+
+## @name INVALID_SYNTAX
+## @loc none
+21=Virheellinen syntaksi
+
+## @name NO_SUCH_OBJECT
+## @loc none
+32=Ei vastaavaa objektia
+
+## @name ALIAS_PROBLEM
+## @loc none
+33=Alias ongelma
+
+## @name INVALID_DN_ SYNTAX
+## @loc none
+34=Virheellinen verkkoaluesyntaksi
+
+## @name IS_LEAF
+## @loc none
+35=Objekti on lehti
+
+## @name ALIAS_DEREF_PROBLEM
+## @loc none
+36=Aliaksen purkuongelma
+
+## @name INAPPROPRIATE_AUTH
+## @loc none
+48=Sopimaton autentikointi
+
+## @name INVALID_CREDENTIALS
+## @loc none
+49=Virheelliset valtuustiedot
+
+## @name INSUFFICIENT_ACCESS
+## @loc none
+50=Riitt\u00E4m\u00E4t\u00F6n p\u00E4\u00E4sy
+
+## @name BUSY
+## @loc none
+51=LDAP-palvelin on varattu
+
+## @name UNAVAILABLE
+## @loc none
+52=LDAP-palvelin ei ole saatavilla
+
+## @name UNWILLING_TO_PERFORM
+## @loc none
+53=LDAP-palvelin ei ole halukas toimimaan
+
+## @name LOOP_DETECT
+## @loc none
+54=Havaittu silmukka
+
+## @name SORT_CONTROL_MISSING
+## @loc none
+60=J\u00E4rjestelyn hallinta puuttuu
+
+## @name INDEX_RANGE_ERROR
+## @loc none
+61=Hakutulokset ylittiv\u00E4t poikkeamien m\u00E4\u00E4ritt\u00E4m\u00E4n alueen
+
+## @name NAMING_VIOLATION
+## @loc none
+64=Nime\u00E4misrikkomus
+
+## @name OBJECT_CLASS_VIOLATION
+## @loc none
+65=Objektin luokka -rikkomus
+
+## @name NOT_ALLOWED_ON_NONLEAF
+## @loc none
+66=Operaatio ei sallittu muille, kuin lehdille
+
+## @name NOT_ALLOWED_ON_RDN
+## @loc none
+67=Operaatio ei sallittu RDN:lle
+
+## @name ALREADY_EXISTS
+## @loc none
+68=On jo olemassa
+
+## @name NO_OBJECT_CLASS_MODS
+## @loc none
+69=Ei voi muokata objektin luokkaa
+
+## @name RESULTS_TOO_LARGE
+## @loc none
+70=Tulokset liian suuria
+
+## @name AFFECTS_MULTIPLE_DSAS
+## @loc none
+71=Vaikuttaa useisiin palvelimiin
+
+## @name OTHER
+## @loc none
+80=Tuntematon virhe
+
+## @name SERVER_DOWN
+## @loc none
+81=Ei saa yhteytt\u00E4 LDAP-palvelimeen
+
+## @name LOCAL_ERROR
+## @loc none
+82=Paikallinen virhe
+
+## @name ENCODING_ERROR
+## @loc none
+83=Virhe koodauksessa
+
+## @name DECODING_ERROR
+## @loc none
+84=Virhe dekoodauksessa
+
+## @name TIMEOUT
+## @loc none
+85=LDAP-palvelinyhteys aikakatkaistiin
+
+## @name AUTH_UNKNOWN
+## @loc none
+86=Tuntematon autentikointimenetelm\u00E4
+
+## @name FILTER_ERROR
+## @loc none
+87=Virheellinen hakusuodatin
+
+## @name USER_CANCELLED
+## @loc none
+88=K\u00E4ytt\u00E4j\u00E4 peruutti toimenpiteen
+
+## @name PARAM_ERROR
+## @loc none
+89=V\u00E4\u00E4r\u00E4 parametri LDAP-toiminnolle
+
+## @name NO_MEMORY
+## @loc none
+90=Muisti on loppu
+
+## @name CONNECT_ERROR
+## @loc none
+91=Ei saa yhteytt\u00E4 LDAP-palvelimeen
+
+## @name NOT_SUPPORTED
+## @loc none
+92=Toimintoa ei tueta t\u00E4ss\u00E4 LDAP-protokollan versiossa
+
+## @name CONTROL_NOT_FOUND
+## @loc none
+93=Pyydetty\u00E4 LDAP-kontrollia ei l\u00F6ytynyt
+
+## @name NO_RESULTS_RETURNED
+## @loc none
+94=Ei tuloksia palautettu
+
+## @name MORE_RESULTS_TO_RETURN
+## @loc none
+95=Lis\u00E4\u00E4 tuloksia palautettavana
+
+## @name CLIENT_LOOP
+## @loc none
+96=Asiakas havaitsi silmukan
+
+## @name REFERRAL_LIMIT_EXCEEDED
+## @loc none
+97=Viittaushyppyjen raja ylitetty
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/necko/necko.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/necko/necko.properties
new file mode 100644
index 0000000000..a71e467620
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/necko/necko.properties
@@ -0,0 +1,95 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+3=Selvitetään verkko-osoitetta %1$S…
+4=Yhteys muodostettu osoitteeseen %1$S…
+5=Lähetetään pyyntöä osoitteeseen %1$S…
+6=Siirretään dataa osoitteesta %1$S…
+7=Muodostetaan yhteyttä osoitteeseen %1$S…
+8=%1$S luettu
+9=%1$S kirjoitettu
+10=Odotetaan vastausta osoitteesta %1$S…
+11=Selvitettiin verkko-osoite %1$S…
+12=Suoritetaan TLS-kättelyä palvelimeen %1$S…
+13=TLS-kättely palvelimelle %1$S valmistui…
+
+RepostFormData=Tämä sivu ohjautuu uuteen osoitteeseen. Lähetetäänkö kirjoitetut lomaketiedot uuteen osoitteeseen?
+
+# Directory listing strings
+DirTitle=Kansion %1$S sisältö
+DirGoUp=Siirry ylöspäin puussa
+ShowHidden=Näytä piilotetut kohteet
+DirColName=Nimi
+DirColSize=Koko
+DirColMTime=Muokattu
+DirFileLabel=Tiedosto:
+
+SuperfluousAuth=Kirjaudutaan käyttäjätunnuksella %2$S sivustolle %1$S, joka ei vaadi tunnistautumista. Tämä saattaa olla huijausyritys.\n\nJatketaanko sivustolle %1$S?
+AutomaticAuth=Kirjaudutaan käyttäjätunnuksella %2$S palvelimelle %1$S.
+
+TrackerUriBlocked=Resurssi osoitteessa ”%1$S” estettiin, koska sisällön esto on käytössä.
+UnsafeUriBlocked=Resurssin osoitteessa ”%1$S” esti Safe Browsing -toiminto.
+# LOCALIZATION NOTE (CORPBlocked): %1$S is the URL of the blocked resource. %2$S is the URL of the MDN page about CORP.
+CORPBlocked=Resurssi osoitteessa ”%1$S” estettiin sen Cross-Origin-Resource-Policy-otsakkeen sisällön tai kyseisen otsakkeen puutteen vuoksi. Katso lisätietoja %2$S
+CookieBlockedByPermission=Evästeiden tai tallennustilan käyttöpyyntö osoitteessa ”%1$S” estettiin muokattujen evästeasetusten takia.
+CookieBlockedTracker=Evästeen tai tallennustilan käyttöpyyntö osoitteessa ”%1$S” estettiin, koska se tuli seuraimelta ja sisällön esto on käytössä.
+CookieBlockedAll=Evästeen tai tallennustilan käyttöpyyntö osoitteessa ”%1$S” estettiin, koska kaikki tallennustilan käyttöpyynnöt on estetty.
+CookieBlockedForeign=Evästeen tai tallennustilan käyttöpyyntö osoitteessa ”%1$S” estettiin, koska kaikki tallennustilan käyttöpyynnöt on estetty kolmansilta osapuolilta ja sisällön esto on käytössä.
+# As part of dynamic state partitioning, third-party resources might be limited to "partitioned" storage access that is separate from the first-party context.
+# This allows e.g. cookies to still be set, and prevents tracking without totally blocking storage access. This message is shown in the web console when this happens
+# to inform developers that their storage is isolated.
+CookiePartitionedForeign2=Partitioned cookie or storage access was provided to “%1$S” because it is loaded in the third-party context and dynamic state partitioning is enabled.
+
+# LOCALIZATION NOTE (CookieAllowedForOriginByStorageAccessAPI): %2$S and %1$S are URLs.
+CookieAllowedForOriginByStorageAccessAPI=Tallennustilan käyttöoikeus myönnettiin lähteelle ”%2$S” osoitteesta ”%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForOriginByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForOriginByHeuristic=Tallennustilan käyttöoikeus myönnettiin automaattisesti lähteelle ”%2$S” osoitteesta ”%1$S”.
+# LOCALIZATION NOTE (CookieAllowedForFpiByHeuristic): %2$S and %1$S are URLs.
+CookieAllowedForFpiByHeuristic=Storage access automatically granted for First-Party isolation “%2$S” on “%1$S”.
+
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecure2): %1$S is the cookie name. Do not localize "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecure2=Cookie “%1$S” rejected because it has the “SameSite=None” attribute but is missing the “secure” attribute.
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecureForBeta3): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "SameSite=None" and "secure".
+CookieRejectedNonRequiresSecureForBeta3=Eväste “%1$S” hylätään pian, koska siinä on “SameSite”-attribuutin arvoksi asetettu “None” ilman “secure”-attribuuttia. Saadaksesi lisätietoja “SameSite“-attribuutista, lue %2$S
+# LOCALIZATION NOTE(CookieLaxForced2): %1$S is the cookie name. Do not localize "SameSite", "Lax" and "SameSite=Lax".
+CookieLaxForced2=Cookie “%1$S” has “SameSite” policy set to “Lax” because it is missing a “SameSite” attribute, and “SameSite=Lax” is the default value for this attribute.
+# LOCALIZATION NOTE(CookieLaxForcedForBeta2): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "Lax" and "SameSite=Lax", "SameSite=None".
+CookieLaxForcedForBeta2=Cookie “%1$S” does not have a proper “SameSite” attribute value. Soon, cookies without the “SameSite” attribute or with an invalid value will be treated as “Lax”. This means that the cookie will no longer be sent in third-party contexts. If your application depends on this cookie being available in such contexts, please add the “SameSite=None“ attribute to it. To know more about the “SameSite“ attribute, read %2$S
+# LOCALIZATION NOTE(CookieSameSiteValueInvalid2): %1$S is cookie name. Do not localize "SameSite", "Lax", "Strict" and "None"
+CookieSameSiteValueInvalid2=Virheellinen “SameSite“-arvo evästeelle “%1$S”. Tuetut arvot ovat: “Lax“, “Strict“, “None“.
+# LOCALIZATION NOTE (CookieOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookieOversize=Eväste “%1$S” on virheellinen, koska sen koko on liian suuri. Enimmäiskoko on %2$S tavua.
+# LOCALIZATION NOTE (CookiePathOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+CookiePathOversize=Eväste “%1$S” on virheellinen, koska sen polun koko on liian suuri. Enimmäiskoko on %2$S tavua.
+# LOCALIZATION NOTE (CookieRejectedByPermissionManager): %1$S is the cookie response header.
+CookieRejectedByPermissionManager=Eväste “%1$S” on hylätty käyttäjän asettamien oikeuksien toimesta.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharName): %1$S is the cookie name.
+CookieRejectedInvalidCharName=Evästeä “%1$S” on hylätty, koska sen nimessä on virheellisiä merkkejä.
+# LOCALIZATION NOTE (CookieRejectedInvalidDomain): %1$S is the cookie name.
+CookieRejectedInvalidDomain=Cookie “%1$S” has been rejected for invalid domain.
+# LOCALIZATION NOTE (CookieRejectedInvalidPrefix): %1$S is the cookie name.
+CookieRejectedInvalidPrefix=Cookie “%1$S” has been rejected for invalid prefix.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharValue): %1$S is the cookie name.
+CookieRejectedInvalidCharValue=Cookie “%1$S” has been rejected for invalid characters in the value.
+# LOCALIZATION NOTE (CookieRejectedHttpOnlyButFromScript): %1$S is the cookie name.
+CookieRejectedHttpOnlyButFromScript=Cookie “%1$S” has been rejected because there is already an HTTP-Only cookie but script tried to store a new one.
+# LOCALIZATION NOTE (CookieRejectedSecureButHttp): %1$S is the cookie name.
+CookieRejectedSecureButNonHttps=Cookie “%1$S” has been rejected because a non-HTTPS cookie can’t be set as “secure”.
+# LOCALIZATION NOTE (CookieRejectedThirdParty): %1$S is the cookie response header.
+CookieRejectedThirdParty=Eväste “%1$S” on hylätty, koska se on kolmannen osapuolen.
+# LOCALIZATION NOTE (CookieRejectedNonsecureOverSecure): %1$S is the cookie name.
+CookieRejectedNonsecureOverSecure=Eväste “%1$S” on hylätty, koska olemassa on jo “secure”-eväste.
+# LOCALIZATION NOTE (CookieRejectedForNonSameSiteness): %1$S is the cookie name.
+CookieRejectedForNonSameSiteness=Cookie “%1$S” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.
+
+# LOCALIZATION NOTE (CookieBlockedCrossSiteRedirect): %1$S is the cookie name. Do not translate "SameSite", "Lax" or "Strict".
+CookieBlockedCrossSiteRedirect=Eväste “%1$S” “SameSite”-ominaisuuden arvolla “Lax” tai “Strict” jätettiin pois sivustorajat ylittävän uudelleenohjauksen vuoksi.
+
+# LOCALIZATION NOTE (APIDeprecationWarning): %1$S is the deprecated API; %2$S is the API function that should be used.
+APIDeprecationWarning=Varoitus: ‘%1$S’ on vanhennettu, käytä ‘%2$S’
+
+
+# LOCALIZATION NOTE (ResourceBlockedCORS): %1$S is the url of the resource blocked by ORB. $2$S is the reason.
+# example: The resource at <url> was blocked by OpaqueResponseBlocking. Reason: “nosniff with either blocklisted or text/plain”.
+ResourceBlockedORB=The resource at “%1$S” was blocked by OpaqueResponseBlocking. Reason: “%2$S”.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/passwordmgr/passwordmgr.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..b5a35284ba
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/passwordmgr/passwordmgr.properties
@@ -0,0 +1,79 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rememberPassword = Tallenna salasana salasanojen hallintaan.
+savePasswordTitle = Vahvista
+# LOCALIZATION NOTE (saveLoginMsg2, saveLoginMsgNoUser2):
+# %S is the login's hostname.
+saveLoginMsg2 = Tallennetaanko tunnus sivustolle %S?
+saveLoginMsgNoUser2 = Tallennetaanko sivuston %S salasana?
+saveLoginButtonAllow.label = Tallenna
+saveLoginButtonAllow.accesskey = T
+saveLoginButtonDeny.label = Älä tallenna
+saveLoginButtonDeny.accesskey = Ä
+saveLoginButtonNever.label = Älä tallenna koskaan
+saveLoginButtonNever.accesskey = k
+# LOCALIZATION NOTE (updateLoginMsg3, updateLoginMsgNoUser3):
+# %S is the login's hostname.
+updateLoginMsg3 = Päivitetäänkö tunnus sivustolle %S?
+updateLoginMsgNoUser3 = Päivitetäänkö sivuston %S salasana?
+updateLoginMsgAddUsername2 = Lisätäänkö käyttäjätunnus tallennettuun salasanaan?
+updateLoginButtonText = Päivitä
+updateLoginButtonAccessKey = Ä
+updateLoginButtonDeny.label = Älä päivitä
+updateLoginButtonDeny.accesskey = i
+updateLoginButtonDelete.label = Poista tallennettu kirjautumistieto
+updateLoginButtonDelete.accesskey = P
+# LOCALIZATION NOTE (rememberPasswordMsg):
+# 1st string is the username for the login, 2nd is the login's hostname.
+# Note that long usernames may be truncated.
+rememberPasswordMsg = Tallennetaanko salasana käyttäjätunnukselle "%1$S" palvelimella %2$S?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = Tallennetaanko palvelimen %S salasana?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=Ei käyttäjätunnusta
+togglePasswordLabel=Näytä salasana
+togglePasswordAccessKey2=N
+notNowButtonText = &Ei nyt
+neverForSiteButtonText = Ei &koskaan tälle palvelimelle
+rememberButtonText = &Tallenna
+passwordChangeTitle = Vahvista salasanan vaihto
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = Muutetaanko käyttäjätunnukselle "%S" tallennettu salasana?
+updatePasswordMsgNoUser = Muutetaanko olemassa oleva salasana?
+userSelectText2 = Valitse päivitettävä käyttäjätunnus:
+loginsDescriptionAll2=Seuraavien sivustojen kirjautumistiedot ovat tallennettuna tietokoneellesi
+
+# LOCALIZATION NOTE (useASecurelyGeneratedPassword):
+# Shown in the autocomplete popup to allow filling a generated password into a password field.
+useASecurelyGeneratedPassword=Käytä turvallisesti luotua salasanaa
+# LOCALIZATION NOTE (generatedPasswordWillBeSaved):
+# %S will contain the brandShorterName. This informs the user that the generated password will be automatically saved.
+generatedPasswordWillBeSaved=%S tallentaa tämän sivuston salasanan.
+# LOCALIZATION NOTE (loginHostAge):
+# This is used to show the context menu login items with their age.
+# 1st string is the username for the login, 2nd is the login's age.
+loginHostAge=%1$S (%2$S)
+# LOCALIZATION NOTE (noUsername):
+# String is used on the context menu when a login doesn't have a username.
+noUsername=Ei käyttäjätunnusta
+# LOCALIZATION NOTE (displaySameOrigin):
+# String is used on the autocomplete row when the login origin is a domain match with the document origin
+displaySameOrigin=Tältä verkkosivustolta
+
+# LOCALIZATION NOTE (insecureFieldWarningDescription2):
+# %1$S will contain insecureFieldWarningLearnMore and look like a link to indicate that clicking will open a tab with support information.
+insecureFieldWarningDescription2 = Yhteys ei ole suojattu. Tähän kirjoitettujen kirjautumistietojen turvallisuus voi vaarantua. %1$S
+insecureFieldWarningLearnMore = Lue lisää
+
+# LOCALIZATION NOTE (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= Näytä tallennetut kirjautumistiedot
+
+# LOCALIZATION NOTE (managePasswords.label):
+# This label is used in the footer of login autocomplete menus.
+managePasswords.label= Hallitse salasanoja
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/nsserrors.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/nsserrors.properties
new file mode 100644
index 0000000000..e03fb94c43
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/nsserrors.properties
@@ -0,0 +1,331 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+SSL_ERROR_EXPORT_ONLY_SERVER=Ei voida kommunikoida suojatusti. Toinen osapuoli ei tue korkeatasoista salausta.
+SSL_ERROR_US_ONLY_SERVER=Ei voida kommunikoida suojatusti. Toinen osapuoli vaatii korkeatasoista salaustyyppiä, jota ei tueta.
+SSL_ERROR_NO_CYPHER_OVERLAP=Ei voida kommunikoida suojatusti: ei yhteisiä salausalgoritmeja toisen osapuolen kanssa.
+SSL_ERROR_NO_CERTIFICATE=Todennukseen tarvittavaa varmennetta tai avainta ei löydetty.
+SSL_ERROR_BAD_CERTIFICATE=Ei voida kommunikoida suojatusti: toisen osapuolen varmenne hylättiin.
+SSL_ERROR_BAD_CLIENT=Palvelin sai virheellistä dataa asiakkaalta.
+SSL_ERROR_BAD_SERVER=Asiakas sai virheellistä dataa palvelimelta.
+SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE=Varmennetyyppi, jota ei tueta.
+SSL_ERROR_UNSUPPORTED_VERSION=Toinen osapuoli käyttää turvallisuuskäytännön versiota, jota ei tueta.
+SSL_ERROR_WRONG_CERTIFICATE=Asiakkaan todennus epäonnistui: tietokannassa oleva yksityinen avain ei sovi varmennetietokannan julkiseen avaimeen.
+SSL_ERROR_BAD_CERT_DOMAIN=Ei voida kommunikoida suojatusti: pyydetyn verkkoalueen nimi ei vastaa palvelimen varmennetta.
+SSL_ERROR_POST_WARNING=Tunnistamaton SSL-virhekoodi.
+SSL_ERROR_SSL2_DISABLED=Toinen osapuoli tukee vain SSL versio 2:a, jonka käyttö on paikallisesti estetty.
+SSL_ERROR_BAD_MAC_READ=SSL vastaanotti paketin, jolla oli väärä viestin todennuskoodi (MAC).
+SSL_ERROR_BAD_MAC_ALERT=SSL-yhteyden toinen osapuoli ilmoittaa väärästä viestin todennuskoodista (MAC).
+SSL_ERROR_BAD_CERT_ALERT=SSL-yhteyden toinen osapuoli ei voi tarkistaa varmennettasi.
+SSL_ERROR_REVOKED_CERT_ALERT=SSL-yhteyden toinen osapuoli hylkäsi varmenteesi mitätöitynä.
+SSL_ERROR_EXPIRED_CERT_ALERT=SSL-yhteyden toinen osapuoli hylkäsi varmenteesi vanhentuneena.
+SSL_ERROR_SSL_DISABLED=Ei voida muodostaa yhteyttä: SSL on otettu pois käytöstä.
+SSL_ERROR_FORTEZZA_PQG=Ei voida muodostaa yhteyttä: SSL-yhteyden toinen osapuoli kuuluu eri FORTEZZA-alueeseen.
+SSL_ERROR_UNKNOWN_CIPHER_SUITE=Pyydettiin tuntematonta SSL-salaajaa.
+SSL_ERROR_NO_CIPHERS_SUPPORTED=Yhtäkään salaajaa ei ole olemassa ja käytössä tässä ohjelmassa.
+SSL_ERROR_BAD_BLOCK_PADDING=SSL vastaanotti virheellisesti täytetyn paketin.
+SSL_ERROR_RX_RECORD_TOO_LONG=SSL vastaanotti suurimman sallitun pituuden ylittävän paketin.
+SSL_ERROR_TX_RECORD_TOO_LONG=SSL yritti lähettää pakettia, joka ylitti suurimman sallitun pituuden.
+SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=SSL vastaanotti virheellisesti muotoillun Hello-kättelyviestin.
+SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=SSL vastaanotti virheellisesti muotoillun Client Hello -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_SERVER_HELLO=SSL vastaanotti virheellisesti muotoillun Server Hello -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_CERTIFICATE=SSL vastaanotti virheellisesti muotoillun Certificate-kättelyviestin.
+SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=SSL vastaanotti virheellisesti muotoillun Server Key Exchange -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_CERT_REQUEST=SSL vastaanotti virheellisesti muotoillun Certificate Request -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_HELLO_DONE=SSL vastaanotti virheellisesti muotoillun Server Hello Done -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_CERT_VERIFY=SSL vastaanotti virheellisesti muotoillun Certificate Verify -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=SSL vastaanotti virheellisesti muotoillun Client Key Exchange -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_FINISHED=SSL vastaanotti virheellisesti muotoillun Finished-kättelyviestin.
+SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=SSL vastaanotti virheellisesti muotoillun Change Cipher Spec -paketin.
+SSL_ERROR_RX_MALFORMED_ALERT=SSL vastaanotti virheellisesti muotoillun Alert-paketin.
+SSL_ERROR_RX_MALFORMED_HANDSHAKE=SSL vastaanotti virheellisesti muotoillun Handshake-paketin.
+SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=SSL vastaanotti virheellisesti muotoillun Application Data -paketin.
+SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=SSL vastaanotti odottamattoman Hello Request -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=SSL vastaanotti odottamattoman Client Hello -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=SSL vastaanotti odottamattoman Server Hello -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=SSL vastaanotti odottamattoman Certificate-kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=SSL vastaanotti odottamattoman Server Key Exchange -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=SSL vastaanotti odottamattoman Certificate Request -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=SSL vastaanotti odottamattoman Server Hello Done -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=SSL vastaanotti odottamattoman Certificate Verify -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=SSL vastaanotti odottamattoman Client Key Exchange -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_FINISHED=SSL vastaanotti odottamattoman Finished-kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=SSL vastaanotti odottamattoman Change Cipher Spec -paketin.
+SSL_ERROR_RX_UNEXPECTED_ALERT=SSL vastaanotti odottamattoman Alert-paketin.
+SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=SSL vastaanotti odottamattoman Handshake-paketin.
+SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=SSL vastaanotti odottamattoman Application Data -paketin.
+SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=SSL vastaanotti paketin, jonka sisältötyyppi on tuntematon.
+SSL_ERROR_RX_UNKNOWN_HANDSHAKE=SSL vastaanotti kättelyviestin, jonka viestityyppi on tuntematon.
+SSL_ERROR_RX_UNKNOWN_ALERT=SSL vastaanotti alert-paketin, jonka hälytyskuvausta ei tunnistettu.
+SSL_ERROR_CLOSE_NOTIFY_ALERT=SSL-yhteyden toinen osapuoli päätti yhteyden.
+SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT=SSL-yhteyden toinen osapuoli ei odottanut vastaanottamaansa kättelyviestiä.
+SSL_ERROR_DECOMPRESSION_FAILURE_ALERT=SSL-yhteyden toinen osapuoli ei onnistunut purkamaan vastaanottamaansa SSL-pakettia.
+SSL_ERROR_HANDSHAKE_FAILURE_ALERT=SSL-yhteyden toinen osapuoli ei onnistunut neuvottelemaan hyväksyttäviä turvallisuusparametrejä.
+SSL_ERROR_ILLEGAL_PARAMETER_ALERT=SSL-yhteyden toinen osapuoli hylkäsi kättelyviestin sen sisällön vuoksi.
+SSL_ERROR_UNSUPPORTED_CERT_ALERT=SSL-yhteyden toinen osapuoli ei tue vastaanottamansa varmenteen tyyppisiä varmenteita.
+SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT=SSL-yhteyden toisella osapuolella oli jokin määrittelemätön ongelma vastaanottamansa varmenteen kanssa.
+SSL_ERROR_GENERATE_RANDOM_FAILURE=SSL:n satunnaislukugeneraattorissa tapahtui virhe.
+SSL_ERROR_SIGN_HASHES_FAILURE=Varmenteesi kelpuuttamiseen tarvittavan datan digitaalinen allekirjoitus ei onnistunut.
+SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL ei kyennyt hakemaan toisen osapuolen julkista avainta sen varmenteesta.
+SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Määrittelemätön virhe käsiteltäessä SSL:n Server Key Exchange -kättelyä.
+SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Määrittelemätön virhe käsiteltäessä SSL:n Client Key Exchange -kättelyä.
+SSL_ERROR_ENCRYPTION_FAILURE=Valitun salaajan datan salausalgoritmi kohtasi virheen.
+SSL_ERROR_DECRYPTION_FAILURE=Valitun salaajan datan salausalgoritmi kohtasi virheen.
+SSL_ERROR_SOCKET_WRITE_FAILURE=Yritys kirjoittaa salattua dataa edeltävään pistokkeeseen epäonnistui.
+SSL_ERROR_MD5_DIGEST_FAILURE=MD5 tiivistefunktio epäonnistui.
+SSL_ERROR_SHA_DIGEST_FAILURE=SHA-1 tiivistefunktio epäonnistui.
+SSL_ERROR_MAC_COMPUTATION_FAILURE=MAC:n laskenta epäonnistui.
+SSL_ERROR_SYM_KEY_CONTEXT_FAILURE=Symmetrisen avaimen kontekstin luonti epäonnistui.
+SSL_ERROR_SYM_KEY_UNWRAP_FAILURE=Symmetrisen avaimen purku Client Key Exchange -viestistä epäonnistui.
+SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED=SSL-palvelin yritti käyttää kotimaisen vahvuuden julkista avainta vientivahvuuden salaajan kanssa.
+SSL_ERROR_IV_PARAM_FAILURE=PKCS11-koodi ei onnistunut muuttamaan IV:sta param:ksi.
+SSL_ERROR_INIT_CIPHER_SUITE_FAILURE=Valitun salaajan alustus epäonnistui.
+SSL_ERROR_SESSION_KEY_GEN_FAILURE=Asiakas ei onnistunut luomaan istuntoavaimia SSL-istunnolle.
+SSL_ERROR_NO_SERVER_KEY_FOR_ALG=Palvelimella ei ole avainta yritetylle avaimenvaihtoalgoritmille.
+SSL_ERROR_TOKEN_INSERTION_REMOVAL=PKCS#11-poletti lisättiin tai poistettiin kesken toiminnon.
+SSL_ERROR_TOKEN_SLOT_NOT_FOUND=PKCS#11-polettia tarvittavan toiminnon tekemiseen ei löytynyt.
+SSL_ERROR_NO_COMPRESSION_OVERLAP=Ei voida kommunikoida suojatusti: ei yhteisiä pakkausalgoritmeja.
+SSL_ERROR_HANDSHAKE_NOT_COMPLETED=Ei voida aloittaa uutta SSL-kättelyä ennen kuin meneillään oleva kättely on suoritettu.
+SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Vastaanotettiin toiselta osapuolelta virheelliset kättelyjen tiivisteluvut.
+SSL_ERROR_CERT_KEA_MISMATCH=Annettua varmennetta ei voida käyttää valitun avaimenvaihtoalgoritmin kanssa.
+SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=Yksikään varmentaja ei ole luotettu SSL-asiakkaan todentaja.
+SSL_ERROR_SESSION_NOT_FOUND=Asiakkaan SSL-istunnon tunnusta ei löytynyt palvelimen istuntovälimuistista.
+SSL_ERROR_DECRYPTION_FAILED_ALERT=Toinen osapuoli ei onnistunut purkamaan SSL-pakettia, jonka se vastaanotti.
+SSL_ERROR_RECORD_OVERFLOW_ALERT=Toinen osapuoli vastaanotti SSL-paketin, joka oli sallittua pidempi.
+SSL_ERROR_UNKNOWN_CA_ALERT=Toinen osapuoli ei tunnista ja luota varmenteesi varmentajaan.
+SSL_ERROR_ACCESS_DENIED_ALERT=Toinen osapuoli vastaanotti kelvollisen varmenteen, mutta pääsy estettiin.
+SSL_ERROR_DECODE_ERROR_ALERT=Toinen osapuoli ei pystynyt purkamaan SSL-kättelyviestiä.
+SSL_ERROR_DECRYPT_ERROR_ALERT=Toinen osapuoli ilmoitti allekirjoituksen todennuksen tai avainvaihdon epäonnistuneen.
+SSL_ERROR_EXPORT_RESTRICTION_ALERT=Toinen osapuoli ilmoitti neuvottelun rikkovan vientisääntöjä.
+SSL_ERROR_PROTOCOL_VERSION_ALERT=Toinen osapuoli ilmoitti yhteyskäytäntöversion olevan epäyhteensopiva tai ei tuettu.
+SSL_ERROR_INSUFFICIENT_SECURITY_ALERT=Palvelin vaatii vahvempia salauksia kuin asiakkaan tukemat algoritmit.
+SSL_ERROR_INTERNAL_ERROR_ALERT=Toinen osapuoli ilmoitti kohdanneensa sisäisen virheen.
+SSL_ERROR_USER_CANCELED_ALERT=Toinen osapuoli peruutti kättelyn.
+SSL_ERROR_NO_RENEGOTIATION_ALERT=Toinen osapuoli ei salli SSL-turvaparametrien uudelleenneuvottelua.
+SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED=SSL-palvelinvälimuistia ei ole asetettu, eikä otettu pois käytöstä tälle pistokkeelle.
+SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT=SSL-osapuoli ei tue pyydettyä TLS hello-tarkenninta.
+SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT=SSL-osapuoli ei saanut varmennettasi annetusta osoitteesta.
+SSL_ERROR_UNRECOGNIZED_NAME_ALERT=SSL-osapuolella ei ole varmennetta pyydetylle DNS-nimelle.
+SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT=SSL-osapuolella ei saanut OCSP-vastausta varmenteelleen.
+SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT=SSL-osapuoli ilmoitti varmenteen tiivistearvon olevan virheellinen.
+SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET=SSL vastaanotti odottamattoman New Session Ticket -kättelyviestin.
+SSL_ERROR_RX_MALFORMED_NEW_SESSION_TICKET=SSL vastaanotti virheellisesti muotoillun New Session Ticket -kättelyviestin.
+SSL_ERROR_DECOMPRESSION_FAILURE=SSL vastaanotti tiivistetyn paketin, jota ei onnistuttu purkamaan.
+SSL_ERROR_RENEGOTIATION_NOT_ALLOWED=Uudelleenneuvottelu ei ole sallittu tässä SSL-pistokkeessa.
+SSL_ERROR_UNSAFE_NEGOTIATION=Toinen osapuoli yritti kätellä vanhanaikaisesti (mahdollisesti tietoturvariski).
+SSL_ERROR_RX_UNEXPECTED_UNCOMPRESSED_RECORD=SSL vastaanotti odottamattoman tiivistetyn paketin.
+SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY=SSL-vastaanotti heikon ephemeral Diffie-Hellman -avaimen palvelimen avaimensiirron kättelyviestissä.
+SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID=SSL-vastaanotti virheellisen NPN-laajennustiedon.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2=SSL-ominaisuutta ei tueta SSL 2.0 -yhteyksille.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SERVERS=SSL-ominaisuutta ei tueta palvelimelle.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_CLIENTS=SSL-ominaisuutta ei tueta asiakkaille.
+SSL_ERROR_INVALID_VERSION_RANGE=SSL-versiorajaus ei ole kelvollinen.
+SSL_ERROR_CIPHER_DISALLOWED_FOR_VERSION=SSL-osapuoli valitsi salakirjoitusperheen, joka ei ole sallittu yhteyskäytännön valitulla versiolla.
+SSL_ERROR_RX_MALFORMED_HELLO_VERIFY_REQUEST=SSL vastaanotti virheellisesti muotoillut "Hello Verify Request" -kättelyviestin.
+SSL_ERROR_RX_UNEXPECTED_HELLO_VERIFY_REQUEST=SSL vastaanotti odottamattoman "Hello Verify Request" -kättelyviestin.
+SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION=SSL ominaisuutta ei tueta yhteyskäytännön valitulla versiolla.
+SSL_ERROR_RX_UNEXPECTED_CERT_STATUS=SSL vastaanotti odottamattoman "Certificate Status" -kättelyviestin.
+SSL_ERROR_UNSUPPORTED_HASH_ALGORITHM=TLS-osapuoli käytti ei-tuettua tiivistealgoritmia.
+SSL_ERROR_DIGEST_FAILURE=Yhteenvetofunktio ei toiminut.
+SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM=Käytetty virheellistä allekirjoitusalgoritmia sähköisesti allekirjoitetussa elementissä.
+SSL_ERROR_NEXT_PROTOCOL_NO_CALLBACK=Seuraavan yhteyskäytännön kättelylaajennus otettiin käyttöön, mutta kutsu peruttiin ennen kuin laajennusta käytettiin.
+SSL_ERROR_NEXT_PROTOCOL_NO_PROTOCOL=Palvelin ei tue yhtäkään yhteyskäytäntöä, jota asiakas tukee ALPN-laajennuksessa.
+SSL_ERROR_INAPPROPRIATE_FALLBACK_ALERT=Palvelin hylkäsi kättelyn, koska asiakas siirtyi heikompaan TLS-salaukseen kuin palvelin tukee.
+SSL_ERROR_WEAK_SERVER_CERT_KEY=Palvelinvarmenne sisälsi julkisen avaimen, joka oli liian heikko.
+SSL_ERROR_RX_SHORT_DTLS_READ=DTLS-tietueelle ei ole riittävästi tilaa puskurissa.
+SSL_ERROR_NO_SUPPORTED_SIGNATURE_ALGORITHM=Mitään tuettua TLS-allekirjoitusalgoritmia ei ollut määritetty.
+SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM=Osapuoli käytti ei-tuettua allekirjoitus- ja tiivistealgoritmin yhdistelmää.
+SSL_ERROR_MISSING_EXTENDED_MASTER_SECRET=Osapuoli yritti jatkaa ilman oikeaa extended_master_secret-laajennusta.
+SSL_ERROR_UNEXPECTED_EXTENDED_MASTER_SECRET=Osapuoli yritti jatkaa odottamattoman extended_master_secret-laajennuksen kanssa.
+SEC_ERROR_IO=Tietoturvatodennuksen aikana tapahtui I/O-virhe.
+SEC_ERROR_LIBRARY_FAILURE=tietoturvakirjaston virhe.
+SEC_ERROR_BAD_DATA=tietoturvakirjasto: vastaanotettiin virheellistä dataa.
+SEC_ERROR_OUTPUT_LEN=tietoturvakirjasto: tulosteen pituuden virhe.
+SEC_ERROR_INPUT_LEN=tietoturvakirjastolle tapahtui syötepituusvirhe.
+SEC_ERROR_INVALID_ARGS=tietoturvakirjasto: virheellinen valinta.
+SEC_ERROR_INVALID_ALGORITHM=tietoturvakirjasto: virheellinen algoritmi.
+SEC_ERROR_INVALID_AVA=tietoturvakirjasto: virheellinen AVA.
+SEC_ERROR_INVALID_TIME=Virheellisesti muotoiltu aikamerkkijono.
+SEC_ERROR_BAD_DER=tietoturvakirjasto: virheellisesti muotoiltu DER-salattu viesti.
+SEC_ERROR_BAD_SIGNATURE=Toisen osapuolen varmenteen allekirjoitus ei ole kelvollinen.
+SEC_ERROR_EXPIRED_CERTIFICATE=Toisen osapuolen varmenne on vanhentunut.
+SEC_ERROR_REVOKED_CERTIFICATE=Toisen osapuolen varmenne on mitätöity.
+SEC_ERROR_UNKNOWN_ISSUER=Toisen osapuolen varmenteen myöntäjää ei tunnistettu.
+SEC_ERROR_BAD_KEY=Toisen osapuolen julkinen avain on virheellinen.
+SEC_ERROR_BAD_PASSWORD=Annettu tietoturvasalasana on väärä.
+SEC_ERROR_RETRY_PASSWORD=Uusi salasana annettu virheellisesti. Yritä uudestaan.
+SEC_ERROR_NO_NODELOCK=tietoturvakirjasto: ei solmulukkoa.
+SEC_ERROR_BAD_DATABASE=tietoturvakirjasto: virheellinen tietokanta.
+SEC_ERROR_NO_MEMORY=tietoturvakirjasto: muistin osoitus epäonnistui.
+SEC_ERROR_UNTRUSTED_ISSUER=Käyttäjä on merkinnyt toisen osapuolen varmenteen myöntäjän ei luotetuksi.
+SEC_ERROR_UNTRUSTED_CERT=Käyttäjä on merkinnyt toisen osapuolen varmenteen ei luotetuksi.
+SEC_ERROR_DUPLICATE_CERT=Varmenne on jo tietokannassa.
+SEC_ERROR_DUPLICATE_CERT_NAME=Ladatun varmenteen nimi on sama kuin jo tietokannassa olevan varmenteen.
+SEC_ERROR_ADDING_CERT=Virhe lisättäessä varmennetta tietokantaan.
+SEC_ERROR_FILING_KEY=Virhe arkistoitaessa uudelleen tämän varmenteen avainta.
+SEC_ERROR_NO_KEY=Tämän varmenteen salaista avainta ei löydy avaintietokannasta
+SEC_ERROR_CERT_VALID=Varmenne on kelvollinen.
+SEC_ERROR_CERT_NOT_VALID=Varmenne ei ole kelvollinen.
+SEC_ERROR_CERT_NO_RESPONSE=Varmennekirjasto: ei vastausta
+SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=Varmenteen myöntäjän varmenne on vanhentunut. Tarkista järjestelmän kellonaika ja päivämäärä.
+SEC_ERROR_CRL_EXPIRED=Varmenteen myöntäjän sulkulista on vanhentunut. Päivitä sulkulista tai tarkista järjestelmän kellonaika ja päivämäärä.
+SEC_ERROR_CRL_BAD_SIGNATURE=Varmenteen myöntäjä sulkulistan allekirjoitus on virheellinen.
+SEC_ERROR_CRL_INVALID=Uusi sulkulista on virheellisesti muotoiltu.
+SEC_ERROR_EXTENSION_VALUE_INVALID=Varmenteen tarkenteen arvo on virheellinen.
+SEC_ERROR_EXTENSION_NOT_FOUND=Varmenteen tarkennetta ei löytynyt.
+SEC_ERROR_CA_CERT_INVALID=Myöntäjän varmenne on virheellinen.
+SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID=Varmenteen polunpituusrajoitus on virheellinen.
+SEC_ERROR_CERT_USAGES_INVALID=Varmenteen käyttökentät ovat virheellisiä.
+SEC_INTERNAL_ONLY=**Ainoastaan sisäinen moduuli**
+SEC_ERROR_INVALID_KEY=Avain ei tue pyydettyä toimintoa.
+SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION=Varmenne sisältää tuntemattoman, kriittisen tarkentimen.
+SEC_ERROR_OLD_CRL=Uusi sulkulista ei ole nykyistä myöhäisempi.
+SEC_ERROR_NO_EMAIL_CERT=Ei salattu tai allekirjoitettu: sinulla ei vielä ole sähköpostivarmennetta.
+SEC_ERROR_NO_RECIPIENT_CERTS_QUERY=Ei salattu: sinulla ei ole jokaisen vastaanottajan varmennetta.
+SEC_ERROR_NOT_A_RECIPIENT=Ei voida purkaa: et ole vastaanottaja, tai vastaavaa varmennetta tai salaista avainta ei löytynyt.
+SEC_ERROR_PKCS7_KEYALG_MISMATCH=Ei voida purkaa: avaimen salausalgoritmi ei vastaa varmennettasi.
+SEC_ERROR_PKCS7_BAD_SIGNATURE=Allekirjoituksen todennus epäonnistui: allekirjoittajaa ei löytynyt, allekirjoittajia löytyi liian monta, tai data oli virheellistä tai vioittunutta.
+SEC_ERROR_UNSUPPORTED_KEYALG=Ei tuettu tai tuntematon avainalgoritmi.
+SEC_ERROR_DECRYPTION_DISALLOWED=Ei voida purkaa: salaus on tehty kielletyllä algoritmilla tai avainkoolla.
+XP_SEC_FORTEZZA_BAD_CARD=Fortezza-korttia ei ole asianmukaisesti alustettu. Poista kortti ja palauta se sen myöntäjälle.
+XP_SEC_FORTEZZA_NO_CARD=Fortezza-kortteja ei löytynyt
+XP_SEC_FORTEZZA_NONE_SELECTED=Fortezza-korttia ei ole valittu
+XP_SEC_FORTEZZA_MORE_INFO=Valitse henkilöllisyys, josta näytetään lisätietoja
+XP_SEC_FORTEZZA_PERSON_NOT_FOUND=Henkilöllisyyttä ei löytynyt
+XP_SEC_FORTEZZA_NO_MORE_INFO=Ei lisätietoja valitusta henkilöllisyydestä
+XP_SEC_FORTEZZA_BAD_PIN=Virheellinen pin-koodi
+XP_SEC_FORTEZZA_PERSON_ERROR=Ei voitu alustaa Fortezza-henkilöllisyyksiä.
+SEC_ERROR_NO_KRL=Sivuston varmenteelle ei löytynyt KRL:ää.
+SEC_ERROR_KRL_EXPIRED=Sivuston varmenteen KRL on vanhentunut.
+SEC_ERROR_KRL_BAD_SIGNATURE=Sivuston varmenteen KRL:n allekirjoitus on virheellinen.
+SEC_ERROR_REVOKED_KEY=Sivuston varmenteen avain on mitätöity.
+SEC_ERROR_KRL_INVALID=Uusi KRL on virheellisesti muotoiltu.
+SEC_ERROR_NEED_RANDOM=tietoturvakirjasto: tarvitaan satunnaisdataa.
+SEC_ERROR_NO_MODULE=tietoturvakirjasto: yksikään tietoturvamoduuli ei voi suorittaa pyydettyä toimintoa.
+SEC_ERROR_NO_TOKEN=Tietoturvakorttia tai -polettia ei ole olemassa, täytyy alustaa tai on poistettu.
+SEC_ERROR_READ_ONLY=tietoturvakirjasto: tietokanta, johon on vain lukuoikeus.
+SEC_ERROR_NO_SLOT_SELECTED=Yhtäkään paikkaa tai polettia ei ole valittu.
+SEC_ERROR_CERT_NICKNAME_COLLISION=Varmenne, jolla on sama kutsumanimi on jo olemassa.
+SEC_ERROR_KEY_NICKNAME_COLLISION=Avain, jolla on sama kutsumanimi on jo olemassa.
+SEC_ERROR_SAFE_NOT_CREATED=virhe luotaessa turvallista oliota
+SEC_ERROR_BAGGAGE_NOT_CREATED=virhe luotaessa laukkuoliota
+XP_JAVA_REMOVE_PRINCIPAL_ERROR=Ei voitu poistaa päämiestä
+XP_JAVA_DELETE_PRIVILEGE_ERROR=Ei voitu poistaa oikeutta
+XP_JAVA_CERT_NOT_EXISTS_ERROR=Tällä päämiehellä ei ole varmennetta
+SEC_ERROR_BAD_EXPORT_ALGORITHM=Vaadittu algoritmi ei ole sallittu.
+SEC_ERROR_EXPORTING_CERTIFICATES=Virhe yritettäessä viedä varmenteita.
+SEC_ERROR_IMPORTING_CERTIFICATES=Virhe yritettäessä tuoda varmenteita.
+SEC_ERROR_PKCS12_DECODING_PFX=Ei voida tuoda. Salauksen purkuvirhe. Tiedosto ei kelvollinen.
+SEC_ERROR_PKCS12_INVALID_MAC=Ei voida tuoda. Virheellinen MAC. Virheellinen salasana tai vioittunut tiedosto.
+SEC_ERROR_PKCS12_UNSUPPORTED_MAC_ALGORITHM=Ei voida tuoda. MAC-algoritmia ei tueta.
+SEC_ERROR_PKCS12_UNSUPPORTED_TRANSPORT_MODE=Ei voida tuoda. Tuetaan vain salasanan oikeellisuus- ja tietosuojatiloja.
+SEC_ERROR_PKCS12_CORRUPT_PFX_STRUCTURE=Ei voida tuoda. Tiedostorakenne on vioittunut.
+SEC_ERROR_PKCS12_UNSUPPORTED_PBE_ALGORITHM=Ei voida tuoda. Salausalgoritmia ei tueta.
+SEC_ERROR_PKCS12_UNSUPPORTED_VERSION=Ei voida tuoda. Tiedostoversiota ei tueta.
+SEC_ERROR_PKCS12_PRIVACY_PASSWORD_INCORRECT=Ei voida tuoda. Väärä tietosuojasalasana.
+SEC_ERROR_PKCS12_CERT_COLLISION=Ei voida tuoda. Sama kutsumanimi on jo käytössä tietokannassa.
+SEC_ERROR_USER_CANCELLED=Käyttäjä peruutti.
+SEC_ERROR_PKCS12_DUPLICATE_DATA=Ei tuotu, jo tietokannassa.
+SEC_ERROR_MESSAGE_SEND_ABORTED=Viestiä ei lähetetty.
+SEC_ERROR_INADEQUATE_KEY_USAGE=Varmenneavaimen käyttö riittämätöntä yritetylle toiminnolle.
+SEC_ERROR_INADEQUATE_CERT_TYPE=Varmennetyyppi ei ole hyväksytty ohjelmalle.
+SEC_ERROR_CERT_ADDR_MISMATCH=Allekirjoitusvarmenteen osoite ei vastaa viestiotsakkeissa olevaa osoitetta.
+SEC_ERROR_PKCS12_UNABLE_TO_IMPORT_KEY=Ei voida tuoda. Virhe yritettäessä tuoda salaista avainta.
+SEC_ERROR_PKCS12_IMPORTING_CERT_CHAIN=Ei voida tuoda. Virhe yritettäessä tuoda varmenneketjua.
+SEC_ERROR_PKCS12_UNABLE_TO_LOCATE_OBJECT_BY_NAME=Ei voida viedä. Avainta tai varmennetta ei löytynyt kutsumanimen perusteella.
+SEC_ERROR_PKCS12_UNABLE_TO_EXPORT_KEY=Ei voida viedä. Salaista avainta ei löytynyt, eikä sitä voida viedä.
+SEC_ERROR_PKCS12_UNABLE_TO_WRITE=Ei voida viedä. Vietävään tiedostoon ei voida kirjoittaa.
+SEC_ERROR_PKCS12_UNABLE_TO_READ=Ei voida tuoda. Tuotavaa tiedostoa ei voida lukea.
+SEC_ERROR_PKCS12_KEY_DATABASE_NOT_INITIALIZED=Ei voida viedä. Avaintietokanta on vioittunut tai poistettu.
+SEC_ERROR_KEYGEN_FAIL=Ei voitu luoda julkisen ja salaisen avaimen paria.
+SEC_ERROR_INVALID_PASSWORD=Annettu salasana on virheellinen. Valitse toinen salasana.
+SEC_ERROR_RETRY_OLD_PASSWORD=Vanha salasana annettiin virheellisesti. Yritä uudestaan.
+SEC_ERROR_BAD_NICKNAME=Varmenteen kutsumanimi jo käytössä.
+SEC_ERROR_NOT_FORTEZZA_ISSUER=Toisella FORTEZZA-ketjulla on ei-FORTEZZA varmenne.
+SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY=Arkaluontoista avainta ei voida siirtää paikkaan, jossa sitä tarvitaan.
+SEC_ERROR_JS_INVALID_MODULE_NAME=Virheellinen moduulin nimi.
+SEC_ERROR_JS_INVALID_DLL=Virheellinen moduulin polku tai tiedostonimi
+SEC_ERROR_JS_ADD_MOD_FAILURE=Ei voida lisätä moduulia
+SEC_ERROR_JS_DEL_MOD_FAILURE=Ei voida poistaa moduulia
+SEC_ERROR_OLD_KRL=Uusi KRL ei ole nykyistä myöhäisempi.
+SEC_ERROR_CKL_CONFLICT=Uudella CKL:lla on eri myöntäjä kuin nykyisellä CKL:lla. Poista nykyinen CKL.
+SEC_ERROR_CERT_NOT_IN_NAME_SPACE=Tämän varmenteen varmentajalla ei ole lupaa myöntää tämän nimistä varmennetta.
+SEC_ERROR_KRL_NOT_YET_VALID=Tämän varmenteen avaimen mitätöinti- tai sulkulista ei ole vielä voimassa.
+SEC_ERROR_CRL_NOT_YET_VALID=Tämän varmenteen sulkulista ei ole vielä voimassa.
+SEC_ERROR_UNKNOWN_CERT=Pyydettyä varmennetta ei löytynyt.
+SEC_ERROR_UNKNOWN_SIGNER=Allekirjoittajan varmennetta ei löytynyt.
+SEC_ERROR_CERT_BAD_ACCESS_LOCATION=Varmenteen tilapalvelimen osoite on virheellisesti muotoiltu.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE=OCSP-palvelimen vastausta ei ymmärretty kokonaisuudessaan. Se on tuntematonta tyyppiä.
+SEC_ERROR_OCSP_BAD_HTTP_RESPONSE=OCSP-palvelimen vastaus oli odottamatonta tai virheellistä HTTP-dataa.
+SEC_ERROR_OCSP_MALFORMED_REQUEST=OCSP-palvelimen mukaan pyyntö oli vioittunut tai virheellisesti muotoiltu.
+SEC_ERROR_OCSP_SERVER_ERROR=OCSP-palvelimelle tapahtui sisäinen virhe.
+SEC_ERROR_OCSP_TRY_SERVER_LATER=OCSP-palvelin ehdottaa yrittämään myöhemmin uudestaan.
+SEC_ERROR_OCSP_REQUEST_NEEDS_SIG=OCSP-palvelin vaatii allekirjoituksen pyyntöön.
+SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST=OCSP-palvelin hylkäsi pyynnön luvan puuttumisen takia.
+SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS=OCSP-palvelin vastasi tuntemattomalla tilalla.
+SEC_ERROR_OCSP_UNKNOWN_CERT=OCSP-palvelimella ei ole tämän varmenteen tilaa.
+SEC_ERROR_OCSP_NOT_ENABLED=OCSP täytyy ottaa käyttöön ennen tätä toimintoa.
+SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=Ennen toiminnon käyttämistä tulee asettaa oletus OCSP-vastaaja.
+SEC_ERROR_OCSP_MALFORMED_RESPONSE=OCSP-palvelimen vastaus oli vioittunut tai virheellisesti muotoiltu.
+SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE=OCSP-vastauksen allekirjoittajalla ei ole lupaa kertoa varmenteen tilaa.
+SEC_ERROR_OCSP_FUTURE_RESPONSE=OCSP-vastaus ei ole vielä kelvollinen (vastauksen päivämäärä on tulevaisuudessa).
+SEC_ERROR_OCSP_OLD_RESPONSE=OCSP-vastaus sisältää vanhentunutta tietoa.
+SEC_ERROR_DIGEST_NOT_FOUND=CMS tai PKCS #7 -tiivistettä ei löytynyt allekirjoitetusta viestistä.
+SEC_ERROR_UNSUPPORTED_MESSAGE_TYPE=CMS tai PKCS #7 -viestityyppiä ei tueta.
+SEC_ERROR_MODULE_STUCK=PKCS #11 -moduulia ei voitu poistaa, koska se on edelleen käytössä.
+SEC_ERROR_BAD_TEMPLATE=Ei voitu purkaa ASN.1-dataa. Määritelty pohja oli virheellinen.
+SEC_ERROR_CRL_NOT_FOUND=Vastaavaa sulkulistaa ei löytynyt.
+SEC_ERROR_REUSED_ISSUER_AND_SERIAL=Olet tuomassa varmennetta, jonka myöntäjä tai sarjanumero on sama kuin olemassa olevalla varmenteella, mutta tuotava varmenne on kuitenkiin uusi varmenne.
+SEC_ERROR_BUSY=NSS ei voinut sulkeutua. Objektit ovat edelleen käytössä.
+SEC_ERROR_EXTRA_INPUT=DER-salattu viesti sisältää ylimääräistä käyttämätöntä dataa.
+SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Ei tuettu elliptinen käyrä.
+SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Ei tuettu elliptinen käyräpistemuoto.
+SEC_ERROR_UNRECOGNIZED_OID=Ei tunnistettu objektin tunniste.
+SEC_ERROR_OCSP_INVALID_SIGNING_CERT=Virheellinen OCSP-allekirjoitusvarmenne OCSP-vastauksessa.
+SEC_ERROR_REVOKED_CERTIFICATE_CRL=Varmenne on mitätöity varmenteen myöntäjän sulkulistalla.
+SEC_ERROR_REVOKED_CERTIFICATE_OCSP=Varmenteen myöntäjän OCSP-vastaaja ilmoittaa, että varmenne on mitätöity.
+SEC_ERROR_CRL_INVALID_VERSION=Varmenteen myöntäjän sulkulistan versionumero on tuntematon.
+SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=Varmenteen myöntäjän V1 sulkulistalla on kriittinen tarkenne.
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=Varmenteen myöntäjän V2 sulkulistalla on tuntematon kriittinen tarkenne.
+SEC_ERROR_UNKNOWN_OBJECT_TYPE=Tuntematon objektityyppi annettiin.
+SEC_ERROR_INCOMPATIBLE_PKCS11=PKCS #11 -ajuri on määritelmän vastainen epäyhteensopivalla tavalla.
+SEC_ERROR_NO_EVENT=Yksikään uusi paikkatapahtuma ei ole mahdollinen tällä hetkellä.
+SEC_ERROR_CRL_ALREADY_EXISTS=Sulkulista on jo olemassa.
+SEC_ERROR_NOT_INITIALIZED=NSS ei ole alustettu.
+SEC_ERROR_TOKEN_NOT_LOGGED_IN=Toiminto epäonnistui, koska PKCS#11-poletti ei ole kirjautunut sisään.
+SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=Määritellyn OCSP-palvelimen varmenne on virheellinen.
+SEC_ERROR_OCSP_BAD_SIGNATURE=OCSP-vastauksen allekirjoitus on virheellinen.
+SEC_ERROR_OUT_OF_SEARCH_LIMITS=Varmenteen todentamisen etsiminen ei ole mahdollista
+SEC_ERROR_INVALID_POLICY_MAPPING=Käytäntörajaus sisältää anypolicy:n
+SEC_ERROR_POLICY_VALIDATION_FAILED=Varmenneketju ei läpäise käytännön todennusta
+SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE=Tuntematon sijaintityyppi varmenteen AIA-laajennuksessa
+SEC_ERROR_BAD_HTTP_RESPONSE=Palvelin lähetti virheellisen HTTP-vastauksen
+SEC_ERROR_BAD_LDAP_RESPONSE=Palvelin lähetti virheellisen LDAP-vastauksen
+SEC_ERROR_FAILED_TO_ENCODE_DATA=Datan salaus ASN1-salaajalla ei onnistunut
+SEC_ERROR_BAD_INFO_ACCESS_LOCATION=Virheellinen tiedonsaantiosoite varmenteen laajennuksessa
+SEC_ERROR_LIBPKIX_INTERNAL=Libpkix:n sisäinen virhe varmennetta todennettaessa.
+SEC_ERROR_PKCS11_GENERAL_ERROR=PKCS #11 -moduuli palautti CKR_GENERAL_ERROR -viestin merkkinä tapahtuneesta virheestä, josta ei voida toipua.
+SEC_ERROR_PKCS11_FUNCTION_FAILED=PKCS #11 -moduuli palautti CKR_FUNCTION_FAILED -viestin merkkinä siitä, että pyydettyä toimintoa ei voitu suorittaa. Saman toiminnon yrittäminen uudestaan saattaa onnistua.
+SEC_ERROR_PKCS11_DEVICE_ERROR=PKCS #11 -moduuli palautti CKR_DEVICE_ERROR -viestin merkkinä tapahtuneesta virheestä vuoromerkissä tai paikassa.
+SEC_ERROR_BAD_INFO_ACCESS_METHOD=Tuntematon tiedonsaantitapa varmenteen laajennuksessa.
+SEC_ERROR_CRL_IMPORT_FAILED=Virhe yritettäessä tuoda sulkulistaa.
+SEC_ERROR_EXPIRED_PASSWORD=Salasana on vanhentunut.
+SEC_ERROR_LOCKED_PASSWORD=Salasana on lukittu.
+SEC_ERROR_UNKNOWN_PKCS11_ERROR=Tuntematon PKCS #11 -virhe.
+SEC_ERROR_BAD_CRL_DP_URL=Virheellinen tai ei tuettu osoite CRL-jakelupisteen nimessä.
+SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED=Varmenne oli allekirjoitettu allekirjoitusalgoritmilla, joka on poistettu käytöstä, koska se ei ole turvallinen.
+MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE=Palvelin käyttää avaimen lukkolistaa (HPKP), mutta yhtäkään luotettua ja lukkolistan mukaista varmenneketjua ei voitu luoda. Lukkolistarikkeitä ei voida ohittaa.
+MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY=Palvelin käyttää tavallista rajoitelaajennusvarmennetta, joka tunnistaa sen varmentajaksi. Asianmukaisella varmenteella näin ei pitäisi olla.
+MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE=Palvelimen tarjoaman varmenteen avaimen koko on liian pieni suojatun yhteyden luomiseksi.
+MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA=X.509 versio 1 -varmenne, joka ei ole luotettu ankkuri, käytettiin palvelimen varmenteen allekirjoittamiseen. X.509 versio 1 -varmenteet ovat vanhentuneita, eikä niitä pitäisi käyttää muiden varmenteiden allekirjoittamiseen.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=Palvelimen lähettämä varmenne ei ole vielä voimassa.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=Palvelimen varmenne on myönnetty varmenteella, joka ei ole vielä voimassa.
+MOZILLA_PKIX_ERROR_SIGNATURE_ALGORITHM_MISMATCH=Varmenteen allekirjoituskentässä käytetty allekirjoitusalgoritmi ei vastaa signatureAlgorithm-kentässä määriteltyä algoritmia.
+MOZILLA_PKIX_ERROR_OCSP_RESPONSE_FOR_CERT_MISSING=OCSP-vastaus ei sisällä todennettavan varmenteen tilaa.
+MOZILLA_PKIX_ERROR_VALIDITY_TOO_LONG=Palvelimen antama varmenne on kelvollinen liian pitkään.
+MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING=Vaadittu TLS-ominaisuus puuttuu.
+MOZILLA_PKIX_ERROR_INVALID_INTEGER_ENCODING=Palvelin tarjosi varmenteen, joka sisältää väärin koodatun kokonaisluvun. Yleisiä syitä tälle ovat muiden muassa negatiiviset sarjanumerot, negatiiviset RSA-moduulit ja tarpeettoman pitkät koodaukset.
+MOZILLA_PKIX_ERROR_EMPTY_ISSUER_NAME=Palvelin tarjosi varmenteen, jonka myöntäjän luokiteltu nimi (DN) on tyhjä.
+MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED=Varmenteen lisäkäytäntörajoite ei täyttynyt todennettaessa varmennetta.
+MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT=Varmenteeseen ei luoteta, koska se on allekirjoitettu itsellään.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/pipnss.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/pipnss.properties
new file mode 100644
index 0000000000..c30641cdd6
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/pipnss/pipnss.properties
@@ -0,0 +1,136 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+CertPasswordPrompt=Kirjoita salasana PKCS#11-poletille %S.
+
+CertPasswordPromptDefault=Kirjoita pääsalasana.
+
+# The following strings have special requirements: they must fit in a 32 or 64
+# bytes buffer after being encoded to UTF-8.
+#
+# It's possible to verify the length of a translation using the Browser Console
+# in Firefox and evaluating the following code:
+#
+# (new TextEncoder('utf-8').encode('YOURSTRING')).length
+#
+# Simply replace YOURSTRING with your translation.
+#
+# If it's not possible to produce an understandable translation within these
+# limits, keeping the English text is an acceptable workaround.
+
+# The following strings have special requirements: they must fit in a 32 or 64
+# bytes buffer after being encoded to UTF-8.
+#
+# It's possible to verify the length of a translation using the Browser Console
+# in Firefox and evaluating the following code:
+#
+# (new TextEncoder().encode('YOURSTRING')).length
+#
+# Simply replace YOURSTRING with your translation.
+#
+# If it's not possible to produce an understandable translation within these
+# limits, keeping the English text is an acceptable workaround.
+
+# LOCALIZATION NOTE (RootCertModuleName): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+RootCertModuleName=Sisäänrakennettu juurimoduuli
+# LOCALIZATION NOTE (ManufacturerID): string limit is 32 bytes after conversion
+# to UTF-8.
+# length_limit = 32 bytes
+ManufacturerID=Mozilla.org
+# LOCALIZATION NOTE (LibraryDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+LibraryDescription=PSM:n sis. salakirjoituspalvelut
+# LOCALIZATION NOTE (TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+TokenDescription=Yleiset salakirjoituspalvelut
+# LOCALIZATION NOTE (PrivateTokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+PrivateTokenDescription=Ohjelmistoturvalaite
+# LOCALIZATION NOTE (SlotDescription): string limit is 64 bytes after conversion
+# to UTF-8.
+# length_limit = 64 bytes
+SlotDescription=PSM:n sisäiset salakirjoituspalvelut
+# LOCALIZATION NOTE (PrivateSlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+PrivateSlotDescription=PSM:n salaiset avaimet
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+Fips140TokenDescription=Ohjelmistoturvalaite (FIPS)
+# LOCALIZATION NOTE (Fips140SlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+Fips140SlotDescription=FIPS 140 -salakirjoitus-, avain ja varmennuspalvelu
+
+# LOCALIZATION NOTE (nick_template): $1s is the common name from a cert (e.g. "Mozilla"), $2s is the CA name (e.g. VeriSign)
+nick_template=%1$s:n %2$s-tunniste
+
+CertDumpKUSign=Allekirjoitus
+CertDumpKUNonRep=Kiistämättömyys
+CertDumpKUEnc=Avaimen salakirjoitus
+CertDumpKUDEnc=Tiedon salakirjoitus
+CertDumpKUKA=Avaimen sopimus
+CertDumpKUCertSign=Varmenteen allekirjoittaja
+CertDumpKUCRLSigner=Sulkulistan allekirjoittaja
+
+PSMERR_SSL_Disabled=Suojatun yhteyden muodostaminen ei onnistu, koska SSL-yhteiskäytäntö on otettu pois käytöstä.
+PSMERR_SSL2_Disabled=Suojatun yhteyden muodostaminen ei onnistu, koska sivusto käyttää vanhempaa, heikkoa versiota SSL-yhteiskäytännöstä.
+PSMERR_HostReusedIssuerSerial=Vastaanotettiin epäkäypä varmenne. Ota yhteys palvelimen ylläpitoon ja välitä heille seuraava virheilmoitus:\n\nYour certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
+
+# LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
+SSLConnectionErrorPrefix2=Tapahtui virhe oltaessa yhteydessä osoitteeseen %1$S. %2$S\n
+
+certErrorIntro=Sivuston %S tietoturvavarmenne ei ole kelvollinen.
+
+certErrorTrust_SelfSigned=Varmenteeseen ei luoteta, koska se on allekirjoitettu itsellään.
+certErrorTrust_UnknownIssuer=Varmenteeseen ei luoteta, koska sen myöntäjän varmenne on tuntematon.
+certErrorTrust_UnknownIssuer2=Palvelin ei mahdollisesti lähetä kaikkia asianmukaisia välivaiheen varmenteita.
+certErrorTrust_UnknownIssuer3=Voi olla, että täytyy tuoda uusi juurivarmenne.
+certErrorTrust_CaInvalid=Varmenteeseen ei luoteta, koska sen varmentajan varmenne ei ole kelvollinen.
+certErrorTrust_Issuer=Varmenteeseen ei luoteta, koska sen myöntäjän varmenteeseen ei luoteta.
+certErrorTrust_SignatureAlgorithmDisabled=Varmenteeseen ei luoteta, koska se on allekirjoitettu allekirjoitusalgoritmilla, joka ei ole turvallinen.
+certErrorTrust_ExpiredIssuer=Varmenteeseen ei luoteta, koska sen myöntäjän varmenne on vanhentunut.
+certErrorTrust_Untrusted=Varmenteen lähde ei ole luotettu.
+certErrorTrust_MitM=Yhteytesi kulkee TLS-välityspalvelimen kautta. Poista sen asennus mikäli mahdollista, tai määritä laitteesi luottamaan sen juurivarmenteeseen.
+
+certErrorMismatch=Varmenne ei ole kelvollinen palvelimelle %S.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchSinglePrefix=Varmenne on kelvollinen vain kohteelle %S.
+certErrorMismatchMultiple=Varmenne on kelvollinen vain palvelimille:
+
+# LOCALIZATION NOTE (certErrorExpiredNow): Do not translate %1$S (date+time of expired certificate) or %2$S (current date+time)
+certErrorExpiredNow=Varmenne on vanhentunut %1$S. Päiväys ja aika nyt on %2$S.
+
+# LOCALIZATION NOTE (certErrorNotYetValidNow): Do not translate %1$S (date+time certificate will become valid) or %2$S (current date+time)
+certErrorNotYetValidNow=Varmenne tulee voimaan vasta %1$S. Päiväys ja aika nyt on %2$S.
+
+certErrorMitM=Sivustot todistavat identiteettinsä varmenteella, ja varmenteen myöntää varmentaja.
+# LOCALIZATION NOTE (certErrorMitM2): %S is brandShortName
+certErrorMitM2=%Sin tukena on voittoa tavoittelemattoman Mozilla, joka hallinnoi täysin avointa varmentajien (CA) säilöä. Varmentajasäilö auttaa varmistamaan, että varmentajat noudattavat käyttäjien tietoturvaan liittyviä hyviä käytäntöjä.
+# LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
+certErrorMitM3=%S käyttää Mozillan varmentajasäilöä varmentamaan yhteyden turvallisuuden, käyttöjärjestelmään asennettujen varmenteiden sijasta. Siispä jos virustorjuntaohjelma tai verkko kaappaa yhteyden käyttäen varmennetta, jonka varmentaja ei ole Mozillan varmentajasäilössä, yhteyttä pidetään epäturvallisena.
+
+certErrorSymantecDistrustAdministrator=Voit ilmoittaa tästä ongelmasta sivuston ylläpitäjälle.
+
+# LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
+certErrorCodePrefix3=Virhekoodi: %S
+
+P12DefaultNickname=Tuotu varmenne
+CertUnknown=Tuntematon
+CertNoEmailAddress=(ei sähköpostiosoitetta)
+CaCertExists=Varmenne on jo asennettu varmentajana.
+NotACACert=Varmenne ei ole varmentajan varmenne, jonka vuoksi sitä ei voi lisätä varmentajien listalle.
+UserCertIgnoredNoPrivateKey=Henkilökohtaista varmennetta ei voida asentaa, koska et omista varmennetta luodessa tehtyä ja siihen kuuluvaa salaista avainta.
+UserCertImported=Henkilökohtainen varmenteesi on asennettu. On hyvä idea säilyttää varmuuskopiota varmenteesta.
+CertOrgUnknown=(Tuntematon)
+CertNotStored=(Ei tallennettu)
+CertExceptionPermanent=Pysyvä
+CertExceptionTemporary=Väliaikainen
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/pippki/pippki.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/pippki/pippki.properties
new file mode 100644
index 0000000000..4755ed66c8
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/pippki/pippki.properties
@@ -0,0 +1,75 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Download Cert dialog
+# LOCALIZATION NOTE(newCAMessage1):
+# %S is a string representative of the certificate being downloaded/imported.
+newCAMessage1=Varmentajaan %S luotetaan seuraavissa toimissa:
+unnamedCA=Varmentaja (nimeämättä)
+
+getPKCS12FilePasswordMessage=Kirjoita salasana, jota käytettiin varmenteiden varmuuskopion salaukseen:
+
+# Client auth
+clientAuthRemember=Muista valinta
+# LOCALIZATION NOTE(clientAuthNickAndSerial): Represents a single cert when the
+# user is choosing from a list of certificates.
+# %1$S is the nickname of the cert.
+# %2$S is the serial number of the cert in AA:BB:CC hex format.
+clientAuthNickAndSerial=%1$S [%2$S]
+# LOCALIZATION NOTE(clientAuthHostnameAndPort):
+# %1$S is the hostname of the server.
+# %2$S is the port of the server.
+clientAuthHostnameAndPort=%1$S:%2$S
+# LOCALIZATION NOTE(clientAuthMessage1): %S is the Organization of the server
+# cert.
+clientAuthMessage1=Organisaatio: %S
+# LOCALIZATION NOTE(clientAuthMessage2): %S is the Organization of the issuer
+# cert of the server cert.
+clientAuthMessage2=Myönnetty alle: %S
+# LOCALIZATION NOTE(clientAuthIssuedTo): %1$S is the Distinguished Name of the
+# currently selected client cert, such as "CN=John Doe,OU=Example" (without
+# quotes).
+clientAuthIssuedTo=Myönnetty: %1$S
+# LOCALIZATION NOTE(clientAuthSerial): %1$S is the serial number of the selected
+# cert in AA:BB:CC hex format.
+clientAuthSerial=Sarjanumero: %1$S
+# LOCALIZATION NOTE(clientAuthValidityPeriod):
+# %1$S is the already localized notBefore date of the selected cert.
+# %2$S is the already localized notAfter date of the selected cert.
+clientAuthValidityPeriod=Voimassa %1$S – %2$S
+# LOCALIZATION NOTE(clientAuthKeyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthKeyUsages=Avaimen käyttötarkoitukset: %1$S
+# LOCALIZATION NOTE(clientAuthEmailAddresses): %1$S is a comma separated list of
+# e-mail addresses the selected cert is valid for.
+clientAuthEmailAddresses=Sähköpostiosoitteet: %1$S
+# LOCALIZATION NOTE(clientAuthIssuedBy): %1$S is the Distinguished Name of the
+# cert which issued the selected cert.
+clientAuthIssuedBy=Myöntäjä: %1$S
+# LOCALIZATION NOTE(clientAuthStoredOn): %1$S is the name of the PKCS #11 token
+# the selected cert is stored on.
+clientAuthStoredOn=Tallennettu: %1$S
+
+# Page Info
+pageInfo_NoEncryption=Yhteys ei ole salattu
+pageInfo_Privacy_None1=Palvelin %S ei käytä salausta tällä sivulla.
+pageInfo_Privacy_None2=Sivulliset voivat lukea verkossa salaamatta siirrettyjä tietoja.
+pageInfo_Privacy_None4=Tarkastelemaasi sivua ei salattu ennen kuin se lähetettiin Internetin kautta.
+# LOCALIZATION NOTE (pageInfo_EncryptionWithBitsAndProtocol and pageInfo_BrokenEncryption):
+# %1$S is the name of the encryption standard,
+# %2$S is the key size of the cipher.
+# %3$S is protocol version like "SSL 3" or "TLS 1.2"
+pageInfo_EncryptionWithBitsAndProtocol=Yhteys salattu (%1$S, %2$S-bittinen avain, %3$S)
+pageInfo_BrokenEncryption=Rikkinäinen salaus (%1$S, %2$S-bittinen avain, %3$S)
+pageInfo_Privacy_Encrypted1=Tämä sivu salattiin ennen sen siirtoa.
+pageInfo_Privacy_Encrypted2=Salauksen vuoksi asiattomien on hyvin vaikea tarkastella tietokoneiden välillä siirtyvää tietoa. Siksi on epätodennäköistä, että kukaan luki tätä sivua sen siirtyessä verkon yli.
+pageInfo_MixedContent=Yhteys osittain salattu
+pageInfo_MixedContent2=Osia avatusta sivusta ei salattu ennen sen siirtoa.
+pageInfo_WeakCipher=Yhteytesi verkkosivustoon käyttää heikkoa salausta eikä sen takia ole yksityinen. Sivullisten on mahdollista tarkastella antamiasi tietoja tai vaikuttaa sivuston toimintaan.
+pageInfo_CertificateTransparency_Compliant=Tämä sivusto noudattaa varmenteiden avoimuuden (certificate transparency) käytäntöä.
+
+# Token Manager
+password_not_set=(ei ole asetettu)
+enable_fips=Ota FIPS käyttöön
+
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/places/places.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/places/places.properties
new file mode 100644
index 0000000000..de41a9a15c
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/places/places.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+BookmarksMenuFolderTitle=Kirjanmerkit-valikko
+BookmarksToolbarFolderTitle=Kirjanmerkkipalkki
+OtherBookmarksFolderTitle=Muut kirjanmerkit
+TagsFolderTitle=Avainsanat
+MobileBookmarksFolderTitle=Kannettavan laitteen kirjanmerkit
+
+OrganizerQueryHistory=Historia
+OrganizerQueryDownloads=Lataukset
+OrganizerQueryAllBookmarks=Kaikki kirjanmerkit
+
+# LOCALIZATION NOTE (dateName):
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Tänään
+finduri-AgeInDays-is-1=Eilen
+finduri-AgeInDays-is=%S päivää sitten
+finduri-AgeInDays-last-is=Viimeiset %S päivää
+finduri-AgeInDays-isgreater=Yli %S päivää sitten
+finduri-AgeInMonths-is-0=Tässä kuussa
+finduri-AgeInMonths-isgreater=Yli %S kuukautta sitten
+
+# LOCALIZATION NOTE (localFiles):
+# This is used to generate local files container when history is grouped by site
+localhost=(paikallisia tiedostoja)
+
+# LOCALIZATION NOTE
+# The string is used for showing file size of each backup in the "fileRestorePopup" popup
+# %1$S is the file size
+# %2$S is the file size unit
+backupFileSizeText=%1$S %2$S
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/chrome.properties b/thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..e65817ed16
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/chrome.properties
@@ -0,0 +1,20 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Tätä PDF-dokumenttia ei välttämättä osata näyttää oikein.
+unsupported_feature_forms=Tässä PDF-dokumentissa on lomakekenttiä. Lomakekenttien täyttämistä ei tueta.
+unsupported_feature_signatures=Tämä PDF-dokumentti sisältää digitaalisia allekirjoituksia. Digitaalisten allekirjoitusten vahvistamista ei tueta.
+open_with_different_viewer=Avaa toisella ohjelmalla
+open_with_different_viewer.accessKey=A
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/viewer.properties b/thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/viewer.properties
new file mode 100644
index 0000000000..4e3dc10fa1
--- /dev/null
+++ b/thunderbird-l10n/fi/chrome/fi/locale/pdfviewer/viewer.properties
@@ -0,0 +1,302 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Edellinen sivu
+previous_label=Edellinen
+next.title=Seuraava sivu
+next_label=Seuraava
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Sivu
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
+# will be replaced by a number representing the currently visible page,
+# respectively a number representing the total number of pages in the document.
+page_of_pages=({{pageNumber}} / {{pagesCount}})
+
+zoom_out.title=Loitonna
+zoom_out_label=Loitonna
+zoom_in.title=Lähennä
+zoom_in_label=Lähennä
+zoom.title=Suurennus
+presentation_mode.title=Siirry esitystilaan
+presentation_mode_label=Esitystila
+open_file.title=Avaa tiedosto
+open_file_label=Avaa
+print.title=Tulosta
+print_label=Tulosta
+save.title=Tallenna
+save_label=Tallenna
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Lataa
+# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+download_button_label=Lataa
+bookmark1.title=Nykyinen sivu (Näytä URL-osoite nykyiseltä sivulta)
+bookmark1_label=Nykyinen sivu
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Avaa sovelluksessa
+# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
+open_in_app_label=Avaa sovelluksessa
+
+# Secondary toolbar and context menu
+tools.title=Tools
+tools_label=Tools
+first_page.title=Siirry ensimmäiselle sivulle
+first_page_label=Siirry ensimmäiselle sivulle
+last_page.title=Siirry viimeiselle sivulle
+last_page_label=Siirry viimeiselle sivulle
+page_rotate_cw.title=Kierrä oikealle
+page_rotate_cw_label=Kierrä oikealle
+page_rotate_ccw.title=Kierrä vasemmalle
+page_rotate_ccw_label=Kierrä vasemmalle
+
+cursor_text_select_tool.title=Käytä tekstinvalintatyökalua
+cursor_text_select_tool_label=Tekstinvalintatyökalu
+cursor_hand_tool.title=Käytä käsityökalua
+cursor_hand_tool_label=Käsityökalu
+
+scroll_page.title=Käytä sivun vieritystä
+scroll_page_label=Sivun vieritys
+scroll_vertical.title=Käytä pystysuuntaista vieritystä
+scroll_vertical_label=Pystysuuntainen vieritys
+scroll_horizontal.title=Käytä vaakasuuntaista vieritystä
+scroll_horizontal_label=Vaakasuuntainen vieritys
+scroll_wrapped.title=Käytä rivittyvää vieritystä
+scroll_wrapped_label=Rivittyvä vieritys
+
+spread_none.title=Älä yhdistä sivuja aukeamiksi
+spread_none_label=Ei aukeamia
+spread_odd.title=Yhdistä sivut aukeamiksi alkaen parittomalta sivulta
+spread_odd_label=Parittomalta alkavat aukeamat
+spread_even.title=Yhdistä sivut aukeamiksi alkaen parilliselta sivulta
+spread_even_label=Parilliselta alkavat aukeamat
+
+# Document properties dialog box
+document_properties.title=Dokumentin ominaisuudet…
+document_properties_label=Dokumentin ominaisuudet…
+document_properties_file_name=Tiedoston nimi:
+document_properties_file_size=Tiedoston koko:
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+document_properties_kb={{size_kb}} kt ({{size_b}} tavua)
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+document_properties_mb={{size_mb}} Mt ({{size_b}} tavua)
+document_properties_title=Otsikko:
+document_properties_author=Tekijä:
+document_properties_subject=Aihe:
+document_properties_keywords=Avainsanat:
+document_properties_creation_date=Luomispäivämäärä:
+document_properties_modification_date=Muokkauspäivämäärä:
+# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
+# will be replaced by the creation/modification date, and time, of the PDF file.
+document_properties_date_string={{date}}, {{time}}
+document_properties_creator=Luoja:
+document_properties_producer=PDF-tuottaja:
+document_properties_version=PDF-versio:
+document_properties_page_count=Sivujen määrä:
+document_properties_page_size=Sivun koko:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=pysty
+document_properties_page_size_orientation_landscape=vaaka
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letter
+document_properties_page_size_name_legal=Legal
+# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
+# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement and orientation, of the (current) page.
+document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
+# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
+# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Nopea web-katselu:
+document_properties_linearized_yes=Kyllä
+document_properties_linearized_no=Ei
+document_properties_close=Sulje
+
+print_progress_message=Valmistellaan dokumenttia tulostamista varten…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}} %
+print_progress_close=Peruuta
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Näytä/piilota sivupaneeli
+toggle_sidebar_notification2.title=Näytä/piilota sivupaneeli (dokumentissa on sisällys/liitteitä/tasoja)
+toggle_sidebar_label=Näytä/piilota sivupaneeli
+document_outline.title=Näytä dokumentin sisällys (laajenna tai kutista kohdat kaksoisnapsauttamalla)
+document_outline_label=Dokumentin sisällys
+attachments.title=Näytä liitteet
+attachments_label=Liitteet
+layers.title=Näytä tasot (kaksoisnapsauta palauttaaksesi kaikki tasot oletustilaan)
+layers_label=Tasot
+thumbs.title=Näytä pienoiskuvat
+thumbs_label=Pienoiskuvat
+current_outline_item.title=Etsi nykyinen sisällyksen kohta
+current_outline_item_label=Nykyinen sisällyksen kohta
+findbar.title=Etsi dokumentista
+findbar_label=Etsi
+
+additional_layers=Lisätasot
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Sivu {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Sivu {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Pienoiskuva sivusta {{page}}
+
+# Find panel button title and messages
+find_input.title=Etsi
+find_input.placeholder=Etsi dokumentista…
+find_previous.title=Etsi hakusanan edellinen osuma
+find_previous_label=Edellinen
+find_next.title=Etsi hakusanan seuraava osuma
+find_next_label=Seuraava
+find_highlight=Korosta kaikki
+find_match_case_label=Huomioi kirjainkoko
+find_match_diacritics_label=Erota tarkkeet
+find_entire_word_label=Kokonaiset sanat
+find_reached_top=Päästiin dokumentin alkuun, jatketaan lopusta
+find_reached_bottom=Päästiin dokumentin loppuun, jatketaan alusta
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]={{current}} / {{total}} osuma
+find_match_count[two]={{current}} / {{total}} osumaa
+find_match_count[few]={{current}} / {{total}} osumaa
+find_match_count[many]={{current}} / {{total}} osumaa
+find_match_count[other]={{current}} / {{total}} osumaa
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
+find_match_count_limit[zero]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[one]=Enemmän kuin {{limit}} osuma
+find_match_count_limit[two]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[few]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[many]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[other]=Enemmän kuin {{limit}} osumaa
+find_not_found=Hakusanaa ei löytynyt
+
+# Predefined zoom values
+page_scale_width=Sivun leveys
+page_scale_fit=Koko sivu
+page_scale_auto=Automaattinen suurennus
+page_scale_actual=Todellinen koko
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}} %
+
+# Loading indicator messages
+loading_error=Tapahtui virhe ladattaessa PDF-tiedostoa.
+invalid_file_error=Virheellinen tai vioittunut PDF-tiedosto.
+missing_file_error=Puuttuva PDF-tiedosto.
+unexpected_response_error=Odottamaton vastaus palvelimelta.
+rendering_error=Tapahtui virhe piirrettäessä sivua.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
+# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}}-merkintä]
+password_label=Kirjoita PDF-tiedoston salasana.
+password_invalid=Virheellinen salasana. Yritä uudestaan.
+password_ok=OK
+password_cancel=Peruuta
+
+printing_not_supported=Varoitus: Selain ei tue kaikkia tulostustapoja.
+printing_not_ready=Varoitus: PDF-tiedosto ei ole vielä latautunut kokonaan, eikä sitä voi vielä tulostaa.
+web_fonts_disabled=Verkkosivujen omat kirjasinlajit on estetty: ei voida käyttää upotettuja PDF-kirjasinlajeja.
+
+# Editor
+editor_free_text2.title=Teksti
+editor_free_text2_label=Teksti
+editor_ink2.title=Piirros
+editor_ink2_label=Piirros
+
+editor_stamp1.title=Lisää tai muokkaa kuvia
+editor_stamp1_label=Lisää tai muokkaa kuvia
+
+free_text2_default_content=Aloita kirjoittaminen…
+
+# Editor Parameters
+editor_free_text_color=Väri
+editor_free_text_size=Koko
+editor_ink_color=Väri
+editor_ink_thickness=Paksuus
+editor_ink_opacity=Peittävyys
+
+editor_stamp_add_image_label=Lisää kuva
+editor_stamp_add_image.title=Lisää kuva
+
+# Editor aria
+editor_free_text2_aria_label=Tekstimuokkain
+editor_ink2_aria_label=Piirrustusmuokkain
+editor_ink_canvas_aria_label=Käyttäjän luoma kuva
+
+# Alt-text dialog
+# LOCALIZATION NOTE (editor_alt_text_button_label): Alternative text (alt text) helps
+# when people can't see the image.
+editor_alt_text_button_label=Vaihtoehtoinen teksti
+editor_alt_text_edit_button_label=Muokkaa vaihtoehtoista tekstiä
+editor_alt_text_dialog_label=Valitse vaihtoehto
+editor_alt_text_dialog_description=Vaihtoehtoinen teksti ("alt-teksti") auttaa ihmisiä, jotka eivät näe kuvaa tai kun kuva ei lataudu.
+editor_alt_text_add_description_label=Lisää kuvaus
+editor_alt_text_add_description_description=Pyri 1-2 lauseeseen, jotka kuvaavat aihetta, ympäristöä tai toimintaa.
+editor_alt_text_mark_decorative_label=Merkitse koristeelliseksi
+editor_alt_text_mark_decorative_description=Tätä käytetään koristekuville, kuten reunuksille tai vesileimoille.
+editor_alt_text_cancel_button=Peruuta
+editor_alt_text_save_button=Tallenna
+editor_alt_text_decorative_tooltip=Merkitty koristeelliseksi
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Esimerkiksi "Nuori mies istuu pöytään syömään aterian"
+
+# Editor resizers
+# LOCALIZATION NOTE (editor_resizer_label_topLeft): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_topLeft=Vasen yläkulma - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_topMiddle): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_topMiddle=Ylhäällä keskellä - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_topRight): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_topRight=Oikea yläkulma - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_middleRight): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_middleRight=Keskellä oikealla - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_bottomRight): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_bottomRight=Oikea alakulma - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_bottomMiddle): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_bottomMiddle=Alhaalla keskellä - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_bottomLeft): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_bottomLeft=Vasen alakulma - muuta kokoa
+# LOCALIZATION NOTE (editor_resizer_label_middleLeft): This is used in an aria label to help to understand the role of the resizer.
+editor_resizer_label_middleLeft=Keskellä vasemmalla - muuta kokoa
diff --git a/thunderbird-l10n/fi/localization/fi/branding/brand.ftl b/thunderbird-l10n/fi/localization/fi/branding/brand.ftl
new file mode 100644
index 0000000000..0bce4d93b1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/branding/brand.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Thunderbird Brand
+##
+## Thunderbird must be treated as a brand, and kept in English.
+## It cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-shorter-name = Thunderbird
+-brand-short-name = Thunderbird
+-brand-full-name = Mozilla Thunderbird
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Daily, Beta, etc.).
+-brand-product-name = Thunderbird
+-vendor-short-name = Mozilla
+trademarkInfo = Mozilla Thunderbird ja sen logot ovat Mozilla-säätiön tavaramerkkejä.
diff --git a/thunderbird-l10n/fi/localization/fi/browser/appExtensionFields.ftl b/thunderbird-l10n/fi/localization/fi/browser/appExtensionFields.ftl
new file mode 100644
index 0000000000..d157cc1152
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/browser/appExtensionFields.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Theme names and descriptions used in the Themes panel in about:addons
+
+# "Auto" is short for automatic. It can be localized without limitations.
+extension-default-theme-name-auto = Järjestelmän teema — automaattinen
+extension-default-theme-description = Seuraa käyttöjärjestelmän asetuksia painikkeille, valikoille ja ikkunoille.
+
+extension-thunderbird-compact-light-name = Vaalea
+extension-thunderbird-compact-light-description = Vaalean värimaailman teema.
+
+extension-thunderbird-compact-dark-name = Tumma
+extension-thunderbird-compact-dark-description = Tumman värimaailman teema.
diff --git a/thunderbird-l10n/fi/localization/fi/browser/branding/brandings.ftl b/thunderbird-l10n/fi/localization/fi/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..9ada8da73a
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/browser/branding/brandings.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-profiler-brand-name = Firefox Profiler
diff --git a/thunderbird-l10n/fi/localization/fi/browser/components/mozFiveStar.ftl b/thunderbird-l10n/fi/localization/fi/browser/components/mozFiveStar.ftl
new file mode 100644
index 0000000000..3f373f2c03
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/browser/components/mozFiveStar.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The rating out of 5 stars.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+moz-five-star-rating =
+ .title = Arvostelu { NUMBER($rating, maximumFractionDigits: 1) }/5
diff --git a/thunderbird-l10n/fi/localization/fi/browser/components/mozSupportLink.ftl b/thunderbird-l10n/fi/localization/fi/browser/components/mozSupportLink.ftl
new file mode 100644
index 0000000000..9613a886c7
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/browser/components/mozSupportLink.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+moz-support-link-text = Lue lisää
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-context-menus.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..7fbc4a36ee
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-context-menus.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+list-calendar-context-reload-menuitem =
+ .label = Synkronoi
+ .accesskey = S
+calendar-item-context-menu-modify-menuitem =
+ .label = Muokkaa
+ .accesskey = M
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..a6cd950a69
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ [one] Poista tapahtuma
+ *[other] Poista tapahtumat
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ [one] Haluatko varmasti poistaa tämän tapahtuman?
+ *[other] Haluatko varmasti poistaa nämä { $count } tapahtumaa?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ [one] Poista tehtävä
+ *[other] Poista tehtävät
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ [one] Haluatko varmasti poistaa tämän tehtävän?
+ *[other] Haluatko varmasti poistaa nämä { $count } tehtävää?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ [one] Poista kohde
+ *[other] Poista kohteet
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ [one] Haluatko varmasti poistaa tämän kohteen?
+ *[other] Haluatko varmasti poistaa nämä { $count } kohdetta?
+ }
+calendar-delete-prompt-disable-message = Älä kysy uudestaan.
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-editable-item.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..b980278a88
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = Yksityisyys: Yksityinen tapahtuma
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Yksityisyys: Näytä vain aika ja päivämäärä
+calendar-editable-item-recurrence =
+ .alt = Toistuva
+calendar-editable-item-recurrence-exception =
+ .alt = Toistuvan poikkeus
+calendar-editable-item-todo-icon-task =
+ .alt = Tehtävä
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Suoritettu tehtävä
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Monipäiväinen tapahtuma alkaa
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Monipäiväinen tapahtuma jatkuu
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Monipäiväinen tapahtuma päättyy
+calendar-editable-item-reminder-icon-alarm =
+ .alt = Muistutushälytys on ajoitettu
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = Muistutushälytys on ajoitettu, mutta se on tällä hetkellä estetty
+calendar-editable-item-reminder-icon-email =
+ .alt = Muistutussähköposti on ajoitettu
+calendar-editable-item-reminder-icon-audio =
+ .alt = Muistutusäänihälytys on ajoitettu
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..be745f1c46
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-reminder-icon-display =
+ .alt = Näytä hälytys
+calendar-event-reminder-icon-email =
+ .alt = Lähetä sähköposti
+calendar-event-reminder-icon-audio =
+ .alt = Toista äänihälytys
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-event-listing.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-event-listing.ftl
new file mode 100644
index 0000000000..140e94acf2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-event-listing.ftl
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-listing-close =
+ .tooltiptext = Sulje tapahtumahaku ja -luettelo
+
+## Listing columns
+
+calendar-event-listing-column-calendar-name =
+ .label = Kalenteri
+ .tooltiptext = Lajittele kalenterin nimen mukaan
+calendar-event-listing-column-category =
+ .label = Luokka
+ .tooltiptext = Lajittele luokan mukaan
+# This label and tooltip is used for the column with the checkbox in the task
+# tree view, which indicates whether a task has been marked as completed.
+calendar-event-listing-column-completed =
+ .label = Suoritettu
+ .tooltiptext = Lajittele suoritustilan mukaan
+calendar-event-listing-column-completed-date =
+ .label = Suoritettu
+ .tooltiptext = Lajittele suorituspäivän mukaan
+calendar-event-listing-column-due-date =
+ .label = Eräpäivä
+ .tooltiptext = Lajittele eräpäivän mukaan
+calendar-event-listing-column-end-date =
+ .label = Päättyy
+ .tooltiptext = Lajittele päättymispäivän mukaan
+calendar-event-listing-column-location =
+ .label = Sijainti
+ .tooltiptext = Lajittele sijainnin mukaan
+calendar-event-listing-column-percent-complete =
+ .label = % suoritettu
+ .tooltiptext = Lajittele sen mukaan, montako prosenttia on valmiina
+calendar-event-listing-column-priority =
+ .label = Tärkeysaste
+ .tooltiptext = Lajittele tärkeysasteen mukaan
+calendar-event-listing-column-start-date =
+ .label = Alkaa
+ .tooltiptext = Lajittele aloituspäivän mukaan
+calendar-event-listing-column-status =
+ .label = Tila
+ .tooltiptext = Lajittele tilan mukaan
+calendar-event-listing-column-time-until-due =
+ .label = Valmis
+ .tooltiptext = Lajittele sen mukaan milloin tehtävän tulee olla valmis
+calendar-event-listing-column-title =
+ .label = Otsikko
+ .tooltiptext = Lajittele otsikon mukaan
+
+## Interval dropdown options
+
+calendar-event-listing-interval-calendar-month =
+ .label = Tämän kalenterikuukauden tapahtumat
+calendar-event-listing-interval-current-view =
+ .label = Tapahtumat nykyisessä näkymässä
+calendar-event-listing-interval-next-7-days =
+ .label = Seuraavien 7 päivän tapahtumat
+calendar-event-listing-interval-next-14-days =
+ .label = Seuraavien 14 päivän tapahtumat
+calendar-event-listing-interval-next-31-days =
+ .label = Seuraavien 31 päivän tapahtumat
+calendar-event-listing-interval-next-6-months =
+ .label = Seuraavien 6 kuukauden tapahtumat
+calendar-event-listing-interval-next-12-months =
+ .label = Seuraavien 12 kuukauden tapahtumat
+calendar-event-listing-interval-selected-day =
+ .label = Valittuna oleva päivä
+calendar-event-listing-interval-today =
+ .label = Tämän päivän tapahtumat
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..6174498aa8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-ics-file-window-2 =
+ .title = Tuo kalenteritapahtumat ja -tehtävät
+calendar-ics-file-window-title = Tuo kalenteritapahtumat ja -tehtävät
+calendar-ics-file-dialog-import-event-button-label = Tuo tapahtuma
+calendar-ics-file-dialog-import-task-button-label = Tuo tehtävä
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Tuo kaikki
+calendar-ics-file-accept-button-ok-label = OK
+calendar-ics-file-cancel-button-close-label = Sulje
+calendar-ics-file-dialog-message-2 = Tuo tiedostosta:
+calendar-ics-file-dialog-calendar-menu-label = Tuo kalenteriin:
+calendar-ics-file-dialog-items-loading-message =
+ .value = Ladataan merkintöjä…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Suodata merkintöjä…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Järjestä aloituspäivän mukaan (ensimmäisestä viimeiseen)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Järjestä aloituspäivän mukaan (viimeisestä ensimmäiseen)
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = Järjestä otsikon mukaan (A > Ö)
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = Järjestä otsikon mukaan (Ö > A)
+calendar-ics-file-dialog-progress-message = Tuodaan…
+calendar-ics-file-import-success = Tuominen onnistui!
+calendar-ics-file-import-error = Tapahtui virhe ja tuonti epäonnistui.
+calendar-ics-file-import-complete = Tuonti valmis.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ [one] Yksi merkintä hylättiin, koska se löytyy jo kohdekalenterista.
+ *[other] { $duplicatesCount } merkintää hylättiin, koska ne löytyvät jo kohdekalenterista.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ [one] Yhden merkinnän tuonti epäonnistui. Katso lisätietoja virhekonsolista.
+ *[other] { $errorsCount } merkinnän tuonti epäonnistui. Katso lisätietoja virhekonsolista.
+ }
+calendar-ics-file-dialog-no-calendars = Kalentereita, jotka voivat tuoda tapahtumia tai tehtäviä, ei ole.
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-invitation-panel.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..4caacdea31
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } kutsui sinut:
+calendar-invitation-panel-status-new = Sinut on kutsuttu tähän tapahtumaan.
+calendar-invitation-panel-status-processed = Tämä tapahtuma on jo lisätty kalenteriisi.
+calendar-invitation-panel-status-updateminor = Tämä viesti sisältää päivityksen tähän tapahtumaan.
+calendar-invitation-panel-status-updatemajor = Tämä viesti sisältää päivityksen tähän tapahtumaan. Sinun tulee vahvistaa osallistumisesi uudelleen.
+calendar-invitation-panel-status-cancelled = Tämä viesti sisältää tämän tapahtuman peruutuksen.
+calendar-invitation-panel-status-cancelled-notfound = Tämä viesti sisältää peruutuksen tapahtumalle, jota ei löydy kalenteristasi.
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } perui:
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-action-button = Tallenna
+calendar-invitation-panel-view-button = Näytä
+calendar-invitation-panel-update-button = Päivitä
+calendar-invitation-panel-delete-button = Poista
+calendar-invitation-panel-accept-button = Kyllä
+calendar-invitation-panel-decline-button = Ei
+calendar-invitation-panel-tentative-button = Ehkä
+calendar-invitation-panel-reply-status = * Et ole vielä päättänyt tai vastannut
+calendar-invitation-panel-more-button = Lisää
+calendar-invitation-panel-menu-item-save-copy =
+ .label = Tallenna kopio
+calendar-invitation-panel-menu-item-toggle-changes =
+ .label = Näytä muutokset
+calendar-invitation-panel-prop-title-when = Aika:
+calendar-invitation-panel-prop-title-location = Sijainti:
+# Variables:
+# $dayOfWeek (String) - The day of the week for a given date.
+# $date (String) - The date example: Tuesday, February 24, 2022.
+calendar-invitation-datetime-date = { $dayOfWeek }, { $date }
+# Variables:
+# $time (String) - The time part of a datetime using the "short" timeStyle.
+# $timezone (String) - The timezone info for the datetime.
+calendar-invitation-datetime-time = { $time } ({ $timezone })
+calendar-invitation-panel-prop-title-recurrence = Toistuu:
+calendar-invitation-panel-prop-title-attendees = Osallistujat:
+calendar-invitation-panel-prop-title-description = Kuvaus:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } kyllä
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } ei
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } ehkä
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } odottaa
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } osallistujaa
+calendar-invitation-panel-prop-title-attachments = Liitteet:
+calendar-invitation-change-indicator-removed = Poistettu
+calendar-invitation-change-indicator-added = Uusi
+calendar-invitation-change-indicator-modified = Muutettu
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..51c1506ae9
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = Tällä hetkellä hyväksytty
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = Tällä hetkellä hylätty
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = Ei vielä päätetty
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..820d46a8b6
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-itip-identity-dialog-title = Menossa juhliin kutsumatta?
+calendar-itip-identity-warning = Et ole vielä vierailijaluettelossa.
+calendar-itip-identity-label = Vastaa käyttäjänä:
+calendar-itip-identity-label-none = Yhdistä tämä tapahtuma:
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-print.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..cdcbb973ab
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-print.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-print-layout-label = Asettelu
+calendar-print-layout-list = Lista
+calendar-print-layout-month-grid = Kuukausikalenteri
+calendar-print-layout-week-planner = Viikkokalenteri
+calendar-print-filter-label = Mitä tulostetaan
+calendar-print-filter-events = Tapahtumat
+calendar-print-filter-tasks = Tehtävät
+calendar-print-filter-completedtasks = Suoritetut tehtävät
+calendar-print-filter-taskswithnoduedate = Tehtävät ilman valmistumispäivää
+calendar-print-range-from = Lähettäjä
+calendar-print-range-to = Vastaanottaja
+calendar-print-back-button = Edellinen
+calendar-print-next-button = Seuraava
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-recurrence-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-recurrence-dialog.ftl
new file mode 100644
index 0000000000..d2660ed058
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-recurrence-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-recurrence-preview-label = Esikatselu
+calendar-recurrence-next = Seuraava kuukausi
+calendar-recurrence-previous = Edellinen kuukausi
+calendar-recurrence-today = Tänään
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..e230de0772
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-summary-dialog-edit-button =
+ .label = Muokkaa
+ .accesskey = M
+calendar-summary-dialog-edit-menu-button =
+ .label = Muokkaa
+edit-button-context-menu-this-occurrence =
+ .label = Muokkaa vain tätä esiintymää
+ .accesskey = M
+edit-button-context-menu-all-occurrences =
+ .label = Muokkaa kaikkia esiintymiä
+ .accesskey = u
+description-context-menu-copy-link-text =
+ .label = Kopioi linkin teksti
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..10b92acf18
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-uri-redirect-window =
+ .title = Kalenterin URI-uudelleenohjaus
+calendar-uri-redirect-window-title = Kalenterin URI-uudelleenohjaus
+calendar-uri-redirect-description =
+ Palvelin ohjaa kalenterin "{ $calendarName }" toiselle sivustolle.
+ Hyväksytkö uudelleenohjauksen ja aloitatko uuden kalenterin käytön?
+calendar-uri-redirect-original-uri-label = Nykyinen URI:
+calendar-uri-redirect-target-uri-label = Uudelleenohjattu uusi URI:
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/calendar-widgets.ftl b/thunderbird-l10n/fi/localization/fi/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..e9d4a1c603
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/calendar-widgets.ftl
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-deactivated-notification-events = Kaikki kalenterit ovat tällä hetkellä poissa käytöstä. Ota olemassa oleva kalenteri käyttöön tai lisää uusi luodaksesi ja muokataksesi tapahtumia.
+calendar-deactivated-notification-tasks = Kaikki kalenterit ovat tällä hetkellä poissa käytöstä. Ota olemassa oleva kalenteri käyttöön tai lisää uusi luodaksesi ja muokataksesi tehtäviä.
+calendar-notifications-label = Näytä ilmoitukset tulevista tapahtumista
+calendar-add-notification-button =
+ .label = Lisää ilmoitus
+
+## Side panel
+
+calendar-list-header = Kalenterit
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-no-reminders-tooltip =
+ .title = Kalenteri { $calendarName } on mykistetty
+calendar-enable-button = Ota käyttöön
+# Variables:
+# $calendarName (String) - Calendar name as given by the user
+calendar-list-item-context-button =
+ .title = Kalenterin { $calendarName } asetukset
+calendar-import-new-calendar = Uusi kalenteri…
+ .title = Luo tai tilaa uusi kalenteri
+calendar-refresh-calendars =
+ .title = Lataa kaikki kalenterit uudelleen ja synkronoi muutokset
+calendar-new-event-primary-button = Uusi tapahtuma
+calendar-new-task-primary-button = Uusi tehtävä
+
+## Calendar navigation
+
+calendar-nav-button-prev-tooltip-day =
+ .title = Edellinen päivä
+ .accesskey = E
+calendar-nav-button-prev-tooltip-week =
+ .title = Edellinen viikko
+ .accesskey = E
+calendar-nav-button-prev-tooltip-multiweek =
+ .title = Edellinen viikko
+ .accesskey = E
+calendar-nav-button-prev-tooltip-month =
+ .title = Edellinen kuukausi
+ .accesskey = E
+calendar-nav-button-prev-tooltip-year =
+ .title = Edellinen vuosi
+ .accesskey = s
+calendar-nav-button-next-tooltip-day =
+ .title = Seuraava päivä
+ .accesskey = U
+calendar-nav-button-next-tooltip-week =
+ .title = Seuraava viikko
+ .accesskey = U
+calendar-nav-button-next-tooltip-multiweek =
+ .title = Seuraava viikko
+ .accesskey = U
+calendar-nav-button-next-tooltip-month =
+ .title = Seuraava kuukausi
+ .accesskey = U
+calendar-nav-button-next-tooltip-year =
+ .title = Seuraava vuosi
+ .accesskey = v
+calendar-today-button-tooltip =
+ .title = Siirry tähän päivään
+calendar-view-toggle-day = Päivä
+ .title = Siirry päivänäkymään
+calendar-view-toggle-week = Viikko
+ .title = Siirry viikkonäkymään
+calendar-view-toggle-multiweek = Moniviikko
+ .title = Siirry moniviikkonäkymään
+calendar-view-toggle-month = Kuukausi
+ .title = Siirry kuukausinäkymään
+
+## Menu on calendar control bar
+
+calendar-control-bar-menu-button =
+ .title = Kalenterin asetteluvaihtoehdot
+calendar-find-events-menu-option =
+ .label = Etsi tapahtumia -paneeli
+calendar-hide-weekends-option =
+ .label = Vain työviikon päivät
+calendar-define-workweek-option =
+ .label = Määritä työviikon päivät
+calendar-show-tasks-calendar-option =
+ .label = Näytä tehtävät kalenterissa
+
+## Calendar Context Menu
+
+calendar-context-menu-previous-day =
+ .label = Edellinen päivä
+ .accesskey = E
+calendar-context-menu-previous-week =
+ .label = Edellinen viikko
+ .accesskey = E
+calendar-context-menu-previous-multiweek =
+ .label = Edellinen viikko
+ .accesskey = E
+calendar-context-menu-previous-month =
+ .label = Edellinen kuukausi
+ .accesskey = E
+calendar-context-menu-next-day =
+ .label = Seuraava päivä
+ .accesskey = S
+calendar-context-menu-next-week =
+ .label = Seuraava viikko
+ .accesskey = S
+calendar-context-menu-next-multiweek =
+ .label = Seuraava viikko
+ .accesskey = S
+calendar-context-menu-next-month =
+ .label = Seuraava kuukausi
+ .accesskey = S
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/category-dialog.ftl b/thunderbird-l10n/fi/localization/fi/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..74ca9ab84a
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/category-dialog.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+category-name-label = Nimi
+category-color-label =
+ .label = Käytä väriä
diff --git a/thunderbird-l10n/fi/localization/fi/calendar/preferences.ftl b/thunderbird-l10n/fi/localization/fi/calendar/preferences.ftl
new file mode 100644
index 0000000000..711ea11029
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/calendar/preferences.ftl
@@ -0,0 +1,192 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-title = Kalenteri
+calendar-title-reminder = Hälytykset
+calendar-title-notification = Ilmoitukset
+calendar-title-category = Luokat
+dateformat-label =
+ .value = Päiväystekstin formaatti:
+ .accesskey = P
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Pitkä: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Lyhyt: { $date }
+use-system-timezone-radio-button =
+ .label = Käytä järjestelmän aikavyöhykettä
+set-timezone-manually-radio-button =
+ .label = Aseta aikavyöhyke manuaalisesti
+timezone-label =
+ .value = Aikavyöhyke:
+weekstart-label =
+ .value = Viikko alkaa:
+ .accesskey = V
+day-1-name =
+ .label = sunnuntai
+day-2-name =
+ .label = maanantai
+day-3-name =
+ .label = tiistai
+day-4-name =
+ .label = keskiviikko
+day-5-name =
+ .label = torstai
+day-6-name =
+ .label = perjantai
+day-7-name =
+ .label = lauantai
+show-weeknumber-label =
+ .label = Näytä viikkonumero näkymissä ja pienoiskuukaudessa
+ .accesskey = ä
+workdays-label =
+ .value = Työviikon päivät:
+day-1-checkbox =
+ .label = su
+ .accesskey = s
+day-2-checkbox =
+ .label = ma
+ .accesskey = m
+day-3-checkbox =
+ .label = ti
+ .accesskey = t
+day-4-checkbox =
+ .label = ke
+ .accesskey = k
+day-5-checkbox =
+ .label = to
+ .accesskey = o
+day-6-checkbox =
+ .label = pe
+ .accesskey = e
+day-7-checkbox =
+ .label = la
+ .accesskey = a
+dayweek-legend = Päivä- ja viikkonäkymät
+visible-hours-label =
+ .value = Näytä:
+ .accesskey = N
+visible-hours-end-label =
+ .value = tuntia kerrallaan
+day-start-label =
+ .value = Päivä alkaa:
+ .accesskey = P
+day-end-label =
+ .value = Päivä päättyy:
+ .accesskey = ä
+midnight-label =
+ .label = keskiyöllä
+noon-label =
+ .label = keskipäivällä
+location-checkbox =
+ .label = Näytä sijainti
+ .accesskey = j
+multiweek-legend = Moniviikkonäkymä
+number-of-weeks-label =
+ .value = Näytettävien viikkojen määrä (sis. edelliset viikot):
+ .accesskey = y
+week-0-label =
+ .label = ei yhtään
+week-1-label =
+ .label = 1 viikko
+week-2-label =
+ .label = 2 viikkoa
+week-3-label =
+ .label = 3 viikkoa
+week-4-label =
+ .label = 4 viikkoa
+week-5-label =
+ .label = 5 viikkoa
+week-6-label =
+ .label = 6 viikkoa
+previous-weeks-label =
+ .value = Näytä edellisiä viikkoja:
+ .accesskey = d
+todaypane-legend = Tänään-ruutu
+agenda-days =
+ .value = Esityslista näyttää:
+ .accesskey = s
+event-task-legend = Tapahtumat ja tehtävät
+default-length-label =
+ .value = Oletustapahtuma ja tehtävän pituus:
+ .accesskey = o
+task-start-label =
+ .value = Aloitusaika:
+task-start-1-label =
+ .label = Ei mitään
+task-start-2-label =
+ .label = Päivän alku
+task-start-3-label =
+ .label = Päivän loppu
+task-start-4-label =
+ .label = Huominen
+task-start-5-label =
+ .label = Ensi viikko
+task-start-6-label =
+ .label = Suhteessa nykyiseen aikaan
+task-start-7-label =
+ .label = Suhteessa alkuun
+task-start-8-label =
+ .label = Suhteessa seuraavaan tasatuntiin
+task-due-label =
+ .value = Valmis:
+edit-intab-label =
+ .label = Muokkaa tapahtumia ja tehtäviä välilehdessä ikkunan sijaan.
+ .accesskey = M
+prompt-delete-label =
+ .label = Kysy ennen tapahtumien ja tehtävien poistamista.
+ .accesskey = y
+accessibility-legend = Esteettömyys
+accessibility-colors-label =
+ .label = Optimoi värit esteettömyyttä varten
+ .accesskey = v
+reminder-legend = Kun hälytys käynnistyy:
+reminder-play-checkbox =
+ .label = Anna äänimerkki
+ .accesskey = A
+reminder-play-alarm-button =
+ .label = Toista
+ .accesskey = T
+reminder-default-sound-label =
+ .label = Käytä oletusääntä
+ .accesskey = K
+reminder-custom-sound-label =
+ .label = Käytä seuraavaa äänitiedostoa
+ .accesskey = s
+reminder-browse-sound-label =
+ .label = Selaa…
+ .accesskey = S
+reminder-dialog-label =
+ .label = Näytä huomautus
+ .accesskey = N
+missed-reminder-label =
+ .label = Näytä ohitetut hälytykset muokattaville kalentereille
+ .accesskey = o
+reminder-default-legend = Hälytyksen oletukset
+default-snooze-label =
+ .value = Lykkäyksen oletuspituus:
+ .accesskey = L
+event-alarm-label =
+ .value = Tapahtumahälytysten oletusasetus:
+ .accesskey = T
+alarm-on-label =
+ .label = Päällä
+alarm-off-label =
+ .label = Pois päältä
+task-alarm-label =
+ .value = Tehtävähälytysten oletusasetus:
+ .accesskey = h
+event-alarm-time-label =
+ .value = Hälytyksen ja tapahtuman välinen oletusaika:
+ .accesskey = ä
+task-alarm-time-label =
+ .value = Hälytyksen ja tehtävän välinen oletusaika:
+ .accesskey = l
+calendar-notifications-customize-label = Ilmoitukset on mahdollista mukauttaa jokaiselle kalenterille kalenterin ominaisuusikkunassa.
+category-new-label = Uusi luokka
+category-edit-label = Muokkaa tapahtumatyyppiä
+category-overwrite-title = Varoitus: Sama nimi
+category-overwrite = Tuon niminen tapahtumatyyppi on jo olemassa.\nHaluatko, että se ylikirjoitetaan?
+category-blank-warning = Sinun täytyy kirjoittaa tälle tapahtumatyypille jokin nimi.
diff --git a/thunderbird-l10n/fi/localization/fi/chat/matrix.ftl b/thunderbird-l10n/fi/localization/fi/chat/matrix.ftl
new file mode 100644
index 0000000000..0f9b149004
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/chat/matrix.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Matrix Protocol strings
+
+
+## Conversation names when a room has no user readable name.
+
+room-name-empty = Tyhjä keskustelu
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Tyhjä keskustelu (oli { $oldName })
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others2 =
+ { $otherParticipantCount ->
+ [one] { $participant } ja { $otherParticipantCount } muu
+ *[other] { $participant } ja { $otherParticipantCount } muuta
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/crashreporter/aboutcrashes.ftl b/thunderbird-l10n/fi/localization/fi/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..b282d051d8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/crashreporter/aboutcrashes.ftl
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v- 2-0- If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla-org/MPL/2-0/-
+
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+crash-reports-title = Kaatumisilmoitukset
+
+submit-all-button-label = Lähetä kaikki
+delete-button-label = Poista kaikki
+delete-confirm-title = Poistetaanko kaikki ilmoitukset?
+delete-unsubmitted-description = Tämä poistaa kaikki lähettämättömät kaatumisilmoitukset eikä toimintoa voi perua.
+delete-submitted-description = Tämä poistaa listan lähetetyistä kaatumisilmoituksista, mutta ei poista lähetettyjä tietoja. Toimintoa ei voi perua.
+
+crashes-unsubmitted-label = Lähettämättömät kaatumisilmoitukset
+id-heading = Kaatumistunnus
+date-crashed-heading = Kaatumisaika
+submit-crash-button-label = Lähetä
+# This text is used to replace the label of the crash submit button
+# if the crash submission fails.
+submit-crash-button-failure-label = Epäonnistui
+
+crashes-submitted-label = Lähetetyt kaatumisilmoitukset
+date-submitted-heading = Lähettämisaika
+view-crash-button-label = Näytä
+
+no-reports-label = Kaatumisilmoituksia ei ole lähetetty.
+no-config-label = Tätä ohjelmaa ei ole asetettu näyttämään kaatumisilmoituksia. Asetuksen <code>breakpad.reportURL</code> arvon täytyy olla tosi.
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/aboutdebugging.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/aboutdebugging.ftl
new file mode 100644
index 0000000000..691c205a65
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,400 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the about:debugging UI.
+
+
+# Page Title strings
+
+# Page title (ie tab title) for the Setup page
+about-debugging-page-title-setup-page = Debugging - Setup
+
+# Page title (ie tab title) for the Runtime page
+# { $selectedRuntimeId } is the id of the current runtime, such as "this-firefox", "localhost:6080", ...
+about-debugging-page-title-runtime-page = Debugging - Runtime / { $selectedRuntimeId }
+
+# Sidebar strings
+
+# Display name of the runtime for the currently running instance of Firefox. Used in the
+# Sidebar and in the Setup page.
+about-debugging-this-firefox-runtime-name = This { -brand-shorter-name }
+
+# Sidebar heading for selecting the currently running instance of Firefox
+about-debugging-sidebar-this-firefox =
+ .name = { about-debugging-this-firefox-runtime-name }
+
+# Sidebar heading for connecting to some remote source
+about-debugging-sidebar-setup =
+ .name = Setup
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = USB enabled
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is disabled
+# (for instance because the mandatory ADB extension is not installed).
+about-debugging-sidebar-usb-disabled = USB disabled
+
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = Connected
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = Disconnected
+
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = No devices discovered
+
+# Text displayed in buttons found in sidebar items representing remote runtimes.
+# Clicking on the button will attempt to connect to the runtime.
+about-debugging-sidebar-item-connect-button = Connect
+
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = Connecting…
+
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = Connection failed
+
+# Text displayed in connection warning on sidebar item of the runtime when connecting to
+# the runtime is taking too much time.
+about-debugging-sidebar-item-connect-button-connection-not-responding = Connection still pending, check for messages on the target browser
+
+# Text displayed as connection error in sidebar item when the connection has timed out.
+about-debugging-sidebar-item-connect-button-connection-timeout = Connection timed out
+
+# Text displayed in sidebar items for remote devices where a compatible browser (eg
+# Firefox) has not been detected yet. Typically, Android phones connected via USB with
+# USB debugging enabled, but where Firefox is not started.
+about-debugging-sidebar-runtime-item-waiting-for-browser = Waiting for browser…
+
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = Unplugged
+
+# Title for runtime sidebar items that are related to a specific device (USB, WiFi).
+about-debugging-sidebar-runtime-item-name =
+ .title = { $displayName } ({ $deviceName })
+# Title for runtime sidebar items where we cannot get device information (network
+# locations).
+about-debugging-sidebar-runtime-item-name-no-device =
+ .title = { $displayName }
+
+# Text to show in the footer of the sidebar that links to a help page
+# (currently: https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/)
+about-debugging-sidebar-support = Debugging Support
+
+# Text to show as the ALT attribute of a help icon that accompanies the help about
+# debugging link in the footer of the sidebar
+about-debugging-sidebar-support-icon =
+ .alt = Help icon
+
+# Text displayed in a sidebar button to refresh the list of USB devices. Clicking on it
+# will attempt to update the list of devices displayed in the sidebar.
+about-debugging-refresh-usb-devices-button = Refresh devices
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = Setup
+
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = Configure the connection method you wish to remotely debug your device with.
+
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox2 = Use <a>{ about-debugging-this-firefox-runtime-name }</a> to debug extensions and service workers on this version of { -brand-shorter-name }.
+
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = Connect a Device
+
+# USB section of the Setup page
+about-debugging-setup-usb-title = USB
+
+# Explanatory text displayed in the Setup page when USB debugging is disabled
+about-debugging-setup-usb-disabled = Enabling this will download and add the required Android USB debugging components to { -brand-shorter-name }.
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is disabled.
+# Clicking on it will download components needed to debug USB Devices remotely.
+about-debugging-setup-usb-enable-button = Enable USB Devices
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is enabled.
+about-debugging-setup-usb-disable-button = Disable USB Devices
+
+# Text of the button displayed in the USB section of the setup page while USB debugging
+# components are downloaded and installed.
+about-debugging-setup-usb-updating-button = Updating…
+
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = Enabled
+about-debugging-setup-usb-status-disabled = Disabled
+about-debugging-setup-usb-status-updating = Updating…
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = Enable Developer menu on your Android device.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = Enable USB Debugging in the Android Developer Menu.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = Enable USB Debugging in Firefox on the Android device.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = Connect the Android device to your computer.
+
+# Text shown in the USB section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-to-a-remote-device
+about-debugging-setup-usb-troubleshoot = Problems connecting to the USB device? <a>Troubleshoot</a>
+
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = Network Location
+
+# Text shown in the Network section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-over-the-network
+about-debugging-setup-network-troubleshoot = Problems connecting via network location? <a>Troubleshoot</a>
+
+# Text of a button displayed after the network locations "Host" input.
+# Clicking on it will add the new network location to the list.
+about-debugging-network-locations-add-button = Add
+
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = No network locations have been added yet.
+
+# Text of the label for the text input that allows users to add new network locations in
+# the Connect page. A host is a hostname and a port separated by a colon, as suggested by
+# the input's placeholder "localhost:6080".
+about-debugging-network-locations-host-input-label = Host
+
+# Text of a button displayed next to existing network locations in the Connect page.
+# Clicking on it removes the network location from the list.
+about-debugging-network-locations-remove-button = Remove
+
+# Text used as error message if the format of the input value was invalid in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-invalid = Invalid host “{ $host-value }”. The expected format is “hostname:portnumber”.
+
+# Text used as error message if the input value was already registered in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-duplicate = The host “{ $host-value }” is already registered
+
+# Runtime Page strings
+
+# Below are the titles for the various categories of debug targets that can be found
+# on "runtime" pages of about:debugging.
+# Title of the temporary extensions category (only available for "This Firefox" runtime).
+about-debugging-runtime-temporary-extensions =
+ .name = Temporary Extensions
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = Extensions
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = Tabs
+# Title of the service workers category.
+about-debugging-runtime-service-workers =
+ .name = Service Workers
+# Title of the shared workers category.
+about-debugging-runtime-shared-workers =
+ .name = Shared Workers
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = Other Workers
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = Processes
+
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = Profile performance
+
+# This string is displayed in the runtime page if the current configuration of the
+# target runtime is incompatible with service workers. "Learn more" points to:
+# https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#service-workers-not-compatible
+about-debugging-runtime-service-workers-not-compatible = Your browser configuration is not compatible with Service Workers. <a>Learn more</a>
+
+# This string is displayed in the runtime page if the remote browser version is too old.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $minVersion } is the minimum version that is compatible with the current Firefox instance (same format)
+about-debugging-browser-version-too-old = The connected browser has an old version ({ $runtimeVersion }). The minimum supported version is ({ $minVersion }). This is an unsupported setup and may cause DevTools to fail. Please update the connected browser. <a>Troubleshooting</a>
+
+# Dedicated message for a backward compatibility issue that occurs when connecting:
+# from Fx 70+ to the old Firefox for Android (aka Fennec) which uses Fx 68.
+about-debugging-browser-version-too-old-fennec = This version of Firefox cannot debug Firefox for Android (68). We recommend installing Firefox for Android Nightly on your phone for testing. <a>More details</a>
+
+# This string is displayed in the runtime page if the remote browser version is too recent.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeID } is the build ID of the remote browser (for instance "20181231", format is yyyyMMdd)
+# { $localID } is the build ID of the current Firefox instance (same format)
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $localVersion } is the version of your current browser (same format)
+about-debugging-browser-version-too-recent = The connected browser is more recent ({ $runtimeVersion }, buildID { $runtimeID }) than your { -brand-shorter-name } ({ $localVersion }, buildID { $localID }). This is an unsupported setup and may cause DevTools to fail. Please update Firefox. <a>Troubleshooting</a>
+
+# Displayed for runtime info in runtime pages.
+# { $name } is brand name such as "Firefox Nightly"
+# { $version } is version such as "64.0a1"
+about-debugging-runtime-name = { $name } ({ $version })
+
+# Text of a button displayed in Runtime pages for remote runtimes.
+# Clicking on the button will close the connection to the runtime.
+about-debugging-runtime-disconnect-button = Disconnect
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is false on the target runtime.
+about-debugging-connection-prompt-enable-button = Enable connection prompt
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is true on the target runtime.
+about-debugging-connection-prompt-disable-button = Disable connection prompt
+
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = Profiler
+
+# Clicking on the header of a debug target category will expand or collapse the debug
+# target items in the category. This text is used as ’title’ attribute of the header,
+# to describe this feature.
+about-debugging-collapse-expand-debug-targets = Collapse / expand
+
+# Debug Targets strings
+
+# Displayed in the categories of "runtime" pages that don't have any debug target to
+# show. Debug targets depend on the category (extensions, tabs, workers...).
+about-debugging-debug-target-list-empty = Nothing yet.
+
+# Text of a button displayed next to debug targets of "runtime" pages. Clicking on this
+# button will open a DevTools toolbox that will allow inspecting the target.
+# A target can be an addon, a tab, a worker...
+about-debugging-debug-target-inspect-button = Inspect
+
+# Text of a button displayed in the "This Firefox" page, in the Temporary Extension
+# section. Clicking on the button will open a file picker to load a temporary extension
+about-debugging-tmp-extension-install-button = Load Temporary Add-on…
+
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = There was an error during the temporary add-on installation.
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will reload the extension.
+about-debugging-tmp-extension-reload-button = Reload
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will uninstall the extension and remove it from the page.
+about-debugging-tmp-extension-remove-button = Remove
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will forcefully terminate the extension background script (button
+# only visible in extensions that includes a non-persistent background script, either an
+# event page or a background service worker).
+about-debugging-tmp-extension-terminate-bgscript-button = Terminate background script
+
+# Message displayed in the file picker that opens to select a temporary extension to load
+# (triggered by the button using "about-debugging-tmp-extension-install-button")
+# manifest.json .xpi and .zip should not be localized.
+# Note: this message is only displayed in Windows and Linux platforms.
+about-debugging-tmp-extension-install-message = Select manifest.json file or .xpi/.zip archive
+
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = This WebExtension has a temporary ID. <a>Learn more</a>
+
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = Manifest URL
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's uuid.
+# UUIDs look like b293e463-481e-5148-a487-5aaf7a130429
+about-debugging-extension-uuid =
+ .label = Internal UUID
+
+# Text displayed for extensions (temporary extensions only) in "runtime" pages, before
+# displaying the location of the temporary extension.
+about-debugging-extension-location =
+ .label = Location
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's ID.
+# For instance "geckoprofiler@mozilla.com" or "{ed26ddcb-5611-4512-a89a-51b8db81cfb2}".
+about-debugging-extension-id =
+ .label = Extension ID
+
+# Text displayed for extensions in "runtime" pages, before displaying the status of the
+# extension background script.
+about-debugging-extension-backgroundscript =
+ .label = Background script
+
+# Displayed for extension using a non-persistent background page (either an event page or
+# background service worker) when the background script is currently running.
+about-debugging-extension-backgroundscript-status-running = Running
+
+# Displayed for extension using a non-persistent background page when is currently stopped.
+about-debugging-extension-backgroundscript-status-stopped = Stopped
+
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+# Note this relates to the "Push" API, which is normally not localized so it is
+# probably better to not localize it.
+about-debugging-worker-action-push2 = Push
+ .disabledTitle = Service Worker push is currently disabled for multiprocess { -brand-shorter-name }
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = Start
+ .disabledTitle = Service Worker start is currently disabled for multiprocess { -brand-shorter-name }
+
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = Unregister
+
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = Fetch
+ .value = Listening for fetch events
+
+# Displayed for service workers in runtime pages that do not listen to Fetch events.
+about-debugging-worker-fetch-not-listening =
+ .label = Fetch
+ .value = Not listening for fetch events
+
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = Running
+
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = Stopped
+
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = Registering
+
+# Displayed for service workers in runtime pages, to label the scope of a worker
+about-debugging-worker-scope =
+ .label = Scope
+
+# Displayed for service workers in runtime pages, to label the push service endpoint (url)
+# of a worker
+about-debugging-worker-push-service =
+ .label = Push Service
+
+# Displayed as title of the inspect button when service worker debugging is disabled.
+about-debugging-worker-inspect-action-disabled =
+ .title = Service Worker inspection is currently disabled for multiprocess { -brand-shorter-name }
+
+# Displayed as title of the inspect button for zombie tabs (e.g. tabs loaded via a session restore).
+about-debugging-zombie-tab-inspect-action-disabled =
+ .title = Tab is not fully loaded and cannot be inspected
+
+# Displayed instead of the Main Process debug target when the preference
+# `devtools.browsertoolbox.fission` is true.
+about-debugging-multiprocess-toolbox-name = Multiprocess Toolbox
+
+# Description for the Multiprocess Toolbox target.
+about-debugging-multiprocess-toolbox-description = Main Process and Content Processes for the target browser
+
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = Close message
+
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = Error details
+
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = Warning details
+
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = Details
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/accessibility.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/accessibility.ftl
new file mode 100644
index 0000000000..29a19b73cc
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/accessibility.ftl
@@ -0,0 +1,99 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Accessibility panel.
+
+accessibility-learn-more = Learn more
+
+accessibility-text-label-header = Text Labels and Names
+
+accessibility-keyboard-header = Keyboard
+
+## Text entries that are used as text alternative for icons that depict accessibility isses.
+
+
+## These strings are used in the overlay displayed when running an audit in the accessibility panel
+
+accessibility-progress-initializing = Initializing…
+ .aria-valuetext = Initializing…
+
+# This string is displayed in the audit progress bar in the accessibility panel.
+# Variables:
+# $nodeCount (Integer) - The number of nodes for which the audit was run so far.
+accessibility-progress-progressbar =
+ { $nodeCount ->
+ [one] Checking { $nodeCount } node
+ *[other] Checking { $nodeCount } nodes
+ }
+
+accessibility-progress-finishing = Finishing up…
+ .aria-valuetext = Finishing up…
+
+## Text entries that are used as text alternative for icons that depict accessibility issues.
+
+accessibility-warning =
+ .alt = Warning
+
+accessibility-fail =
+ .alt = Error
+
+accessibility-best-practices =
+ .alt = Best Practices
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has an accessibility issue
+## with its text label or accessible name.
+
+accessibility-text-label-issue-area = Use <code>alt</code> attribute to label <div>area</div> elements that have the <span>href</span> attribute. <a>Learn more</a>
+
+accessibility-text-label-issue-dialog = Dialogs should be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-document-title = Documents must have a <code>title</code>. <a>Learn more</a>
+
+accessibility-text-label-issue-embed = Embedded content must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-figure = Figures with optional captions should be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-fieldset = <code>fieldset</code> elements must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-fieldset-legend2 = Use a <code>legend</code> element to label a <span>fieldset</span>. <a>Learn more</a>
+
+accessibility-text-label-issue-form = Form elements must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-form-visible = Form elements should have a visible text label. <a>Learn more</a>
+
+accessibility-text-label-issue-frame = <code>frame</code> elements must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-glyph = Use <code>alt</code> attribute to label <span>mglyph</span> elements. <a>Learn more</a>
+
+accessibility-text-label-issue-heading = Headings must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-heading-content = Headings should have visible text content. <a>Learn more</a>
+
+accessibility-text-label-issue-iframe = Use <code>title</code> attribute to describe <span>iframe</span> content. <a>Learn more</a>
+
+accessibility-text-label-issue-image = Content with images must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-interactive = Interactive elements must be labeled. <a>Learn more</a>
+
+accessibility-text-label-issue-optgroup-label2 = Use a <code>label</code> attribute to label an <span>optgroup</span>. <a>Learn more</a>
+
+accessibility-text-label-issue-toolbar = Toolbars must be labeled when there is more than one toolbar. <a>Learn more</a>
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has a keyboard accessibility
+## issue.
+
+accessibility-keyboard-issue-semantics = Focusable elements should have interactive semantics. <a>Learn more</a>
+
+accessibility-keyboard-issue-tabindex = Avoid using <code>tabindex</code> attribute greater than zero. <a>Learn more</a>
+
+accessibility-keyboard-issue-action = Interactive elements must be able to be activated using a keyboard. <a>Learn more</a>
+
+accessibility-keyboard-issue-focusable = Interactive elements must be focusable. <a>Learn more</a>
+
+accessibility-keyboard-issue-focus-visible = Focusable element may be missing focus styling. <a>Learn more</a>
+
+accessibility-keyboard-issue-mouse-only = Clickable elements must be focusable and should have interactive semantics. <a>Learn more</a>
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/application.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/application.ftl
new file mode 100644
index 0000000000..0f690a2240
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/application.ftl
@@ -0,0 +1,151 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Application panel which is available
+### by setting the preference `devtools-application-enabled` to true.
+
+
+### The correct localization of this file might be to keep it in English, or another
+### language commonly spoken among web developers. You want to make that choice consistent
+### across the developer tools. A good criteria is the language in which you'd find the
+### best documentation on web development on the web.
+
+# Header for the list of Service Workers displayed in the application panel for the current page.
+serviceworker-list-header = Service Workers
+
+# Text displayed next to the list of Service Workers to encourage users to check out
+# about:debugging to see all registered Service Workers.
+serviceworker-list-aboutdebugging = Open <a>about:debugging</a> for Service Workers from other domains
+
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = Unregister
+
+# Text for the debug link displayed for an already started Service Worker. Clicking on the
+# link opens a new devtools toolbox for this service worker. The title attribute is only
+# displayed when the link is disabled.
+serviceworker-worker-debug = Debug
+ .title = Only running service workers can be debugged
+
+# Alt text for the image icon displayed inside a debug link for a service worker.
+serviceworker-worker-inspect-icon =
+ .alt = Inspect
+
+# Text for the start link displayed for a registered but not running Service Worker.
+# Clicking on the link will attempt to start the service worker.
+serviceworker-worker-start3 = Start
+
+# Text displayed for the updated time of the service worker. The <time> element will
+# display the last update time of the service worker script.
+serviceworker-worker-updated = Updated <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
+
+## Service Worker status strings: all serviceworker-worker-status-* strings are also
+## defined in aboutdebugging.properties and should be synchronized with them.
+
+# Service Worker status. A running service worker is registered, currently executed, can
+# be debugged and stopped.
+serviceworker-worker-status-running = Running
+
+# Service Worker status. A stopped service worker is registered but not currently active.
+serviceworker-worker-status-stopped = Stopped
+
+# Text displayed when no service workers are visible for the current page.
+serviceworker-empty-intro2 = No service workers found
+
+# Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
+serviceworker-empty-intro-link = Learn more
+
+# Text displayed when there are no Service Workers to display for the current page,
+# introducing hints to debug Service Worker issues.
+# <a> and <span> are links that will open the webconsole and the debugger, respectively.
+serviceworker-empty-suggestions2 = If the current page should have a service worker, you could look for errors in the <a>Console</a> or step through your service worker registration in the <span>Debugger</span>.
+
+# Suggestion to go to about:debugging in order to see Service Workers for all domains.
+# Link will open about:debugging in a new tab.
+serviceworker-empty-suggestions-aboutdebugging2 = View service workers from other domains
+
+# Header for the Manifest page when we have an actual manifest
+manifest-view-header = App Manifest
+
+# Header for the Manifest page when there's no manifest to inspect
+manifest-empty-intro2 = No web app manifest detected
+
+# The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
+manifest-empty-intro-link = Learn how to add a manifest
+
+# Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
+manifest-item-warnings = Errors and Warnings
+
+# Header for the Identity section of Manifest inspection displayed in the application panel.
+manifest-item-identity = Identity
+
+# Header for the Presentation section of Manifest inspection displayed in the application panel.
+manifest-item-presentation = Presentation
+
+# Header for the Icon section of Manifest inspection displayed in the application panel.
+manifest-item-icons = Icons
+
+# Text displayed while we are loading the manifest file
+manifest-loading = Loading manifest…
+
+# Text displayed when the manifest has been successfully loaded
+manifest-loaded-ok = Manifest loaded.
+
+# Text displayed as a caption when there has been an error while trying to
+# load the manifest
+manifest-loaded-error = There was an error while loading the manifest:
+
+# Text displayed as an error when there has been a Firefox DevTools error while
+# trying to load the manifest
+manifest-loaded-devtools-error = Firefox DevTools error
+
+# Text displayed when the page has no manifest available
+manifest-non-existing = No manifest found to inspect.
+
+# Text displayed when the page has a manifest embedded in a Data URL and
+# thus we cannot link to it.
+manifest-json-link-data-url = The manifest is embedded in a Data URL.
+
+# Text displayed at manifest icons to label their purpose, as declared
+# in the manifest.
+manifest-icon-purpose = Purpose: <code>{ $purpose }</code>
+
+# Text displayed as the alt attribute for <img> tags showing the icons in the
+# manifest.
+manifest-icon-img =
+ .alt = Icon
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest. `$sizes` is a user-dependent string that has been parsed as a
+# space-separated list of `<width>x<height>` sizes or the keyword `any`.
+manifest-icon-img-title = Icon with sizes: { $sizes }
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest, in case there's no icon size specified by the user
+manifest-icon-img-title-no-sizes = Unspecified size icon
+
+# Sidebar navigation item for Manifest sidebar item section
+sidebar-item-manifest = Manifest
+ .alt = Manifest Icon
+ .title = Manifest
+
+# Sidebar navigation item for Service Workers sidebar item section
+sidebar-item-service-workers = Service Workers
+ .alt = Service Workers Icon
+ .title = Service Workers
+
+# Text for the ALT and TITLE attributes of the warning icon
+icon-warning =
+ .alt = Warning icon
+ .title =
+ Warning
+ titleWarning
+
+ Warning
+
+# Text for the ALT and TITLE attributes of the error icon
+icon-error =
+ .alt = Error icon
+ .title = Error
+
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/compatibility.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/compatibility.ftl
new file mode 100644
index 0000000000..05210e7f1a
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/compatibility.ftl
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Messages used as headers in the main pane
+
+compatibility-selected-element-header = Selected Element
+compatibility-all-elements-header = All Issues
+
+## Message used as labels for the type of issue
+
+compatibility-issue-deprecated = (deprecated)
+compatibility-issue-experimental = (experimental)
+compatibility-issue-prefixneeded = (prefix needed)
+compatibility-issue-deprecated-experimental = (deprecated, experimental)
+compatibility-issue-deprecated-prefixneeded = (deprecated, prefix needed)
+compatibility-issue-experimental-prefixneeded = (experimental, prefix needed)
+compatibility-issue-deprecated-experimental-prefixneeded = (deprecated, experimental, prefix needed)
+
+## Messages used as labels and titles for buttons in the footer
+
+compatibility-settings-button-label = Settings
+compatibility-settings-button-title =
+ .title = Settings
+
+## Messages used as headers in settings pane
+
+compatibility-settings-header = Settings
+compatibility-target-browsers-header = Target Browsers
+
+##
+
+# Text used as the label for the number of nodes where the issue occurred
+# Variables:
+# $number (Number) - The number of nodes where the issue occurred
+compatibility-issue-occurrences =
+ { $number ->
+ [one] { $number } occurrence
+ *[other] { $number } occurrences
+ }
+
+compatibility-no-issues-found = No compatibility issues found.
+compatibility-close-settings-button =
+ .title = Close settings
+
+# Text used in the element containing the browser icons for a given compatibility issue.
+# Line breaks are significant.
+# Variables:
+# $browsers (String) - A line-separated list of browser information (e.g. Firefox 98\nChrome 99).
+compatibility-issue-browsers-list =
+ .title =
+ Compatibility issues in:
+ { $browsers }
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/perftools.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/perftools.ftl
new file mode 100644
index 0000000000..87b44bf17b
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/perftools.ftl
@@ -0,0 +1,161 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used in DevTools’ performance-new panel, about:profiling, and
+### the remote profiling panel. There are additional profiler strings in the appmenu.ftl
+### file that are used for the profiler popup.
+
+perftools-intro-title = Profiler Settings
+perftools-intro-description =
+ Recordings launch profiler.firefox.com in a new tab. All data is stored
+ locally, but you can choose to upload it for sharing.
+
+## All of the headings for the various sections.
+
+perftools-heading-settings = Full Settings
+perftools-heading-buffer = Buffer Settings
+perftools-heading-features = Features
+perftools-heading-features-default = Features (Recommended on by default)
+perftools-heading-features-disabled = Disabled Features
+perftools-heading-features-experimental = Experimental
+perftools-heading-threads = Threads
+perftools-heading-threads-jvm = JVM Threads
+perftools-heading-local-build = Local build
+
+##
+
+perftools-description-intro =
+ Recordings launch <a>profiler.firefox.com</a> in a new tab. All data is stored
+ locally, but you can choose to upload it for sharing.
+perftools-description-local-build =
+ If you’re profiling a build that you have compiled yourself, on this
+ machine, please add your build’s objdir to the list below so that
+ it can be used to look up symbol information.
+
+## The controls for the interval at which the profiler samples the code.
+
+perftools-range-interval-label = Sampling interval:
+perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits: 2) } ms
+
+##
+
+# The size of the memory buffer used to store things in the profiler.
+perftools-range-entries-label = Buffer size:
+
+perftools-custom-threads-label = Add custom threads by name:
+
+perftools-devtools-interval-label = Interval:
+perftools-devtools-threads-label = Threads:
+perftools-devtools-settings-label = Settings
+
+## Various statuses that affect the current state of profiling, not typically displayed.
+
+perftools-status-recording-stopped-by-another-tool = The recording was stopped by another tool.
+perftools-status-restart-required = The browser must be restarted to enable this feature.
+
+## These are shown briefly when the user is waiting for the profiler to respond.
+
+perftools-request-to-stop-profiler = Stopping recording
+perftools-request-to-get-profile-and-stop-profiler = Capturing profile
+
+##
+
+perftools-button-start-recording = Start recording
+perftools-button-capture-recording = Capture recording
+perftools-button-cancel-recording = Cancel recording
+perftools-button-save-settings = Save settings and go back
+perftools-button-restart = Restart
+perftools-button-add-directory = Add a directory
+perftools-button-remove-directory = Remove selected
+perftools-button-edit-settings = Edit Settings…
+
+## These messages are descriptions of the threads that can be enabled for the profiler.
+
+perftools-thread-gecko-main =
+ .title = The main processes for both the parent process, and content processes
+perftools-thread-compositor =
+ .title = Composites together different painted elements on the page
+perftools-thread-dom-worker =
+ .title = This handles both web workers and service workers
+perftools-thread-renderer =
+ .title = When WebRender is enabled, the thread that executes OpenGL calls
+perftools-thread-render-backend =
+ .title = The WebRender RenderBackend thread
+perftools-thread-timer =
+ .title = The thread handling timers (setTimeout, setInterval, nsITimer)
+perftools-thread-style-thread =
+ .title = Style computation is split into multiple threads
+pref-thread-stream-trans =
+ .title = Network stream transport
+perftools-thread-socket-thread =
+ .title = The thread where networking code runs any blocking socket calls
+perftools-thread-img-decoder =
+ .title = Image decoding threads
+perftools-thread-dns-resolver =
+ .title = DNS resolution happens on this thread
+perftools-thread-task-controller =
+ .title = TaskController thread pool threads
+perftools-thread-jvm-gecko =
+ .title = The main Gecko JVM thread
+perftools-thread-jvm-nimbus =
+ .title = The main threads for the Nimbus experiments SDK
+perftools-thread-jvm-default-dispatcher =
+ .title = The Default dispatcher for the Kotlin coroutines library
+perftools-thread-jvm-glean =
+ .title = The main threads for the Glean telemetry SDK
+perftools-thread-jvm-arch-disk-io =
+ .title = The IO dispatcher for the Kotlin coroutines library
+perftools-thread-jvm-pool =
+ .title = Threads created in an unnamed thread pool
+
+##
+
+perftools-record-all-registered-threads = Bypass selections above and record all registered threads
+
+perftools-tools-threads-input-label =
+ .title = These thread names are a comma separated list that is used to enable profiling of the threads in the profiler. The name needs to be only a partial match of the thread name to be included. It is whitespace sensitive.
+
+## Onboarding UI labels. These labels are displayed in the new performance panel UI, when
+## devtools.performance.new-panel-onboarding preference is true.
+
+perftools-onboarding-message = <b>New</b>: { -profiler-brand-name } is now integrated into Developer Tools. <a>Learn more</a> about this powerful new tool.
+
+perftools-onboarding-close-button =
+ .aria-label = Close the onboarding message
+
+## Profiler presets
+
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/popup/background.jsm.js
+# The same labels and descriptions are also defined in appmenu.ftl.
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/shared/background.jsm.js
+# The same labels and descriptions are also defined in appmenu.ftl.
+
+perftools-presets-web-developer-label = Web Developer
+perftools-presets-web-developer-description = Recommended preset for most web app debugging, with low overhead.
+
+perftools-presets-firefox-label = { -brand-shorter-name }
+perftools-presets-firefox-description = Recommended preset for profiling { -brand-shorter-name }.
+
+perftools-presets-graphics-label = Graphics
+perftools-presets-graphics-description = Preset for investigating graphics bugs in { -brand-shorter-name }.
+
+perftools-presets-media-label = Media
+perftools-presets-media-description2 = Preset for investigating audio and video bugs in { -brand-shorter-name }.
+
+perftools-presets-networking-label = Networking
+perftools-presets-networking-description = Preset for investigating networking bugs in { -brand-shorter-name }.
+
+# "Power" is used in the sense of energy (electricity used by the computer).
+perftools-presets-power-label = Power
+perftools-presets-power-description = Preset for investigating power use bugs in { -brand-shorter-name }, with low overhead.
+
+perftools-presets-custom-label = Custom
+
+##
+
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/storage.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/storage.ftl
new file mode 100644
index 0000000000..7d6cd8c331
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/storage.ftl
@@ -0,0 +1,132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Storage Inspector.
+
+# Key shortcut used to focus the filter box on top of the data view
+storage-filter-key = CmdOrCtrl+F
+
+# Hint shown when the selected storage host does not contain any data
+storage-table-empty-text = No data present for selected host
+
+# Hint shown when the cookies storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cookies
+storage-table-type-cookies-hint = View and edit cookies by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the local storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-localstorage-hint = View and edit the local storage by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the session storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-sessionstorage-hint = View and edit the session storage by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the IndexedDB storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/IndexedDB
+storage-table-type-indexeddb-hint = View and delete IndexedDB entries by selecting a database. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the cache storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cache_Storage
+storage-table-type-cache-hint = View and delete the cache storage entries by selecting a storage. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Hint shown when the extension storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Extension_Storage
+storage-table-type-extensionstorage-hint = View and edit the extension storage by selecting a host. <a data-l10n-name="learn-more-link">Learn more</a>
+
+# Placeholder for the searchbox that allows you to filter the table items
+storage-search-box =
+ .placeholder = Filter items
+
+# Placeholder text in the sidebar search box
+storage-variable-view-search-box =
+ .placeholder = Filter values
+
+# Add Item button title
+storage-add-button =
+ .title = Add Item
+
+# Refresh button title
+storage-refresh-button =
+ .title = Refresh Items
+
+# Context menu action to delete all storage items
+storage-context-menu-delete-all =
+ .label = Delete All
+
+# Context menu action to delete all session cookies
+storage-context-menu-delete-all-session-cookies =
+ .label = Delete All Session Cookies
+
+# Context menu action to copy a storage item
+storage-context-menu-copy =
+ .label = Copy
+
+# Context menu action to delete storage item
+# Variables:
+# $itemName (String) - Name of the storage item that will be deleted
+storage-context-menu-delete =
+ .label = Delete “{ $itemName }”
+
+# Context menu action to add an item
+storage-context-menu-add-item =
+ .label = Add Item
+
+# Context menu action to delete all storage items from a given host
+# Variables:
+# $host (String) - Host for which we want to delete the items
+storage-context-menu-delete-all-from =
+ .label = Delete All From “{ $host }”
+
+## Header names of the columns in the Storage Table for each type of storage available
+## through the Storage Tree to the side.
+
+storage-table-headers-cookies-name = Name
+storage-table-headers-cookies-value = Value
+storage-table-headers-cookies-expires = Expires / Max-Age
+storage-table-headers-cookies-size = Size
+storage-table-headers-cookies-last-accessed = Last Accessed
+storage-table-headers-cookies-creation-time = Created
+storage-table-headers-cache-status = Status
+storage-table-headers-extension-storage-area = Storage Area
+
+## Labels for Storage type groups present in the Storage Tree, like cookies, local storage etc.
+
+storage-tree-labels-cookies = Cookies
+storage-tree-labels-local-storage = Local Storage
+storage-tree-labels-session-storage = Session Storage
+storage-tree-labels-indexed-db = Indexed DB
+storage-tree-labels-cache = Cache Storage
+storage-tree-labels-extension-storage = Extension Storage
+
+##
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is closed.
+storage-expand-pane =
+ .title = Expand Pane
+
+# Tooltip for the button that collapses the right panel in the
+# storage UI when the panel is open.
+storage-collapse-pane =
+ .title = Collapse Pane
+
+# String displayed in the expires column when the cookie is a Session Cookie
+storage-expires-session = Session
+
+# Heading displayed over the item value in the sidebar
+storage-data = Data
+
+# Heading displayed over the item parsed value in the sidebar
+storage-parsed-value = Parsed Value
+
+# Warning notification when IndexedDB database could not be deleted immediately.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-blocked = Database “{ $dbName }” will be deleted after all connections are closed.
+
+# Error notification when IndexedDB database could not be deleted.
+# Variables:
+# $dbName (String) - Name of the database
+storage-idb-delete-error = Database “{ $dbName }” could not be deleted.
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/styleeditor.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/styleeditor.ftl
new file mode 100644
index 0000000000..b6a1adad69
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/styleeditor.ftl
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+styleeditor-new-button =
+ .tooltiptext = Create and append a new style sheet to the document
+ .accesskey = N
+styleeditor-import-button =
+ .tooltiptext = Import and append an existing style sheet to the document
+ .accesskey = I
+styleeditor-filter-input =
+ .placeholder = Filter style sheets
+styleeditor-visibility-toggle =
+ .tooltiptext = Toggle style sheet visibility
+ .accesskey = S
+styleeditor-visibility-toggle-system =
+ .tooltiptext = System style sheets can’t be disabled
+styleeditor-save-button = Save
+ .tooltiptext = Save this style sheet to a file
+ .accesskey = S
+styleeditor-options-button =
+ .tooltiptext = Style Editor options
+styleeditor-at-rules = At-rules
+styleeditor-editor-textbox =
+ .data-placeholder = Type CSS here.
+styleeditor-no-stylesheet = This page has no style sheet.
+styleeditor-no-stylesheet-tip = Perhaps you'd like to <a data-l10n-name="append-new-stylesheet">append a new style sheet</a>?
+styleeditor-open-link-new-tab =
+ .label = Open Link in New Tab
+styleeditor-copy-url =
+ .label = Copy URL
+styleeditor-find =
+ .label = Etsi
+ .accesskey = E
+styleeditor-find-again =
+ .label = Etsi seuraava
+ .accesskey = s
+styleeditor-go-to-line =
+ .label = Jump to line…
+ .accesskey = J
+# Label displayed when searching a term that is not found in any stylesheet path
+styleeditor-stylesheet-all-filtered = No matching style sheet has been found.
+# This string is shown in the style sheets list
+# Variables:
+# $ruleCount (Integer) - The number of rules in the stylesheet.
+styleeditor-stylesheet-rule-count =
+ { $ruleCount ->
+ [one] { $ruleCount } rule.
+ *[other] { $ruleCount } rules.
+ }
+# Title for the pretty print button in the editor footer.
+styleeditor-pretty-print-button =
+ .title = Pretty print style sheet
+# Title for the pretty print button in the editor footer, when it's disabled
+styleeditor-pretty-print-button-disabled =
+ .title = Can only pretty print CSS files
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/toolbox-options.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/toolbox-options.ftl
new file mode 100644
index 0000000000..208637e6fb
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/toolbox-options.ftl
@@ -0,0 +1,154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools options
+
+
+## Default Developer Tools section
+
+# The heading
+options-select-default-tools-label = Default Developer Tools
+
+# The label for the explanation of the * marker on a tool which is currently not supported
+# for the target of the toolbox.
+options-tool-not-supported-label = * Not supported for current toolbox target
+
+# The label for the heading of group of checkboxes corresponding to the developer tools
+# added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
+options-select-additional-tools-label = Developer Tools installed by add-ons
+
+# The label for the heading of group of checkboxes corresponding to the default developer
+# tool buttons.
+options-select-enabled-toolbox-buttons-label = Available Toolbox Buttons
+
+# The label for the heading of the radiobox corresponding to the theme
+options-select-dev-tools-theme-label = Themes
+
+## Inspector section
+
+# The heading
+options-context-inspector = Inspector
+
+# The label for the checkbox option to show user agent styles
+options-show-user-agent-styles-label = Show Browser Styles
+options-show-user-agent-styles-tooltip =
+ .title = Turning this on will show default styles that are loaded by the browser.
+
+# The label for the checkbox option to enable collapse attributes
+options-collapse-attrs-label = Truncate DOM attributes
+options-collapse-attrs-tooltip =
+ .title = Truncate long attributes in the inspector
+
+# The label for the checkbox option to enable the "drag to update" feature
+options-inspector-draggable-properties-label = Click and drag to edit size values
+options-inspector-draggable-properties-tooltip =
+ .title = Click and drag to edit size values in the inspector rules view.
+
+# The label for the checkbox option to enable simplified highlighting on page elements
+# within the inspector for users who enabled prefers-reduced-motion = reduce
+options-inspector-simplified-highlighters-label = Use simpler highlighters with prefers-reduced-motion
+options-inspector-simplified-highlighters-tooltip =
+ .title = Enables simplified highlighters when prefers-reduced-motion is enabled. Draws lines instead of filled rectangles around highlighted elements to avoid flashing effects.
+
+## "Default Color Unit" options for the Inspector
+
+options-default-color-unit-label = Default color unit
+options-default-color-unit-authored = As Authored
+options-default-color-unit-hex = Hex
+options-default-color-unit-hsl = HSL(A)
+options-default-color-unit-rgb = RGB(A)
+options-default-color-unit-hwb = HWB
+options-default-color-unit-name = Color Names
+
+## Style Editor section
+
+# The heading
+options-styleeditor-label = Style Editor
+
+# The label for the checkbox that toggles autocompletion of css in the Style Editor
+options-stylesheet-autocompletion-label = Autocomplete CSS
+options-stylesheet-autocompletion-tooltip =
+ .title = Autocomplete CSS properties, values and selectors in Style Editor as you type
+
+## Screenshot section
+
+# The heading
+options-screenshot-label = Screenshot Behavior
+
+# Label for the checkbox that toggles screenshot to clipboard feature
+options-screenshot-clipboard-only-label = Screenshot to clipboard only
+options-screenshot-clipboard-tooltip2 =
+ .title = Tallentaa kuvakaappauksen suoraan leikepöydälle
+
+# Label for the checkbox that toggles the camera shutter audio for screenshot tool
+options-screenshot-audio-label = Play camera shutter sound
+options-screenshot-audio-tooltip =
+ .title = Enables the camera audio sound when taking screenshot
+
+## Editor section
+
+# The heading
+options-sourceeditor-label = Editor Preferences
+
+options-sourceeditor-detectindentation-tooltip =
+ .title = Guess indentation based on source content
+options-sourceeditor-detectindentation-label = Detect indentation
+options-sourceeditor-autoclosebrackets-tooltip =
+ .title = Automatically insert closing brackets
+options-sourceeditor-autoclosebrackets-label = Autoclose brackets
+options-sourceeditor-expandtab-tooltip =
+ .title = Use spaces instead of the tab character
+options-sourceeditor-expandtab-label = Indent using spaces
+options-sourceeditor-tabsize-label = Tab size
+options-sourceeditor-keybinding-label = Keybindings
+options-sourceeditor-keybinding-default-label = Default
+
+## Advanced section
+
+# The heading (this item is also used in perftools.ftl)
+options-context-advanced-settings = Advanced settings
+
+# The label for the checkbox that toggles the HTTP cache on or off
+options-disable-http-cache-label = Disable HTTP Cache (when toolbox is open)
+options-disable-http-cache-tooltip =
+ .title = Turning this option on will disable the HTTP cache for all tabs that have the toolbox open. Service Workers are not affected by this option.
+
+# The label for checkbox that toggles JavaScript on or off
+options-disable-javascript-label = Disable JavaScript *
+options-disable-javascript-tooltip =
+ .title = Turning this option on will disable JavaScript for the current tab. If the tab or the toolbox is closed then this setting will be forgotten.
+
+# The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
+options-enable-chrome-label = Enable browser chrome and add-on debugging toolboxes
+options-enable-chrome-tooltip =
+ .title = Turning this option on will allow you to use various developer tools in browser context (via Tools > Web Developer > Browser Toolbox) and debug add-ons from the Add-ons Manager
+
+# The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
+options-enable-remote-label = Enable remote debugging
+options-enable-remote-tooltip2 =
+ .title = Turning this option on will allow to debug this browser instance remotely
+
+# The label for checkbox that enables F12 as a shortcut to open DevTools
+options-enable-f12-label = Use the F12 key to open or close DevTools
+options-enable-f12-tooltip =
+ .title = Turning this option on will bind the F12 key to open or close the DevTools toolbox
+
+# The label for checkbox that toggles custom formatters for objects
+options-enable-custom-formatters-label = Enable custom formatters
+options-enable-custom-formatters-tooltip =
+ .title = Turning this option on will allow sites to define custom formatters for DOM objects
+
+# The label for checkbox that toggles the service workers testing over HTTP on or off.
+options-enable-service-workers-http-label = Enable Service Workers over HTTP (when toolbox is open)
+options-enable-service-workers-http-tooltip =
+ .title = Turning this option on will enable the service workers over HTTP for all tabs that have the toolbox open.
+
+# The label for the checkbox that toggles source maps in all tools.
+options-source-maps-label = Enable Source Maps
+options-source-maps-tooltip =
+ .title = If you enable this option sources will be mapped in the tools.
+
+# The message shown for settings that trigger page reload
+options-context-triggers-page-refresh = * Current session only, reloads the page
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/toolbox.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/toolbox.ftl
new file mode 100644
index 0000000000..009d11c56f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/toolbox.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These messages are used in the DevTools toolbox.
+
+
+## These labels are shown in the "..." menu in the toolbox, and represent different
+## commands such as the docking of DevTools, toggling features, and viewing some
+## external links. Some of the commands have the keyboard shortcut shown next to
+## the label.
+
+toolbox-meatball-menu-dock-bottom-label = Dock to bottom
+toolbox-meatball-menu-dock-left-label = Dock to left
+toolbox-meatball-menu-dock-right-label = Dock to right
+toolbox-meatball-menu-dock-separate-window-label = Separate window
+
+toolbox-meatball-menu-splitconsole-label = Show split console
+toolbox-meatball-menu-hideconsole-label = Hide split console
+
+toolbox-meatball-menu-settings-label = Settings
+toolbox-meatball-menu-documentation-label = Documentation…
+toolbox-meatball-menu-community-label = Community…
+
+# This menu item is only available in the browser toolbox. It forces the popups/panels
+# to stay visible on blur, which is primarily useful for addon developers and Firefox
+# contributors.
+toolbox-meatball-menu-noautohide-label = Disable popup auto-hide
+
+toolbox-meatball-menu-pseudo-locale-accented = Enable “accented” locale
+toolbox-meatball-menu-pseudo-locale-bidi = Enable “bidi” locale
+
+##
+
+
+## These labels are shown in the top-toolbar in the Browser Toolbox and Browser Console
+
+toolbox-mode-browser-toolbox-label = Browser Toolbox Mode
+toolbox-mode-browser-console-label = Browser Console Mode
+
+toolbox-mode-everything-label = Multiprocess
+toolbox-mode-everything-sub-label = (Slower)
+toolbox-mode-everything-container =
+ .title = Debug everything in all processes
+
+toolbox-mode-parent-process-label = Parent process only
+toolbox-mode-parent-process-sub-label = (Fast)
+toolbox-mode-parent-process-container =
+ .title = Only focus on resources from the parent process.
+
+toolbox-always-on-top-enabled2 = Disable always on top
+ .title = This will restart the Developer Tools
+toolbox-always-on-top-disabled2 = Enable always on top
+ .title = This will restart the Developer Tools
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/client/tooltips.ftl b/thunderbird-l10n/fi/localization/fi/devtools/client/tooltips.ftl
new file mode 100644
index 0000000000..349f700859
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/client/tooltips.ftl
@@ -0,0 +1,101 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for Developer Tools tooltips.
+
+learn-more = <span data-l10n-name="link">Learn more</span>
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain why
+## the property is not applied.
+## Variables:
+## $property (string) - A CSS property name e.g. "color".
+## $display (string) - A CSS display value e.g. "inline-block".
+
+inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s neither a flex container nor a grid container.
+inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container, a grid container, or a multi-column container.
+inactive-css-not-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a multi-column container.
+inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid or flex item.
+inactive-css-not-grid-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid item.
+inactive-css-not-grid-container = <strong>{ $property }</strong> has no effect on this element since it’s not a grid container.
+inactive-css-not-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a flex item.
+inactive-css-not-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container.
+inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> has no effect on this element since it’s not an inline or table-cell element.
+inactive-css-first-line-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::first-line pseudo-elements.
+inactive-css-first-letter-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::first-letter pseudo-elements.
+inactive-css-placeholder-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::placeholder pseudo-elements.
+inactive-css-property-because-of-display = <strong>{ $property }</strong> has no effect on this element since it has a display of <strong>{ $display }</strong>.
+inactive-css-not-display-block-on-floated = The <strong>display</strong> value has been changed by the engine to <strong>block</strong> because the element is <strong>floated</strong>.
+inactive-css-property-is-impossible-to-override-in-visited = It’s impossible to override <strong>{ $property }</strong> due to <strong>:visited</strong> restriction.
+inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> has no effect on this element since it’s not a positioned element.
+inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> has no effect on this element since <strong>overflow:hidden</strong> is not set.
+inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> has no effect on internal table elements.
+inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> has no effect on internal table elements except table cells.
+inactive-css-not-table = <strong>{ $property }</strong> has no effect on this element since it’s not a table.
+inactive-css-not-table-cell = <strong>{ $property }</strong> has no effect on this element since it’s not a table cell.
+inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> has no effect on this element since it doesn’t scroll.
+inactive-css-border-image = <strong>{ $property }</strong> has no effect on this element since it cannot be applied to internal table elements where <strong>border-collapse</strong> is set to <strong>collapse</strong> on the parent table element.
+inactive-css-ruby-element = <strong>{ $property }</strong> has no effect on this element since it is a ruby element. Its size is determined by the font size of the ruby text.
+inactive-css-highlight-pseudo-elements-not-supported = <strong>{ $property }</strong> is not supported on highlight pseudo-elements.
+inactive-css-cue-pseudo-element-not-supported = <strong>{ $property }</strong> is not supported on ::cue pseudo-elements.
+# Variables:
+# $lineCount (integer) - The number of lines the element has.
+inactive-css-text-wrap-balance-lines-exceeded =
+ { $lineCount ->
+ [one] <strong>{ $property }</strong> has no effect on this element because it has more than { $lineCount } line.
+ *[other] <strong>{ $property }</strong> has no effect on this element because it has more than { $lineCount } lines.
+ }
+inactive-css-text-wrap-balance-fragmented = <strong>{ $property }</strong> has no effect on this element because it is fragmented, i.e. its content is split across multiple columns or pages.
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain how
+## the problem can be solved.
+
+inactive-css-not-grid-or-flex-container-fix = Try adding <strong>display:grid</strong> or <strong>display:flex</strong>. { learn-more }
+inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Try adding either <strong>display:grid</strong>, <strong>display:flex</strong>, or <strong>columns:2</strong>. { learn-more }
+inactive-css-not-multicol-container-fix = Try adding either <strong>column-count</strong> or <strong>column-width</strong>. { learn-more }
+inactive-css-not-grid-or-flex-item-fix-3 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
+inactive-css-not-grid-item-fix-2 = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong> to the element’s parent. { learn-more }
+inactive-css-not-grid-container-fix = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong>. { learn-more }
+inactive-css-not-flex-item-fix-2 = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
+inactive-css-not-flex-container-fix = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-inline-or-tablecell-fix = Try adding <strong>display:inline</strong> or <strong>display:table-cell</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Try adding <strong>display:inline-block</strong> or <strong>display:block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Try adding <strong>display:inline-block</strong>. { learn-more }
+inactive-css-not-display-block-on-floated-fix = Try removing <strong>float</strong> or adding <strong>display:block</strong>. { learn-more }
+inactive-css-position-property-on-unpositioned-box-fix = Try setting its <strong>position</strong> property to something other than <strong>static</strong>. { learn-more }
+inactive-text-overflow-when-no-overflow-fix = Try adding <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-fix = Try setting its <strong>display</strong> property to something else than <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-except-table-cells-fix = Try setting its <strong>display</strong> property to something else than <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-table-fix = Try adding <strong>display:table</strong> or <strong>display:inline-table</strong>. { learn-more }
+inactive-css-not-table-cell-fix = Try adding <strong>display:table-cell</strong>. { learn-more }
+inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, or <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-border-image-fix = On the parent table element, remove the property or change the value of <strong>border-collapse</strong> to a value other than <strong>collapse</strong>. { learn-more }
+inactive-css-ruby-element-fix = Try changing the <strong>font-size</strong> of the ruby text. { learn-more }
+inactive-css-text-wrap-balance-lines-exceeded-fix = Try to reduce the number of lines. { learn-more }
+inactive-css-text-wrap-balance-fragmented-fix = Avoid splitting the element’s content e.g. by removing the columns or by using <strong>page-break-inside:avoid</strong>. { learn-more }
+
+## In the Rule View when a CSS property may have compatibility issues with other browsers
+## we display an icon. When this icon is hovered this message is displayed to explain why
+## the property is incompatible and the platforms it is incompatible on.
+## Variables:
+## $property (string) - A CSS declaration name e.g. "-moz-user-select" that can be a platform specific alias.
+## $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
+
+css-compatibility-default-message = <strong>{ $property }</strong> is not supported in the following browsers:
+css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards. It is not supported in the following browsers:
+css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards.
+css-compatibility-deprecated-message = <strong>{ $property }</strong> is deprecated by W3C standards. It is not supported in the following browsers:
+css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> is deprecated by W3C standards.
+css-compatibility-experimental-message = <strong>{ $property }</strong> is an experimental property. It is not supported in the following browsers:
+css-compatibility-experimental-supported-message = <strong>{ $property }</strong> is an experimental property.
+css-compatibility-learn-more-message = <span data-l10n-name="link">Learn more</span> about <strong>{ $rootProperty }</strong>
+
+## In the Rule View when a rule selector can causes issues, we display an icon.
+## When this icon is hovered one or more of those messages are displayed to explain what
+## the issue are.
+
+# :has() should not be translated
+css-selector-warning-unconstrained-has = This selector uses unconstrained <strong>:has()</strong>, which can be slow
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/shared/debugger-paused-reasons.ftl b/thunderbird-l10n/fi/localization/fi/devtools/shared/debugger-paused-reasons.ftl
new file mode 100644
index 0000000000..c8fbe6aaf1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/shared/debugger-paused-reasons.ftl
@@ -0,0 +1,87 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Debugger which is available from the Web
+### Developer sub-menu -> 'Debugger', as well as in the "Paused Debugger
+### Overlay" that is displayed in the content page when it pauses.
+
+
+### The correct localization of this file might be to keep it in
+### English, or another language commonly spoken among web developers.
+### You want to make that choice consistent across the developer tools.
+### A good criteria is the language in which you'd find the best
+### documentation on web development on the web.
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused due to a `debugger` statement in the code
+whypaused-debugger-statement = Paused on debugger statement
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a breakpoint
+whypaused-breakpoint = Paused on breakpoint
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event breakpoint.
+whypaused-event-breakpoint = Paused on event breakpoint
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an exception
+whypaused-exception = Paused on exception
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a DOM mutation breakpoint
+whypaused-mutation-breakpoint = Paused on DOM mutation
+
+# The text that is displayed to describe an added node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-added = Added:
+
+# The text that is displayed to describe a removed node which triggers a subtree
+# modification
+whypaused-mutation-breakpoint-removed = Removed:
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a JS execution
+whypaused-interrupted = Paused at Execution
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused while stepping in or out of the stack
+whypaused-resume-limit = Paused while stepping
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a dom event
+whypaused-pause-on-dom-events = Paused on event listener
+
+# The text that is displayed in an info block when evaluating a conditional
+# breakpoint throws an error
+whypaused-breakpoint-condition-thrown = Error with conditional breakpoint
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an xml http request
+whypaused-xhr = Paused on XMLHttpRequest
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a promise rejection
+whypaused-promise-rejection = Paused on promise rejection
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused at a watchpoint on an object property
+whypaused-get-watchpoint = Paused on property access
+
+# The text that is displayed in an info block explaining how the debugger is
+# currently paused at a watchpoint on an object property
+whypaused-set-watchpoint = Paused on property set
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an assert
+whypaused-assert = Paused on assertion
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on a debugger statement
+whypaused-debug-command = Paused on debugged function
+
+# The text that is displayed in a info block explaining how the debugger is
+# currently paused on an event listener breakpoint set
+whypaused-other = Debugger paused
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/shared/highlighters.ftl b/thunderbird-l10n/fi/localization/fi/devtools/shared/highlighters.ftl
new file mode 100644
index 0000000000..939155f575
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/shared/highlighters.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### This file contains strings used in highlighters.
+### Highlighters are visualizations that DevTools draws on top of content to aid
+### in understanding content sizing, etc.
+
+# The row and column position of a grid cell shown in the grid cell infobar when hovering
+# over the CSS grid outline.
+# Variables
+# $row (integer) - The row index
+# $column (integer) - The column index
+grid-row-column-positions = Row { $row } / Column { $column }
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid container.
+gridtype-container = Grid Container
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a grid item.
+gridtype-item = Grid Item
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is both a grid container and a grid item.
+gridtype-dual = Grid Container/Item
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex container.
+flextype-container = Flex Container
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is a flex item.
+flextype-item = Flex Item
+
+# The layout type of an element shown in the infobar when hovering over a DOM element and
+# it is both a flex container and a flex item.
+flextype-dual = Flex Container/Item
+
+# The message displayed in the content page when the user clicks on the
+# "Pick an element from the page" in about:devtools-toolbox inspector panel, when
+# debugging a remote page.
+# Variables
+# $action (string) - Will either be remote-node-picker-notice-action-desktop or
+# remote-node-picker-notice-action-touch
+remote-node-picker-notice = DevTools Node Picker enabled. { $action }
+
+# Text displayed in `remote-node-picker-notice`, when the remote page is on desktop
+remote-node-picker-notice-action-desktop = Click an element to select it in the Inspector
+
+# Text displayed in `remote-node-picker-notice`, when the remote page is on Android
+remote-node-picker-notice-action-touch = Tap an element to select it in the Inspector
+
+# The text displayed in the button that is in the notice in the content page when the user
+# clicks on the "Pick an element from the page" in about:devtools-toolbox inspector panel,
+# when debugging a remote page.
+remote-node-picker-notice-hide-button = Hide
+
+# The text displayed in a toolbox notification message which is only displayed
+# if prefers-reduced-motion is enabled (via OS-level settings or by using the
+# ui.prefersReducedMotion=1 preference).
+simple-highlighters-message = When prefers-reduced-motion is enabled, a simpler highlighter can be enabled in the settings panel, to avoid flashing colors.
+
+# Text displayed in a button inside the "simple-highlighters-message" toolbox
+# notification. "Settings" here refers to the DevTools settings panel.
+simple-highlighters-settings-button = Avaa asetukset
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/shared/webconsole-commands.ftl b/thunderbird-l10n/fi/localization/fi/devtools/shared/webconsole-commands.ftl
new file mode 100644
index 0000000000..5e60472c59
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/shared/webconsole-commands.ftl
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# These strings are used inside the Web Console commands
+# which can be executed in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+
+# Usage string for :block command
+webconsole-commands-usage-block =
+ :block URL_STRING
+
+ Start blocking network requests
+
+ It accepts only one URLSTRING argument, an unquoted string which will be used to block all requests whose URL includes this string.
+ Use :unblock or the Network Monitor request blocking sidebar to undo this.
+# Usage string for :unblock command
+webconsole-commands-usage-unblock =
+ :unblock URL_STRING
+
+ Stop blocking network requests
+
+ It accepts only one argument, the exact same string previously passed to :block.
+# Usage string for :trace command
+webconsole-commands-usage-trace =
+ :trace
+
+ Toggles the JavaScript tracer
+
+ It supports the following arguments:
+ --logMethod to be set to ‘console’ for logging to the web console (the default), or ‘stdout’ for logging to the standard output,
+ --prefix Optional string which will be logged in front of all the trace logs,
+ --help or --usage to show this message.
diff --git a/thunderbird-l10n/fi/localization/fi/devtools/startup/key-shortcuts.ftl b/thunderbird-l10n/fi/localization/fi/devtools/startup/key-shortcuts.ftl
new file mode 100644
index 0000000000..bbc2c7ca1e
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/devtools/startup/key-shortcuts.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Key pressed to open a toolbox with the default panel selected
+devtools-commandkey-toggle-toolbox = I
+# Alternative key pressed to open a toolbox with the default panel selected
+devtools-commandkey-toggle-toolbox-f12 = VK_F12
+# Key pressed to open the Browser Toolbox, used for debugging Firefox itself
+devtools-commandkey-browser-toolbox = I
+# Key pressed to open the Browser Console, used for debugging Firefox itself
+devtools-commandkey-browser-console = J
+# Key pressed to toggle on the Responsive Design Mode
+devtools-commandkey-responsive-design-mode = M
+# Key pressed to open a toolbox with the inspector panel selected
+devtools-commandkey-inspector = C
+# Key pressed to open a toolbox with the web console panel selected
+devtools-commandkey-webconsole = K
+# Key pressed to open a toolbox with the debugger panel selected
+devtools-commandkey-jsdebugger = Z
+# Key pressed to open a toolbox with the network monitor panel selected
+devtools-commandkey-netmonitor = E
+# Key pressed to open a toolbox with the style editor panel selected
+devtools-commandkey-styleeditor = VK_F7
+# Key pressed to open a toolbox with the performance panel selected
+devtools-commandkey-performance = VK_F5
+# Key pressed to open a toolbox with the storage panel selected
+devtools-commandkey-storage = VK_F9
+# Key pressed to open a toolbox with the DOM panel selected
+devtools-commandkey-dom = W
+# Key pressed to open a toolbox with the accessibility panel selected
+devtools-commandkey-accessibility-f12 = VK_F12
+# Key pressed to start or stop the performance profiler
+devtools-commandkey-profiler-start-stop = VK_1
+# Key pressed to capture a recorded performance profile
+devtools-commandkey-profiler-capture = VK_2
+# Key pressed to toggle the JavaScript tracing
+devtools-commandkey-javascript-tracing-toggle = VK_5
diff --git a/thunderbird-l10n/fi/localization/fi/dom/XMLPrettyPrint.ftl b/thunderbird-l10n/fi/localization/fi/dom/XMLPrettyPrint.ftl
new file mode 100644
index 0000000000..befaf56e98
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/dom/XMLPrettyPrint.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+xml-nostylesheet = Tämän XML-dokumentin mukana ei näytä olevan mitään tyyli- tai muotoilutietoa. Dokumentin hierarkia-puu on alla.
diff --git a/thunderbird-l10n/fi/localization/fi/dom/media.ftl b/thunderbird-l10n/fi/localization/fi/dom/media.ftl
new file mode 100644
index 0000000000..07c6d63aec
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/dom/media.ftl
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+default-audio-output-device-label = Äänen oletusarvoinen ulostulolaite
+mediastatus-fallback-title = { -brand-short-name } toistaa mediaa
diff --git a/thunderbird-l10n/fi/localization/fi/locales-preview/aboutTranslations.ftl b/thunderbird-l10n/fi/localization/fi/locales-preview/aboutTranslations.ftl
new file mode 100644
index 0000000000..68e9d8aafd
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/locales-preview/aboutTranslations.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The title of the about:translations page, referencing the translations feature.
+about-translations-title = Translations
+about-translations-header = { -translations-brand-name }
+about-translations-results-placeholder = Translation
+# Text displayed on from-language dropdown when no language is selected
+about-translations-detect = Detect language
+# Text displayed on a language dropdown when the language is in beta
+# Variables:
+# $language (string) - The localized display name of the language
+about-translations-displayname-beta = { $language } BETA
+# Text displayed on from-language dropdown when a language is detected
+# Variables:
+# $language (string) - The localized display name of the detected language
+about-translations-detect-lang = Detect language ({ $language })
+# Text displayed on from-language dropdown when a beta language is detected
+# Variables:
+# $language (string) - The localized display name of the detected language
+about-translations-detect-lang-beta = Detect language ({ $language } BETA)
+# Text displayed on to-language dropdown when no language is selected
+about-translations-select = Select language
+about-translations-textarea =
+ .placeholder = Add text to translate
+about-translations-no-support = Your device does not meet the minimum requirements to use this feature. Try on another device.
+about-translations-engine-error = The translations engine failed to load.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/about3Pane.ftl b/thunderbird-l10n/fi/localization/fi/messenger/about3Pane.ftl
new file mode 100644
index 0000000000..e3cddfb556
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/about3Pane.ftl
@@ -0,0 +1,419 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Message List Header Bar
+
+quick-filter-button =
+ .title = Pikasuodatuspalkki päällä/pois
+quick-filter-button-label = Pikasuodatus
+thread-pane-header-display-button =
+ .title = Viestiluettelon näkymävaihtoehdot
+# Variables:
+# $count (Number) - The number of messages in this folder.
+thread-pane-folder-message-count =
+ { $count ->
+ [one] { $count } viesti
+ *[other] { $count } viestiä
+ }
+# Variables:
+# $count (Number) - The number of messages currently selected.
+thread-pane-folder-selected-count =
+ { $count ->
+ [one] { $count } valittu
+ *[other] { $count } valittu
+ }
+thread-pane-header-context-table-view =
+ .label = Välilehtinäkymä
+thread-pane-header-context-cards-view =
+ .label = Korttinäkymä
+thread-pane-header-context-hide =
+ .label = Piilota viestiluettelon otsikko
+
+## Quick Filter Bar
+
+# The tooltip to display when the user hovers over the sticky button
+# (currently displayed as a push-pin). When active, the sticky button
+# causes the current filter settings to be retained when the user changes
+# folders or opens new tabs. (When inactive, only the state of the text
+# filters are propagated between folder changes and when opening new tabs.)
+quick-filter-bar-sticky =
+ .title = Säilytä suodatusasetukset vaihdettaessa kansiota
+# The tooltip for the filter button that replaces the quick filter buttons with
+# a dropdown menu.
+quick-filter-bar-dropdown =
+ .title = Pikasuodatusvalikko
+quick-filter-bar-dropdown-unread =
+ .label = Lukematon
+quick-filter-bar-dropdown-starred =
+ .label = Tähti
+quick-filter-bar-dropdown-inaddrbook =
+ .label = Yhteystieto
+quick-filter-bar-dropdown-tags =
+ .label = Tunnukset
+quick-filter-bar-dropdown-attachment =
+ .label = Liite
+# The tooltip for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread =
+ .title = Näytä vain lukematta olevat viestit
+# The label for the filter button that causes us to filter results to only
+# include unread messages.
+quick-filter-bar-unread-label = Lukematta
+# The tooltip for the filter button that causes us to filter results to only
+# include messages that have been starred/flagged.
+quick-filter-bar-starred =
+ .title = Näytä vain tähdellä merkityt viestit
+# The label for the filter button that causes us to filter results to only
+# include messages that have been starred/flagged.
+quick-filter-bar-starred-label = Tähdellä merkityt
+# The tooltip for the filter button that causes us to filter results to only
+# include messages from contacts in one of the user's non-remote address
+# books.
+quick-filter-bar-inaddrbook =
+ .title = Näytä vain viestit ihmisiltä, joiden yhteystiedot löytyvät
+# The label for the filter button that causes us to filter results to only
+# include messages from contacts in one of the user's non-remote address
+# books.
+quick-filter-bar-inaddrbook-label = Yhteystieto
+# The tooltip for the filter button that causes us to filter results to only
+# include messages with at least one tag on them.
+quick-filter-bar-tags =
+ .title = Näytä vain viestit, joihin on liitetty tunnuksia
+# The label for the filter button that causes us to filter results to only
+# include messages with at least one tag on them.
+quick-filter-bar-tags-label = Tunnukset
+# The tooltip for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment =
+ .title = Näytä vain viestit, joilla on liitetiedostoja
+# The label for the filter button that causes us to filter results to only
+# include messages with attachments.
+quick-filter-bar-attachment-label = Liitetiedosto
+# The contents of the results box when there is a filter active but there
+# are no messages matching the filter.
+quick-filter-bar-no-results = Ei osumia
+# This is used to populate the results box; it either displays the
+# number of messages found using this string, that there are no messages
+# (using quick-filter-bar-no-results), or the box is hidden.
+# Variables:
+# $count (Number) - The number of messages that match selected filters.
+quick-filter-bar-results =
+ { $count ->
+ [one] { $count } viesti
+ *[other] { $count } viestiä
+ }
+# Keyboard shortcut for the text search box.
+# This should match quick-filter-bar-show in messenger.ftl.
+quick-filter-bar-textbox-shortcut =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ K
+ *[other] Ctrl+Shift+K
+ }
+# This is the empty text for the text search box.
+# The goal is to convey to the user that typing in the box will filter
+# the messages and that there is a hotkey they can press to get to the
+# box faster.
+quick-filter-bar-textbox =
+ .placeholder = Suodata nämä viestit <{ quick-filter-bar-textbox-shortcut }>
+quick-filter-bar-search =
+ .label = Suodata viestejä:
+# Keyboard shortcut for the text search box.
+# This should match quick-filter-bar-show in messenger.ftl.
+quick-filter-bar-search-shortcut =
+ { PLATFORM() ->
+ [macos] <kbd>⇧</kbd> <kbd>⌘</kbd> <kbd>K</kbd>
+ *[other] <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd>
+ }
+# This is the empty text for the text search box.
+# The goal is to convey to the user that typing in the box will filter the
+# messages and that there is a hotkey they can press to get to the box faster.
+quick-filter-bar-search-placeholder-with-key = Suodata viestejä… { quick-filter-bar-search-shortcut }
+# Label of the search button in the quick filter bar text box. Clicking it will
+# launch a global search.
+quick-filter-bar-search-button =
+ .alt = Etsi kaikkialta
+# Tooltip of the Any-of/All-of tagging mode selector.
+quick-filter-bar-boolean-mode =
+ .title = Suodatus tunnuksilla
+# The Any-of tagging mode.
+quick-filter-bar-boolean-mode-any =
+ .label = Jokin
+ .title = Ainakin yksi valituista tunnuksista täytyy löytyä
+# The All-of tagging mode.
+quick-filter-bar-boolean-mode-all =
+ .label = Kaikki
+ .title = Kaikki valitut tunnukset täytyy löytyä
+# This label explains what the sender/recipients/subject/body buttons do.
+# This string should ideally be kept short because the label and the text
+# filter buttons share their bar (that appears when there is text in the text
+# filter box) with the list of tags when the tag filter is active, and the
+# tag sub-bar wants as much space as possible. (Overflow is handled by an
+# arrow scroll box.)
+quick-filter-bar-text-filter-explanation = Suodata viestit:
+# The button label that toggles whether the text filter searches the message
+# sender for the string.
+quick-filter-bar-text-filter-sender = Lähettäjän mukaan
+# The button label that toggles whether the text filter searches the message
+# recipients (to, cc) for the string.
+quick-filter-bar-text-filter-recipients = Vastaanottajan mukaan
+# The button label that toggles whether the text filter searches the message
+# subject for the string.
+quick-filter-bar-text-filter-subject = Aiheen mukaan
+# The button label that toggles whether the text filter searches the message
+# body for the string.
+quick-filter-bar-text-filter-body = Viestirungon mukaan
+# The first line of the panel popup that tells the user we found no matches
+# but we can convert to a global search for them.
+quick-filter-bar-gloda-upsell-line1 = Suorita tämä suodatus kaikista kansioista
+# The second line of the panel popup that tells the user we found no matches.
+# Variables:
+# $text (String) - What the user has typed so far.
+quick-filter-bar-gloda-upsell-line2 = Paina ‘Enter’ uudestaan jatkaaksesi hakuasi termillä: { $text }
+
+## Folder pane
+
+folder-pane-get-messages-button =
+ .title = Nouda viestit
+folder-pane-get-all-messages-menuitem =
+ .label = Nouda kaikki uudet viestit
+ .accesskey = N
+folder-pane-write-message-button = Uusi viesti
+ .title = Kirjoita uusi viesti
+folder-pane-more-menu-button =
+ .title = Kansiopaneelin asetukset
+# Context menu item to show/hide different folder types in the folder pane
+folder-pane-header-folder-modes =
+ .label = Kansiotilat
+# Context menu item to toggle display of "Get messages" button in folder pane header
+folder-pane-header-context-toggle-get-messages =
+ .label = Näytä "Nouda viestit"
+# Context menu item to toggle display of "New Message" button in folder pane header
+folder-pane-header-context-toggle-new-message =
+ .label = Näytä "Uusi viesti"
+folder-pane-header-context-hide =
+ .label = Piilota kansiopaneelin otsake
+folder-pane-show-total-toggle =
+ .label = Näytä viestien kokonaismäärä
+# Context menu item to show or hide folder sizes
+folder-pane-header-toggle-folder-size =
+ .label = Näytä kansion koko
+folder-pane-header-hide-local-folders =
+ .label = Piilota paikalliset kansiot
+folder-pane-mode-context-button =
+ .title = Kansiotilan asetukset
+folder-pane-mode-context-toggle-compact-mode =
+ .label = Tiivis näkymä
+ .accesskey = T
+folder-pane-mode-move-up =
+ .label = Siirrä ylös
+folder-pane-mode-move-down =
+ .label = Siirrä alas
+# Variables:
+# $count (Number) - Number of unread messages.
+folder-pane-unread-aria-label =
+ { $count ->
+ [one] 1 lukematon viesti
+ *[other] { $count } lukematonta viestiä
+ }
+# Variables:
+# $count (Number) - Number of total messages.
+folder-pane-total-aria-label =
+ { $count ->
+ [one] 1 viesti
+ *[other] { $count } viestiä
+ }
+
+## Message thread pane
+
+threadpane-column-header-select =
+ .title = Valitse kaikki viestit tai poista valinta
+threadpane-column-header-select-all =
+ .title = Valitse kaikki viestit
+threadpane-column-header-deselect-all =
+ .title = Älä valitse mitään viestejä
+threadpane-column-label-select =
+ .label = Valitse viestit
+threadpane-cell-select =
+ .aria-label = Valitse viesti
+threadpane-column-label-thread =
+ .label = Viestiketju
+threadpane-cell-thread =
+ .aria-label = Viestiketjun tila
+threadpane-column-header-flagged =
+ .title = Järjestä tähden olemassaolon mukaan
+threadpane-column-label-flagged =
+ .label = Tähti
+threadpane-cell-flagged =
+ .aria-label = Tähdellä merkitty
+threadpane-flagged-cell-label = Tähti
+threadpane-column-header-attachments =
+ .title = Järjestä liitteiden mukaan
+threadpane-column-label-attachments =
+ .label = Liitteet
+threadpane-cell-attachments =
+ .aria-label = Liitteet
+threadpane-attachments-cell-label = Liitteet
+threadpane-column-header-spam =
+ .title = Järjestä roskapostitilan mukaan
+threadpane-column-label-spam =
+ .label = Roskaposti
+threadpane-cell-spam =
+ .aria-label = Roskapostin tila
+threadpane-spam-cell-label = Roskaposti
+threadpane-column-header-unread-button =
+ .title = Järjestä lukutilan mukaan
+threadpane-column-label-unread-button =
+ .label = Lukutila
+threadpane-cell-read-status =
+ .aria-label = Lukutila
+threadpane-read-cell-label = Luettu
+threadpane-unread-cell-label = Lukematta
+threadpane-column-header-sender = Lähettäjä
+ .title = Järjestä lähettäjän mukaan
+threadpane-column-label-sender =
+ .label = Lähettäjä
+threadpane-cell-sender =
+ .aria-label = Lähettäjä
+threadpane-column-header-recipient = Vastaanottaja
+ .title = Järjestä vastaanottajan mukaan
+threadpane-column-label-recipient =
+ .label = Vastaanottaja
+threadpane-cell-recipient =
+ .aria-label = Vastaanottaja
+threadpane-column-header-correspondents = Keskustelukumppanit
+ .title = Järjestä keskustelukumppaneiden mukaan
+threadpane-column-label-correspondents =
+ .label = Keskustelukumppanit
+threadpane-cell-correspondents =
+ .aria-label = Keskustelukumppanit
+threadpane-column-header-subject = Aihe
+ .title = Järjestä aiheen mukaan
+threadpane-column-label-subject =
+ .label = Aihe
+threadpane-cell-subject =
+ .aria-label = Aihe
+threadpane-column-header-date = Päiväys
+ .title = Järjestä päiväyksen mukaan
+threadpane-column-label-date =
+ .label = Päiväys
+threadpane-cell-date =
+ .aria-label = Päiväys
+threadpane-column-header-received = Vastaanotettu
+ .title = Järjestä vastaanottopäivän mukaan
+threadpane-column-label-received =
+ .label = Vastaanotettu
+threadpane-cell-received =
+ .aria-label = Vastaanoton päiväys
+threadpane-column-header-status = Tila
+ .title = Järjestä tilan mukaan
+threadpane-column-label-status =
+ .label = Tila
+threadpane-cell-status =
+ .aria-label = Tila
+threadpane-column-header-size = Koko
+ .title = Järjestä koon mukaan
+threadpane-column-label-size =
+ .label = Koko
+threadpane-cell-size =
+ .aria-label = Koko
+threadpane-column-header-tags = Tunnus
+ .title = Järjestä tunnuksen mukaan
+threadpane-column-label-tags =
+ .label = Tunnus
+threadpane-cell-tags =
+ .aria-label = Tunnukset
+threadpane-column-header-account = Tili
+ .title = Järjestä tilin mukaan
+threadpane-column-label-account =
+ .label = Tili
+threadpane-cell-account =
+ .aria-label = Tili
+threadpane-column-header-priority = Tärkeysaste
+ .title = Järjestä tärkeysasteen mukaan
+threadpane-column-label-priority =
+ .label = Tärkeysaste
+threadpane-cell-priority =
+ .aria-label = Tärkeysaste
+threadpane-column-header-unread = Lukematta
+ .title = Viestiketjun lukematta olevien viestien määrä
+threadpane-column-label-unread =
+ .label = Lukematta
+threadpane-cell-unread =
+ .aria-label = Lukemattomien viestien määrä
+threadpane-column-header-total = Yhteensä
+ .title = Viestien määrä viestiketjussa
+threadpane-column-label-total =
+ .label = Yhteensä
+threadpane-cell-total =
+ .aria-label = Viestien kokonaismäärä
+threadpane-column-header-location = Sijainti
+ .title = Järjestä sijainnin mukaan
+threadpane-column-label-location =
+ .label = Sijainti
+threadpane-cell-location =
+ .aria-label = Sijainti
+threadpane-column-header-id = Saapumisjärjestys
+ .title = Järjestä saapumisjärjestyksen mukaan
+threadpane-column-label-id =
+ .label = Saapumisjärjestys
+threadpane-cell-id =
+ .aria-label = Saapumisjärjestys
+threadpane-column-header-delete =
+ .title = Poista viesti
+threadpane-column-label-delete =
+ .label = Poista
+threadpane-cell-delete =
+ .aria-label = Poista
+
+## Message state variations
+
+threadpane-message-new =
+ .alt = Uuden viestin ilmaisin
+ .title = Uusi viesti
+threadpane-message-replied =
+ .alt = Vastattu-ilmaisin
+ .title = Viestiin vastattu
+threadpane-message-redirected =
+ .alt = Uudelleenohjattu-ilmaisin
+ .title = Viesti uudelleenohjattu
+threadpane-message-forwarded =
+ .alt = Välitetty-ilmaisin
+ .title = Viesti välitetty
+threadpane-message-replied-forwarded =
+ .alt = Vastattu ja välitetty -ilmaisin
+ .title = Viestiin vastattu ja välitetty
+threadpane-message-replied-redirected =
+ .alt = Vastattu ja uudelleenohjattu -ilmaisin
+ .title = Viestiin vastattu ja uudelleenohjattu
+threadpane-message-forwarded-redirected =
+ .alt = Välitetty ja uudelleenohjattu -ilmaisin
+ .title = Viesti välitetty ja uudelleenohjattu
+threadpane-message-replied-forwarded-redirected =
+ .alt = Vastattu, välitetty ja uudelleenohjattu -ilmaisin
+ .title = Viestiin vasrtattu, välitetty ja uudelleenohjattu
+apply-columns-to-menu =
+ .label = Käytä sarakkeita…
+apply-current-view-to-menu =
+ .label = Käytä nykyistä näkymää…
+apply-current-view-to-folder =
+ .label = Kansiolle…
+apply-current-view-to-folder-children =
+ .label = Kansiolle ja sen alikansioille…
+
+## Apply columns confirmation dialog
+
+apply-changes-to-folder-title = Saatetaanko muutokset voimaan?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-message = Asetetaanko avoimen kansion sarakkeet kansiolle { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-columns-to-folder-with-children-message = Asetetaanko avoimen kansion sarakkeet kansiolle { $name } ja sen alikansioille?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-message = Käytetäänkö nykyisen kansion näkymää kansioon { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+apply-current-view-to-folder-with-children-message = Asetetaanko nykyisen kansion näkymä kansioon { $name } ja sen alikansioille?
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000..a7d3d9c09f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+add-on-options-button =
+ .title = Lisäosan asetukset
+
+add-on-search-alternative-button-label = Etsi vaihtoehtoinen lisäosa
+
+atn-addons-heading-search-input =
+ .placeholder = Hae addons.thunderbird.netistä
+
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutDialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutDialog.ftl
new file mode 100644
index 0000000000..1507cf9410
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutDialog.ftl
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-update-whats-new = Mitä uutta
+aboutDialog-title =
+ .title = Tietoja { -brand-full-name }ista
+about-dialog-title = Tietoja { -brand-full-name }ista
+release-notes-link = Julkaisutiedot
+update-internal-error = Päivityksiä ei voi tarkistaa sisäisen virheen vuoksi. Päivitykset ovat saatavilla osoitteessa <a data-l10n-name="manual-link"/>
+update-check-for-updates-button = Hae päivityksiä
+ .accesskey = H
+update-update-button = Päivitä { -brand-shorter-name } käynnistämällä uudelleen
+ .accesskey = P
+update-checking-for-updates = Haetaan päivityksiä…
+update-downloading-message = Ladataan päivitystä — <span data-l10n-name="download-status"></span>
+update-applying = Asennetaan päivitystä…
+update-downloading = <img data-l10n-name="icon"/>Ladataan päivitystä — <span data-l10n-name="download-status"></hspan>
+update-failed = Päivitys ei onnistunut. <a data-l10n-name="failed-link">Lataa uusin versio</a>
+update-admin-disabled = Järjestelmän ylläpitäjä on estänyt päivitykset
+update-no-updates-found = Käytössä on uusin { -brand-short-name }-versio
+update-other-instance-handling-updates = { -brand-short-name }ia päivitetään toisessa istunnossa
+update-manual = Päivitykset ovat saatavilla osoitteessa <a data-l10n-name="manual-link"/>
+update-unsupported = Järjestelmääsi ei voi tehdä uusia päivityksiä. <a data-l10n-name="unsupported-link">Lue lisää</a>
+update-restarting = Käynnistetään uudelleen…
+# Variables:
+# $channel (String): description of the update channel (e.g. "release", "beta", "nightly" etc.)
+channel-description = Ohjelmasi päivitykset ovat tällä hetkellä tyyppiä <span data-l10n-name="current-channel">{ $channel }</span> .
+warning-desc-version = { -brand-short-name } on kokeellinen ja voi olla epävakaa.
+warning-desc-telemetry = Tietoja suorituskyvystä, laitteistosta, käytöstä ja mukautuksista lähetetään automaattisesti { -vendor-short-name }lle tukemaan { -brand-short-name }in kehitystyötä.
+# Example of resulting string: 66.0.1 (64-bit)
+# Variables:
+# $version (String): version of Thunderbird, e.g. 66.0.1
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version = { $version } ({ $bits }-bittinen)
+# Example of resulting string: 66.0a1 (2019-01-16) (64-bit)
+# Variables:
+# $version (String): version of Thunderbird for Daily builds, e.g. 66.0a1
+# $isodate (String): date in ISO format, e.g. 2019-01-16
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version-nightly = { $version } ({ $isodate }) ({ $bits }-bittinen)
+aboutdialog-update-checking-failed = Päivitysten tarkistaminen epäonnistui.
+community-exp =
+ <a data-l10n-name="community-exp-mozilla-link">
+ { -vendor-short-name }</a>
+ on <a data-l10n-name="community-exp-credits-link">
+ kansainvälinen yhteisö</a>
+ , joka pyrkii kehittämään Internetiä avoimeksi, julkiseksi ja kaikkien rajoituksitta käytettävissä olevaksi.
+community-2 =
+ { -brand-short-name }in on kehittänyt <a data-l10n-name="community-mozilla-link">
+ { -vendor-short-name }</a>
+ , <a data-l10n-name="community-credits-link">
+ kansainvälinen yhteisö</a>
+ , joka pyrkii kehittämään Internetiä avoimeksi, julkiseksi ja kaikkien rajoituksitta käytettävissä olevaksi.
+about-helpus =
+ Haluatko auttaa? <a data-l10n-name="helpus-donate-link">
+ Tee lahjoitus</a> or <a data-l10n-name="helpus-get-involved-link">
+ liity joukkoon!</a>
+community-experimental = <a data-l10n-name="community-exp-mozilla-link">{ -vendor-short-name }</a> on <a data-l10n-name="community-exp-credits-link">kansainvälinen yhteisö</a>, joka pyrkii kehittämään Internetiä avoimeksi, julkiseksi ja kaikkien rajoituksitta käytettävissä olevaksi.
+community-desc = { -brand-short-name }in on kehittänyt <a data-l10n-name="community-mozilla-link">{ -vendor-short-name }</a>, <a data-l10n-name="community-credits-link">kansainvälinen yhteisö</a>, joka pyrkii kehittämään Internetiä avoimeksi, julkiseksi ja kaikkien rajoituksitta käytettävissä olevaksi.
+about-donation = Haluatko auttaa? <a data-l10n-name="helpus-donate-link">Tee lahjoitus</a> or <a data-l10n-name="helpus-get-involved-link">liity joukkoon!</a>
+bottom-links-license = Lisenssitiedot
+bottom-links-rights = Loppukäyttäjän oikeudet
+bottom-links-privacy = Tietosuojakäytäntö
+cmd-close-mac-command-key =
+ .key = w
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutImport.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutImport.ftl
new file mode 100644
index 0000000000..105cec391f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutImport.ftl
@@ -0,0 +1,179 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+import-page-title = Tuo
+export-page-title = Vie
+
+## Header
+
+import-start = Tuontityökalu
+import-start-title = Tuo asetukset tai tiedot sovelluksesta tai tiedostosta.
+import-start-description = Valitse lähde, josta haluat tuoda. Myöhemmin sinua pyydetään valitsemaan, mitkä tiedot on tarkoitus tuoda.
+import-from-app = Tuo sovelluksesta
+import-file = Tuo tiedostosta
+import-file-title = Valitse tiedosto tuodaksesi sen sisällön.
+import-file-description = Valitse, tuodaanko aiemmin varmuuskopioitu profiili, osoitekirjat tai kalenterit.
+import-address-book-title = Tuo osoitekirjatiedosto
+import-calendar-title = Tuo kalenteritiedosto
+export-profile = Vie
+
+## Buttons
+
+button-back = Edellinen
+button-continue = Jatka
+button-export = Vie
+button-finish = Valmis
+
+## Import from app steps
+
+app-name-thunderbird = Thunderbird
+app-name-seamonkey = SeaMonkey
+app-name-outlook = Outlook
+app-name-becky = Becky! Internet Mail
+app-name-apple-mail = Apple Mail
+source-thunderbird = Tuo toisesta { app-name-thunderbird }-asennuksesta
+source-thunderbird-description = Tuo asetukset, suodattimet, viestit ja muut tiedot { app-name-thunderbird }-profiilista.
+source-seamonkey = Tuo { app-name-seamonkey }-asennuksesta
+source-seamonkey-description = Tuo asetukset, suodattimet, viestit ja muut tiedot { app-name-seamonkey }-profiilista.
+source-outlook = Tuo { app-name-outlook }ista
+source-outlook-description = Tuo tilit, osoitekirjat ja viestit { app-name-outlook }ista.
+source-becky = Tuo { app-name-becky }stä
+source-becky-description = Tuo osoitekirjat ja viestit { app-name-becky }stä.
+source-apple-mail = Tuo { app-name-apple-mail }ista
+source-apple-mail-description = Tuo viestit { app-name-apple-mail }ista.
+source-file2 = Tuo tiedostosta
+source-file-description = Valitse tiedosto tuodaksesi osoitekirjoja, kalentereita tai profiilin varmuuskopion (ZIP-tiedosto).
+
+## Import from file selections
+
+file-profile2 = Tuo varmuuskopioitu profiili
+file-profile-description = Valitse aiemmin varmuuskopioitu Thunderbird-profiili (.zip)
+file-calendar = Tuo kalenterit
+file-calendar-description = Valitse tiedosto, joka sisältää vietyjä kalentereita tai tapahtumia (.ics)
+file-addressbook = Tuo osoitekirjat
+file-addressbook-description = Valitse tiedosto, joka sisältää vietyjä osoitekirjoja ja yhteystietoja
+
+## Import from app profile steps
+
+from-app-thunderbird = Tuo { app-name-thunderbird }-profiilista
+from-app-seamonkey = Tuo { app-name-seamonkey }-profiilista
+from-app-outlook = Tuo { app-name-outlook }ista
+from-app-becky = Tuo { app-name-becky }stä
+from-app-apple-mail = Tuo { app-name-apple-mail }ista
+profiles-pane-title-thunderbird = Tuo asetukset ja data { app-name-thunderbird }-profiilista.
+profiles-pane-title-seamonkey = Tuo asetukset ja tiedot { app-name-seamonkey }-profiilista.
+profiles-pane-title-outlook = Tuo tiedot { app-name-outlook }ista.
+profiles-pane-title-becky = Tuo tiedot { app-name-becky }stä.
+profiles-pane-title-apple-mail = Tuo viestit { app-name-apple-mail }ista.
+profile-source = Tuo profiilista
+# $profileName (string) - name of the profile
+profile-source-named = Tuo profiilista <strong>"{ $profileName }"</strong>
+profile-file-picker-directory = Valitse profiilikansio
+profile-file-picker-archive = Valitse <strong>ZIP</strong>-tiedosto
+profile-file-picker-archive-description = ZIP-tiedoston on oltava pienempi kuin 2 Gt.
+profile-file-picker-archive-title = Valitse zip-tiedosto (pienempi kuin 2 Gt)
+items-pane-title2 = Valitse mitä tuodaan:
+items-pane-directory = Hakemisto:
+items-pane-profile-name = Profiilin nimi:
+items-pane-checkbox-accounts = Tilit ja asetukset
+items-pane-checkbox-address-books = Osoitekirjat
+items-pane-checkbox-calendars = Kalenterit
+items-pane-checkbox-mail-messages = Sähköpostiviestit
+items-pane-override = Mitään olemassa olevia tai identtisiä tietoja ei ylikirjoiteta.
+
+## Import from address book file steps
+
+import-from-addr-book-file-description = Valitse tiedostomuoto, joka sisältää osoitekirjan tiedot.
+addr-book-csv-file = Pilkuilla tai sarkaimilla erotettu tiedosto (.csv, .tsv)
+addr-book-ldif-file = LDIF-tiedosto (.ldif)
+addr-book-vcard-file = vCard-tiedosto (.vcf, .vcard)
+addr-book-sqlite-file = SQLite-tietokantatiedosto (.sqlite)
+addr-book-mab-file = Mork-tietokantatiedosto (.mab)
+addr-book-file-picker = Valitse osoitekirjatiedosto
+addr-book-csv-field-map-title = Vastaa kenttien nimet
+addr-book-csv-field-map-desc = Valitse lähdekenttiä vastaavat osoitekirjan kentät. Poista valinta niistä kentistä, joita et halua tuoda.
+addr-book-directories-title = Valitse, mihin valitut tiedot tuodaan
+addr-book-directories-pane-source = Lähdetiedosto:
+# $addressBookName (string) - name of the new address book that would be created.
+addr-book-import-into-new-directory2 = Luo uusi kansio nimeltä <strong>"{ $addressBookName }"</strong>
+# $addressBookName (string) - name of the address book to import into
+addr-book-summary-title = Tuo valitut tiedot kansioon "{ $addressBookName }".
+# $addressBookName (string) - name of the address book that will be created.
+addr-book-summary-description = Uusi osoitekirja "{ $addressBookName }" luodaan.
+
+## Import from calendar file steps
+
+import-from-calendar-file-desc = Valitse iCalendar-tiedosto (.ics), jonka haluat tuoda.
+calendar-items-title = Valitse tuotavat tiedot.
+calendar-items-loading = Ladataan kohteita…
+calendar-items-filter-input =
+ .placeholder = Suodata kohteita…
+calendar-select-all-items = Valitse kaikki
+calendar-deselect-all-items = Poista kaikkien valinta
+calendar-target-title = Valitse, mihin valitut kohteet tuodaan.
+# $targetCalendar (string) - name of the new calendar that would be created
+calendar-import-into-new-calendar2 = Luo uusi kalenteri nimeltä <strong>"{ $targetCalendar }"</strong>
+# $itemCount (number) - count of selected items (tasks, events) that will be imported
+# $targetCalendar (string) - name of the calendar the items will be imported into
+calendar-summary-title =
+ { $itemCount ->
+ [one] Tuo yksi kohde kalenteriin "{ $targetCalendar }"
+ *[other] Tuo { $itemCount } kohdetta kalenteriin "{ $targetCalendar }"
+ }
+# $targetCalendar (string) - name of the calendar that will be created
+calendar-summary-description = Uusi kalenteri "{ $targetCalendar }" luodaan.
+
+## Import dialog
+
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-importing2 = Tuodaan… { $progressPercent }
+# $progressPercent (string) - percent formatted progress (for example "10%")
+progress-pane-exporting2 = Viedään… { $progressPercent }
+progress-pane-finished-desc2 = Valmis.
+error-pane-title = Virhe
+error-message-zip-file-too-big2 = Valittu ZIP-tiedosto on suurempi kuin 2 Gt. Pura se ensin ja tuo sen jälkeen puretusta kansiosta.
+error-message-extract-zip-file-failed2 = ZIP-tiedoston purkaminen epäonnistui. Pura se manuaalisesti ja tuo sen jälkeen puretusta kansiosta.
+error-message-failed = Tuonti epäonnistui odottamatta, lisätietoja saattaa olla saatavilla virhekonsolista.
+error-failed-to-parse-ics-file = Tiedostosta ei löytynyt tuotavissa olevia kohteita.
+error-export-failed = Vienti epäonnistui odottamatta, lisätietoja on mahdollisesti saatavissa virhekonsolissa.
+error-message-no-profile = Profiilia ei löydy.
+
+## <csv-field-map> element
+
+csv-first-row-contains-headers = Ensimmäinen rivi sisältää kenttien nimet
+csv-source-field = Lähdekenttä
+csv-source-first-record = Ensimmäinen tietue
+csv-source-second-record = Toinen tietue
+csv-target-field = Osoitekirjan kenttä
+
+## Export tab
+
+export-profile-title = Vie tilit, viestit, osoitekirjat ja asetukset ZIP-tiedostoon.
+export-profile-description = Jos nykyinen profiilisi on suurempi kuin 2 Gt, suosittelemme varmuuskopioimaan sen itse.
+export-open-profile-folder = Avaa profiilikansio
+export-file-picker2 = Vie zip-tiedostoon
+export-brand-name = { -brand-product-name }
+
+## Summary pane
+
+summary-pane-title = Tuotavat tiedot
+summary-pane-start = Aloita tuonti
+summary-pane-warning = { -brand-product-name } on käynnistettävä uudelleen, kun tuonti on valmis.
+summary-pane-start-over = Käynnistä tuontityökalu uudelleen
+
+## Footer area
+
+footer-help = Tarvitsetko apua?
+footer-import-documentation = Tuonnin dokumentaatio
+footer-export-documentation = Viennin dokumentaatio
+footer-support-forum = Tukipalsta
+
+## Step navigation on top of the wizard pages
+
+step-list =
+ .aria-label = Tuonnin vaiheet
+step-confirm = Vahvista
+# Variables:
+# $number (number) - step number
+step-count = { $number }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutProfilesExtra.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000..5ce4ddb45c
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutProfilesExtra.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profiles-launch-profile-plain = Käynnistä profiili
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutRights.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutRights.ftl
new file mode 100644
index 0000000000..7e4b63e468
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutRights.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rights-title = Tietoa oikeuksistasi
+rights-intro = { -brand-full-name } on ilmainen, avoimen lähdekoodin ohjelmisto, jonka tekijäyhteisö koostuu tuhansista ympäri maailmaa asuvista ihmisistä. Seuraavat seikat on hyvä tietää:
+rights-intro-point-1 = { -brand-short-name } on annettu sinulle <a data-l10n-name="mozilla-public-license-link">Mozillan julkisen lisenssin (Mozilla Public License)</a> ehdoilla. Lisenssissä annetaan sinulle oikeus käyttää, kopioida ja levittää { -brand-short-name }ia. Sinulla on myös halutessasi oikeus muokata ja muuttaa { -brand-short-name }in lähdekoodia omien tarpeittesi mukaisesti. Mozillan julkinen lisenssi antaa sinulle myös oikeuden levittää näitä muokkaamiasi versioita.
+rights-intro-point-2 = Sinulle ei anneta minkäänlaisia tavaramerkki- tai lisenssioikeuksia Mozilla-säätiön tai muun tahon tavaramerkkeihin, joihin lukeutuu Thunderbird-nimi ja -logo. Voit lukea tarkempia lisätietoja tavaramerkeistä <a data-l10n-name="mozilla-trademarks-link">täältä</a>.
+rights-intro-point-3 = Jotkin { -brand-short-name }in ominaisuudet, kuten kaatumisen raportointi, antavat mahdollisuuden lähettää palautetta { -vendor-short-name }lle. Lähettämällä palautetta annat { -vendor-short-name }lle luvan käyttää lähetettyjä tietoja parantamaan tuotetta, julkaisemaan lähetetyn palautteen verkkosivuilla ja jakelemaan lähetettyjä palautetietoja.
+rights-intro-point-4 = <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name }in tietosuojakäytännössä </a>kuvataan, mihin tarkoituksiin käytämme { -brand-short-name }ista { -vendor-short-name }lle lähetetyt palautteet ja käyttäjätiedot.
+rights-intro-point-4-unbranded = Kaikki tähän tuotteeseen sovellettavat tietosuojakäytänteet tulisi olla luetteloituna tässä.
+rights-intro-point-5 = Jotkin { -brand-short-name }in ominaisuudet käyttävät hyväkseen verkkopohjaisia tietopalveluja, joiden emme voi taata olevan 100 % tarkkoja tai virheettömiä. Lisätietoja palveluista mukaan lukien ohjeet niiden päältä poistamiseen löydät <a data-l10n-name="mozilla-service-terms-link">palveluehdoista</a>.
+rights-intro-point-5-unbranded = Jos tämä tuote käyttää toiminnassaan hyväkseen verkkopohjaisia palveluja, niiden palveluehdot tulisi linkittää <a data-l10n-name="mozilla-website-services-link">verkkosivustopalvelut</a>-osioon.
+rights-intro-point-6 = { -brand-short-name } lataa kolmansilta osapuolilta salauksen purkumoduuleja voidakseen toistaa tietyntyyppistä videosisältöä.
+rights-webservices-header = { -brand-full-name }in verkkopohjaiset tietopalvelut
+rights-locationawarebrowsing = <strong>Sijaintitietoinen selaus: </strong>on aina valinnainen. Sijaintitietoja ei ikinä lähetetä ilman hyväksyntääsi. Jos haluat poistaa toiminnon kokonaan, tee seuraavasti:
+rights-locationawarebrowsing-term-1 = Kirjoita osoitepalkkiin <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Kirjoita suodata-kenttään geo.enabled
+rights-locationawarebrowsing-term-3 = Tuplanapsauta geo.enabled -asetusta
+rights-locationawarebrowsing-term-4 = Sijaintitietoinen selaus -toiminto on nyt otettu pois päältä
+rights-webservices-unbranded = Tässä kohdassa tulisi olla kuvaus verkkosivustopalveluista, joita tuote käyttää, sekä ohjeet näiden palvelujen poistamiseen käytöstä jos tämä on mahdollista kyseiselle palvelulle.
+rights-webservices-term-unbranded = Tässä tulisi luetteloida kaikki tuotteen käyvät palveluehdot.
+rights-webservices-term-1 = { -vendor-short-name } ja siihen liittyvät vapaaehtoiset, lisensoijat ja yhteistyökumppanit pyrkivät toimittamaan ja tarjoamaan mahdollisimman tarkat ja ajan tasalla olevat palvelut. Tämän tiedon kattavuudesta tai virheettömyydestä ei kuitenkaan voida antaa takuita. Esimerkiksi joitain vaarallisia sivustoja ei ehkä tunnisteta ja jotkin harmittomat sivut voidaan virheellisesti luokitella vaarallisiksi. Vastaavasti sijaintitiedot ovat vain arvioita, emmekä me tai meidän palveluntarjoajat voi taata sijaintitietojen tarkkuutta.
+rights-webservices-term-2 = { -vendor-short-name } voi lakkauttaa tai muuttaa palveluita yksipuolisesti.
+rights-webservices-term-3 = Voit käyttää näitä palveluita tämän { -brand-short-name }in version kanssa ja sinulla on ohjelman myötä kaikki tarvittavat oikeudet niiden käyttämiseen. { -vendor-short-name } ja sen lisensoijat säilyttävät kaikki muut oikeudet palveluihin. Näitä ehtoja ei ole suunniteltu rajoittamaan mitään { -brand-short-name }in avoimen lähdekoodin lisenssien myöntämiä oikeuksia saati lähdekoodiversiolle myönnettyjä oikeuksia.
+rights-webservices-term-4 = <strong>Palvelut toimitetaan siinä tilassa "kuin ne ovat". { -vendor-short-name }, siihen liittyvät vapaaehtoiset, lisensoijat ja levittäjät kieltävät kaikki takuut, mukaan lukien lupaukset palvelun kaupallisesta laadusta ja sopivuudesta tarkoituksiisi. Kannat kokonaan vastuun palvelun valinnasta, sen laadusta ja toiminnasta. Tällaiset vastuun rajoitukset eivät ole välttämättä voimassa joissain tuomiovalloissa, joten edellä mainittu ei välttämättä pidä paikkaansa.</strong>
+rights-webservices-term-5 = <strong>Lukuunottamatta mitä laki vaatii, { -vendor-short-name }, siihen liittyvät vapaaehtoiset, lisensoijat ja levittäjät eivät ole korvausvastuussa mistään epäsuorasta, erikoisesta tai sattumanvaraisesta vahingosta, joka johtuu suoraan tai epäsuoraan { -brand-short-name }in ja palvelujen käytöstä. Näiden ehtojen alainen kollektiivinen korvausvelvollisuus ei ylitä $500 (viittä sataa Yhdysvaltain dollaria). Joissain tuomiovalloissa korvausvelvollisuuden ylärajaa ei lain mukaan voi asettaa, jolloin edellä mainittu ei pidä paikkaansa tapauksessasi.</strong>
+rights-webservices-term-6 = { -vendor-short-name } voi päivittää ja muuttaa näitä ehtoja tarpeen mukaan aika ajoin. Näitä ehtoja ei voi muuttaa tai poistaa ilman { -vendor-short-name }n kirjallista suostumusta.
+rights-webservices-term-7 = Nämä ehdot ovat Amerikan Yhdysvaltojen Kalifornian osavaltion lainsäädännön alaisia. Jos jokin osa ehdoista ei päde tuomiovallan alueella, loput ehdot ovat voimassa kokonaisuudessaan. Jos näiden ehtojen käännetty versio ja alkuperäinen englanninkielinen versio eroavat toisistaan, englanninkielinen versio on sitova.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000..a0b949b879
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendars-title = Kalenterin asetukset
+calendars-table-heading-property = Nimi
+calendars-table-heading-value = Arvo
+calendars-table-name = Nimi
+calendars-table-type = Tyyppi
+calendars-table-disabled = Pois käytöstä
+calendars-table-username = Käyttäjätunnus
+calendars-table-uri = URI
+calendars-table-refreshinterval = Päivitysväli
+calendars-table-readonly = Vain luku
+calendars-table-suppressalarms = Estä hälytykset
+calendars-table-cache-enabled = Välimuisti käytössä
+calendars-table-imip-identity = iMIP-identiteetti
+calendars-table-imip-identity-disabled = iMIP pois käytöstä
+calendars-table-imip-identity-account = iMIP-tili
+calendars-table-forceemailscheduling = Pakota sähköpostin aikataulutus
+calendars-table-capabilities-alarms-popup-supported = Ponnahdushälytykset tuettu
+calendars-table-capabilities-attachments-supported = Liite tuettu
+calendars-table-capabilities-priority-supported = Prioriteetti tuettu
+calendars-table-capabilities-events-supported = Tapahtuma tuettu
+calendars-table-capabilities-tasks-supported = Tehtävä tuettu
+calendars-table-capabilities-timezones-floating-supported = Paikallinen aika tuettu
+calendars-table-capabilities-timezones-utc-supported = UTC/GMT tuettu
+calendars-table-capabilities-autoschedule-supported = Automaattinen ajastus tuettu
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportChat.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportChat.ftl
new file mode 100644
index 0000000000..f1a7d2f46a
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportChat.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chat-title = Pikaviestitilit
+chat-table-heading-account = Tunniste
+chat-table-heading-protocol = Protokolla
+chat-table-heading-name = Nimi
+chat-table-heading-actions = Toiminnot
+chat-table-copy-debug-log = Kopioi virheenjäljitysloki
+ .title = Kopioi virheet ja muu lokitus tältä keskustelutililtä leikepöydälle. Saattaa sisältää henkilökohtaista tietoa kuten keskustelun viestejä.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportMail.ftl b/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000..717fd016d5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/aboutSupportMail.ftl
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+accounts-title = Sähköposti- ja keskusteluryhmätilit
+show-private-data-main-text = Sisällytä tilien nimet
+show-private-data-explanation-text = (mahdollisesti henkilön tunnistavia tietoja)
+accounts-ID = ID
+accounts-name = Nimi
+accounts-incoming-server = Saapuvan postin palvelin
+accounts-outgoing-servers = Lähtevän postin palvelin
+accounts-server-name = Nimi
+accounts-conn-security = Yhteyden suojaus
+accounts-auth-method = Todennustapa
+accounts-default = Oletus?
+identity-name = Identiteetti
+send-via-email = Lähetä sähköpostilla
+app-basics-telemetry = Kaukomittaustiedot
+app-basics-cache-use = Välimuistin käyttö
+mail-libs-title = Kirjastot
+libs-table-heading-library = Kirjasto
+libs-table-heading-expected-version = Odotettu vähimmäisversio
+libs-table-heading-loaded-version = Käytössä oleva versio
+libs-table-heading-path = Polku
+libs-table-heading-status = Tila
+libs-rnp-status-ok = OK
+libs-rnp-status-load-failed = Lataus epäonnistui. OpenPGP ei toimi.
+libs-rnp-status-incompatible = Yhteensopimaton versio. OpenPGP ei toimi.
+libs-rnp-status-unofficial = Epävirallinen versio. OpenPGP ei ehkä toimi odotetulla tavalla.
+libs-otr-status-ok = OK
+libs-otr-status-error = Lataus epäonnistui. OTR-keskustelun salaus ei toimi.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/accountCentral.ftl b/thunderbird-l10n/fi/localization/fi/messenger/accountCentral.ftl
new file mode 100644
index 0000000000..009be6c1cd
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/accountCentral.ftl
@@ -0,0 +1,50 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-central-title = Tervetuloa { -brand-full-name }iin
+account-settings = Tilin asetukset
+# $accounts (Number) - the number of configured accounts
+setup-title = Valitse mitä asennetaan
+about-title = Tietoja { -brand-full-name }ista
+resources-title = Resurssit
+release-notes =
+ .title = Tietoja { -brand-full-name }ista
+email-label = Sähköposti
+ .aria-label = Yhdistä olemassa olevaan sähköpostitiliin
+email-description = { -brand-short-name }in avulla voi muodostaa yhteyden olemassa olevaan sähköpostitilisiisi, jotta voit lukea sähköpostisi kätevästi ja tehokkaasti sovelluksen sisällä.
+calendar-label = Kalenteri
+ .aria-label = Luo uusi kalenteri
+calendar-description = { -brand-short-name }in avulla voit käsitellä tapahtumiasi ja pysyä organisoituna. Yhdistäminen etäkalenteriin pitää kaikki tapahtumasi synkronoituna kaikilla laitteillasi.
+chat-label = Keskustelut
+ .aria-label = Yhdistä keskustelutiliisi
+chat-description = { -brand-short-name }in avulla muodostat yhteyden useisiin pikaviestitileihin ja se tarjoaa tukea eri alustoille.
+filelink-label = FIlelink
+ .aria-label = Määritä Filelink
+filelink-description = { -brand-short-name }in avulla voit määrittää kätevän tiedostolinkkitilin, jolla voit helposti lähettää suuria liitteitä.
+addressbook-label = Osoitekirja
+ .aria-label = Luo uusi osoitekirja
+addressbook-description = { -brand-short-name }in avulla järjestät kaikki yhteystietosi osoitekirjaan. Voit myös muodostaa yhteyden etäosoitekirjaan pitääksesi kaikki yhteystietosi synkronoituna.
+feeds-label = Syötteet
+ .aria-label = Yhdistä syötteisiin
+feeds-description = { -brand-short-name }in avulla muodostat yhteyden RSS/Atom-syötteisiin, jolloin saat uutisia ja päivityksiä ympäri maailmaa.
+newsgroups-label = Uutisryhmät
+ .aria-label = Yhdistä uustisyhmiin
+newsgroups-description = { -brand-short-name }in avulla voit muodostaa yhteyden kaikkiin haluamiisi uutisryhmiin.
+import-title = Tuo toisesta ohjelmasta
+import-paragraph2 = { -brand-short-name }in avulla voit tuoda sähköpostiviestejä, osoitekirjamerkintöjä, syötteiden tilauksia, asetuksia ja/tai suodattimia muista postiohjelmista ja yleisistä osoitekirjamuodoista.
+import-label = Tuonti
+ .aria-label = Tuo tietoja muista ohjelmista
+about-paragraph = Thunderbird on johtava avoimen lähdekoodin ja kaikkien alustojen sähköposti- ja kalenteriohjelma. Se on ilmainen niin yrityskäyttöön kuin yksityiskäyttöön. Haluamme pitää sen turvallisena ja kehittää siitä entistä paremman. Lahjoitus auttaa meitä palkkaamaan kehittäjiä, rahoittamaan infrastruktuuria ja jatkamaan kehitystyötä.
+about-paragraph-consider-donation = <b>Thunderbirdia rahoittavat kaltaisesi käyttäjät! Jos Thunderbird on mieleesi, harkitse lahjoituksen antamista.</b> Paras tapa taata Thunderbirdin olemassaolo on <a data-l10n-name="donation-link"> tehdä lahjoitus</a>.
+explore-link = Tutustu ominaisuuksiin
+support-link = Tuki
+involved-link = Tule mukaan
+developer-link = Kehittäjien dokumentaatio
+read = Lue viestejä
+compose = Kirjoita uusi viesti
+search = Hae viestejä
+filter = Hallitse viestisuodattimia
+nntp-subscription = Hallitse keskusteluryhmien tilauksia
+rss-subscription = Hallitse syötetilauksia
+e2e = Päästä päähän -salaus
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/accountManager.ftl b/thunderbird-l10n/fi/localization/fi/messenger/accountManager.ftl
new file mode 100644
index 0000000000..34bf26a0ca
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/accountManager.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+open-preferences-sidebar-button2 = { -brand-short-name }in asetukset
+
+open-addons-sidebar-button = Lisäosat ja teemat
+
+account-action-add-newsgroup-account =
+ .label = Lisää keskusteluryhmätili…
+ .accesskey = r
+
+server-change-restart-required = Uudelleenkäynnistys vaaditaan palvelimen nimen tai käyttäjänimen muutoksen toteuttamiseksi.
+
+edit-vcard-dialog-accept-button = Tallenna
+ .accesskey = T
+edit-vcard-dialog-cancel-button = Peruuta
+ .accesskey = P
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/accountProvisioner.ftl b/thunderbird-l10n/fi/localization/fi/messenger/accountProvisioner.ftl
new file mode 100644
index 0000000000..a969e4ac54
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/accountProvisioner.ftl
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-provisioner-tab-title = Hanki uusi sähköpostiosoite palveluntarjoajalta
+provisioner-searching-icon =
+ .alt = Etsitään…
+account-provisioner-title = Luo uusi sähköpostiosoite
+account-provisioner-description = Käytä luotettavia kumppaneitamme saadaksesi uuden yksityisen ja turvallisen sähköpostiosoitteen.
+account-provisioner-start-help = Käytettävät hakuehdot lähetetään { -vendor-short-name }lle (<a data-l10n-name="mozilla-privacy-link">tietosuojakäytäntö</a>) ja kolmannen osapuolen sähköpostipalveluntarjoajille <strong>mailfence.com</strong> (<a data-l10n-name="mailfence-privacy-link">tietosuojakäytäntö</a>, <a data-l10n-name="mailfence-tou-link">käyttöehdot</a >) ja <strong>gandi.net</strong> (<a data-l10n-name="gandi-privacy-link">tietosuojakäytäntö</a>, <a data-l10n-name="gandi-tou- link">käyttöehdot</a>), jotta saatavissa olevia sähköpostiosoitteita on mahdollista etsiä.
+account-provisioner-mail-account-title = Osta uusi sähköpostiosoite
+account-provisioner-mail-account-description = Thunderbird ja <a data-l10n-name="mailfence-home-link">Mailfence</a> tarjoavat yhteistyön tuloksena sinulle yksityisen ja turvallisen sähköpostitilin. Uskomme, että jokaisella on oikeus turvalliseen sähköpostiin.
+account-provisioner-domain-title = Osta oma sähköposti ja verkkotunnus
+account-provisioner-domain-description = Thunderbird ja <a data-l10n-name="gandi-home-link">Gandi</a> tarjoavat yhteistyön tuloksena sinulle omavalintaista verkkotunnusta. Se mahdollistaa haluamasi sähköpostiosoitteen luomisen kyseisen verkkotunnuksen alaisuuteen.
+
+## Forms
+
+account-provisioner-mail-input =
+ .placeholder = Nimesi, nimimerkkisi tai muu hakuehto
+account-provisioner-domain-input =
+ .placeholder = Nimesi, nimimerkkisi tai muu hakuehto
+account-provisioner-search-button = Etsi
+account-provisioner-button-cancel = Peruuta
+account-provisioner-button-existing = Käytä olemassa olevaa sähköpostitiliä
+account-provisioner-button-back = Takaisin
+
+## Notifications
+
+account-provisioner-fetching-provisioners = Haetaan palveluntarjoajia…
+account-provisioner-connection-issues = Kommunikointi rekisteröitymispalvelumme kanssa ei toimi. Tarkista verkkoyhteyden toimivuus.
+account-provisioner-searching-email = Etsitään käytettävissä olevia sähköpostitilejä…
+account-provisioner-searching-domain = Etsitään käytettävissä olevia verkkotunnuksia…
+account-provisioner-searching-error = Ehdotettavia osoitteita ei löytynyt. Kokeile muuttaa hakuehtoja.
+
+## Illustrations
+
+account-provisioner-step1-image =
+ .title = Valitse luotava tili
+
+## Search results
+
+# Variables:
+# $count (Number) - The number of domains found during search.
+account-provisioner-results-title =
+ { $count ->
+ [one] Yksi käytettävissä oleva osoite löytyi:
+ *[other] { $count } käytettävissä olevaa osoitetta löytyi:
+ }
+account-provisioner-mail-results-caption = Voit etsiä muita sähköpostiosoitteita nimimerkeillä tai muilla hakuehdoilla.
+account-provisioner-domain-results-caption = Voit etsiä muita verkkotunnuksia nimimerkeillä tai muilla hakuehdoilla.
+account-provisioner-free-account = Ilmainen
+# Variables:
+# $price (String) - Yearly fee for the mail account. For example "US $9.99".
+account-provision-price-per-year = { $price } vuodessa
+account-provisioner-all-results-button = Näytä kaikki tulokset
+account-provisioner-open-in-tab-img =
+ .title = Avautuu uuteen välilehteen
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountHub.ftl b/thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountHub.ftl
new file mode 100644
index 0000000000..1b8be53e29
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountHub.ftl
@@ -0,0 +1,82 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Account Hub
+### Account hub is where user can setup new accounts in Thunderbird.
+
+
+## Header
+
+account-hub-brand = { -brand-full-name }
+account-hub-welcome-line = Tässä <span data-l10n-name="brand-name">{ -brand-full-name }</span>, tervetuloa
+account-hub-title = Tilikeskus
+
+## Footer
+
+account-hub-release-notes = Julkaisutiedot
+account-hub-support = Tuki
+account-hub-donate = Lahjoita
+
+## Initial setup page
+
+account-hub-email-setup-button = Sähköpostitili
+ .title = Määritä sähköpostitili
+account-hub-calendar-setup-button = Kalenteri
+ .title = Määritä paikallinen tai verkossa oleva kalenteri
+account-hub-address-book-setup-button = Osoitekirja
+ .title = Määritä paikallinen tai verkossa oleva osoitekirja
+account-hub-chat-setup-button = Keskustelu
+ .title = Määritä keskustelutili
+account-hub-feed-setup-button = RSS-syöte
+ .title = Määritä RSS-syötetili
+account-hub-newsgroup-setup-button = Keskusteluryhmä
+ .title = Määritä keskusteluryhmätili
+account-hub-import-setup-button = Tuo
+ .title = Tuo varmuuskopioitu profiili
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+account-hub-sync-button = Kirjaudu Sync-palveluun…
+
+## Email page
+
+account-hub-email-title = Määritä sähköpostitilisi
+account-hub-add-email-title = Lisää tili
+account-hub-manually-configure-email-title = Määritä tilin asetukset
+account-hub-email-cancel-button = Peruuta
+account-hub-email-stop-button = Pysäytä
+account-hub-email-back-button = Edellinen
+account-hub-email-retest-button = Testaa uudelleen
+account-hub-email-finish-button = Valmis
+account-hub-email-manually-configure-button = Määritä manuaalisesti
+account-hub-email-continue-button = Jatka
+account-hub-email-confirm-button = Vahvista
+account-hub-incoming-server-legend = Saapuvan postin palvelin
+account-hub-outgoing-server-legend = Lähtevän postin palvelin
+account-hub-protocol-label = Yhteyskäytäntö
+account-hub-hostname-label = Palvelin
+account-hub-port-label = Portti
+ .title = Aseta portin numeroksi 0 automaattista havaitsemista varten
+account-hub-auto-description = { -brand-short-name } yrittää tunnistaa tyhjiksi jätetyt kentät automaattisesti.
+account-hub-ssl-label = Yhteyden suojaus
+
+## Incoming/Outgoing SSL Authentication options
+
+account-hub-ssl-autodetect-option =
+ .label = Tunnista automaattisesti
+account-hub-ssl-no-authentication-option =
+ .label = Ei todennusta
+account-hub-ssl-cleartext-password-option =
+ .label = Normaali salasana
+account-hub-ssl-encrypted-password-option =
+ .label = Salattu salasana
+
+## Incoming/Outgoing SSL options
+
+account-hub-ssl-noencryption-option =
+ .label = Ei mitään
+account-hub-auth-label = Todennustapa
+account-hub-username-label = Käyttäjätunnus
+account-hub-adding-account-title = Lisätään tili
+account-hub-adding-account-subheader = Tilin määritysasetuksia testataan uudelleen
+account-hub-account-added-title = Tili lisätty
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000..50d4b04630
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,294 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-setup-tab-title = Tilin luominen
+
+## Header
+
+account-setup-title = Määritä olemassa oleva sähköpostiosoite
+account-setup-description =
+ Täytä kirjautumistietosi käyttääksesi nykyistä sähköpostiosoitettasi.<br/>
+ { -brand-product-name } etsii automaattisesti toimivaa ja suositeltua palvelimen kokoonpanon määritystä.
+account-setup-secondary-description = { -brand-product-name } etsii automaattisesti toimivaa ja suositeltua palvelinkokoonpanoa.
+account-setup-success-title = Tili luotu onnistuneesti
+account-setup-success-description = Voit nyt käyttää tätä tiliä { -brand-short-name }in kanssa.
+account-setup-success-secondary-description = Voit parantaa käyttökokemusta yhdistämällä siihen liittyvät palvelut ja määrittämällä tilin lisäasetukset.
+
+## Form fields
+
+account-setup-name-label = Koko nimesi
+ .accesskey = K
+# Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
+account-setup-name-input =
+ .placeholder = Matti Meikäläinen
+account-setup-name-info-icon =
+ .title = Nimesi kuten se muille näytetään
+account-setup-name-warning-icon =
+ .title = Kirjoita nimesi
+account-setup-email-label = Sähköpostiosoite
+ .accesskey = S
+account-setup-email-input =
+ .placeholder = matti.meikalainen@example.com
+account-setup-email-info-icon =
+ .title = Nykyinen sähköpostiosoitteesi
+account-setup-email-warning-icon =
+ .title = Virheellinen sähköpostiosoite
+account-setup-password-label = Salasana
+ .accesskey = a
+ .title = Valinnainen, käytetään vain käyttäjätunnuksen vahvistamiseen
+account-provisioner-button = Hanki uusi sähköpostiosoite
+ .accesskey = H
+account-setup-password-toggle-show =
+ .title = Näytä salasana selkokielisenä tekstinä
+account-setup-password-toggle-hide =
+ .title = Piilota salasana
+account-setup-remember-password = Muista salasana
+ .accesskey = M
+account-setup-exchange-label = Kirjautumistietosi
+ .accesskey = i
+# YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
+account-setup-exchange-input =
+ .placeholder = TOIMIALUE\käyttäjätunnus
+# Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
+account-setup-exchange-info-icon =
+ .title = Toimialueeseen kirjautuminen
+
+## Action buttons
+
+account-setup-button-cancel = Peruuta
+ .accesskey = e
+account-setup-button-manual-config = Määritä manuaalisesti
+ .accesskey = M
+account-setup-button-stop = Pysäytä
+ .accesskey = P
+account-setup-button-retest = Testaa uudelleen
+ .accesskey = T
+account-setup-button-continue = Jatka
+ .accesskey = J
+account-setup-button-done = Valmis
+ .accesskey = V
+
+## Notifications
+
+account-setup-looking-up-settings = Etsitään kokoonpanon määritystä…
+account-setup-looking-up-settings-guess = Etsitään kokoonpanon määritystä: Kokeillaan tavanomaisia palvelinosoitteita…
+account-setup-looking-up-settings-half-manual = Etsitään kokoonpanon määritystä: Tiedustellaan palvelinta…
+account-setup-looking-up-disk = Etsitään kokoonpanon määritystä: { -brand-short-name }-asennus…
+account-setup-looking-up-isp = Etsitään kokoonpanon määritystä: sähköpostipalvelun tarjoaja…
+# Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+account-setup-looking-up-db = Etsitään kokoonpanon määritystä: Mozillan ISP-tietokanta…
+account-setup-looking-up-mx = Etsitään kokoonpanon määritystä: saapuvan postin verkkotunnus…
+account-setup-looking-up-exchange = Etsitään kokoonpanon määritystä: Exchange-palvelin…
+account-setup-checking-password = Tarkistetaan salasanaa…
+account-setup-installing-addon = Ladataan ja asennetaan lisäosaa…
+account-setup-success-half-manual = Löydettiin seuraavat asetukset tutkimalla määritettyä palvelinta:
+account-setup-success-guess = Kokoonpanon määritykset löydettiin yrittämällä yleisiä palvelinten nimiä.
+account-setup-success-guess-offline = Verkkoyhteyttä ei ole muodostettu. Jotkin asetukset arvattiin, mutta sinun pitää täydentää asetukset.
+account-setup-success-password = Salasana OK
+account-setup-success-addon = Lisäosa asennettiin onnistuneesti
+# Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+account-setup-success-settings-db = Kokoonpanon määritys löytyi Mozillan ISP-tietokannasta.
+account-setup-success-settings-disk = Kokoonpanon määritys löytyi { -brand-short-name }-asennuksesta.
+account-setup-success-settings-isp = Löydettiin kokoonpanon määritykset sähköpostipalveluntarjoajalta.
+# Note: Microsoft Exchange is a product name.
+account-setup-success-settings-exchange = Kokoonpanon määritykset löydettiin Microsoft Exchange -palvelimelle.
+
+## Illustrations
+
+account-setup-step1-image =
+ .title = Alkuasetukset
+account-setup-step2-image =
+ .title = Ladataan…
+account-setup-step3-image =
+ .title = Kokoonpanon määritys löytyi
+account-setup-step4-image =
+ .title = Yhteysvirhe
+account-setup-step5-image =
+ .title = Tili luotu
+account-setup-privacy-footnote2 = Kirjautumistietosi tallennetaan vain paikallisesti tietokoneellesi.
+account-setup-selection-help = Etkö ole varma, mitä valita?
+account-setup-selection-error = Tarvitsetko apua?
+account-setup-success-help = Oletko epävarma seuraavista vaiheista?
+account-setup-documentation-help = Määrityksen dokumentaatio
+account-setup-forum-help = Tukipalsta
+account-setup-privacy-help = Tietosuojakäytäntö
+account-setup-getting-started = Alkuun pääsy
+
+## Results area
+
+# Variables:
+# $count (Number) - Number of available protocols.
+account-setup-results-area-title =
+ { $count ->
+ [one] Saatavilla oleva kokoonpanon määritys
+ *[other] Saatavilla olevat kokoonpanon määritykset
+ }
+account-setup-result-imap-description = Pidä kansiot ja sähköpostit synkronoituna palvelimellesi
+account-setup-result-pop-description = Säilytä kansiot ja sähköpostit tietokoneellasi
+# Note: Exchange, Office365 are the name of products.
+account-setup-result-exchange2-description = Käytä Microsoft Exchange -palvelinta tai Office365-pilvipalveluja
+account-setup-incoming-title = Saapuva
+account-setup-outgoing-title = Lähtevä
+account-setup-username-title = Käyttäjätunnus
+account-setup-exchange-title = Palvelin
+account-setup-result-no-encryption = Ei salausta
+account-setup-result-ssl = SSL/TLS
+account-setup-result-starttls = STARTTLS
+account-setup-result-outgoing-existing = Käytä olemassa olevaa lähtevän postin SMTP-palvelinta
+# Variables:
+# $incoming (String): The email/username used to log into the incoming server
+# $outgoing (String): The email/username used to log into the outgoing server
+account-setup-result-username-different = Saapuva: { $incoming }, Lähtevä: { $outgoing }
+
+## Error messages
+
+# Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
+account-setup-credentials-incomplete = Tunnistautuminen epäonnistui. Joko annetut kirjautumistiedot ovat väärin tai kirjautumiseen vaaditaan toinen käyttäjänimi. Käyttäjänimi on yleensä Windows-toimialueen kirjautumistunnus toimialueen kanssa tai ilman (esimerkiksi kallekayttaja tai AD\\kallekayttaja)
+account-setup-credentials-wrong = Todennus epäonnistui. Tarkista käyttäjätunnus ja salasana
+account-setup-find-settings-failed = { -brand-short-name } ei löytänyt asetuksia sähköpostitilisi osalta
+account-setup-exchange-config-unverifiable = Kokoonpanoa ei voitu vahvistaa. Jos käyttäjätunnuksesi ja salasanasi ovat oikein, palvelimen järjestelmänvalvoja on todennäköisesti estänyt tilillesi valitsemasi kokoonpanon. Yritä uudelleen valitsemalla toinen yhteyskäytäntö.
+account-setup-provisioner-error = Tapahtui virhe määritettäessä uutta tiliäsi { -brand-short-name }iin. Yritä määrittää tilisi manuaalisesti kirjautumistiedoillasi.
+
+## Manual configuration area
+
+account-setup-manual-config-title = Palvelimen asetukset
+account-setup-incoming-server-legend = Saapuvan postin palvelin
+account-setup-protocol-label = Yhteyskäytäntö:
+account-setup-hostname-label = Palvelin:
+account-setup-port-label = Portti:
+ .title = Aseta porttinumeroksi 0 automaattista havaitsemista varten
+account-setup-auto-description = { -brand-short-name } yrittää tunnistaa tyhjiksi jätetyt kentät automaattisesti.
+account-setup-ssl-label = Yhteyden suojaus:
+account-setup-outgoing-server-legend = Lähtevän postin palvelin
+
+## Incoming/Outgoing SSL Authentication options
+
+ssl-autodetect-option = Tunnista automaattisesti
+ssl-no-authentication-option = Ei todennusta
+ssl-cleartext-password-option = Normaali salasana
+ssl-encrypted-password-option = Salattu salasana
+
+## Incoming/Outgoing SSL options
+
+ssl-noencryption-option = Ei mitään
+account-setup-auth-label = Todennustapa:
+account-setup-username-label = Käyttäjätunnus:
+account-setup-advanced-setup-button = Lisäasetukset
+ .accesskey = L
+
+## Warning insecure server dialog
+
+account-setup-insecure-title = Varoitus!
+account-setup-insecure-incoming-title = Saapuvan postin asetukset:
+account-setup-insecure-outgoing-title = Lähtevän postin asetukset:
+# Variables:
+# $server (String): The name of the hostname of the server the user was trying to connect to.
+account-setup-warning-cleartext = <b>{ $server }</b> ei käytä salausta.
+account-setup-warning-cleartext-details = Suojaamattomat sähköpostipalvelimet eivät salaa yhteyksiään eivätkä siten suojele salasanojasi ja henkilökohtaisia tietojasi. Salasanasi ja henkilökohtaiset tietosi voivat joutua vääriin käsiin ottamalla yhteyden tähän palvelimeen.
+account-setup-insecure-server-checkbox = Ymmärrän riskit
+ .accesskey = Y
+account-setup-insecure-description = { -brand-short-name } mahdollistaa pääsyn sähköpostiisi käyttämällä annettuja määrityksiä. Sinun tulee kuitenkin ottaa yhteyttä järjestelmänvalvojaasi tai sähköpostin palveluntarjoajaasi koskien näitä virheellisiä yhteyksiä. Katso lisätietoja <a data-l10n-name="thunderbird-faq-link">Thunderbirdin usein kysytyistä kysymyksistä</a>.
+insecure-dialog-cancel-button = Muuta asetukset
+ .accesskey = M
+insecure-dialog-confirm-button = Vahvista
+ .accesskey = V
+
+## Warning Exchange confirmation dialog
+
+# Variables:
+# $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
+exchange-dialog-question = { -brand-short-name } löysi tilisi asetustiedot toimialueesta { $domain }. Haluatko jatkaa ja lähettää kirjautumistietosi?
+exchange-dialog-confirm-button = Kirjaudu
+exchange-dialog-cancel-button = Peruuta
+
+## Dismiss account creation dialog
+
+exit-dialog-title = Sähköpostitiliä ei ole määritetty
+exit-dialog-description = Haluatko varmasti perua määrityksen? { -brand-short-name } on käytettävissä myös ilman sähköpostitiliä, mutta useimmat ominaisuudet eivät ole saatavilla.
+account-setup-no-account-checkbox = Käytä { -brand-short-name }iä ilman sähköpostitiliä
+ .accesskey = ö
+exit-dialog-cancel-button = Jatka määritysten tekoa
+ .accesskey = J
+exit-dialog-confirm-button = Poistu määrityksestä
+ .accesskey = E
+
+## Alert dialogs
+
+account-setup-creation-error-title = Virhe luotaessa tiliä
+account-setup-error-server-exists = Saapuvan postin palvelin on jo olemassa.
+account-setup-confirm-advanced-title = Vahvista edistynyt määritys
+account-setup-confirm-advanced-description = Tämä ikkuna suljetaan ja tili luodaan annetuin asetuksin, vaikka asetukset olisivat väärin. Haluatko jatkaa?
+
+## Addon installation section
+
+account-setup-addon-install-title = Asenna
+account-setup-addon-install-intro = Kolmannen osapuolen lisäosan avulla saattaa olla mahdollista käyttää sähköpostitiliä tällä palvelimella:
+account-setup-addon-no-protocol = Valitettavasti tämä sähköpostipalvelin ei tue avoimia yhteyskäytäntöjä. { account-setup-addon-install-intro }
+
+## Success view
+
+account-setup-settings-button = Tilin asetukset
+account-setup-encryption-button = Päästä päähän -salaus
+account-setup-signature-button = Lisää allekirjoitus
+account-setup-dictionaries-button = Lataa oikolukusanastot
+account-setup-address-book-carddav-button = Yhdistä CardDAV-osoitekirjaan
+account-setup-address-book-ldap-button = Yhdistä LDAP-osoitekirjaan
+account-setup-calendar-button = Yhdistä etäkalenteriin
+account-setup-linked-services-title = Yhdistä linkitetyt palvelut
+account-setup-linked-services-description = { -brand-short-name } havaitsi muita sähköpostitiliisi linkitettyjä palveluja.
+account-setup-no-linked-description = Määritä muut palvelut, jotta saat kaiken irti { -brand-short-name }-kokemuksesta.
+# Variables:
+# $count (Number) - The number of address books found during autoconfig.
+account-setup-found-address-books-description =
+ { $count ->
+ [one] { -brand-short-name } löysi yhden sähköpostitiliisi linkitetyn osoitekirjan.
+ *[other] { -brand-short-name } löysi { $count } sähköpostitiliisi linkitettyä osoitekirjaa.
+ }
+# Variables:
+# $count (Number) - The number of calendars found during autoconfig.
+account-setup-found-calendars-description =
+ { $count ->
+ [one] { -brand-short-name } löysi yhden sähköpostitiliisi linkitetyn kalenterin.
+ *[other] { -brand-short-name } löysi { $count } sähköpostitiliisi linkitettyä kalenteria.
+ }
+account-setup-button-finish = Valmis
+ .accesskey = V
+account-setup-looking-up-address-books = Etsitään osoitekirjoja…
+account-setup-looking-up-calendars = Etsitään kalentereita…
+account-setup-address-books-button = Osoitekirjat
+account-setup-calendars-button = Kalenterit
+account-setup-connect-link = Yhdistä
+account-setup-existing-address-book = Yhdistetty
+ .title = Osoitekirja on jo yhdistetty
+account-setup-existing-calendar = Yhdistetty
+ .title = Kalenteri on jo yhdistetty
+account-setup-connect-all-calendars = Yhdistä kaikki kalenterit
+account-setup-connect-all-address-books = Yhdistä kaikki osoitekirjat
+
+## Calendar synchronization dialog
+
+calendar-dialog-title = Yhdistä kalenteri
+calendar-dialog-cancel-button = Peruuta
+ .accesskey = P
+calendar-dialog-confirm-button = Yhdistä
+ .accesskey = Y
+account-setup-calendar-name-label = Nimi
+account-setup-calendar-name-input =
+ .placeholder = Oma kalenteri
+account-setup-calendar-color-label = Väri
+account-setup-calendar-refresh-label = Päivitä
+account-setup-calendar-refresh-manual = Manuaalisesti
+# Variables:
+# $count (Number) - Number of minutes in the calendar refresh interval.
+account-setup-calendar-refresh-interval =
+ { $count ->
+ [one] Joka minuutti
+ *[other] { $count } minuutin välein
+ }
+account-setup-calendar-read-only = Vain luku
+ .accesskey = V
+account-setup-calendar-show-reminders = Näytä muistutukset
+ .accesskey = N
+account-setup-calendar-offline-support = Yhteydettömän tilan tuki
+ .accesskey = t
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/addonNotifications.ftl b/thunderbird-l10n/fi/localization/fi/messenger/addonNotifications.ftl
new file mode 100644
index 0000000000..185373bd17
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/addonNotifications.ftl
@@ -0,0 +1,120 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+xpinstall-prompt = { -brand-short-name } esti sivustoa avaamasta ohjelmien asennusikkunaa.
+
+## Variables:
+## $host (String): The hostname of the site the add-on is being installed from.
+
+xpinstall-prompt-header = Saako { $host } asentaa lisäosan?
+xpinstall-prompt-message = Olet asentamassa lisäosaa sivustolta { $host }. Varmista sivuston luotettavuus, ennen kuin jatkat.
+
+##
+
+xpinstall-prompt-header-unknown = Sallitko tuntemattoman sivuston asentaa lisäosan?
+xpinstall-prompt-message-unknown = Olet asentamassa lisäosaa tuntemattomalta sivustolta. Varmista sivuston luotettavuus, ennen kuin jatkat.
+xpinstall-prompt-dont-allow =
+ .label = Estä
+ .accesskey = E
+xpinstall-prompt-never-allow =
+ .label = Estä aina
+ .accesskey = A
+# Long text in this context make the dropdown menu extend awkwardly to the left,
+# avoid a localization that's significantly longer than the English version.
+xpinstall-prompt-never-allow-and-report =
+ .label = Ilmoita epäilyttävästä sivustosta
+ .accesskey = I
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See https://website-archive.mozilla.org/www.mozilla.org/access/access/keyboard/ for details
+xpinstall-prompt-install =
+ .label = Jatka asennukseen
+ .accesskey = J
+
+# These messages are shown when a website invokes navigator.requestMIDIAccess.
+
+
+##
+
+xpinstall-disabled-locked = Järjestelmän ylläpitäjä on estänyt ohjelmien asentamisen.
+xpinstall-disabled = Ohjelmien asennus on estetty. Ota se käyttöön ja yritä uudelleen.
+xpinstall-disabled-button =
+ .label = Ota käyttöön
+ .accesskey = O
+# This message is shown when the installation of an add-on is blocked by enterprise policy.
+# Variables:
+# $addonName (String): the name of the add-on.
+# $addonId (String): the ID of add-on.
+addon-install-blocked-by-policy = Lisäosa { $addonName } ({ $addonId }) on järjestelmänvalvojasi estämä.{ " " }
+# This message is shown when the installation of add-ons from a domain is blocked by enterprise policy.
+addon-domain-blocked-by-policy = Järjestelmänvalvojasi esti tätä sivustoa pyytämästä sinua asentamaan ohjelmistoja tietokoneellesi.
+addon-install-full-screen-blocked = Lisäosien asennus ei ole sallittu koko näytön tilassa tai ennen koko näytön tilaan siirtymistä.
+# Variables:
+# $addonName (String): the localized name of the sideloaded add-on.
+webext-perms-sideload-menu-item = { $addonName } on lisätty { -brand-short-name }iin
+# Variables:
+# $addonName (String): the localized name of the extension which has been updated.
+webext-perms-update-menu-item = { $addonName } vaatii uusia oikeuksia
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = Poistetaanko { $name }?
+# Variables:
+# $name (String): the name of the extension which is about to be removed.
+addon-removal-message = Poistetaanko ”{ $name }” { -brand-shorter-name }istä?
+addon-removal-button = Poista
+addon-removal-abuse-report-checkbox = Raportoi tämä laajennus { -vendor-short-name }lle
+# Variables:
+# $addonCount (Number): the number of add-ons being downloaded
+addon-downloading-and-verifying =
+ { $addonCount ->
+ [one] Ladataan ja varmennetaan lisäosaa…
+ *[other] Ladataan ja varmennetaan { $addonCount } lisäosaa…
+ }
+addon-download-verifying = Varmennetaan
+addon-install-cancel-button =
+ .label = Peruuta
+ .accesskey = P
+addon-install-accept-button =
+ .label = Lisää
+ .accesskey = L
+
+## Variables:
+## $addonCount (Number): the number of add-ons being installed
+
+addon-confirm-install-message =
+ { $addonCount ->
+ [one] Tämä sivusto haluaa asentaa lisäosan { -brand-short-name }iin:
+ *[other] Tämä sivusto haluaa asentaa { $addonCount } lisäosaa { -brand-short-name }iin:
+ }
+addon-confirm-install-unsigned-message =
+ { $addonCount ->
+ [one] Varoitus: Tämä sivusto haluaa asentaa varmentamattoman lisäosan { -brand-short-name }iin. Huomioi riskit ennen kuin jatkat.
+ *[other] Varoitus: Tämä sivusto haluaa asentaa { $addonCount } varmentamatonta lisäosaa { -brand-short-name }iin. Huomioi riskit ennen kuin jatkat.
+ }
+# Variables:
+# $addonCount (Number): the number of add-ons being installed (at least 2)
+addon-confirm-install-some-unsigned-message = Varoitus: Tämä sivusto haluaa asentaa { -brand-short-name }iin { $addonCount } lisäosaa, joista osa on varmentamattomia. Huomioi riskit ennen kuin jatkat.
+
+## Add-on install errors
+## Variables:
+## $addonName (String): the add-on name.
+
+addon-install-error-network-failure = Lisäosaa ei voitu ladata yhteysvirheen takia.
+addon-install-error-incorrect-hash = Lisäosaa ei voitu asentaa, koska se ei vastaa { -brand-short-name }in odottamaa lisäosaa.
+addon-install-error-corrupt-file = Ladattua lisäosaa ei voitu asentaa, koska asennuspaketti on virheellinen.
+addon-install-error-file-access = Lisäosaa { $addonName } ei voitu asentaa, koska { -brand-short-name } ei pysty muokkaamaan vaadittua tiedostoa.
+addon-install-error-not-signed = { -brand-short-name } esti tätä sivustoa asentamasta varmentamatonta lisäosaa.
+addon-install-error-invalid-domain = Lisäosaa { $addonName } ei voi asentaa tästä sijainnista.
+addon-local-install-error-network-failure = Lisäosaa ei voitu asentaa tiedostojärjestelmävirheen vuoksi.
+addon-local-install-error-incorrect-hash = Tätä lisäosaa ei voitu asentaa koska se ei vastaa { -brand-short-name }in odottamaa lisäosaa.
+addon-local-install-error-corrupt-file = Lisäosaa ei voitu asentaa koska lisäosapaketti on ilmeisesti vaurioitunut.
+addon-local-install-error-file-access = Lisäosaa { $addonName } ei voitu asentaa, koska { -brand-short-name } ei pysty muokkaamaan vaadittua tiedostoa.
+addon-local-install-error-not-signed = Tätä lisäosaa ei voitu asentaa koska sitä ei ole varmennettu.
+# Variables:
+# $appVersion (String): the application version.
+addon-install-error-incompatible = Lisäosaa { $addonName } ei voitu asentaa, koska lisäosa ei ole yhteensopiva { -brand-short-name }in version { $appVersion } kanssa.
+addon-install-error-blocklisted = Lisäosaa { $addonName } ei voitu asentaa, koska sen on raportoitu aiheuttavan vakaus- tai tietosuojaongelmia.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVDialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000..3b31d5e1af
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVDialog.ftl
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+carddav-window-title = Uusi CardDAV-osoitekirja
+
+carddav-dialog =
+ .buttonlabelaccept = Jatka
+ .buttonaccesskeyaccept = a
+
+carddav-username-label =
+ .value = Käyttäjätunnus:
+ .accesskey = U
+carddav-location-label =
+ .value = Sijainti:
+ .accesskey = S
+carddav-location =
+ .default-placeholder = Osoitekirjapalvelimen URL-osoite tai isäntänimi
+
+carddav-loading = Etsitään asetuksia…
+carddav-known-incompatible = { $url } on yhteensopimaton { -brand-short-name }in kanssa.
+carddav-connection-error = Yhteyden muodostus epäonnistui.
+carddav-none-found = Määritetylle tilille ei löytynyt lisättäviä osoitekirjoja.
+carddav-already-added = Kaikki määritetyn tilin osoitekirjat on jo lisätty.
+
+carddav-available-books = Käytettävissä olevat osoitekirjat:
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000..a51e9f63a2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+carddav-url-label =
+ .value = CardDAV:in osoite:
+ .accesskey = V
+
+carddav-refreshinterval-label =
+ .label = Synkronoi:
+ .accesskey = S
+
+# Variables:
+# $minutes (integer) - Number of minutes between address book synchronizations
+carddav-refreshinterval-minutes-value =
+ .label =
+ { $minutes ->
+ [one] minuutin välein
+ *[other] { $minutes } minuutin välein
+ }
+
+# Variables:
+# $hours (integer) - Number of hours between address book synchronizations
+carddav-refreshinterval-hours-value =
+ .label =
+ { $hours ->
+ [one] tunnin välein
+ *[other] { $hours } tunnin välein
+ }
+
+carddav-readonly-label =
+ .label = Vain luku
+ .accesskey = V
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000..1ca9b83f1f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,250 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-addressbook-title = Osoitekirja
+
+## Toolbar
+
+about-addressbook-toolbar-new-address-book =
+ .label = Uusi osoitekirja
+about-addressbook-toolbar-add-carddav-address-book =
+ .label = Lisää CardDAV-osoitekirja
+about-addressbook-toolbar-add-ldap-address-book =
+ .label = Lisää LDAP-osoitekirja
+about-addressbook-toolbar-new-contact =
+ .label = Uusi yhteyshenkilö
+about-addressbook-toolbar-new-list =
+ .label = Uusi lista
+about-addressbook-toolbar-import =
+ .label = Tuo
+
+## Books
+
+all-address-books-row =
+ .title = Kaikki osoitekirjat
+all-address-books = Kaikki osoitekirjat
+# Variables:
+# $name (String) - The name of the selected book/list.
+# $count (Number) - The number of contacts in the selected book/list.
+about-addressbook-card-count = Yhteyshenkilöjä osoitekirjassa { $name }: { $count }
+# Variables:
+# $count (Number) - The number of contacts in all address books.
+about-addressbook-card-count-all = Yhteyshenkilöjä kaikissa osoitekirjoissa: { $count }
+about-addressbook-books-context-properties =
+ .label = Ominaisuudet
+about-addressbook-books-context-edit-list =
+ .label = Muokkaa listaa
+about-addressbook-books-context-synchronize =
+ .label = Synkronoi
+about-addressbook-books-context-edit =
+ .label = Muokkaa
+about-addressbook-books-context-print =
+ .label = Tulosta…
+about-addressbook-books-context-export =
+ .label = Vie…
+about-addressbook-books-context-delete =
+ .label = Poista
+about-addressbook-books-context-remove =
+ .label = Poista
+about-addressbook-books-context-startup-default =
+ .label = Oletuskansio
+about-addressbook-confirm-delete-book-title = Poista osoitekirja
+# Variables:
+# $name (String) - Name of the address book to be deleted.
+about-addressbook-confirm-delete-book = Haluatko varmasti poistaa osoitekirjan { $name } ja kaikki sen yhteyshenkilöt?
+about-addressbook-confirm-remove-remote-book-title = Poista osoitekirja
+# Variables:
+# $name (String) - Name of the remote address book to be removed.
+about-addressbook-confirm-remove-remote-book = Haluatko varmasti poistaa osoitekirjan { $name }?
+
+## Cards
+
+# Variables:
+# $name (String) - Name of the address book that will be searched.
+about-addressbook-search =
+ .placeholder = Hae { $name }
+about-addressbook-search-all =
+ .placeholder = Hae kaikista osoitekirjoista
+about-addressbook-sort-button2 =
+ .title = Listanäkymän valinnat
+about-addressbook-name-format-display =
+ .label = Näyttönimi
+about-addressbook-name-format-firstlast =
+ .label = Etunimi Sukunimi
+about-addressbook-name-format-lastfirst =
+ .label = Sukunimi, Etunimi
+about-addressbook-sort-name-ascending =
+ .label = Järjestä nimen mukaan (A > Ö)
+about-addressbook-sort-name-descending =
+ .label = Järjestä nimen mukaan (Ö > A)
+about-addressbook-sort-email-ascending =
+ .label = Järjestä sähköpostiosoitteen mukaan (A > Ö)
+about-addressbook-sort-email-descending =
+ .label = Järjestä sähköpostiosoitteen mukaan (Ö > A)
+about-addressbook-table-layout =
+ .label = Taulukkoasettelu
+
+## Card column headers
+## Each string is listed here twice, and the values should match.
+
+about-addressbook-column-header-generatedname2 = Nimi
+ .title = Järjestä nimen mukaan
+about-addressbook-column-label-generatedname2 =
+ .label = Nimi
+about-addressbook-column-header-emailaddresses2 = Sähköpostiosoitteet
+ .title = Järjestä sähköpostiosoitteiden mukaan
+about-addressbook-column-label-emailaddresses2 =
+ .label = Sähköpostiosoitteet
+about-addressbook-column-header-nickname2 = Kutsumanimi
+ .title = Järjestä kutsumanimen mukaan
+about-addressbook-column-label-nickname2 =
+ .label = Kutsumanimi
+about-addressbook-column-header-phonenumbers2 = Puhelinnumerot
+ .title = Järjestä puhelinnumerojen mukaan
+about-addressbook-column-label-phonenumbers2 =
+ .label = Puhelinnumerot
+about-addressbook-column-header-addresses2 = Osoitteet
+ .title = Järjestä osoitteen mukaan
+about-addressbook-column-label-addresses2 =
+ .label = Osoitteet
+about-addressbook-column-label-organization2 =
+ .label = Organisaatio
+about-addressbook-column-header-addrbook2 = Osoitekirja
+ .title = Järjestä osoitekirjan mukaan
+about-addressbook-column-label-addrbook2 =
+ .label = Osoitekirja
+about-addressbook-cards-context-write =
+ .label = Kirjoita viesti
+about-addressbook-confirm-delete-mixed-title = Poista yhteyshenkilöt ja listat
+# Variables:
+# $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
+about-addressbook-confirm-delete-mixed = Haluatko varmasti poistaa nämä { $count } yhteyshenkilöä ja listaa?
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+about-addressbook-confirm-delete-lists-title =
+ { $count ->
+ [one] Poista lista
+ *[other] Poista listat
+ }
+# Variables:
+# $count (Number) - The number of lists to be deleted.
+# $name (String) - The name of the list to be deleted, if $count is 1.
+about-addressbook-confirm-delete-lists =
+ { $count ->
+ [one] Haluatko varmasti poistaa listan { $name }?
+ *[other] Haluatko varmasti poistaa nämä { $count } listaa?
+ }
+# Variables:
+# $count (Number) - The number of contacts to be removed.
+about-addressbook-confirm-remove-contacts-title =
+ { $count ->
+ [one] Poista yhteyshenkilö
+ *[other] Poista yhteyshenkilöt
+ }
+# Variables:
+# $name (String) - The name of the contact to be removed.
+# $list (String) - The name of the list that contacts will be removed from.
+about-addressbook-confirm-remove-contacts-single = Haluatko varmasti poistaa { $name } listasta { $list }?
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-title =
+ { $count ->
+ [one] Poista yhteyshenkilö
+ *[other] Poista yhteyshenkilöt
+ }
+# Variables:
+# $name (String) - The name of the contact to be deleted.
+about-addressbook-confirm-delete-contacts-single = Haluatko varmasti poistaa yhteystiedon { $name }?
+# Variables:
+# $count (Number) - The number of contacts to be deleted.
+about-addressbook-confirm-delete-contacts-multi =
+ { $count ->
+ [one] Haluatko varmasti poistaa tämän { $count } yhteystiedon?
+ *[other] Haluatko varmasti poistaa nämä { $count } yhteystietoa?
+ }
+
+## Card list placeholder
+## Shown when there are no cards in the list
+
+about-addressbook-placeholder-empty-book = Yhteyshenkilöjä ei ole saatavilla
+about-addressbook-placeholder-new-contact = Uusi yhteyshenkilö
+about-addressbook-placeholder-search-only = Tämä osoitekirja näyttää yhteystietoja vain haun jälkeen
+about-addressbook-placeholder-searching = Etsitään…
+about-addressbook-placeholder-no-search-results = Yhteyshenkilöjä ei löytynyt
+
+## Details
+
+# Variables:
+# $count (Number) - The number of selected items (will never be fewer than 2).
+about-addressbook-selection-mixed-header2 =
+ { $count ->
+ [one] { $count } valittu osoitekirjan merkintä
+ *[other] { $count } valittua osoitekirjan merkintää
+ }
+# Variables:
+# $count (Number) - The number of selected contacts
+about-addressbook-selection-contacts-header2 =
+ { $count ->
+ [one] { $count } valittu yhteystieto
+ *[other] { $count } valittua yhteystietoa
+ }
+# Variables:
+# $count (Number) - The number of selected lists
+about-addressbook-selection-lists-header2 =
+ { $count ->
+ [one] { $count } valittu lista
+ *[other] { $count } valittua listaa
+ }
+about-addressbook-details-edit-photo =
+ .title = Muokkaa yhteyshenkilön kuvaa
+about-addressbook-new-contact-header = Uusi yhteyshenkilö
+about-addressbook-prefer-display-name = Suosi näyttönimeä viestin otsikon sijaan
+about-addressbook-write-action-button = Kirjoita viesti
+about-addressbook-event-action-button = Tapahtuma
+about-addressbook-search-action-button = Etsi
+about-addressbook-new-list-action-button = Uusi lista
+about-addressbook-begin-edit-contact-button = Muokkaa
+about-addressbook-delete-edit-contact-button = Poista
+about-addressbook-cancel-edit-contact-button = Peruuta
+about-addressbook-save-edit-contact-button = Tallenna
+about-addressbook-add-contact-to = Lisää osoitekirjaan:
+about-addressbook-details-email-addresses-header = Sähköpostiosoitteet
+about-addressbook-details-phone-numbers-header = Puhelinnumerot
+about-addressbook-details-addresses-header = Osoitteet
+about-addressbook-details-notes-header = Huomautukset
+about-addressbook-details-impp-header = Pikaviestintä
+about-addressbook-details-websites-header = Sivustot
+about-addressbook-details-other-info-header = Muut tiedot
+about-addressbook-entry-type-work = Työ
+about-addressbook-entry-type-home = Koti
+about-addressbook-entry-type-fax = Faksi
+# Or "Mobile"
+about-addressbook-entry-type-cell = Matkapuhelin
+about-addressbook-entry-type-pager = Hakulaite
+about-addressbook-entry-name-birthday = Syntymäpäivä
+about-addressbook-entry-name-anniversary = Merkkipäivä
+about-addressbook-entry-name-title = Nimike
+about-addressbook-entry-name-role = Rooli
+about-addressbook-entry-name-organization = Organisaatio
+about-addressbook-entry-name-website = Verkkosivusto
+about-addressbook-entry-name-time-zone = Aikavyöhyke
+about-addressbook-entry-name-custom1 = Oma 1
+about-addressbook-entry-name-custom2 = Oma 2
+about-addressbook-entry-name-custom3 = Oma 3
+about-addressbook-entry-name-custom4 = Oma 4
+about-addressbook-unsaved-changes-prompt-title = Tallentamattomia muutoksia
+about-addressbook-unsaved-changes-prompt = Haluatko tallentaa tekemäsi muutokset ennen kuin poistut muokkausnäkymästä?
+
+# Photo dialog
+
+about-addressbook-photo-drop-target = Pudota tai liitä kuva tähän, tai valitse tiedosto napsauttamalla.
+about-addressbook-photo-drop-loading = Ladataan kuvaa…
+about-addressbook-photo-drop-error = Kuvan lataaminen epäonnistui.
+about-addressbook-photo-filepicker-title = Valitse kuvatiedosto
+about-addressbook-photo-discard = Hylkää olemassa oleva kuva
+about-addressbook-photo-cancel = Peruuta
+about-addressbook-photo-save = Tallenna
+
+# Keyboard shortcuts
+
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000..77665a85ef
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import-ab-csv-dialog-title = Tuo osoitekirja tekstitiedostosta
+
+import-ab-csv-dialog =
+ .buttonlabelaccept = Tuo
+ .buttonaccesskeyaccept = T
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/addressbook/vcard.ftl b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/vcard.ftl
new file mode 100644
index 0000000000..d7c991550e
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/addressbook/vcard.ftl
@@ -0,0 +1,130 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# Display Name
+
+vcard-displayname = Näyttönimi
+vcard-displayname-placeholder =
+ .placeholder = { vcard-displayname }
+
+# Type selection
+
+vcard-entry-type-label = Tyyppi
+vcard-entry-type-home = Koti
+vcard-entry-type-work = Työ
+vcard-entry-type-none = Ei mitään
+vcard-entry-type-custom = Mukautettu
+
+# N vCard field
+
+vcard-name-header = Nimi
+vcard-n-prefix = Etuliite
+vcard-n-add-prefix =
+ .title = Lisää etuliite
+vcard-n-firstname = Etunimi
+vcard-n-add-firstname =
+ .title = Lisää etunimi
+vcard-n-middlename = Toinen nimi
+vcard-n-add-middlename =
+ .title = Lisää toinen nimi
+vcard-n-lastname = Sukunimi
+vcard-n-add-lastname =
+ .title = Lisää sukunimi
+vcard-n-suffix = Jälkiliite
+vcard-n-add-suffix =
+ .title = Lisää jälkiliite
+
+# Nickname
+
+vcard-nickname = Kutsumanimi
+
+# Email vCard field
+
+vcard-email-header = Sähköpostiosoitteet
+vcard-email-add = Lisää sähköpostiosoite
+vcard-email-label = Sähköpostiosoite
+vcard-primary-email-label = Oletus
+
+# URL vCard field
+
+vcard-url-header = Verkkosivustot
+vcard-url-add = Lisää verkkosivusto
+vcard-url-label = Verkkosivusto
+
+# Tel vCard field
+
+vcard-tel-header = Puhelinnumerot
+vcard-tel-add = Lisää puhelinnumero
+vcard-tel-label = Puhelinnumero
+# Or "Mobile"
+vcard-entry-type-cell = Matkapuhelin
+vcard-entry-type-fax = Faksi
+vcard-entry-type-pager = Hakulaite
+
+# TZ vCard field
+
+vcard-tz-header = Aikavyöhyke
+vcard-tz-add = Lisää aikavyöhyke
+
+# IMPP vCard field
+
+vcard-impp2-header = Pikaviestintä
+vcard-impp-add = Lisää pikaviestitili
+vcard-impp-label = Pikaviestitili
+vcard-impp-option-other = Muu
+vcard-impp-input-label = URI
+
+# BDAY and ANNIVERSARY vCard field
+
+vcard-bday-anniversary-header = Erityiset päivät
+vcard-bday-anniversary-add = Lisää erityinen päivä
+vcard-bday-label = Syntymäpäivä
+vcard-anniversary-label = Merkkipäivä
+vcard-date-day = Päivä
+vcard-date-month = Kuukausi
+vcard-date-year = Vuosi
+
+# ADR vCard field
+
+vcard-adr-header = Osoitteet
+vcard-adr-add = Lisää osoite
+vcard-adr-label = Osoite
+vcard-adr-street = Katuosoite
+# Or "Locality"
+vcard-adr-locality = Kaupunki
+# Or "Region"
+vcard-adr-region = Paikkakunta
+# The term "ZIP code" only applies in USA. Most locales should use "Postal code" only.
+vcard-adr-code = Postinumero
+vcard-adr-country = Maa
+
+# NOTE vCard field
+
+vcard-note-header = Huomautuksia
+
+# TITLE, ROLE and ORGANIZATION vCard fields
+
+vcard-org-header = Organisaation ominaisuudet
+vcard-org-add = Lisää organisaation ominaisuuksia
+vcard-org-title-input =
+ .title = Asema tai tehtävä
+ .placeholder = Tehtävänimike
+vcard-org-role = Rooli
+vcard-org-org = Organisaatio
+vcard-org-org-input =
+ .title = Organisaatioyksikön nimi
+ .placeholder = Yrityksen nimi
+vcard-org-org-unit = Osasto
+vcard-org-org-unit-input =
+ .title = Organisaatioyksikön nimi
+ .placeholder = Osasto
+
+# Custom properties
+
+vcard-custom-header = Mukautetut ominaisuudet
+vcard-custom-add = Lisää mukautettuja ominaisuuksia
+vcard-remove-button-title =
+ .title = Poista
+vcard-remove-button = Poista
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/appmenu.ftl b/thunderbird-l10n/fi/localization/fi/messenger/appmenu.ftl
new file mode 100644
index 0000000000..c1bbfec612
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/appmenu.ftl
@@ -0,0 +1,203 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Sync
+
+appmenu-signin-panel =
+ .label = Kirjaudu Sync-palveluun
+ .accesskey = i
+appmenu-sync-sync =
+ .value = Tilin synkronointi
+ .accesskey = s
+appmenu-sync-manage =
+ .value = Hallitse tiliä
+ .accesskey = H
+appmenu-sync-account =
+ .value = example@example.com
+appmenu-sync-now =
+ .label = Synkronoi nyt
+ .accesskey = n
+appmenu-sync-settings =
+ .label = Synkronointiasetukset
+ .accesskey = S
+appmenu-sync-sign-out =
+ .label = Kirjaudu ulos…
+ .accesskey = o
+
+## New Account
+
+appmenu-new-account-panel-title =
+ .title = Uusi tili
+appmenu-new-account-panel =
+ .label = Uusi tili
+ .accesskey = U
+appmenu-create-new-mail-account =
+ .label = Hanki uusi sähköpostiosoite
+ .accesskey = H
+appmenu-new-mail-account =
+ .label = Olemassa oleva sähköpostiosoite
+ .accesskey = E
+appmenu-new-calendar =
+ .label = Kalenteri
+ .accesskey = K
+appmenu-new-chat-account =
+ .label = Keskustelu
+ .accesskey = e
+appmenu-new-feed =
+ .label = Syöte
+ .accesskey = ö
+appmenu-new-newsgroup =
+ .label = Keskusteluryhmä
+ .accesskey = r
+
+## New Account / Address Book
+
+appmenu-newab-panel-title =
+ .title = Uusi osoitekirja
+appmenu-newab-panel =
+ .label = Uusi osoitekirja
+ .accesskey = A
+appmenu-new-addressbook =
+ .label = Paikallinen osoitekirja
+ .accesskey = A
+appmenu-new-carddav =
+ .label = CardDav-osoitekirja
+ .accesskey = C
+appmenu-new-ldap =
+ .label = LDAP-osoitekirja
+ .accesskey = L
+
+## Create
+
+appmenu-create-panel-title =
+ .title = Luo
+appmenu-create-panel =
+ .label = Luo
+ .accesskey = L
+appmenu-create-message =
+ .label = Viesti
+ .accesskey = V
+appmenu-create-event =
+ .label = Tapahtuma
+ .accesskey = T
+appmenu-create-task =
+ .label = Tehtävä
+ .accesskey = ä
+appmenu-create-contact =
+ .label = Yhteystieto
+ .accesskey = Y
+
+## Open
+
+appmenu-open-file-panel =
+ .label = Avaa tiedostosta
+ .accesskey = v
+appmenu-open-file-panel-title =
+ .title = Avaa tiedostosta
+appmenu-open-message =
+ .label = Viesti…
+ .accesskey = V
+appmenu-open-calendar =
+ .label = Kalenteri…
+ .accesskey = K
+
+## View / Layout
+
+appmenu-view-panel-title =
+ .title = Näytä
+appmenu-view-panel =
+ .label = Näytä
+ .accesskey = N
+appmenuitem-toggle-thread-pane-header =
+ .label = Viestiluettelon otsake
+appmenu-font-size-value = Fontin koko
+appmenu-mail-uidensity-value = Tiiviys
+appmenu-uidensity-compact =
+ .tooltiptext = Tiivis
+appmenu-uidensity-default =
+ .tooltiptext = Oletus
+appmenu-uidensity-relaxed =
+ .tooltiptext = Rento
+appmenuitem-font-size-enlarge =
+ .tooltiptext = Suurenna fontin kokoa
+appmenuitem-font-size-reduce =
+ .tooltiptext = Pienennä fontin kokoa
+
+## Tools
+
+appmenu-tools-panel-title =
+ .title = Työkalut
+appmenu-tools-panel =
+ .label = Työkalut
+ .accesskey = T
+appmenu-tools-import =
+ .label = Tuonti
+ .accesskey = u
+appmenu-tools-export =
+ .label = Vienti
+ .accesskey = V
+appmenu-tools-message-search =
+ .label = Etsi viesteistä
+ .accesskey = s
+appmenu-tools-message-filters =
+ .label = Viestisuodattimet
+ .accesskey = s
+appmenu-tools-download-manager =
+ .label = Lataukset
+ .accesskey = L
+appmenu-tools-activity-manager =
+ .label = Toimintojen hallinta
+ .accesskey = A
+appmenu-tools-dev-tools =
+ .label = Kehittäjätyökalut
+ .accesskey = ä
+
+## Help
+
+appmenu-help-panel-title =
+ .title = Ohje
+appmenu-help-get-help =
+ .label = Tuki
+ .accesskey = T
+appmenu-help-explore-features =
+ .label = Tutustu ominaisuuksiin
+ .accesskey = F
+appmenu-help-shortcuts =
+ .label = Pikanäppäimet
+ .accesskey = k
+appmenu-help-get-involved =
+ .label = Tule mukaan
+ .accesskey = m
+appmenu-help-donation =
+ .label = Tee lahjoitus
+ .accesskey = h
+appmenu-help-share-feedback =
+ .label = Jaa ideoita ja palautetta
+ .accesskey = d
+appmenu-help-enter-troubleshoot-mode2 =
+ .label = Ongelmanratkaisutila…
+ .accesskey = M
+appmenu-help-exit-troubleshoot-mode2 =
+ .label = Poista ongelmanratkaisutila käytöstä
+ .accesskey = m
+appmenu-help-troubleshooting-info =
+ .label = Tietoja ongelmatilanteisiin
+ .accesskey = T
+appmenu-help-about-product =
+ .label = Tietoja: { -brand-short-name }
+ .accesskey = A
+
+## Application Update
+
+appmenuitem-banner-update-downloading =
+ .label = Ladataan { -brand-shorter-name }-päivitystä
+appmenuitem-banner-update-available =
+ .label = Päivitys saatavilla — lataa nyt
+appmenuitem-banner-update-manual =
+ .label = Päivitys saatavilla — lataa nyt
+appmenuitem-banner-update-unsupported =
+ .label = Päivitys ei onnistu — järjestelmä ei ole yhteensopiva
+appmenuitem-banner-update-restart =
+ .label = Päivitys saatavilla — käynnistä uudelleen nyt
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/chat-verifySession.ftl b/thunderbird-l10n/fi/localization/fi/messenger/chat-verifySession.ftl
new file mode 100644
index 0000000000..730871f4e7
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/chat-verifySession.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+verify-window-title = Vahvista henkilöys
+# Variables:
+# $subject (String) - a human readable identifier for the other side of the verification flow.
+verify-window-subject-title = Vahvista henkilön { $subject } henkilöys
+verify-dialog =
+ .buttonlabelaccept = Ne ovat sama
+ .buttonaccesskeyaccept = s
+ .buttonlabelextra2 = Ne eivät ole sama
+ .buttonaccesskeyextra2 = e
+challenge-label = Varmista, että näytetty merkkijono vastaa toisessa päässä olevaa näyttöä.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/chat.ftl b/thunderbird-l10n/fi/localization/fi/messenger/chat.ftl
new file mode 100644
index 0000000000..77598a1545
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/chat.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chat-joining-chat-icon2 =
+ .alt = Liitytään keskusteluun
+chat-left-chat-icon2 =
+ .alt = Poistui keskustelusta
+chat-participant-owner-role-icon2 =
+ .alt = Omistaja
+chat-participant-administrator-role-icon2 =
+ .alt = Ylläpitäjä
+chat-participant-moderator-role-icon2 =
+ .alt = Moderaattori
+chat-participant-voiced-role-icon2 =
+ .alt = Osallistuja voi lähettää viestejä
+chat-verify-identity =
+ .label = Vahvista henkilöys
+ .accesskey = i
+chat-identity-verified =
+ .label = Henkilöys on jo vahvistettu
+chat-buddy-identity-status = Salauksen luottamus
+chat-buddy-identity-status-verified = Vahvistettu
+chat-buddy-identity-status-unverified = Vahvistamaton
+
+## Conversation invite notification box
+
+# This string appears in a notification bar at the top of the Contacts window
+# when someone invited the user to a multi user chat conversation, to request
+# the user to confirm they want to join the chat.
+# Variables:
+# $conversation (String) - Name of the conversation the user is invited to.
+chat-conv-invite-label = Sinut on kutsuttu keskusteluun { $conversation }
+chat-conv-invite-accept =
+ .label = Hyväksy
+ .accesskey = H
+chat-conv-invite-deny =
+ .label = Hylkää
+ .accesskey = ä
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000..6bb0131713
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+compact-dialog-window-title =
+ .title = Tiivistä kansiot
+compact-folders-dialog-title = Tiivistä kansiot
+compact-dialog =
+ .buttonlabelaccept = Tiivistä nyt
+ .buttonaccesskeyaccept = T
+ .buttonlabelcancel = Muistuta myöhemmin
+ .buttonaccesskeycancel = M
+ .buttonlabelextra1 = Lue lisää…
+ .buttonaccesskeyextra1 = L
+# Variables:
+# $data (String): The amount of space to be freed, formatted byte, MB, GB, etc., based on the size.
+compact-dialog-message = { -brand-short-name }in tulee tehdä säännöllistä tiedostojen ylläpitoa, jotta sähköpostikansioiden suorituskykyä voidaan parantaa. Tämä palauttaa { $data } levytilaa ilman, että viestejäsi muutetaan. Jos haluat, että { -brand-short-name } tekee tämän jatkossa kysymättä, valitse alla oleva valintaruutu ennen kuin napsautat ‘{ compact-dialog.buttonlabelaccept }’.
+compact-dialog-never-ask-checkbox =
+ .label = Tiivistä kansiot automaattisesti tulevaisuudessa
+ .accesskey = a
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/exportDialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/exportDialog.ftl
new file mode 100644
index 0000000000..d2aa64e010
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/exportDialog.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+export-dialog-brand-name = { -brand-product-name }
+
+export-dialog-title = Vie
+
+export-dialog =
+ .buttonlabelaccept = Seuraava
+
+export-dialog-button-finish = Valmis
+
+export-dialog-file-picker = Vie zip-tiedostoon
+
+export-dialog-description1 = Vie sähköpostitilit, sähköpostiviestit, osoitekirjat ja asetukset zip-tiedostoon.
+
+export-dialog-desc2 = Tarvittaessa voit palauttaa profiilisi tuomallla zip-tiedoston.
+
+export-dialog-exporting = Viedään…
+
+export-dialog-exported = Viety!
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/extensionPermissions.ftl b/thunderbird-l10n/fi/localization/fi/messenger/extensionPermissions.ftl
new file mode 100644
index 0000000000..e9f723d9de
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/extensionPermissions.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-accountsFolders = Luo, nimeä uudelleen tai poista postitilin kansioita
+webext-perms-description-addressBooks = Tarkastele ja muokkaa osoitekirjaa ja yhteyshenkilöitä
+webext-perms-description-compose = Lue ja muokkaa sähköpostiviestejä, kun kirjoitat tai lähetät niitä
+webext-perms-description-compose-send = Lähetä sähköpostiviestejä puolestasi
+webext-perms-description-experiment = Hanki täydellinen ja rajoittamattoman pääy { -brand-short-name }iin ja tietokoneellesi
+webext-perms-description-messagesImport = Tuo viestit Thunderbirdiin
+webext-perms-description-messagesModify = Lue ja muokkaa sähköpostiviestejä, kun niitä näytetään sinulle
+webext-perms-description-messagesRead = Lue sähköpostiviestisi ja merkitse tai lisää tunnisteita niihin
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/extensions/popup.ftl b/thunderbird-l10n/fi/localization/fi/messenger/extensions/popup.ftl
new file mode 100644
index 0000000000..cf521cd8b8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/extensions/popup.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+close-shortcut =
+ .key = w
+# Variables:
+# $title (String): the title of the popup window
+extension-popup-title =
+ { PLATFORM() ->
+ [macos] { $title }
+ *[other] { $title } - { -brand-full-name }
+ }
+extension-popup-default-title = { -brand-full-name }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/extensionsUI.ftl b/thunderbird-l10n/fi/localization/fi/messenger/extensionsUI.ftl
new file mode 100644
index 0000000000..5a352022c4
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/extensionsUI.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+webext-experiment-warning = Haitalliset lisäosat voivat varastaa yksityisiä tietojasi tai vaarantaa tietokoneesi. Asenna tämä lisäosa vain, jos luotat lähteeseen.
+webext-perms-learn-more = Lue lisää
+# Variables:
+# $addonName (String): localized named of the extension that was just installed.
+addon-post-install-message = { $addonName } lisättiin.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/firefoxAccounts.ftl b/thunderbird-l10n/fi/localization/fi/messenger/firefoxAccounts.ftl
new file mode 100644
index 0000000000..5426c2efed
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/firefoxAccounts.ftl
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name =
+ { $capitalization ->
+ [sentence] Firefox-tili
+ *[other] Firefox-tili
+ }
+
+## These strings are shown in a desktop notification after the user requests we resend a verification email.
+
+fxa-verification-sent-title = Vahvistus lähetetty
+# Variables:
+# $userEmail (String) - Email address of user's Firefox Account.
+fxa-verification-sent-body = Vahvistuslinkki on lähetetty osoitteeseen { $userEmail }.
+fxa-verification-not-sent-title = Vahvistuksen lähetys epäonnistui
+fxa-verification-not-sent-body = Vahvistussähköpostin lähetys ei onnistu tällä hetkellä. Yritä uudestaan myöhemmin.
+
+## These strings are shown in a confirmation dialog when the user chooses to sign out.
+
+fxa-signout-dialog-title = Kirjaudutaanko ulos { -fxaccount-brand-name(capitalization: "sentence") }ltä?
+fxa-signout-dialog-body = Synkronoidut tiedot säilyvät tililläsi.
+fxa-signout-dialog-button = Kirjaudu ulos
+
+## These strings are shown in a confirmation dialog when the user chooses to stop syncing.
+
+sync-disconnect-dialog-title = Katkaistaanko yhteys?
+sync-disconnect-dialog-body = { -brand-product-name } lopettaa synkronoinnin, mutta mitään tämän laitteen tietoja ei poisteta.
+sync-disconnect-dialog-button = Katkaise yhteys
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/flatpak.ftl b/thunderbird-l10n/fi/localization/fi/messenger/flatpak.ftl
new file mode 100644
index 0000000000..9c93f63bd5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/flatpak.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These messages are used by the Thunderbird Linux Flatpak "desktop" file.
+### An end user will see them associated with the application launcher icon
+
+# This is the label on the icon
+flatpak-desktop-name = { -brand-short-name }
+# Appears as a tooltip when hovering over application menu entry
+flatpak-desktop-comment = Lähetä ja vastaanota sähköpostia { -brand-product-name }illä
+# A generic description of Thunderbird
+flatpak-desktop-generic-name = Sähköpostiohjelma
+
+## Actions Section
+## These are alternative ways of starting Thunderbird, such as open the compose
+## window to write a message. Visible in a context menu after right clicking a
+## Thunderbird taskbar icon, possibly other places depending on the environment.
+
+flatpak-desktop-action-compose = Kirjoita uusi viesti
+flatpak-desktop-action-addressbook = Avaa osoitekirja
+flatpak-desktop-action-calendar = Avaa kalenteri
+flatpak-desktop-action-keymanager = Avaa OpenPGP-avainhallinta
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/folderprops.ftl b/thunderbird-l10n/fi/localization/fi/messenger/folderprops.ftl
new file mode 100644
index 0000000000..4f505b3547
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/folderprops.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Quota tab
+
+# Variables:
+# $percent (Number) - Usage percentage of the assigned IMAP quota.
+quota-percent-used = { $percent } % täynnä
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl
new file mode 100644
index 0000000000..480a23c0ee
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Short name of the import module
+thunderbird-import-name = Thunderbird
+
+# Description of the import module
+thunderbird-import-description = Tuo postit Thunderbird-profiilihakemistosta.
+
+import-from-thunderbird-zip =
+ .label = Thunderbird (viety profiilivarmuuskopio; zip-tiedosto on pienempi kuin 2 Gt)
+ .accesskey = Z
+
+import-from-thunderbird-dir =
+ .label = Thunderbird (profiilikansio)
+ .accesskey = T
+
+import-select-profile-zip = Valitse zip-pakattu profiilihakemisto
+
+import-select-profile-dir = Valitse profiilihakemisto
+
+zip-file-too-big-title = Zip-tiedosto on liian suuri
+
+zip-file-too-big-message = Valittu zip-tiedosto on suurempi kuin 2 Gt. Pura tiedosto ensin ja tuo sen jälkeen puretusta kansiosta.
+
+wizardpage-failed =
+ .label = Tuonti epäonnistui
+
+wizardpage-failed-message = Tuonti epäonnistui odottamatta, lisätietoja on mahdollisesti saatavissa virhekonsolissa.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/mailWidgets.ftl b/thunderbird-l10n/fi/localization/fi/messenger/mailWidgets.ftl
new file mode 100644
index 0000000000..f8491c31cc
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/mailWidgets.ftl
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+apply-current-view-to-menu =
+ .label = Käytä nykyistä näkymää…
+threadpane-apply-changes-prompt-title = Saatetaanko muutokset voimaan?
+# Variables:
+# $name (String): The name of the folder to apply to.
+threadpane-apply-changes-prompt-no-children-text = Käytetäänkö nykyisen kansion näkymää kansioon { $name }?
+# Variables:
+# $name (String): The name of the folder to apply to.
+threadpane-apply-changes-prompt-with-children-text = Asetetaanko nykyisen kansion näkymä kansioon { $name } ja sen alikansioille?
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/menubar.ftl b/thunderbird-l10n/fi/localization/fi/messenger/menubar.ftl
new file mode 100644
index 0000000000..cdf111f9de
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/menubar.ftl
@@ -0,0 +1,138 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+toolbar-context-menu-menu-bar =
+ .toolbarname = Valikkopalkki
+ .accesskey = V
+
+## Tools Menu
+
+menu-tools-settings =
+ .label = Asetukset
+ .accesskey = A
+menu-addons-and-themes =
+ .label = Lisäosat ja teemat
+ .accesskey = L
+
+## Help Menu
+
+menu-help-help-title =
+ .label = Ohje
+ .accesskey = H
+menu-help-get-help =
+ .label = Tuki
+ .accesskey = H
+menu-help-explore-features =
+ .label = Tutustu ominaisuuksiin
+ .accesskey = F
+menu-help-shortcuts =
+ .label = Pikanäppäimet
+ .accesskey = k
+menu-help-get-involved =
+ .label = Tule mukaan
+ .accesskey = G
+menu-help-donation =
+ .label = Tee lahjoitus
+ .accesskey = D
+menu-help-share-feedback =
+ .label = Jaa ideoita ja palautetta
+ .accesskey = S
+menu-help-enter-troubleshoot-mode =
+ .label = Ongelmanratkaisutila…
+ .accesskey = O
+menu-help-exit-troubleshoot-mode =
+ .label = Poista ongelmanratkaisutila käytöstä
+ .accesskey = i
+menu-help-troubleshooting-info =
+ .label = Tietoja ongelmatilanteisiin
+ .accesskey = l
+menu-help-about-product =
+ .label = Tietoja: { -brand-short-name }
+ .accesskey = A
+# These menu-quit strings are only used on Windows and Linux.
+menu-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Lopeta
+ *[other] Lopeta
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] x
+ *[other] Q
+ }
+# This menu-quit-mac string is only used on macOS.
+menu-quit-mac =
+ .label = Lopeta { -brand-shorter-name }
+# Localization note: Do not translate unless your locale's keyboard layout
+# does not include this key, as it determines the keyboard shortcut for
+# shutting down the application.
+quit-app-shortcut =
+ .key = Q
+
+## Mail Toolbar
+
+toolbar-junk-button =
+ .label = Roskapostia
+ .tooltiptext = Merkitse valitut viestit roskapostiksi
+toolbar-not-junk-button =
+ .label = Ei roskapostia
+ .tooltiptext = Poista roskapostimerkintä valituilta viesteiltä
+toolbar-delete-button =
+ .label = Poista
+ .tooltiptext = Poista valitut viestit tai kansio
+toolbar-undelete-button =
+ .label = Peruuta poistaminen
+ .tooltiptext = Peruuta valittujen viestien poistaminen
+
+## View
+
+menu-view-repair-text-encoding =
+ .label = Korjaa merkistökoodaus
+ .accesskey = K
+
+## View / Folders
+
+menu-view-folders-toggle-header =
+ .label = Kansiopaneelin otsake
+ .accesskey = p
+
+## View / Layout
+
+menu-view-toggle-thread-pane-header =
+ .label = Viestiluettelon otsake
+ .accesskey = V
+menu-font-size-label =
+ .label = Fonttikoko
+ .accesskey = o
+menuitem-font-size-enlarge =
+ .label = Suurenna fonttikokoa
+ .accesskey = u
+menuitem-font-size-reduce =
+ .label = Pienennä fonttikokoa
+ .accesskey = i
+menuitem-font-size-reset =
+ .label = Palauta fonttikoko
+ .accesskey = l
+mail-uidensity-label =
+ .label = Tiheys
+ .accesskey = h
+mail-uidensity-compact =
+ .label = Tiivistä
+ .accesskey = v
+mail-uidensity-default =
+ .label = Oletus
+ .accesskey = D
+mail-uidensity-relaxed =
+ .label = Rento
+ .accesskey = R
+menu-spaces-toolbar-button =
+ .label = Tilat-työkalupalkki
+ .accesskey = T
+
+## File
+
+file-new-newsgroup-account =
+ .label = Keskusteluryhmätili…
+ .accesskey = r
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/messageheader/headerFields.ftl b/thunderbird-l10n/fi/localization/fi/messenger/messageheader/headerFields.ftl
new file mode 100644
index 0000000000..f7ac3e90fb
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/messageheader/headerFields.ftl
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Header lists
+
+message-header-to-list-name = Vastaanottaja
+
+message-header-from-list-name = Lähettäjä
+
+message-header-sender-list-name = Lähettäjä
+
+message-header-reply-to-list-name = Vastausosoite
+
+message-header-cc-list-name = Kopio
+
+message-header-bcc-list-name = Piilokopio
+
+message-header-newsgroups-list-name = Keskusteluryhmät
+
+message-header-tags-list-name = Tunnisteet
+
+## Other message headers.
+## The field-separator is for screen readers to separate the field name from the field value.
+
+message-header-organization-field = Organisaatio<span data-l10n-name="field-separator">:</span>
+
+message-header-subject-field = Aihe<span data-l10n-name="field-separator">:</span>
+
+
+message-header-date-field = Päiväys<span data-l10n-name="field-separator">:</span>
+
+message-header-user-agent-field = Käyttäjäagentti<span data-l10n-name="field-separator">:</span>
+
+message-header-website-field = Verkkosivusto<span data-l10n-name="field-separator">:</span>
+
+# An additional email header field that the user has chosen to display. Unlike
+# the other headers, the name of this header is not expected to be localised
+# because it is generated from the raw field name found in the email header.
+# $fieldName (String) - The field name.
+message-header-custom-field = { $fieldName }<span data-l10n-name="field-separator">:</span>
+
+##
+
+message-header-address-in-address-book-icon2 =
+ .alt = Osoitekirjassa
+
+message-header-address-not-in-address-book-icon2 =
+ .alt = Ei osoitekirjassa
+
+message-header-address-not-in-address-book-button =
+ .title = Tallenna tämä osoite osoitekirjaan
+
+message-header-address-in-address-book-button =
+ .title = Muokkaa yhteystietoa
+
+message-header-field-show-more = Lisää
+ .title = Näytä kaikki vastaanottajat
+
+message-ids-field-show-all = Näytä kaikki
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/messenger.ftl b/thunderbird-l10n/fi/localization/fi/messenger/messenger.ftl
new file mode 100644
index 0000000000..8e40edf48e
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/messenger.ftl
@@ -0,0 +1,399 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Window controls
+
+messenger-window-minimize-button =
+ .tooltiptext = Pienennä
+messenger-window-maximize-button =
+ .tooltiptext = Suurenna
+messenger-window-restore-down-button =
+ .tooltiptext = Palauta pienemmäksi ikkunaksi
+messenger-window-close-button =
+ .tooltiptext = Sulje
+# Variables:
+# $count (Number) - Number of unread messages.
+unread-messages-os-tooltip =
+ { $count ->
+ [one] 1 lukematon viesti
+ *[other] { $count } lukematonta viestiä
+ }
+about-rights-notification-text = { -brand-short-name } on vapaa ja avoimen lähdekoodin ohjelmisto, jota rakentaa tuhansista osallistujista ympäri maailmaa koostuva yhteisö.
+
+## Content tabs
+
+content-tab-page-loading-icon =
+ .alt = Sivu latautuu
+content-tab-security-high-icon =
+ .alt = Yhteys on suojattu
+content-tab-security-broken-icon =
+ .alt = Yhteys ei ole suojattu
+
+# Back
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Back command.
+content-tab-menu-back =
+ .tooltiptext = Siirry sivu taaksepäin ({ $shortcut })
+ .aria-label = Takaisin
+ .accesskey = B
+# This menuitem is only visible on macOS
+content-tab-menu-back-mac =
+ .label = Edellinen
+ .accesskey = E
+
+# Forward
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Forward command.
+content-tab-menu-forward =
+ .tooltiptext = Siirry sivu eteenpäin ({ $shortcut })
+ .aria-label = Seuraava
+ .accesskey = F
+# This menuitem is only visible on macOS
+content-tab-menu-forward-mac =
+ .label = Seuraava
+ .accesskey = S
+
+# Reload
+
+content-tab-menu-reload =
+ .tooltiptext = Lataa sivu uudelleen
+ .aria-label = Lataa uudelleen
+ .accesskey = d
+# This menuitem is only visible on macOS
+content-tab-menu-reload-mac =
+ .tooltiptext = Lataa sivu uudelleen
+ .label = Lataa uudelleen
+ .accesskey = d
+
+# Stop
+
+content-tab-menu-stop =
+ .tooltiptext = Pysäytä sivun lataaminen
+ .aria-label = Pysäytä
+ .accesskey = S
+# This menuitem is only visible on macOS
+content-tab-menu-stop-mac =
+ .tooltiptext = Pysäytä sivun lataaminen
+ .label = Pysäytä
+ .accesskey = S
+
+## Toolbar
+
+addons-and-themes-toolbarbutton =
+ .label = Lisäosat ja teemat
+ .tooltiptext = Hallitse lisäosia
+quick-filter-toolbarbutton =
+ .label = Pikasuodatus
+ .tooltiptext = Suodata viestejä
+redirect-msg-button =
+ .label = Uudelleenohjaa
+ .tooltiptext = Uudelleenohjaa valittu viesti
+
+## Folder Pane
+
+folder-pane-toolbar =
+ .toolbarname = Kansiopaneelin työkalupalkki
+ .accesskey = Ö
+folder-pane-toolbar-options-button =
+ .tooltiptext = Kansiopaneelin asetukset
+folder-pane-header-label = Kansiot
+
+## Folder Toolbar Header Popup
+
+folder-toolbar-hide-toolbar-toolbarbutton =
+ .label = Piilota työkalupalkki
+ .accesskey = P
+show-all-folders-label =
+ .label = Kaikki kansiot
+ .accesskey = K
+show-unread-folders-label =
+ .label = Kansiot, joissa lukematta
+ .accesskey = n
+show-favorite-folders-label =
+ .label = Suosikkikansiot
+ .accesskey = u
+show-smart-folders-label =
+ .label = Yhdistetyt kansiot
+ .accesskey = Y
+show-recent-folders-label =
+ .label = Viimeisimmät kansiot
+ .accesskey = V
+show-tags-folders-label =
+ .label = Tunnukset
+ .accesskey = T
+folder-toolbar-toggle-folder-compact-view =
+ .label = Tiivis näkymä
+ .accesskey = T
+
+## File Menu
+
+menu-file-save-as-file =
+ .label = Tiedosto…
+ .accesskey = T
+
+## Edit Menu
+
+menu-edit-delete-folder =
+ .label = Poista kansio
+ .accesskey = o
+menu-edit-unsubscribe-newsgroup =
+ .label = Lopeta uutisryhmän tilaus
+ .accesskey = r
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-delete-messages =
+ .label =
+ { $count ->
+ [one] Poista viesti
+ *[other] Poista valitut viestit
+ }
+ .accesskey = o
+# Variables:
+# $count (Number) - Number of selected messages.
+menu-edit-undelete-messages =
+ .label =
+ { $count ->
+ [one] Kumoa viestin poisto
+ *[other] Kumoa valittujen viestien poisto
+ }
+ .accesskey = m
+menu-edit-properties =
+ .label = Ominaisuudet
+ .accesskey = O
+menu-edit-folder-properties =
+ .label = Kansion ominaisuudet
+ .accesskey = O
+menu-edit-newsgroup-properties =
+ .label = Keskusteluryhmän ominaisuudet
+ .accesskey = O
+
+## Message Menu
+
+redirect-msg-menuitem =
+ .label = Uudelleenohjaa
+ .accesskey = d
+
+## AppMenu
+
+appmenu-save-as-file =
+ .label = Tiedosto…
+appmenu-settings =
+ .label = Asetukset
+appmenu-addons-and-themes =
+ .label = Lisäosat ja teemat
+
+## Context menu
+
+context-menu-redirect-msg =
+ .label = Uudelleenohjaa
+# This menu item is for canceling an NNTP message
+context-menu-cancel-msg =
+ .label = Peruuta viesti
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-delete-messages =
+ .label =
+ { $count ->
+ [one] Poista valittu viesti
+ *[other] Poista valitut viestit
+ }
+# Variables:
+# $count (Number) - Number of selected messages.
+mail-context-undelete-messages =
+ .label =
+ { $count ->
+ [one] Kumoa viestin poisto
+ *[other] Kumoa valittujen viestien poisto
+ }
+
+## Message header pane
+
+other-action-redirect-msg =
+ .label = Uudelleenohjaa
+# Variables:
+# $address (String) - The email address of the recipient this picture belongs to.
+message-header-recipient-avatar =
+ .alt = Käyttäjän { $address } profiilikuva.
+
+## Message header cutomize panel
+
+message-header-customize-panel-title = Viestin otsakeasetukset
+message-header-customize-button-style =
+ .value = Painikkeen tyyli
+ .accesskey = P
+message-header-button-style-default =
+ .label = Kuvakkeet ja teksti
+message-header-button-style-text =
+ .label = Teksti
+message-header-button-style-icons =
+ .label = Kuvakkeet
+message-header-show-sender-full-address =
+ .label = Näytä aina lähettäjän koko osoite
+ .accesskey = ä
+message-header-show-sender-full-address-description = Sähköpostiosoite näytetään näyttönimen alla.
+message-header-show-recipient-avatar =
+ .label = Näytä lähettäjän profiilikuva
+ .accesskey = p
+message-header-show-big-avatar =
+ .label = Suurempi profiilikuva
+ .accesskey = f
+message-header-all-headers =
+ .label = Näytä kaikki otsakkeet
+ .accesskey = a
+
+## Action Button Context Menu
+
+toolbar-context-menu-manage-extension =
+ .label = Hallitse laajennusta
+ .accesskey = H
+toolbar-context-menu-remove-extension =
+ .label = Poista laajennus
+ .accesskey = P
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-title = Poistetaanko { $name }?
+addon-removal-confirmation-button = Poista
+# Variables:
+# $name (String): The name of the add-on that will be removed.
+addon-removal-confirmation-message = Poistetaanko { $name } ja siihen liittyvät asetukset sekä tiedot { -brand-short-name }ista?
+caret-browsing-prompt-title = Selaus kohdistimella
+caret-browsing-prompt-text = F7-näppäimellä voit ottaa käyttöön tai poistaa käytöstä selauksen kohdistimella. Tämän toiminnon ollessa päällä osassa sisällössä on liikuteltava kohdistin, jonka avulla voit näppäimistöllä valita tekstiä. Selataanko kohdistimella?
+caret-browsing-prompt-check-text = Älä kysy uudestaan.
+repair-text-encoding-button =
+ .label = Korjaa merkistökoodaus
+ .tooltiptext = Arvaa oikea merkistökoodaus viestin sisällöstä
+
+## no-reply handling
+
+no-reply-title = Vastausta ei tueta
+# Variables:
+# $email (String) - Email address the reply will be sent to. Example: "noreply@example.com"
+no-reply-message = Vastausosoite ({ $email }) ei vaikuta olevan valvottu osoite. Kukaan ei todennäköisesti lue tähän osoitteeseen tulevia viestejä.
+no-reply-reply-anyway-button = Vastaa silti
+
+## error messages
+
+# Variables:
+# $failures (Number) - Number of messages that could not be decrypted.
+# $total (Number) - Total number of messages that were attempted to be decrypted.
+decrypt-and-copy-failures-multiple =
+ { $failures ->
+ [one] { $failures }/{ $total } viestin salausta ei voitu purkaa, joten sitä ei kopioitu.
+ *[other] { $failures }/{ $total } viestin salausta ei voitu purkaa, joten niitä ei kopioitu.
+ }
+
+## Spaces toolbar
+
+spaces-toolbar-element =
+ .toolbarname = Tilat-työkalupalkki
+ .aria-label = Tilat-työkalupalkki
+ .aria-description = Pystysuuntainen työkalupalkki, joka mahdollistaa eri tilojen välillä vaihtamisen. Käytä nuolinäppäimiä liikkuaksesi painikkeiden välillä.
+spaces-toolbar-button-mail2 =
+ .title = Sähköposti
+spaces-toolbar-button-address-book2 =
+ .title = Osoitekirja
+spaces-toolbar-button-calendar2 =
+ .title = Kalenteri
+spaces-toolbar-button-tasks2 =
+ .title = Tehtävät
+spaces-toolbar-button-chat2 =
+ .title = Keskustelu
+spaces-toolbar-button-overflow =
+ .title = Lisää tiloja…
+spaces-toolbar-button-settings2 =
+ .title = Asetukset
+spaces-toolbar-button-hide =
+ .title = Piilota Tilat-työkalupalkki
+spaces-toolbar-button-show =
+ .title = Näytä Tilat-työkalupalkki
+spaces-context-new-tab-item =
+ .label = Avaa uudessa välilehdessä
+spaces-context-new-window-item =
+ .label = Avaa uudessa ikkunassa
+# Variables:
+# $tabName (String) - The name of the tab this item will switch to.
+spaces-context-switch-tab-item =
+ .label = Vaihda näkymään { $tabName }
+settings-context-open-settings-item2 =
+ .label = Asetukset
+settings-context-open-account-settings-item2 =
+ .label = Tilin asetukset
+settings-context-open-addons-item2 =
+ .label = Lisäosat ja teemat
+
+## Spaces toolbar pinned tab menupopup
+
+spaces-toolbar-pinned-tab-button =
+ .tooltiptext = Tilat-valikko
+spaces-pinned-button-menuitem-mail2 =
+ .label = { spaces-toolbar-button-mail2.title }
+spaces-pinned-button-menuitem-address-book2 =
+ .label = { spaces-toolbar-button-address-book2.title }
+spaces-pinned-button-menuitem-calendar2 =
+ .label = { spaces-toolbar-button-calendar2.title }
+spaces-pinned-button-menuitem-tasks2 =
+ .label = { spaces-toolbar-button-tasks2.title }
+spaces-pinned-button-menuitem-chat2 =
+ .label = { spaces-toolbar-button-chat2.title }
+spaces-pinned-button-menuitem-settings2 =
+ .label = { spaces-toolbar-button-settings2.title }
+spaces-pinned-button-menuitem-show =
+ .label = { spaces-toolbar-button-show.title }
+# Variables:
+# $count (Number) - Number of unread messages.
+chat-button-unread-messages = { $count }
+ .title =
+ { $count ->
+ [one] Yksi lukematon viesti
+ *[other] { $count } lukematonta viestiä
+ }
+
+## Spaces toolbar customize panel
+
+menuitem-customize-label =
+ .label = Muokkaa…
+spaces-customize-panel-title = Tilat-työkalupalkin asetukset
+spaces-customize-background-color = Taustaväri
+spaces-customize-icon-color = Painikkeen väri
+# The background color used on the buttons of the spaces toolbar when they are
+# `current`, meaning the related space/tab is active and visible.
+spaces-customize-accent-background-color = Valittu painikkeen taustaväri
+# The icon color used on the buttons of the spaces toolbar when they are
+# `current`, meaning the related space/tab is active and visible.
+spaces-customize-accent-text-color = Valittu painikkeen väri
+spaces-customize-button-restore = Palauta oletukset
+ .accesskey = o
+customize-panel-button-save = Valmis
+ .accesskey = V
+
+## Quick Filter Bar
+
+# The label to display for the "View... Toolbars..." menu item that controls
+# whether the quick filter bar is visible.
+quick-filter-bar-toggle =
+ .label = Pikasuodatuspalkki
+ .accesskey = P
+# This is the key used to show the quick filter bar.
+# This should match quick-filter-bar-textbox-shortcut in about3Pane.ftl.
+quick-filter-bar-show =
+ .key = k
+
+## OpenPGP
+
+openpgp-forget = Unohda OpenPGP-salalauseet
+
+## Quota panel.
+
+# Variables:
+# $percent (Number) - Usage percentage of the assigned IMAP quota.
+# $usage (String) - Current quota usage (may include unit)
+# $limit (String) - Current quota limit (may include unit)
+quota-panel-percent-used = { $percent } % täynnä
+ .title = IMAP-kiintiö: Käytetty { $usage }/{ $limit }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000..9c1757142d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl
@@ -0,0 +1,350 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Send Format
+
+compose-send-format-menu =
+ .label = Lähetysmuoto
+ .accesskey = L
+compose-send-auto-menu-item =
+ .label = Automaattinen
+ .accesskey = A
+compose-send-both-menu-item =
+ .label = Sekä HTML että pelkkä teksti
+ .accesskey = S
+compose-send-html-menu-item =
+ .label = Vain HTML
+ .accesskey = H
+compose-send-plain-menu-item =
+ .label = Vain pelkkä teksti
+ .accesskey = t
+
+## Addressing widget
+
+# $type (String) - the type of the addressing row
+remove-address-row-button =
+ .title = Poista { $type } -kenttä
+# $type (String) - the type of the addressing row
+# $count (Number) - the number of address pills currently present in the addressing row
+address-input-type-aria-label =
+ { $count ->
+ [0] { $type }
+ [one] { $type } ja yksi osoite, valitse se vasemmalla nuolinäppäimellä.
+ *[other] { $type } ja { $count } osoitetta, valitse ne vasemmalla nuolinäppäimellä.
+ }
+# $email (String) - the email address
+# $count (Number) - the number of address pills currently present in the addressing row
+pill-aria-label =
+ { $count ->
+ [one] { $email }: muokkaa painamalla Enter, poista painamalla Delete.
+ *[other] { $email }, 1/{ $count }: muokkaa painamalla Enter, poista painamalla Delete.
+ }
+# $email (String) - the email address
+pill-tooltip-invalid-address = { $email } ei ole kelvollinen sähköpostiosoite
+# $email (String) - the email address
+pill-tooltip-not-in-address-book = { $email } ei ole osoitekirjassasi
+pill-action-edit =
+ .label = Muokkaa osoitetta
+ .accesskey = M
+pill-action-select-all-pills =
+ .label = Valitse kaikki osoitteet
+ .accesskey = k
+pill-action-move-to =
+ .label = Siirä vastaanottajaksi
+ .accesskey = S
+pill-action-move-cc =
+ .label = Siirrä kopion vastaanottajaksi
+ .accesskey = k
+pill-action-move-bcc =
+ .label = Siirrä piilokopion vastaanottajaksi
+ .accesskey = p
+pill-action-expand-list =
+ .label = Laajenna luettelo
+ .accesskey = L
+
+## Attachment widget
+
+ctrl-cmd-shift-pretty-prefix =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘{ " " }
+ *[other] Ctrl+Shift+
+ }
+trigger-attachment-picker-key = L
+toggle-attachment-pane-key = M
+menuitem-toggle-attachment-pane =
+ .label = Liite-paneeli
+ .accesskey = L
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
+toolbar-button-add-attachment =
+ .label = Liitä
+ .tooltiptext = Lisää liite ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
+add-attachment-notification-reminder2 =
+ .label = Lisää liite…
+ .accesskey = ä
+ .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+menuitem-attach-files =
+ .label = Tiedosto(t)…
+ .accesskey = T
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+context-menuitem-attach-files =
+ .label = Liitä tiedosto(t)…
+ .accesskey = i
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
+# Note: Do not translate the term 'vCard'.
+context-menuitem-attach-vcard =
+ .label = Oma vCard
+ .accesskey = C
+context-menuitem-attach-openpgp-key =
+ .label = Oma julkinen OpenPGP-avain
+ .accesskey = k
+# $count (Number) - the number of attachments in the attachment bucket
+attachment-bucket-count-value =
+ { $count ->
+ [1] { $count } liite
+ [one] { $count } liitettä
+ *[other] { $count } liitettä
+ }
+attachment-area-show =
+ .title = Näytä liitepaneeli ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
+attachment-area-hide =
+ .title = Piilota liitepaneeli ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
+drop-file-label-attachment =
+ { $count ->
+ [one] Lisää liitteenä
+ *[other] Lisää liitteinä
+ }
+drop-file-label-inline =
+ { $count ->
+ [one] Liitä sisennettynä
+ *[other] Liitä sisennettyinä
+ }
+
+## Reorder Attachment Panel
+
+move-attachment-first-panel-button =
+ .label = Siirrä ensimmäiseksi
+move-attachment-left-panel-button =
+ .label = Siirrä vasemmalle
+move-attachment-right-panel-button =
+ .label = Siirrä oikealle
+move-attachment-last-panel-button =
+ .label = Siirrä viimeiseksi
+button-return-receipt =
+ .label = Vastaanottokuittaus
+ .tooltiptext = Pyydä tämän viestin vastaanottokuittausta
+
+## Encryption
+
+encryption-menu =
+ .label = Turvallisuus
+ .accesskey = c
+encryption-toggle =
+ .label = Salaa
+ .tooltiptext = Käytä päästä päähän -salausta tässä viestissä
+encryption-options-openpgp =
+ .label = OpenPGP
+ .tooltiptext = Näytä tai muuta OpenPGP-salausasetuksia
+encryption-options-smime =
+ .label = S/MIME
+ .tooltiptext = Näytä tai muuta S/MIME-salausasetuksia
+signing-toggle =
+ .label = Allekirjoita
+ .tooltiptext = Käytä digitaalista allekirjoitusta tälle viestille
+menu-openpgp =
+ .label = OpenPGP
+ .accesskey = O
+menu-smime =
+ .label = S/MIME
+ .accesskey = S
+menu-encrypt =
+ .label = Salaa
+ .accesskey = E
+menu-encrypt-subject =
+ .label = Salaa aihe
+ .accesskey = B
+menu-sign =
+ .label = Allekirjoita digitaalisesti
+ .accesskey = i
+menu-manage-keys =
+ .label = Avainavustaja
+ .accesskey = A
+menu-view-certificates =
+ .label = Näytä vastaanottajien varmenteet
+ .accesskey = v
+menu-open-key-manager =
+ .label = Avainhallinta
+ .accesskey = H
+openpgp-key-issue-notification-one = Päästä päähän -salaus edellyttää avainongelmien ratkaisemista vastaanottajan { $addr } osalta
+openpgp-key-issue-notification-many = Päästä päähän -salaus edellyttää { $count } vastaanottajan avainongelmien ratkaisemista.
+smime-cert-issue-notification-one = Päästä päähän -salaus edellyttää varmenneongelmien ratkaisemista vastaanottajan { $addr } osalta
+smime-cert-issue-notification-many = Päästä päähän -salaus edellyttää { $count } vastaanottajan varmenneongelmien ratkaisemista.
+key-notification-disable-encryption =
+ .label = Älä salaa
+ .accesskey = D
+ .tooltiptext = Poista päästä päähän -salaus käytöstä
+key-notification-resolve =
+ .label = Ratkaise…
+ .accesskey = R
+ .tooltiptext = Avaa OpenPGP-avainavustaja
+can-encrypt-smime-notification = S/MIME-pohjainen päästä päähän -salaus on mahdollista.
+can-encrypt-openpgp-notification = OpenPGP-pohjainen päästä päähän -salaus on mahdollista.
+can-e2e-encrypt-button =
+ .label = Salaa
+ .accesskey = l
+
+## Addressing Area
+
+to-address-row-label =
+ .value = Vastaanottaja
+# $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+ .label = Vastaanottaja-kenttä
+ .accesskey = V
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+ .label = Vastaanottaja
+ .accesskey = V
+# $key (String) - the shortcut key for this field
+show-to-row-button = Vastaanottaja
+ .title = Näytä vastaanottajakenttä ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+ .value = Kopio
+# $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+ .label = Kopiokenttä
+ .accesskey = K
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+ .label = Kopio
+ .accesskey = K
+# $key (String) - the shortcut key for this field
+show-cc-row-button = Kopio
+ .title = Näytä kopiokenttä ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+ .value = Piilokopio
+# $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+ .label = Piilokopiokenttä
+ .accesskey = P
+ .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+ .label = Piilokopio
+ .accesskey = P
+# $key (String) - the shortcut key for this field
+show-bcc-row-button = Piilokopio
+ .title = Näytä piilokopiokenttä ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+ .title = Muut näytettävät osoitekentät
+# $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+ { $count ->
+ [one] Viestilläsi on julkinen vastaanottaja. Voit välttää vastaanottajien paljastamisen käyttämällä sen sijaan piilokopiota.
+ *[other] Vastaanottaja- ja kopio-kenttien { $count } vastaanottajaa näkevät toistensa osoitteet. Voit välttää vastaanottajien paljastamisen käyttämällä sen sijaan piilokopiota.
+ }
+many-public-recipients-bcc =
+ .label = Käytä sen sijaan piilokopiota (Bcc)
+ .accesskey = K
+many-public-recipients-ignore =
+ .label = Pidä vastaanottajat julkisina
+ .accesskey = P
+many-public-recipients-prompt-title = Liian monta julkista vastaanottajaa
+# $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+ { $count ->
+ [one] Viestilläsi on julkinen vastaanottaja. Tämä voi olla tietosuojaongelma. Voit välttää tämän siirtämällä vastaanottajan vastaanottaja/kopio-kentästä piilokopio-kenttään.
+ *[other] Viestilläsi on { $count } julkista vastaanottajaa, jotka näkevät toistensa osoitteet. Tämä voi olla tietosuojaongelma. Voit välttää vastaanottajien paljastamisen siirtämällä vastaanottajat vastaanottaja/kopio-kentästä piilokopio-kenttään.
+ }
+many-public-recipients-prompt-cancel = Peruuta lähettäminen
+many-public-recipients-prompt-send = Lähetä silti
+
+## Notifications
+
+# Variables:
+# $identity (string) - The name of the used identity, most likely an email address.
+compose-missing-identity-warning = Lähettäjä-osoitetta vastaavaa yksilöllistä identiteettiä ei löytynyt. Viesti lähetetään käyttämällä nykyistä lähettäjä-kenttää ja identiteetin { $identity } asetuksia.
+encrypted-bcc-warning = Kun lähetät salattua viestiä, piilokopion vastaanottajat eivät ole täysin piilossa. Kaikki vastaanottajat voivat tunnistaa ne.
+encrypted-bcc-ignore-button = Ymmärretty
+
+## Editing
+
+
+# Tools
+
+compose-tool-button-remove-text-styling =
+ .tooltiptext = Poista tekstin tyyli
+
+## Filelink
+
+
+# Placeholder file
+
+
+# Template
+
+# A line of text describing how many uploaded files have been appended to this
+# message. Emphasis should be on sharing as opposed to attaching. This item is
+# used as a header to a list, hence the colon.
+cloud-file-count-header =
+ { $count ->
+ [one] Olen linkittänyt { $count } tiedoston tähän sähköpostiin:
+ *[other] Olen linkittänyt { $count } tiedostoa tähän sähköpostiin:
+ }
+# A text used in a footer, instructing the reader where to find additional
+# information about the used service provider.
+# $link (string) - html a-tag for a link pointing to the web page of the provider
+cloud-file-service-provider-footer-single = Lue lisää { $link }ista.
+# A text used in a footer, instructing the reader where to find additional
+# information about the used service providers. Links for the used providers are
+# split into a comma separated list of the first n-1 providers and a single entry
+# at the end.
+# $firstLinks (string) - comma separated list of html a-tags pointing to web pages
+# of the first n-1 used providers
+# $lastLink (string) - html a-tag pointing the web page of the n-th used provider
+cloud-file-service-provider-footer-multiple = Lue lisää { $firstLink }ista ja { $lastLink }ista.
+# Tooltip for an icon, indicating that the link is protected by a password.
+cloud-file-tooltip-password-protected-link = Salasanasuojattu linkki
+cloud-file-template-size = Koko:
+cloud-file-template-link = Linkki:
+cloud-file-template-password-protected-link = Salasanasuojattu linkki:
+cloud-file-template-expiry-date = Vanhenemispäivä:
+cloud-file-template-download-limit = Latausraja:
+
+# Messages
+
+# $provider (string) - name of the online storage service that reported the error
+cloud-file-connection-error-title = Yhteysvirhe
+cloud-file-connection-error = { -brand-short-name } on offline-tilassa. Ei voitu muodostaa yhteyttä palveluun { $provider }.
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was uploaded and caused the error
+cloud-file-upload-error-with-custom-message-title = { $tiedostonimen } lähettäminen palveluun { $provider } epäonnistui
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-rename-error-title = Uudelleennimeämisvirhe
+cloud-file-rename-error = Tiedoston { $filename } uudelleennimeämisessä { $provider }-palvelussa oli ongelma.
+# $provider (string) - name of the online storage service that reported the error
+# $filename (string) - name of the file that was renamed and caused the error
+cloud-file-rename-error-with-custom-message-title = Tiedoston { $filename } uudelleennimeäminen palvelussa { $provider } epäonnistui
+# $provider (string) - name of the online storage service that reported the error
+cloud-file-rename-not-supported = { $provider } ei tue jo ladattujen tiedostojen uudelleennimeämistä.
+
+## Link Preview
+
+link-preview-title = Linkin esikatselu
+link-preview-description = { -brand-short-name } voi lisätä upotetun esikatselun linkkien liittämisen yhteydessä.
+link-preview-autoadd = Lisää automaattisesti linkkien esikatselut, kun mahdollista
+link-preview-replace-now = Lisätäänkö linkin esikatselu tälle linkille?
+link-preview-yes-replace = Kyllä
+
+## Dictionary selection popup
+
+spell-add-dictionaries =
+ .label = Lisää sanastoja…
+ .accesskey = A
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/migration.ftl b/thunderbird-l10n/fi/localization/fi/messenger/migration.ftl
new file mode 100644
index 0000000000..5230ae679e
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/migration.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+migration-progress-header = Asetetaan { -brand-short-name } valmiiksi…
+
+## Migration tasks
+
+
+# These strings are displayed to the user if a migration is taking a long time.
+# They should be short (no more than a handful of words) and in the present tense.
+
+migration-task-test-fast = Testataan nopeaa muutosta
+migration-task-test-slow = Testataan hidasta muutosta
+migration-task-test-progress = Testataan edistymispalkkia
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/multimessageview.ftl b/thunderbird-l10n/fi/localization/fi/messenger/multimessageview.ftl
new file mode 100644
index 0000000000..1437fc2773
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/multimessageview.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+multi-message-window-title =
+ .title = Viestiyhteenveto
+selected-messages-label =
+ .label = Valitut viestit
+multi-message-archive-button =
+ .label = Arkistoi
+ .tooltiptext = Arkistoi
+multi-message-delete-button =
+ .label = Poista
+ .tooltiptext = Poista
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000..ace718d8d5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/backupKeyPassword.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+set-password-window =
+ .title = Valitse salasana varmuuskopioidaksesi OpenPGP-avaimesi
+set-password-window-title = Valitse salasana varmuuskopioidaksesi OpenPGP-avaimesi
+set-password-legend = Valitse salasana
+set-password-message = Tässä asettamasi salasana suojaa salaisen OpenPGP-avaimen varmuuskopiotiedostoa, jonka olet aikeissa luoda. Sinun tulee asettaa tämä salasana jatkaaksesi varmuuskopiointia.
+set-password-backup-pw =
+ .value = Salaisen avaimen varmuuskopion salasana:
+set-password-repeat-backup-pw =
+ .value = Salaisen avaimen varmuuskopion salasana (uudelleen):
+set-password-backup-pw-label = Salaisen avaimen varmuuskopion salasana:
+set-password-backup-pw2-label = Salaisen avaimen varmuuskopion salasana (uudelleen):
+set-password-reminder = <b>Tärkeää!</b> Jos unohdat salaisen avaimen varmuuskopion salasanan, et pysty palauttamaan tätä varmuuskopiota myöhemmin. Säilytä salasana turvallisesti.
+password-quality-meter = Salasanan laadun mittari
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/changeExpiryDlg.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000..f63daba761
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/changeExpiryDlg.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-change-key-expiry-title =
+ .title = Vaihda avaimen voimassaoloaika
+openpgp-change-expiry-title = Vaihda avaimen voimassaoloaika
+info-will-expire = Tämä avain on tällä hetkellä määritetty vanhenemaan { $date }.
+info-already-expired = Tämä avain on jo vanhentunut.
+info-does-not-expire = Tämä avain on tällä hetkellä määritetty olemaan koskaan vanhenematta.
+info-explanation-1 = <b>Kun avain vanhenee</b>, sitä ei voi enää käyttää salaukseen tai digitaaliseen allekirjoittamiseen.
+info-explanation-2 = Käyttääksesi tätä avainta pidemmän aikaa, vaihda avaimen vanhenemispäivä ja sen jälkeen jaa julkinen avain uudelleen keskustelukumppaneillesi.
+expire-dont-change =
+ .label = Älä vaihda vanhenemispäivämäärää
+expire-never-label =
+ .label = Avain ei vanhene koskaan
+expire-in-label =
+ .label = Avain vanhenee:
+expire-in-months = Kuukautta
+expire-no-change-label = Älä vaihda vanhenemispäivämäärää
+expire-in-time-label = Avain vanhenee:
+expire-never-expire-label = Avain ei vanhene koskaan
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/composeKeyStatus.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000..5b23993971
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/composeKeyStatus.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-compose-key-status-intro-need-keys = Lähettääksesi päästä päähän -salatun viestin, sinun tulee hankkia ja hyväksyä jokaisen vastaanottajan julkinen avain.
+openpgp-compose-key-status-keys-heading = OpenPGP-avainten saatavuus:
+openpgp-compose-key-status-title =
+ .title = OpenPGP-viestisuojaus
+openpgp-compose-key-status-recipient =
+ .label = Vastaanottaja
+openpgp-compose-key-status-status =
+ .label = Tila
+openpgp-compose-key-status-open-details = Hallitse avaimia valitun vastaanottajan osalta…
+openpgp-recip-good = ok
+openpgp-recip-missing = avainta ei ole saatavilla
+openpgp-recip-none-accepted = ei hyväksyttyä avainta
+openpgp-compose-general-info-alias-learn-more = Lue lisää
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyAssistant.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyAssistant.ftl
new file mode 100644
index 0000000000..0d074eb90d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyAssistant.ftl
@@ -0,0 +1,115 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-key-assistant-title = OpenPGP-avainavustin
+openpgp-key-assistant-rogue-warning = Vältä väärennetyn avaimen hyväksymistä. Varmista, että olet saanut oikean avaimen vahvistamalla saamasi avain. <a data-l10n-name="openpgp-link">Lisätietoja…</a>
+
+## Encryption status
+
+openpgp-key-assistant-recipients-issue-header = Ei voi salata
+# Variables:
+# $count (Number) - The number of recipients that need attention.
+openpgp-key-assistant-recipients-description =
+ { $count ->
+ [one] Sinulla on jo yhden vastaanottajan käyttökelpoinen ja hyväksytty avain.
+ *[other] Sinulla on jo { $count } vastaanottajan käyttökelpoisia ja hyväksyttyjä avaimia.
+ }
+openpgp-key-assistant-recipients-description-no-issues = Tämä viesti voidaan salata. Sinulla on käyttökelpoiset ja hyväksytyt avaimet kaikille vastaanottajille.
+
+## Resolve section
+
+# Variables:
+# $recipient (String) - The email address of the recipient needing resolution.
+# $numKeys (Number) - The number of keys.
+openpgp-key-assistant-resolve-title =
+ { $numKeys ->
+ [one] { -brand-short-name } löysi vastaanottajan { $recipient } avaimen.
+ *[other] { -brand-short-name } löysi vastaanottajan { $recipient } avaimet.
+ }
+openpgp-key-assistant-valid-description = Valitse avain, jonka haluat hyväksyä
+# Variables:
+# $numKeys (Number) - The number of available keys.
+openpgp-key-assistant-invalid-title =
+ { $numKeys ->
+ [one] Seuraavaa avainta ei voi käyttää, ellet hanki siihen päivitystä.
+ *[other] Seuraavia avaimia ei voi käyttää, ellet hanki niihin päivitystä.
+ }
+openpgp-key-assistant-no-key-available = Avainta ei ole saatavilla.
+openpgp-key-assistant-multiple-keys = Useita avaimia on saatavilla.
+# Variables:
+# $count (Number) - The number of unaccepted keys.
+openpgp-key-assistant-key-unaccepted =
+ { $count ->
+ [one] Avain on saatavilla, mutta sitä ei ole vielä hyväksytty
+ *[other] Useita avaimia on saatavilla, mutta yhtäkään niistä ei ole vielä hyväksytty.
+ }
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-key-accepted-expired = Hyväksytty avain on vanhentunut { $date }.
+openpgp-key-assistant-keys-accepted-expired = Useat hyväksytyt avaimet ovat vanhentuneet.
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-this-key-accepted-expired = Tämä avain hyväksyttiin aiemmin, mutta se vanheni { $date }.
+# Variables:
+# $date (String) - The expiration date of the key.
+openpgp-key-assistant-key-unaccepted-expired-one = Avain vanheni { $date }.
+openpgp-key-assistant-key-unaccepted-expired-many = Useat avaimet ovat vanhentuneet.
+openpgp-key-assistant-key-fingerprint = Sormenjälki
+# Variables:
+# $count (Number) - Number of key sources.
+openpgp-key-assistant-key-source =
+ { $count ->
+ [one] Lähde
+ *[other] Lähteet
+ }
+openpgp-key-assistant-key-collected-attachment = sähköpostin liitetiedosto
+# Autocrypt is the name of a standard.
+openpgp-key-assistant-key-collected-autocrypt = Autocrypt-otsake
+openpgp-key-assistant-key-collected-keyserver = avainpalvelin
+# Web Key Directory (WKD) is a concept.
+openpgp-key-assistant-key-collected-wkd = Web Key Directory
+# Do not translate GnuPG, it's a name of other software.
+openpgp-key-assistant-key-collected-gnupg = GnuPG-avainnippu
+# Variables:
+# $count (Number) - Number of found keys.
+openpgp-key-assistant-keys-has-collected =
+ { $count ->
+ [one] Avain löydettiin, mutta sitä ei ole vielä hyväksytty.
+ *[other] Useita avaimia löydettiin, mutta yhtäkään niistä ei ole vielä hyväksytty.
+ }
+openpgp-key-assistant-key-rejected = Tämä avain on aiemmin hylätty.
+openpgp-key-assistant-key-accepted-other = Tämä avain on aiemmin hyväksytty toiselle sähköpostiosoitteelle.
+# Variables:
+# $recipient (String) - The email address of the recipient needing resolution.
+openpgp-key-assistant-resolve-discover-info = Etsi vastaanottajan { $recipient } lisäavaimia tai päivitettyjä avaimia verkosta, tai tuo avaimia tiedostosta.
+
+## Discovery section
+
+openpgp-key-assistant-discover-title = Etsintä verkosta on käynnissä.
+# Variables:
+# $recipient (String) - The email address which we're discovering keys.
+openpgp-key-assistant-discover-keys = Etsitään vastaanottajan { $recipient } avaimia…
+# Variables:
+# $recipient (String) - The email address which we're discovering keys.
+openpgp-key-assistant-expired-key-update =
+ Päivitys löydettiin yhdelle aiemmin henkilön { $recipient } hyväksytyistä avaimista.
+ Avainta voi nyt käyttää, koska se ei ole enää vanhentunut.
+
+## Dialog buttons
+
+openpgp-key-assistant-discover-online-button = Löydä julkiset avaimet verkosta…
+openpgp-key-assistant-import-keys-button = Tuo julkiset avaimet tiedostosta…
+openpgp-key-assistant-issue-resolve-button = Ratkaise…
+openpgp-key-assistant-view-key-button = Näytä avain…
+openpgp-key-assistant-recipients-show-button = Näytä
+openpgp-key-assistant-recipients-hide-button = Piilota
+openpgp-key-assistant-cancel-button = Peruuta
+openpgp-key-assistant-back-button = Edellinen
+openpgp-key-assistant-accept-button = Hyväksy
+openpgp-key-assistant-close-button = Sulje
+openpgp-key-assistant-disable-button = Poista salaus käytöstä
+openpgp-key-assistant-confirm-button = Lähetä salattu
+# Variables:
+# $date (String) - The key creation date.
+openpgp-key-assistant-key-created = luotu { $date }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000..7ad69337d5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/keyWizard.ftl
@@ -0,0 +1,140 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# $identity (String) - the email address of the currently selected identity
+key-wizard-dialog-window =
+ .title = Lisää henkilökohtainen OpenPGP-avain osoitteelle { $identity }
+key-wizard-button =
+ .buttonlabelaccept = Jatka
+ .buttonlabelhelp = Takaisin
+key-wizard-dialog =
+ .buttonlabelaccept = Jatka
+ .buttonlabelextra1 = Takaisin
+key-wizard-warning = <b>Jos sinulla on olemassa oleva avain</b> tälle sähköpostiosoitteelle, suosittelemme tuomaan avaimen. Muussa tapauksessa et pysty avaamaan aiemmin vastaanottamiasi salattuja viestejä, etkä pysty lukemaan saapuvia viestejä niiltä henkilöiltä, jotka edelleen käyttävät olemassa olevaa avaintasi.
+key-wizard-learn-more = Lue lisää
+radio-create-key =
+ .label = Luo uusi OpenPGP-avain
+ .accesskey = u
+radio-import-key =
+ .label = Tuo olemassa oleva OpenPGP-avain
+ .accesskey = o
+radio-gnupg-key =
+ .label = Käytä ulkoista avainta GnuPG:n avulla (esimerkiksi älykortilta)
+ .accesskey = K
+
+## Generate key section
+
+openpgp-generate-key-title = Luo OpenPGP-avain
+openpgp-keygen-secret-protection = Salaisen avaimen suojaus
+radio-keygen-no-protection =
+ .label = Suojaamaton
+radio-keygen-protect-primary-pass =
+ .label = Suojaa pääsalasanalla
+radio-keygen-passphrase-protection =
+ .label = Suojaa tunnuslauseella:
+openpgp-passphrase-repeat = Vahvista tunnuslause:
+openpgp-generate-key-info = <b>Avaimen luominen saattaa kestää useita minuutteja.</b> Älä sulje sovellusta, kun avaimen luominen on meneillään. Selaaminen tai levytoimintoja aiheuttavat toiminnot avaimen luonnin aikana täydentävät satunnaisuutta ja nopeuttavat avaimen luontia. Sinulle ilmoitetaan, kun avaimen luonti valmistuu.
+openpgp-keygen-expiry-title = Avaimen vanheneminen
+openpgp-keygen-expiry-description = Määritä uudelle avaimellesi vanhenemisaika. Voit halutessasi myöhemmin pidentää avaimen voimassaoloaikaa.
+radio-keygen-expiry =
+ .label = Avain vanhenee
+ .accesskey = e
+radio-keygen-no-expiry =
+ .label = Avain ei vanhene
+ .accesskey = h
+openpgp-keygen-days-label =
+ .label = päivää
+openpgp-keygen-months-label =
+ .label = kuukautta
+openpgp-keygen-years-label =
+ .label = vuotta
+openpgp-keygen-advanced-title = Lisäasetukset
+openpgp-keygen-advanced-description = Hallitse OpenPGP-avaimesi lisäasetuksia.
+openpgp-keygen-keytype =
+ .value = Avaimen tyyppi:
+ .accesskey = t
+openpgp-keygen-keysize =
+ .value = Avaimen koko:
+ .accesskey = a
+openpgp-keygen-type-rsa =
+ .label = RSA
+openpgp-keygen-type-ecc =
+ .label = ECC (elliptinen käyrä)
+openpgp-keygen-button = Luo avain
+openpgp-keygen-progress-title = Luodaan uutta OpenPGP-avaintasi…
+openpgp-keygen-import-progress-title = Tuodaan OpenPGP-avaintasi…
+openpgp-import-success = OpenPGP-avaimet tuotiin onnistuneesti!
+openpgp-import-success-title = Viimeistele tuonti
+openpgp-import-success-description = Käyttääksesi tuotua OpenPGP-avainta sähköpostin salaukseen, sulje tämä ikkuna ja siirry tiliasetuksiin valitaksesi avaimen.
+openpgp-keygen-confirm =
+ .label = Vahvista
+openpgp-keygen-dismiss =
+ .label = Peruuta
+openpgp-keygen-cancel =
+ .label = Peruuta toimenpide…
+openpgp-keygen-import-complete =
+ .label = Sulje
+ .accesskey = S
+openpgp-keygen-missing-username = Nykyiselle tilille ei ole määritetty nimeä. Anna arvo kenttään "Nimesi" tilin asetuksissa.
+openpgp-keygen-long-expiry = Et voi luoda avainta, joka vanhenee yli 100 vuoden päästä.
+openpgp-keygen-short-expiry = Avaimesi tulee oltava kelvollinen vähintään yhden päivän ajan.
+openpgp-keygen-ongoing = Avaimen luominen on jo meneillään!
+openpgp-keygen-error-core = OpenPGP Core Service -ydinpalvelujen alustaminen ei onnistunut
+openpgp-keygen-error-failed = OpenPGP-avaimen luonti epäonnistui odottamatta
+# $key (String) - the ID of the newly generated OpenPGP key
+openpgp-keygen-error-revocation = OpenPGP-avain luotiin onnistuneesti, mutta avaimelle { $key } ei saatu kumoamismahdollisuutta
+openpgp-keygen-abort-title = Perutaanko avaimen luonti?
+openpgp-keygen-abort = OpenPGP-avaimen luonti on meneillään. Haluatko perua avaimen luonnin?
+# $identity (String) - the name and email address of the currently selected identity
+openpgp-key-confirm = Haluatko luoda julkisen ja yksityisen avaimen identiteetille { $identity }?
+
+## Import Key section
+
+openpgp-import-key-title = Tuo olemassa oleva henkilökohtainen OpenPGP-avain
+openpgp-import-key-legend = Valitse aiemmin varmuuskopioitu tiedosto.
+openpgp-import-key-description = Voit tuoda henkilökohtaisia avaimia, jotka on luotu jollain muulla OpenPGP-ohjelmistolla.
+openpgp-import-key-info = Muut ohjelmistot saattavat viitata henkilökohtaiseen avaimeen termeillä kuten oma avain, salainen avain, yksityinen avain tai avainpari.
+# $count (Number) - the number of keys found in the selected files
+openpgp-import-key-list-amount-2 =
+ { $count ->
+ [one] { -brand-short-name } löysi yhden avaimen, joka on mahdollista tuoda.
+ *[other] { -brand-short-name } löysi { $count } avainta, jotka on mahdollista tuoda.
+ }
+openpgp-import-key-list-description = Vahvista mitä avaimia voidaan käsitellä henkilökohtaisina avaiminasi. Vain avaimia, jotka olet luonut itse ja edustavat identiteettiäsi, tulisi käyttää henkilökohtaisina avaimia. Voit muuttaa tätä valintaa myöhemmin Avaimen ominaisuudet -ikkunassa.
+openpgp-import-key-list-caption = Avaimet, jotka on merkitty käsiteltäväksi henkilökohtaisina avaimia, listataan Päästä päähän -salauksen osiossa. Muut avaimet ovat saatavilla avainhallinnan kautta.
+openpgp-import-keep-passphrases =
+ .label = Säilytä tunnuslausesuojaus tuoduille salaisille avaimille
+openpgp-passphrase-prompt-title = Salalause vaaditaan
+# $identity (String) - the id of the key being imported
+openpgp-passphrase-prompt = Kirjoita salalause avataksesi seuraavan avaimen: { $key }
+openpgp-import-key-button =
+ .label = Valitse tuotava tiedosto…
+ .accesskey = V
+import-key-file = Tuo OpenPGP-avaintiedosto
+import-key-personal-checkbox =
+ .label = Käytä tätä avainta henkilökohtaisena avaimenani
+gnupg-file = GnuPG-tiedostot
+import-error-file-size = <b>Virhe!</b> Yli 5 megatavun tiedostot eivät ole tuettuja.
+# $error (String) - the reported error from the failed key import method
+import-error-failed = <b>Virhe!</b> Tiedoston tuonti epäonnistui. { $error }
+# $error (String) - the reported error from the failed key import method
+openpgp-import-keys-failed = <b>Virhe!</b> Avainten tuonti epäonnistui. { $error }
+openpgp-import-identity-label = Identiteetti
+openpgp-import-fingerprint-label = Sormenjälki
+openpgp-import-created-label = Luotu
+openpgp-import-bits-label = Bittiä
+openpgp-import-key-props =
+ .label = Avaimen ominaisuudet
+ .accesskey = m
+
+## External Key section
+
+openpgp-external-key-title = Ulkoinen GnuPG-avain
+openpgp-external-key-description = Määritä ulkoinen GnuPG-avain kiroittamalla avaimen tunnisteen (Key ID)
+openpgp-external-key-info = Lisäksi sinun tulee käyttää avainhallintaa tuodaksesi ja hyväksyäksesi vastaavan julkisen avaimen.
+openpgp-external-key-warning = <b>Voit määrittää vain yhden ulkoisen GnuPG-avaimen.</b> Aiempi tietue korvataan.
+openpgp-save-external-button = Tallenna avaimen tunniste
+openpgp-external-key-label = Salaisen avaimen tunniste:
+openpgp-external-key-input =
+ .placeholder = 123456789341298340
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/msgReadStatus.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000..a160017fdd
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/msgReadStatus.ftl
@@ -0,0 +1,65 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Message Header Encryption Button
+
+message-header-show-security-info-key = S
+# $type (String) - the shortcut key defined in the message-header-show-security-info-key
+message-security-button =
+ .title =
+ { PLATFORM() ->
+ [macos] Näytä viestin tietosuoja (⌘ ⌥ { message-header-show-security-info-key })
+ *[other] Näytä viestin tietosuoja (Ctrl+Alt+{ message-header-show-security-info-key })
+ }
+openpgp-view-signer-key =
+ .label = Tarkastele allekirjoittajan avainta
+openpgp-view-your-encryption-key =
+ .label = Tarkastele salauksen purkuun käyttämääsi avainta
+openpgp-openpgp = OpenPGP
+openpgp-no-sig = Ei digitaalista allekirjoitusta
+openpgp-no-sig-info = Tämä viesti ei sisällä lähettäjän digitaalista allekirjoitusta. Digitaalisen allekirjoituksen puuttumien tarkoittaa, että viestin on voinut lähettää joku tämän sähköpostiosoitteen omistajaksi tekeytyvä. On myös mahdollista, että viestiä on muokattu sitä verkossa siirrettäessä.
+openpgp-uncertain-sig = Epävarma digitaalinen allekirjoitus
+openpgp-uncertain-sig-with-date = Epävarma digitaalinen allekirjoitus – allekirjoitettu { $date }
+openpgp-invalid-sig = Virheellinen digitaalinen allekirjoitus
+openpgp-invalid-sig-with-date = Virheellinen digitaalinen allekirjoitus - allekirjoitettu { $date }
+openpgp-good-sig = Hyvä digitaalinen allekirjoitus
+openpgp-good-sig-with-date = Hyvä digitaalinen allekirjoitus – allekirjoitettu { $date }
+openpgp-sig-uncertain-no-key = Tämä viesti sisältää digitaalisen allekirjoituksen, mutta sen kelvollisuus on epävarma. Allekirjoituksen vahvistamiseksi sinun tulee hankkia kopio lähettäjän julkisesta avaimesta.
+openpgp-sig-uncertain-uid-mismatch = Tämä viesti sisältää digitaalisen allekirjoituksen, mutta yhteensopimattomuus havaittiin. Viesti lähetettiin sähköpostiosoitteesta, joka ei vastaa lähettäjän julkista avainta.
+openpgp-sig-uncertain-not-accepted = Tämä viesti sisältää digitaalisen allekirjoituksen, mutta et ole vielä päättänyt, onko allekirjoittajan avain hyväksyttävä näkökulmastasi.
+openpgp-sig-invalid-rejected = Tämä viesti sisältää digitaalisen allekirjoituksen, mutta olet aiemmin päättänyt hylätä allekirjoittajan avaimen.
+openpgp-sig-invalid-technical-problem = Tämä viesti sisältää digitaalisen allekirjoituksen, mutta tekninen virhe havaittiin. Joko viesti on rikkoutunut tai sitä on muokattu jonkun muun kuin allekirjoittajan toimesta.
+openpgp-sig-valid-unverified = Tämä viesti sisältää kelvollisen digitaalisen allekirjoituksen, joka on tehty jo aiemmin hyväksymälläsi avaimella. Et ole kuitenkaan vahvistanut, että lähettäjä todellisuudessa omistaa avaimen.
+openpgp-sig-valid-verified = Tämä viesti sisältää kelvollisen digitaalisen allekirjoituksen vahvistetusta avaimesta.
+openpgp-sig-valid-own-key = Tämä viesti sisältää kelvollisen digitaalisen allekirjoituksen henkilökohtaisesta avaimestasi.
+openpgp-sig-key-id = Allekirjoittajan avaimen tunniste: { $key }
+openpgp-sig-key-id-with-subkey-id = Allekirjoittajan avaimen tunniste: { $key } (Aliavaimen tunniste: { $subkey })
+openpgp-enc-key-id = Salauksen purkamiseen käyttämäsi avaimen tunniste: { $key }
+openpgp-enc-key-with-subkey-id = Salauksen purkamiseen käyttämäsi avaimen tunniste: { $key } (Aliavaimen tunniste: { $subkey })
+openpgp-enc-none = Viestiä ei ole salattu
+openpgp-enc-none-label = Tätä viestiä ei salattu ennen sen lähettämistä. Internetissä salaamatta lähetty viesti voi olla muiden nähtävissä siirron aikana.
+openpgp-enc-invalid-label = Viestin salausta ei voida purkaa
+openpgp-enc-invalid = Tämä viesti salattiin ennen kuin se lähetettiin sinulle, mutta salausta ei voida purkaa.
+openpgp-enc-clueless = Tähän salattuun viestiin liittyy tuntemattomia ongelmia.
+openpgp-enc-valid-label = Viesti on salattu
+openpgp-enc-valid = Tämä viesti salattiin, ennen kuin se lähetettiin sinulle. Salaus varmistaa, että vain ne vastaanottajat voivat lukea viestin, jolle se on tarkoitettu.
+openpgp-unknown-key-id = Tuntematon avain
+openpgp-other-enc-additional-key-ids = Lisäksi viesti salattiin seuraavien avainten omistajille:
+openpgp-other-enc-all-key-ids = Viesti salattiin seuraavien avainten omistajille:
+openpgp-message-header-encrypted-ok-icon =
+ .alt = Salauksen purku onnistui
+openpgp-message-header-encrypted-notok-icon =
+ .alt = Salauksen purku epäonnistui
+openpgp-message-header-signed-ok-icon =
+ .alt = Hyvä allekirjoitus
+# Mismatch icon is used for notok state as well
+openpgp-message-header-signed-mismatch-icon =
+ .alt = Huono allekirjoitus
+openpgp-message-header-signed-unknown-icon =
+ .alt = Tuntematon allekirjoituksen tila
+openpgp-message-header-signed-verified-icon =
+ .alt = Vahvistettu allekirjoitus
+openpgp-message-header-signed-unverified-icon =
+ .alt = Vahvistamaton allekirjoitus
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000..c354018321
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/oneRecipientStatus.ftl
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-one-recipient-status-title =
+ .title = OpenPGP-viestisuojaus
+openpgp-one-recipient-status-status =
+ .label = Tila
+openpgp-one-recipient-status-key-id =
+ .label = Avaimen tunniste
+openpgp-one-recipient-status-created-date =
+ .label = Luotu
+openpgp-one-recipient-status-expires-date =
+ .label = Vanhenee
+openpgp-one-recipient-status-open-details =
+ .label = Avaa yksityiskohdat ja muokkaa hyväksyntää…
+openpgp-one-recipient-status-discover =
+ .label = Etsi uusi tai päivitetty avain
+
+openpgp-one-recipient-status-instruction1 = Lähettääksesi päästä päähän -salattuja viestejä vastaanottajan kanssa, sinun tulee saada vastaanottajan julkinen OpenPGP-avain ja merkitä se hyväksytyksi.
+openpgp-one-recipient-status-instruction2 = Saadaksesi julkisen avaimen käyttöön, voit tuoda sellaisen vastaanottajan lähettämästä viestistä, joka sisältää julkisen avaimen. Vaihtoehtoisesti voit etsiä julkista avainta avainhakemistosta.
+
+openpgp-key-own = Hyväksytty (henkilökohtainen avain)
+openpgp-key-secret-not-personal = Ei käyttökelpoinen
+openpgp-key-verified = Hyväksytty (vahvistettu)
+openpgp-key-unverified = Hyväksytty (ei vahvistettu)
+openpgp-key-undecided = Ei hyväksytty (ei päätetty)
+openpgp-key-rejected = Ei hyväksytty (hylätty)
+openpgp-key-expired = Vanhentunut
+
+openpgp-intro = Käytettävissä olevat julkiset avaimet kohteelle { $key }
+
+openpgp-pubkey-import-fpr = Sormenjälki: { $fpr }
+
+openpgp-pubkey-import-intro =
+ { $num ->
+ [one] Tiedosto sisältää yhden julkisen avaimen alla olevan mukaisesti:
+ *[other] Tiedosto sisältää { $num } julkista avainta alla olevan mukaisesti:
+ }
+
+openpgp-pubkey-import-accept =
+ { $num ->
+ [one] Hyväksytkö tämän avaimen digitaalisten allekirjoitusten todentamiseksi ja viestien salaamiseksi kaikille alla näytetyille sähköpostiosoitteille?
+ *[other] Hyväksytkö nämä avaimet digitaalisten allekirjoitusten todentamiseksi ja viestien salaamiseksi kaikille alla näytetyille sähköpostiosoitteille?
+ }
+
+pubkey-import-button =
+ .buttonlabelaccept = Tuo
+ .buttonaccesskeyaccept = T
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000..723170de99
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp-frontend.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+openpgp-manage-keys-openpgp-cmd =
+ .label = OpenPGP-avainhallinta
+ .accesskey = O
+openpgp-ctx-decrypt-open =
+ .label = Pura salaus ja avaa
+ .accesskey = P
+openpgp-ctx-decrypt-save =
+ .label = Pura salaus ja tallenna nimellä…
+ .accesskey = n
+openpgp-ctx-import-key =
+ .label = Tuo OpenPGP-avain
+ .accesskey = T
+openpgp-ctx-verify-att =
+ .label = Vahvista allekirjoitus
+ .accesskey = V
+openpgp-has-sender-key = Tämä viesti väittää sisältävän lähettäjän julkisen OpenPGP-avaimen.
+openpgp-be-careful-new-key = Varoitus: Tässä viestissä oleva uusi julkinen OpenPGP-avain eroaa siitä julkisesta avaimesta, jonka aiemmin hyväksyit käyttäjälle { $email }.
+openpgp-import-sender-key =
+ .label = Tuo…
+openpgp-search-keys-openpgp =
+ .label = Löydä OpenPGP-avain
+openpgp-missing-signature-key = Tämä viesti allekirjoitettiin avaimella, jota sinulla ei vielä ole.
+openpgp-search-signature-key =
+ .label = Löydä…
+# Don't translate the terms "OpenPGP" and "MS-Exchange"
+openpgp-broken-exchange-opened = Tämä on OpenPGP-viesti, jonka ilmeisesti Microsoft Exchange rikkoi. Viestiä ei voi korjata, koska se avattiin paikallisesta tiedostosta. Kopioi viesti sähköpostikansioon, jotta automaattista korjausta on mahdollista yrittää.
+openpgp-broken-exchange-info = Tämä on OpenPGP-viesti, jonka ilmeisesti Microsoft Exchange rikkoi. Jos viestin sisältö ei näytä odotetun kaltaiselta, voit yrittää korjata viestin automaattisesti.
+openpgp-broken-exchange-repair =
+ .label = Korjaa viesti
+openpgp-broken-exchange-wait = Odota hetki…
+openpgp-has-nested-encrypted-parts = Tämä viesti sisältää muita salattuja osia.
+openpgp-show-encrypted-parts = Pura salaus ja näytä
+openpgp-cannot-decrypt-because-mdc =
+ Tämä on salattu viesti, joka käyttää vanhaa ja haavoittuvaa mekanismia.
+ Sitä on saatettu muuttaa välityksen aikana, aikeena varastaa viestin sisältö.
+ Riskin estämiseksi sisältöä ei näytetä.
+openpgp-cannot-decrypt-because-missing-key = Salainen avain, jota tarvitaan tämän viestin salauksen purkamiseen, ei ole käytettävissä.
+openpgp-partially-signed =
+ Vain osa tästä viestistä digitaalisesti allekirjoitettiin OpenPGP:llä.
+ Jos napsautat vahvistuspainiketta, ei-suojatut osat piilotetaan, ja digitaalisen allekirjoituksen tila näytetään.
+openpgp-partially-encrypted =
+ Vain osa tästä viestistä salattiin OpenPGP:llä.
+ Luettavissa oleva osa viestistä, joka tässä jo näytetään, ei ollut salattu.
+ Jos napsautat salauksen purkupainiketta, salattu sisältö näytetään tässä.
+openpgp-reminder-partial-display = Muistutus: Alla näytettävä viesti on vain osajoukko alkuperäisestä viestistä.
+openpgp-partial-verify-button = Vahvista
+openpgp-partial-decrypt-button = Pura salaus
+openpgp-unexpected-key-for-you = Varoitus: Tämä viesti sisältää tuntemattoman OpenPGP-avaimen, joka viittaa yhteen sähköpostiosoitteistasi. Jos tämä ei ole yksi sinun avaimista, se saattaa olla yritys erehdyttää muita vastaanottajia.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000..76db7957ea
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/openpgp/openpgp.ftl
@@ -0,0 +1,780 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+e2e-intro-description = Salattujen tai digitaalisesti allekirjoitettujen viestien lähettämistä varten on määritettävä joko OpenPGP- tai S/MIME-salaustekniikka.
+e2e-intro-description-more = Ota OpenPGP käyttöösi valitsemalla henkilökohtainen avaimesi, tai S/MIME valitsemalla henkilökohtainen varmenteesi. Henkilökohtaista avainta tai varmennetta varten sinulla on vastaava oma salainen avain.
+e2e-signing-description = Digitaalinen allekirjoitus varmistaa vastaanottajille, että viesti on sinun lähettämä ja että viestin sisältöä ei ole muutettu. Salatut viestit allekirjoitetaan aina oletuksena.
+e2e-sign-message =
+ .label = Allekirjoita salaamattomat viestit
+ .accesskey = A
+e2e-disable-enc =
+ .label = Poista uusien viestien salaus käytöstä
+ .accesskey = P
+e2e-enable-enc =
+ .label = Ota salaus käyttöön uusille viesteille
+ .accesskey = n
+e2e-enable-description = Voit poistaa yksittäisten viestien salauksen käytöstä.
+e2e-advanced-section = Lisäasetukset
+e2e-attach-key =
+ .label = Liitä julkinen avaimeni digitaalista OpenPGP-allekirjoitusta lisätessä
+ .accesskey = G
+e2e-encrypt-subject =
+ .label = Salaa OpenPGP-viestien aihe
+ .accesskey = S
+e2e-encrypt-drafts =
+ .label = Säilytä luonnosviestit salatussa muodossa
+ .accesskey = m
+# Do not translate "Autocrypt", it's the name of a standard.
+e2e-autocrypt-headers =
+ .label = Lähetä julkiset OpenPGP-avaimet sähköpostin otsakkeissa, jotta ne ovat yhteensopivia automaattisen Autcrypt-salauksen kanssa
+ .accesskey = { "" }
+openpgp-key-created-label =
+ .label = Luotu
+openpgp-key-expiry-label =
+ .label = Vanheneminen
+openpgp-key-id-label =
+ .label = Avaimen tunniste (ID)
+openpgp-cannot-change-expiry = Tämä on avain, jolla on monimutkainen rakenne. Sen voimassaoloajan muuttamista ei tueta.
+openpgp-key-man-title =
+ .title = OpenPGP-avainhallinta
+openpgp-key-man-dialog-title = OpenPGP-avainhallinta
+openpgp-key-man-generate =
+ .label = Uusi avainpari
+ .accesskey = U
+openpgp-key-man-gen-revoke =
+ .label = Kumoamisvarmenne
+ .accesskey = K
+openpgp-key-man-ctx-gen-revoke-label =
+ .label = Luo ja tallenna kumoamisvarmenne
+openpgp-key-man-file-menu =
+ .label = Tiedosto
+ .accesskey = T
+openpgp-key-man-edit-menu =
+ .label = Muokkaa
+ .accesskey = M
+openpgp-key-man-view-menu =
+ .label = Näytä
+ .accesskey = N
+openpgp-key-man-generate-menu =
+ .label = Luo
+ .accesskey = L
+openpgp-key-man-keyserver-menu =
+ .label = Avainpalvelin
+ .accesskey = A
+openpgp-key-man-import-public-from-file =
+ .label = Tuo julkiset avaimet tiedostosta
+ .accesskey = T
+openpgp-key-man-import-secret-from-file =
+ .label = Tuo salaiset avaimet tiedostosta
+openpgp-key-man-import-sig-from-file =
+ .label = Tuo kumoamiset tiedostosta
+openpgp-key-man-import-from-clipbrd =
+ .label = Tuo avaimet leikepöydältä
+ .accesskey = u
+openpgp-key-man-import-from-url =
+ .label = Tuo avaimet verkko-osoitteesta
+ .accesskey = o
+openpgp-key-man-export-to-file =
+ .label = Vie julkiset avaimet tiedostoon
+ .accesskey = V
+openpgp-key-man-send-keys =
+ .label = Lähetä julkiset avaimet sähköpostilla
+ .accesskey = e
+openpgp-key-man-backup-secret-keys =
+ .label = Varmuuskopioi salaiset avaimet tiedostoon
+ .accesskey = r
+openpgp-key-man-discover-cmd =
+ .label = Etsi avaimia verkossa
+ .accesskey = E
+openpgp-key-man-publish-cmd =
+ .label = Julkaise
+ .accesskey = J
+openpgp-key-publish = Julkaise
+openpgp-key-man-discover-prompt = Etsi OpenPGP-avaimia verkossa, avainpalvelimissa tai WKD-protokollaa käyttäen kirjoittamalla joko sähköpostiosoitteesi tai avaimesi tunniste (ID).
+openpgp-key-man-discover-progress = Etsitään…
+# Variables:
+# $keyserver (String) - The address of a server that contains a directory of OpenPGP public keys
+openpgp-key-publish-ok = Julkinen avain lähetetty avainpalvelimelle "{ $keyserver }".
+# Variables:
+# $keyserver (String) - The address of a server that contains a directory of OpenPGP public keys
+openpgp-key-publish-fail = Julkisen avaimen lähettäminen avainpalvelimelle "{ $keyserver }" epäonnistui.
+openpgp-key-copy-key =
+ .label = Kopioi julkinen avain
+ .accesskey = o
+openpgp-key-export-key =
+ .label = Vie julkinen avain tiedostoon
+ .accesskey = j
+openpgp-key-backup-key =
+ .label = Varmuuskopioi salainen avain tiedostoon
+ .accesskey = s
+openpgp-key-send-key =
+ .label = Lähetä julkinen avain sähköpostilla
+ .accesskey = t
+# Variables:
+# $count (Number) - Number of keys ids to copy.
+openpgp-key-man-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Kopioi avaimen tunniste leikepöydälle
+ *[other] Kopioi avainten tunnisteet leikepöydälle
+ }
+ .accesskey = o
+# Variables:
+# $count (Number) - Number of fingerprints to copy.
+openpgp-key-man-copy-fprs =
+ .label =
+ { $count ->
+ [one] Kopioi sormenjälki leikepöydälle
+ *[other] Kopioi sormenjäljet leikepöydälle
+ }
+ .accesskey = r
+# Variables:
+# $count (Number) - Number of public keys to copy.
+openpgp-key-man-copy-to-clipboard =
+ .label =
+ { $count ->
+ [one] Kopioi julkinen avain leikepöydälle
+ *[other] Kopioi julkiset avaimet leikepöydälle
+ }
+ .accesskey = ä
+openpgp-key-man-ctx-expor-to-file-label =
+ .label = Vie avaimet tiedostoon
+openpgp-key-man-ctx-copy =
+ .label = Kopioi
+ .accesskey = K
+# Variables:
+# $count (Number) - Number of fingerprints.
+openpgp-key-man-ctx-copy-fprs =
+ .label =
+ { $count ->
+ [one] Sormenjälki
+ *[other] Sormenjäljet
+ }
+ .accesskey = S
+# Variables:
+# $count (Number) - Number of key ids.
+openpgp-key-man-ctx-copy-key-ids =
+ .label =
+ { $count ->
+ [one] Avaimen tunniste
+ *[other] Avainten tunnisteet
+ }
+ .accesskey = m
+# Variables:
+# $count (Number) - Number of public keys.
+openpgp-key-man-ctx-copy-public-keys =
+ .label =
+ { $count ->
+ [one] Julkinen avain
+ *[other] Julkiset avaimet
+ }
+ .accesskey = J
+openpgp-key-man-close =
+ .label = Sulje
+openpgp-key-man-reload =
+ .label = Lataa avainvälimuisti uudelleen
+ .accesskey = L
+openpgp-key-man-change-expiry =
+ .label = Muuta vanhemenispäivää
+ .accesskey = t
+openpgp-key-man-refresh-online =
+ .label = Päivitä verkossa
+ .accesskey = P
+openpgp-key-man-ignored-ids =
+ .label = Sähköpostiosoitteet
+openpgp-key-man-del-key =
+ .label = Poista avaimia
+ .accesskey = P
+openpgp-delete-key =
+ .label = Poista avain
+ .accesskey = a
+openpgp-key-man-revoke-key =
+ .label = Kumoa avain
+ .accesskey = m
+openpgp-key-man-key-props =
+ .label = Avaimen ominaisuudet
+ .accesskey = v
+openpgp-key-man-key-more =
+ .label = Lisää
+ .accesskey = L
+openpgp-key-man-view-photo =
+ .label = Kuvan tunniste
+ .accesskey = K
+openpgp-key-man-ctx-view-photo-label =
+ .label = Näytä kuvan tunniste
+openpgp-key-man-show-invalid-keys =
+ .label = Näytä virheelliset avaimet
+ .accesskey = N
+openpgp-key-man-show-others-keys =
+ .label = Näytä muiden ihmisten avaimet
+ .accesskey = m
+openpgp-key-man-user-id-label =
+ .label = Nimi
+openpgp-key-man-fingerprint-label =
+ .label = Sormenjälki
+openpgp-key-man-select-all =
+ .label = Valitse kaikki avaimet
+ .accesskey = k
+openpgp-key-man-empty-tree-tooltip =
+ .label = Kirjoita hakusanat yllä olevaan kenttään
+openpgp-key-man-nothing-found-tooltip =
+ .label = Mikään avain ei vastaa hakusanojasi
+openpgp-key-man-please-wait-tooltip =
+ .label = Odota, avaimia ladataan ...
+openpgp-key-man-filter-label =
+ .placeholder = Etsi avaimia
+openpgp-key-man-select-all-key =
+ .key = K
+openpgp-key-man-key-details-key =
+ .key = T
+openpgp-ign-addr-intro = Hyväksyt tämän avaimen käytön seuraaville valituille sähköpostiosoitteille:
+openpgp-key-details-doc-title = Avaimen ominaisuudet
+openpgp-key-details-signatures-tab =
+ .label = Varmenteet
+openpgp-key-details-structure-tab =
+ .label = Rakenne
+openpgp-key-details-uid-certified-col =
+ .label = Käyttäjätunnus / varmentanut
+openpgp-key-details-key-id-label = Avaimen tunniste
+openpgp-key-details-user-id3-label = Väitetty avaimen omistaja
+openpgp-key-details-id-label =
+ .label = Tunniste
+openpgp-key-details-key-type-label = Tyyppi
+openpgp-key-details-key-part-label =
+ .label = Avaimen osa
+openpgp-key-details-attr-ignored = Varoitus: Tämä avain ei ehkä toimi odotetulla tavalla, koska jotkin sen ominaisuudet ovat vaarallisia ja ne saatetaan ohittaa.
+openpgp-key-details-attr-upgrade-sec = Sinun tulee päivittää vaaralliset ominaisuudet.
+openpgp-key-details-attr-upgrade-pub = Pyydä tämän avaimen omistajaa päivittämään vaaralliset ominaisuudet.
+openpgp-key-details-upgrade-unsafe =
+ .label = Päivitä vaaralliset ominaisuudet
+ .accesskey = P
+openpgp-key-details-upgrade-ok = Avain päivitettiin onnistuneesti. Sinun tulee jakaa päivitetty julkinen avain viestien vastaanottajien kanssa.
+openpgp-key-details-algorithm-label =
+ .label = Algoritmi
+openpgp-key-details-size-label =
+ .label = Koko
+openpgp-key-details-created-label =
+ .label = Luotu
+openpgp-key-details-created-header = Luotu
+openpgp-key-details-expiry-label =
+ .label = Vanhentuminen
+openpgp-key-details-expiry-header = Vanhentuminen
+openpgp-key-details-usage-label =
+ .label = Käyttö
+openpgp-key-details-fingerprint-label = Sormenjälki
+openpgp-key-details-legend-secret-missing = Avaimille, joissa on merkintä (!), ei ole salaista avainta käytettävissä.
+openpgp-key-details-sel-action =
+ .label = Valitse toiminto…
+ .accesskey = V
+openpgp-card-details-close-window-label =
+ .buttonlabelaccept = Sulje
+openpgp-acceptance-label =
+ .label = Hyväksyntäsi
+openpgp-acceptance-rejected-label =
+ .label = Ei, hylkää tämä avain.
+openpgp-acceptance-undecided-label =
+ .label = Ei vielä, ehkä myöhemmin.
+openpgp-acceptance-unverified-label =
+ .label = Kyllä, mutta en ole varmistanut, että tämä on oikea avain.
+openpgp-acceptance-verified-label =
+ .label = Kyllä, olen henkilökohtaisesti varmistanut, että tällä avaimella on oikea sormenjälki.
+key-accept-personal =
+ Tätä avainta varten sinulla on sekä julkinen että salainen osa. Voit käyttää sitä henkilökohtaisena avaimenasi.
+ Jos olet saanut tämän avaimen joltakin toiselta, älä käytä sitä henkilökohtaisena avaimena.
+openpgp-personal-no-label =
+ .label = Ei, älä käytä sitä henkilökohtaisena avaimenani.
+openpgp-personal-yes-label =
+ .label = Kyllä, käytä tätä avainta henkilökohtaisena avaimenani.
+openpgp-passphrase-protection =
+ .label = Tunnuslauseella suojaus
+openpgp-passphrase-status-unprotected = Suojaamaton
+openpgp-passphrase-status-primary-password = Suojattu { -brand-short-name }in pääsalasanalla
+openpgp-passphrase-status-user-passphrase = Suojattu tunnuslauseella
+openpgp-passphrase-instruction-unprotected = Aseta tunnuslause tämän avaimen suojaamiseksi
+openpgp-passphrase-instruction-primary-password = Vaihtoehtoisesti voit suojata tämän avaimen erillisellä tunnuslauseella
+openpgp-passphrase-instruction-user-passphrase = Avaa tämän avaimen lukitus muuttaaksesi sen suojausta.
+openpgp-passphrase-unlock = Avaa
+openpgp-passphrase-unlocked = Avain avattu onnistuneesti.
+openpgp-remove-protection = Poista tunnuslausesuojaus
+openpgp-use-primary-password = Poista tunnuslause ja suojaa pääsalasanalla
+openpgp-passphrase-new = Uusi tunnuslause
+openpgp-passphrase-new-repeat = Vahvista uusi tunnuslause
+openpgp-passphrase-set = Aseta tunnuslause
+openpgp-passphrase-change = Vaihda tunnuslause
+openpgp-copy-cmd-label =
+ .label = Kopioi
+
+## e2e encryption settings
+
+# $identity (String) - the email address of the currently selected identity
+openpgp-description-no-key = { -brand-short-name }illä ei ole henkilökohtaista OpenPGP-avainta identiteetille <b>{ $identity }</b>
+# $count (Number) - the number of configured keys associated with the current identity
+# $identity (String) - the email address of the currently selected identity
+openpgp-description-has-keys =
+ { $count ->
+ [one] { -brand-short-name } löysi { $count } henkilökohtaisen OpenPGP-avaimen liittyen identiteettiin <b>{ $identity }</b>
+ *[other] { -brand-short-name } löysi { $count } henkilökohtaista OpenPGP-avainta liittyen identiteettiin <b>{ $identity }</b>
+ }
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-have-key = Nykyinen kokoonpanosi käyttää avaimen tunnistetta <b>{ $key }</b>
+# $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-error = Nykyinen kokoonpano käyttää avainta <b>{ $key }</b>, joka on vanhentunut.
+openpgp-add-key-button =
+ .label = Lisää avain…
+ .accesskey = L
+e2e-learn-more = Lue lisää
+openpgp-keygen-success = OpenPGP-avain luotu onnistuneesti!
+openpgp-keygen-import-success = OpenPGP-avainten tuonti onnistui!
+openpgp-keygen-external-success = Ulkoisen GnuPG-avaimen tunniste tallennettu!
+
+## OpenPGP Key selection area
+
+openpgp-radio-none =
+ .label = Ei mitään
+openpgp-radio-none-desc = Älä käytä OpenPGP:tä tähän henkilöyteen.
+openpgp-radio-key-not-usable = Tämä avain ei ole soveltuva henkilökohtaiseksi avaimeksi, koska salainen avain puuttuu!
+openpgp-radio-key-not-accepted = Tämän avaimen käyttämiseksi sinun on hyväksyttävä se henkilökohtaiseksi avaimeksi!
+openpgp-radio-key-not-found = Tätä avainta ei löytynyt! Jos haluat käyttää sitä, sinun on tuotava se { -brand-short-name }iin.
+# $date (String) - the future expiration date of when the OpenPGP key will expire
+openpgp-radio-key-expires = Vanhenee: { $date }
+# $date (String) - the past expiration date of when the OpenPGP key expired
+openpgp-radio-key-expired = Vanhentunut: { $date }
+openpgp-key-expires-within-6-months-icon =
+ .title = Avain vanhenee alle 6 kuukaudessa
+openpgp-key-has-expired-icon =
+ .title = Avain on vanhentunut
+openpgp-suggest-publishing-key = Julkisen avaimen julkaiseminen avainpalvelimella antaa muille mahdollisuuden löytää se.
+openpgp-key-expand-section =
+ .tooltiptext = Lisätietoja
+openpgp-key-revoke-title = Kumoa avain
+openpgp-key-edit-title = Vaihda OpenPGP-avain
+openpgp-key-edit-date-title = Myöhäistä vanhenemispäivää
+openpgp-manager-description = Tarkastele ja hallinnoi yhteyshenkilöidesi julkisia avaimia ja muita yllä mainitsemattomia avaimia OpenPGP-avainhallinnalla.
+openpgp-manager-button =
+ .label = OpenPGP-avainhallinta
+ .accesskey = O
+openpgp-key-remove-external =
+ .label = Poista ulkoisen avaimen tunniste
+ .accesskey = P
+key-external-label = Ulkoinen GnuPG-avain
+
+## Strings in keyDetailsDlg.xhtml
+
+key-type-public = julkinen avain
+key-type-primary = ensisijainen avain
+key-type-subkey = aliavain
+key-type-pair = avainpari (salainen avain ja julkinen avain)
+key-expiry-never = ei koskaan
+key-usage-encrypt = Salaa
+key-usage-sign = Allekirjoita
+key-usage-certify = Varmenna
+key-usage-authentication = Todennus
+key-does-not-expire = Avain ei vanhene
+# Variables:
+# $keyExpiry (String) - Date the key expired on.
+key-expired-date = Avain vanhentui { $keyExpiry }
+key-expired-simple = Avain on vanhentunut
+key-revoked-simple = Avain kumottiin
+key-do-you-accept = Hyväksytkö tämän avaimen digitaalisten allekirjoitusten todentamiseksi ja viestien salaamiseksi?
+# Variables:
+# $addr (String) - Email address the key claims it belongs to.
+key-verification = Varmista avaimen sormenjälki muulla suojatulla viestintäkanavalla kuin sähköpostilla varmistaaksesi, että se on todella osoitteen { $addr } avain.
+
+## Strings enigmailMsgComposeOverlay.js
+
+# Variables:
+# $problem (String) - Error message from key usability check.
+cannot-use-own-key-because = Viestiä ei voida lähettää, koska henkilökohtaisessa avaimessasi on ongelma. { $problem }
+window-locked = Kirjoitusikkuna on lukittu; lähetys peruutettu
+
+## Strings in keyserver.jsm
+
+keyserver-error-aborted = Keskeytetty
+keyserver-error-unknown = Tapahtui tuntematon virhe
+keyserver-error-server-error = Avainpalvelin ilmoitti virheestä.
+keyserver-error-import-error = Ladatun avaimen tuonti epäonnistui.
+keyserver-error-unavailable = Avainpalvelin ei ole käytettävissä.
+keyserver-error-security-error = Avainpalvelin ei tue salattua käyttöä.
+keyserver-error-certificate-error = Avainpalvelimen varmenne ei ole kelvollinen.
+keyserver-error-unsupported = Avainpalvelin ei ole tuettu.
+
+## Strings in mimeWkdHandler.jsm
+
+wkd-message-body-req =
+ Sähköpostipalveluntarjoajasi käsitteli pyyntösi julkisen avaimesi lähettämiseksi OpenPGP-verkkoavainhakemistoon.
+ Vahvista julkisen avaimesi julkaiseminen.
+wkd-message-body-process =
+ Tämä sähköpostiviesti liittyy julkisen avaimesi automaattiseen lähettämiseen OpenPGP-verkkoavainhakemistoon.
+ Tässä vaiheessa sinulta ei edellytetä mitään toimia.
+
+## Strings in persistentCrypto.jsm
+
+# Variables:
+# $subject (String) - Subject of the message.
+converter-decrypt-body-failed =
+ Ei pystytty purkamaan viestiä aiheella
+ { $subject }.
+ Haluatko yrittää uudelleen toisella tunnuslauseella, vai haluatko ohittaa viestin?
+
+## Strings filters.jsm
+
+filter-folder-required = Kohdekansio on valittava.
+filter-decrypt-move-warn-experimental =
+ Varoitus - suodatustoiminto "Pura salaus pysyvästi" saattaa johtaa tuhoutuneisiin viesteihin.
+ Suositteleme vahvasti, että kokeilet ensin "Luo salauksesta purettu kopio"-suodatinta, testaat tuloksen huolellisesti, ja aloitat tämän suodattimen käytön vasta kun olet tyytyyväinen lopputulokseen.
+filter-term-pgpencrypted-label = OpenPGP-salattu
+filter-key-required = Vastaanottajan avain on valittava.
+# Variables:
+# $desc (String) - Email address to look for a key of.
+filter-key-not-found = Ei löytynyt salausavainta seuraaville '{ $desc }'.
+# Variables:
+# $desc (String) - The ID of a secret key that is required to read the email after the user executes the current action.
+filter-warn-key-not-secret =
+ Varoitus - suodatintoiminto "Salaa avaimeen" korvaa vastaanottajat.
+ Jos sinulla ei ole salaista avainta kohteisiin '{ $desc }', et pysty enää lukea sähköpostiviestejä.
+
+## Strings filtersWrapper.jsm
+
+filter-decrypt-move-label = Pura salaus pysyvästi (OpenPGP)
+filter-decrypt-copy-label = Luo salauksesta purettu kopio (OpenPGP)
+filter-encrypt-label = Salaa avaimeen (OpenPGP)
+
+## Strings in enigmailKeyImportInfo.js
+
+import-info-title =
+ .title = Onnistui! Avaimet tuotu
+import-info-bits = Bittiä
+import-info-created = Luotu
+import-info-fpr = Sormenjälki
+import-info-details = Näytä yksityiskohdat ja hallitse avaimen hyväksyntää
+import-info-no-keys = Avaimia ei ole tuotu.
+
+## Strings in enigmailKeyManager.js
+
+import-from-clip = Haluatko tuoda yhden tai useamman avaimen leikepöydältä?
+import-from-url = Lataa julkinen avain tästä osoitteesta:
+copy-to-clipbrd-failed = Yhtä tai useampaa valittua avainta ei voitu kopioida leikepöydälle.
+copy-to-clipbrd-ok = Yksi tai useampi avain kopioitu leikepöydälle
+# Variables:
+# $userId (String) - User id of the key.
+delete-secret-key =
+ VAROITUS: Olet aikeissa poistaa salaisen avaimen!
+
+ Jos poistat salaisen avaimen, et voi enää purkaa minkään kyseiselle avaimelle salatun viestin salausta, etkä pysty kumoamaan sitä.
+
+ Haluatko varmasti poistaa MOLEMMAT, salaisen avaimen ja julkisen avaimen
+ '{ $userId }'?
+delete-mix =
+ VAROITUS: Olet aikeissa poistaa salaisia avaimia!
+ Jos poistat salaisen avaimesi, et pysty enää avata niiden viestien salausta, jotka on salattu kyseisellä avaimella.
+ Haluatko varmasti poistaa MOLEMMAT, sekä valitut salaiset että julkiset avaimet?
+# Variables:
+# $userId (String) - User id of the key.
+delete-pub-key =
+ Haluatko poistaa julkisen avaimen
+ '{ $userId }'?
+delete-selected-pub-key = Haluatko poistaa julkiset avaimet?
+refresh-all-question = Et valinnut yhtäkään avainta. Haluatko päivittää KAIKKI avaimet?
+key-man-button-export-sec-key = Vie &salaiset avaimet
+key-man-button-export-pub-key = Vie vain &julkiset avaimet
+key-man-button-refresh-all = &Päivitä kaikki avaimet
+key-man-loading-keys = Ladataan avaimia, odota hetki…
+ascii-armor-file = ASCII-panssaroidut tiedostot (*.asc)
+no-key-selected = Valitse vähintään yksi avain suorittaaksesi valitun toimenpiteen
+export-to-file = Vie julkinen avain tiedostoon
+export-keypair-to-file = Vie salainen ja julkinen avain tiedostoon
+export-secret-key = Haluatko sisällyttää salaisen avaimen tallennettuun OpenPGP-avaintiedostoon?
+save-keys-ok = Avaimet tallennettiin onnistuneesti
+save-keys-failed = Avainten tallentaminen epäonnistui
+default-pub-key-filename = Viedyt-julkiset-avaimet
+default-pub-sec-key-filename = Salaisten-avainten-varmuuskopio
+refresh-key-warn = Varoitus: riippuen avainten määrästä ja yhteyden nopeudesta, kaikkien avainten päivittäminen saattaa kestää!
+preview-failed = Julkisen avaintiedoston lukeminen ei onnistu.
+# Variables:
+# $reason (String) - Error description.
+general-error = Virhe: { $reason }
+dlg-button-delete = &Poista
+
+## Account settings export output
+
+openpgp-export-public-success = <b>Julkinen avain viety onnistuneesti!</b>
+openpgp-export-public-fail = <b>Valitun julkisen avaimen vienti ei onnistunut!</b>
+openpgp-export-secret-success = <b>Salainen avain viety onnistuneesti!</b>
+openpgp-export-secret-fail = <b>Valitun salaisen avaimen vienti ei onnistunut!</b>
+
+## Strings in keyObj.jsm
+## Variables:
+## $userId (String) - The name and/or email address that is mentioned in the key's information.
+## $keyId (String) - Key id for the key entry.
+
+key-ring-pub-key-revoked = Avain { $userId } (avaimen tunniste { $keyId }) on kumottu.
+key-ring-pub-key-expired = Avain { $userId } (avaimen tunniste { $keyId }) on vanhentunut.
+key-ring-no-secret-key = Sinulla ei vaikuta olevan salaista avainta käyttäjälle { $userId } (avaimen tunniste { $keyId }) avainnipussasi; et voi käyttää avainta allekirjoitukseen.
+key-ring-pub-key-not-for-signing = Avainta { $userId } (avaimen tunniste { $keyId }) ei voi käyttää allekirjoittamiseen.
+key-ring-pub-key-not-for-encryption = Avainta { $userId } (avaimen tunniste { $keyId }) ei voi käyttää salaukseen.
+key-ring-sign-sub-keys-revoked = Kaikki avaimen { $userId } (avaimen tunniste { $keyId }) allekirjoitukseen tarkoitetut aliavaimet on kumottu.
+key-ring-sign-sub-keys-expired = Kaikki avaimen { $userId } (avaimen tunniste { $keyId }) allekirjoitukseen tarkoitetut aliavaimet ovat vanhentuneet.
+key-ring-enc-sub-keys-revoked = Kaikki avaimen { $userId } (avaimen tunniste { $keyId }) salaukseen tarkoitetut aliavaimet on kumottu.
+key-ring-enc-sub-keys-expired = Kaikki avaimen { $userId } (avaimen tunniste { $keyId }) salaukseen tarkoitetut aliavaimet ovat vanhentuneet.
+
+## Strings in gnupg-keylist.jsm
+
+keyring-photo = Kuva
+user-att-photo = Käyttäjän ominaisuus (JPEG-kuva)
+
+## Strings in key.jsm
+
+already-revoked = Tämä avain on jo kumottu.
+# $identity (String) - the id and associated user identity of the key being revoked
+revoke-key-question =
+ Olet aikeissa kumota avaimen '{ $identity }'.
+ Et voi enää allekirjoittaa tällä avaimella, ja kun jaettu muille, muut eivät enää pysty salata kyseisellä avaimella. Voit silti käyttää avainta vanhojen viestien salauksen purkamiseen.
+ Haluatko jatkaa?
+# $keyId (String) - the id of the key being revoked
+revoke-key-not-present =
+ Sinulla ei ole avainta (0x{ $keyId }) mikä täsmäisi tätä kumoamisvarmennetta!
+ Jos olet kadottanut avaimesi, sinun tulee tuoda (esim. avainpalvelimelta), ennen kuin tuot kumoamisvarmenteen!
+# $keyId (String) - the id of the key being revoked
+revoke-key-already-revoked = Avain 0x{ $keyId } on jo kumottu.
+key-man-button-revoke-key = &Kumoa avain
+openpgp-key-revoke-success = Avain kumottu onnistuneesti.
+after-revoke-info =
+ Avain on kumottu.
+ Jaa tämä julkinen avain uudelleen, lähettämällä se ihmisille sähköpostitse tai lähettämällä avainpalvelimille, jotta muut saavat tietää sinun kumonneen avaimesi.
+ Kun muiden ihmisten käyttämät ohjelmat saavat tiedon kumoamisesta, ohjelmat lopettavat vanhan avaimesi käytön.
+ Jos käytät uutta avainta samaan sähköpostiosoitteeseen, ja liität uuden julkisen avaimesi lähettämiisi sähköposteihin, niin tieto kumotusta vanhasta avaimestasi sisällytetään automaattisesti.
+
+## Strings in keyRing.jsm & decryption.jsm
+
+key-man-button-import = &Tuo
+delete-key-title = Poista OpenPGP-avain
+delete-external-key-title = Poista ulkoinen GnuPG-avain
+delete-external-key-description = Haluatko poistaa tämän ulkoisen GnuPG-avaimen tunnisteen?
+key-in-use-title = OpenPGP-avain on parhaillaan käytössä
+delete-key-in-use-description = Ei voi jatkaa! Poistettavaksi valitsemasi avain on parhaillaan tämän identiteetin käytössä. Valitse eri avain, tai älä valitse mitään avainta, ja yritä uudelleen.
+revoke-key-in-use-description = Ei voi jatkaa! Kumottavaksi valitsemasi avain on parhaillaan tämän identiteetin käytössä. Valitse eri avain, tai älä valitse mitään avainta, ja yritä uudelleen.
+
+## Strings used in errorHandling.jsm
+
+# Variables:
+# $keySpec (String) - Email address.
+key-error-key-spec-not-found = Sähköpostiosoitetta '{ $keySpec }' ei voida täsmätä avainnipussasi olevaan avaimeen.
+# $keySpec (String) - Key id.
+key-error-key-id-not-found = Määritettyä avaimen tunnistetta '{ $keySpec }' ei löydy avainnipustasi.
+# $keySpec (String) - Key id.
+key-error-not-accepted-as-personal = Et ole vahvistanut, että avain tunnisteella '{ $keySpec }' on henkilökohtainen avaimesi.
+
+## Strings used in enigmailKeyManager.js & windows.jsm
+
+need-online = Valitsemasi toiminto ei ole käytettävissä yhteydettömässä tilassa. Yhdistä verkkoon ja yritä uudelleen.
+
+## Strings used in keyRing.jsm & keyLookupHelper.jsm
+
+no-key-found2 = Hakuehtoja vastaavia avaimia ei löytynyt.
+no-update-found = Sinulla on jo avaimet, jotka löydettiin verkosta.
+
+## Strings used in keyRing.jsm & GnuPGCryptoAPI.jsm
+
+fail-key-extract = Virhe - avaimen purkamiskomento epäonnistui
+
+## Strings used in keyRing.jsm
+
+fail-cancel = Virhe - Avaimen vastaanotto peruttu käyttäjän toimesta
+not-first-block = Virhe - Ensimmäinen OpenPGP-lohko ei ole julkisen avaimen lohko
+import-key-confirm = Haluatko tuoda yhden tai useamman viestiin upotetun julkisen avaimen?
+fail-key-import = Virhe - avaimen tuominen epäonnistui
+# Variables:
+# $output (String) - File that writing was attempted to.
+file-write-failed = Kirjoitus tiedostoon { $output } epäonnistui
+no-pgp-block = Virhe - Kelvollista panssaroitua OpenPGP-datalohkoa ei löytynyt
+confirm-permissive-import = Tuonti epäonnistui. Avain, jota yritit tuoda, saattaa olla rikkoutunut tai se se saattaa käyttää tuntemattomia ominaisuuksia. Haluatko yrittää tuoda kelvolliset osat avaimesta? Tämä saattaa johtaa epätäydellisten ja käyttökelvottomien avainten tuontiin.
+
+## Strings used in trust.jsm
+
+key-valid-unknown = tuntematon
+key-valid-invalid = virheellinen
+key-valid-disabled = pois käytöstä
+key-valid-revoked = kumottu
+key-valid-expired = vanhentunut
+key-trust-untrusted = ei luotettu
+key-trust-marginal = marginaalinen
+key-trust-full = luotettu
+key-trust-ultimate = ultimaattinen
+key-trust-group = (ryhmä)
+
+## Strings used in commonWorkflows.js
+
+import-key-file = Tuo OpenPGP-avaintiedosto
+import-rev-file = Tuo OpenPGP-kumoamistiedosto
+gnupg-file = GnuPG-tiedostot
+import-keys-failed = Avainten tuonti epäonnistui
+# Variables:
+# $key (String) - Key id to unlock.
+# $date (String) - The date on which the key was created
+# $username_and_email (String) - The user name, and/or the email address which the key owner has set for the key.
+passphrase-prompt2 = Anna tunnuslause avataksesi salaisen avaimen, jonka tunnus on { $key }, luotu { $date }, { $username_and_email }
+# Variables:
+# $subkey (String) - Key id to unlock, which is a subkey.
+# $key (String) - This is the main key, to which the subkey belongs.
+# $date (String) - The date on which the key was created
+# $username_and_email (String) - The user name, and/or the email address which the key owner has set for the key.
+passphrase-prompt2-sub = Anna tunnuslause avataksesi salaisen avaimen, jonka tunnus on { $subkey }, joka on avaintunnuksen { $key } aliavain, luotu { $date }, { $username_and_email }
+file-to-big-to-import = Tämä tiedosto on liian suuri. Älä tuo liian suurta määrää avaimia kerralla.
+
+## Strings used in enigmailKeygen.js
+
+save-revoke-cert-as = Luo ja tallenna kumoamisvarmenne
+revoke-cert-ok = Kumoamisvarmenne on luotu onnistuneesti. Voit käyttää sitä julkisen avaimesi mitätöimiseen, jos esimerkiksi kadotat salaisen avaimesi.
+revoke-cert-failed = Kumoamisvarmennetta ei voitu luoda.
+gen-going = Avaimen luominen on jo meneillään!
+keygen-missing-user-name = Valitulle tilille/identiteetille ei ole määritetty nimeä. Anna arvo kenttään "Nimesi" tilin asetuksissa.
+expiry-too-short = Avaimesi tulee olla kelvollinen vähintään yhden päivän ajan.
+expiry-too-long = Et voi luoda avainta, joka vanhenee yli 100 vuoden päästä.
+# Variables:
+# $id (String) - Name and/or email address to generate keys for.
+key-confirm = Haluatko luoda julkisen ja salaisen avaimen identiteetille '{ $id }'?
+key-man-button-generate-key = &Luo avain
+key-abort = Lopetetaanko avaimen luominen?
+key-man-button-generate-key-abort = &Lopeta avaimen luominen
+key-man-button-generate-key-continue = &Jatka avaimen luomista
+
+## Strings used in enigmailMessengerOverlay.js
+
+failed-decrypt = Virhe - salauksen purkaminen epäonnistui
+fix-broken-exchange-msg-failed = Viestin korjaaminen ei onnistunut.
+# Variables:
+# $attachment (String) - File name of the signature file.
+attachment-no-match-from-signature = Allekirjoitustiedostoa '{ $attachment }' ei voitu täsmätä liitteeseen
+# Variables:
+# $attachment (String) - File name of the attachment.
+attachment-no-match-to-signature = Liitettä '{ $attachment }' ei voitu täsmätä allekirjoitustiedostoon
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verified-ok = Liitteen { $attachment } allekirjoitus vahvistettiin onnistuneesti
+# Variables:
+# $attachment (String) - File name of the attachment
+signature-verify-failed = Liitteen { $attachment } allekirjoitusta ei voitu vahvistaa
+decrypt-ok-no-sig =
+ Varoitus
+ Viestin salauksen purkaminen onnistui, mutta allekirjoitusta ei voitu vahvistaa oikeaoppisesti
+msg-ovl-button-cont-anyway = &Jatka silti
+enig-content-note = *Tämän viestin liitteitä ei ole allekirjoitettu tai salattu*
+
+## Strings used in enigmailMsgComposeOverlay.js
+
+msg-compose-button-send = &Lähetä viesti
+msg-compose-details-button-label = Lisätiedot…
+msg-compose-details-button-access-key = L
+send-aborted = Lähetys keskeytetty.
+# Variables:
+# $key (String) - Key id.
+key-not-trusted = Ei riittävästi luottamusta avaimeen '{ $key }'
+# Variables:
+# $key (String) - Key id.
+key-not-found = Avainta '{ $key }' ei löytynyt
+# Variables:
+# $key (String) - Key id.
+key-revoked = Avain '{ $key }' kumottu
+# Variables:
+# $key (String) - Key id.
+key-expired = Avain '{ $key }' vanhentui
+msg-compose-internal-error = Tapahtui sisäinen virhe.
+keys-to-export = Valitse sisällytettävät OpenPGP-avaimet
+msg-compose-partially-encrypted-inlinePGP =
+ Viesti johon vastaat sisälsi sekä salaamattomia että salattuja osia. Jos lähettäjä ei kyennyt purkamaan joitain viestin osia alunperin, saatat vuotaa arkaluonteista tietoa, jota lähettäjä ei aiemmin itse pystynyt purkamaan salauksesta.
+ On suositeltavaa poistaa kaikki lainattu teksti vastauksestasi tälle lähettäjälle.
+msg-compose-cannot-save-draft = Virhe luonnosta tallennettaessa
+msg-compose-partially-encrypted-short = Varo vuotamasta arkaluonteisia tietoja - osittain salattu sähköposti.
+quoted-printable-warn =
+ Olet ottanut käyttöön 'quoted-printable'-enkoodauksen lähettäville viesteille. Tämä saattaa johtaa virheelliseen salauksen purkuun tai viestisi vahvistukseen.
+ Haluatko poistaa käytöstä 'quoted-printable'-viestien lähettämisen nyt?
+# Variables:
+# $width (Number) - Number of characters per line.
+minimal-line-wrapping =
+ Olet asettanut rivityksen { $width } merkkiin. Oikeaoppisen salauksen ja/tai allekirjoituksen vuoksi tämän arvon tulee olla vähintään 68.
+ Haluatko muuttaa rivityksen arvon 68 merkkiin?
+sending-news =
+ Salattu lähetys keskeytetty.
+ Tätä viestiä ei voi salata, koska vastaanottajissa on uutisryhmiä. Lähetä tämä viesti uudelleen ilman salausta.
+send-to-news-warning =
+ Varoitus: olet aikeissa lähettää salatun sähköpostin uutisryhmään.
+ Tämä ei ole suositeltavaa, koska siinä on järkeä vain jos kaikilla ryhmän jäsenillä on mahdollisuus purkaa viestin salaus. Toisin sanoen viesti tulee olla salattu kaikkien ryhmän jäsenten avaimilla. Lähetä tämä viesti vain, jos tiedät tarkalleen mitä olet tekemässä.
+ Haluatko jatkaa?
+save-attachment-header = Tallenna salauksesta purettu liite
+possibly-pgp-mime = Mahdollisesti PGP/MIME-salattu tai allekirjoitettu viesti; käytä "Pura salaus/Vahvista'-toimintoa vahvistaaksesi
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-sig-because-no-own-key = Tätä viestiä ei voi digitaalisesti allekirjoittaa, koska et ole vielä määrittänyt päästä päähän -salausta avaimelle <{ $key }>
+# Variables:
+# $key (String) - Sender email address.
+cannot-send-enc-because-no-own-key = Tätä viestiä ei voi lähettää salattuna, koska et ole vielä määrittänyt päästä päähän -salausta avaimelle <{ $key }>
+
+## Strings used in decryption.jsm
+
+# Variables:
+# $key (String) - Newline separated list of a tab character then name and/or email address mentioned in the key followed by the key id in parenthesis.
+do-import-multiple =
+ Haluatko tuoda seuraavat avaimet?
+ { $key }
+# Variables:
+# $name (String) - Name and/or email address mentioned in the key.
+# $id (String) - Key id of the key.
+do-import-one = Haluatko tuoda { $name } ({ $id })?
+cant-import = Virhe tuotaessa julkista avainta
+unverified-reply = Sisennettyä viestin osaa (vastaus) luultavasti muokattiin
+key-in-message-body = Avain löydettiin viestin sisällöstä. Napsauta "Tuo avain" tuodaksesi avaimen
+sig-mismatch = Virhe - Allekirjoituksen yhteensopimattomuus
+invalid-email = Virhe - yksi tai useampi virheellinen sähköpostiosoite
+# Variables:
+# $name (String) - File name of the attachment.
+attachment-pgp-key =
+ Liite '{ $name }' vaikuttaa olevan OpenPGP-avaintiedosto.
+ Napsauta "Tuo" tuodaksesi avaimen tai "Näytä" tarkastellaksesi tiedoston sisältöä selainikkunassa
+dlg-button-view = &Näytä
+
+## Strings used in enigmailMsgHdrViewOverlay.js
+
+decrypted-msg-with-format-error = Salauksesta purettu viesti (palautettu rikkoutuneesta PGP-sähköpostimuodosta, jonka aiheutti mitä luultavimmin vanha Exchange-palvelin, joten lopputulos ei välttämättä ole täydellisesti luettavissa)
+
+## Strings used in encryption.jsm
+
+not-required = Virhe - salausta ei vaadita
+
+## Strings used in windows.jsm
+
+no-photo-available = Ei kuvaa saatavilla
+# Variables:
+# $photo (String) - Path of the photo in the key.
+error-photo-path-not-readable = Kuvan polku '{ $photo }' ei ole luettavissa
+debug-log-title = OpenPGP-vianjäljitysloki
+
+## Strings used in dialog.jsm
+
+# This string is followed by either repeat-suffix-singular if $count is 1 or else
+# by repeat-suffix-plural.
+# Variables:
+# $count (Number) - Number of times the alert will repeat.
+repeat-prefix = Tämä hälytys toistetaan { $count }
+repeat-suffix-singular = kerran.
+repeat-suffix-plural = kertaa.
+no-repeat = Tätä hälytystä ei näytetä uudelleen.
+dlg-keep-setting = Muista vastaukseni, älä kysy uudestaan
+dlg-button-ok = &OK
+dlg-button-close = &Sulje
+dlg-button-cancel = &Peruuta
+dlg-no-prompt = Älä näytä tätä ikkunaa uudestaan
+enig-prompt = OpenPGP-kehote
+enig-confirm = OpenPGP-vahvistus
+enig-alert = OpenPGP-hälytys
+enig-info = OpenPGP-tiedot
+
+## Strings used in persistentCrypto.jsm
+
+dlg-button-retry = &Yritä uudelleen
+dlg-button-skip = &Ohita
+
+## Strings used in enigmailMsgBox.js
+
+enig-alert-title =
+ .title = OpenPGP-hälytys
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/add-finger.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000..b27a5ad681
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/add-finger.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+otr-add-finger-title = Lisää OTR-avaimen sormenjälki
+
+# Variables:
+# $name (String) - name of a chat contact person
+# Do not translate 'OTR' (name of an encryption protocol)
+otr-add-finger-description = Syötä OTR-avaimen sormenjälki kontaktille { $name }.
+
+otr-add-finger-fingerprint = Sormenjälki:
+otr-add-finger-tooltip-error = Syötetty virheellinen merkki. Vain kirjaimet ABCDEF ja numerot ovat sallittuja
+
+otr-add-finger-input =
+ .placeholder = 40 merkkiä pitkä OTR-avaimen sormenjälki
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000..8fdbd6a0c1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/am-im-otr.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-encryption =
+ .label = Päästä päähän -salaus
+account-otr-label = Off-the-Record Messaging (OTR)
+account-otr-description2 = { -brand-short-name } tukee kahdenvälisten keskustelujen päästä päähän -salausta OTR:ään pohjautuen. Tämä estää kolmansia osapuolia salakuuntelemasta keskustelua. Tällaista päästä päähän -salausta voidaan käyttää vain, kun molemmat osapuolet käyttävät OTR:ää tukevaa ohjelmistoa.
+otr-encryption-title = Varmistettu salaus
+otr-encryption-caption = Jotta muut voivat varmistaa henkilöllisyytesi OTR-keskusteluissa, jaa oma OTR-sormenjälkesi ulkoisella (kaistan ulkopuolella) viestintäkanavalla.
+otr-fingerprint-label = Sormenjälkesi:
+view-fingerprint-button =
+ .label = Hallitse yhteystietojen sormenjälkiä
+ .accesskey = H
+otr-settings-title = OTR-asetukset
+otr-require-encryption =
+ .label = Vaadi päästä päähän -salaus kahdenvälisille keskusteluille
+otr-require-encryption-info =
+ Kun vaaditaan päästä päähän -salausta, viestejä henkilökohtaisissa keskusteluissa
+ ei lähetetä, ellei niitä voida salata. Saapuneita salaamattomia viestejä
+ ei näytetä osana normaalia keskustelua, eikä niitä myöskään kirjata.
+otr-verify-nudge =
+ .label = Muistuta minua aina varmistamaan varmistamaton yhteyshenkilö
+otr-not-yet-available = ei vielä saatavilla
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/auth.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/auth.ftl
new file mode 100644
index 0000000000..c0701558ad
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/auth.ftl
@@ -0,0 +1,50 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+otr-auth =
+ .title = Varmista yhteyshenkilön henkilöllisyys
+ .buttonlabelaccept = Varmista
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+auth-title = Varmista yhteyshenkilön { $name } henkilöllisyys
+
+# Variables:
+# $own_name (String) - the user's own screen name
+auth-your-fp-value = Sormenjälkesi, { $own_name }:
+
+# Variables:
+# $their_name (String) - the screen name of a chat contact
+auth-their-fp-value = Sormenjälki yhteyshenkilöllle { $their_name }:
+
+auth-help = Yhteyshenkilön henkilöllisyyden varmistaminen takaa, että keskustelu on todella yksityistä, jolloin kolmannen osapuolen on vaikeaa salakuunnella tai manipuloida keskustelua.
+
+auth-yes =
+ .label = Kyllä
+
+auth-no =
+ .label = Ei
+
+auth-verified = Olen varmistanut, että tämä on todella oikea sormenjälki.
+
+auth-manual-verification = Manuaalinen sormenjäljen varmennus
+auth-question-and-answer = Kysymys ja vastaus
+auth-shared-secret = Jaettu salaisuus
+
+auth-manual-verification-label =
+ .label = { auth-manual-verification }
+
+auth-question-and-answer-label =
+ .label = { auth-question-and-answer }
+
+auth-shared-secret-label =
+ .label = { auth-shared-secret }
+
+auth-how = Kuinka haluaisit varmistaa yhteyshenkilösi henkilöllisyyden?
+
+auth-question = Kirjoita kysymys:
+
+auth-answer = Kirjoita vastaus (kirjainkoosta riippuvainen):
+
+auth-secret = Kirjoita salaisuus:
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/chat.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/chat.ftl
new file mode 100644
index 0000000000..25accff9a1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/chat.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+state-label = Salauksen tila:
+
+start-text = Aloita salattu keskustelu
+
+start-label =
+ .label = { start-text }
+
+start-tooltip =
+ .tooltiptext = { start-text }
+
+end-label =
+ .label = Lopeta salattu keskustelu
+
+auth-label =
+ .label = Varmista yhteyshenkilösi henkilöys
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/finger-sync.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000..783b2db6f4
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/finger-sync.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+finger-yes = Varmistettu
+finger-no = Varmistamaton
+
+finger-subset-title = Poista sormenjäljet
+finger-subset-message = Vähintään yhtä sormenjälkeä ei voitu poistaa, koska vastaavaa avainta käytetään tällä hetkellä aktiivisessa keskustelussa.
+
+finger-remove-all-title = Poista kaikki sormenjäljet
+finger-remove-all-message = Haluatko varmasti poistaa kaikki aiemmin nähdyt sormenjäljet? Kaikki aikaisemmat OTR-henkilöyden varmistukset menetetään.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/finger.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/finger.ftl
new file mode 100644
index 0000000000..c126d6809b
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/finger.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+otr-finger-title = Aiemmin nähdyt OTR-sormenjäljet
+
+finger-intro = OTR-avaimen sormenjäljet aikaisemmista salatuista keskusteluista.
+
+finger-verified =
+ .label = Varmistuksen tila
+finger-fingerprint =
+ .label = Sormenjälki
+
+finger-remove =
+ .label = Poista valitut
+
+finger-remove-all =
+ .label = Poista kaikki
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/otr.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/otr.ftl
new file mode 100644
index 0000000000..dcbe3c5685
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/otr.ftl
@@ -0,0 +1,97 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-encryption-required-part1 = Yritit lähettää salaamattoman viestin yhteyshenkilölle { $name }. Salaamattomat viestit eivät ole sallittuja.
+
+msgevent-encryption-required-part2 = Yritetään aloittaa yksityinen keskustelu. Viestisi lähetetään uudelleen, kun yksityinen keskustelu alkaa.
+msgevent-encryption-error = Viestisi salaamisessa tapahtui virhe. Viestiä ei lähetetty.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-connection-ended = { $name } on jo sulkenut salatun yhteyden sinulle. Viestiäsi ei lähetetty, jotta et lähettäisi viestiä vahingossa ilman salausta. Lopeta salattu keskustelu tai käynnistä se uudelleen.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-setup-error = Avatessasi yksityistä keskustelua käyttäjän { $name } kanssa tapahtui virhe.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+msgevent-msg-reflected = Vastaanotat omia OTR-viestejäsi. Yrität joko puhua itsellesi tai joku peilaa viestejäsi takaisin sinulle.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-msg-resent = Viimeisin viesti yhteyshenkilölle { $name } lähetettiin uudelleen.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-not-private = Lähettäjältä { $name } vastaanotettu salattu viesti ei ole luettavissa, koska et ole tällä hetkellä yhteydessä yksityisesti.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-unreadable = Sait lukukelvottoman salatun viestin yhteyshenkilöltä { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-malformed = Sait väärän muotoisen dataviestin yhteyshenkilöltä { $name }.
+
+# A Heartbeat is a technical message used to keep a connection alive.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-log-heartbeat-rcvd = Syke vastaanotettiin yhteyshenkilöltä { $name }.
+
+# A Heartbeat is a technical message used to keep a connection alive.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-log-heartbeat-sent = Syke lähetetty yhteyshenkilölle { $name }.
+
+# Do not translate 'OTR' (name of an encryption protocol)
+msgevent-rcvdmsg-general-err = Odottamaton virhe yritettäessä suojata keskusteluasi OTR:llä.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+# $msg (string) - the message that was received.
+msgevent-rcvdmsg-unencrypted = Seuraavaa yhteyshenkilöltä { $name } vastaanotettua viestiä ei salattu: { $msg }
+
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-unrecognized = Sait tunnistamattoman OTR-viestin yhteyshenkilöltä { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg-for-other-instance = { $name } on lähettänyt viestin, joka on tarkoitettu toiseen istuntoon. Jos olet kirjautunut sisään useita kertoja, toinen istunto on saattanut vastaanottaa viestin.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone-secure-private = Yksityinen keskustelu yhteyshenkilön { $name } kanssa alkoi.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone-secure-unverified = Salattu, mutta varmistamaton keskustelu yhteyshenkilön { $name } kanssa alkoi.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-still-secure = Salattu keskustelu yhteyshenkilön { $name } kanssa päivitettiin.
+
+error-enc = Viestin salaamisessa tapahtui virhe.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+error-not-priv = Lähetit salattuja tietoja henkilölle { $name }, joka ei odottanut niitä.
+
+error-unreadable = Lähetit lukukelvottoman salatun viestin.
+error-malformed = Lähetit väärän muotoisen dataviestin.
+
+resent = [uudelleen lähetetty]
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+tlv-disconnected = { $name } on lopettanut salatun keskustelun kanssasi; sinun pitäisi tehdä samoin.
+
+# Do not translate "Off-the-Record" and "OTR" which is the name of an encryption protocol
+# Make sure that this string does NOT contain any numbers, e.g. like "3".
+# Variables:
+# $name (String) - the screen name of a chat contact person
+query-msg = { $name } on pyytänyt OTR-salattua keskustelua. Sinulla ei kuitenkaan ole sitä tukevaa laajennusta. Osoitteesta https://fi.wikipedia.org/wiki/OTR voi lukea lisää.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000..403d5e3d53
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+start-label = Aloita salattu keskustelu
+refresh-label = Päivitä salattu keskustelu
+auth-label = Varmista yhteyshenkilösi henkilöllisyys
+reauth-label = Vahvista yhteyshenkilösi henkilöllisyys uudelleen
+auth-cancel = Peruuta
+auth-error = Yhteyshenkilön henkilöllisyyden varmistamisessa tapahtui virhe.
+auth-success = Yhteyshenkilösi henkilöllisyyden varmistaminen onnistui.
+auth-success-them = Yhteyshenkilösi on vahvistanut henkilöllisyytesi. Voit myös varmistaa heidän henkilöllisyytensä esittämällä oman kysymyksesi.
+auth-fail = Yhteyshenkilösi henkilöllisyyden varmistaminen epäonnistui.
+auth-waiting = Odotetaan yhteyshenkilön varmistuksen suorittamista ...
+finger-verify = Varmista
+finger-ignore = Ohita
+# Do not translate 'OTR' (name of an encryption protocol)
+buddycontextmenu-label = Lisää OTR-sormenjälki
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-start = Yritetään aloittaa salattu keskustelu yhteyshenkilön { $name } kanssa.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-refresh = Yritetään päivittää salattua keskustelua yhteyshenkilön { $name } kanssa.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-gone-insecure = Salattu keskustelu henkilön { $name } kanssa päättyi.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-unseen = Yhteyshenkilön { $name } henkilöllisyyttä ei ole vielä varmistettu. Satunnainen salakuuntelu ei ole mahdollista, mutta tietyillä toimenpiteillä joku saattaa salakuunnella. Estä valvonta varmistamalla tämän yhteyshenkilön henkilöllisyys.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-seen = { $name } ottaa sinuun yhteyttä tuntemattomalta tietokoneelta. Satunnainen salakuuntelu ei ole mahdollista, mutta tietyillä toimenpiteillä joku saattaa salakuunnella. Estä valvonta varmistamalla tämän yhteyshenkilön henkilöllisyys.
+state-not-private = Nykyinen keskustelu ei ole yksityinen.
+state-generic-not-private = Nykyinen keskustelu ei ole yksityinen.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-unverified = Nykyinen keskustelu on salattu, mutta ei yksityinen, koska yhteyshenkilön { $name } henkilöllisyyttä ei ole vielä varmistettu.
+state-generic-unverified = Nykyinen keskustelu on salattu, mutta ei yksityinen, koska kaikkien henkilöllisyyttä ei ole vielä varmistettu.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-private = Yhteyshenkilön { $name } henkilöllisyys on varmistettu. Nykyinen keskustelu on salattu ja yksityinen.
+state-generic-private = Nykyinen keskustelu on salattu ja yksityinen.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-finished = { $name } on lopettanut salatun keskustelun kanssasi; sinun pitäisi tehdä samoin.
+state-not-private-label = Suojaamaton
+state-unverified-label = Varmistamaton
+state-private-label = Yksityinen
+state-finished-label = Valmis
+# Variables:
+# $name (String) - the screen name of a chat contact person
+verify-request = { $name } pyysi henkilöllisyytesi varmistamista.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-private = Olet varmistanut yhteyshenkilön { $name } henkilöllisyyden.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-unverified = Yhteyshenkilön { $name } henkilöllisyyttä ei ole varmistettu.
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $error (String) - contains an error message that describes the cause of the failure
+otr-genkey-failed = Yksityisen OTR-avaimen luonti epäonnistui: { $error }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/policies/aboutPolicies.ftl b/thunderbird-l10n/fi/localization/fi/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000..e239c99a70
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/policies/aboutPolicies.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-policies-title = Yrityskäytännöt
+
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = Aktiivinen
+errors-tab = Virheet
+documentation-tab = Dokumentaatio
+
+no-specified-policies-message = Yrityskäytännöt-palvelu on aktiivinen, mutta yhtään käytäntöä ei ole käytössä.
+inactive-message = Yrityskäytännöt-palvelu ei ole käytössä.
+
+policy-name = Käytännön nimi
+policy-value = Käytännön arvo
+policy-errors = Käytäntövirheet
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/fi/localization/fi/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..a0e45cf76d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/policies/policies-descriptions.ftl
@@ -0,0 +1,159 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The Enterprise Policies feature is aimed at system administrators
+## who want to deploy these settings across several Thunderbird installations
+## all at once. This is traditionally done through the Windows Group Policy
+## feature, but the system also supports other forms of deployment.
+## These are short descriptions for individual policies, to be displayed
+## in the documentation section in about:policies.
+
+policy-3rdparty = Aseta käytännöt, joita WebExtensionit voivat käyttää chrome.storage.managed-objektin kautta.
+
+policy-AppAutoUpdate = Ota käyttöön tai poista käytöstä sovelluksen automaattiset päivitykset.
+
+policy-AppUpdatePin = Estä { -brand-short-name }in päivitykset määritettyä versiota uudemmaksi.
+
+policy-AppUpdateURL = Aseta omavalintainen sovelluksen päivitysosoite.
+
+policy-Authentication = Määritä integroitu tunnistautumisen sitä tukeville sivustoille.
+
+policy-BackgroundAppUpdate2 = Ota käyttöön tai poista käytöstä taustalla suoritettavien päivitysten toiminnallisuus.
+
+policy-BlockAboutAddons = Estä pääsy lisäosien hallintaan (about:addons).
+
+policy-BlockAboutConfig = Estä pääsy about:config -sivulle.
+
+policy-BlockAboutProfiles = Estä pääsy about:profiles-sivulle.
+
+policy-BlockAboutSupport = Estä pääsy about:support-sivulle.
+
+policy-CaptivePortal = Käytä tai poista käytöstä tuki verkkojen kirjautumissivuille.
+
+policy-CertificatesDescription = Lisää varmenteita tai käytä sisäänrakennettuja varmenteita.
+
+policy-Cookies = Salli tai estä sivustoja asettamasta evästeitä.
+
+policy-DisableBuiltinPDFViewer = Poista käytöstä PDF.js, { -brand-short-name }in sisäänrakennettu PDF-katselin.
+
+policy-DisabledCiphers = Poista salaus käytöstä.
+
+policy-DefaultDownloadDirectory = Aseta oletusarvoinen latauskansio.
+
+policy-DisableAppUpdate = Estä { -brand-short-name }in päivitykset.
+
+policy-DisableDefaultClientAgent = Estä oletusselainagenttia tekemästä mitään. Tällä on vaikutusta vain Windowsissa, koska muille alustoille ei ole agenttia.
+
+policy-DisableDeveloperTools = Estä pääsy kehittäjätyökaluihin.
+
+policy-DisableFeedbackCommands = Estä komennot, joilla voi antaa palautetta Ohje-valikosta (Anna palautetta ja Ilmoita petollinen sivusto).
+
+policy-DisableForgetButton = Estä Unohda-painikkeen käyttö.
+
+policy-DisableFormHistory = Älä tallenna haku- ja lomakehistoriaa.
+
+policy-DisableMasterPasswordCreation = Jos tosi, pääsalasanaa ei voi luoda.
+
+policy-DisablePasswordReveal = Älä salli salasanojen näyttämistä tallennetuissa kirjautumistiedoissa.
+
+policy-DisableProfileImport = Poista käytöstä valikkokohta, jonka avulla voi tuoda tietoja toisesta sovelluksesta.
+
+policy-DisableSafeMode = Poista käytöstä ominaisuus, jolla Thunderbirdin voi käynnistää vikasietotilassa. Huomaa: Vaihto-näppäimen käyttö vikasietotilaan käynnistymiseen voidaan poistaa käytöstä Windowsissa vain käyttäen ryhmäkäytäntöä.
+
+policy-DisableSecurityBypass = Estä käyttäjää ohittamasta tiettyjä turvallisuusvaroituksia.
+
+policy-DisableSystemAddonUpdate = Estä { -brand-short-name }iä asentamasta ja päivittämästä järjestelmälisäosia.
+
+policy-DisableTelemetry = Poista telemetria käytöstä.
+
+policy-DisplayMenuBar = Näytä valikkopalkki oletusarvoisesti.
+
+policy-DNSOverHTTPS = Määritä DNS:n käyttö HTTPS:n yli.
+
+policy-DontCheckDefaultClient = Poista käytöstä oletussähköpostiohjelman tarkistus käynnistyksen yhteydessä.
+
+policy-DownloadDirectory = Aseta ja lukitse latauskansio.
+
+# “lock” means that the user won’t be able to change this setting
+policy-EnableTrackingProtection = Salli tai estä sisällön esto tai estä sen käyttö halutessasi.
+
+# “lock” means that the user won’t be able to change this setting
+policy-EncryptedMediaExtensions = Ota käyttöön tai poista käytöstä suojatun median laajennukset (Encrypted Media Extensions), ja valinnaisesti lukitse asetus.
+
+# A “locked” extension can’t be disabled or removed by the user. This policy
+# takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
+# English or translate them as verbs.
+policy-Extensions = Asenna, poista tai lukitse laajennuksia. Asennusasetus ottaa parametreiksi URL-osoitteita tai polkuja. Poisto- ja lukitsemisasetukset ottavat parametreiksi laajennusten ID:itä.
+
+policy-ExtensionSettings = Hallitse kaikkia laajennuksen asentamisen osa-alueita.
+
+policy-ExtensionUpdate = Käytä tai poista käytöstä laajennusten automaattiset päivitykset.
+
+policy-Handlers = Määritä oletussovelluskäsittelijät.
+
+policy-HardwareAcceleration = Jos epätosi, poista laitteistokiihdytys käytöstä.
+
+policy-InstallAddonsPermission = Salli tiettyjen sivustojen asentaa lisäosia.
+
+policy-LegacyProfiles = Poista käytöstä ominaisuus, joka pakottaa erillisen profiilin kullekin asennukselle
+
+## Do not translate "SameSite", it's the name of a cookie attribute.
+
+policy-LegacySameSiteCookieBehaviorEnabled = Ota käyttöön vanhat SameSite -evästeen käyttäytymisasetukset.
+
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Palaa vanhaan SameSite-toimintaan määritettyjen sivustojen evästeiden osalta.
+
+##
+
+policy-LocalFileLinks = Salli tiettyjen sivustojen linkittää paikallisiin tiedostoihin.
+
+policy-ManualAppUpdateOnly = Salli vain manuaaliset päivitykset, älä ilmoita käyttäjälle päivityksistä.
+
+policy-NetworkPrediction = Ota käyttöön tai poista käytöstä verkkoennakointi (DNS-esihaku).
+
+policy-OfferToSaveLogins = Pakota asetus, joka sallii { -brand-short-name }in tarjota käyttäjätunnusten ja salasanojen tallentamista. Sekä tosi- että epätosi-arvot hyväksytään.
+
+policy-OfferToSaveLoginsDefault = Aseta oletusarvo sille, saako { -brand-short-name } tarjota käyttäjätunnusten ja salasanojen muistamista. Kelpuuttaa arvot true ja false.
+
+policy-OverrideFirstRunPage = Korvaa ensimmäisen käynnistyskerran sivu. Aseta tämä käytäntö tyhjäksi, jos haluat poistaa ensimmäisen käyttökerran sivun käytöstä.
+
+policy-OverridePostUpdatePage = Korvaa päivityksen jälkeinen ”Mitä uutta” -sivu. Aseta tämä käytäntö tyhjäksi, jos haluat poistaa päivityksen jälkeisen sivun käytöstä.
+
+policy-PasswordManagerEnabled = Ota käyttöön salasanojen tallennus salasanojen hallintaan.
+
+# PDF.js and PDF should not be translated
+policy-PDFjs = Poista käytöstä tai määritä PDF.js, { -brand-short-name }in sisäänrakennettu PDF-katselin.
+
+policy-Permissions2 = Aseta kameran, mikrofonin, sijainnin, ilmoitusten ja automaattisen toiston käyttöoikeuksien asetukset.
+
+policy-Preferences = Aseta ja lukitse arvo asetusten osajoukolle.
+
+policy-PrimaryPassword = Vaadi tai estä pääsalasanan käyttö.
+
+policy-PromptForDownloadLocation = Kysy mihin ladattavat tiedostot tallennetaan.
+
+policy-Proxy = Määritä välityspalvelimen asetukset.
+
+policy-RequestedLocales = Aseta pyydetyt sovelluksen kielet suosituimmuusjärjestyksessä.
+
+policy-SanitizeOnShutdown2 = Poista selailutiedot kun ohjelma suljetaan
+
+policy-SearchEngines = Muokkaa hakukoneiden asetuksia. Tämä käytäntö on saatavilla vain laajennetun tuen (ESR) julkaisulle .
+
+policy-SearchSuggestEnabled = Ota käyttöön tai poista käytöstä hakuehdotukset.
+
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = Asenna PKCS #11 -moduulit.
+
+policy-SSLVersionMax = Aseta SSL:n enimmäisversio.
+
+policy-SSLVersionMin = Aseta SSL:n vähimmäisversio.
+
+policy-SupportMenu = Lisää omavalintainen ohjevalikon kohta ohjevalikkoon.
+
+policy-UserMessaging = Älä näytä tiettyjä viestejä käyttäjälle.
+
+# “format” refers to the format used for the value of this policy.
+policy-WebsiteFilter = Estä vierailut tiettyihin sivustoihin. Katso muotoon liittyviä lisätietoja dokumentaatiosta.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/am-copies.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000..b691a33d88
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/am-copies.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-prefs-show-address-row-description = Jätä osoitekenttä tyhjäksi, jotta osoiterivi on aina näkyvissä uutta viestiä luotaessa.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/am-im.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000..9c6a3a4c64
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/am-im.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-settings-title = Tunnistautumisen asetukset
+account-channel-title = Oletuskanavat
+chat-autologin =
+ .label = Kirjaudu käynnistettäessä
+chat-encryption-generic = Yleinen
+chat-encryption-log =
+ .label = Sisällytä päästä päähän -salatut viestit keskustelulokeihin
+chat-encryption-label = Natiivi päästä päähän -salaus
+# Variables:
+# $protocol (String) - Name of the chat protocol. Example: Matrix
+chat-encryption-description = { $protocol } tarjoaa päästä päähän -salauksen keskusteluviesteille. Tämä estää kolmansia osapuolia salakuuntelemasta keskustelua. Salauksen toiminta saattaa vaatia lisäasetuksien määrittämistä alapuolelta.
+chat-encryption-status = Salauksen tila
+chat-encryption-placeholder = Salausta ei ole alustettu.
+chat-encryption-sessions = Istunnot
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/application-manager.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/application-manager.ftl
new file mode 100644
index 0000000000..8937c621cc
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/application-manager.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+app-manager-window-dialog2 =
+ .title = Ohjelman tiedot
+app-manager-dialog-title = Ohjelman tiedot
+remove-app-button =
+ .label = Poista
+ .accesskey = P
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/attachment-reminder.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/attachment-reminder.ftl
new file mode 100644
index 0000000000..934ab06f93
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/attachment-reminder.ftl
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+attachment-reminder-window =
+ .title = Liitteen muistuttamisen avainsanat
+attachment-reminder-dialog-title = Liitteen muistuttamisen avainsanat
+attachment-reminder-label = { -brand-short-name } muistuttaa sinua puuttuvista liitetiedostoista jos olet lähettämässä sähköpostia, jossa on mainittu jokin näistä avainsanoista, mutta ei liitetiedostoja.
+keyword-new-button =
+ .label = Uusi…
+ .accesskey = U
+keyword-edit-button =
+ .label = Muokkaa…
+ .accesskey = M
+keyword-remove-button =
+ .label = Poista
+ .accesskey = P
+new-keyword-title = Uusi avainsana
+new-keyword-label = Avainsana:
+edit-keyword-title = Muokkaa avainsanaa
+edit-keyword-label = Avainsana:
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/colors.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/colors.ftl
new file mode 100644
index 0000000000..f8e5f757f8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/colors.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+colors-dialog-window2 =
+ .title = Värit
+colors-dialog-title = Värit
+colors-dialog-legend = Tekstin ja taustan asetukset
+text-color-label =
+ .value = Teksti:
+ .accesskey = T
+background-color-label =
+ .value = Tausta:
+ .accesskey = u
+use-system-colors =
+ .label = Käytä järjestelmän värejä
+ .accesskey = K
+colors-link-legend = Linkkien värit
+link-color-label =
+ .value = Avaamattomat linkit:
+ .accesskey = m
+visited-link-color-label =
+ .value = Avatut linkit:
+ .accesskey = v
+underline-link-checkbox =
+ .label = Alleviivaa linkit
+ .accesskey = A
+override-color-label =
+ .value = Korvaa sivun määrittelemät värit yllä olevilla valinnoilla:
+ .accesskey = o
+override-color-always =
+ .label = Aina
+override-color-auto =
+ .label = Vain korkean kontrastin teemojen kanssa
+override-color-never =
+ .label = Ei koskaan
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/connection.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/connection.ftl
new file mode 100644
index 0000000000..e0fc0b3c31
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/connection.ftl
@@ -0,0 +1,88 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+connection-dns-over-https-url-resolver = Käytä palveluntarjoajaa
+ .accesskey = K
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name } (oletus)
+ .tooltiptext = Käytä oletusosoitetta nimipalvelukyselyjen tekemiseksi HTTPS:n yli
+connection-dns-over-https-url-custom =
+ .label = Mukautettu
+ .accesskey = M
+ .tooltiptext = Kirjoita ensisijainen osoite nimipalvelukyselyjen tekemiseksi HTTPS:n yli
+connection-dns-over-https-custom-label = Mukautettu
+connection-dialog-window2 =
+ .title = Yhteysasetukset
+connection-dialog-title = Yhteysasetukset
+disable-extension-button = Poista laajennus käytöstä
+# Variables:
+# $name (String) - The extension that is controlling the proxy settings.
+#
+# The extension-icon is the extension's icon, or a fallback image. It should be
+# purely decoration for the actual extension name, with alt="".
+proxy-settings-controlled-by-extension = Laajennus, <img data-l10n-name="extension-icon" alt="" /> { $name }, määrittää nyt miten { -brand-short-name } yhdistää Internetiin.
+connection-proxy-legend = Määritä välityspalvelinasetukset
+proxy-type-no =
+ .label = Ei välityspalvelinta
+ .accesskey = E
+proxy-type-wpad =
+ .label = Automaattiset välityspalvelinasetukset
+ .accesskey = A
+proxy-type-system =
+ .label = Käytä järjestelmän välityspalvelinasetuksia
+ .accesskey = K
+proxy-type-manual =
+ .label = Aseta välityspalvelinasetukset käsin
+ .accesskey = e
+proxy-http-label =
+ .value = HTTP-välityspalvelin:
+ .accesskey = H
+http-port-label =
+ .value = Portti:
+ .accesskey = P
+proxy-http-sharing =
+ .label = Käytä tätä välityspalvelinta myös HTTPS:lle
+ .accesskey = v
+proxy-https-label =
+ .value = HTTPS-välityspalvelin:
+ .accesskey = S
+ssl-port-label =
+ .value = Portti:
+ .accesskey = t
+proxy-socks-label =
+ .value = SOCKS-palvelin:
+ .accesskey = C
+socks-port-label =
+ .value = Portti:
+ .accesskey = i
+proxy-socks4-label =
+ .label = SOCKS v4
+ .accesskey = 4
+proxy-socks5-label =
+ .label = SOCKS v5
+ .accesskey = 5
+proxy-type-auto =
+ .label = Nouda välityspalvelinasetukset osoitteesta:
+ .accesskey = N
+proxy-reload-label =
+ .label = Päivitä
+ .accesskey = ä
+no-proxy-label =
+ .value = Ei välitystä osoitteille:
+ .accesskey = v
+no-proxy-example = Esimerkiksi: 192.168.1.0/24, .mozilla.org, .fi
+# Do not translate "localhost", "127.0.0.1/8" and "::1". (You can translate "and".)
+connection-proxy-noproxy-localhost-desc-2 = Yhteyksiä kohteisiin localhost, 127.0.0.1/8 ja ::1 ei koskaan ohjata välityspalvelimen kautta.
+proxy-password-prompt =
+ .label = Älä pyydä tunnistautumista, jos salasana on tallennettu
+ .accesskey = p
+ .tooltiptext = Tämä asetus kirjaa sinut automaattisesti välityspalvelimiin, jos olet tallentanut niiden kirjautumistiedot. Jos kirjautuminen epäonnistuu, sinua tiedotetaan asiasta.
+proxy-remote-dns =
+ .label = Välipalvelimen DNS käytettäessä SOCKS v5:tä
+ .accesskey = D
+proxy-enable-doh =
+ .label = Käytä DNS:ää HTTPS:n välityksellä
+ .accesskey = H
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/cookies.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/cookies.ftl
new file mode 100644
index 0000000000..b8f8ec51af
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/cookies.ftl
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+cookies-window-dialog2 =
+ .title = Evästeet
+cookies-dialog-title = Evästeet
+window-close-key =
+ .key = w
+window-focus-search-key =
+ .key = f
+window-focus-search-alt-key =
+ .key = k
+filter-search-label =
+ .value = Etsi:
+ .accesskey = E
+cookies-on-system-label = Seuraavat evästeet on tallennettu tietokoneellesi:
+treecol-site-header =
+ .label = Palvelin
+treecol-name-header =
+ .label = Evästeen nimi
+props-name-label =
+ .value = Nimi:
+props-value-label =
+ .value = Sisältö:
+props-domain-label =
+ .value = Palvelin:
+props-path-label =
+ .value = Polku:
+props-secure-label =
+ .value = Lähetä:
+props-expires-label =
+ .value = Vanhenee:
+props-container-label =
+ .value = Eristystila:
+remove-cookie-button =
+ .label = Poista eväste
+ .accesskey = P
+remove-all-cookies-button =
+ .label = Poista kaikki evästeet
+ .accesskey = k
+cookie-close-button =
+ .label = Sulje
+ .accesskey = S
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/dock-options.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000..5bcefeee26
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/dock-options.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dock-options-window-dialog2 =
+ .title = Sovelluskuvakkeen asetukset
+dock-options-dialog-title = Sovelluskuvakkeen asetukset
+dock-options-show-badge =
+ .label = Näytä lukumäärää ilmaiseva kuvake
+ .accesskey = m
+bounce-system-dock-icon =
+ .label = Toteuta animaatio kuvakkeeseen kun uusi viesti saapuu
+ .accesskey = k
+dock-icon-legend = Sovelluskuvakkeen lisämerkki
+dock-icon-show-label =
+ .value = Kiinnitä lisämerkki kuvakkeeseen:
+count-unread-messages-radio =
+ .label = Lukematta olevien viestien määrä
+ .accesskey = L
+count-new-messages-radio =
+ .label = Uusien viestien lukumäärä
+ .accesskey = U
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/fonts.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/fonts.ftl
new file mode 100644
index 0000000000..75cb8ef5bb
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/fonts.ftl
@@ -0,0 +1,134 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+fonts-dialog-title = Kirjasimet
+fonts-window-close =
+ .key = s
+# Variables:
+# $name {string, "Arial"} - Name of the default font
+fonts-label-default =
+ .label = Oletus ({ $name })
+fonts-label-default-unnamed =
+ .label = Oletus
+fonts-encoding-dialog-title =
+ .title = Kirjasinlajit ja merkistökoodaukset
+fonts-language-legend =
+ .value = Merkistö:
+ .accesskey = M
+fonts-proportional-label =
+ .value = Suhteellinen:
+ .accesskey = S
+
+## Languages
+
+# Note: Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+font-language-group-latin =
+ .label = Latinalainen
+font-language-group-japanese =
+ .label = Japanilainen
+font-language-group-trad-chinese =
+ .label = Perinteinen kiinalainen (Taiwan)
+font-language-group-simpl-chinese =
+ .label = Yksinkertaistettu kiinalainen
+font-language-group-trad-chinese-hk =
+ .label = Perinteinen kiinalainen (Hongkong)
+font-language-group-korean =
+ .label = Korealainen
+font-language-group-cyrillic =
+ .label = Kyrillinen
+font-language-group-el =
+ .label = Kreikkalainen
+font-language-group-other =
+ .label = Muu kirjoitusjärjestelmä
+font-language-group-thai =
+ .label = Thaimaalainen
+font-language-group-hebrew =
+ .label = Heprealainen
+font-language-group-arabic =
+ .label = Arabialainen
+font-language-group-devanagari =
+ .label = Devanagari
+font-language-group-tamil =
+ .label = Tamili
+font-language-group-armenian =
+ .label = Armenialainen
+font-language-group-bengali =
+ .label = Bengalilainen
+font-language-group-canadian =
+ .label = Kanadalainen tavumerkistö
+font-language-group-ethiopic =
+ .label = Etiopialainen
+font-language-group-georgian =
+ .label = Georgialainen
+font-language-group-gujarati =
+ .label = Gujarati
+font-language-group-gurmukhi =
+ .label = Gurmukhi
+font-language-group-khmer =
+ .label = Khmer
+font-language-group-malayalam =
+ .label = Malaiji
+font-language-group-math =
+ .label = Matematiikka
+font-language-group-odia =
+ .label = Odilainen
+font-language-group-telugu =
+ .label = Telugulainen
+font-language-group-kannada =
+ .label = Kannadalainen
+font-language-group-sinhala =
+ .label = Singalilainen
+font-language-group-tibetan =
+ .label = Tiibettiläinen
+
+## Default font type
+
+default-font-serif =
+ .label = Pääteviivallinen
+default-font-sans-serif =
+ .label = Pääteviivaton
+font-size-proportional-label =
+ .value = Koko:
+ .accesskey = K
+font-size-monospace-label =
+ .value = Koko:
+ .accesskey = o
+font-serif-label =
+ .value = Pääteviivallinen:
+ .accesskey = P
+font-sans-serif-label =
+ .value = Pääteviivaton:
+ .accesskey = ä
+font-monospace-label =
+ .value = Tasavälinen:
+ .accesskey = T
+font-min-size-label =
+ .value = Pienin kirjasinkoko:
+ .accesskey = e
+min-size-none =
+ .label = Ei ole
+
+## Fonts in message
+
+font-control-legend = Kirjasinten hallinta
+use-document-fonts-checkbox =
+ .label = Sivut saavat käyttää omia kirjasinlajejaan oletusten sijaan
+ .accesskey = i
+use-fixed-width-plain-checkbox =
+ .label = Käytä tasalevyistä kirjasinta pelkkä teksti viesteille
+ .accesskey = y
+
+## Language settings
+
+text-encoding-legend = Merkistökoodaukset
+text-encoding-description = Aseta oletusmerkistökoodaus lähteville ja saapuville viesteille
+font-outgoing-email-label =
+ .value = Lähtevät viestit:
+ .accesskey = L
+font-incoming-email-label =
+ .value = Saapuvat viestit:
+ .accesskey = a
+default-font-reply-checkbox =
+ .label = Jos mahdollista, käytä vastauksissa oletusmerkistökoodausta
+ .accesskey = J
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/languages.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000..7059f30bec
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/languages.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+languages-customize-moveup =
+ .label = Siirry ylös
+ .accesskey = y
+languages-customize-movedown =
+ .label = Siirry alas
+ .accesskey = a
+languages-customize-remove =
+ .label = Poista
+ .accesskey = P
+languages-customize-select-language =
+ .placeholder = Valitse lisättävä kieli...
+languages-customize-add =
+ .label = Lisää
+ .accesskey = L
+messenger-languages-window2 =
+ .title = { -brand-short-name }in kieliasetukset
+messenger-languages-dialog-title = { -brand-short-name }in kieliasetukset
+messenger-languages-description = { -brand-short-name } näyttää ensimmäisen kielen oletuskielenä ja tarvittaessa muut kielet siinä järjestyksessä kuin ne ilmenevät.
+messenger-languages-search = Etsi lisää kieliä…
+messenger-languages-searching =
+ .label = Etsitään kieliä…
+messenger-languages-downloading =
+ .label = Ladataan…
+messenger-languages-select-language =
+ .label = Valitse lisättävä kieli…
+ .placeholder = Valitse lisättävä kieli…
+messenger-languages-installed-label = Asennetut kielet
+messenger-languages-available-label = Saatavilla olevat kielet
+messenger-languages-error = { -brand-short-name } ei voi päivittää kieliäsi juuri nyt. Tarkista, että olet yhteydessä internetiin tai yritä uudelleen.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/new-tag.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/new-tag.ftl
new file mode 100644
index 0000000000..edc9c1f299
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/new-tag.ftl
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tag-dialog-window =
+ .title = Uusi tunnus
+tag-dialog-title = Uusi tunnus
+tag-name-label =
+ .value = Tunnuksen nimi:
+ .accesskey = T
+tag-color-label =
+ .value = Väri:
+ .accesskey = V
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/notifications.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/notifications.ftl
new file mode 100644
index 0000000000..af442c5f97
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/notifications.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+notifications-dialog-window =
+ .title = Muokkaa uuden viestin ilmoitustapaa
+notifications-dialog-title = Muokkaa uuden viestin ilmoitustapaa
+customize-alert-description = Valitse, mitä näytetään uusi viesti -ilmoituksessa:
+preview-text-checkbox =
+ .label = Viestin esikatselu
+ .accesskey = V
+subject-checkbox =
+ .label = Aihe
+ .accesskey = A
+sender-checkbox =
+ .label = Lähettäjä
+ .accesskey = L
+
+## Note: open-time-label-before is displayed first, then there's a field where
+## the user can enter a number, and open-time-label-after is displayed at the end
+## of the line. The translations of the open-time-label-before and open-time-label-after
+## parts don't have to mean the exact same thing as in English; please try instead
+## to translate the whole sentence.
+
+open-time-label-before =
+ .value = Näytä uusi viesti -ilmoitusta
+ .accesskey = N
+open-time-label-after =
+ .value = sekuntia
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/offline.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/offline.ftl
new file mode 100644
index 0000000000..0e762ce605
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/offline.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+offline-dialog-window =
+ .title = Verkkoyhteydettömän tilan asetukset
+offline-dialog-title = Verkkoyhteydettömän tilan asetukset
+autodetect-online-label =
+ .label = Valitse tila automaattisesti tunnistetun tilan mukaan
+ .accesskey = V
+offline-preference-startup-label = Manuaalinen tila käynnistettäessä:
+status-radio-remember =
+ .label = Muista edellinen yhteystila
+ .accesskey = M
+status-radio-ask =
+ .label = Kysy yhteystila
+ .accesskey = K
+status-radio-always-online =
+ .label = Yhteystilassa
+ .accesskey = Y
+status-radio-always-offline =
+ .label = Yhteydetön tila
+ .accesskey = d
+going-online-label = Lähetetäänkö lähtevät viestit siirryttäessä yhteystilaan?
+going-online-auto =
+ .label = Kyllä
+ .accesskey = y
+going-online-not =
+ .label = Ei
+ .accesskey = E
+going-online-ask =
+ .label = Kysy
+ .accesskey = s
+going-offline-label = Noudetaanko viestit yhteydetöntä tilaa varten siirryttäessä yhteydettömään tilaan?
+going-offline-auto =
+ .label = Kyllä
+ .accesskey = y
+going-offline-not =
+ .label = Ei
+ .accesskey = E
+going-offline-ask =
+ .label = Kysy
+ .accesskey = s
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000..87b70fbafa
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/passwordManager.ftl
@@ -0,0 +1,83 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+saved-logins =
+ .title = Tallennetut kirjautumistiedot
+saved-logins-title = Tallennetut kirjautumistiedot
+window-close =
+ .key = s
+focus-search-primary-shortcut =
+ .key = f
+focus-search-alt-shortcut =
+ .key = k
+copy-provider-url-cmd =
+ .label = Kopioi osoite
+ .accesskey = o
+copy-username-cmd =
+ .label = Kopioi käyttäjätunnus
+ .accesskey = k
+edit-username-cmd =
+ .label = Muokkaa käyttäjätunnusta
+ .accesskey = u
+copy-password-cmd =
+ .label = Kopioi salasana
+ .accesskey = s
+edit-password-cmd =
+ .label = Muokkaa salasanaa
+ .accesskey = M
+search-filter =
+ .accesskey = E
+ .placeholder = Etsi
+column-heading-provider =
+ .label = Palveluntarjoaja
+column-heading-username =
+ .label = Käyttäjätunnus
+column-heading-password =
+ .label = Salasana
+column-heading-time-created =
+ .label = Ensin käytetty
+column-heading-time-last-used =
+ .label = Viimeksi käytetty
+column-heading-time-password-changed =
+ .label = Viimeksi muutettu
+column-heading-times-used =
+ .label = Käyttökertoja
+remove =
+ .label = Poista
+ .accesskey = P
+import =
+ .label = Tuo…
+ .accesskey = T
+password-close-button =
+ .label = Sulje
+ .accesskey = S
+show-passwords =
+ .label = Näytä salasanat
+ .accesskey = N
+hide-passwords =
+ .label = Piilota salasanat
+ .accesskey = i
+logins-description-all = Kirjautumiset seuraaville palveluntarjoajille tallennetaan laitteellesi
+logins-description-filtered = Seuraavat kirjautumistiedot vastaavat hakuasi:
+remove-all =
+ .label = Poista kaikki
+ .accesskey = k
+remove-all-shown =
+ .label = Poista kaikki näytetyt
+ .accesskey = y
+remove-all-passwords-prompt = Haluatko varmasti poistaa kaikki salasanat?
+remove-all-passwords-title = Poista kaikki salasanat
+no-master-password-prompt = Haluatko varmasti näyttää kaikki salasanat?
+
+## OS Authentication dialog
+
+# This message can be seen by trying to show or copy the passwords.
+password-os-auth-dialog-message = Vahvista henkilöllisyytesi paljastaaksesi tallennetut salasanat.
+# This message can be seen by trying to show or copy the passwords.
+# The macOS strings are preceded by the operating system with "Thunderbird is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+password-os-auth-dialog-message-macosx = paljastaa tallennetut salasanat
+# Don't change this label.
+password-os-auth-dialog-caption = { -brand-full-name }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/permissions.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/permissions.ftl
new file mode 100644
index 0000000000..9affdcf6ec
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/permissions.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+permissions-reminder-window2 =
+ .title = Poikkeukset
+permissions-dialog-title = Poikkeukset
+permission-preferences-close-window =
+ .key = w
+website-address-label =
+ .value = Palvelimen osoite:
+ .accesskey = a
+block-button =
+ .label = Estä
+ .accesskey = E
+allow-session-button =
+ .label = Salli istunnon ajaksi
+ .accesskey = S
+allow-button =
+ .label = Salli
+ .accesskey = l
+treehead-sitename-label =
+ .label = Palvelin
+treehead-status-label =
+ .label = Tila
+remove-site-button =
+ .label = Poista palvelin
+ .accesskey = P
+remove-all-site-button =
+ .label = Poista kaikki palvelimet
+ .accesskey = e
+cancel-button =
+ .label = Peruuta
+ .accesskey = r
+save-button =
+ .label = Tallenna muutokset
+ .accesskey = T
+permission-can-label = Salli
+permission-can-access-first-party-label = Salli vain ensimmäinen osapuoli
+permission-can-session-label = Salli istunnon ajaksi
+permission-cannot-label = Estä
+invalid-uri-message = Kirjoita oikea osoite
+invalid-uri-title = Virheellinen osoite
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/preferences.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/preferences.ftl
new file mode 100644
index 0000000000..0539d54b91
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/preferences.ftl
@@ -0,0 +1,769 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+close-button =
+ .aria-label = Sulje
+preferences-doc-title2 = Asetukset
+category-list =
+ .aria-label = Luokat
+pane-general-title = Yleiset
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-compose-title = Viestin kirjoitus
+category-compose =
+ .tooltiptext = Viestin kirjoitus
+pane-privacy-title = Yksityisyys ja suojaus
+category-privacy =
+ .tooltiptext = Yksityisyys ja suojaus
+pane-chat-title = Keskustelut
+category-chat =
+ .tooltiptext = Keskustelut
+pane-calendar-title = Kalenteri
+category-calendar =
+ .tooltiptext = Kalenteri
+general-language-and-appearance-header = Kieli ja ulkoasu
+general-incoming-mail-header = Saapuva sähköposti
+general-files-and-attachment-header = Tiedostot ja liitteet
+general-tags-header = Tunnisteet
+general-reading-and-display-header = Lukeminen ja näyttäminen
+general-updates-header = Päivitykset
+general-network-and-diskspace-header = Verkko ja levytila
+general-indexing-label = Indeksointi
+composition-category-header = Viestin luominen
+composition-attachments-header = Liitteet
+composition-spelling-title = Oikoluku
+compose-html-style-title = HTML-tyyli
+composition-addressing-header = Osoittaminen
+privacy-main-header = Yksityisyys
+privacy-passwords-header = Salasanat
+privacy-junk-header = Roska
+collection-header = { -brand-short-name }in tietojen keräys ja käyttö
+collection-description = Pyrimme antamaan sinulle vapauden valita ja keräämme vain tietoja, joita tarvitsemme voidaksemme tarjota { -brand-short-name }in kaikille ja parantaa sitä. Kysymme aina lupaa ennen kuin vastaanotamme henkilötietoja.
+collection-privacy-notice = Tietosuojakäytäntö
+collection-health-report-telemetry-disabled = Et enää salli { -vendor-short-name }in vastaanottaa teknisiä ja käyttötilastoja. Kaikki aikaisemmat tiedot poistetaan 30 päivän kuluessa.
+collection-health-report-telemetry-disabled-link = Lue lisää
+collection-health-report =
+ .label = Salli, että { -brand-short-name } lähettää teknisiä ja käyttötilastoja { -vendor-short-name }lle
+ .accesskey = a
+collection-health-report-link = Lue lisää
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = Tietojen kerääminen ei ole käytössä tässä koostamiskokoonpanossa
+collection-backlogged-crash-reports =
+ .label = Salli, että { -brand-short-name } lähettää lähettämättömät kaatumisilmoitukset puolestasi
+ .accesskey = a
+collection-backlogged-crash-reports-link = Lue lisää
+privacy-security-header = Suojaus
+privacy-scam-detection-title = Huijausten havaitseminen
+privacy-anti-virus-title = Virustorjunta
+privacy-certificates-title = Varmenteet
+chat-pane-header = Keskustelu
+chat-status-title = Tila
+chat-notifications-title = Ilmoitukset
+chat-pane-styling-header = Tyyli
+choose-messenger-language-description = Valitse kieli, jolla näytetään sovelluksen { -brand-short-name } valikot, viestit ja ilmoitukset.
+manage-messenger-languages-button =
+ .label = Aseta vaihtoehdot...
+ .accesskey = v
+confirm-messenger-language-change-description = Toteuta nämä muutokset käynnistämällä { -brand-short-name } uudelleen
+confirm-messenger-language-change-button = Toteuta ja käynnistä uudelleen
+update-setting-write-failure-title = Virhe päivitysasetusten päivittämisessä
+# Variables:
+# $path (String) - Path to the configuration file
+# The newlines between the main text and the line containing the path is
+# intentional so the path is easier to identify.
+update-setting-write-failure-message =
+ { -brand-short-name } törmäsi virheeseen, eikä voinut tallentaa tätä muutosta. Huomaa, että tämän päivitysasetuksen muuttaminen edellyttää kirjoitusoikeutta alla mainittuun tiedostoon. Järjestelmänvalvojasi saattaa pystyä ratkaisemaan tämän virheen antamalla ryhmälle "Users" täydet oikeudet tähän tiedostoon
+
+ Ei voitu kirjoittaa tiedostoon: { $path }
+update-in-progress-title = Päivitys käynnissä
+update-in-progress-message = Haluatko, että { -brand-short-name } jatkaa tätä päivitystä?
+update-in-progress-ok-button = &Hylkää
+# Continue is the cancel button so pressing escape or using a platform standard
+# method of closing the UI will not discard the update.
+update-in-progress-cancel-button = &Jatka
+account-button = Tilin asetukset
+open-addons-sidebar-button = Lisäosat ja teemat
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Primary Password.
+primary-password-os-auth-dialog-message-win = Luo pääsalasana kirjoittamalla Windows-kirjautumistietosi. Tämä auttaa suojaamaan tilejäsi.
+# This message can be seen by trying to add a Primary Password.
+# The macOS strings are preceded by the operating system with "Thunderbird is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+primary-password-os-auth-dialog-message-macosx = Luo pääsalasana
+# Don't change this label.
+master-password-os-auth-dialog-caption = { -brand-full-name }
+
+## General Tab
+
+focus-search-shortcut =
+ .key = f
+focus-search-shortcut-alt =
+ .key = k
+general-legend = { -brand-short-name }in aloitussivu
+start-page-label =
+ .label = Näytä aloitussivuna viestikentässä { -brand-short-name }in käynnistyessä:
+ .accesskey = N
+location-label =
+ .value = Osoite:
+ .accesskey = O
+restore-default-label =
+ .label = Palauta oletusasetus
+ .accesskey = P
+default-search-engine = Oletushakukone
+add-web-search-engine =
+ .label = Lisää…
+ .accesskey = L
+remove-search-engine =
+ .label = Poista
+ .accesskey = p
+add-opensearch-provider-title = Lisää OpenSearch-palveluntarjoaja
+add-opensearch-provider-text = Kirjoita lisättävän OpenSearch-palveluntarjoajan URL-osoite. Käytä joko OpenSearch-kuvaustiedoston suoraa URL-osoitetta tai URL-osoitetta, josta se voidaan löytää automaattisesti.
+adding-opensearch-provider-failed-title = OpenSearch-palveluntarjoajan lisääminen epäonnistui
+minimize-to-tray-label =
+ .label = Kun { -brand-short-name } on pienennetty, piilota se
+ .accesskey = p
+new-message-arrival = Uuden viestin saapuessa:
+mail-play-sound-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Toista seuraava äänitiedosto:
+ *[other] Soita äänimerkki
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] ä
+ *[other] o
+ }
+mail-play-button =
+ .label = Toista
+ .accesskey = T
+change-dock-icon = Muokkaa sovelluskuvakkeen asetuksia
+app-icon-options =
+ .label = Sovelluskuvakkeen asetukset…
+ .accesskey = v
+animated-alert-label =
+ .label = Näytä hälytys
+ .accesskey = ä
+customize-alert-label =
+ .label = Muokkaa…
+ .accesskey = M
+biff-use-system-alert =
+ .label = Käytä järjestelmäilmoitusta
+tray-icon-unread-label =
+ .label = Näytä lukemattomien viestien kuvake ilmoitusalueella
+ .accesskey = t
+tray-icon-unread-description = Suositellaan pieniä tehtäväpalkin painikkeita käytettäessä
+mail-system-sound-label =
+ .label = Järjestelmän oletusääni uudelle sähköpostille
+ .accesskey = J
+mail-custom-sound-label =
+ .label = Käytä seuraavaa äänitiedostoa
+ .accesskey = K
+mail-browse-sound-button =
+ .label = Selaa…
+ .accesskey = S
+enable-gloda-search-label =
+ .label = Ota käyttöön viestien yleishaku ja indeksointi
+ .accesskey = O
+datetime-formatting-legend = Päiväyksen ja ajan muoto
+language-selector-legend = Kieli
+allow-hw-accel =
+ .label = Käytä laitteistokiihdytystä jos mahdollista
+ .accesskey = l
+store-type-label =
+ .value = Viestisäilö uusilla tileillä:
+ .accesskey = V
+mbox-store-label =
+ .label = Tiedosto jokaiselle kansiolle (mbox)
+maildir-store-label =
+ .label = Tiedosto jokaiselle viestille (maildir)
+scrolling-legend = Vieritys
+autoscroll-label =
+ .label = Vieritä sivua automaattisesti
+ .accesskey = V
+smooth-scrolling-label =
+ .label = Vieritä sivua tasaisesti
+ .accesskey = e
+browsing-gtk-use-non-overlay-scrollbars =
+ .label = Näytä aina vierityspalkit
+ .accesskey = v
+window-layout-legend = Ikkunan asettelu
+draw-in-titlebar-label =
+ .label = Piilota järjestelmän määrittämä ikkunan otsikkopalkki
+ .accesskey = ä
+auto-hide-tabbar-label =
+ .label = Piilota välilehtipalkki automaattisesti
+ .accesskey = A
+auto-hide-tabbar-description = Piilota välilehtipalkki, kun auki on vain yksi välilehti
+system-integration-legend = Järjestelmään liittäminen
+always-check-default =
+ .label = Tarkista aina onko { -brand-short-name } järjestelmän oletussähköpostiohjelma
+ .accesskey = T
+check-default-button =
+ .label = Tarkista heti…
+ .accesskey = h
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Windowsin haku
+ *[other] { "" }
+ }
+search-integration-label =
+ .label = Salli hakukoneen { search-engine-name } etsiä viesteistä
+ .accesskey = S
+config-editor-button =
+ .label = Asetusten muokkain…
+ .accesskey = A
+return-receipts-description = Määrittele, kuinka { -brand-short-name } käsittelee vastaanottokuittauksia
+return-receipts-button =
+ .label = Vastaanottokuittaukset…
+ .accesskey = V
+update-app-legend = { -brand-short-name }-päivitykset
+# Variables:
+# $version (String): version of Thunderbird, e.g. 68.0.1
+update-app-version = Versio { $version }
+allow-description = Anna sovellukselle { -brand-short-name } lupa
+automatic-updates-label =
+ .label = Asenna päivitykset automaattisesti (suositeltu: turvallisin)
+ .accesskey = A
+check-updates-label =
+ .label = Hae päivityksiä, mutta minä päätän asennetaanko ne
+ .accesskey = H
+update-history-button =
+ .label = Näytä päivityshistoria
+ .accesskey = N
+use-service =
+ .label = Asenna päivitykset taustapalvelun avulla
+ .accesskey = u
+cross-user-udpate-warning = Tämä asetus vaikuttaa kaikkiin tätä { -brand-short-name }-asennusta käyttäviin Windows-tileihin ja { -brand-short-name }-profiileihin.
+networking-legend = Yhteysasetukset
+proxy-config-description = Määritä, kuinka { -brand-short-name } yhdistää internetiin
+network-settings-button =
+ .label = Yhteysasetukset…
+ .accesskey = Y
+offline-legend = Yhteydetön tila
+offline-settings = Määritä verkkoyhteydettömän tilan asetukset
+offline-settings-button =
+ .label = Yhteydetön tila…
+ .accesskey = h
+diskspace-legend = Levytilan käyttö
+offline-compact-folder =
+ .label = Tiivistä kansiot kun se säästää yhteensä yli
+ .accesskey = T
+offline-compact-folder-automatically =
+ .label = Kysy aina ennen tiivistämistä
+ .accesskey = y
+compact-folder-size =
+ .value = Mt
+
+## Note: The entities use-cache-before and use-cache-after appear on a single
+## line in preferences as follows:
+## use-cache-before [ textbox for cache size in MB ] use-cache-after
+
+use-cache-before =
+ .value = Käytä enintään
+ .accesskey = K
+use-cache-after = Mt:a levytilaa väliaikaistiedostoille
+
+##
+
+smart-cache-label =
+ .label = Ohita automaattinen välimuistin hallinta
+ .accesskey = O
+clear-cache-button =
+ .label = Tyhjennä heti
+ .accesskey = T
+clear-cache-shutdown-label =
+ .label = Tyhjennä välimuisti sammutettaessa
+ .accesskey = s
+fonts-legend = Kirjasinlajit ja värit
+default-font-label =
+ .value = Oletuskirjasin:
+ .accesskey = O
+default-size-label =
+ .value = Koko:
+ .accesskey = K
+font-options-button =
+ .label = Lisäasetukset…
+ .accesskey = L
+color-options-button =
+ .label = Värit…
+ .accesskey = V
+display-width-legend = Pelkkä teksti -viestit
+# Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
+convert-emoticons-label =
+ .label = Näytä hymiöt kuvina
+ .accesskey = N
+display-text-label = Kirjasinlaji lainattaessa pelkkä teksti -viestejä:
+style-label =
+ .value = Tyyli:
+ .accesskey = T
+regular-style-item =
+ .label = Normaali
+bold-style-item =
+ .label = Lihavoitu
+italic-style-item =
+ .label = Kursivoitu
+bold-italic-style-item =
+ .label = Lihavoitu kursiivi
+size-label =
+ .value = Koko:
+ .accesskey = o
+regular-size-item =
+ .label = Normaali
+bigger-size-item =
+ .label = Suurempi
+smaller-size-item =
+ .label = Pienempi
+quoted-text-color =
+ .label = Väri:
+ .accesskey = V
+search-handler-table =
+ .placeholder = Suodata sisältötyypit ja toiminnot
+type-column-header = Sisältötyyppi
+action-column-header = Toiminto
+save-to-label =
+ .label = Tallenna kansioon
+ .accesskey = T
+choose-folder-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Valitse…
+ *[other] Selaa…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] V
+ *[other] S
+ }
+always-ask-label =
+ .label = Kysy aina tiedoston tallennuskansio
+ .accesskey = K
+display-tags-text = Voit luokitella ja merkitä tärkeitä viestejä tunnuksilla.
+new-tag-button =
+ .label = Uusi…
+ .accesskey = U
+edit-tag-button =
+ .label = Muokkaa…
+ .accesskey = M
+delete-tag-button =
+ .label = Poista
+ .accesskey = P
+auto-mark-as-read =
+ .label = Merkitse viestit automaattisesti luetuksi
+ .accesskey = M
+mark-read-no-delay =
+ .label = Kun ne avataan
+ .accesskey = K
+view-attachments-inline =
+ .label = Näytä liitteet sisennettynä
+ .accesskey = y
+
+## Note: This will concatenate to "After displaying for [___] seconds",
+## using (mark-read-delay) and a number (seconds-label).
+
+mark-read-delay =
+ .label = Kun ne ovat olleet avattuna
+ .accesskey = u
+seconds-label = sekuntia
+
+##
+
+open-msg-label =
+ .value = Avaa viestit:
+open-msg-tab =
+ .label = Uuteen välilehteen
+ .accesskey = v
+open-msg-window =
+ .label = Uuteen viesti-ikkunaan
+ .accesskey = i
+open-msg-ex-window =
+ .label = Avoinna olevaan viesti-ikkunaan
+ .accesskey = A
+close-move-delete =
+ .label = Sulje viesti-ikkuna kun viesti siirretään tai poistetaan
+ .accesskey = v
+display-name-label =
+ .value = Näyttönimi:
+condensed-addresses-label =
+ .label = Näytä osoitekirjassa olevien nimet ilman sähköpostiosoitetta
+ .accesskey = N
+
+## Compose Tab
+
+forward-label =
+ .value = Välitä viestit:
+ .accesskey = V
+inline-label =
+ .label = Viestirungossa
+as-attachment-label =
+ .label = Liitteenä
+extension-label =
+ .label = lisää tiedostonimeen pääte
+ .accesskey = s
+
+## Note: This will concatenate to "Auto Save every [___] minutes",
+## using (auto-save-label) and a number (auto-save-end).
+
+auto-save-label =
+ .label = Tallenna viestit automaattisesti
+ .accesskey = T
+auto-save-end = minuutin välein
+
+##
+
+warn-on-send-accel-key =
+ .label = Pyydä vahvistus kun viesti lähetetään pikanäppäimillä
+ .accesskey = y
+add-link-previews =
+ .label = Lisää linkkien esikatselu, kun liität URL-osoitteita
+ .accesskey = i
+spellcheck-label =
+ .label = Oikolue viestit ennen lähettämistä
+ .accesskey = O
+spellcheck-inline-label =
+ .label = Oikolue teksti kirjoitettaessa
+ .accesskey = k
+language-popup-label =
+ .value = Kieli:
+ .accesskey = K
+download-dictionaries-link = Hae sanastoja
+font-label =
+ .value = Kirjasin:
+ .accesskey = n
+font-size-label =
+ .value = Koko:
+ .accesskey = K
+default-colors-label =
+ .label = Käytä lukijan oletusvärejä
+ .accesskey = o
+font-color-label =
+ .value = Tekstin väri:
+ .accesskey = s
+bg-color-label =
+ .value = Taustaväri:
+ .accesskey = a
+restore-html-label =
+ .label = Palauta oletukset
+ .accesskey = P
+default-format-label =
+ .label = Käytä oletuksena kappalemuotoilua leipätekstin sijaan
+ .accesskey = p
+compose-send-format-title = Lähetysmuoto
+compose-send-automatic-option =
+ .label = Automaattinen
+compose-send-automatic-description = Jos viestissä ei käytetä tyyliä, lähetä pelkkänä tekstinä. Muussa tapauksessa lähetä HTML-muodossa ja pelkän tekstin varmistuksella.
+compose-send-both-option =
+ .label = Sekä HTML että pelkkä teksti
+compose-send-both-description = Vastaanottajan sähköpostisovellus määrittää näytettävän version.
+compose-send-html-option =
+ .label = Vain HTML
+compose-send-html-description = Jotkut vastaanottajat eivät ehkä pysty lukemaan viestiä ilman pelkän tekstin varmistusta.
+compose-send-plain-option =
+ .label = Vain pelkkä teksti
+compose-send-plain-description = Jotkin tyylit muunnetaan tavalliseksi vaihtoehdoksi, kun taas muut sommitteluominaisuudet poistetaan käytöstä.
+autocomplete-description = Kirjoitettaessa vastaanottajia, etsi vastineita kohteesta:
+ab-label =
+ .label = Paikalliset osoitekirjat
+ .accesskey = P
+directories-label =
+ .label = Hakemistopalvelin:
+ .accesskey = H
+directories-none-label =
+ .none = Ei mitään
+edit-directories-label =
+ .label = Muokkaa hakemistoja…
+ .accesskey = M
+email-picker-label =
+ .label = Lisää lähetettyjen viestien vastaanottajat osoitekirjaan:
+ .accesskey = L
+default-directory-label =
+ .value = Oletuskansio osoitekirjan ikkunassa:
+ .accesskey = k
+default-last-label =
+ .none = Viimeksi käytetty kansio
+attachment-label =
+ .label = Tarkista puuttuuko viestistä liitetiedosto
+ .accesskey = p
+attachment-options-label =
+ .label = Avainsanat…
+ .accesskey = A
+enable-cloud-share =
+ .label = Ehdota palvelua yli
+cloud-share-size =
+ .value = Mt:n tiedostoille
+add-cloud-account =
+ .label = Lisää…
+ .accesskey = L
+ .defaultlabel = Lisää…
+remove-cloud-account =
+ .label = Poista
+ .accesskey = P
+find-cloud-providers =
+ .value = Etsi lisää palveluntarjoajia…
+cloud-account-description = Lisää uusi tiedostoja linkittävä tallennuspalvelu
+
+## Privacy Tab
+
+mail-content = Sähköpostin sisältö
+remote-content-label =
+ .label = Salli etäsisältö sähköposteissa
+ .accesskey = S
+exceptions-button =
+ .label = Poikkeukset…
+ .accesskey = k
+remote-content-info =
+ .value = Lue lisää etäsisällön vaikutuksista yksityisyydensuojaan
+web-content = Verkkosisältö
+history-label =
+ .label = Muista avaamani sivustot ja linkit
+ .accesskey = M
+cookies-label =
+ .label = Sivustot saavat asettaa evästeitä
+ .accesskey = v
+third-party-label =
+ .value = Salli kolmannen osapuolen evästeet:
+ .accesskey = m
+third-party-always =
+ .label = Aina
+third-party-never =
+ .label = Ei milloinkaan
+third-party-visited =
+ .label = Vierailluilta sivustoilta
+cookies-button =
+ .label = Näytä evästeet…
+ .accesskey = N
+do-not-track-label =
+ .label = Lähetä sivustoille ”Do Not Track”-signaali, joka kertoo ettet halua sinua seurattavan
+ .accesskey = s
+dnt-learn-more-button =
+ .value = Lue lisää
+passwords-description = Voit tallentaa { -brand-short-name }iin kaikkien sähköpostitiliesi salasanat.
+passwords-button =
+ .label = Tallennetut salasanat…
+ .accesskey = T
+primary-password-description = Pääsalasana suojaa kaikkien sähköpostitiliesi salasanat, mutta se kysytään kerran joka istunnossa.
+primary-password-label =
+ .label = Käytä pääsalasanaa
+ .accesskey = K
+primary-password-button =
+ .label = Vaihda pääsalasana…
+ .accesskey = V
+forms-primary-pw-fips-title = Olet parhaillaan FIPS-tilassa. FIPS edellyttää, että pääsalasana ei ole tyhjä.
+forms-master-pw-fips-desc = Salasanan vaihto epäonnistui
+junk-description = Muokkaa alta roskapostisuodattimen oletusasetuksia. Tilikohtaisia asetuksia voi muokata Tilien asetuksista.
+junk-label =
+ .label = Kun merkitsen viestin roskapostiksi:
+ .accesskey = K
+junk-move-label =
+ .label = Siirrä se tilin roskapostikansioon
+ .accesskey = S
+junk-delete-label =
+ .label = Poista se
+ .accesskey = P
+junk-read-label =
+ .label = Merkitse roskapostiviestit luetuiksi
+ .accesskey = M
+junk-log-label =
+ .label = Pidä roskapostilokia
+ .accesskey = P
+junk-log-button =
+ .label = Näytä loki
+ .accesskey = N
+reset-junk-button =
+ .label = Nollaa harjoitustiedot
+ .accesskey = N
+phishing-description = { -brand-short-name } voi yrittää tunnistaa viestejä sähköpostihuijauksiksi tavanomaisia huijaustekniikoita etsien.
+phishing-label =
+ .label = Näytä varoitus epäillyistä sähköpostihuijauksista
+ .accesskey = N
+antivirus-description = { -brand-short-name }issä virustorjuntaohjelman voi antaa tarkistaa saapuvat sähköpostiviestit virusten varalta ennen kuin ne tallennetaan tietokoneelle.
+antivirus-label =
+ .label = Virustorjuntaohjelmat voivat asettaa yksittäiset viestit karanteeniin
+ .accesskey = V
+certificate-description = Palvelimen pyytäessä henkilökohtaista varmennettani:
+certificate-auto =
+ .label = Valitse sellainen automaattisesti
+ .accesskey = V
+certificate-ask =
+ .label = Kysy joka kerta
+ .accesskey = K
+ocsp-label =
+ .label = Vahvista varmenteiden ajantasainen voimassaolo OCSP-vastaajapalvelimilta
+ .accesskey = C
+certificate-button =
+ .label = Hallitse varmenteita…
+ .accesskey = H
+security-devices-button =
+ .label = Turvalaitteet…
+ .accesskey = T
+email-e2ee-header = Sähköpostin päästä päähän -salaus
+account-settings = Tilin asetukset
+email-e2ee-enable-info = Määritä sähköpostitilit ja identiteetit päästä päähän -salausta varten tiliasetuksissa.
+email-e2ee-automatism = Automaattinen salauksen käyttö
+email-e2ee-automatism-pre =
+ { -brand-short-name } voi auttaa ottamalla salauksen automaattisesti käyttöön tai poistamalla sen käytöstä sähköpostin kirjoittamisen aikana.
+ Automaattinen käyttöönotto ja poistaminen käytöstä perustuu kelvollisten sekä hyväksyttyjen vastaanottajien avainten tai varmenteiden saatavuuteen.
+email-e2ee-auto-on =
+ .label = Ota salaus käyttöön automaattisesti, kun mahdollista
+email-e2ee-auto-off =
+ .label = Poista salaus automaattisesti käytöstä, kun vastaanottajat vaihtuvat ja salaus ei ole enää mahdollista
+email-e2ee-auto-off-notify =
+ .label = Näytä ilmoitus aina, kun salaus poistetaan automaattisesti käytöstä
+email-e2ee-automatism-post =
+ Automaattiset päätökset voidaan ohittaa ottamalla salaus manuaalisesti käyttöön tai poistamalla se käytöstä viestiä kirjoitettaessa.
+ Huomautus: salaus on aina automaattisesti käytössä, kun vastaat salattuun viestiin.
+
+## Chat Tab
+
+startup-label =
+ .value = Kun { -brand-short-name } käynnistyy:
+ .accesskey = T
+offline-label =
+ .label = Älä yhdistä pikaviestitilejäni
+auto-connect-label =
+ .label = Yhdistä automaattisesti pikaviestitilit
+
+## Note: idle-label is displayed first, then there's a field where the user
+## can enter a number, and itemTime is displayed at the end of the line.
+## The translations of the idle-label and idle-time-label parts don't have
+## to mean the exact same thing as in English; please try instead to
+## translate the whole sentence.
+
+idle-label =
+ .label = Näytä tuttaville kun tietokoneellani ei tapahdu mitään
+ .accesskey = A
+idle-time-label = minuuttiin
+
+##
+
+away-message-label =
+ .label = ja aseta minut poissaolevaksi tämän viestin kera:
+ .accesskey = A
+send-typing-label =
+ .label = Lähetä tieto kirjoittamisesta keskustelujen aikana
+ .accesskey = L
+notification-label = Kun sinulle osoitettu viesti saapuu:
+show-notification-label =
+ .label = Näytä ilmoituksessa:
+ .accesskey = i
+notification-all =
+ .label = lähettäjän nimi ja viestin esikatselu
+notification-name =
+ .label = vain lähettäjän nimi
+notification-empty =
+ .label = ilman lisätietoja
+notification-type-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Animoi Dockin kohde
+ *[other] Vilkuta työkalupalkin kohdetta
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] A
+ *[other] V
+ }
+chat-play-sound-label =
+ .label = Toista ääni
+ .accesskey = a
+chat-play-button =
+ .label = Toista
+ .accesskey = T
+chat-system-sound-label =
+ .label = Järjestelmän oletusääni uudelle sähköpostille
+ .accesskey = J
+chat-custom-sound-label =
+ .label = Käytä seuraavaa äänitiedostoa
+ .accesskey = K
+chat-browse-sound-button =
+ .label = Selaa…
+ .accesskey = S
+theme-label =
+ .value = Teema:
+ .accesskey = T
+style-mail =
+ .label = { -brand-short-name }
+style-bubbles =
+ .label = Kuplat
+style-dark =
+ .label = Tumma
+style-paper =
+ .label = Paperiarkit
+style-simple =
+ .label = Yksinkertainen
+preview-label = Esikatselu:
+no-preview-label = Esikatselu ei ole käytettävissä
+no-preview-description = Tämä teema ei ole kelvollinen tai sitä ei tilapäisesti ole saatavilla (estetty liitännäinen, vikasietotila, …).
+chat-variant-label =
+ .value = Muunnelma:
+ .accesskey = M
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-preferences-input2 =
+ .style = width: 15.4em
+ .placeholder = Etsi asetuksista
+
+## Settings UI Search Results
+
+search-results-header = Hakutulokset
+# `<span data-l10n-name="query"></span>` will be replaced by the search term.
+search-results-empty-message2 =
+ { PLATFORM() ->
+ [windows] Valitettavasti asetuksista ei löytynyt tuloksia haulla “<span data-l10n-name="query"></span>”.
+ *[other] Valitettavasti asetuksista ei löytynyt tuloksia haulla “<span data-l10n-name="query"></span>”.
+ }
+search-results-help-link = Tarvitsetko apua? Vieraile <a data-l10n-name="url">{ -brand-short-name }-tuessa</a>
+
+## Sync Tab
+
+sync-signedout-caption = Ota verkko mukaasi
+sync-signedout-description = Synkronoi tilit, osoitekirjat, kalenterit, lisäosat ja asetukset kaikilla laitteillasi.
+# Note: "Sync" represents the Firefox Sync product so it shouldn't be translated.
+sync-signedout-account-signin-btn = Kirjaudu synkronoidaksesi…
+# Variables:
+# $userEmail (String) - The email logged into Sync.
+sync-pane-email-not-verified = Sähköpostiosoitetta “{ $userEmail }” ei ole vahistettu.
+# Variables:
+# $userEmail (String) - The email logged into Sync.
+sync-signedin-login-failure = Kirjaudu sisään palauttaaksesi osoitteen { $userEmail } yhteyden
+sync-pane-resend-verification = Lähetä vahvistus uudestaan
+sync-pane-sign-in = Kirjaudu sisään
+sync-pane-remove-account = Poista tili
+sync-pane-edit-photo =
+ .title = Vaihda profiilikuva
+sync-pane-manage-account = Hallinnoi tiliä
+sync-pane-sign-out = Kirjaudu ulos…
+sync-pane-device-name-title = Laitteen nimi
+sync-pane-change-device-name = Muuta laitteen nimi
+sync-pane-cancel = Peruuta
+sync-pane-save = Tallenna
+sync-pane-show-synced-header-on = Synkronointi PÄÄLLÄ
+sync-pane-show-synced-header-off = Synkronointi POIS PÄÄLTÄ
+sync-pane-sync-now = Synkronoi nyt
+sync-panel-sync-now-syncing = Synkronoidaan…
+show-synced-list-heading = Näitä synkronoidaan parhaillaan:
+show-synced-learn-more = Lue lisää…
+show-synced-item-account = Sähköpostitilit
+show-synced-item-address = Osoitekirjat
+show-synced-item-calendar = Kalenterit
+show-synced-item-passwords = Salasanat
+show-synced-change = Muokkaa…
+synced-acount-item-server-config = Palvelimen määritys
+synced-acount-item-filters = Suodattimet
+synced-acount-item-keys = OpenPGP - S/MIME
+sync-disconnected-text = Synkronoi sähköpostitilisi, osoitekirjasi, kalenterisi ja henkilöllisyytesi kaikilla laitteillasi.
+sync-disconnected-turn-on-sync = Ota synkronointi käyttöön…
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/receipts.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/receipts.ftl
new file mode 100644
index 0000000000..59323e8f3c
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/receipts.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+receipts-dialog-window =
+ .title = Vastaanottokuittaukset
+receipts-dialog-title = Vastaanottokuittaukset
+return-receipt-checkbox-control =
+ .label = Lähetettäessä viestiä, pyydä aina vastaanottokuittaus
+ .accesskey = W
+receipt-arrive-label = Kuittauksen saapuessa:
+receipt-leave-radio-control =
+ .label = Jätä se Saapuneet-kansioon
+ .accesskey = ä
+receipt-move-radio-control =
+ .label = Siirrä se Lähetetyt-kansioon
+ .accesskey = h
+receipt-request-label = Vastaanottaessani vastaanottokuittauspyynnön:
+receipt-return-never-radio-control =
+ .label = Älä koskaan lähetä vastaanottokuittausta
+ .accesskey = Ä
+receipt-return-some-radio-control =
+ .label = Salli vastaanottokuittaukset joillekin viesteille
+ .accesskey = S
+receipt-not-to-cc-label =
+ .value = Jos en ole viestin vastaanottaja- tai kopiokentässä:
+ .accesskey = J
+receipt-send-never-label =
+ .label = Älä lähetä
+receipt-send-always-label =
+ .label = Lähetä
+receipt-send-ask-label =
+ .label = Kysy
+sender-outside-domain-label =
+ .value = Kun lähettäjä on verkkoalueeni ulkopuolelta:
+ .accesskey = u
+other-cases-text-label =
+ .value = Muissa tapauksissa:
+ .accesskey = M
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/sync-dialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/sync-dialog.ftl
new file mode 100644
index 0000000000..5ace3c9554
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/sync-dialog.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+config-sync-dailog-title =
+ .title = Valitse, mitä synkronoidaan
+sync-dialog =
+ .buttonlabelaccept = Tallenna muutokset
+ .buttonaccesskeyaccept = S
+ .buttonlabelextra2 = Katkaise yhteys…
+ .buttonaccesskeyextra2 = K
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/preferences/system-integration.ftl b/thunderbird-l10n/fi/localization/fi/messenger/preferences/system-integration.ftl
new file mode 100644
index 0000000000..cb9df58765
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/preferences/system-integration.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+system-integration-title =
+ .title = Järjestelmään sopeuttaminen
+system-integration-dialog-title = Järjestelmään sopeuttaminen
+system-integration-dialog =
+ .buttonlabelaccept = Aseta oletukseksi
+ .buttonlabelcancel = Ohita järjestelmään sopeuttaminen
+ .buttonlabelcancel2 = Peruuta
+default-client-intro = Käytä { -brand-short-name }iä oletusohjelmana:
+unset-default-tooltip = { -brand-short-name }istä ei ole mahdollista asettaa toista ohjelmaa järjestelmän oletukseksi. Aseta toinen ohjelma oletukseksi sen omalla ”Aseta oletukseksi” -asetuksella.
+checkbox-email-label =
+ .label = Sähköpostille
+ .tooltiptext = { unset-default-tooltip }
+checkbox-newsgroups-label =
+ .label = Keskusteluryhmille
+ .tooltiptext = { unset-default-tooltip }
+checkbox-feeds-label =
+ .label = Syötteille
+ .tooltiptext = { unset-default-tooltip }
+checkbox-calendar-label =
+ .label = Kalenterille
+ .tooltiptext = { unset-default-tooltip }
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+system-search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Windowsin haku
+ *[other] { "" }
+ }
+system-search-integration-label =
+ .label = Salli käyttöjärjestelmän { system-search-engine-name } -hakutoiminnon etsiä viesteistä
+ .accesskey = S
+check-on-startup-label =
+ .label = Tee tämä tarkistus aina, kun { -brand-short-name } käynnistetään
+ .accesskey = T
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/shortcuts.ftl b/thunderbird-l10n/fi/localization/fi/messenger/shortcuts.ftl
new file mode 100644
index 0000000000..6bc80dbcb1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/shortcuts.ftl
@@ -0,0 +1,96 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Shortcuts
+
+# Variables:
+# $key (String) - The shortcut key.
+shortcut-key = { $key }
+meta-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌘ { $key }
+ *[other] Meta+{ $key }
+ }
+ctrl-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ { $key }
+ *[other] Ctrl+{ $key }
+ }
+shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⇧ { $key }
+ *[other] Shift+{ $key }
+ }
+alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ { $key }
+ *[other] Alt+{ $key }
+ }
+meta-ctrl-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌘ { $key }
+ *[other] Meta+Ctrl+{ $key }
+ }
+meta-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ ⌘ { $key }
+ *[other] Meta+Alt+{ $key }
+ }
+ctrl-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ { $key }
+ *[other] Ctrl+Alt+{ $key }
+ }
+meta-ctrl-alt-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⌘ { $key }
+ *[other] Meta+Ctrl+Alt+{ $key }
+ }
+meta-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⇧ ⌘ { $key }
+ *[other] Meta+Shift+{ $key }
+ }
+ctrl-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⇧ { $key }
+ *[other] Ctrl+Shift+{ $key }
+ }
+meta-ctrl-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌃ ⇧ ⌘ { $key }
+ *[other] Meta+Ctrl+Shift+{ $key }
+ }
+alt-shift-shortcut-key =
+ { PLATFORM() ->
+ [macos] ⌥ ⇧ { $key }
+ *[other] Alt+Shift+{ $key }
+ }
+meta-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌥ ⇧ ⌘ { $key }
+ *[other] Meta+Alt+Shift+{ $key }
+ }
+ctrl-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⇧ { $key }
+ *[other] Ctrl+Alt+Shift+{ $key }
+ }
+meta-ctrl-shift-alt-shortcut-key2 =
+ { PLATFORM() ->
+ [macos] ⌃ ⌥ ⇧ ⌘ { $key }
+ *[other] Meta+Ctrl+Alt+Shift+{ $key }
+ }
+# Variables:
+# $title (String): The title coming from the original element.
+# $shortcut (String): The shortcut generated from the keystroke combination.
+button-shortcut-string =
+ .title = { $title } ({ $shortcut })
+# Variables:
+# $label (String): The text label coming from the original element.
+# $shortcut (String): The shortcut generated from the keystroke combination.
+menuitem-shortcut-string =
+ .label = { $label }
+ .acceltext = { $shortcut }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/syncAccounts.ftl b/thunderbird-l10n/fi/localization/fi/messenger/syncAccounts.ftl
new file mode 100644
index 0000000000..0290e0c5b6
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/syncAccounts.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# The strings in this file relate to the configuration of Mozilla accounts for sync.
+
+
+## These strings are shown in a desktop notification after the user requests we resend a verification email.
+
+sync-verification-sent-title = Vahvistus lähetetty
+# Variables:
+# $userEmail (String) - Email address of the account used for sync.
+sync-verification-sent-body = Vahvistuslinkki on lähetetty osoitteeseen { $userEmail }.
+sync-verification-not-sent-title = Vahvistuksen lähetys epäonnistui
+sync-verification-not-sent-body = Vahvistussähköpostin lähetys ei onnistu tällä hetkellä. Yritä uudestaan myöhemmin.
+
+## These strings are shown in a confirmation dialog when the user chooses to sign out.
+
+sync-signout-dialog-title = Haluatko kirjautua ulos tililtäsi?
+sync-signout-dialog-body = Synkronoidut tiedot säilyvät tililläsi.
+sync-signout-dialog-button = Kirjaudu ulos
+
+## These strings are shown in a confirmation dialog when the user chooses to stop syncing.
+
+sync-disconnect-dialog-title = Katkaistaanko yhteys?
+sync-disconnect-dialog-body = { -brand-product-name } lopettaa synkronoinnin, mutta mitään tämän laitteen tietoja ei poisteta.
+sync-disconnect-dialog-button = Katkaise yhteys
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/treeView.ftl b/thunderbird-l10n/fi/localization/fi/messenger/treeView.ftl
new file mode 100644
index 0000000000..23ae629641
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/treeView.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Table
+
+tree-list-view-row-delete =
+ .title = Poista nykyinen rivi
+tree-list-view-row-restore =
+ .title = Palauta nykyinen rivi
+tree-list-view-column-picker =
+ .title = Valitse näytettävät sarakkeet
+tree-list-view-column-picker-restore =
+ .label = Palauta sarakkeiden järjestys
+tree-list-view-row-attach =
+ .alt = Liitteen ilmaisin
+ .title = Viesti sisältää liitteitä
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/troubleshootMode.ftl b/thunderbird-l10n/fi/localization/fi/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000..93367b9993
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/troubleshootMode.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+troubleshoot-mode-window =
+ .title = { -brand-short-name }in ongelmanratkaisutila
+ .style = width: 37em;
+troubleshoot-mode-dialog-title = { -brand-short-name }in ongelmanratkaisutila
+troubleshoot-mode-description = Käytä { -brand-short-name }in ongelmanratkaisutilaa ongelmien tutkimiseen. Lisäosasi ja mukautuksesi poistetaan väliaikaisesti käytöstä.
+troubleshoot-mode-description2 = Voit tehdä joistain tai kaikista näistä asetuksista pysyviä:
+troubleshoot-mode-disable-addons =
+ .label = Poista käytöstä kaikki lisäosat
+ .accesskey = P
+troubleshoot-mode-reset-toolbars =
+ .label = Palauta työkalupalkit oletusasetuksiin
+ .accesskey = P
+troubleshoot-mode-change-and-restart =
+ .label = Toteuta muutokset ja käynnistä uudelleen
+ .accesskey = T
+troubleshoot-mode-continue =
+ .label = Jatka ongelmanratkaisutilassa
+ .accesskey = J
+troubleshoot-mode-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Lopeta
+ *[other] Lopeta
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] Q
+ *[other] Q
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbar.ftl b/thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbar.ftl
new file mode 100644
index 0000000000..1efd922a1f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbar.ftl
@@ -0,0 +1,100 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar strings
+
+
+## Search bar
+
+search-bar-button =
+ .alt = Etsi
+search-bar-item =
+ .label = Etsi:
+search-bar-placeholder = Etsi…
+# Search bar placeholder with formatted key shortcut hint (platform dependent).
+# The key after the control modifier should match the key from quickSearchCmd.key
+# in messenger.dtd.
+search-bar-placeholder-with-key2 =
+ { PLATFORM() ->
+ [macos] { search-bar-placeholder } <kbd>⌘</kbd> <kbd>K</kbd>
+ *[other] { search-bar-placeholder } <kbd>Ctrl</kbd> + <kbd>K</kbd>
+ }
+
+## Unified toolbar context menu
+
+customize-menu-customize =
+ .label = Muokkaa…
+
+# Unified toolbar get messages button context menu
+
+toolbar-get-all-messages-menuitem =
+ .label = Nouda kaikki uudet viestit
+ .accesskey = N
+
+## Unified Toolbar customization
+
+customize-title = Muokkaa työkalupalkkeja
+customize-space-tab-mail = Sähköposti
+ .title = Sähköposti
+customize-space-tab-addressbook = Osoitekirja
+ .title = Osoitekirja
+customize-space-tab-calendar = Kalenteri
+ .title = Kalenteri
+customize-space-tab-tasks = Tehtävät
+ .title = Tehtävät
+customize-space-tab-chat = Keskustelu
+ .title = Keskustelu
+customize-space-tab-settings = Asetukset
+ .title = Asetukset
+customize-restore-default = Palauta oletukset
+customize-change-appearance = Muuta ulkoasua…
+customize-button-style-label = Painikkeen tyyli:
+customize-button-style-icons-beside-text-option = Kuvakkeet tekstin vieressä
+customize-button-style-icons-above-text-option = Kuvakkeet tekstin yläpuolella
+customize-button-style-icons-only-option = Vain kuvakkeet
+customize-button-style-text-only-option = Vain teksti
+customize-cancel = Peruuta
+customize-save = Tallenna
+customize-unsaved-changes = Tallentamattomia muutoksia muissa näkymissä
+customize-search-bar =
+ .label = Etsi työkalupalkin painikkeita…
+customize-spaces-tabs =
+ .aria-label = Näkymät
+customize-main-toolbar-target =
+ .aria-label = Pääpalkki
+customize-palette-generic-title = Saatavilla kaikkiin näkymiin
+customize-palette-mail-specific-title = Saatavilla vain sähköpostin näkymään
+customize-palette-addressbook-specific-title = Saatavilla vain osoitekirjan näkymään
+customize-palette-calendar-specific-title = Saatavilla vain kalenterin näkymään
+customize-palette-tasks-specific-title = Saatavilla vain tehtävien näkymään
+customize-palette-chat-specific-title = Saatavilla vain keskustelun näkymään
+customize-palette-settings-specific-title = Saatavilla vain asetusten näkymään
+customize-palette-extension-specific-title = Saatavilla vain tähän näkymään
+
+## Unified toolbar customization palette context menu
+
+# Variables:
+# $target (String) - Name of the target the item should be added to.
+customize-palette-add-to =
+ .label = Lisää näkymään { $target }
+customize-palette-add-everywhere =
+ .label = Lisää kaikkiin työkalupalkkeihin
+
+## Unified toolbar customization target context menu
+
+customize-target-forward =
+ .label = Siirrä eteenpäin
+customize-target-backward =
+ .label = Siirrä taaksepäin
+customize-target-remove =
+ .label = Poista
+customize-target-remove-everywhere =
+ .label = Poista kaikista työkalupalkeista
+customize-target-add-everywhere =
+ .label = Lisää kaikkiin työkalupalkkeihin
+customize-target-start =
+ .label = Siirrä alkuun
+customize-target-end =
+ .label = Siirrä loppuun
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbarItems.ftl b/thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbarItems.ftl
new file mode 100644
index 0000000000..2b143cbb3b
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/unifiedToolbarItems.ftl
@@ -0,0 +1,157 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Unified Toolbar Item Label strings
+
+spacer-label = Joustava väli
+search-bar-label = Etsi
+toolbar-write-message-label = Kirjoita
+toolbar-write-message =
+ .title = Luo uusi viesti
+toolbar-move-to-label = Siirrä kansioon
+toolbar-move-to =
+ .title = Siirrä valittu viesti
+toolbar-unifinder-label = Etsi tapahtumia
+toolbar-unifinder =
+ .title = Näytä/piilota Etsi tapahtumia -paneeli
+toolbar-folder-location-label = Kansion sijainti
+toolbar-folder-location =
+ .title = Vaihda kansioon
+toolbar-edit-event-label = Muokkaa
+toolbar-edit-event =
+ .title = Muokkaa valittua tapahtumaa tai tehtävää
+toolbar-get-messages-label = Nouda viestit
+toolbar-get-messages =
+ .title = Hae uudet viestit kaikita tileiltä
+toolbar-reply-label = Vastaa
+toolbar-reply =
+ .title = Vastaa viestiin
+toolbar-reply-all-label = Vastaa kaikille
+toolbar-reply-all =
+ .title = Vastaa lähettäjälle ja kaikille vastaanottajille
+toolbar-reply-to-list-label = Vastaa listalle
+toolbar-reply-to-list =
+ .title = Vastaa postituslistalle
+toolbar-redirect-label = Uudelleenohjaa
+toolbar-redirect =
+ .title = Uudelleenohjaa valittu viesti
+toolbar-archive-label = Arkistoi
+toolbar-archive =
+ .title = Arkistoi valitut viestit
+toolbar-conversation-label = Keskustelu
+toolbar-conversation =
+ .title = Näytä valitun viestin keskustelu
+toolbar-previous-unread-label = Edellinen lukematon
+toolbar-previous-unread =
+ .title = Siirry edelliseen lukematta olevaan viestiin
+toolbar-previous-label = Edellinen
+toolbar-previous =
+ .title = Siirry edelliseen viestiin
+toolbar-next-unread-label = Seuraava lukematon
+toolbar-next-unread =
+ .title = Siirry seuraavaan lukematta olevaan viestiin
+toolbar-next-label = Seuraava
+toolbar-next =
+ .title = Siirry seuraavaan viestiin
+toolbar-junk-label = Roskapostia
+toolbar-junk =
+ .title = Merkitse valitut viestit roskapostiksi
+toolbar-delete-label = Poista
+toolbar-delete-title =
+ .title = Poista valitut viestit
+toolbar-undelete-label = Peru poistaminen
+toolbar-undelete =
+ .title = Peru valittujen viestien poisto
+toolbar-compact-label = Tiivistä
+toolbar-compact =
+ .title = Poista poistettu viesti valitusta kansiosta
+toolbar-add-as-event-label = Lisää tapahtumaksi
+toolbar-add-as-event =
+ .title = Etsi aikataulutiedot viestistä ja lisää ne kalenteriin tapahtumaksi
+toolbar-add-as-task-label = Lisää tehtäväksi
+toolbar-add-as-task =
+ .title = Etsi aikataulutiedot viestistä ja lisää ne kalenteriin tehtäväksi
+toolbar-tag-message-label = Tunnus
+toolbar-tag-message =
+ .title = Aseta viesteihin tunnuksia
+toolbar-forward-inline-label = Välitä
+toolbar-forward-inline =
+ .title = Välitä viesti viestirungossa
+toolbar-forward-attachment-label = Välitä liitteenä
+toolbar-forward-attachment =
+ .title = Välitä viesti liitteenä
+toolbar-mark-as-label = Merkitse
+toolbar-mark-as =
+ .title = Merkitse viestit
+toolbar-view-picker-label = Näytä
+toolbar-view-picker =
+ .title = Mukauta nykyisen kansion näkymää
+toolbar-address-book-label = Osoitekirja
+toolbar-address-book =
+ .title = Siirry osoitekirjaan
+toolbar-chat-label = Keskustele
+toolbar-chat =
+ .title = Näytä keskustelu-välilehti
+toolbar-add-ons-and-themes-label = Lisäosat ja teemat
+toolbar-add-ons-and-themes =
+ .title = Hallitse lisäosia
+toolbar-calendar-label = Kalenteri
+toolbar-calendar =
+ .title = Siirry Kalenteri-välilehteen
+toolbar-tasks-label = Tehtävät
+toolbar-tasks =
+ .title = Siirry Tehtävät-välilehteen
+toolbar-mail-label = Sähköposti
+toolbar-mail =
+ .title = Siirry Sähköposti-välilehteen
+toolbar-print-label = Tulosta
+toolbar-print =
+ .title = Tulosta viesti
+toolbar-quick-filter-bar-label = Pikasuodatus
+toolbar-quick-filter-bar =
+ .title = Suodata viestejä
+toolbar-synchronize-label = Synkronoi
+toolbar-synchronize =
+ .title = Lataa kalenterit uudelleen ja synkronoi muutokset
+toolbar-delete-event-label = Poista
+toolbar-delete-event =
+ .title = Poista valitut tapahtumat tai tehtävät
+toolbar-go-to-today-label = Siirry tähän päivään
+toolbar-go-to-today =
+ .title = Siirry tähän päivään
+toolbar-print-event-label = Tulosta
+toolbar-print-event =
+ .title = Tulosta tapahtumat tai tehtävät
+toolbar-new-event-label = Tapahtuma
+toolbar-new-event =
+ .title = Luo uusi tapahtuma
+toolbar-new-task-label = Tehtävä
+toolbar-new-task =
+ .title = Luo uusi tehtävä
+toolbar-go-back-label = Siirry edelliseen
+toolbar-go-back =
+ .title = Siirry edelliseen viestiin
+toolbar-go-forward-label = Siirry seuraavaan
+toolbar-go-forward =
+ .title = Siirry seuraavaan viestiin
+toolbar-stop-label = Pysäytä
+toolbar-stop =
+ .title = Keskeytä lataus
+toolbar-throbber-label = Toimintaindikaattori
+toolbar-throbber =
+ .title = Toimintaindikaattori
+toolbar-create-address-book-label = Uusi osoitekirja
+toolbar-create-address-book =
+ .title = Luo uusi osoitekirja
+toolbar-import-contacts-label = Tuo
+
+## New Address Book popup items
+
+toolbar-new-address-book-popup-add-js-address-book =
+ .label = Lisää paikallinen osoitekirja
+toolbar-new-address-book-popup-add-carddav-address-book =
+ .label = Lisää CardDAV-osoitekirja
+toolbar-new-address-book-popup-add-ldap-address-book =
+ .label = Lisää LDAP-osoitekirja
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/viewSource.ftl b/thunderbird-l10n/fi/localization/fi/messenger/viewSource.ftl
new file mode 100644
index 0000000000..165964b481
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/messenger/viewSource.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+context-text-action-find =
+ .label = Etsi
+ .accesskey = F
+
+context-text-action-find-again =
+ .label = Etsi uudelleen
+ .accesskey = g
+
+text-action-find =
+ .label = Etsi
+ .accesskey = F
+
+text-action-find-again =
+ .label = Etsi uudelleen
+ .accesskey = g
diff --git a/thunderbird-l10n/fi/localization/fi/security/certificates/certManager.ftl b/thunderbird-l10n/fi/localization/fi/security/certificates/certManager.ftl
new file mode 100644
index 0000000000..a0c156f27f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/security/certificates/certManager.ftl
@@ -0,0 +1,228 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+certmgr-title =
+ .title = Varmenteiden hallinta
+
+certmgr-tab-mine =
+ .label = Omat varmenteet
+
+certmgr-tab-remembered =
+ .label = Todennuspäätökset
+
+certmgr-tab-people =
+ .label = Henkilöt
+
+certmgr-tab-servers =
+ .label = Palvelimet
+
+certmgr-tab-ca =
+ .label = Varmentajat
+
+certmgr-mine = Seuraavilta organisaatioilta on sinut todentava varmenne
+certmgr-remembered = Näitä varmenteita käytetään sinun todentamiseen sivustoille
+certmgr-people = Seuraavat yksilöt todentavia varmenteita on tiedossa
+certmgr-server = Nämä tietueet identifioivat palvelinvarmenteen virhepoikkeukset
+certmgr-ca = Seuraavat varmentajat todentavia varmenteita on tiedossa
+
+certmgr-edit-ca-cert2 =
+ .title = Muokkaa varmentajan varmenteen luotettavuusasetuksia
+ .style = min-width: 48em;
+
+certmgr-edit-cert-edit-trust = Muokkaa luotettavuusasetuksia:
+
+certmgr-edit-cert-trust-ssl =
+ .label = Tämä varmenne voi todentaa verkkosivustoja.
+
+certmgr-edit-cert-trust-email =
+ .label = Tämä varmenne voi todentaa sähköpostittajia.
+
+certmgr-delete-cert2 =
+ .title = Poista varmenne
+ .style = min-width: 48em; min-height: 24em;
+
+certmgr-cert-host =
+ .label = Palvelin
+
+certmgr-cert-name =
+ .label = Varmenteen nimi
+
+certmgr-cert-server =
+ .label = Palvelin
+
+certmgr-token-name =
+ .label = Turvallisuuslaite
+
+certmgr-begins-label =
+ .label = Astuu voimaan
+
+certmgr-expires-label =
+ .label = Vanhenee
+
+certmgr-email =
+ .label = Sähköpostiosoite
+
+certmgr-serial =
+ .label = Sarjanumero
+
+certmgr-fingerprint-sha-256 =
+ .label = SHA-256-sormenjälki
+
+certmgr-view =
+ .label = Näytä…
+ .accesskey = N
+
+certmgr-edit =
+ .label = Muokkaa luottamusta…
+ .accesskey = M
+
+certmgr-export =
+ .label = Vie…
+ .accesskey = V
+
+certmgr-delete =
+ .label = Poista…
+ .accesskey = P
+
+certmgr-delete-builtin =
+ .label = Poista tai älä luota…
+ .accesskey = o
+
+certmgr-backup =
+ .label = Varmuuskopioi…
+ .accesskey = V
+
+certmgr-backup-all =
+ .label = Varmuuskopioi kaikki…
+ .accesskey = a
+
+certmgr-restore =
+ .label = Tuo…
+ .accesskey = T
+
+certmgr-add-exception =
+ .label = Lisää poikkeus…
+ .accesskey = L
+
+exception-mgr =
+ .title = Lisää turvallisuuspoikkeus
+
+exception-mgr-extra-button =
+ .label = Vahvista turvallisuuspoikkeus
+ .accesskey = V
+
+exception-mgr-supplemental-warning = Luotettavat pankit, kaupat ja muut julkiset sivustot eivät pyydä sinua tekemään tätä.
+
+exception-mgr-cert-location-url =
+ .value = Osoite:
+
+exception-mgr-cert-location-download =
+ .label = Lataa varmenne
+ .accesskey = L
+
+exception-mgr-cert-status-view-cert =
+ .label = Näytä…
+ .accesskey = N
+
+exception-mgr-permanent =
+ .label = Tallenna poikkeus pysyvästi
+ .accesskey = T
+
+pk11-bad-password = Kirjoitettu salasana oli väärä.
+pkcs12-decode-err = Tiedoston purku epäonnistui. Joko se ei ole PKCS #12 -muodossa, se on viallinen, tai kirjoittamasi salasana oli väärä.
+pkcs12-unknown-err-restore = PKCS #12 -tiedoston palauttaminen epäonnistui tuntemattomasta syystä.
+pkcs12-unknown-err-backup = PKCS #12 -tiedoston varmuuskopiointi epäonnistui tuntemattomista syistä.
+pkcs12-unknown-err = PKCS #12 -toiminto epäonnistui tuntemattomista syistä.
+pkcs12-info-no-smartcard-backup = Varmenteiden varmuuskopioiminen turvalaitteelta, kuten älykortilta, ei ole mahdollista.
+pkcs12-dup-data = Varmenne ja salainen avain ovat jo olemassa tällä turvalaitteella.
+
+## PKCS#12 file dialogs
+
+choose-p12-backup-file-dialog = Varmuuskopioitavan tiedoston nimi
+file-browse-pkcs12-spec = PKCS12-tiedostot
+choose-p12-restore-file-dialog = Tuotava varmennetiedosto
+
+## Import certificate(s) file dialog
+
+file-browse-certificate-spec = Varmennetiedostot
+import-ca-certs-prompt = Valitse tiedosto, jossa on tuotavat varmentajien varmenteet
+import-email-cert-prompt = Valitse tiedosto, jossa on tuotava sähköpostivarmenne
+
+## For editing certificates trust
+
+# Variables:
+# $certName: the name of certificate
+edit-trust-ca = Varmenne { $certName } todentaa varmentajan.
+
+## For Deleting Certificates
+
+delete-user-cert-title =
+ .title = Omien varmenteiden poisto
+delete-user-cert-confirm = Poistetaanko nämä varmenteet?
+delete-user-cert-impact = Poistettua varmennetta ei voi enää käyttää itsensä todentamiseen.
+
+
+delete-ssl-override-title =
+ .title = Poista palvelinvarmenteen poikkeus
+delete-ssl-override-confirm = Haluatko varmasti poistaa tämän palvelinpoikkeuksen?
+delete-ssl-override-impact = Jos poistat palvelinpoikkeuksen, palautat palvelimen tavanomaiset suojaustarkistukset ja vaadit sen käyttävän kelvollista varmentetta.
+
+delete-ca-cert-title =
+ .title = Poista varmentajan varmenne tai luottamus siihen
+delete-ca-cert-confirm = Olet poistamassa näiden varmentajien varmenteita. Sisäänrakennettujen varmenteiden tapauksessa luottamus varmenteeseen poistetaan, joka on käytännössä sama kuin varmenteen poistaminen. Poistetaanko varmenteet tai luottamus niihin?
+delete-ca-cert-impact = Jos poistat varmentajan varmenteen tai luottamuksen siihen, tämä ohjelma ei enää luota yhteenkään tuon varmentajan myöntämään varmenteeseen.
+
+
+delete-email-cert-title =
+ .title = Poista sähköpostivarmenteet
+delete-email-cert-confirm = Poistetaanko nämä sähköpostivarmenteet?
+delete-email-cert-impact = Jos sähköpostivarmenne poistetaan, varmenteen kohteelle ei voi enää lähettää salattuja viestejä.
+
+# Used for semi-uniquely representing a cert.
+#
+# Variables:
+# $serialNumber : the serial number of the cert in AA:BB:CC hex format.
+cert-with-serial =
+ .value = Varmenne sarjanumerolla: { $serialNumber }
+
+# Used to indicate that the user chose not to send a client authentication certificate to a server that requested one in a TLS handshake.
+send-no-client-certificate = Älä lähetä asiakasvarmennetta
+
+# Used when no cert is stored for an override
+no-cert-stored-for-override = (Ei tallennettu)
+
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (Ei saatavilla)
+
+## Used to show whether an override is temporary or permanent
+
+permanent-override = Pysyvä
+temporary-override = Väliaikainen
+
+## Add Security Exception dialog
+
+add-exception-branded-warning = Olet muuttamassa { -brand-short-name }in tapaa todentaa tämä sivusto.
+add-exception-invalid-header = Sivusto yrittää todentaa itseään virheellisillä tiedoilla.
+add-exception-domain-mismatch-short = Väärä sivusto
+add-exception-domain-mismatch-long = Varmenne kuuluu toiselle sivustolle. Tämä voi olla tarkoittaa, että joku yrittää tekeytyä sivustoksi.
+add-exception-expired-short = Vanhentunutta tietoa
+add-exception-expired-long = Varmenne ei ole tällä hetkellä voimassa. Se on voinut hävitä tai se on voitu varastaa, ja joku voi käyttää sitä tekeytyäkseen täksi sivustoksi.
+add-exception-unverified-or-bad-signature-short = Tuntematon identiteetti
+add-exception-unverified-or-bad-signature-long = Varmenteeseen ei luoteta, koska yksikään luotettu varmentaja ei todenna sitä suojatulla allekirjoituksella.
+add-exception-valid-short = Voimassa oleva varmenne
+add-exception-valid-long = Sivustoon on liitetty todennettu, voimassa oleva identiteetti. Ei ole syytä asettaa poikkeusta.
+add-exception-checking-short = Tarkistetaan tietoja
+add-exception-checking-long = Yritetään todentaa sivustoa…
+add-exception-no-cert-short = Tietoja ei ole saatavilla
+add-exception-no-cert-long = Tunnistustietoja ei ollut saatavilla sivustolle.
+
+## Certificate export "Save as" and error dialogs
+
+save-cert-as = Tallenna varmenne tiedostoon
+cert-format-base64 = X.509-varmenne (PEM)
+cert-format-base64-chain = X.509-varmenne ketjulla (PEM)
+cert-format-der = X.509-varmenne (DER)
+cert-format-pkcs7 = X.509-varmenne (PKCS#7)
+cert-format-pkcs7-chain = X.509-varmenne ketjulla (PKCS#7)
+write-file-failure = Tiedostovirhe
diff --git a/thunderbird-l10n/fi/localization/fi/security/certificates/deviceManager.ftl b/thunderbird-l10n/fi/localization/fi/security/certificates/deviceManager.ftl
new file mode 100644
index 0000000000..25a37b316b
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/security/certificates/deviceManager.ftl
@@ -0,0 +1,133 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Strings used for device manager
+
+devmgr-window =
+ .title = Turvalaitteiden hallinta
+ .style = min-width: 67em; min-height: 32em;
+
+devmgr-devlist =
+ .label = Turvallisuusmoduulit ja -laitteet
+
+devmgr-header-details =
+ .label = Yksityiskohdat
+
+devmgr-header-value =
+ .label = Arvo
+
+devmgr-button-login =
+ .label = Kirjaudu sisään
+ .accesskey = K
+
+devmgr-button-logout =
+ .label = Kirjaudu ulos
+ .accesskey = i
+
+devmgr-button-changepw =
+ .label = Vaihda salasanaa
+ .accesskey = a
+
+devmgr-button-load =
+ .label = Lataa
+ .accesskey = L
+
+devmgr-button-unload =
+ .label = Poista
+ .accesskey = P
+
+devmgr-button-enable-fips =
+ .label = Ota FIPS käyttöön
+ .accesskey = F
+
+devmgr-button-disable-fips =
+ .label = Poista FIPS käytöstä
+ .accesskey = F
+
+## Strings used for load device
+
+load-device =
+ .title = Lataa PKCS#11-laiteajuri
+
+load-device-info = Kirjoita tiedot lisättävälle moduulille.
+
+load-device-modname =
+ .value = Moduulin nimi
+ .accesskey = M
+
+load-device-modname-default =
+ .value = Uusi PKCS#11-moduuli
+
+load-device-filename =
+ .value = Moduulin tiedostonimi
+ .accesskey = d
+
+load-device-browse =
+ .label = Selaa…
+ .accesskey = S
+
+## Token Manager
+
+devinfo-status =
+ .label = Tila
+
+devinfo-status-disabled =
+ .label = Ei käytössä
+
+devinfo-status-not-present =
+ .label = Ei paikalla
+
+devinfo-status-uninitialized =
+ .label = Alustamaton
+
+devinfo-status-not-logged-in =
+ .label = Ei kirjauduttu
+
+devinfo-status-logged-in =
+ .label = Kirjauduttu sisään
+
+devinfo-status-ready =
+ .label = Valmis
+
+devinfo-desc =
+ .label = Kuvaus
+
+devinfo-man-id =
+ .label = Valmistaja
+
+devinfo-hwversion =
+ .label = HW-versio
+devinfo-fwversion =
+ .label = FW-versio
+
+devinfo-modname =
+ .label = Moduuli
+
+devinfo-modpath =
+ .label = Polku
+
+login-failed = Sisäänkirjautuminen epäonnistui
+
+devinfo-label =
+ .label = Lomakkeen nimi
+
+devinfo-serialnum =
+ .label = Sarjanumero
+
+fips-nonempty-primary-password-required = FIPS-tila vaatii, että jokaiselle turvalaitteelle on asetettu pääsalasana. Aseta salasana ennen kuin yrität ottaa FIPS-tilaa käyttöön.
+unable-to-toggle-fips = FIPS-tilan vaihto turvalaitteelle ei onnistu. On suositeltavaa sulkea ja käynnistää tämä ohjelma uudelleen.
+load-pk11-module-file-picker-title = Valitse ladattava PKCS#11-laiteajuri
+
+# Load Module Dialog
+load-module-help-empty-module-name =
+ .value = Moduulin nimi ei voi olla tyhjä.
+
+# Do not translate 'Root Certs'
+load-module-help-root-certs-module-name =
+ .value = ”Root Certs” on varattu nimi eikä sitä voi käyttää moduulin nimenä.
+
+add-module-failure = Moduulin lisääminen ei onnistunut
+del-module-warning = Poistetaanko tämä turvallisuusmoduuli?
+del-module-error = Moduulin poistaminen ei onnistu
diff --git a/thunderbird-l10n/fi/localization/fi/security/pippki/pippki.ftl b/thunderbird-l10n/fi/localization/fi/security/pippki/pippki.ftl
new file mode 100644
index 0000000000..90c19ba1e5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/security/pippki/pippki.ftl
@@ -0,0 +1,103 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+password-quality-meter = Salasanan laadun mittari
+
+## Change Password dialog
+
+change-device-password-window =
+ .title = Vaihda salasana
+# Variables:
+# $tokenName (String) - Security device of the change password dialog
+change-password-token = Turvallisuuslaite: { $tokenName }
+change-password-old = Nykyinen salasana:
+change-password-new = Uusi salasana:
+change-password-reenter = Uusi salasana (uudestaan):
+pippki-failed-pw-change = Salasanaa ei voitu vaihtaa.
+pippki-incorrect-pw = Väärä salasana. Yritä uudestaan.
+pippki-pw-change-ok = Salasana vaihdettiin onnistuneesti.
+pippki-pw-empty-warning = Tallennettuja salasanoja ja salaisia avaimia ei suojata.
+pippki-pw-erased-ok = Salasana poistettiin. { pippki-pw-empty-warning }
+pippki-pw-not-wanted = Varoitus! Olet ottanut salasanan pois käytöstä. { pippki-pw-empty-warning }
+pippki-pw-change2empty-in-fips-mode = Olet parhaillaan FIPS-tilassa. FIPS edellyttää, että salasana ei ole tyhjä.
+
+## Reset Primary Password dialog
+
+reset-primary-password-window2 =
+ .title = Nollaa pääsalasana
+ .style = min-width: 40em
+reset-password-button-label =
+ .label = Poista
+reset-primary-password-text = Jos pääsalasana poistetaan, kaikki tallennetut sivusto- ja sähköpostisalasanat, henkilökohtaiset varmenteet ja salaiset avaimet unohdetaan. Poistetaanko pääsalasana?
+pippki-reset-password-confirmation-title = Nollaa pääsalasana
+pippki-reset-password-confirmation-message = Pääsalasanasi on nollattu.
+
+## Downloading cert dialog
+
+download-cert-window2 =
+ .title = Ladataan varmennetta
+ .style = min-width: 46em
+download-cert-message = Aseta uuden varmentajan luotettavuus.
+download-cert-trust-ssl =
+ .label = Sivustojen todentajana.
+download-cert-trust-email =
+ .label = Sähköpostien lähettäjien todentajana.
+download-cert-message-desc = Ennen kuin varmentaja lisätään yhdellekään luotettujen varmentajien listalle, tulisi sen varmenne, turvallisuuskäytännöt ja menettelytavat tarkistaa (jos ne ovat saatavilla).
+download-cert-view-cert =
+ .label = Näytä
+download-cert-view-text = Tarkastele varmentajan varmennetta
+
+## Client Authorization Ask dialog
+
+
+## Client Authentication Ask dialog
+
+client-auth-window =
+ .title = Käyttäjän todentamispyyntö
+client-auth-site-description = Sivusto pyytää sinua todentamaan itsesi varmenteella:
+client-auth-choose-cert = Valitse todentavana esitettävä varmenne:
+client-auth-send-no-certificate =
+ .label = Älä lähetä varmennetta
+# Variables:
+# $hostname (String) - The domain name of the site requesting the client authentication certificate
+client-auth-site-identification = "{ $hostname }" on pyytänyt sinua tunnistamaan itsesi varmenteella:
+client-auth-cert-details = Valitun varmenteen yksityiskohdat:
+# Variables:
+# $issuedTo (String) - The subject common name of the currently-selected client authentication certificate
+client-auth-cert-details-issued-to = Myönnetty: { $issuedTo }
+# Variables:
+# $serialNumber (String) - The serial number of the certificate (hexadecimal of the form "AA:BB:...")
+client-auth-cert-details-serial-number = Sarjanumero: { $serialNumber }
+# Variables:
+# $notBefore (String) - The date before which the certificate is not valid (e.g. Apr 21, 2023, 1:47:53 PM UTC)
+# $notAfter (String) - The date after which the certificate is not valid
+client-auth-cert-details-validity-period = Voimassa { $notBefore } – { $notAfter }
+# Variables:
+# $keyUsages (String) - A list of already-localized key usages for which the certificate may be used
+client-auth-cert-details-key-usages = Avaimen käyttötarkoitukset: { $keyUsages }
+# Variables:
+# $emailAddresses (String) - A list of email addresses present in the certificate
+client-auth-cert-details-email-addresses = Sähköpostiosoitteet: { $emailAddresses }
+# Variables:
+# $issuedBy (String) - The issuer common name of the certificate
+client-auth-cert-details-issued-by = Myöntäjä: { $issuedBy }
+# Variables:
+# $storedOn (String) - The name of the token holding the certificate (for example, "OS Client Cert Token (Modern)")
+client-auth-cert-details-stored-on = Tallennettu: { $storedOn }
+client-auth-cert-remember-box =
+ .label = Muista valinta
+
+## Set password (p12) dialog
+
+set-password-window =
+ .title = Valitse varmenteen varmuuskopion salasana
+set-password-message = Varmenteen varmuuskopion salasana suojaa varmuuskopiota, jota ollaan luomassa. Salasana täytyy asettaa varmuuskopiolle.
+set-password-backup-pw =
+ .value = Varmenteen varmuuskopion salasana:
+set-password-repeat-backup-pw =
+ .value = Varmenteen varmuuskopion salasana (uudelleen):
+set-password-reminder = Tärkeää: Jos varmenteen varmuuskopion salasana unohtuu, niin varmennetta ei voi palauttaa myöhemmin. Säilytä salasana turvallisessa paikassa.
+
+## Protected authentication alert
+
diff --git a/thunderbird-l10n/fi/localization/fi/services/accounts.ftl b/thunderbird-l10n/fi/localization/fi/services/accounts.ftl
new file mode 100644
index 0000000000..9bb83c715b
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/services/accounts.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $user (String): the user name (e.g. "Ed")
+# $system (String): the operating system (e.g. "Android")
+account-client-name = { $user }: { -brand-short-name } laitteella { $system }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAbout.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..cd9d2773ca
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAbout.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-about-title = Tietoja about-sivuista
+about-about-note =
+ Alla on lista käytettävissä olevista about-sivuista.<br/>
+ Osa sivuista voi olla sekavia ja osa on vain ongelmanratkaisutarkoituksiin.<br/>
+ Alla ei myöskään ole kaikkia about-sivuja, koska osa vaatii hakusanoja.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..f71652239c
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,492 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addons-page-title = Lisäosien hallinta
+search-header =
+ .placeholder = Etsi addons.mozilla.orgista
+ .searchbuttonlabel = Etsi
+
+## Variables
+## $domain - Domain name where add-ons are available (e.g. addons.mozilla.org)
+
+list-empty-get-extensions-message = Hanki laajennukset ja teemat osoitteesta <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-dictionaries-message = Hanki sanastot osoitteesta <a data-l10n-name="get-extensions">{ $domain }</a>
+list-empty-get-language-packs-message = Hanki kielipaketit osoitteesta <a data-l10n-name="get-extensions">{ $domain }</a>
+
+##
+
+list-empty-installed =
+ .value = Tämäntyyppisiä lisäosia ei ole asennettuna
+list-empty-available-updates =
+ .value = Päivityksiä ei löytynyt
+list-empty-recent-updates =
+ .value = Lisäosia ei ole päivitetty viime aikoina.
+list-empty-find-updates =
+ .label = Hae päivityksiä
+list-empty-button =
+ .label = Lue lisää lisäosista
+help-button = Lisäosien tuki
+sidebar-help-button-title =
+ .title = Lisäosien tuki
+addons-settings-button = { -brand-short-name }-asetukset
+sidebar-settings-button-title =
+ .title = { -brand-short-name }-asetukset
+show-unsigned-extensions-button =
+ .label = Joitain laajennuksia ei voitu varmentaa
+show-all-extensions-button =
+ .label = Näytä kaikki laajennukset
+detail-version =
+ .label = Versio
+detail-last-updated =
+ .label = Päivitetty viimeksi
+addon-detail-description-expand = Näytä lisää
+addon-detail-description-collapse = Näytä vähemmän
+detail-contributions-description = Tämän lisäosan kehittäjä toivoo, että tukisit lisäosan kehitystyötä pienellä summalla.
+detail-contributions-button = Auta
+ .title = Auta lisäosan kehitystyössä
+ .accesskey = A
+detail-update-type =
+ .value = Automaattinen päivitys
+detail-update-default =
+ .label = Oletus
+ .tooltiptext = Asenna päivitykset automaattisesti vain, jos se on oletusasetus
+detail-update-automatic =
+ .label = Käytössä
+ .tooltiptext = Asenna päivitykset automaattisesti
+detail-update-manual =
+ .label = Pois käytöstä
+ .tooltiptext = Älä asenna päivityksiä automaattisesti
+# Used as a description for the option to allow or block an add-on in private windows.
+detail-private-browsing-label = Suoritus yksityisissä ikkunoissa
+# Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest. This
+# cannot be overridden by the user.
+detail-private-disallowed-label = Ei sallittu yksityisissä ikkunoissa
+detail-private-disallowed-description2 = Tätä laajennusta ei suoriteta yksityisen selauksen aikana. <a data-l10n-name="learn-more">Lue lisää</a>
+# Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
+detail-private-required-label = Vaatii pääsyn yksityisiin ikkunoihin
+detail-private-required-description2 = Tällä laajennuksella on pääsy verkossa tekemiisi toimiin yksityisen selauksen aikana. <a data-l10n-name="learn-more">Lue lisää</a>
+detail-private-browsing-on =
+ .label = Salli
+ .tooltiptext = Ota käyttöön yksityisessä selauksessa
+detail-private-browsing-off =
+ .label = Älä salli
+ .tooltiptext = Poista käytöstä yksityisessä selauksessa
+detail-home =
+ .label = Kotisivu
+detail-home-value =
+ .value = { detail-home.label }
+detail-repository =
+ .label = Lisäosan profiili
+detail-repository-value =
+ .value = { detail-repository.label }
+detail-check-for-updates =
+ .label = Hae päivityksiä
+ .accesskey = H
+ .tooltiptext = Hae päivityksiä lisäosaan
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Asetukset
+ *[other] Asetukset
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] A
+ *[other] A
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Muokkaa tämän lisäosan asetuksia
+ *[other] Muokkaa tämän lisäosan asetuksia
+ }
+detail-rating =
+ .value = Arvostelu:
+addon-restart-now =
+ .label = Käynnistä uudelleen
+disabled-unsigned-heading =
+ .value = Jotkin lisäosat on poistettu käytöstä
+disabled-unsigned-description = Seuraavia lisäosia ei ole varmennettu käytettäväksi { -brand-short-name }issa. Voit <label data-l10n-name="find-addons">etsiä korvaavia lisäosia</label> tai pyytää kehittäjää varmentamaan ne.
+disabled-unsigned-learn-more = Lue lisää tavoista, joilla yritämme auttaa sinua pysymään turvassa verkossa.
+disabled-unsigned-devinfo = Kehittäjät, joita kiinnostaa lisäosansa varmentaminen, voivat lukea siitä <label data-l10n-name="learn-more">käsikirjastamme</label>.
+plugin-deprecation-description = Puuttuuko jotain? { -brand-short-name } ei enää tue joitain liitännäisiä. <label data-l10n-name="learn-more">Lue lisää.</label>
+legacy-warning-show-legacy = Näytä perinteiset laajennukset
+legacy-extensions =
+ .value = Perinteiset laajennukset
+legacy-extensions-description = Nämä laajennukset eivät täytä { -brand-short-name }in nykyisiä vaatimuksia, joten ne on poistettu käytöstä. <label data-l10n-name="legacy-learn-more">Lue lisää muutoksista lisäosiin</label>
+private-browsing-description2 =
+ { -brand-short-name }-laajennusten toiminta yksityisissä ikkunoissa muuttuu. Uutena { -brand-short-name }iin lisättyjä laajennuksia ei enää suoriteta oletuksena yksityisissä ikkunoissa. Jos et salli suorittamista asetuksista, laajennus ei toimi yksityisen selaamisen aikana eikä siten sinä aikana pääse käsiksi tekemisiisi verkossa. Olemme tehneet tämän muutoksen, jotta yksityinen selaus pysyy yksityisenä.
+ <label data-l10n-name="private-browsing-learn-more">Lue lisää kuinka hallita laajennusten asetuksia</label>
+addon-category-discover = Suositukset
+addon-category-discover-title =
+ .title = Suositukset
+addon-category-extension = Laajennukset
+addon-category-extension-title =
+ .title = Laajennukset
+addon-category-theme = Teemat
+addon-category-theme-title =
+ .title = Teemat
+addon-category-plugin = Liitännäiset
+addon-category-plugin-title =
+ .title = Liitännäiset
+addon-category-dictionary = Oikoluvut
+addon-category-dictionary-title =
+ .title = Oikoluvut
+addon-category-locale = Kielet
+addon-category-locale-title =
+ .title = Kielet
+addon-category-available-updates = Päivitykset
+addon-category-available-updates-title =
+ .title = Päivitykset
+addon-category-recent-updates = Tuoreet päivitykset
+addon-category-recent-updates-title =
+ .title = Tuoreet päivitykset
+addon-category-sitepermission = Sivuston käyttöoikeudet
+addon-category-sitepermission-title =
+ .title = Sivuston käyttöoikeudet
+# String displayed in about:addons in the Site Permissions section
+# Variables:
+# $host (string) - DNS host name for which the webextension enables permissions
+addon-sitepermission-host = Sivuston { $host } oikeudet
+
+## These are global warnings
+
+extensions-warning-safe-mode = Kaikki lisäosat on poistettu käytöstä vikasietotilassa.
+extensions-warning-check-compatibility = Lisäosien yhteensopivuuden tarkistus ei ole käytössä. Osa lisäosista voi olla epäyhteensopivia.
+extensions-warning-safe-mode2 =
+ .message = Kaikki lisäosat on poistettu käytöstä vikasietotilassa.
+extensions-warning-check-compatibility2 =
+ .message = Lisäosien yhteensopivuuden tarkistus ei ole käytössä. Osa lisäosista voi olla epäyhteensopivia.
+extensions-warning-check-compatibility-button = Ota käyttöön
+ .title = Ota lisäosien yhteensopivuuden tarkistus käyttöön
+extensions-warning-update-security = Lisäosien päivitysten turvallisuustarkistus ei ole käytössä. Päivitykset voivat saastuttaa koneesi.
+extensions-warning-update-security2 =
+ .message = Lisäosien päivitysten turvallisuustarkistus ei ole käytössä. Päivitykset voivat saastuttaa koneesi.
+extensions-warning-update-security-button = Ota käyttöön
+ .title = Ota lisäosien päivitysten turvallisuustarkistus käyttöön
+extensions-warning-imported-addons2 =
+ .message = Viimeistele { -brand-short-name }iin tuotujen laajennusten asennus.
+extensions-warning-imported-addons-button = Asenna laajennukset
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Hae päivityksiä
+ .accesskey = H
+addon-updates-view-updates = Näytä tuoreet päivitykset
+ .accesskey = N
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Päivitä lisäosat automaattisesti
+ .accesskey = u
+
+## Specific add-ons can have custom update checking behaviors ("Manually",
+## "Automatically", "Use default global behavior"). These menu items reset the
+## update checking behavior for all add-ons to the default global behavior
+## (which itself is either "Automatically" or "Manually", controlled by the
+## extensions-updates-update-addons-automatically.label menu item).
+
+addon-updates-reset-updates-to-automatic = Aseta kaikki lisäosat päivittymään automaattisesti
+ .accesskey = P
+addon-updates-reset-updates-to-manual = Aseta kaikki lisäosat päivittymään vain käsin
+ .accesskey = k
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = Päivitetään lisäosia
+addon-updates-installed = Lisäosat on päivitetty.
+addon-updates-none-found = Päivityksiä ei löytynyt
+addon-updates-manual-updates-found = Näytä saatavilla olevat päivitykset
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Asenna lisäosa tiedostosta…
+ .accesskey = A
+addon-install-from-file-dialog-title = Valitse asennettava lisäosa
+addon-install-from-file-filter-name = Lisäosat
+addon-open-about-debugging = Jäljitä lisäosien virheitä
+ .accesskey = J
+
+## Extension shortcut management
+
+# This is displayed in the page options menu
+addon-manage-extensions-shortcuts = Hallitse laajennusten pikanäppäimiä
+ .accesskey = t
+shortcuts-no-addons = Yhtäkään laajennusta ei ole otettu käyttöön.
+shortcuts-no-commands = Seuraavilla laajennuksilla ei ole pikanäppäimiä:
+shortcuts-input =
+ .placeholder = Kirjoita näppäinyhdistelmä
+shortcuts-browserAction2 = Aktivoi työkalupalkin painike
+shortcuts-pageAction = Aktivoi sivutoiminto
+shortcuts-sidebarAction = Näytä/piilota sivupaneeli
+shortcuts-modifier-mac = Paina Ctrl-, Alt- tai ⌘-näppäintä
+shortcuts-modifier-other = Paina Ctrl- tai Alt-näppäintä
+shortcuts-invalid = Virheellinen yhdistelmä
+shortcuts-letter = Kirjoita kirjain
+shortcuts-system = { -brand-short-name }-pikanäppäintä ei voi korvata
+# String displayed in warning label when there is a duplicate shortcut
+shortcuts-duplicate = Päällekkäinen pikanäppäin
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message = { $shortcut } on käytössä pikanäppäimenä enemmän kuin yhdessä tapauksessa. Päällekkäiset pikanäppäimet saattavat aiheuttaa odottamatonta käytöstä.
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message2 =
+ .message = { $shortcut } on käytössä pikanäppäimenä enemmän kuin yhdessä tapauksessa. Päällekkäiset pikanäppäimet saattavat aiheuttaa odottamatonta käytöstä.
+# String displayed when a keyboard shortcut is already used by another add-on
+# Variables:
+# $addon (string) - Name of the add-on
+shortcuts-exists = { $addon } käyttää tätä jo
+# Variables:
+# $numberToShow (number) - Number of other elements available to show
+shortcuts-card-expand-button =
+ { $numberToShow ->
+ [one] Näytä { $numberToShow } lisää
+ *[other] Näytä { $numberToShow } lisää
+ }
+shortcuts-card-collapse-button = Näytä vähemmän
+header-back-button =
+ .title = Takaisin
+
+## Recommended add-ons page
+
+# Explanatory introduction to the list of recommended add-ons. The action word
+# ("recommends") in the final sentence is a link to external documentation.
+discopane-intro =
+ Laajennukset ja teemat ovat kuin sovelluksia selaimessa. Ne voivat suojata salasanojasi,
+ ladata videoita, löytää hyviä tarjouksia, estää ärsyttäviä mainoksia, muuttaa
+ selaimen ulkoasua ja paljon muuta. Nämä pienet ohjelmat ovat usein kolmansien
+ osapuolten kehittämiä. Tässä on valikoima { -brand-product-name }in
+ <a data-l10n-name="learn-more-trigger">suosittelemia</a> laajennuksia
+ tietoturvan, suorituskyvyn ja toiminnallisuuden parantamiseksi.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations =
+ Jotkin näistä suosituksista ovat henkilökohtaisia. Suositukset pohjautuvat
+ muihin asentamiisi laajennuksiin, profiiliasetuksiin ja käyttötilastoihin.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations2 =
+ .message =
+ Jotkin näistä suosituksista ovat henkilökohtaisia. Suositukset pohjautuvat
+ muihin asentamiisi laajennuksiin, profiiliasetuksiin ja käyttötilastoihin.
+discopane-notice-learn-more = Lue lisää
+privacy-policy = Tietosuojaseloste
+# Refers to the author of an add-on, shown below the name of the add-on.
+# Variables:
+# $author (string) - The name of the add-on developer.
+created-by-author = Tekijä: <a data-l10n-name="author">{ $author }</a>
+# Shows the number of daily users of the add-on.
+# Variables:
+# $dailyUsers (number) - The number of daily users.
+user-count = Käyttäjiä: { $dailyUsers }
+install-extension-button = Lisää { -brand-product-name }iin
+install-theme-button = Asenna teema
+# The label of the button that appears after installing an add-on. Upon click,
+# the detailed add-on view is opened, from where the add-on can be managed.
+manage-addon-button = Hallitse
+find-more-addons = Etsi lisää lisäosia
+find-more-themes = Etsi lisää teemoja
+# This is a label for the button to open the "more options" menu, it is only
+# used for screen readers.
+addon-options-button =
+ .aria-label = Lisää valintoja
+
+## Add-on actions
+
+report-addon-button = Raportoi
+remove-addon-button = Poista
+# The link will always be shown after the other text.
+remove-addon-disabled-button = Tätä ei voi poistaa <a data-l10n-name="link">Miksi?</a>
+disable-addon-button = Poista käytöstä
+enable-addon-button = Käytä
+# This is used for the toggle on the extension card, it's a checkbox and this
+# is always its label.
+extension-enable-addon-button-label =
+ .aria-label = Ota käyttöön
+preferences-addon-button = Asetukset
+details-addon-button = Tiedot
+release-notes-addon-button = Julkaisutiedot
+permissions-addon-button = Oikeudet
+extension-enabled-heading = Käytössä
+extension-disabled-heading = Ei käytössä
+theme-enabled-heading = Käytössä
+theme-disabled-heading2 = Tallennetut teemat
+plugin-enabled-heading = Käytössä
+plugin-disabled-heading = Ei käytössä
+dictionary-enabled-heading = Käytössä
+dictionary-disabled-heading = Ei käytössä
+locale-enabled-heading = Käytössä
+locale-disabled-heading = Ei käytössä
+sitepermission-enabled-heading = Käytössä
+sitepermission-disabled-heading = Pois käytöstä
+always-activate-button = Aktivoi aina
+never-activate-button = Älä koskaan aktivoi
+addon-detail-author-label = Tekijä
+addon-detail-version-label = Versio
+addon-detail-last-updated-label = Päivitetty viimeksi
+addon-detail-homepage-label = Kotisivu
+addon-detail-rating-label = Arvostelu
+# Message for add-ons with a staged pending update.
+install-postponed-message = Tämä laajennus päivitetään, kun { -brand-short-name } käynnistyy uudelleen.
+# Message for add-ons with a staged pending update.
+install-postponed-message2 =
+ .message = Tämä laajennus päivitetään, kun { -brand-short-name } käynnistyy uudelleen.
+install-postponed-button = Päivitä nyt
+# The average rating that the add-on has received.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+five-star-rating =
+ .title = Arvostelu { NUMBER($rating, maximumFractionDigits: 1) }/5
+# This string is used to show that an add-on is disabled.
+# Variables:
+# $name (string) - The name of the add-on
+addon-name-disabled = { $name } (ei käytössä)
+# The number of reviews that an add-on has received on AMO.
+# Variables:
+# $numberOfReviews (number) - The number of reviews received
+addon-detail-reviews-link =
+ { $numberOfReviews ->
+ [one] { $numberOfReviews } arvio
+ *[other] { $numberOfReviews } arviota
+ }
+
+## Pending uninstall message bar
+
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> on poistettu.
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description2 =
+ .message = { $addon } on poistettu.
+pending-uninstall-undo-button = Kumoa
+addon-detail-updates-label = Automaattiset päivitykset
+addon-detail-updates-radio-default = Oletus
+addon-detail-updates-radio-on = Käytössä
+addon-detail-updates-radio-off = Ei käytössä
+addon-detail-update-check-label = Tarkista päivitykset
+install-update-button = Päivitä
+# aria-label associated to the updates row to help screen readers to announce the group
+# of input controls being entered.
+addon-detail-group-label-updates =
+ .aria-label = { addon-detail-updates-label }
+# This is the tooltip text for the private browsing badge in about:addons. The
+# badge is the private browsing icon included next to the extension's name.
+addon-badge-private-browsing-allowed2 =
+ .title = Sallittu yksityisissä ikkunnoissa
+ .aria-label = { addon-badge-private-browsing-allowed2.title }
+addon-detail-private-browsing-help = Kun sallittu, laajennus voi seurata, mitä teet verkossa yksityisen selauksen tilassa. <a data-l10n-name="learn-more">Lue lisää</a>
+addon-detail-private-browsing-allow = Salli
+addon-detail-private-browsing-disallow = Älä salli
+# aria-label associated to the private browsing row to help screen readers to announce the group
+# of input controls being entered.
+addon-detail-group-label-private-browsing =
+ .aria-label = { detail-private-browsing-label }
+
+## "sites with restrictions" (internally called "quarantined") are special domains
+## where add-ons are normally blocked for security reasons.
+
+# Used as a description for the option to allow or block an add-on on quarantined domains.
+addon-detail-quarantined-domains-label = Suorita sivustoilla, joilla on rajoituksia
+# Used as help text part of the quarantined domains UI controls row.
+addon-detail-quarantined-domains-help = Kun sallittu, laajennuksella on pääsy sivustoille, joita { -vendor-short-name } rajoittaa. Salli vain, jos luotat tähän laajennukseen.
+# Used as label and tooltip text on the radio inputs associated to the quarantined domains UI controls.
+addon-detail-quarantined-domains-allow = Salli
+addon-detail-quarantined-domains-disallow = Älä salli
+# aria-label associated to the quarantined domains exempt row to help screen readers to announce the group.
+addon-detail-group-label-quarantined-domains =
+ .aria-label = { addon-detail-quarantined-domains-label }
+
+## This is the tooltip text for the recommended badges for an extension in about:addons. The
+## badge is a small icon displayed next to an extension when it is recommended on AMO.
+
+addon-badge-recommended2 =
+ .title = { -brand-product-name } suosittelee vain laajennuksia, jotka täyttävät standardimme turvallisuuden ja suorituskyvyn suhteen
+ .aria-label = { addon-badge-recommended2.title }
+# We hard code "Mozilla" in the string below because the extensions are built
+# by Mozilla and we don't want forks to display "by Fork".
+addon-badge-line3 =
+ .title = Virallinen laajennus, jonka on toteuttanut Mozilla. Täyttää turvallisuus- ja suorituskykystandardit.
+ .aria-label = { addon-badge-line3.title }
+addon-badge-verified2 =
+ .title = Tämä laajennnus on katselmoitu, ja se täyttää standardimme turvallisuuden ja suorituskyvyn suhteen.
+ .aria-label = { addon-badge-verified2.title }
+
+##
+
+available-updates-heading = Saatavilla olevat päivitykset
+recent-updates-heading = Tuoreet päivitykset
+release-notes-loading = Ladataan…
+release-notes-error = Julkaisutietojen lataaminen epäonnistui.
+addon-permissions-empty = Tämä laajennus ei vaadi mitään oikeuksia
+addon-permissions-required = Vaaditut käyttöoikeudet ydintoiminnoille:
+addon-permissions-optional = Valinnaiset käyttöoikeudet lisätoiminnoille:
+addon-permissions-learnmore = Lue lisää käyttöoikeuksista
+recommended-extensions-heading = Suositellut laajennukset
+recommended-themes-heading = Suositellut teemat
+# Variables:
+# $hostname (string) - Host where the permissions are granted
+addon-sitepermissions-required = Antaa seuraavat ominaisuudet sivustolle <span data-l10n-name="hostname">{ $hostname }</span>:
+# A recommendation for the Firefox Color theme shown at the bottom of the theme
+# list view. The "Firefox Color" name itself should not be translated.
+recommended-theme-1 = Haluatko kokeilla itse? <a data-l10n-name="link">Voit luoda oman teeman Firefox Color -ohjelmalla.</a>
+
+## Page headings
+
+extension-heading = Laajennusten hallinta
+theme-heading = Teemojen hallinta
+plugin-heading = Liitännäisten hallinta
+dictionary-heading = Sanastojen hallinta
+locale-heading = Kielten hallinta
+updates-heading = Päivitysten hallinta
+sitepermission-heading = Hallitse sivustojen oikeuksia
+discover-heading = Tee { -brand-short-name }ista mieleisesi
+shortcuts-heading = Laajennusten pikanäppäinten hallinta
+default-heading-search-label = Etsi lisää lisäosia
+addons-heading-search-input =
+ .placeholder = Etsi addons.mozilla.org-sivustolta
+addon-page-options-button =
+ .title = Työkaluja kaikille lisäosille
+
+## Detail notifications
+## Variables:
+## $name (string) - Name of the add-on.
+
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible = Lisäosa { $name } on epäyhteensopiva { -brand-short-name }in version { $version } kanssa.
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible2 =
+ .message = Lisäosa { $name } on epäyhteensopiva { -brand-short-name }in version { $version } kanssa.
+details-notification-incompatible-link = Lisätietoja
+details-notification-unsigned-and-disabled = Lisäosaa { $name } ei ole varmennettu käytettäväksi { -brand-short-name }issa ja on otettu pois päältä.
+details-notification-unsigned-and-disabled2 =
+ .message = Lisäosaa { $name } ei ole varmennettu käytettäväksi { -brand-short-name }issa ja on otettu pois päältä.
+details-notification-unsigned-and-disabled-link = Lisätietoja
+details-notification-unsigned = Lisäosaa { $name } ei ole varmennettu käytettäväksi { -brand-short-name }issa. Ole varovainen.
+details-notification-unsigned2 =
+ .message = Lisäosaa { $name } ei ole varmennettu käytettäväksi { -brand-short-name }issa. Ole varovainen.
+details-notification-unsigned-link = Lisätietoja
+details-notification-blocked = Lisäosa { $name } poistettiin käytöstä turvallisuus- tai vakausongelmien takia.
+details-notification-blocked2 =
+ .message = Lisäosa { $name } poistettiin käytöstä turvallisuus- tai vakausongelmien takia.
+details-notification-blocked-link = Lisätietoja
+details-notification-softblocked = Lisäosa { $name } aiheuttaa tunnetusti turvallisuus- tai vakausongelmia.
+details-notification-softblocked2 =
+ .message = Lisäosa { $name } aiheuttaa tunnetusti turvallisuus- tai vakausongelmia.
+details-notification-softblocked-link = Lisätietoja
+details-notification-gmp-pending = { $name } asennetaan kohta.
+details-notification-gmp-pending2 =
+ .message = { $name } asennetaan kohta.
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Lisenssitiedot
+plugins-gmp-privacy-info = Tietosuojatiedot
+plugins-openh264-name = OpenH264 Video Codec, toimittaja Cisco Systems, Inc.
+plugins-openh264-description = Mozilla asensi tämän liitännäisen automaattisesti WebRTC-rajapinnan määritelmän mukaisesti ja jotta WebRTC-puhelut olisivat mahdollisia laitteisiin, jotka vaativat H.264-videokoodekin. Lue lisää koodekin toteutustavasta ja tarkastele lähdekoodia osoitteesta http://www.openh264.org/.
+plugins-widevine-name = Widevine Content Decryption Module, toimittaja Google Inc.
+plugins-widevine-description = Tämä liitännäinen mahdollistaa Encrypted Media Extensions -määrittelyn mukaisen salatun sisällön toistamisen. Sivustot käyttävät salattua mediasisältöä tyypillisesti estämään maksullisen sisällön kopiointi. Lue lisää Encrypted Media Extensions -määrittelystä osoitteessa https://www.w3.org/TR/encrypted-media/.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutCompat.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..82fcf02600
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutCompat.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+label-disable = Poista käytöstä
+label-enable = Ota käyttöön
+label-interventions = Väliintulot
+label-more-information = Lisätietoja: Vika { $bug }
+label-overrides = Selaintunnisteen korvaukset
+text-disabled-in-about-config = Tämä ominaisuus on poistettu käytöstä about:config-sivulla
+text-no-interventions = Väliintuloja ei ole käytössä
+text-no-overrides = Selaintunnisteen korvauksia ei ole käytössä
+text-title = about:compat
+
+## Do not translate "SmartBlock". For reference, SmartBlock is a feature
+## of Firefox anti-tracking which fixes website breakage caused when
+## trackers are blocked, by acting just enough like those trackers to fix the
+## breakage. SmartBlock also contains special fixes for sites broken by
+## Firefox's Total Cookie Protection feature.
+
+label-smartblock = SmartBlock-korjaukset
+text-no-smartblock = SmartBlock-korjauksia ei ole käytössä
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..cae8874250
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutGlean.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### "FOG", "Glean", and "Glean SDK" should remain in English.
+
+-glean-brand-name = Glean
+glean-sdk-brand-name = { -glean-brand-name } SDK
+# Variables:
+# $local-port-pref-value (Integer): the value of the telemetry.fog.test.localhost_port pref. Typically 0. Can be negative.
+# Do not translate strings between <code> </code> tags.
+about-glean-local-port = <code>telemetry.fog.test.localhost_port</code>: { $local-port-pref-value }
+# Variables:
+# $glean-android-define-value (Boolean): the value of the MOZ_GLEAN_ANDROID define. Typically "false", sometimes "true".
+# Do not translate strings between <code> </code> tags.
+about-glean-glean-android = <code>MOZ_GLEAN_ANDROID</code>: { $glean-android-define-value }
+# Variables:
+# $moz-official-define-value (Boolean): the value of the MOZILLA_OFFICIAL define.
+# Do not translate strings between <code> </code> tags.
+about-glean-moz-official = <code>MOZILLA_OFFICIAL</code>: { $moz-official-define-value }
+controls-button-label-verbose = Ota asetukset käyttöön ja lähetä ping
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutHttpsOnlyError.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..eec67c02e8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutHttpsOnlyError.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-httpsonly-title-alert = Vain HTTPS -tilan varoitus
+about-httpsonly-title-site-not-available = Suojattu sivusto ei saatavilla
+
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable2 = Olet ottanut käyttöön Vain HTTPS -tilan turvallisuuden parantamiseksi, mutta HTTPS-versiota sivustosta <em>{ $websiteUrl }</em> ei ole käytettävissä.
+about-httpsonly-explanation-question = Mistä tämä johtuu?
+about-httpsonly-explanation-nosupport = Todennäköisesti sivusto ei tue HTTPS:ää.
+about-httpsonly-explanation-risk = On myös mahdollista, että takana on hyökkääjä. Jos päätät vierailla sivustolla, sivustolle ei pitäisi kirjoittaa arkaluonteisia tietoja, kuten salasanoja, sähköpostiosoitteita tai luottokorttitietoja.
+about-httpsonly-explanation-continue = Jos jatkat, Vain HTTPS -tila poistetaan käytöstä väliaikaisesti tämän sivuston kohdalla.
+
+about-httpsonly-button-continue-to-site = Jatka HTTP-sivustolle
+about-httpsonly-button-go-back = Palaa takaisin
+about-httpsonly-link-learn-more = Lue lisää…
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loded with these alternatives. Example: example.com
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loaded with these alternatives. Example: example.com
+
+about-httpsonly-suggestion-box-header = Mahdollinen vaihtoehto
+about-httpsonly-suggestion-box-www-text = Sivustosta <em>www.{ $websiteUrl }</em> on tarjolla suojattu versio. Voit käydä kyseisellä sivulla sivun <em>{ $websiteUrl }</em> sijaan.
+about-httpsonly-suggestion-box-www-button = Siirry osoitteeseen www.{ $websiteUrl }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutLogging.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutLogging.ftl
new file mode 100644
index 0000000000..b350dfef92
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutLogging.ftl
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This is the title of the page
+about-logging-title = Tietoja lokituksesta
+about-logging-page-title = Lokihallinta
+about-logging-current-log-file = Nykyinen lokitiedosto:
+about-logging-new-log-file = Uusi lokitiedosto:
+about-logging-currently-enabled-log-modules = Tällä hetkellä käytössä olevat lokimoduulit:
+about-logging-log-tutorial =
+ Katso <a data-l10n-name="logging">HTTP Logging</a>
+ saadaksesi ohjeita tämän työkalun käyttöön.
+# This message is used as a button label, "Open" indicates an action.
+about-logging-open-log-file-dir = Avaa kansio
+about-logging-set-log-file = Aseta lokitiedosto
+about-logging-set-log-modules = Aseta lokitusmoduulit
+about-logging-start-logging = Aloita lokitus
+about-logging-stop-logging = Pysäytä lokitus
+about-logging-buttons-disabled = Lokitus määritetty ympäristömuuttujien kautta, dynaaminen määritys ei ole käytettävissä.
+about-logging-some-elements-disabled = Lokitus määritetty URL-osoitteen kautta, jotkin määritysvaihtoehdot eivät ole käytettävissä
+about-logging-log-modules-selection = Lokimoduulin valinta
+about-logging-new-log-modules = Uudet lokimoduulit:
+about-logging-logging-to-file = Lokitetaan tiedostoon
+about-logging-logging-preset-selector-text = Lokituksen esiasetus:
+
+## Logging presets
+
+about-logging-preset-networking-label = Verkko
+about-logging-preset-networking-http3-label = HTTP/3
+about-logging-preset-media-playback-label = Median toisto
+about-logging-preset-webrtc-label = WebRTC
+about-logging-preset-webgpu-label = WebGPU
+about-logging-preset-gfx-label = Grafiikka
+# Error handling
+about-logging-error = Virhe:
+
+## Variables:
+## $k (String) - Variable name
+## $v (String) - Variable value
+
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutMozilla.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..a5022fffb7
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutMozilla.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-mozilla-title-6-27 = Mozillan kirja, 6:27
+about-mozilla-quote-6-27 =
+ Peto jatkoi opintojaan uudella <em>painopisteellä</em>, rakennellen suuria <em>mallitöitä</em>
+ ja mietiskellen uusia <em>todellisuuksia</em>. Peto kutsui koolle seuraajansa ja apurinsa
+ luomaan uuden, pienemmän version itsestään, ja lähetti sen sitten maailmalle
+ <em>ilkikurisin</em> keinoin.
+about-mozilla-from-6-27 = <strong>Mozillan kirjasta</strong> 6:27
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..06aa5b899f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl
@@ -0,0 +1,68 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-networking-title = About Networking
+about-networking-http = HTTP
+about-networking-sockets = Sockets
+about-networking-dns = DNS
+about-networking-dns-clear-cache-button = Clear DNS Cache
+about-networking-dns-trr-url = DoH URL
+about-networking-dns-trr-mode = DoH Mode
+about-networking-dns-suffix = DNS suffix
+about-networking-websockets = WebSockets
+about-networking-refresh = Refresh
+about-networking-auto-refresh = Autorefresh every 3 seconds
+about-networking-hostname = Hostname
+about-networking-port = Port
+about-networking-http-version = HTTP Version
+about-networking-ssl = SSL
+about-networking-active = Active
+about-networking-idle = Idle
+about-networking-host = Host
+about-networking-type = Type
+about-networking-sent = Sent
+about-networking-received = Received
+about-networking-family = Family
+about-networking-trr = TRR
+about-networking-addresses = Addresses
+about-networking-expires = Expires (Seconds)
+about-networking-originAttributesSuffix = Isolation Key
+about-networking-flags = Extra flags
+about-networking-messages-sent = Messages Sent
+about-networking-messages-received = Messages Received
+about-networking-bytes-sent = Bytes Sent
+about-networking-bytes-received = Bytes Received
+about-networking-logging = Logging
+about-networking-dns-lookup = DNS Lookup
+about-networking-dns-lookup-button = Resolve
+about-networking-dns-domain = Domain:
+about-networking-dns-lookup-table-column = IPs
+about-networking-dns-https-rr-lookup-table-column = HTTP RRs
+about-networking-rcwn = RCWN Stats
+about-networking-rcwn-status = RCWN Status
+about-networking-rcwn-cache-won-count = Cache won count
+about-networking-rcwn-net-won-count = Net won count
+about-networking-total-network-requests = Total network request count
+about-networking-rcwn-operation = Cache Operation
+about-networking-rcwn-perf-open = Open
+about-networking-rcwn-perf-read = Read
+about-networking-rcwn-perf-write = Write
+about-networking-rcwn-perf-entry-open = Entry Open
+about-networking-rcwn-avg-short = Short Average
+about-networking-rcwn-avg-long = Long Average
+about-networking-rcwn-std-dev-long = Long Standard Deviation
+about-networking-rcwn-cache-slow = Cache slow count
+about-networking-rcwn-cache-not-slow = Cache not slow count
+about-networking-networkid = Network ID
+about-networking-networkid-id = Network ID
+# Note: do not translate about:logging, as it is a URL.
+about-networking-moved-about-logging = Tämä sivu on siirretty osoitteeseen <a data-l10n-name="about-logging-url">about:logging</a>.
+
+## Link is intended as "network link"
+
+about-networking-networkid-is-up = Link is up
+about-networking-networkid-status-known = Link status is known
+
+##
+
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPerformance.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..22a8265be5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPerformance.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-performance-title = Tehtävienhallinta
+
+## Column headers
+
+column-name = Nimi
+column-type = Tyyppi
+column-energy-impact = Energiavaikutus
+column-memory = Muisti
+
+## Special values for the Name column
+
+ghost-windows = Suljetut välilehdet
+# Variables:
+# $title (String) - the title of the preloaded page, typically 'New Tab'
+preloaded-tab = Esiladattu: { $title }
+
+## Values for the Type column
+
+type-tab = Välilehti
+type-subframe = Alikehys
+type-tracker = Seurain
+type-addon = Lisäosa
+type-browser = Selain
+type-worker = Työsäie
+type-other = Muu
+
+## Values for the Energy Impact column
+##
+## Variables:
+## $value (Number) - Value of the energy impact, eg. 0.25 (low),
+## 5.38 (medium), 105.38 (high)
+
+energy-impact-high = Suuri ({ $value })
+energy-impact-medium = Kohtalainen ({ $value })
+energy-impact-low = Pieni ({ $value })
+
+## Values for the Memory column
+##
+## Variables:
+## $value (Number) - How much memory is used
+
+size-KB = { $value } kt
+size-MB = { $value } Mt
+size-GB = { $value } Gt
+
+## Tooltips for the action buttons
+
+close-tab =
+ .title = Sulje välilehti
+show-addon =
+ .title = Näytä lisäosien hallinnassa
+
+# Tooltip when hovering an item of the about:performance table
+# Variables:
+# $totalDispatches (Number) - how many dispatches occured for this page since it loaded
+# $totalDuration (Number) - how much CPU time was used by this page since it loaded
+# $dispatchesSincePrevious (Number) - how many dispatches occured in the last 2 seconds
+# $durationSincePrevious (Number) - how much CPU time was used in the last 2 seconds
+item =
+ .title =
+ Suoritinkäyttö latautumisesta lähtien: { $totalDispatches } ({ $totalDuration } ms)
+ Suoritinkäyttö viime sekuntien aikana: { $dispatchesSincePrevious } ({ $durationSincePrevious } ms)
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPlugins.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..1bad12bb44
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutPlugins.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title-label = Tietoja liitännäisistä
+installed-plugins-label = Asennetut liitännäiset
+no-plugins-are-installed-label = Ei löytynyt yhtään asennettua liitännäistä
+deprecation-description = Puuttuuko jotain? Joitain liitännäisiä ei enää tueta. <a data-l10n-name="deprecation-link">Lue lisää.</a>
+deprecation-description2 =
+ .message = Puuttuuko jotain? Joitain liitännäisiä ei enää tueta.
+
+## The information of plugins
+##
+## Variables:
+## $pluginLibraries: the plugin library
+## $pluginFullPath: path of the plugin
+## $version: version of the plugin
+
+file-dd = <span data-l10n-name="file">Tiedosto:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Polku:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Versio:</span> { $version }
+
+## These strings describe the state of plugins
+##
+## Variables:
+## $blockListState: show some special state of the plugin, such as blocked, outdated
+
+state-dd-enabled = <span data-l10n-name="state">Tila:</span> Käytössä
+state-dd-enabled-block-list-state = <span data-l10n-name="state">Tila:</span> Käytössä ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">Tila:</span> Pois käytöstä
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">Tila:</span> Pois käytöstä ({ $blockListState })
+mime-type-label = MIME-tyyppi
+description-label = Kuvaus
+suffixes-label = Päätteet
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = Lisenssitiedot
+plugins-gmp-privacy-info = Tietosuojatiedot
+plugins-openh264-name = OpenH264 Video Codec, toimittaja Cisco Systems, Inc.
+plugins-openh264-description = Mozilla asensi tämän liitännäisen automaattisesti WebRTC-rajapinnan määritelmän mukaisesti ja jotta WebRTC-puhelut olisivat mahdollisia laitteisiin, jotka vaativat H.264-videokoodekin. Lue lisää koodekin toteutustavasta ja tarkastele lähdekoodia osoitteesta http://www.openh264.org/.
+plugins-widevine-name = Widevine Content Decryption Module, toimittaja Google Inc.
+plugins-widevine-description = Tämä liitännäinen mahdollistaa Encrypted Media Extensions -määrittelyn mukaisen salatun sisällön toistamisen. Sivustot käyttävät salattua mediasisältöä tyypillisesti estämään maksullisen sisällön kopiointi. Lue lisää Encrypted Media Extensions -määrittelystä osoitteessa https://www.w3.org/TR/encrypted-media/.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..cfe8259b32
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProcesses.ftl
@@ -0,0 +1,194 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-processes-title = Prosessienhallinta
+
+# The Actions column
+about-processes-column-action =
+ .title = Toiminnot
+
+## Tooltips
+
+about-processes-shutdown-process =
+ .title = Sulje välilehdet ja tapa prosessi
+about-processes-shutdown-tab =
+ .title = Sulje välilehti
+
+# Profiler icons
+# Variables:
+# $duration (Number) The time in seconds during which the profiler will be running.
+# The value will be an integer, typically less than 10.
+about-processes-profile-process =
+ .title =
+ { $duration ->
+ [one] Profiloi tämän prosessin kaikkia säikeitä { $duration } sekunnin ajan
+ *[other] Profiloi tämän prosessin kaikkia säikeitä { $duration } sekunnin ajan
+ }
+
+## Column headers
+
+about-processes-column-name = Nimi
+about-processes-column-memory-resident = Muisti
+about-processes-column-cpu-total = Suoritin
+
+## Process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+
+about-processes-browser-process = { -brand-short-name } ({ $pid })
+about-processes-web-process = Jaettu web-prosessi ({ $pid })
+about-processes-file-process = Tiedostot ({ $pid })
+about-processes-extension-process = Laajennukset ({ $pid })
+about-processes-privilegedabout-process = About-sivut ({ $pid })
+about-processes-plugin-process = Liitännäiset ({ $pid })
+about-processes-privilegedmozilla-process = { -vendor-short-name }-sivustot ({ $pid })
+about-processes-gmp-plugin-process = Gecko-medialiitännäiset ({ $pid })
+about-processes-gpu-process = GPU ({ $pid })
+about-processes-vr-process = VR ({ $pid })
+about-processes-rdd-process = Datan purku ({ $pid })
+about-processes-socket-process = Verkko ({ $pid })
+about-processes-remote-sandbox-broker-process = Remote Sandbox Broker ({ $pid })
+about-processes-fork-server-process = Fork Server ({ $pid })
+about-processes-preallocated-process = Esijaettu ({ $pid })
+
+# Unknown process names
+# Variables:
+# $pid (String) The process id of this process, assigned by the OS.
+# $type (String) The raw type for this process.
+about-processes-unknown-process = Muu: { $type } ({ $pid })
+
+## Isolated process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+## $origin (String) The domain name for this process.
+
+about-processes-web-isolated-process = { $origin } ({ $pid })
+about-processes-web-serviceworker = { $origin } ({ $pid }, serviceworker)
+about-processes-with-coop-coep-process = { $origin } ({ $pid }, lähteet eristetty toisistaan)
+about-processes-web-isolated-process-private = { $origin } — yksityinen ({ $pid })
+about-processes-with-coop-coep-process-private = { $origin } — yksityinen ({ $pid }, lähteet eristetty toisistaan)
+
+## Details within processes
+
+# Single-line summary of threads (non-idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# $active (Number) The number of active threads in the process.
+# The value will be greater than 0 and will never be
+# greater than $number.
+# $list (String) Comma separated list of active threads.
+# Can be an empty string if the process is idle.
+about-processes-active-threads =
+ { $active ->
+ [one] { $active }/{ $number } aktiivinen säie: { $list }
+ *[other] { $active }/{ $number } aktiivista säiettä: { $list }
+ }
+
+# Single-line summary of threads (idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# The process is idle so all threads are inactive.
+about-processes-inactive-threads =
+ { $number ->
+ [one] { $number } ei-aktiivinen säie
+ *[other] { $number } ei-aktiivista säiettä
+ }
+
+# Thread details
+# Variables:
+# $name (String) The name assigned to the thread.
+# $tid (String) The thread id of this thread, assigned by the OS.
+about-processes-thread-name-and-id = { $name }
+ .title = Säikeen id: { $tid }
+
+# Tab
+# Variables:
+# $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
+about-processes-tab-name = Välilehti: { $name }
+about-processes-preloaded-tab = Esiladattu uusi välilehti
+
+# Single subframe
+# Variables:
+# $url (String) The full url of this subframe.
+about-processes-frame-name-one = Alikehys: { $url }
+
+# Group of subframes
+# Variables:
+# $number (Number) The number of subframes in this group. Always ≥ 1.
+# $shortUrl (String) The shared prefix for the subframes in the group.
+about-processes-frame-name-many = Alikehykset ({ $number }): { $shortUrl }
+
+## Utility process actor names
+
+about-processes-utility-actor-audio-decoder-generic = Yleinen äänidekooderi
+about-processes-utility-actor-audio-decoder-applemedia = Apple Media -äänidekooderi
+about-processes-utility-actor-audio-decoder-wmf = Windows Media Framework -äänidekooderi
+
+## Displaying CPU (percentage and total)
+## Variables:
+## $percent (Number) The percentage of CPU used by the process or thread.
+## Always > 0, generally <= 200.
+## $total (Number) The amount of time used by the process or thread since
+## its start.
+## $unit (String) The unit in which to display $total. See the definitions
+## of `duration-unit-*`.
+
+# Common case.
+about-processes-cpu = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") }
+ .title = Suoritinaika yhteensä: { NUMBER($total, maximumFractionDigits: 0) } { $unit }
+
+# Special case: data is not available yet.
+about-processes-cpu-user-and-kernel-not-ready = (mittaus kesken)
+
+# Special case: process or thread is almost idle (using less than 0.1% of a CPU core).
+# This case only occurs on Windows where the precision of the CPU times is low.
+about-processes-cpu-almost-idle = < 0.1%
+ .title = Suoritinaika yhteensä: { NUMBER($total, maximumFractionDigits: 0) } { $unit }
+
+# Special case: process or thread is currently idle.
+about-processes-cpu-fully-idle = joutilas
+ .title = Suoritinaika yhteensä: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+## Displaying Memory (total and delta)
+## Variables:
+## $total (Number) The amount of memory currently used by the process.
+## $totalUnit (String) The unit in which to display $total. See the definitions
+## of `memory-unit-*`.
+## $delta (Number) The absolute value of the amount of memory added recently.
+## $deltaSign (String) Either "+" if the amount of memory has increased
+## or "-" if it has decreased.
+## $deltaUnit (String) The unit in which to display $delta. See the definitions
+## of `memory-unit-*`.
+
+# Common case.
+about-processes-total-memory-size-changed = { NUMBER($total, maximumFractionDigits: 0) } { $totalUnit }
+ .title = Muutos: { $deltaSign }{ NUMBER($delta, maximumFractionDigits: 0) } { $deltaUnit }
+
+# Special case: no change.
+about-processes-total-memory-size-no-change = { NUMBER($total, maximumFractionDigits: 0) } { $totalUnit }
+
+## Duration units
+
+duration-unit-ns = ns
+duration-unit-us = µs
+duration-unit-ms = ms
+duration-unit-s = s
+duration-unit-m = min
+duration-unit-h = t
+duration-unit-d = vrk
+
+## Memory units
+
+memory-unit-B = t
+memory-unit-KB = kt
+memory-unit-MB = Mt
+memory-unit-GB = Gt
+memory-unit-TB = Tt
+memory-unit-PB = Pt
+memory-unit-EB = Et
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProfiles.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..5ee0814857
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutProfiles.ftl
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+profiles-title = Tietoja profiileista
+profiles-subtitle = Tämä sivu auttaa hallinnoimaan profiilejasi. Jokainen profiili on oma maailmansa, joka sisältää erilliset historiat, kirjanmerkit, asetukset ja lisäosat.
+profiles-create = Luo uusi profiili
+profiles-restart-title = Käynnistä uudelleen
+profiles-restart-in-safe-mode = Käynnistä uudelleen ilman lisäosia…
+profiles-restart-normal = Käynnistä uudelleen normaalisti…
+profiles-conflict = Toinen { -brand-product-name }-kopio on tehnyt muutoksia profiileihin. { -brand-short-name } täytyy käynnistää uudestaan ennen lisämuutosten tekemistä.
+profiles-flush-fail-title = Muutoksia ei tallennettu
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = Odottamaton virhe on estänyt muutosten tallentamisen.
+profiles-flush-restart-button = Käynnistä { -brand-short-name } uudestaan
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Profiili: { $name }
+profiles-is-default = Oletusprofiili
+profiles-rootdir = Päähakemisto
+
+# localDir is used to show the directory corresponding to
+# the main profile directory that exists for the purpose of storing data on the
+# local filesystem, including cache files or other data files that may not
+# represent critical user data. (e.g., this directory may not be included as
+# part of a backup scheme.)
+# In case localDir and rootDir are equal, localDir is not shown.
+profiles-localdir = Paikallinen hakemisto
+profiles-current-profile = Tämä on tällä hetkellä käytössä oleva profiili, joten sitä ei voi poistaa.
+profiles-in-use-profile = Profiili on käytössä toisessa ohjelmassa eikä sitä voida poistaa.
+
+profiles-rename = Nimeä uudelleen
+profiles-remove = Poista
+profiles-set-as-default = Aseta oletusprofiiliksi
+profiles-launch-profile = Käynnistä profiili uuteen selaimeen
+
+profiles-cannot-set-as-default-title = Ei voitu asettaa oletukseksi
+profiles-cannot-set-as-default-message = Oletusprofiilia ei voi muuttaa ohjelmalle { -brand-short-name }.
+
+profiles-yes = kyllä
+profiles-no = ei
+
+profiles-rename-profile-title = Nimeä profiili uudelleen
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Nimeä profiili { $name } uudelleen
+
+profiles-invalid-profile-name-title = Profiilin nimi ei kelpaa
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = Profiilin nimi ”{ $name }” ei ole sallittu.
+
+profiles-delete-profile-title = Poista profiili
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ Profiilin poistaminen poistaa profiilin käytettävissä olevien profiilien listalta eikä tätä toimintoa voi kumota.
+ Voit myös halutessasi poistaa profiilin datatiedostot, mukaan lukien asetuksesi, varmenteet ja muut käyttäjäkohtaiset tiedot. Tämä valinta poistaa kansion ”{ $dir }” eikä tätä toimintoa voi kumota.
+ Haluatko poistaa profiilin datatiedostot?
+profiles-delete-files = Poista tiedostot
+profiles-dont-delete-files = Älä poista tiedostoja
+
+profiles-delete-profile-failed-title = Virhe
+profiles-delete-profile-failed-message = Profiilin poistaminen epäonnistui.
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Näytä Finderissa
+ [windows] Avaa kansio
+ *[other] Avaa hakemisto
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutReader.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutReader.ftl
new file mode 100644
index 0000000000..228d24ce7f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutReader.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-reader-loading = Ladataan…
+about-reader-load-error = Artikkelin lataaminen sivulta epäonnistui
+
+about-reader-color-scheme-light = Vaalea
+ .title = Vaalea väriteema
+about-reader-color-scheme-dark = Tumma
+ .title = Tumma väriteema
+about-reader-color-scheme-sepia = Seepia
+ .title = Seepiamainen väriteema
+about-reader-color-scheme-auto = Automaattinen
+ .title = Automaattinen väriteema
+
+# An estimate for how long it takes to read an article,
+# expressed as a range covering both slow and fast readers.
+# Variables:
+# $rangePlural (String): The plural category of the range, using the same set as for numbers.
+# $range (String): The range of minutes as a localised string. Examples: "3-7", "~1".
+about-reader-estimated-read-time =
+ { $rangePlural ->
+ [one] { $range } minuutti
+ *[other] { $range } minuuttia
+ }
+
+## These are used as tooltips in Type Control
+
+about-reader-toolbar-minus =
+ .title = Pienennä kirjasinkokoa
+about-reader-toolbar-plus =
+ .title = Suurenna kirjasinkokoa
+about-reader-toolbar-contentwidthminus =
+ .title = Pienennä sisällön leveyttä
+about-reader-toolbar-contentwidthplus =
+ .title = Suurenna sisällön leveyttä
+about-reader-toolbar-lineheightminus =
+ .title = Pienennä rivikorkeutta
+about-reader-toolbar-lineheightplus =
+ .title = Suurenna rivikorkeutta
+
+## These are the styles of typeface that are options in the reader view controls.
+
+about-reader-font-type-serif = Serif
+about-reader-font-type-sans-serif = Sans-serif
+
+## Reader View toolbar buttons
+
+about-reader-toolbar-close = Sulje lukunäkymä
+about-reader-toolbar-type-controls = Kirjasinasetukset
+about-reader-toolbar-savetopocket = Tallenna { -pocket-brand-name }iin
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutRights.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..3537c6b201
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutRights.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rights-title = Tietoa oikeuksistasi
+rights-intro = { -brand-full-name } on ilmainen, avoimen lähdekoodin ohjelmisto. Sen tekijäyhteisö koostuu tuhansista ihmisistä, jotka asuvat ympäri maailmaa. Seuraavat seikat on hyvä tietää:
+rights-intro-point-1 = { -brand-short-name } on annettu sinulle <a data-l10n-name="mozilla-public-license-link">Mozillan julkisen lisenssin (Mozilla Public License)</a> ehdoilla. Lisenssissä annetaan sinulle oikeus käyttää, kopioida ja levittää { -brand-short-name }ia. Sinulla on myös halutessasi oikeus muokata ja muuttaa { -brand-short-name }in lähdekoodia omien tarpeittesi mukaisesti. Mozillan julkinen lisenssi antaa sinulle myös oikeuden levittää näitä muokkaamiasi versioita.
+rights-intro-point-2 = Sinulle ei anneta minkään muotoisia tavaramerkki- tai lisenssioikeuksia Mozilla-säätiön tai muun tahon tavaramerkkeihin, joihin lukeutuu Firefox-nimi ja -logo. Voit lukea tarkempia lisätietoja tavaramerkeistä <a data-l10n-name="mozilla-trademarks-link">täältä</a>.
+rights-intro-point-3 = Jotkin { -brand-short-name }in ominaisuudet, kuten kaatumisen raportointi, antavat mahdollisuuden lähettää palautetta { -vendor-short-name }lle. Lähettämällä palautetta annat { -vendor-short-name }lle luvan käyttää lähetettyjä tietoja parantamaan tuotetta, julkaisemaan lähetetyn palautteen verkkosivuilla ja jakelemaan lähetettyjä palautetietoja.
+rights-intro-point-4 = <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name }in tietosuojakäytännössä </a>kuvataan, mihin tarkoituksiin käytämme { -brand-short-name }ista { -vendor-short-name }lle lähetetyt palautteet ja käyttäjätiedot.
+rights-intro-point-4-unbranded = Kaikki tämän tuotteen käyvät tietosuojakäytänteet tulisi luetteloida tässä.
+rights-intro-point-5 = Jotkin { -brand-short-name }in ominaisuudet käyttävät hyväkseen verkkopohjaisia tietopalveluja, joiden emme voi taata olevan 100 % tarkkoja tai virheettömiä. Lisätietoja palveluista mukaan lukien ohjeet niiden päältä poistamiseen löydät <a data-l10n-name="mozilla-service-terms-link">palveluehdoista</a>.
+rights-intro-point-5-unbranded = Jos tämä tuote käyttää toiminnassaan hyväkseen verkkopohjaisia palveluja, niiden palveluehdot tulisi linkittää <a data-l10n-name="mozilla-website-services-link">verkkosivustopalvelut</a>-osioon.
+rights-intro-point-6 = { -brand-short-name } lataa kolmansilta osapuolilta salauksen purkumoduuleja voidakseen toistaa tietyntyyppistä videosisältöä.
+rights-webservices-header = { -brand-full-name }in verkkopohjaiset tietopalvelut
+rights-webservices = { -brand-full-name }käyttää hyväkseen verkkopohjaisia tietopalveluita (”palveluita”) joidenkin tämän { -brand-short-name }in binääriversion ominaisuuksien toteuttamiseen kuten alla ehdoissa määritellään. Jos et halua käyttää näitä palveluita tai alla määritellyt ehdot eivät ole hyväksyttäviä, voit poistaa omaisuuden tai palvelut käytöstä. Ohjeet, kuinka tämä tehdään löytyvät <a data-l10n-name="mozilla-disable-service-link">täältä</a>. Muut ominaisuudet ja palvelut voi poistaa päältä ohjelman asetuksista.
+rights-safebrowsing = <strong>Selaussuoja: </strong>Selaussuoja (Safe Browsing) -toiminnon ottaminen pois päältä ei ole suositeltua, koska se voi johtaa ei-turvallisilla sivuilla käyntiin. Jos haluat ottaa tämän ominaisuuden pois päältä kokonaan, tee seuraavasti:
+rights-safebrowsing-term-1 = Avaa ohjelman asetukset
+rights-safebrowsing-term-2 = Valitse Turvallisuus-paneeli
+rights-safebrowsing-term-3 = Poista valinta kohdasta "{ enableSafeBrowsing-label }"
+enableSafeBrowsing-label = Estä vaarallinen ja petollinen sisältö
+rights-safebrowsing-term-4 = Selaussuoja on nyt poistettu käytöstä
+rights-locationawarebrowsing = <strong>Sijaintitietoinen selaus: </strong>on aina valinnainen. Sijaintitietoja ei ikinä lähetetä ilman hyväksyntääsi. Jos haluat poistaa toiminnon kokonaan, tee seuraavasti:
+rights-locationawarebrowsing-term-1 = Kirjoita osoitepalkkiin <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Kirjoita suodata-kenttään geo.enabled
+rights-locationawarebrowsing-term-3 = Tuplanapsauta geo.enabled -asetusta
+rights-locationawarebrowsing-term-4 = Sijaintitietoinen selaus -toiminto on nyt otettu pois päältä
+rights-webservices-unbranded = Tässä kohdassa tulisi olla kuvaus verkkosivustopalveluista, joita tuote käyttää, sekä ohjeet näiden palvelujen poistamiseen käytöstä jos tämä on mahdollista kyseiselle palvelulle.
+rights-webservices-term-unbranded = Tässä tulisi luetteloida kaikki tuotteen käyvät palveluehdot.
+rights-webservices-term-1 = { -vendor-short-name } ja siihen liittyvät vapaaehtoiset, lisensoijat ja yhteistyökumppanit pyrkivät toimittamaan ja tarjoamaan mahdollisimman tarkat ja ajan tasalla olevat palvelut. Tämän tiedon kattavuudesta tai virheettömyydestä ei kuitenkaan voida antaa takuita. Esimerkiksi joitain vaarallisia sivustoja ei ehkä tunnisteta ja jotkin harmittomat sivut voidaan virheellisesti luokitella vaarallisiksi. Vastaavasti sijaintitiedot ovat vain arvioita, emmekä me tai meidän palveluntarjoajat voi taata sijaintitietojen tarkkuutta.
+rights-webservices-term-2 = { -vendor-short-name } voi lakkauttaa tai muuttaa palveluita yksipuolisesti.
+rights-webservices-term-3 = Voit käyttää näitä palveluita tämän { -brand-short-name }in version kanssa ja sinulla on ohjelman myötä kaikki tarvittavat oikeudet niiden käyttämiseen. { -vendor-short-name } ja sen lisensoijat säilyttävät kaikki muut oikeudet palveluihin. Näitä ehtoja ei ole suunniteltu rajoittamaan mitään { -brand-short-name }in avoimen lähdekoodin lisenssien myöntämiä oikeuksia saati lähdekoodiversiolle myönnettyjä oikeuksia.
+rights-webservices-term-4 = <strong>Palvelut toimitetaan siinä tilassa "kuin ne ovat". { -vendor-short-name }, siihen liittyvät vapaaehtoiset, lisensoijat ja levittäjät kieltävät kaikki takuut, mukaan lukien lupaukset palvelun kaupallisesta laadusta ja sopivuudesta tarkoituksiisi. Kannat kokonaan vastuun palvelun valinnasta, sen laadusta ja toiminnasta. Tällaiset vastuun rajoitukset eivät ole välttämättä voimassa joissain tuomiovalloissa, joten edellä mainittu ei välttämättä pidä paikkaansa.</strong>
+rights-webservices-term-5 = <strong>Lukuunottamatta mitä laki vaatii, { -vendor-short-name }, siihen liittyvät vapaaehtoiset, lisensoijat ja levittäjät eivät ole korvausvastuussa mistään epäsuorasta, erikoisesta tai sattumanvaraisesta vahingosta, joka johtuu suoraan tai epäsuoraan { -brand-short-name }in ja palvelujen käytöstä. Näiden ehtojen alainen kollektiivinen korvausvelvollisuus ei ylitä $500 (viittä sataa Yhdysvaltain dollaria). Joissain tuomiovalloissa korvausvelvollisuuden ylärajaa ei lain mukaan voi asettaa, jolloin edellä mainittu ei pidä paikkaansa tapauksessasi.</strong>
+rights-webservices-term-6 = { -vendor-short-name } voi päivittää ja muuttaa näitä ehtoja tarpeen mukaan aika ajoin. Näitä ehtoja ei voi muuttaa tai poistaa ilman { -vendor-short-name }n kirjallista suostumusta.
+rights-webservices-term-7 = Nämä ehdot ovat Amerikan Yhdysvaltojen Kalifornian osavaltion lainsäädännön alaisia. Jos jokin osa ehdoista ei päde tuomiovallan alueella, loput ehdot ovat voimassa kokonaisuudessaan. Jos näiden ehtojen käännetty versio ja alkuperäinen englanninkielinen versio eroavat toisistaan, englanninkielinen versio on sitova.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutServiceWorkers.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..9f95777108
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutServiceWorkers.ftl
@@ -0,0 +1,40 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### The term "Service Workers" and "Workers" should not be translated
+
+about-service-workers-title = Tietoja Service Workers -apukomentosarjoista
+about-service-workers-main-title = Rekisteröidyt Service Workers -apukomentosarjat
+about-service-workers-warning-not-enabled = Service Workers -apukomentosarjat eivät ole päällä.
+about-service-workers-warning-no-service-workers = Ei rekisteröityjä Service Workers -apukomentosarjoja.
+
+# The original title of service workers' information
+#
+# Variables:
+# $originTitle: original title
+origin-title = Lähde: { $originTitle }
+
+## These strings are for showing the information of workers.
+##
+## Variables:
+## $name: the name of scope, active cache, waiting cache and the push end point.
+## $url: the url of script specification and current worker.
+
+scope = <strong>Laajuus:</strong> { $name }
+script-spec = <strong>Komentosarjan tiedot:</strong> <a data-l10n-name="link">{ $url }</a>
+current-worker-url = <strong>Tämänhetkinen Worker-osoite:</strong> <a data-l10n-name="link">{ $url }</a>
+active-cache-name = <strong>Aktiivisen välimuistin nimi:</strong> { $name }
+waiting-cache-name = <strong>Odottavan välimuistin nimi:</strong> { $name }
+push-end-point-waiting = <strong>Tulosteen päätepiste:</strong> { waiting }
+push-end-point-result = <strong>Tulosteen päätepiste:</strong> { $name }
+
+# This term is used as a button label (verb, not noun).
+update-button = Päivitä
+
+unregister-button = Poista rekisteröinti
+
+unregister-error = Rekisteröinnin poisto Service Worker -apukomentosarjalle epäonnistui.
+
+waiting = Odotetaan…
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..d7bdd7cead
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,411 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+page-title = Tietoja ongelmatilanteiden ratkaisuun
+page-subtitle =
+ Tällä sivulla on teknisiä tietoja, jotka voivat olla avuksi kun yritetään ratkaista
+ jotain ongelmaa ohjelman kanssa. Jos olet etsimässä vastauksia kysymyksiin
+ { -brand-short-name }ista, käy katsomassa löytyykö hakemaasi vastausta <a data-l10n-name="support-link">tukisivustoltamme</a>.
+crashes-title = Kaatumisilmoitukset
+crashes-id = Ilmoituksen tunnus
+crashes-send-date = Lähetetty
+crashes-all-reports = Kaikki kaatumisilmoitukset
+crashes-no-config = Tätä ohjelmaa ei ole säädetty näyttämään kaatumisilmoituksia.
+support-addons-title = Lisäosat
+support-addons-name = Nimi
+support-addons-type = Tyyppi
+support-addons-enabled = Käytössä
+support-addons-version = Versio
+support-addons-id = ID
+legacy-user-stylesheets-title = Vanhennetut käyttäjien tyylimäärittelyt
+legacy-user-stylesheets-enabled = Aktiivinen
+legacy-user-stylesheets-stylesheet-types = Tyylimäärittelyt
+legacy-user-stylesheets-no-stylesheets-found = Tyylimäärittelyjä ei löytynyt
+security-software-title = Tietoturvaohjelmat
+security-software-type = Tyyppi
+security-software-name = Nimi
+security-software-antivirus = Virustentorjunta
+security-software-antispyware = Vakoiluntorjunta
+security-software-firewall = Palomuuri
+features-title = { -brand-short-name }-ominaisuudet
+features-name = Nimi
+features-version = Versio
+features-id = ID
+processes-title = Etäprosessit
+processes-type = Tyyppi
+processes-count = Määrä
+app-basics-title = Ohjelman perustiedot
+app-basics-name = Nimi
+app-basics-version = Versio
+app-basics-build-id = Koosteen tunniste
+app-basics-distribution-id = Jakelutunnus
+app-basics-update-channel = Päivityskanava
+# This message refers to the folder used to store updates on the device,
+# as in "Folder for updates". "Update" is a noun, not a verb.
+app-basics-update-dir = Päivityskansio
+app-basics-update-history = Päivityshistoria
+app-basics-show-update-history = Näytä päivityshistoria
+# Represents the path to the binary used to start the application.
+app-basics-binary = Sovelluksen ohjelmatiedosto
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Profiilikansio
+ *[other] Profiilikansio
+ }
+app-basics-enabled-plugins = Käytössä olevat liitännäiset
+app-basics-build-config = Koostamisasetukset
+app-basics-user-agent = Selaintunniste
+app-basics-os = Käyttöjärjestelmä
+app-basics-os-theme = Käyttöjärjestelmän teema
+# Rosetta is Apple's translation process to run apps containing x86_64
+# instructions on Apple Silicon. This should remain in English.
+app-basics-rosetta = Rosetta-muunnettu
+app-basics-memory-use = Muistin käyttö
+app-basics-performance = Suorituskyky
+app-basics-service-workers = Rekisteröidyt Service Workers -apukomentosarjat
+app-basics-third-party = Kolmannen osapuolen moduulit
+app-basics-profiles = Profiilit
+app-basics-launcher-process-status = Käynnistysprosessi
+app-basics-multi-process-support = Useaa prosessia hyödyntäviä ikkunoita
+app-basics-fission-support = Fission-ikkunoita
+app-basics-remote-processes-count = Etäprosessit
+app-basics-enterprise-policies = Yrityskäytännöt
+app-basics-location-service-key-google = Google Location Service -avain
+app-basics-safebrowsing-key-google = Google Safebrowsing -avain
+app-basics-key-mozilla = Mozilla Location Service -avain
+app-basics-safe-mode = Vikasietotila
+app-basics-memory-size = Muistin koko (RAM)
+app-basics-disk-available = Levytilaa käytettävissä
+app-basics-pointing-devices = Osoitinlaitteet
+# Variables:
+# $value (number) - Amount of data being stored
+# $unit (string) - The unit of data being stored (e.g. MB)
+app-basics-data-size = { $value } { $unit }
+show-dir-label =
+ { PLATFORM() ->
+ [macos] Avaa Finderissa
+ [windows] Avaa kansio
+ *[other] Avaa kansio
+ }
+environment-variables-title = Ympäristömuuttujat
+environment-variables-name = Nimi
+environment-variables-value = Arvo
+experimental-features-title = Kokeelliset ominaisuudet
+experimental-features-name = Nimi
+experimental-features-value = Arvo
+modified-key-prefs-title = Tärkeät muutetut asetukset
+modified-prefs-name = Nimi
+modified-prefs-value = Arvo
+user-js-title = user.js-asetukset
+user-js-description = Profiilisi sisältää <a data-l10n-name="user-js-link">user.js-tiedoston</a>, joka sisältää muiden kuin { -brand-short-name }in määrittelemät asetukset.
+locked-key-prefs-title = Tärkeät lukitut asetukset
+locked-prefs-name = Nimi
+locked-prefs-value = Arvo
+graphics-title = Grafiikka
+graphics-features-title = Ominaisuudet
+graphics-diagnostics-title = Diagnostiikka
+graphics-failure-log-title = Virheloki
+graphics-gpu1-title = GPU #1
+graphics-gpu2-title = GPU #2
+graphics-decision-log-title = Päätösloki
+graphics-crash-guards-title = Kaatumisvahdin käytöstä poistamat ominaisuudet
+graphics-workarounds-title = Hätäratkaisut
+graphics-device-pixel-ratios = Ikkunoiden pikselisuhteet
+# Windowing system in use on Linux (e.g. X11, Wayland).
+graphics-window-protocol = Ikkunointiprotokolla
+# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
+graphics-desktop-environment = Työpöytäympäristö
+place-database-title = Places-tietokanta
+place-database-stats = Tilastot
+place-database-stats-show = Näytä tilastot
+place-database-stats-hide = Piilota tilastot
+place-database-stats-entity = Entiteetti
+place-database-stats-count = Lukumäärä
+place-database-stats-size-kib = Koko (KiB)
+place-database-stats-size-perc = Koko (%)
+place-database-stats-efficiency-perc = Tehokkuus (%)
+place-database-stats-sequentiality-perc = Peräkkäisyys (%)
+place-database-integrity = Virheettömyys
+place-database-verify-integrity = Tarkista virheettömyys
+a11y-title = Saavutettavuus
+a11y-activated = Käytössä
+a11y-force-disabled = Estä saavutettavuustoiminnot
+a11y-handler-used = Saavutettavuuskäsittelijää käytetty
+a11y-instantiator = Saavutettavuuden käynnistänyt ohjelma
+library-version-title = Kirjastojen versiot
+copy-text-to-clipboard-label = Kopioi teksti leikepöydälle
+copy-raw-data-to-clipboard-label = Kopioi käsittelemätön data leikepöydälle
+sandbox-title = Hiekkalaatikko
+sandbox-sys-call-log-title = Hylätyt järjestelmäkutsut
+sandbox-sys-call-index = #
+sandbox-sys-call-age = Sekuntia sitten
+sandbox-sys-call-pid = PID
+sandbox-sys-call-tid = TID
+sandbox-sys-call-proc-type = Prosessin tyyppi
+sandbox-sys-call-number = Järjestelmäkutsu
+sandbox-sys-call-args = Argumentit
+troubleshoot-mode-title = Selvitä ongelmia
+restart-in-troubleshoot-mode-label = Vianmääritystila…
+clear-startup-cache-title = Kokeile tyhjentää käynnistyksen välimuisti
+clear-startup-cache-label = Tyhjennä käynnistyksen välimuisti…
+startup-cache-dialog-title2 = Käynnistä { -brand-short-name } uudestaan ja tyhjennä käynnistyksen välimuisti?
+startup-cache-dialog-body2 = Tämä ei muuta asetuksiasi tai poista laajennuksia.
+restart-button-label = Käynnistä uudestaan
+
+## Media titles
+
+audio-backend = Äänen taustajärjestelmä
+max-audio-channels = Kanavia enintään
+sample-rate = Ensisijainen näytteenottotaajuus
+roundtrip-latency = Edestakainen viive (keskihajonta)
+media-title = Media
+media-output-devices-title = Toistolaitteet
+media-input-devices-title = Syöttölaitteet
+media-device-name = Nimi
+media-device-group = Ryhmä
+media-device-vendor = Valmistaja
+media-device-state = Tila
+media-device-preferred = Ensisijaisuus
+media-device-format = Muoto
+media-device-channels = Kanavia
+media-device-rate = Näytteenottotaajuus
+media-device-latency = Viive
+media-capabilities-title = Mediaominaisuudet
+media-codec-support-info = Koodekkitukitiedot
+# List all the entries of the database.
+media-capabilities-enumerate = Listaa tietokannan sisältö
+
+## Codec support table
+
+media-codec-support-sw-decoding = Ohjelmistopohjainen purku
+media-codec-support-hw-decoding = Laitteistopohjainen purku
+media-codec-support-codec-name = Koodekin nimi
+media-codec-support-supported = Tuettu
+media-codec-support-unsupported = Ei tuettu
+media-codec-support-error = Koodekkitukitietoja ei ole saatavilla. Yritä uudelleen mediatiedoston toiston jälkeen.
+media-codec-support-lack-of-extension = Asenna laajennus
+
+##
+
+intl-title = Internationalisointi ja lokalisointi
+intl-app-title = Sovelluksen asetukset
+intl-locales-requested = Pyydetyt localet
+intl-locales-available = Käytettävissä olevat localet
+intl-locales-supported = Sovelluksen localet
+intl-locales-default = Oletuslocale
+intl-os-title = Käyttöjärjestelmä
+intl-os-prefs-system-locales = Järjestelmän localet
+intl-regional-prefs = Alueasetukset
+
+## Remote Debugging
+##
+## The Firefox remote protocol provides low-level debugging interfaces
+## used to inspect state and control execution of documents,
+## browser instrumentation, user interaction simulation,
+## and for subscribing to browser-internal events.
+##
+## See also https://firefox-source-docs.mozilla.org/remote/
+
+remote-debugging-title = Etävianjäljitys (Chromium-protokolla)
+remote-debugging-accepting-connections = Hyväksyy yhteyksiä
+remote-debugging-url = URL-osoite
+
+##
+
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days =
+ { $days ->
+ [one] Kaatumisilmoitukset viimeisen { $days } päivän aikana
+ *[other] Kaatumisilmoitukset viimeisen { $days } päivän aikana
+ }
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes =
+ { $minutes ->
+ [one] { $minutes } minuutti sitten
+ *[other] { $minutes } minuuttia sitten
+ }
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours =
+ { $hours ->
+ [one] { $hours } tunti sitten
+ *[other] { $hours } tuntia sitten
+ }
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days =
+ { $days ->
+ [one] { $days } päivä sitten
+ *[other] { $days } päivää sitten
+ }
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports =
+ { $reports ->
+ [one] Kaikki kaatumisilmoitukset (sisältäen { $reports } lähetyslupaa odottavan ilmoituksen annetulla aikarajoituksella)
+ *[other] Kaikki kaatumisilmoitukset (sisältäen { $reports } lähetyslupaa odottavaa ilmoitusta annetulla aikarajoituksella)
+ }
+raw-data-copied = Käsittelemätön data kopioitiin leikepöydälle
+text-copied = Teksti kopioitiin leikepöydälle
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Estetty näytönohjaimen ajureiden käytetyssä versiossa.
+blocked-gfx-card = Estetty näytönohjaimellasi ohjaimen ajurien korjaamattomista ongelmista.
+blocked-os-version = Estetty käyttöjärjestelmäsi versiolla.
+blocked-mismatched-version = Estetty koska näytönohjaimen ajureiden versio eroaa rekisterissä ja DLL:ssä.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Estetty näytönohjaimen ajureiden käytetyssä versiossa. Yritä päivittää näytönohjaimesi ajurit versioon { $driverVersion } tai uudempaan.
+# "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
+# there are no good translations, these are only used in about:support
+clear-type-parameters = ClearType-parametrit
+compositing = Koostaminen
+hardware-h264 = Laitteistopohjainen H264-koodauksen purku
+main-thread-no-omtc = pääsäie, ei OMTC:tä
+yes = Kyllä
+no = Ei
+unknown = Tuntematon
+virtual-monitor-disp = Virtuaalinen näyttö
+
+## The following strings indicate if an API key has been found.
+## In some development versions, it's expected for some API keys that they are
+## not found.
+
+found = Löytyy
+missing = Puuttuu
+gpu-process-pid = GPU-prosessin PID
+gpu-process = GPU-prosessi
+gpu-description = Kuvaus
+gpu-vendor-id = Valmistajan tunnus
+gpu-device-id = Laitteen tunnus
+gpu-subsys-id = Alijärjestelmän tunnus
+gpu-drivers = Ajurit
+gpu-ram = Muisti
+gpu-driver-vendor = Ajurin tekijä
+gpu-driver-version = Ajurin versio
+gpu-driver-date = Ajurin päiväys
+gpu-active = Aktiivinen
+webgl1-wsiinfo = WebGL 1 -ajurin WSI-tiedot
+webgl1-renderer = WebGL 1 -ajurin mallintaja
+webgl1-version = WebGL 1 -ajurin versio
+webgl1-driver-extensions = WebGL 1 -ajurin laajennukset
+webgl1-extensions = WebGL 1 -laajennukset
+webgl2-wsiinfo = WebGL 2 -ajurin WSI-tiedot
+webgl2-renderer = WebGL 2 -ajurin mallintaja
+webgl2-version = WebGL 2 -ajurin versio
+webgl2-driver-extensions = WebGL 2 -ajurin laajennukset
+webgl2-extensions = WebGL 2 -laajennukset
+webgpu-default-adapter = WebGPU-oletussovitin
+webgpu-fallback-adapter = WebGPU-varasovitin
+# Variables
+# $bugNumber (string) - Bug number on Bugzilla
+support-blocklisted-bug = Estolistalla tunnetuista ongelmista johtuen: <a data-l10n-name="bug-link">vika { $bugNumber }</a>
+# Variables
+# $failureCode (string) - String that can be searched in the source tree.
+unknown-failure = Estolistalla; virhekoodi { $failureCode }
+d3d11layers-crash-guard = D3D11-koostaminen
+glcontext-crash-guard = OpenGL
+wmfvpxvideo-crash-guard = WMF VPX -videopurkaja
+reset-on-next-restart = Nollaa seuraavan käynnistyksen yhteydessä
+gpu-process-kill-button = Lopeta GPU-prosessi
+gpu-device-reset = Laitteen nollaus
+gpu-device-reset-button = Aloita laitteen nollaus
+uses-tiling = Käyttää ruutuihin jakoa
+content-uses-tiling = Käyttää ruutuihin jakoa (sisältö)
+off-main-thread-paint-enabled = Pääsäikeen ulkopuolinen piirtäminen käytössä
+off-main-thread-paint-worker-count = Pääsäikeen ulkopuolisen piirtämisen työyksiköitä
+target-frame-rate = Tavoitteellinen kuvataajuus
+min-lib-versions = Odotettu minimiversio
+loaded-lib-versions = Käytössä oleva versio
+has-seccomp-bpf = Seccomp-BPF (Järjestelmäkutsujen suodatus)
+has-seccomp-tsync = Seccomp-säikeiden synkronointi
+has-user-namespaces = Käyttäjän nimiavaruudet
+has-privileged-user-namespaces = Käyttäjän nimiavaruudet etuoikeutetuille prosesseille
+can-sandbox-content = Sisältöprosessin suorittaminen hiekkalaatikossa
+can-sandbox-media = Medialiitännäisen suorittaminen hiekkalaatikossa
+content-sandbox-level = Sisältöprosessin hiekkalaatikkotaso
+effective-content-sandbox-level = Sisältöprosessin efektiivinen hiekkalaatikkotaso
+content-win32k-lockdown-state = Win32k-lukitustila sisältöprosessille
+support-sandbox-gpu-level = GPU-prosessin hiekkalaatikkotaso
+sandbox-proc-type-content = sisältö
+sandbox-proc-type-file = tiedostojen sisältö
+sandbox-proc-type-media-plugin = medialiitännäinen
+sandbox-proc-type-data-decoder = datan purkaja
+startup-cache-title = Käynnistyksen välimuisti
+startup-cache-disk-cache-path = Levyvälimuistin polku
+startup-cache-ignore-disk-cache = Ohita levyvälimuisti
+startup-cache-found-disk-cache-on-init = Levyvälimuisti löytyi alustuksessa
+startup-cache-wrote-to-disk-cache = Kirjoitettiin levyvälimuistiin
+launcher-process-status-0 = Käytössä
+launcher-process-status-1 = Ei käytössä johtuen viasta
+launcher-process-status-2 = Poistettu käytöstä pakottaen
+launcher-process-status-unknown = Tuntematon tila
+# Variables
+# $remoteWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+multi-process-windows = { $remoteWindows }/{ $totalWindows }
+# Variables
+# $fissionWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+fission-windows = { $fissionWindows }/{ $totalWindows }
+fission-status-experiment-control = Kokeilun käytöstä poistama
+fission-status-experiment-treatment = Kokeilun käyttöön ottama
+fission-status-disabled-by-e10s-env = Ympäristön käytöstä poistama
+fission-status-enabled-by-env = Ympäristön käyttöön ottama
+fission-status-disabled-by-env = Ympäristön käytöstä poistama
+fission-status-enabled-by-default = Käytössä oletuksena
+fission-status-disabled-by-default = Poistettu käytöstä oletuksena
+fission-status-enabled-by-user-pref = Käyttäjän käyttöön ottama
+fission-status-disabled-by-user-pref = Käyttäjän käytöstä poistama
+fission-status-disabled-by-e10s-other = E10s poistettu käytöstä
+fission-status-enabled-by-rollout = Otettu käyttöön vaiheittaisessa levityksessä
+async-pan-zoom = Asynkroninen siirto/lähennys
+apz-none = ei mitään
+wheel-enabled = rullaliittymä käytössä
+touch-enabled = kosketusliittymä käytössä
+drag-enabled = vierityspalkin vastus käytössä
+keyboard-enabled = näppäimistö käytössä
+autoscroll-enabled = automaattivieritys käytössä
+zooming-enabled = portaaton nipistyszoomaus käytössä
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+wheel-warning = async rullaliittymä pois käytöstä ei tuetun asetuksen johdosta: { $preferenceKey }
+touch-warning = async kosketusliittymä pois käytöstä ei tuetun asetuksen johdosta: { $preferenceKey }
+
+## Strings representing the status of the Enterprise Policies engine.
+
+policies-inactive = Ei käytössä
+policies-active = Käytössä
+policies-error = Virhe
+
+## Printing section
+
+support-printing-title = Tulostaminen
+support-printing-troubleshoot = Ongelmanmääritys
+support-printing-clear-settings-button = Tyhjennä tallennetut tulostusasetukset
+support-printing-modified-settings = Muokatut tulostusasetukset
+support-printing-prefs-name = Nimi
+support-printing-prefs-value = Arvo
+
+## Normandy sections
+
+support-remote-experiments-title = Etäkokeilut
+support-remote-experiments-name = Nimi
+support-remote-experiments-branch = Kokeiluhaara
+support-remote-experiments-see-about-studies = Sivulta <a data-l10n-name="support-about-studies-link">about:studies</a> voi lukea lisätietoja, kuten miten poistaa käytöstä yksittäisiä kokeiluja tai estää { -brand-short-name } suorittamasta tällaista kokeilua tulevaisuudessa.
+support-remote-features-title = Etäominaisuudet
+support-remote-features-name = Nimi
+support-remote-features-status = Tila
+
+## Pointing devices
+
+pointing-device-mouse = Hiiri
+pointing-device-touchscreen = Kosketusnäyttö
+pointing-device-pen-digitizer = Digitaalinen kynä
+pointing-device-none = Ei osoitinlaitteita
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutTelemetry.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..f95c71e63d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutTelemetry.ftl
@@ -0,0 +1,136 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-telemetry-ping-data-source = Ping-datan lähde:
+about-telemetry-show-current-data = Nykyinen data
+about-telemetry-show-archived-ping-data = Arkistoitu ping-data
+about-telemetry-show-subsession-data = Näytä ali-istuntodata
+about-telemetry-choose-ping = Valitse ping:
+about-telemetry-archive-ping-type = Pingin tyyppi
+about-telemetry-archive-ping-header = Ping
+about-telemetry-option-group-today = Tänään
+about-telemetry-option-group-yesterday = Eilen
+about-telemetry-option-group-older = Vanhemmat
+about-telemetry-previous-ping = <<
+about-telemetry-next-ping = >>
+about-telemetry-page-title = Kaukomittaustiedot
+about-telemetry-current-store = Nykyinen säilö:
+about-telemetry-more-information = Etsitkö lisätietoa?
+about-telemetry-firefox-data-doc = <a data-l10n-name="data-doc-link">Firefox Data Documentation</a> sisältää englanniksi oppaita datatyökalujen käytöstä.
+about-telemetry-telemetry-client-doc = <a data-l10n-name="client-doc-link">Firefox Telemetry client documentation</a> sisältää englanniksi käsitteiden määritelmät, API-dokumentaation ja dataviittaukset.
+about-telemetry-telemetry-dashboard = <a data-l10n-name="dashboard-link">Kaukomittaustietojen yhteenvetojen</a> avulla voi visualisoida dataa, jota Mozilla vastaanottaa kaukomittauksen avulla.
+about-telemetry-telemetry-probe-dictionary = <a data-l10n-name="probe-dictionary-link">Anturihakemisto</a> sisältää kaukomitattavien anturien tiedot ja kuvaukset.
+about-telemetry-show-in-Firefox-json-viewer = Avaa JSON-katselimessa
+about-telemetry-home-section = Etusivu
+about-telemetry-general-data-section = Yleistiedot
+about-telemetry-environment-data-section = Ympäristön tiedot
+about-telemetry-session-info-section = Istunnon tiedot
+about-telemetry-scalar-section = Skaalariarvot
+about-telemetry-keyed-scalar-section = Avaimelliset skalaariarvot
+about-telemetry-histograms-section = Histogrammit
+about-telemetry-keyed-histogram-section = Histogrammit merkinnöistä
+about-telemetry-events-section = Tapahtumat
+about-telemetry-simple-measurements-section = Yksinkertaiset mittaukset
+about-telemetry-slow-sql-section = Hitaat SQL-lauseet
+about-telemetry-addon-details-section = Lisäosien tiedot
+about-telemetry-late-writes-section = Myöhästyneet kirjoitukset
+about-telemetry-raw-payload-section = Raakatiedot
+about-telemetry-raw = Muotoilematon JSON
+about-telemetry-full-sql-warning = Huom.: Hitaan SQL:n virheenetsintä on käytössä. Täydelliset SQL-lausekkeet saattavat näkyä alla, mutta niitä ei lähetetä mittaustietona.
+about-telemetry-fetch-stack-symbols = Nouda funktioiden nimet pinoihin
+about-telemetry-hide-stack-symbols = Näytä muotoilematon pinodata
+# Selects the correct release version
+# Variables:
+# $channel (String): represents the corresponding release data string
+about-telemetry-data-type =
+ { $channel ->
+ [release] release-tietoja
+ *[prerelease] pre-release-tietoja
+ }
+# Selects the correct upload string
+# Variables:
+# $uploadcase (String): represents a corresponding upload string
+about-telemetry-upload-type =
+ { $uploadcase ->
+ [enabled] käytössä
+ *[disabled] pois käytöstä
+ }
+# Example Output: 1 sample, average = 0, sum = 0
+# Variables:
+# $sampleCount (Integer): amount of histogram samples
+# $prettyAverage (Integer): average of histogram samples
+# $sum (Integer): sum of histogram samples
+about-telemetry-histogram-stats =
+ { $sampleCount ->
+ [one] { $sampleCount } näyte, keskiarvo = { $prettyAverage }, summa = { $sum }
+ *[other] { $sampleCount } näytettä, keskiarvo = { $prettyAverage }, summa = { $sum }
+ }
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = Tällä sivulla näet Kaukomittaus-toiminnallisuuden keräämät tiedot suorituskyvystä, laitteistosta, ominaisuuksien käytöstä ja muokkauksista. Sivulla näkyvät tiedot lähetetään { $telemetryServerOwner }lle auttamaan { -brand-full-name }in kehityksessä.
+about-telemetry-settings-explanation = Kaukomittaus kerää { about-telemetry-data-type } ja tietojen lähetys on <a data-l10n-name="upload-link">{ about-telemetry-upload-type }</a>.
+# Variables:
+# $name (String): ping name, e.g. “saved-session”
+# $timeStamp (String): ping localized timestamp, e.g. “2017/07/08 10:40:46”
+about-telemetry-ping-details = Kukin informaation palanen lähetetään koottuna ”<a data-l10n-name="ping-link">pingeihin</a>”. Katselet juuri { $name }, { $timestamp }-pingiä.
+about-telemetry-data-details-current = Kukin informaation palanen lähetetään koottuna ”<a data-l10n-name="ping-link">pingeihin</a>”. Katselet juuri nykyistä dataa.
+# string used as a placeholder for the search field
+# More info about it can be found here:
+# https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $selectedTitle (String): the section name from the structure of the ping.
+about-telemetry-filter-placeholder =
+ .placeholder = Etsi: { $selectedTitle }
+about-telemetry-filter-all-placeholder =
+ .placeholder = Etsi kaikista osioista
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-results-for-search = Tulokset haulle ”{ $searchTerms }”
+# More info about it can be found here: https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $sectionName (String): the section name from the structure of the ping.
+# $currentSearchText (String): the current text in the search input
+about-telemetry-no-search-results = Ei hakutuloksia osiosta { $sectionName } haulle ”{ $currentSearchText }”
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-no-search-results-all = Ei hakutuloksia mistään osiosta haulle ”{ $searchTerms }”
+# This message is displayed when a section is empty.
+# Variables:
+# $sectionName (String): is replaced by the section name.
+about-telemetry-no-data-to-display = Osiossa ”{ $sectionName }” ei ole tällä hetkellä dataa
+# used as a tooltip for the “current” ping title in the sidebar
+about-telemetry-current-data-sidebar = nykyinen data
+# used in the “Ping Type” select
+about-telemetry-telemetry-ping-type-all = kaikki
+# button label to copy the histogram
+about-telemetry-histogram-copy = Kopioi
+# these strings are used in the “Slow SQL Statements” section
+about-telemetry-slow-sql-main = Hitaat SQL-lauseet pääsäikeessä
+about-telemetry-slow-sql-other = Hitaat SQL-lauseet apusäikeissä
+about-telemetry-slow-sql-hits = Osumat
+about-telemetry-slow-sql-average = Keskimääräinen aika (ms)
+about-telemetry-slow-sql-statement = Lause
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = Lisäosan tunnus
+about-telemetry-addon-table-details = Tiedot
+# Variables:
+# $addonProvider (String): the name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = { $addonProvider }-toimittaja
+about-telemetry-keys-header = Ominaisuus
+about-telemetry-names-header = Nimi
+about-telemetry-values-header = Arvo
+# Variables:
+# $lateWriteCount (Integer): the number of the late writes
+about-telemetry-late-writes-title = Myöhästynyt kirjoitus #{ $lateWriteCount }
+about-telemetry-stack-title = Pino:
+about-telemetry-memory-map-title = Muistikartta:
+about-telemetry-error-fetching-symbols = Tapahtui virhe haettaessa symboleita. Tarkista, että Internet-yhteys on kunnossa ja yritä uudestaan.
+about-telemetry-time-stamp-header = aikaleima
+about-telemetry-category-header = luokka
+about-telemetry-method-header = metodi
+about-telemetry-object-header = objekti
+about-telemetry-extra-header = lisätietoa
+# Variables:
+# $process (String): type of process in subsection headers ( e.g. "content", "parent" )
+about-telemetry-process = { $process }-prosessi
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutThirdParty.ftl
new file mode 100644
index 0000000000..9944228807
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutThirdParty.ftl
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+third-party-page-title = Kolmansien osapuolten moduulien tiedot
+third-party-section-title = Lista { -brand-short-name }issa olevista kolmansien osapuolten moduuleista
+third-party-intro =
+ Tämä sivu näyttää kolmansien osapuolten moduulit, jotka injektoitiin
+ { -brand-short-name }iin. Mikä tahansa moduuli, joka ei ole Microsoftin tai
+ { -vendor-short-name }n allekirjoittama, mielletään kolmannen osapuolen moduuliksi.
+third-party-message-empty = Kolmansien osapuolten moduuleja ei havaittu.
+third-party-message-no-duration = Ei nauhoitettu
+third-party-detail-version = Tiedoston versio
+third-party-detail-vendor = Valmistajan tiedot
+third-party-detail-occurrences = Esiintymät
+ .title = Kuinka monta kertaa tämä moduuli ladattiin.
+third-party-detail-duration = Odotusajan keskiarvo (ms)
+ .title = Kuinka kauan tämä moduuli odotutti sovellusta.
+third-party-detail-app = Sovellus
+third-party-detail-publisher = Julkaisija
+third-party-th-process = Prosessi
+third-party-th-duration = Latausaika (ms)
+third-party-th-status = Tila
+third-party-tag-ime = IME
+ .title = Tämäntyyppinen moduuli ladataan, kun käytetään kolmannen osapuolen kirjoitustukea (IME).
+third-party-tag-shellex = Liittymälaajennus
+ .title = Tämäntyyppinen moduuli ladataan, kun avataan järjestelmän tiedostovalintaikkuna.
+third-party-tag-background = Taustamoduuli
+ .title = Tämä moduuli ei odotuttanut sovellusta, koska se ladattiin taustalla.
+third-party-icon-unsigned =
+ .title = Tämä moduuli ei ole allekirjoitettu
+ .alt = Tämä moduuli ei ole allekirjoitettu
+third-party-icon-warning =
+ .title = { -brand-short-name } kaatui tämän moduulin koodissa
+ .alt = { -brand-short-name } kaatui tämän moduulin koodissa
+third-party-status-loaded = Ladattu
+third-party-status-blocked = Estetty
+third-party-status-redirected = Uudelleenohjattu
+third-party-button-copy-to-clipboard = Kopioi käsittelemätön data leikepöydälle
+third-party-loading-data =
+ .alt = Ladataan järjestelmätietoja…
+ .title = Ladataan järjestelmätietoja…
+third-party-button-reload = Lataa uudelleen järjestelmätietojen kanssa
+ .title = Lataa uudelleen järjestelmätietojen kanssa
+third-party-button-open =
+ .title = Avaa tiedoston sijainti…
+third-party-button-to-block =
+ .title = Estä tämä moduuli
+ .aria-label = Estä tämä moduuli
+third-party-button-to-unblock =
+ .title = Tällä hetkellä estetty. Napsauta poistaaksesi sen eston.
+ .aria-label = Tällä hetkellä estetty. Napsauta poistaaksesi sen eston.
+third-party-button-to-block-module = Estä tämä moduuli
+ .title = Estä tämä moduuli
+ .aria-label = Estä tämä moduuli
+third-party-button-to-unblock-module = Kumoa tämän moduulin esto
+ .title = Tällä hetkellä estetty. Napsauta kumotaksesi moduulin eston.
+ .aria-label = Tällä hetkellä estetty. Napsauta kumotaksesi moduulin eston.
+third-party-button-expand =
+ .title = Näytä yksityiskohtaiset tiedot
+third-party-button-collapse =
+ .title = Supista yksityiskohtaiset tiedot
+third-party-blocking-requires-restart = Kolmannen osapuolen moduulin estämiseksi { -brand-short-name } on käynnistettävä uudelleen.
+third-party-should-restart-title = Käynnistä { -brand-short-name } uudestaan
+third-party-restart-now = Käynnistä uudelleen
+third-party-restart-later = Käynnistä uudestaan myöhemmin
+third-party-blocked-by-builtin =
+ .title = { -brand-short-name }in estämä
+ .alt = { -brand-short-name }in estämä
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebauthn.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebauthn.ftl
new file mode 100644
index 0000000000..ed26fc1f24
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebauthn.ftl
@@ -0,0 +1,105 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for about:webauthn, a security token management page
+
+# Page title
+# 'WebAuthn' is a protocol name and should not be translated
+about-webauthn-page-title = Tietoja WebAuthnista
+
+## Section titles
+
+about-webauthn-info-section-title = Laitetiedot
+about-webauthn-pin-section-title = PIN-koodin hallinta
+about-webauthn-credential-management-section-title = Hallitse kirjautumistietoja
+about-webauthn-pin-required-section-title = PIN vaaditaan
+about-webauthn-confirm-deletion-section-title = Vahvista poistaminen
+
+## Info field texts
+
+about-webauthn-text-connect-device = Yhdistä suojausavain.
+# If multiple devices are plugged in, they will blink and we are asking the user to select one by touching the device they want.
+about-webauthn-text-select-device = Valitse haluamasi suojausavain koskettamalla laitetta.
+# CTAP2 refers to Client to Authenticator Protocol version 2
+about-webauthn-text-non-ctap2-device = Vaihtoehtoja ei voi hallita, koska suojausavain ei tue CTAP2:ta.
+about-webauthn-text-not-available = Ei saatavilla tällä alustalla.
+
+## Results label
+
+about-webauthn-results-success = Onnistui!
+about-webauthn-results-general-error = Virhe!
+# Variables:
+# $retriesLeft (Number): number of tries left
+about-webauthn-results-pin-invalid-error =
+ { $retriesLeft ->
+ [0] Virhe: Väärä PIN-koodi. Yritä uudelleen.
+ [one] Virhe: Väärä PIN-koodi. Yritä uudelleen. Sinulla on yksi yritys jäljellä.
+ *[other] Virhe: Väärä PIN-koodi. Yritä uudelleen. Sinulla on { $retriesLeft } yritystä jäljellä.
+ }
+about-webauthn-results-pin-too-short-error = Virhe: Annettu PIN on liian lyhyt.
+about-webauthn-results-pin-too-long-error = Virhe: Annettu PIN on liian pitkä.
+about-webauthn-results-pin-auth-blocked-error = Virhe: epäonnistuneita yrityksiä oli liian monta peräkkäin ja PIN-todennus on väliaikaisesti estetty. Laitteesi tarvitsee virrankatkaisun (irrota laite ja aseta se uudelleen).
+about-webauthn-results-cancelled-by-user-error = Virhe: Käyttäjä on perunut toiminnon.
+
+## Labels
+
+about-webauthn-new-pin-label = Uusi PIN-koodi:
+about-webauthn-repeat-pin-label = Toista uusi PIN-koodi:
+about-webauthn-current-pin-label = Nykyinen PIN-koodi:
+about-webauthn-pin-required-label = Anna PIN-koodisi:
+about-webauthn-credential-list-subsection-title = Kirjautumistiedot:
+about-webauthn-credential-list-empty = Laitteelta ei löytynyt kirjautumistietoja.
+about-webauthn-confirm-deletion-label = Olet poistamassa:
+
+## Buttons
+
+about-webauthn-current-set-pin-button = Aseta PIN-koodi
+about-webauthn-current-change-pin-button = Vaihda PIN-koodi
+# List is a verb, as in "Show list of credentials"
+about-webauthn-list-credentials-button = Listaa kirjautumistiedot
+about-webauthn-cancel-button = Peruuta
+about-webauthn-send-pin-button = OK
+about-webauthn-delete-button = Poista
+
+## Authenticator options fields
+## Option fields correspond to the CTAP2 option IDs and definitions found in https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#option-id
+
+about-webauthn-auth-option-uv = Käyttäjän vahvistus
+about-webauthn-auth-option-up = Käyttäjän läsnäolo
+about-webauthn-auth-option-clientpin = Asiakkaan PIN-koodi
+# FIDO_2_1_PRE should not be translated.
+about-webauthn-auth-option-userverificationmgmtpreview = Biometrisen rekisteröinnin prototyyppi (FIDO_2_1_PRE)
+about-webauthn-auth-option-uvbioenroll = Biometrisen rekisteröinnin lupa
+about-webauthn-auth-option-setminpinlength = Aseta PIN-koodin vähimmäispituus
+# MakeCredential should not be translated.
+about-webauthn-auth-option-makecreduvnotrqd = MakeCredential ilman käyttäjän vahvistusta
+about-webauthn-auth-option-alwaysuv = Vaadi aina käyttäjän vahvistus
+# Shows when boolean value for an option is True. True should not be translated.
+about-webauthn-auth-option-true = True
+# Shows when boolean value of an option is False. False should not be translated.
+about-webauthn-auth-option-false = False
+# If the value is missing (null), it means a certain feature is not supported.
+about-webauthn-auth-option-null = Ei tuettu
+
+## Authenticator info fields
+## Info fields correspond to the CTAP2 authenticatorGetInfo field member name and definitions found in https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#authenticatorGetInfo
+
+about-webauthn-auth-info-firmware-version = Laiteohjelmiston versio
+about-webauthn-auth-info-min-pin-length = PIN-koodin vähimmäispituus
+about-webauthn-auth-info-force-pin-change = Pakota PIN-koodin vaihto
+about-webauthn-auth-info-max-ser-large-blob-array = Suuren blob-taulukon enimmäiskoko
+about-webauthn-auth-info-algorithms = Algoritmit
+about-webauthn-auth-info-transports = Kuljetustavat
+about-webauthn-auth-info-pin-protocols = PIN-protokollat
+about-webauthn-auth-info-max-msg-size = Viestin enimmäiskoko
+# AAGUID should not be translated.
+about-webauthn-auth-info-aaguid = AAGUID
+about-webauthn-auth-info-extensions = Laajennukset
+about-webauthn-auth-info-versions = Versiot
+# Shows when boolean value for an info field is True. True should not be translated.
+about-webauthn-auth-info-true = True
+# Shows when boolean value for an info field is False. False should not be translated.
+about-webauthn-auth-info-false = False
+about-webauthn-auth-info-null = Ei tuettu
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebrtc.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..274f21bb25
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWebrtc.ftl
@@ -0,0 +1,312 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for about:webrtc, a troubleshooting and diagnostic page
+### for WebRTC calls. See https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
+
+# The text "WebRTC" is a proper noun and should not be translated.
+about-webrtc-document-title = WebRTC-tiedot
+# "about:webrtc" is a internal browser URL and should not be
+# translated. This string is used as a title for a file save dialog box.
+about-webrtc-save-page-dialog-title = tallenna about:webrtc nimellä
+
+## These labels are for a disclosure which contains the information for closed PeerConnection sections
+
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+about-webrtc-aec-logging-msg-label = AEC-lokitus
+about-webrtc-aec-logging-off-state-label = Käynnistä AEC-lokitus
+about-webrtc-aec-logging-on-state-label = Pysäytä AEC-lokitus
+about-webrtc-aec-logging-on-state-msg = AEC-lokitus päällä (keskustele soittajan kanssa muutama minuutti ja lopeta sen jälkeen kaappaus)
+about-webrtc-aec-logging-toggled-on-state-msg = AEC-lokitus päällä (keskustele soittajan kanssa muutama minuutti ja lopeta sen jälkeen kaappaus)
+about-webrtc-aec-logging-unavailable-sandbox = Ympäristömuuttuja MOZ_DISABLE_CONTENT_SANDBOX=1 vaaditaan AEC-lokien viemiseen. Aseta tämä muuttuja vain, jos ymmärrät mahdolliset riskit.
+# Variables:
+# $path (String) - The path to which the aec log file is saved.
+about-webrtc-aec-logging-toggled-off-state-msg = Kaapatut lokitiedostot kohteessa: { $path }
+
+##
+
+# The autorefresh checkbox causes a stats section to autorefresh its content when checked
+about-webrtc-auto-refresh-label = Automaattinen päivitys
+# Determines the default state of the Auto Refresh check boxes
+about-webrtc-auto-refresh-default-label = Automaattinen päivitys oletuksena
+# A button which forces a refresh of displayed statistics
+about-webrtc-force-refresh-button = Päivitä
+# "PeerConnection" is a proper noun associated with the WebRTC module. "ID" is
+# an abbreviation for Identifier. This string should not normally be translated
+# and is used as a data label.
+about-webrtc-peerconnection-id-label = PeerConnection-tunnus:
+# The number of DataChannels that a PeerConnection has opened
+about-webrtc-data-channels-opened-label = Avatut datakanavat:
+# The number of once open DataChannels that a PeerConnection has closed
+about-webrtc-data-channels-closed-label = Suljetut datakanavat:
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+about-webrtc-sdp-heading = SDP
+about-webrtc-local-sdp-heading = Paikallinen SDP
+about-webrtc-local-sdp-heading-offer = Paikallinen SDP (Tarjous)
+about-webrtc-local-sdp-heading-answer = Paikallinen SDP (Vastaus)
+about-webrtc-remote-sdp-heading = Etä-SDP
+about-webrtc-remote-sdp-heading-offer = Etä-SDP (Tarjous)
+about-webrtc-remote-sdp-heading-answer = Etä-SDP (Vastaus)
+about-webrtc-sdp-history-heading = SDP-historia
+about-webrtc-sdp-parsing-errors-heading = SDP-jäsennysvirheet
+
+##
+
+# "RTP" is an abbreviation for the Real-time Transport Protocol, an IETF
+# specification, and should not normally be translated. "Stats" is an
+# abbreviation for Statistics.
+about-webrtc-rtp-stats-heading = RTP-tiedot
+
+## "ICE" is an abbreviation for Interactive Connectivity Establishment, which
+## is an IETF protocol, and should not normally be translated.
+
+about-webrtc-ice-state = ICE-tila
+# "Stats" is an abbreviation for Statistics.
+about-webrtc-ice-stats-heading = ICE-tilastot
+about-webrtc-ice-restart-count-label = ICE-uudelleenkäynnistykset:
+about-webrtc-ice-rollback-count-label = ICE-peruutukset:
+about-webrtc-ice-pair-bytes-sent = Tavuja lähetetty:
+about-webrtc-ice-pair-bytes-received = Tavuja vastaanotettu:
+about-webrtc-ice-component-id = Komponentin tunniste
+
+## These adjectives are used to label a line of statistics collected for a peer
+## connection. The data represents either the local or remote end of the
+## connection.
+
+about-webrtc-type-local = Paikallinen
+about-webrtc-type-remote = Etä
+
+##
+
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+about-webrtc-nominated = Nimetty
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+# This represents an attribute of an ICE candidate.
+about-webrtc-selected = Valittu
+about-webrtc-save-page-label = Tallenna sivu
+about-webrtc-debug-mode-msg-label = Virheenjäljitystila
+about-webrtc-debug-mode-off-state-label = Käynnistä virheenjäljitystila
+about-webrtc-debug-mode-on-state-label = Pysäytä virheenjäljitystila
+about-webrtc-stats-heading = Istunnon tilastot
+about-webrtc-stats-clear = Tyhjennä historia
+about-webrtc-log-heading = Yhteysloki
+about-webrtc-log-clear = Tyhjennä loki
+about-webrtc-log-show-msg = näytä loki
+ .title = laajenna napsauttamalla
+about-webrtc-log-hide-msg = piilota loki
+ .title = kutista napsauttamalla
+about-webrtc-log-section-show-msg = Näytä loki
+ .title = Laajenna napsauttamalla
+about-webrtc-log-section-hide-msg = Piilota loki
+ .title = Kutista napsauttamalla
+about-webrtc-copy-report-button = Kopioi raportti
+
+## These are used to display a header for a PeerConnection.
+## Variables:
+## $browser-id (Number) - A numeric id identifying the browser tab for the PeerConnection.
+## $id (String) - A globally unique identifier for the PeerConnection.
+## $url (String) - The url of the site which opened the PeerConnection.
+## $now (Date) - The JavaScript timestamp at the time the report was generated.
+
+about-webrtc-connection-open = [ { $browser-id } | { $id } ] { $url } { $now }
+about-webrtc-connection-closed = [ { $browser-id } | { $id } ] { $url } (suljettu) { $now }
+
+## These are used to indicate what direction media is flowing.
+## Variables:
+## $codecs - a list of media codecs
+
+about-webrtc-short-send-receive-direction = Lähetä / vastaanota: { $codecs }
+about-webrtc-short-send-direction = Lähetä: { $codecs }
+about-webrtc-short-receive-direction = Vastaanota: { $codecs }
+
+##
+
+about-webrtc-local-candidate = Paikallinen ehdokas
+about-webrtc-remote-candidate = Etäehdokas
+about-webrtc-raw-candidates-heading = Kaikki raa’at ehdokkaat
+about-webrtc-raw-local-candidate = Raa’at paikalliset ehdokkaat
+about-webrtc-raw-remote-candidate = Raa’at etäehdokkaat
+about-webrtc-raw-cand-show-msg = näytä raa’at ehdokkaat
+ .title = laajenna napsauttamalla
+about-webrtc-raw-cand-hide-msg = piilota raa’at ehdokkaat
+ .title = kutista napsauttamalla
+about-webrtc-raw-cand-section-show-msg = Näytä raa’at ehdokkaat
+ .title = Laajenna napsauttamalla
+about-webrtc-raw-cand-section-hide-msg = Piilota raa’at ehdokkaat
+ .title = Kutista napsauttamalla
+about-webrtc-priority = Prioriteetti
+about-webrtc-fold-show-msg = näytä tiedot
+ .title = laajenna napsauttamalla
+about-webrtc-fold-hide-msg = piilota tiedot
+ .title = kutista napsauttamalla
+about-webrtc-fold-default-show-msg = Näytä tiedot
+ .title = Laajenna napsauttamalla
+about-webrtc-fold-default-hide-msg = Piilota tiedot
+ .title = Kutista napsauttamalla
+about-webrtc-dropped-frames-label = Pudotetut kehykset:
+about-webrtc-discarded-packets-label = Hylätyt paketit:
+about-webrtc-decoder-label = Purkaja
+about-webrtc-encoder-label = Enkoodaaja
+about-webrtc-show-tab-label = Näytä välilehti
+about-webrtc-current-framerate-label = Kuvataajuus
+about-webrtc-width-px = Leveys (px)
+about-webrtc-height-px = Korkeus (px)
+about-webrtc-consecutive-frames = Peräkkäiset ruudut
+about-webrtc-time-elapsed = Kulunut aika (s)
+about-webrtc-estimated-framerate = Arvioitu ruudun päivitys
+about-webrtc-rotation-degrees = Kierto (asteina)
+about-webrtc-first-frame-timestamp = Ensimmäisen ruudun vastaanoton aikaleima
+about-webrtc-last-frame-timestamp = Viimeisen ruudun vastaanoton aikaleima
+
+## SSRCs are identifiers that represent endpoints in an RTP stream
+
+# This is an SSRC on the local side of the connection that is receiving RTP
+about-webrtc-local-receive-ssrc = Paikallinen vastaanottava SSRC
+# This is an SSRC on the remote side of the connection that is sending RTP
+about-webrtc-remote-send-ssrc = Lähettävä etä-SSRC
+
+## These are displayed on the button that shows or hides the
+## PeerConnection configuration disclosure
+
+about-webrtc-pc-configuration-show-msg = Näytä kokoonpano
+about-webrtc-pc-configuration-hide-msg = Piilota kokoonpano
+
+##
+
+# An option whose value will not be displayed but instead noted as having been
+# provided
+about-webrtc-configuration-element-provided = Annettu
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+about-webrtc-configuration-element-not-provided = Ei annettu
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-custom-webrtc-configuration-heading = Käyttäjän asettamat WebRTC-asetukset
+# Section header for estimated bandwidths of WebRTC media flows
+about-webrtc-bandwidth-stats-heading = Arvioitu kaistanleveys
+# The ID of the MediaStreamTrack
+about-webrtc-track-identifier = Raidan tunniste
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+about-webrtc-send-bandwidth-bytes-sec = Lähetyksen kaistanleveys (tavua/s)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+about-webrtc-receive-bandwidth-bytes-sec = Vastaanottamisen kaistanleveys (tavua/s)
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+about-webrtc-max-padding-bytes-sec = Enimmäistäyte (tavua/s)
+# The amount of time inserted between packets to keep them spaced out
+about-webrtc-pacer-delay-ms = Pakettien välinen viive ms
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+about-webrtc-round-trip-time-ms = RTT ms
+# This is a section heading for video frame statistics for a MediaStreamTrack.
+# see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.
+# Variables:
+# $track-identifier (String) - The unique identifier for the MediaStreamTrack.
+about-webrtc-frame-stats-heading = Videon kehystilastot - MediaStreamTrack-tunniste: { $track-identifier }
+
+## These are paths used for saving the about:webrtc page or log files so
+## they can be attached to bug reports.
+## Variables:
+## $path (String) - The path to which the file is saved.
+
+about-webrtc-save-page-msg = sivu tallennettu kohteeseen: { $path }
+about-webrtc-debug-mode-off-state-msg = jäljitysloki kohteessa: { $path }
+about-webrtc-debug-mode-on-state-msg = virheenjäljitystila päällä, jäljitysloki kohteessa: { $path }
+about-webrtc-aec-logging-off-state-msg = kaapatut lokitiedostot kohteessa: { $path }
+# This path is used for saving the about:webrtc page so it can be attached to
+# bug reports.
+# Variables:
+# $path (String) - The path to which the file is saved.
+about-webrtc-save-page-complete-msg = Sivu tallennettu kohteeseen: { $path }
+# This is the total number of frames encoded or decoded over an RTP stream.
+# Variables:
+# $frames (Number) - The number of frames encoded or decoded.
+about-webrtc-frames =
+ { $frames ->
+ [one] { $frames } ruutu
+ *[other] { $frames } ruutua
+ }
+# This is the number of audio channels encoded or decoded over an RTP stream.
+# Variables:
+# $channels (Number) - The number of channels encoded or decoded.
+about-webrtc-channels =
+ { $channels ->
+ [one] { $channels } kanava
+ *[other] { $channels } kanavaa
+ }
+# This is the total number of packets received on the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets received.
+about-webrtc-received-label =
+ { $packets ->
+ [one] Vastaanotettu { $packets } paketti
+ *[other] Vastaanotettu { $packets } pakettia
+ }
+# This is the total number of packets lost by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets lost.
+about-webrtc-lost-label =
+ { $packets ->
+ [one] Kadotettu { $packets } paketti
+ *[other] Kadotettu { $packets } pakettia
+ }
+# This is the total number of packets sent by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets sent.
+about-webrtc-sent-label =
+ { $packets ->
+ [one] Lähetetty { $packets } paketti
+ *[other] Lähetetty { $packets } pakettia
+ }
+# Jitter is the variance in the arrival time of packets.
+# See: https://w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
+# Variables:
+# $jitter (Number) - The jitter.
+about-webrtc-jitter-label = Jitter { $jitter }
+# ICE candidates arriving after the remote answer arrives are considered trickled
+# (an attribute of an ICE candidate). These are highlighted in the ICE stats
+# table with light blue background.
+about-webrtc-trickle-caption-msg = Vastauksen jälkeen saapuvat ehdokkaat (trickled) korostetaan sinisellä
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+# This is used as a header for local SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-local = Asetettiin Paikallinen SDP ajanhetkellä { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for remote SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-remote = Asetettiin Etä-SDP ajanhetkellä { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+# $relative-timestamp (Number) - The timestamp relative to the timestamp of the earliest received SDP.
+about-webrtc-sdp-set-timestamp = Aikaleima { NUMBER($timestamp, useGrouping: "false") } (+ { $relative-timestamp } ms)
+
+## These are displayed on the button that shows or hides the SDP information disclosure
+
+about-webrtc-show-msg-sdp = Näytä SDP
+about-webrtc-hide-msg-sdp = Piilota SDP
+
+##
+
+
+## These are displayed on the button that shows or hides the Media Context information disclosure.
+## The Media Context is the set of preferences and detected capabilities that informs
+## the negotiated CODEC settings.
+
+about-webrtc-media-context-show-msg = Näytä mediakonteksti
+about-webrtc-media-context-hide-msg = Piilota mediakonteksti
+about-webrtc-media-context-heading = Median konteksti
+
+##
+
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWindowsMessages.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWindowsMessages.ftl
new file mode 100644
index 0000000000..0ed80bfb85
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutWindowsMessages.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Localization for the about:windows-messages page, which is only available
+### on the Windows operating system.
+### This page records and shows messages sent from the operating system to
+### individual browser windows. These messages can be useful in debugging
+### hard-to-reproduce issues with window sizing and position.
+
+# Windows refers to the operating system
+windows-messages-page-title = Windows-viestien tiedot
+windows-messages-intro =
+ Tällä sivulla näkyvät viimeisimmät Windowsin { -brand-short-name }in
+ selainikkunoille lähettämät viestit. Lihavoitu merkintä edustaa tätä
+ ikkunaa. Huomioi, että sivu näyttää viimeisimmät viestit sen
+ lataushetkellä, ja nähdäksesi uudet viestit, on sivu päivitettävä.
+windows-messages-copy-to-clipboard = Kopioi leikepöydälle
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/abuseReports.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..04aec2ed28
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/abuseReports.ftl
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Localized string used as the dialog window title.
+# "Report" is a noun in this case, "Report for AddonName".
+#
+# Variables:
+# $addon-name (string) - Name of the add-on being reported
+abuse-report-dialog-title = Raportti lisäosasta { $addon-name }
+abuse-report-title-extension = Raportoi tämä laajennus { -vendor-short-name }lle
+abuse-report-title-theme = Raportoi tämä teema { -vendor-short-name }lle
+abuse-report-subtitle = Mikä on ongelmana?
+# Variables:
+# $author-name (string) - Name of the add-on author
+abuse-report-addon-authored-by = tekijä <a data-l10n-name="author-name">{ $author-name }</a>
+abuse-report-learnmore =
+ Oletko epävarma, mikä ongelmista tulee valita?
+ <a data-l10n-name="learnmore-link">Lue lisää laajennusten ja teemojen raportoinnista</a>
+abuse-report-learnmore-intro = Oletko epävarma, mikä ongelmista tulee valita?
+abuse-report-learnmore-link = Lue lisää laajennusten ja teemojen raportoinnista
+abuse-report-submit-description = Kuvaa ongelma (valinnainen)
+abuse-report-textarea =
+ .placeholder = Jos kerrot tarkemmin kohtaamastasi ongelmasta, pystymme helpommin paikantamaan sen. Kerro vapaamuotoisesti, mitä olet huomannut. Kiitos, kun autat meitä pitämään verkon turvallisena.
+abuse-report-submit-note =
+ Huomio: Älä kirjoita henkilökohtaisia tietoja, kuten nimiä, sähköpostiosoitteita, puhelinnumeroita tai postiosoitteita.
+ { -vendor-short-name } säilyttää raportit pysyvästi.
+
+## Panel buttons.
+
+abuse-report-cancel-button = Peruuta
+abuse-report-next-button = Seuraava
+abuse-report-goback-button = Takaisin
+abuse-report-submit-button = Lähetä
+
+## Message bars descriptions.
+##
+## Variables:
+## $addon-name (string) - Name of the add-on
+
+abuse-report-messagebar-aborted = Raportti lisäosasta <span data-l10n-name="addon-name">{ $addon-name }</span> on peruttu.
+abuse-report-messagebar-submitting = Lähetetään raportti lisäosasta <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitted = Kiitos kun lähetit raportin. Haluatko poistaa lisäosan <span data-l10n-name="addon-name">{ $addon-name }</span>?
+abuse-report-messagebar-submitted-noremove = Kiitos kun lähetit raportin.
+abuse-report-messagebar-removed-extension = Kiitos kun lähetit raportin. Poistit laajennuksen <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-theme = Kiitos kun lähetit raportin. Poistit teeman <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error = Raportin lähettäminen lisäosasta <span data-l10n-name="addon-name">{ $addon-name }</span> epäonnistui.
+abuse-report-messagebar-error-recent-submit = Raporttia lisäosasta <span data-l10n-name="addon-name">{ $addon-name }</span> ei lähetetty, koska toinen raportti lähetettiin äskettäin.
+abuse-report-messagebar-aborted2 =
+ .message = Raportti lisäosasta { $addon-name } on peruttu.
+abuse-report-messagebar-submitting2 =
+ .message = Lähetetään raportti lisäosasta { $addon-name }.
+abuse-report-messagebar-submitted2 =
+ .message = Kiitos kun lähetit raportin. Haluatko poistaa lisäosan { $addon-name }?
+abuse-report-messagebar-submitted-noremove2 =
+ .message = Kiitos kun lähetit raportin.
+abuse-report-messagebar-removed-extension2 =
+ .message = Kiitos kun lähetit raportin. Poistit laajennuksen { $addon-name }.
+abuse-report-messagebar-removed-theme2 =
+ .message = Kiitos kun lähetit raportin. Poistit teeman { $addon-name }.
+abuse-report-messagebar-error2 =
+ .message = Raportin lähettäminen lisäosasta { $addon-name } epäonnistui.
+abuse-report-messagebar-error-recent-submit2 =
+ .message = Raporttia lisäosasta { $addon-name } ei lähetetty, koska toinen raportti lähetettiin äskettäin.
+
+## Message bars actions.
+
+abuse-report-messagebar-action-remove-extension = Kyllä, poista se
+abuse-report-messagebar-action-keep-extension = Ei, säilytä se
+abuse-report-messagebar-action-remove-sitepermission = Kyllä, poista se
+abuse-report-messagebar-action-keep-sitepermission = Ei, säilytä se
+abuse-report-messagebar-action-remove-theme = Kyllä, poista se
+abuse-report-messagebar-action-keep-theme = Ei, säilytä se
+abuse-report-messagebar-action-retry = Yritä uudelleen
+abuse-report-messagebar-action-cancel = Peruuta
+
+## Abuse report reasons (optionally paired with related examples and/or suggestions)
+
+abuse-report-damage-reason-v2 = Se vahingoitti tietokonettani tai vaaransi tietoni
+abuse-report-damage-example = Esimerkki: syötti haittaohjelmia tai varasti tietoja
+abuse-report-spam-reason-v2 = Se sisältää roskapostia tai sisällyttää ei-haluttua mainontaa
+abuse-report-spam-example = Esimerkki: lisää mainoksia verkkosivuille
+abuse-report-settings-reason-v2 = Se muutti hakukoneeni, aloitussivuni tai uuden välilehden sisällön kertomatta minulle tai kysymättä minulta
+abuse-report-settings-suggestions = Ennen kuin raportoit laajennuksesta, voit yrittää muuttaa asetuksia:
+abuse-report-settings-suggestions-search = Muuta haun oletusasetuksia
+abuse-report-settings-suggestions-homepage = Muuta aloitussivua tai uutta välilehteä
+abuse-report-deceptive-reason-v2 = Se väittää olevansa jotain mitä se ei ole
+abuse-report-deceptive-example = Esimerkki: Harhaanjohtava kuvaus tai kuvitus
+abuse-report-broken-reason-extension-v2 = Se ei toimi, se rikkoo verkkosivustojen esitystavan tai se hidastaa { -brand-product-name }ia
+abuse-report-broken-reason-sitepermission-v2 = Se ei toimi, se rikkoo verkkosivustoja tai se hidastaa { -brand-product-name }ia
+abuse-report-broken-reason-theme-v2 = Se ei toimi tai se rikkoo selaimen esitystavan
+abuse-report-broken-example = Esimerkki: ominaisuudet ovat hitaita, vaikeakäyttöisiä tai eivät toimi; osa sivuista ei lataudu tai ne näyttävät kummallisilta
+abuse-report-broken-suggestions-extension =
+ Vaikuttaa siltä, että löysit ohjelmistovirheen. Tämän raportin lähettämisen lisäksi paras
+ tapa saada toiminnallisuusongelma selvitettyä on olla yhteydessä laajennuksen kehittäjään.
+ <a data-l10n-name="support-link">Käy laajennuksen sivulla</a> nähdäksesi kehittäjän tiedot.
+abuse-report-broken-suggestions-sitepermission =
+ Vaikuttaa siltä, että löysit ohjelmistovirheen. Tämän raportin lähettämisen lisäksi paras
+ tapa saada toiminnallisuusongelma selvitettyä on olla yhteydessä sivuston kehittäjään.
+ <a data-l10n-name="support-link">Käy sivustolla</a> nähdäksesi kehittäjän tiedot.
+abuse-report-broken-suggestions-theme =
+ Vaikuttaa siltä, että löysit ohjelmistovirheen. Tämän raportin lähettämisen lisäksi paras
+ tapa saada toiminnallisuusongelma selvitettyä on olla yhteydessä teeman kehittäjään.
+ <a data-l10n-name="support-link">Käy teeman sivulla</a> nähdäksesi kehittäjän tiedot.
+abuse-report-policy-reason-v2 = Se sisältää vihantäyteistä, väkivaltaista tai laitonta sisältöä
+abuse-report-policy-suggestions =
+ Huomio: Tekijänoikeus- ja tavaramerkkiongelmat tulee raportoida eri tavalla.
+ Raportoi ongelma <a data-l10n-name="report-infringement-link">näiden ohjeiden mukaisesti</a>.
+abuse-report-unwanted-reason-v2 = En koskaan halunnut sitä, enkä tiedä miten pääsen siitä eroon
+abuse-report-unwanted-example = Esimerkki: sovellus asensi sen ilman lupaani
+abuse-report-other-reason = Jotain muuta
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/certviewer.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..7a8dc564be
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/certviewer.ftl
@@ -0,0 +1,122 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+certificate-viewer-certificate-section-title = Varmenne
+
+## Error messages
+
+certificate-viewer-error-message = Varmenteen tietoja ei löydy tai varmenne on viallinen. Yritä uudelleen.
+certificate-viewer-error-title = Jokin meni pieleen.
+
+## Certificate information labels
+
+certificate-viewer-algorithm = Algoritmi
+certificate-viewer-certificate-authority = Varmenteen myöntäjä
+certificate-viewer-cipher-suite = Salaaja
+certificate-viewer-common-name = Yleinen nimi
+certificate-viewer-email-address = Sähköpostiosoite
+# Variables:
+# $firstCertName (String) - Common Name for the displayed certificate
+certificate-viewer-tab-title = Varmenne { $firstCertName }
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-country = Perustusmaa
+certificate-viewer-country = Maa
+certificate-viewer-curve = Käyrä
+certificate-viewer-distribution-point = Jakelupiste
+certificate-viewer-dns-name = DNS-nimi
+certificate-viewer-ip-address = IP-osoite
+certificate-viewer-other-name = Muu nimi
+certificate-viewer-exponent = Eksponentti
+certificate-viewer-id = Tunniste
+certificate-viewer-key-exchange-group = Avainvaihtoryhmä
+certificate-viewer-key-id = Avaimen tunniste
+certificate-viewer-key-size = Avaimen koko
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-locality = Perustuspaikka
+certificate-viewer-locality = Sijainti
+certificate-viewer-location = Sijainti
+certificate-viewer-logid = Lokin tunnus
+certificate-viewer-method = Metodi
+certificate-viewer-modulus = Modulus
+certificate-viewer-name = Nimi
+certificate-viewer-not-after = Ei jälkeen
+certificate-viewer-not-before = Ei ennen
+certificate-viewer-organization = Organisaatio
+certificate-viewer-organizational-unit = Organisaatioyksikkö
+certificate-viewer-policy = Käytäntö
+certificate-viewer-protocol = Protokolla
+certificate-viewer-public-value = Julkinen arvo
+certificate-viewer-purposes = Käyttötarkoitukset
+certificate-viewer-qualifier = Tarkenne
+certificate-viewer-qualifiers = Tarkenteet
+certificate-viewer-required = Vaaditaan
+certificate-viewer-unsupported = &lt;ei tuettu&gt;
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-state-province = Perustuspaikkakunta
+certificate-viewer-state-province = Paikkakunta
+certificate-viewer-sha-1 = SHA-1
+certificate-viewer-sha-256 = SHA-256
+certificate-viewer-serial-number = Sarjanumero
+certificate-viewer-signature-algorithm = Allekirjoitusalgoritmi
+certificate-viewer-signature-scheme = Allekirjoitusjärjestelmä
+certificate-viewer-timestamp = Aikaleima
+certificate-viewer-value = Arvo
+certificate-viewer-version = Versio
+certificate-viewer-business-category = Liiketoimintaluokka
+certificate-viewer-subject-name = Kohteen nimi
+certificate-viewer-issuer-name = Myöntäjän nimi
+certificate-viewer-validity = Voimassaolo
+certificate-viewer-subject-alt-names = Kohteen Alt-nimet
+certificate-viewer-public-key-info = Julkisen avaimen tiedot
+certificate-viewer-miscellaneous = Sekalaista
+certificate-viewer-fingerprints = Sormenjäljet
+certificate-viewer-basic-constraints = Perusrajoitukset
+certificate-viewer-key-usages = Avaimen käyttö
+certificate-viewer-extended-key-usages = Laajennettu avaimen käyttö
+certificate-viewer-ocsp-stapling = OCSP-nidonta
+certificate-viewer-subject-key-id = Kohteen avaimen tunnus
+certificate-viewer-authority-key-id = Varmentajan avaimen tunnus
+certificate-viewer-authority-info-aia = Varmentajan tiedonsaanti (AIA)
+certificate-viewer-certificate-policies = Varmennekäytännöt
+certificate-viewer-embedded-scts = Upotetut SCT:t
+certificate-viewer-crl-endpoints = CRL-jakelupisteet
+
+# This message is used as a row header in the Miscellaneous section.
+# The associated data cell contains links to download the certificate.
+certificate-viewer-download = Lataa
+# This message is used to replace boolean values (true/false) in several certificate fields, e.g. Certificate Authority
+# Variables:
+# $boolean (String) - true/false value for the specific field
+certificate-viewer-boolean =
+ { $boolean ->
+ [true] Kyllä
+ *[false] Ei
+ }
+
+## Variables:
+## $fileName (String) - The file name to save the PEM data in, derived from the common name from the certificate being displayed.
+
+certificate-viewer-download-pem = PEM (varmenne)
+ .download = { $fileName }.pem
+certificate-viewer-download-pem-chain = PEM (varmenneketju)
+ .download = { $fileName }-chain.pem
+
+# The title attribute for Critical Extension icon
+certificate-viewer-critical-extension =
+ .title = Tämä laajennus on merkitty kriittiseksi; se tarkoittaa, että asiakasohjelmien on hylättävä varmenne, jos ne eivät ymmärrä sitä.
+certificate-viewer-export = Vie
+ .download = { $fileName }.pem
+
+##
+
+# Label for a tab where we haven't found a better label:
+certificate-viewer-unknown-group-label = (tuntematon)
+
+## Labels for tabs displayed in stand-alone about:certificate page
+
+certificate-viewer-tab-mine = Omat varmenteet
+certificate-viewer-tab-people = Ihmiset
+certificate-viewer-tab-servers = Palvelimet
+certificate-viewer-tab-ca = Varmentajat
+certificate-viewer-tab-unkonwn = Tuntematon
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/config.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/config.ftl
new file mode 100644
index 0000000000..494fe383c1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/config.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## These strings appear on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = Jatka varoen
+about-config-intro-warning-text = Lisäasetusten muuttaminen voi vaikuttaa { -brand-short-name }in suorituskykyyn tai tietoturvaan.
+about-config-intro-warning-checkbox = Varoita, kun yritän avata nämä asetukset
+about-config-intro-warning-button = Hyväksy riski ja jatka
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = Näiden asetusten muuttaminen voi vaikuttaa { -brand-short-name }in suorituskykyyn tai turvallisuuteen.
+
+about-config-page-title = Lisäasetukset
+
+about-config-search-input1 =
+ .placeholder = Etsi asetuksen nimellä
+about-config-show-all = Näytä kaikki
+
+about-config-show-only-modified = Näytä vain muokatut asetukset
+
+about-config-pref-add-button =
+ .title = Lisää
+about-config-pref-toggle-button =
+ .title = Vaihda tilaa
+about-config-pref-edit-button =
+ .title = Muokkaa
+about-config-pref-save-button =
+ .title = Tallenna
+about-config-pref-reset-button =
+ .title = Nollaa
+about-config-pref-delete-button =
+ .title = Poista
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = Totuusarvo
+about-config-pref-add-type-number = Luku
+about-config-pref-add-type-string = Merkkijono
+
+## Preferences with a non-default value are differentiated visually, and at the
+## same time the state is made accessible to screen readers using an aria-label
+## that won't be visible or copied to the clipboard.
+##
+## Variables:
+## $value (String): The full value of the preference.
+
+about-config-pref-accessible-value-default =
+ .aria-label = { $value } (oletus)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (muutettu)
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/url-classifier.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..5d518142f3
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/url-classifier.ftl
@@ -0,0 +1,58 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+url-classifier-title = URL Classifier Information
+url-classifier-search-title = Search
+url-classifier-search-result-title = Results
+url-classifier-search-result-uri = URI: { $uri }
+url-classifier-search-result-list = List of tables: { $list }
+url-classifier-search-input = URL
+url-classifier-search-error-invalid-url = Invalid URL
+url-classifier-search-error-no-features = No features selected
+url-classifier-search-btn = Start searching
+url-classifier-search-features = Features
+url-classifier-search-listType = List type
+url-classifier-provider-title = Provider
+url-classifier-provider = Provider
+url-classifier-provider-last-update-time = Last update time
+url-classifier-provider-next-update-time = Next update time
+url-classifier-provider-back-off-time = Back-off time
+url-classifier-provider-last-update-status = Last update status
+url-classifier-provider-update-btn = Update
+url-classifier-cache-title = Cache
+url-classifier-cache-refresh-btn = Refresh
+url-classifier-cache-clear-btn = Clear
+url-classifier-cache-table-name = Table name
+url-classifier-cache-ncache-entries = Number of negative cache entries
+url-classifier-cache-pcache-entries = Number of positive cache entries
+url-classifier-cache-show-entries = Show entries
+url-classifier-cache-entries = Cache Entries
+url-classifier-cache-prefix = Prefix
+url-classifier-cache-ncache-expiry = Negative cache expiry
+url-classifier-cache-fullhash = Full hash
+url-classifier-cache-pcache-expiry = Positive cache expiry
+url-classifier-debug-title = Debug
+url-classifier-debug-module-btn = Set Log Modules
+url-classifier-debug-file-btn = Set Log File
+url-classifier-debug-js-log-chk = Set JS Log
+url-classifier-debug-sb-modules = Safe Browsing log modules
+url-classifier-debug-modules = Current log modules
+url-classifier-debug-sbjs-modules = Safe Browsing JS log
+url-classifier-debug-file = Current log file
+
+url-classifier-trigger-update = Trigger Update
+url-classifier-not-available = N/A
+url-classifier-disable-sbjs-log = Disable Safe Browsing JS Log
+url-classifier-enable-sbjs-log = Enable Safe Browsing JS Log
+url-classifier-enabled = Enabled
+url-classifier-disabled = Disabled
+url-classifier-updating = updating
+url-classifier-cannot-update = cannot update
+url-classifier-success = success
+
+## Variables
+## $error (string) - Error message
+
+url-classifier-update-error = update error ({ $error })
+url-classifier-download-error = download error ({ $error })
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/branding/accounts.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/branding/accounts.ftl
new file mode 100644
index 0000000000..0e2ef74147
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/branding/accounts.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name =
+ { $case ->
+ [ablative] Firefox-tililtä
+ [adessive] Firefox-tilillä
+ [allative] Firefox-tilille
+ [genitive] Firefox-tilin
+ [illative] Firefox-tiliin
+ [partitive] Firefox-tiliä
+ *[nominative] Firefox-tili
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/branding/brandings.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/branding/brandings.ftl
new file mode 100644
index 0000000000..d4143f42ce
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/branding/brandings.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-lockwise-brand-short-name = Lockwise
+-monitor-brand-name = Firefox Monitor
+-monitor-brand-short-name = Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
+-screenshots-brand-name = Firefox Screenshots
+-mozilla-vpn-brand-name = Mozilla VPN
+-profiler-brand-name = Firefox Profiler
+-translations-brand-name = Firefox Translations
+-focus-brand-name = Firefox Focus
+-relay-brand-name = Firefox Relay
+-relay-brand-short-name = Relay
+-fakespot-brand-name = Fakespot
+# Note the name of the website is capitalized.
+-fakespot-website-name = Fakespot.com
+# The particle "by" can be localized, "Fakespot" and "Mozilla" should not be localized or transliterated.
+-fakespot-brand-full-name = Fakespot Mozillalta
+# “Suggest” can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Firefox-ehdotukset
+# ”Home" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-home-brand-name = Firefoxin aloitussivu
+# View" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Firefox-näkymä
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/contentanalysis/contentanalysis.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/contentanalysis/contentanalysis.ftl
new file mode 100644
index 0000000000..e18c7eef28
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/contentanalysis/contentanalysis.ftl
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+contentanalysis-alert-title = Sisällön analyysi
+# Variables:
+# $content - Description of the content being warned about, such as "clipboard" or "aFile.txt"
+contentanalysis-slow-agent-notification = Sisältöanalyysityökalulta kestää kauan vastata resurssille "{ $content }"
+contentanalysis-slow-agent-dialog-title = Sisältöanalyysi käynnissä
+# Variables:
+# $content - Description of the content being warned about, such as "clipboard" or "aFile.txt"
+contentanalysis-slow-agent-dialog-body = Sisältöanalyysi analysoi resurssia "{ $content }"
+contentanalysis-operationtype-clipboard = leikepöytä
+contentanalysis-operationtype-dropped-text = pudotettu teksti
+contentanalysis-notification-title = Sisällön analyysi
+# Variables:
+# $content - Description of the content being reported, such as "clipboard" or "aFile.txt"
+# $response - The response received from the content analysis agent, such as "REPORT_ONLY"
+contentanalysis-genericresponse-message = Sisältöanalyysi vastasi { $response } resurssille: { $content }
+# Variables:
+# $content - Description of the content being blocked, such as "clipboard" or "aFile.txt"
+contentanalysis-block-message = Organisaatiosi käyttää tietojen menetyksen esto-ohjelmistoa, joka on estänyt tämän sisällön: { $content }.
+# Variables:
+# $content - Description of the content being blocked, such as "clipboard" or "aFile.txt"
+contentanalysis-error-message = Tietojen menetyksen esto-ohjelmiston kanssa kommunikoinnissa tapahtui virhe. Siirto evätty resurssille: { $content }.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUI.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUI.ftl
new file mode 100644
index 0000000000..659f86d87d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUI.ftl
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+download-ui-confirm-title = Peruutetaanko kaikki lataukset?
+
+## Variables:
+## $downloadsCount (Number): The current downloads count.
+
+download-ui-confirm-quit-cancel-downloads =
+ { $downloadsCount ->
+ [1] Jos lopetat nyt, yksi lataus peruutetaan. Lopetetaanko?
+ *[other] Jos lopetat nyt, { $downloadsCount } tiedoston lataus peruutetaan. Lopetetaanko?
+ }
+download-ui-confirm-quit-cancel-downloads-mac =
+ { $downloadsCount ->
+ [1] Jos lopetat nyt, yksi lataus peruutetaan. Lopetetaanko?
+ *[other] Jos lopetat nyt, { $downloadsCount } tiedoston lataus peruutetaan. Lopetetaanko?
+ }
+download-ui-dont-quit-button =
+ { PLATFORM() ->
+ [mac] Älä lopeta
+ *[other] Älä lopeta
+ }
+
+download-ui-confirm-offline-cancel-downloads =
+ { $downloadsCount ->
+ [1] Jos nyt siirryt yhteydettömään tilaan, yhden tiedoston lataus peruutetaan. Siirrytäänkö yhteydettömään tilaan?
+ *[other] Jos nyt siirryt yhteydettömään tilaan, { $downloadsCount } tiedoston lataus peruutetaan. Siirrytäänkö yhteydettömään tilaan?
+ }
+download-ui-dont-go-offline-button = Pysy yhteystilassa
+
+download-ui-confirm-leave-private-browsing-windows-cancel-downloads =
+ { $downloadsCount ->
+ [1] Jos suljet kaikki yksityisen selaustilan ikkunat, 1 lataus peruutetaan. Suljetaanko yksityisen selaustilan ikkunat?
+ *[other] Jos suljet kaikki yksityisen selaustilan ikkunat, { $downloadsCount } latausta peruutetaan. Suljetaanko yksityisen selaustilan ikkunat?
+ }
+download-ui-dont-leave-private-browsing-button = Pysy yksityisessä selaustilassa
+
+download-ui-cancel-downloads-ok =
+ { $downloadsCount ->
+ [1] Peruuta lataus
+ *[other] Peruuta { $downloadsCount } latausta
+ }
+
+##
+
+download-ui-file-executable-security-warning-title = Suoritetaanko ohjelmatiedosto?
+# Variables:
+# $executable (String): The executable file to be opened.
+download-ui-file-executable-security-warning = ”{ $executable }” on suoritettava ohjelmatiedosto. Ohjelmatiedostot voivat sisältää viruksia tai muita haittaohjelmia, jotka voivat vahingoittaa tietokonettasi. Vain luotettuja tiedostoja tulisi suorittaa. Suoritetaanko tiedosto ”{ $executable }”?
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUtils.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUtils.ftl
new file mode 100644
index 0000000000..be15712e9e
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/downloads/downloadUtils.ftl
@@ -0,0 +1,106 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Variables:
+## $timeValue (number) - Number of units of time
+
+# Short form for seconds
+download-utils-short-seconds =
+ { $timeValue ->
+ [one] s
+ *[other] s
+ }
+# Short form for minutes
+download-utils-short-minutes =
+ { $timeValue ->
+ [one] min
+ *[other] min
+ }
+# Short form for hours
+download-utils-short-hours =
+ { $timeValue ->
+ [one] h
+ *[other] h
+ }
+# Short form for days
+download-utils-short-days =
+ { $timeValue ->
+ [one] vrk
+ *[other] vrk
+ }
+
+##
+
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB (2.2 MB/sec)
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+# $rate (String): rate number.
+# $unit (String): rate unit.
+download-utils-status = { $timeLeft } — { $transfer } ({ $rate } { $unit }/s)
+# If download speed is a JavaScript Infinity value, this phrase is used
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB (Really fast)
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+download-utils-status-infinite-rate = { $timeLeft } — { $transfer } (Todella nopea)
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB
+# Variables:
+# $timeLeft (String): time left.
+# $transfer (String): transfer progress.
+download-utils-status-no-rate = { $timeLeft } — { $transfer }
+
+download-utils-bytes = tavua
+download-utils-kilobyte = kt
+download-utils-megabyte = Mt
+download-utils-gigabyte = Gt
+
+# example: 1.1 of 333 MB
+# Variables:
+# $progress (String): progress number.
+# $total (String): total number.
+# $totalUnits (String): total unit.
+download-utils-transfer-same-units = { $progress } / { $total } { $totalUnits }
+# example: 11.1 MB of 3.3 GB
+# Variables:
+# $progress (String): progress number.
+# $progressUnits (String): progress unit.
+# $total (String): total number.
+# $totalUnits (String): total unit.
+download-utils-transfer-diff-units = { $progress } { $progressUnits } / { $total } { $totalUnits }
+# example: 111 KB
+# Variables:
+# $progress (String): progress number.
+# $progressUnits (String): unit.
+download-utils-transfer-no-total = { $progress } { $progressUnits }
+
+# examples: 1m; 11h
+# Variables:
+# $time (String): time number.
+# $unit (String): time unit.
+download-utils-time-pair = { $time } { $unit }
+# examples: 1m left; 11h left
+# Variables:
+# $time (String): time left, including a unit
+download-utils-time-left-single = { $time } jäljellä
+# examples: 11h 2m left; 1d 22h left
+# Variables:
+# $time1 (String): time left, including a unit
+# $time2 (String): smaller measure of time left, including a unit
+download-utils-time-left-double = { $time1 } { $time2 } jäljellä
+download-utils-time-few-seconds = Muutama sekunti jäljellä
+download-utils-time-unknown = Tuntematon aika jäljellä
+
+# Variables:
+# $scheme (String): URI scheme like data: jar: about:
+download-utils-done-scheme = { $scheme }-resurssi
+# Special case of done-scheme for file:
+# This is used as an eTLD replacement for local files, so make it lower case
+download-utils-done-file-scheme = paikallinen tiedosto
+
+# Displayed time for files finished yesterday
+download-utils-yesterday = eilen
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/featuregates/features.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..199eb9aa1f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/featuregates/features.ftl
@@ -0,0 +1,58 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+ .label = CSS: Masonry Layout
+experimental-features-css-masonry-description = Ottaa käyttöön tuen kokeelliselle CSS Masonry Layout -ominaisuudelle. Yleiskuvauksen ominaisuudesta saa englanniksi <a data-l10n-name="explainer">tästä selostuksesta</a>. Palautetta voi antaa englanniksi kommentoimalla <a data-l10n-name="w3c-issue">tähän GitHub-issueen</a> tai <a data-l10n-name="bug">tähän bugiraporttiin</a>.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-gpu2 =
+ .label = Web API: WebGPU
+experimental-features-web-gpu-description3 = <a data-l10n-name="wikipedia-webgpu">WebGPU-rajapinta</a> tarjoaa matalan tason tuen laskentaan ja grafiikan renderöintiin tietokoneen tai laitteen <a data-l10n-name="wikipedia-gpu">näytönohjainta (GPU)</a> käyttäen. <a data-l10n-name="spec">Määrittelyn</a> ensimmäinen versio on valmistumassa. Katso <a data-l10n-name="bugzilla">bugi 1616739</a> saadaksesi lisätietoja.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-media-jxl =
+ .label = Media: JPEG XL
+experimental-features-media-jxl-description = Kun tämä ominaisuus on käytössä, { -brand-short-name } tukee JPEG XL (JXL) -muotoa. Kyseessä on paranneltu kuvatiedostomuoto, joka tukee häviötöntä siirtymää perinteisistä JPEG-tiedostoista. Katso <a data-l10n-name="bugzilla">bug 1539075 -kuvaus</a> saadaksesi lisätietoja.
+
+experimental-features-devtools-compatibility-panel =
+ .label = Web-työkalut: Compatibility-paneeli
+experimental-features-devtools-compatibility-panel-description = Sivupaneeli sivun Inspector-työkalulle. Näyttää tietoja sovelluksen selainyhteensopivuudesta. Lisätietoja on <a data-l10n-name="bugzilla">bugissa 1584464</a>.
+
+
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-none-requires-secure2 =
+ .label = Evästeet: SameSite=None vaatii secure-attribuutin
+experimental-features-cookie-samesite-none-requires-secure2-description = Attribuutin ”SameSite=None” sisältävät evästeet vaativat secure-attribuutin. Tämä ominaisuus vaatii ominaisuuden ”Evästeet: SameSite=Lax oletusarvoisesti”.
+
+# about:home should be kept in English, as it refers to the the URI for
+# the internal default home page.
+experimental-features-abouthome-startup-cache =
+ .label = about:home-sivun käynnistyksen välimuisti
+experimental-features-abouthome-startup-cache-description = Käynnistyksessä oletuksena ladattavan about:home-sivun välimuisti. Sen tarkoitus on parantaa käynnistymisen suorituskykyä.
+
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support =
+ .label = Web-työkalut: Service Worker -vianjäljitys
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Ottaa käyttöön kokeellisen Service Worker -tuen Debugger-paneelissa. Tämä voi hidastaa web-työkaluja ja lisätä muistinkulutusta.
+
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+ .label = WebRTC:n globaalit vaimennusohjaimet
+experimental-features-webrtc-global-mute-toggles-description = Lisää ohjaimet WebRTC:n globaaliin jakamisilmaisimeen. Ohjaimet mahdollistavat mikrofonin ja kameran vaimentamisen globaalisti.
+
+# JS JIT Warp project
+experimental-features-js-warp =
+ .label = JavaScript JIT: Warp
+experimental-features-js-warp-description = Ota käyttöön Warp, projekti javaScript-kielen suorituskyvyn ja muistinkäytön parantamiseksi.
+
+# Search during IME
+experimental-features-ime-search =
+ .label = Osoitepalkki: näytä tulokset IME-koostamisen aikana
+experimental-features-ime-search-description = IME (Input Method Editor, kirjoitustapaeditori) on työkalu, jonka avulla voit kirjoittaa tavallisella näppäimistöllä monimutkaisia symboleja, kuten itäaasialaisia tai intialaisia symboleja. Tämän kokeilun ottaminen käyttöön pitää osoitepalkin auki näyttäen hakutulokset ja -ehdotukset samalla, kun käytät tekstinsyöttöä IME:n avulla. Huomaa, että IME saattaa näyttää paneelin, peittäen osoitepalkin hakutulokset. Siksi tätä asetusta suositellaan vain, kun IME ei käytä tämäntyyppistä paneelia.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/formautofill/formAutofill.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/formautofill/formAutofill.ftl
new file mode 100644
index 0000000000..d0c2392da2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/formautofill/formAutofill.ftl
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## OS Prompt Dialog
+
+# The macos string is preceded by the operating system (macOS) with "Firefox is trying to ",
+# and has a period added to its end. Make sure to test in your locale.
+autofill-use-payment-method-os-prompt-macos = käyttää tallennettuja maksutapatietoja
+autofill-use-payment-method-os-prompt-windows = { -brand-short-name } yrittää käyttää tallennettuja maksutapatietoja. Vahvista pääsy tälle Windows-tilille alapuolella.
+autofill-use-payment-method-os-prompt-other = { -brand-short-name } yrittää käyttää tallennettuja maksutapatietoja.
+# In macOS, this string is preceded by the operating system with "Firefox is trying to ",
+# and has a period added to its end. Make sure to test in your locale.
+autofill-edit-payment-method-os-prompt-macos = näyttää tallennettuja maksutapatietoja
+autofill-edit-payment-method-os-prompt-windows = { -brand-short-name } yrittää näyttää tallennettuja maksutapatietoja. Vahvista pääsy tälle Windows-tilille alapuolella.
+autofill-edit-payment-method-os-prompt-other = { -brand-short-name } yrittää näyttää tallennettuja maksutapatietoja.
+# The links lead users to Form Autofill browser preferences.
+autofill-options-link = Lomakkeiden automaattitäytön asetukset
+autofill-options-link-osx = Lomakkeiden automaattitäytön asetukset
+
+## The credit card capture doorhanger
+
+
+# Used on the doorhanger when an credit card change is detected.
+
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/alert.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/alert.ftl
new file mode 100644
index 0000000000..e693cce948
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/alert.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+alert-close =
+ .tooltiptext = Sulje tämä ilmoitus
+alert-settings-title =
+ .tooltiptext = Asetukset
+
+## Reminder Notifications
+
+notification-default-dismiss = Hylkää
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/appPicker.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/appPicker.ftl
new file mode 100644
index 0000000000..9d38940e45
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/appPicker.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+app-picker-browse-button =
+ .buttonlabelextra2 = Selaa…
+app-picker-send-msg =
+ .value = Lähetä kohteeseen:
+app-picker-no-app-found =
+ .value = Ei löytynyt yhtäkään ohjelmaa tälle tiedostotyypille.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/browser-utils.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/browser-utils.ftl
new file mode 100644
index 0000000000..ca2b0b7788
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/browser-utils.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Used for data: URLs where we don't have any useful origin information
+browser-utils-url-data = (data)
+
+# Used for extension URLs
+# Variables:
+# $extension (string) - Name of the extension that generated the URL
+browser-utils-url-extension = Laajennus ({ $extension })
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/commonDialog.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/commonDialog.ftl
new file mode 100644
index 0000000000..55f1d5162e
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/commonDialog.ftl
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+common-dialog-title-null = Tämä sivu sanoo
+common-dialog-title-system = { -brand-short-name }
+# Title displayed when the origin of a web dialog is unknown.
+common-dialog-title-unknown = Tuntematon
+# An indicator showing that Firefox is waiting for an operation to finish
+common-dialog-spinner =
+ .alt = Varattu
+common-dialog-username =
+ .value = Käyttäjätunnus
+common-dialog-password =
+ .value = Salasana
+common-dialog-copy-cmd =
+ .label = Kopioi
+ .accesskey = K
+common-dialog-select-all-cmd =
+ .label = Valitse kaikki
+ .accesskey = V
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/contextual-identity.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/contextual-identity.ftl
new file mode 100644
index 0000000000..3a81633f17
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/contextual-identity.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Names of the default containers in Firefox.
+## See https://support.mozilla.org/kb/how-use-firefox-containers
+
+user-context-personal =
+ .label = Omat
+ .accesskey = O
+user-context-work =
+ .label = Työ
+ .accesskey = T
+user-context-banking =
+ .label = Raha
+ .accesskey = R
+user-context-shopping =
+ .label = Kaupat
+ .accesskey = K
+
+##
+
+user-context-none =
+ .label = Eristämätön
+ .accesskey = E
+user-context-manage-containers =
+ .label = Muokkaa eristystiloja
+ .accesskey = M
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/cookieBannerHandling.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/cookieBannerHandling.ftl
new file mode 100644
index 0000000000..ced83eb0b1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/cookieBannerHandling.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+cookie-banner-handled-webconsole = { -brand-shorter-name } käsitteli evästeilmoituksen käyttäjän puolesta.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/createProfileWizard.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..2902efed43
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/createProfileWizard.ftl
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+create-profile-window2 =
+ .title = Ohjattu profiilin luonti
+ .style = min-width: 45em; min-height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header2 =
+ { PLATFORM() ->
+ [macos] Esittely
+ *[other] Tervetuloa
+ }
+
+profile-creation-explanation-1 = { -brand-short-name } tallentaa asetuksesi ja muut tiedot henkilökohtaiseen profiilisi.
+
+profile-creation-explanation-2 = Jos samaa { -brand-short-name }ia käyttää useampi henkilö, voit pitää jokaisen käyttäjän tiedot erillään luomalla heille nimikkoprofiilit.
+
+profile-creation-explanation-3 = Vaikka olisit tämän { -brand-short-name }in ainoa käyttäjä, ainakin yhden profiilin täytyy silti olla luotuna. Halutessasi voit luoda useita profiileja erilaisia käyttötilanteita varten. Voit esimerkiksi luoda omat profiilit työ- ja vapaa-ajan käyttöön.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] Aloita profiilin luominen valitsemalla Seuraava.
+ *[other] Aloita profiilin luominen valitsemalla Seuraava.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header2 =
+ { PLATFORM() ->
+ [macos] Viimeistely
+ *[other] Viimeistely
+ }
+
+profile-creation-intro = Jos luot useita profiileja, voit erotella ne nimen perusteella. Voit käyttää annettua nimeä tai keksiä oman.
+
+profile-prompt = Anna uuden profiilin nimi:
+ .accesskey = A
+
+profile-default-name =
+ .value = Oletuskäyttäjä
+
+profile-directory-explanation = Asetukset ja muut käyttäjäkohtaiset tiedot tallennetaan kansioon:
+
+create-profile-choose-folder =
+ .label = Valitse kansio…
+ .accesskey = V
+
+create-profile-use-default =
+ .label = Käytä oletuskansiota
+ .accesskey = O
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/cspErrors.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/cspErrors.ftl
new file mode 100644
index 0000000000..7509113033
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/cspErrors.ftl
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+csp-error-missing-directive = Policy is missing a required '{ $directive }' directive
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $keyword (String): the name of a CSP keyword, usually 'unsafe-inline'.
+csp-error-illegal-keyword = '{ $directive }' directive contains a forbidden { $keyword } keyword
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-protocol = '{ $directive }' directive contains a forbidden { $scheme }: protocol source
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-missing-host = { $scheme }: protocol requires a host in '{ $directive }' directives
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $source (String): the name of a CSP source, usually 'self'.
+csp-error-missing-source = '{ $directive }' must include the source { $source }
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-host-wildcard = { $scheme }: wildcard sources in '{ $directive }' directives must include at least one non-generic sub-domain (e.g., *.example.com rather than *.com)
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/datepicker.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/datepicker.ftl
new file mode 100644
index 0000000000..084bb89521
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/datepicker.ftl
@@ -0,0 +1,50 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Datepicker - Dialog for default HTML's <input type="date">
+
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of a date picker calendar and a month-year selection
+## spinner dialogs for HTML's <input type="date">
+
+date-picker-label =
+ .aria-label = Valitse päivä
+date-spinner-label =
+ .aria-label = Valitse kuukausi ja vuosi
+
+## Text of the clear button
+
+date-picker-clear-button = Tyhjennä
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through months of a calendar
+
+date-picker-previous =
+ .aria-label = Edellinen kuukausi
+date-picker-next =
+ .aria-label = Seuraava kuukausi
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the type of a value/unit that is being selected within a
+## Month/Year date spinner dialogs on a datepicker calendar dialog
+
+date-spinner-month =
+ .aria-label = Kuukausi
+date-spinner-year =
+ .aria-label = Vuosi
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through either months
+## or years of a Month/Year date spinner on a datepicker calendar dialog
+
+date-spinner-month-previous =
+ .aria-label = Edellinen kuukausi
+date-spinner-month-next =
+ .aria-label = Seuraava kuukausi
+date-spinner-year-previous =
+ .aria-label = Edellinen vuosi
+date-spinner-year-next =
+ .aria-label = Seuraava vuosi
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/datetimebox.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/datetimebox.ftl
new file mode 100644
index 0000000000..58d87be3b5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/datetimebox.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Placeholders for date and time inputs
+
+datetime-year-placeholder = vvvv
+datetime-month-placeholder = kk
+datetime-day-placeholder = pp
+datetime-time-placeholder = --
+
+## Field labels for input type=date
+
+datetime-year =
+ .aria-label = Vuosi
+datetime-month =
+ .aria-label = Kuukausi
+datetime-day =
+ .aria-label = Päivä
+
+## Field labels for input type=time
+
+datetime-hour =
+ .aria-label = Tunnit
+datetime-minute =
+ .aria-label = Minuutit
+datetime-second =
+ .aria-label = Sekunnit
+datetime-millisecond =
+ .aria-label = Millisekunnit
+datetime-dayperiod =
+ .aria-label = Aamupäivä/iltapäivä
+
+## Calendar button for input type=date
+
+
+# This label is used by screenreaders and other assistive technology
+# to indicate the purpose of a toggle button inside of the <input type="date">
+# field that opens/closes a date picker calendar dialog
+
+datetime-calendar =
+ .aria-label = Kalenteri
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/extensionPermissions.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/extensionPermissions.ftl
new file mode 100644
index 0000000000..9ef74e7ae1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/extensionPermissions.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-bookmarks = Lue ja muokkaa kirjanmerkkejä
+webext-perms-description-browserSettings = Lue ja muokkaa selaimen asetuksia
+webext-perms-description-browsingData = Tyhjennä viimeaikainen historia, evästeet ja liittyvät tiedot
+webext-perms-description-clipboardRead = Lue tietoja leikepöydältä
+webext-perms-description-clipboardWrite = Kirjoita tietoja leikepöydälle
+webext-perms-description-declarativeNetRequest = Estä sisältö millä tahansa sivulla
+webext-perms-description-declarativeNetRequestFeedback = Lue selaushistoriaasi
+webext-perms-description-devtools = Laajenna web-työkaluita käyttämään avoimissa välilehdissä olevia tietoja
+webext-perms-description-downloads = Lataa tiedostoja sekä lue ja muokkaa selaimen lataushistoriaa
+webext-perms-description-downloads-open = Avaa tietokoneellesi ladattuja tiedostoja
+webext-perms-description-find = Lue kaikkien avointen välilehtien tekstiä
+webext-perms-description-geolocation = Käytä sijaintiasi
+webext-perms-description-history = Käytä selaushistoriaa
+webext-perms-description-management = Tarkkaile laajennusten käyttöä ja hallitse teemoja
+webext-perms-description-nativeMessaging = Vaihda viestejä muidenkin ohjelmien kuin { -brand-short-name }in kanssa
+webext-perms-description-notifications = Näytä ilmoituksia sinulle
+webext-perms-description-pkcs11 = Tarjoa kryptografisia autentikointipalveluita
+webext-perms-description-privacy = Lue ja muokkaa tietosuoja-asetuksia
+webext-perms-description-proxy = Hallitse selaimen välityspalvelinasetuksia
+webext-perms-description-sessions = Käytä viimeksi suljettuja välilehtiä
+webext-perms-description-tabs = Käytä selaimen välilehtiä
+webext-perms-description-tabHide = Piilota ja näytä selaimen välilehtiä
+webext-perms-description-topSites = Käytä selaushistoriaa
+webext-perms-description-webNavigation = Tarkkaile selaimen toimintaa siirryttäessä sivulta toiselle
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/extensions.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/extensions.ftl
new file mode 100644
index 0000000000..6bbe7a3ddb
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/extensions.ftl
@@ -0,0 +1,105 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Headers used in the webextension permissions dialog,
+## See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+## for an example of the full dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension.
+
+webext-perms-header = Lisätäänkö { $extension }?
+webext-perms-header-with-perms = Lisätäänkö { $extension }? Tällä laajennuksella on seuraavat oikeudet:
+webext-perms-header-unsigned = Lisätäänkö { $extension }? Tämä laajennus on varmentamaton. Haitalliset laajennukset voivat varastaa yksityisiä tietoja tai vaarantaa tietokoneesi turvallisuuden. Lisää se vain, jos luotat lähteeseen.
+webext-perms-header-unsigned-with-perms = Lisätäänkö { $extension }? Tämä laajennus on varmentamaton. Haitalliset laajennukset voivat varastaa yksityisiä tietoja tai vaarantaa tietokoneesi turvallisuuden. Lisää se vain, jos luotat lähteeseen. Tällä laajennuksella on seuraavat oikeudet:
+webext-perms-sideload-header = { $extension } lisätty
+webext-perms-optional-perms-header = { $extension } pyytää lisäoikeuksia.
+
+##
+
+webext-perms-add =
+ .label = Lisää
+ .accesskey = L
+webext-perms-cancel =
+ .label = Peruuta
+ .accesskey = P
+webext-perms-sideload-text = Ohjelma tietokoneellasi asensi lisäosan, joka voi vaikuttaa selaimeesi. Tarkasta lisäosan pyytämät oikeudet ja valitse Ota käyttöön tai Peruuta (pitääksesi sen poissa käytöstä).
+webext-perms-sideload-text-no-perms = Ohjelma tietokoneellasi asensi lisäosan, joka voi vaikuttaa selaimeesi. Valitse Ota käyttöön tai Peruuta (pitääksesi sen poissa käytöstä).
+webext-perms-sideload-enable =
+ .label = Ota käyttöön
+ .accesskey = O
+webext-perms-sideload-cancel =
+ .label = Peruuta
+ .accesskey = P
+# Variables:
+# $extension (String): replaced with the localized name of the extension.
+webext-perms-update-text = { $extension } on päivitetty. Sinun täytyy hyväksyä uudet oikeudet ennen kuin uusi versio asennetaan. Jos valitset ”Peruuta”, laajennuksen nykyinen versio säilytetään. Tämän laajennuksen uudet oikeudet ovat:
+webext-perms-update-accept =
+ .label = Päivitä
+ .accesskey = i
+webext-perms-optional-perms-list-intro = Se haluaa:
+webext-perms-optional-perms-allow =
+ .label = Salli
+ .accesskey = S
+webext-perms-optional-perms-deny =
+ .label = Estä
+ .accesskey = E
+webext-perms-host-description-all-urls = Käytä dataasi kaikilta sivustoilta
+# Variables:
+# $domain (String): will be replaced by the DNS domain for which a webextension is requesting access (e.g., mozilla.org)
+webext-perms-host-description-wildcard = Käytä dataasi { $domain }-verkkotunnuksen sivustoilta
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-wildcards =
+ { $domainCount ->
+ [one] Käytä dataasi { $domainCount } muulta verkkotunnukselta
+ *[other] Käytä dataasi { $domainCount } muulta verkkotunnukselta
+ }
+# Variables:
+# $domain (String): will be replaced by the DNS host name for which a webextension is requesting access (e.g., www.mozilla.org)
+webext-perms-host-description-one-site = Käytä dataasi { $domain }-verkkotunnukselta
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-sites =
+ { $domainCount ->
+ [one] Käytä dataasi { $domainCount } muulta sivustolta
+ *[other] Käytä dataasi { $domainCount } muulta sivustolta
+ }
+
+## Headers used in the webextension permissions dialog for synthetic add-ons.
+## The part of the string describing what privileges the extension gives should be consistent
+## with the value of webext-site-perms-description-gated-perms-{sitePermission}.
+## Note, this string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $hostname (String): the hostname of the site the add-on is being installed from.
+
+webext-site-perms-header-with-gated-perms-midi = Tämä lisäosa antaa sivustolle { $hostname } pääsyn MIDI-laitteisiisi.
+webext-site-perms-header-with-gated-perms-midi-sysex = Tämä lisäosa antaa sivustolle { $hostname } pääsyn MIDI-laitteisiisi (SysEx-tuella).
+
+##
+
+# This string is used as description in the webextension permissions dialog for synthetic add-ons.
+# Note, the empty line is used to create a line break between the two sections.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webext-site-perms-description-gated-perms-midi =
+ Nämä ovat yleensä plug-in-laitteita, kuten äänisyntetisaattoreita, mutta ne voivat myös olla sisäänrakennettuja tietokoneeseesi.
+
+ Verkkosivustot eivät yleensä saa käyttää MIDI-laitteita. Vääränlainen käyttö voi aiheuttaa vahinkoa tai vaarantaa turvallisuuden.
+
+## Headers used in the webextension permissions dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension being installed.
+## $hostname (String): will be replaced by the DNS host name for which a webextension enables permissions.
+
+webext-site-perms-header-with-perms = Lisätäänkö { $extension }? Tämä laajennus antaa seuraavat ominaisuudet kohteelle { $hostname }:
+webext-site-perms-header-unsigned-with-perms = Lisätäänkö { $extension }? Tämä laajennus on varmentamaton. Haitalliset laajennukset voivat varastaa yksityisiä tietoja tai vaarantaa tietokoneen turvallisuuden. Lisää se vain, jos luotat lähteeseen. Tämä laajennus antaa seuraavat ominaisuudet kohteelle { $hostname }:
+
+## These should remain in sync with permissions.NAME.label in sitePermissions.properties
+
+webext-site-perms-midi = Käytä MIDI-laitteita
+webext-site-perms-midi-sysex = Käytä MIDI-laitteita SysEx-tuella
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/handlerDialog.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..13aa16b0c1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/handlerDialog.ftl
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Permission Dialog
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+## $appName (string) - Name of the application that will be opened.
+## $extension (string) - Name of extension that initiated the request
+
+permission-dialog-description = Saako tämä sivusto avata { $scheme }-linkin?
+permission-dialog-description-file = Saako tämä tiedosto avata { $scheme }-linkin?
+permission-dialog-description-host = Saako sivusto { $host } avata { $scheme }-linkin?
+permission-dialog-description-extension = Haluatko sallia laajennuksen { $extension } avata { $scheme }-linkin?
+permission-dialog-description-app = Saako tämä sivusto avata { $scheme }-linkin sovelluksella { $appName }?
+permission-dialog-description-host-app = Saako sivusto { $host } avata { $scheme }-linkin sovelluksella { $appName }?
+permission-dialog-description-file-app = Saako tämä tiedosto avata { $scheme }-linkin sovelluksella { $appName }?
+permission-dialog-description-extension-app = Haluatko sallia laajennuksen { $extension } avata { $scheme }-linkin sovelluksella { $appName }?
+permission-dialog-description-system-app = Avaa { $scheme }-linkki sovelluksella { $appName }?
+permission-dialog-description-system-noapp = Avataanko { $scheme }-linkki?
+
+## Please keep the emphasis around the hostname and scheme (ie the
+## `<strong>` HTML tags). Please also keep the hostname as close to the start
+## of the sentence as your language's grammar allows.
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+
+permission-dialog-remember = Salli aina sivuston <strong>{ $host }</strong> avata <strong>{ $scheme }</strong>-linkit
+permission-dialog-remember-file = Salli aina tämän tiedoston avata <strong>{ $scheme }</strong>-linkit
+permission-dialog-remember-extension = Salli tämän laajennuksen avata aina <strong>{ $scheme }</strong>-linkit
+
+##
+
+permission-dialog-btn-open-link =
+ .label = Avaa linkki
+ .accessKey = A
+permission-dialog-btn-choose-app =
+ .label = Valitse ohjelma
+ .accessKey = V
+permission-dialog-unset-description = Sinun on valittava ohjelma.
+permission-dialog-set-change-app-link = Valitse eri ohjelma.
+
+## Chooser dialog
+## Variables:
+## $scheme (string) - The type of link that's being opened.
+
+chooser-window =
+ .title = Valitse ohjelma
+ .style = min-width: 26em; min-height: 26em;
+chooser-dialog =
+ .buttonlabelaccept = Avaa linkki
+ .buttonaccesskeyaccept = A
+chooser-dialog-description = Valitse sovellus, jolla { $scheme }-linkki avataan.
+# Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
+chooser-dialog-remember = Käytä aina tätä sovellusta avaamaan <strong>{ $scheme }</strong>-linkit
+chooser-dialog-remember-extra =
+ { PLATFORM() ->
+ [windows] Tämän voi vaihtaa { -brand-short-name }in asetuksista.
+ *[other] Tämän voi vaihtaa { -brand-short-name }in asetuksista.
+ }
+choose-other-app-description = Valitse toinen ohjelma
+choose-app-btn =
+ .label = Valitse…
+ .accessKey = V
+choose-other-app-window-title = Vaihda ohjelmaa…
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+choose-dialog-privatebrowsing-disabled = Poistettu käytöstä yksityisissä ikkunoissa
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/htmlForm.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/htmlForm.ftl
new file mode 100644
index 0000000000..ba4a43248d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/htmlForm.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This string is shown at the end of the tooltip text for
+# <input type='file' multiple> when there are more than 21 files selected
+# (when we will only list the first 20, plus an "and X more" line).
+# Variables:
+# $fileCount (Number): The number of remaining files.
+input-file-and-more-files =
+ { $fileCount ->
+ [one] ja yksi muu
+ *[other] ja { $fileCount } muuta
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/mozCard.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozCard.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozCard.ftl
@@ -0,0 +1,3 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/mozFiveStar.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozFiveStar.ftl
new file mode 100644
index 0000000000..3f373f2c03
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozFiveStar.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The rating out of 5 stars.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+moz-five-star-rating =
+ .title = Arvostelu { NUMBER($rating, maximumFractionDigits: 1) }/5
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/mozMessageBar.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozMessageBar.ftl
new file mode 100644
index 0000000000..86f562bc65
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozMessageBar.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+moz-message-bar-close-button =
+ .aria-label = Sulje
+ .title = Sulje
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/mozSupportLink.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozSupportLink.ftl
new file mode 100644
index 0000000000..9613a886c7
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/mozSupportLink.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+moz-support-link-text = Lue lisää
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/notification.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/notification.ftl
new file mode 100644
index 0000000000..38e3910e1d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/notification.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+notification-learnmore-default-label =
+ .value = Lue lisää
+
+# This label is read by screen readers when focusing the close button for an
+# "infobar" (message shown when for example a popup is blocked),
+# and shown when hovering over the button
+notification-close-button =
+ .aria-label = Sulje
+ .title = Sulje
+
+close-notification-message =
+ .tooltiptext = Sulje tämä viesti
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/popupnotification.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/popupnotification.ftl
new file mode 100644
index 0000000000..4c9dbd5e89
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/popupnotification.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+popup-notification-learn-more = Lue lisää
+popup-notification-more-actions-button =
+ .aria-label = Lisää toimintoja
+popup-notification-default-button =
+ .label = OK
+ .accesskey = O
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/processTypes.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..9aec9f814a
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/processTypes.ftl
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+##
+## Localization for remote types defined in RemoteType.h
+##
+
+process-type-web = Verkkosisältö
+
+# process used to run privileged about pages,
+# such as about:home
+process-type-privilegedabout = Etuoikeutettu about-sivu
+
+# process used to run privileged mozilla pages,
+# such as accounts.firefox.com
+process-type-privilegedmozilla = Etuoikeutettu Mozilla-sisältö
+
+process-type-extension = Laajennus
+
+# process used to open file:// URLs
+process-type-file = Paikallinen tiedosto
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Eristetty verkkosisältö
+
+# process used to isolate a ServiceWorker to improve
+# performance
+process-type-webserviceworker = Eristetty Service Worker
+
+# process preallocated; may change to other types
+process-type-prealloc = Esijaettu
+
+##
+## Localization for Gecko process types defined in GeckoProcessTypes.h
+##
+
+process-type-default = Pääprosessi
+process-type-tab = Välilehti
+
+# process used to communicate with the GPU for
+# graphics acceleration
+process-type-gpu = GPU
+
+# process used to perform network operations
+process-type-socket = Pistoke
+
+# process used to decode media
+process-type-rdd = RDD
+
+# process used to run some IPC actor in their own sandbox
+process-type-utility = Eristetty IPC-toimija
+
+##
+## Other
+##
+
+# fallback
+process-type-unknown = Tuntematon
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/profileDowngrade.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..99bc4d91da
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/profileDowngrade.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profiledowngrade-window2 =
+ .title = Olet käynnistänyt vanhan { -brand-product-name }-version
+ .style = min-width: 490px;
+profiledowngrade-window-create =
+ .label = Luo uusi profiili
+profiledowngrade-sync = Vanhan { -brand-product-name }-version käyttäminen voi vioittaa nykyiseen { -brand-product-name }-profiiliin tallennetut kirjanmerkit ja selaushistorian. Suojellaksesi tietojasi, luo uusi profiili tätä { -brand-short-name }-asennusta varten. Voit aina kirjautua sisään { -fxaccount-brand-name }llä ja synkronoida kirjanmerkit sekä selaushistorian profiilien välillä.
+profiledowngrade-sync2 = Vanhan { -brand-product-name }-version käyttäminen voi vioittaa nykyiseen { -brand-product-name }-profiiliin tallennetut kirjanmerkit ja selaushistorian. Suojataksesi tietosi, luo uusi profiili tätä { -brand-short-name }-asennusta varten. Voit aina kirjautua sisään tilillä ja synkronoida kirjanmerkit sekä selaushistorian profiilien välillä.
+profiledowngrade-nosync = Vanhan { -brand-product-name }-version käyttäminen voi vioittaa nykyiseen { -brand-product-name }-profiiliin tallennetut kirjanmerkit ja selaushistorian. Suojellaksesi tietojasi, luo uusi profiili tätä { -brand-short-name }-asennusta varten.
+profiledowngrade-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Sulje
+ *[other] Sulje
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/profileSelection.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..d0a7fbdbf5
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/profileSelection.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Valitse käyttäjäprofiili
+
+profile-selection-button-accept =
+ .label = Käynnistä { -brand-short-name }
+
+profile-selection-button-cancel =
+ .label = Lopeta
+
+profile-selection-new-button =
+ .label = Luo profiili…
+ .accesskey = L
+
+profile-selection-rename-button =
+ .label = Muuta nimeä…
+ .accesskey = M
+
+profile-selection-delete-button =
+ .label = Poista profiili…
+ .accesskey = o
+
+profile-selection-conflict-message = Toinen { -brand-product-name }-kopio on tehnyt muutoksia profiileihin. { -brand-short-name } täytyy käynnistää uudestaan ennen lisämuutosten tekemistä.
+
+## Messages used in the profile manager
+
+profile-manager-description = { -brand-short-name } säilyttää asetuksesi ja muut tiedot käyttäjäprofiilissasi.
+
+profile-manager-work-offline =
+ .label = Yhteydetön tila
+ .accesskey = Y
+
+profile-manager-use-selected =
+ .label = Käytä valittua profiilia aina käynnistettäessä
+ .accesskey = K
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/resetProfile.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..c95d283be1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/resetProfile.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+refresh-profile-dialog-title = Palautetaanko { -brand-short-name } oletusasetuksiin?
+refresh-profile-dialog-button =
+ .label = Palauta { -brand-short-name } uudenveroiseksi
+refresh-profile-dialog-description = Aloita puhtaalta pöydältä korjataksesi suorituskykyyn liittyvät ongelmat. Tämä poistaa laajennukset ja mukautukset. Et menetä oleellisia tietoja kuten kirjanmerkkejä ja salasanoja.
+refresh-profile = Viritä { -brand-short-name }
+refresh-profile-button = Palauta { -brand-short-name } uudenveroiseksi…
+refresh-profile-learn-more = Lue lisää
+
+refresh-profile-progress =
+ .title = Palauta { -brand-short-name } uudeksi
+refresh-profile-progress-description = Melkein valmista…
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/resistFingerPrinting.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/resistFingerPrinting.ftl
new file mode 100644
index 0000000000..6b771de02c
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/resistFingerPrinting.ftl
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Spoof Accept-Language prompt
+privacy-spoof-english = Kieliasetusten vaihtaminen englantiin tekee sinun yksilöimisestä vaikeampaa ja parantaa yksityisyyttäsi. Haluatko pyytää verkkosivuista englanninkieliset versiot?
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000..270ab24ba8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Viimeistelläänkö { -brand-short-name }in asennus?
+prompt-to-install-message = Suorita tämä yhden vaiheen asennus pitääksesi { -brand-short-name } ajan tasalla ja estääksesi tietojen häviäminen. { -brand-short-name } lisätään Sovellukset-kansioosi ja Dockiin.
+prompt-to-install-yes-button = Asenna
+prompt-to-install-no-button = Älä asenna
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name }in asennus epäonnistui.
+install-failed-message = { -brand-short-name }in asennus epäonnistui, mutta se pysyy käynnissä.
+
+## Strings for a dialog that recommends to the user to start an existing
+## installation of the app in the Applications directory if one is detected,
+## rather than the app that was double-clicked in a .dmg.
+
+prompt-to-launch-existing-app-title = Avataanko olemassa oleva { -brand-short-name }-sovellus?
+prompt-to-launch-existing-app-message = Sinulla on jo { -brand-short-name } asennettuna. Käytä asennettuna olevaa sovellusta pysyäksesi ajan tasalla ja estääksesi tietojen häviäminen.
+prompt-to-launch-existing-app-yes-button = Avaa olemassa oleva
+prompt-to-launch-existing-app-no-button = Ei kiitos
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/tabprompts.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/tabprompts.ftl
new file mode 100644
index 0000000000..7541de6fc4
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/tabprompts.ftl
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tabmodalprompt-username =
+ .value = Käyttäjätunnus:
+tabmodalprompt-password =
+ .value = Salasana:
+
+tabmodalprompt-ok-button =
+ .label = OK
+tabmodalprompt-cancel-button =
+ .label = Peruuta
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..d2ee4b74cb
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+text-action-undo =
+ .label = Kumoa
+ .accesskey = m
+text-action-undo-shortcut =
+ .key = Z
+text-action-redo =
+ .label = Tee uudelleen
+ .accesskey = T
+text-action-redo-shortcut =
+ .key = Y
+text-action-cut =
+ .label = Leikkaa
+ .accesskey = L
+text-action-cut-shortcut =
+ .key = X
+text-action-copy =
+ .label = Kopioi
+ .accesskey = K
+text-action-copy-shortcut =
+ .key = C
+# This command copies the link, removing additional
+# query parameters used to track users across sites.
+text-action-strip-on-share =
+ .label = Kopioi ilman sivustoseurantaa
+ .accesskey = n
+text-action-paste =
+ .label = Liitä
+ .accesskey = i
+text-action-paste-no-formatting =
+ .label = Liitä ilman muotoilua
+ .accesskey = i
+text-action-paste-shortcut =
+ .key = V
+text-action-delete =
+ .label = Poista
+ .accesskey = o
+text-action-select-all =
+ .label = Valitse kaikki
+ .accesskey = V
+text-action-select-all-shortcut =
+ .key = A
+text-action-spell-no-suggestions =
+ .label = Ei oikeinkirjoituksen ehdotuksia
+text-action-spell-add-to-dictionary =
+ .label = Lisää sanastoon
+ .accesskey = L
+text-action-spell-undo-add-to-dictionary =
+ .label = Kumoa sanastoon lisääminen
+ .accesskey = K
+text-action-spell-check-toggle =
+ .label = Oikolue
+ .accesskey = O
+text-action-spell-add-dictionaries =
+ .label = Lisää sanastoja…
+ .accesskey = ä
+text-action-spell-dictionaries =
+ .label = Kielet
+ .accesskey = K
+text-action-search-text-box-clear =
+ .title = Tyhjennä
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/timepicker.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/timepicker.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/timepicker.ftl
@@ -0,0 +1,3 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/tree.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/tree.ftl
new file mode 100644
index 0000000000..e73365bf83
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/tree.ftl
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tree-columnpicker-restore-order =
+ .label = Palauta sarakkeiden järjestys
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/unknownContentType.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..30d65ca4ee
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/unknownContentType.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+unknowncontenttype-handleinternally =
+ .label = Avaa { -brand-short-name(case: "inessive") }
+ .accesskey = v
+
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] Asetuksia voi muuttaa { -brand-short-name }in asetuksista.
+ *[other] Asetuksia voi muuttaa { -brand-short-name }in asetuksista.
+ }
+
+unknowncontenttype-intro = Olet avaamassa tiedostoa:
+unknowncontenttype-which-is = Tiedosto on tyyppiä:
+unknowncontenttype-from = osoitteesta:
+unknowncontenttype-prompt = Tallennetaanko tiedosto?
+unknowncontenttype-action-question = Mitä tiedostolle tehdään?
+unknowncontenttype-open-with =
+ .label = Avaa ohjelmalla
+ .accesskey = A
+unknowncontenttype-other =
+ .label = Muu…
+unknowncontenttype-choose-handler =
+ .label =
+ { PLATFORM() ->
+ [macos] Valitse…
+ *[other] Selaa…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] V
+ *[other] S
+ }
+unknowncontenttype-save-file =
+ .label = Tallenna tiedosto
+ .accesskey = T
+unknowncontenttype-remember-choice =
+ .label = Tee näin oletuksena tämäntyyppisille tiedostoille.
+ .accesskey = n
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/videocontrols.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..8f73141006
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/videocontrols.ftl
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This label is used by screenreaders and other assistive technology to indicate
+# to users how much of the video has been loaded from the network. It will be
+# followed by the percentage of the video that has loaded (e.g. "Loading: 13%").
+videocontrols-buffer-bar-label = Ladataan:
+videocontrols-volume-control =
+ .aria-label = Äänenvoimakkuus
+videocontrols-closed-caption-button =
+ .aria-label = Tekstitys
+
+videocontrols-play-button =
+ .aria-label = Toista
+videocontrols-pause-button =
+ .aria-label = Pysäytä
+videocontrols-mute-button =
+ .aria-label = Vaimenna ääni
+videocontrols-unmute-button =
+ .aria-label = Palauta ääni
+videocontrols-enterfullscreen-button =
+ .aria-label = Koko näytön tila
+videocontrols-exitfullscreen-button =
+ .aria-label = Poistu koko näytön tilasta
+videocontrols-casting-button-label =
+ .aria-label = Lähetä ruudulle
+videocontrols-closed-caption-off =
+ .offlabel = Pois käytöstä
+
+# This string is used as part of the Picture-in-Picture video toggle button when
+# the mouse is hovering it.
+videocontrols-picture-in-picture-label = Kuva kuvassa
+
+# This string is used as the label for a variation of the Picture-in-Picture video
+# toggle button when the mouse is hovering over the video.
+videocontrols-picture-in-picture-toggle-label2 = Ponnahduta ulos tämä video
+
+videocontrols-picture-in-picture-explainer3 = Useampi näyttö tekee kaikesta hauskempaa. Toista tämä video, kun teet muita asioita samanaikaisesti.
+
+videocontrols-error-aborted = Videon lataaminen pysähtynyt.
+videocontrols-error-network = Videon toisto keskeytynyt verkkovirheen vuoksi.
+videocontrols-error-decode = Videota ei voida toistaa, koska tiedosto on vioittunut.
+videocontrols-error-src-not-supported = Videon tiedostomuoto tai MIME-tyyppi ei ole tuettu.
+videocontrols-error-no-source = Ei löytynyt videota tuetussa tiedostomuodossa ja MIME-tyypissä.
+videocontrols-error-generic = Videon toisto keskeytynyt tuntemattoman virheen vuoksi.
+videocontrols-status-picture-in-picture = Tätä videota toistetaan kuva kuvassa -tilassa.
+
+# This message shows the current position and total video duration
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+#
+# For example, when at the 5 minute mark in a 6 hour long video,
+# $position would be "5:00" and $duration would be "6:00:00", result
+# string would be "5:00 / 6:00:00". Note that $duration is not always
+# available. For example, when at the 5 minute mark in an unknown
+# duration video, $position would be "5:00" and the string which is
+# surrounded by <span> would be deleted, result string would be "5:00".
+videocontrols-position-and-duration-labels = { $position }<span data-l10n-name="position-duration-format"> / { $duration }</span>
+
+# This is a plain text version of the videocontrols-position-and-duration-labels
+# string, used by screenreaders.
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+videocontrols-scrubber-position-and-duration =
+ .aria-label = Sijainti
+ .aria-valuetext = { $position } / { $duration }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/wizard.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..0d142f27a9
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/wizard.ftl
@@ -0,0 +1,37 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+wizard-macos-button-back =
+ .label = Edellinen
+ .accesskey = E
+wizard-linux-button-back =
+ .label = Takaisin
+ .accesskey = T
+wizard-win-button-back =
+ .label = < Edellinen
+ .accesskey = E
+
+wizard-macos-button-next =
+ .label = Jatka
+ .accesskey = J
+wizard-linux-button-next =
+ .label = Seuraava
+ .accesskey = S
+wizard-win-button-next =
+ .label = Seuraava >
+ .accesskey = S
+
+wizard-macos-button-finish =
+ .label = Valmis
+wizard-linux-button-finish =
+ .label = Valmis
+wizard-win-button-finish =
+ .label = Valmis
+
+wizard-macos-button-cancel =
+ .label = Peru
+wizard-linux-button-cancel =
+ .label = Peru
+wizard-win-button-cancel =
+ .label = Peruuta
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/intl/languageNames.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..8df35d64e1
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/intl/languageNames.ftl
@@ -0,0 +1,215 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+language-name-aa = afar
+language-name-ab = abhaasi
+language-name-ach = atšoli
+language-name-ae = avesta
+language-name-af = afrikaans
+language-name-ak = akan
+language-name-am = amhara
+language-name-an = aragonia
+language-name-ar = arabia
+language-name-as = assami
+language-name-ast = asturia
+language-name-av = avaari
+language-name-ay = aimara
+language-name-az = azeri
+language-name-ba = baškiiri
+language-name-be = valkovenäjä
+language-name-bg = bulgaria
+language-name-bh = bihari
+language-name-bi = bislama
+language-name-bm = bambara
+language-name-bn = bengali
+language-name-bo = tiibet
+language-name-br = bretoni
+language-name-bs = bosnia
+language-name-ca = katalaani
+language-name-cak = kaqchikel
+language-name-ce = tšetšeeni
+language-name-ch = tšamorro
+language-name-co = korsika
+language-name-cr = cree
+language-name-crh = krimintataari
+language-name-cs = tšekki
+language-name-csb = kašubi
+language-name-cu = kirkkoslaavi
+language-name-cv = tšuvassi
+language-name-cy = kymri
+language-name-da = tanska
+language-name-de = saksa
+language-name-dsb = alasorbi
+language-name-dv = divehi
+language-name-dz = dzongkha
+language-name-ee = ewe
+language-name-el = kreikka
+language-name-en = englanti
+language-name-eo = esperanto
+language-name-es = espanja
+language-name-et = viro
+language-name-eu = baski
+language-name-fa = persia
+language-name-ff = fulani
+language-name-fi = suomi
+language-name-fj = fidži
+language-name-fo = fääri
+language-name-fr = ranska
+language-name-fur = friuli
+language-name-fy = friisi
+language-name-ga = iiri
+language-name-gd = gaeli
+language-name-gl = galicia
+language-name-gn = guarani
+language-name-gu = gudžarati
+language-name-gv = manksi
+language-name-ha = hausa
+language-name-haw = havaiji
+language-name-he = heprea
+language-name-hi = hindi
+language-name-hil = hiligaino
+language-name-ho = hiri-motu
+language-name-hr = kroatia
+language-name-hsb = yläsorbi
+language-name-ht = haiti
+language-name-hu = unkari
+language-name-hy = armenia
+language-name-hz = herero
+language-name-ia = interlingua
+language-name-id = indonesia
+language-name-ie = interlingue
+language-name-ig = igbo
+language-name-ii = sichuanin-yi
+language-name-ik = inupiaq
+language-name-io = ido
+language-name-is = islanti
+language-name-it = italia
+language-name-iu = inuktitut
+language-name-ja = japani
+language-name-jv = jaava
+language-name-ka = georgia
+language-name-kab = kabyyli
+language-name-kg = kongo
+language-name-ki = kikuju
+language-name-kj = kuanjama
+language-name-kk = kazakki
+language-name-kl = grönlanti
+language-name-km = khmer
+language-name-kn = kannada
+language-name-ko = korea
+language-name-kok = konkani
+language-name-kr = kanuri
+language-name-ks = kašmiri
+language-name-ku = kurdi
+language-name-kv = komi
+language-name-kw = korni
+language-name-ky = kirgiisi
+language-name-la = latina
+language-name-lb = luxemburg
+language-name-lg = ganda
+language-name-li = limburg
+language-name-lij = liguuri
+language-name-ln = lingala
+language-name-lo = lao
+language-name-lt = liettua
+language-name-ltg = latgalli
+language-name-lu = luba
+language-name-lv = latvia
+language-name-mai = maithili
+language-name-meh = lounaistlaxiaconmisteekki
+language-name-mg = malagassi
+language-name-mh = marshall
+language-name-mi = maori
+language-name-mix = mixtepecinmisteekki
+language-name-mk = makedonia
+language-name-ml = malajalam
+language-name-mn = mongoli
+language-name-mr = marathi
+language-name-ms = malaiji
+language-name-mt = malta
+language-name-my = burma
+language-name-na = nauru
+language-name-nb = norjan bokmål
+language-name-nd = pohjois-ndebele
+language-name-ne = nepali
+language-name-ng = ndonga
+language-name-nl = hollanti
+language-name-nn = norjan nynorsk
+language-name-no = norja
+language-name-nr = etelä-ndebele
+language-name-nso = pohjoissotho
+language-name-nv = navajo
+language-name-ny = njandža
+language-name-oc = oksitaani
+language-name-oj = odžibwa
+language-name-om = oromo
+language-name-or = orija
+language-name-os = osseetti
+language-name-pa = pandžabi
+language-name-pi = paali
+language-name-pl = puola
+language-name-ps = paštu
+language-name-pt = portugali
+language-name-qu = ketšua
+language-name-rm = retoromaani
+language-name-rn = rundi
+language-name-ro = romania
+language-name-ru = venäjä
+language-name-rw = ruanda
+language-name-sa = sanskrit
+language-name-sat = santali
+language-name-sc = sardi
+language-name-sco = skotti
+language-name-sd = sindhi
+language-name-se = pohjoissaame
+language-name-sg = sango
+language-name-si = sinhala
+language-name-sk = slovakki
+language-name-sl = sloveeni
+language-name-sm = samoa
+language-name-sn = šona
+language-name-so = somali
+language-name-son = songhai
+language-name-sq = albania
+language-name-sr = serbia
+language-name-ss = swazi
+language-name-st = eteläsotho
+language-name-su = sunda
+language-name-sv = ruotsi
+language-name-sw = swahili
+language-name-szl = sleesia
+language-name-ta = tamili
+language-name-te = telugu
+language-name-tg = tadžikki
+language-name-th = thai
+language-name-ti = tigrinja
+language-name-tig = tigre
+language-name-tk = turkmeeni
+language-name-tl = tagalog
+language-name-tlh = klingon
+language-name-tn = tswana
+language-name-to = tonga
+language-name-tr = turkki
+language-name-trs = triqui
+language-name-ts = tsonga
+language-name-tt = tataari
+language-name-tw = twi
+language-name-ty = tahiti
+language-name-ug = uiguuri
+language-name-uk = ukraina
+language-name-ur = urdu
+language-name-uz = uzbekki
+language-name-ve = venda
+language-name-vi = vietnam
+language-name-vo = volapük
+language-name-wa = valloni
+language-name-wen = sorbi
+language-name-wo = wolof
+language-name-xh = xhosa
+language-name-yi = jiddiš
+language-name-yo = joruba
+language-name-za = zhuang
+language-name-zam = miahuatlánzapoteekki
+language-name-zh = kiina
+language-name-zu = zulu
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/intl/regionNames.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..ca65237677
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/intl/regionNames.ftl
@@ -0,0 +1,280 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Notice: If you're updating this list, you should also
+### update the list in mozIntl.js.
+
+region-name-ad = Andorra
+region-name-ae = Arabiemiirikunnat
+region-name-af = Afganistan
+region-name-ag = Antigua ja Barbuda
+region-name-ai = Anguilla
+region-name-al = Albania
+region-name-am = Armenia
+region-name-ao = Angola
+region-name-aq = Antarktis
+region-name-ar = Argentiina
+region-name-as = Amerikan Samoa
+region-name-at = Itävalta
+region-name-au = Australia
+region-name-aw = Aruba
+region-name-az = Azerbaidžan
+region-name-ba = Bosnia ja Hertsegovina
+region-name-bb = Barbados
+region-name-bd = Bangladesh
+region-name-be = Belgia
+region-name-bf = Burkina Faso
+region-name-bg = Bulgaria
+region-name-bh = Bahrain
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bl = Saint-Barthélemy
+region-name-bm = Bermuda
+region-name-bn = Brunei
+region-name-bo = Bolivia
+region-name-bq-2018 = Alankomaiden Karibia
+region-name-br = Brasilia
+region-name-bs = Bahama
+region-name-bt = Bhutan
+region-name-bv = Bouvet'nsaari
+region-name-bw = Botswana
+region-name-by = Valko-Venäjä
+region-name-bz = Belize
+region-name-ca = Kanada
+region-name-cc = Kookossaaret
+region-name-cd = Kongon demokraattinen tasavalta
+region-name-cf = Keski-Afrikan tasavalta
+region-name-cg = Kongon tasavalta
+region-name-ch = Sveitsi
+region-name-ci = Norsunluurannikko
+region-name-ck = Cookinsaaret
+region-name-cl = Chile
+region-name-cm = Kamerun
+region-name-cn = Kiina
+region-name-co = Kolumbia
+region-name-cp = Clippertoninsaari
+region-name-cr = Costa Rica
+region-name-cu = Kuuba
+region-name-cv-2020 = Kap Verde
+region-name-cw = Curaçao
+region-name-cx = Joulusaari
+region-name-cy = Kypros
+region-name-cz-2019 = Tšekin tasavalta
+region-name-de = Saksa
+region-name-dg = Diego Garcia
+region-name-dj = Djibouti
+region-name-dk = Tanska
+region-name-dm = Dominica
+region-name-do = Dominikaaninen tasavalta
+region-name-dz = Algeria
+region-name-ec = Ecuador
+region-name-ee = Viro
+region-name-eg = Egypti
+region-name-eh = Länsi-Sahara
+region-name-er = Eritrea
+region-name-es = Espanja
+region-name-et = Etiopia
+region-name-fi = Suomi
+region-name-fj = Fidži
+region-name-fk = Falklandinsaaret (Malvinassaaret)
+region-name-fm = Mikronesia
+region-name-fo = Färsaaret
+region-name-fr = Ranska
+region-name-ga = Gabon
+region-name-gb = Yhdistynyt kuningaskunta
+region-name-gd = Grenada
+region-name-ge = Georgia
+region-name-gf = Ranskan Guayana
+region-name-gg = Guernsey
+region-name-gh = Ghana
+region-name-gi = Gibraltar
+region-name-gl = Grönlanti
+region-name-gm = Gambia
+region-name-gn = Guinea
+region-name-gp = Guadeloupe
+region-name-gq = Päiväntasaajan Guinea
+region-name-gr = Kreikka
+region-name-gs = Etelä-Georgia ja Eteläiset Sandwichsaaret
+region-name-gt = Guatemala
+region-name-gu = Guam
+region-name-gw = Guinea-Bissau
+region-name-gy = Guyana
+region-name-hk = Hongkong
+region-name-hm = Heard ja McDonaldinsaaret
+region-name-hn = Honduras
+region-name-hr = Kroatia
+region-name-ht = Haiti
+region-name-hu = Unkari
+region-name-id = Indonesia
+region-name-ie = Irlanti
+region-name-il = Israel
+region-name-im = Mansaari
+region-name-in = Intia
+region-name-io = Brittiläinen Intian valtameren alue
+region-name-iq = Irak
+region-name-ir = Iran
+region-name-is = Islanti
+region-name-it = Italia
+region-name-je = Jersey
+region-name-jm = Jamaika
+region-name-jo = Jordania
+region-name-jp = Japani
+region-name-ke = Kenia
+region-name-kg = Kirgisia
+region-name-kh = Kambodža
+region-name-ki = Kiribati
+region-name-km = Komorit
+region-name-kn = Saint Kitts ja Nevis
+region-name-kp = Pohjois-Korea
+region-name-kr = Etelä-Korea
+region-name-kw = Kuwait
+region-name-ky = Caymansaaret
+region-name-kz = Kazakstan
+region-name-la = Laos
+region-name-lb = Libanon
+region-name-lc = Saint Lucia
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Liberia
+region-name-ls = Lesotho
+region-name-lt = Liettua
+region-name-lu = Luxemburg
+region-name-lv = Latvia
+region-name-ly = Libya
+region-name-ma = Marokko
+region-name-mc = Monaco
+region-name-md = Moldovan tasavalta
+region-name-me = Montenegro
+region-name-mf = Saint-Martin
+region-name-mg = Madagaskar
+region-name-mh = Marshallinsaaret
+region-name-mk-2019 = Pohjois-Makedonia
+region-name-ml = Mali
+region-name-mm = Myanmar
+region-name-mn = Mongolia
+region-name-mo = Macao
+region-name-mp = Pohjois-Mariaanit
+region-name-mq = Martinique
+region-name-mr = Mauritania
+region-name-ms = Montserrat
+region-name-mt = Malta
+region-name-mu = Mauritius
+region-name-mv = Malediivit
+region-name-mw = Malawi
+region-name-mx = Meksiko
+region-name-my = Malesia
+region-name-mz = Mosambik
+region-name-na = Namibia
+region-name-nc = Uusi-Kaledonia
+region-name-ne = Niger
+region-name-nf = Norfolkinsaari
+region-name-ng = Nigeria
+region-name-ni = Nicaragua
+region-name-nl = Alankomaat
+region-name-no = Norja
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = Uusi-Seelanti
+region-name-om = Oman
+region-name-pa = Panama
+region-name-pe = Peru
+region-name-pf = Ranskan Polynesia
+region-name-pg = Papua-Uusi-Guinea
+region-name-ph = Filippiinit
+region-name-pk = Pakistan
+region-name-pl = Puola
+region-name-pm = Saint-Pierre ja Miquelon
+region-name-pn = Pitcairn
+region-name-pr = Puerto Rico
+region-name-pt = Portugali
+region-name-pw = Palau
+region-name-py = Paraguay
+region-name-qa = Qatar
+region-name-qm = Midwaysaaret
+region-name-qs = Bassas da India
+region-name-qu = Juan de Nova
+region-name-qw = Wake
+region-name-qx = Gloriososaaret
+region-name-qz = Akrotiri
+region-name-re = Réunion
+region-name-ro = Romania
+region-name-rs = Serbia
+region-name-ru = Venäjä
+region-name-rw = Ruanda
+region-name-sa = Saudi-Arabia
+region-name-sb = Salomonsaaret
+region-name-sc = Seychellit
+region-name-sd = Sudan
+region-name-se = Ruotsi
+region-name-sg = Singapore
+region-name-sh = Saint Helena
+region-name-si = Slovenia
+region-name-sk = Slovakia
+region-name-sl = Sierra Leone
+region-name-sm = San Marino
+region-name-sn = Senegal
+region-name-so = Somalia
+region-name-sr = Suriname
+region-name-ss = Etelä-Sudan
+region-name-st = São Tomé ja Príncipe
+region-name-sv = El Salvador
+region-name-sx = Sint Maarten
+region-name-sy = Syyria
+region-name-sz-2019 = Eswatini
+region-name-tc = Turks- ja Caicossaaret
+region-name-td = Tšad
+region-name-tf = Ranskan eteläiset alueet
+region-name-tg = Togo
+region-name-th = Thaimaa
+region-name-tj = Tadžikistan
+region-name-tk = Tokelau
+region-name-tl = Itä-Timor
+region-name-tm = Turkmenistan
+region-name-tn = Tunisia
+region-name-to = Tonga
+region-name-tr = Turkki
+region-name-tt = Trinidad ja Tobago
+region-name-tv = Tuvalu
+region-name-tw = Taiwan
+region-name-tz = Tansania
+region-name-ua = Ukraina
+region-name-ug = Uganda
+region-name-us = Yhdysvallat
+region-name-uy = Uruguay
+region-name-uz = Uzbekistan
+region-name-va = Vatikaani
+region-name-vc = Saint Vincent ja Grenadiinit
+region-name-ve = Venezuela
+region-name-vg = Brittiläiset Neitsytsaaret
+region-name-vi = Yhdysvaltain Neitsytsaaret
+region-name-vn = Vietnam
+region-name-vu = Vanuatu
+region-name-wf = Wallis ja Futuna
+region-name-ws = Samoa
+region-name-xa = Ashmore- ja Cartiersaaret
+region-name-xb = Baker
+region-name-xc = Korallimeren saarten territorio
+region-name-xd = Dhekelia
+region-name-xe = Europasaari
+region-name-xg = Gazan kaista
+region-name-xh = Howlandsaari
+region-name-xj = Jan Mayen
+region-name-xk = Kosovo
+region-name-xl = Palmyran atolli
+region-name-xm = Kingmanin riutta
+region-name-xp = Paracelsaaret
+region-name-xq = Jarvis-saari
+region-name-xr = Huippuvuoret
+region-name-xs = Spratlysaaret
+region-name-xt = Tromelinsaari
+region-name-xu = Johnstonin atolli
+region-name-xv = Navassasaari
+region-name-xw = Länsiranta
+region-name-ye = Jemen
+region-name-yt = Mayotte
+region-name-za = Etelä-Afrikka
+region-name-zm = Sambia
+region-name-zw = Zimbabwe
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/main-window/autocomplete.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..88a7d78436
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/main-window/autocomplete.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Import Logins Autocomplete
+
+## Variables:
+## $host (String) - Host name of the current site.
+
+autocomplete-import-logins-chrome =
+ <div data-l10n-name="line1">Tuo kirjautumistietosi Google Chromesta</div>
+ <div data-l10n-name="line2">sivustoa { $host } ja muita sivustoja varten</div>
+autocomplete-import-logins-chromium =
+ <div data-l10n-name="line1">Tuo kirjautumistietosi Chromiumista</div>
+ <div data-l10n-name="line2">sivustoa { $host } ja muita sivustoja varten</div>
+autocomplete-import-logins-chromium-edge =
+ <div data-l10n-name="line1">Tuo kirjautumistietosi Microsoft Edgestä</div>
+ <div data-l10n-name="line2">sivustoa { $host } ja muita sivustoja varten</div>
+
+##
+
+autocomplete-import-learn-more = Lue lisää
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/main-window/findbar.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..34aa09f5ec
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/main-window/findbar.ftl
@@ -0,0 +1,76 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### This file contains the entities needed to use the Find Bar.
+
+findbar-next =
+ .tooltiptext = Etsi seuraava osuma
+findbar-previous =
+ .tooltiptext = Etsi edellinen osuma
+
+findbar-find-button-close =
+ .tooltiptext = Sulje etsintäpalkki
+
+findbar-highlight-all2 =
+ .label = Korosta kaikki
+ .accesskey =
+ { PLATFORM() ->
+ [macos] K
+ *[other] K
+ }
+ .tooltiptext = Korosta tekstin kaikki esiintymät
+
+findbar-case-sensitive =
+ .label = Huomioi kirjainkoko
+ .accesskey = H
+ .tooltiptext = Etsi osumia huomioiden kirjainkoko
+
+findbar-match-diacritics =
+ .label = Erota tarkkeet
+ .accesskey = t
+ .tooltiptext = Erota ääkköset ja muut tarkkeelliset kirjaimet sekä niiden perusmerkit toisistaan (esimerkiksi etsittäessä ”sää” ei löydetä myös sanaa ”saa” ja etsittäessä ”resume” ei löydetä myös sanaa ”résumé”)
+
+findbar-entire-word =
+ .label = Kokonaiset sanat
+ .accesskey = s
+ .tooltiptext = Etsi vain kokonaisia sanoja
+
+findbar-not-found = Ei osumia
+
+findbar-wrapped-to-top = Päästiin sivun loppuun, jatketaan alusta
+findbar-wrapped-to-bottom = Päästiin sivun alkuun, jatketaan lopusta
+
+findbar-normal-find =
+ .placeholder = Etsi sivulta
+findbar-fast-find =
+ .placeholder = Pikahaku
+findbar-fast-find-links =
+ .placeholder = Pikahaku (vain linkit)
+
+findbar-case-sensitive-status =
+ .value = (Kirjainkoko huomioidaan)
+findbar-match-diacritics-status =
+ .value = (Erotetaan tarkkeet)
+findbar-entire-word-status =
+ .value = (Vain kokonaiset sanat)
+
+# Variables:
+# $current (Number): Index of the currently selected match
+# $total (Number): Total count of matches
+findbar-found-matches =
+ .value =
+ { $total ->
+ [one] { $current } / { $total } osuma
+ *[other] { $current } / { $total } osumaa
+ }
+
+# Variables:
+# $limit (Number): Total count of matches allowed before counting stops
+findbar-found-matches-count-limit =
+ .value =
+ { $limit ->
+ [one] Yli { $limit } osuma
+ *[other] Yli { $limit } osumaa
+ }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/neterror/certError.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/neterror/certError.ftl
new file mode 100644
index 0000000000..5686e27c4c
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/neterror/certError.ftl
@@ -0,0 +1,141 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-intro = Sivuston { $hostname } tietoturvavarmenne ei ole kelvollinen.
+
+cert-error-mitm-intro = Sivustot todistavat identiteettinsä varmenteella, ja varmenteen myöntää varmentaja.
+
+cert-error-mitm-mozilla = { -brand-short-name }in tukena on voittoa tavoittelematon Mozilla, joka hallinnoi täysin avointa varmentajien (CA) säilöä. Varmentajasäilö auttaa varmistamaan, että varmentajat noudattavat käyttäjien tietoturvaan liittyviä hyviä käytäntöjä.
+
+cert-error-mitm-connection = { -brand-short-name } käyttää Mozillan varmentajasäilöä varmentamaan yhteyden turvallisuuden, käyttöjärjestelmään asennettujen varmenteiden sijasta. Siispä jos virustorjuntaohjelma tai verkko kaappaa yhteyden käyttäen varmennetta, jonka varmentaja ei ole Mozillan varmentajasäilössä, yhteyttä pidetään epäturvallisena.
+
+cert-error-trust-unknown-issuer-intro = Joku saattaa yrittää tekeytyä täksi sivustoksi eikä sivustolle siirtymistä siksi tulisi jatkaa.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = Sivustot todistavat identiteettinsä varmenteella. { -brand-short-name } ei luota palvelimeen { $hostname }, koska sen varmenteen myöntäjä on tuntematon, varmenne on allekirjoitettu itsellään tai palvelin ei lähetä oikeita välivarmenteita.
+
+cert-error-trust-cert-invalid = Varmenteeseen ei luoteta, koska sen varmentajan varmenne ei ole kelvollinen.
+
+cert-error-trust-untrusted-issuer = Varmenteeseen ei luoteta, koska sen myöntäjän varmenteeseen ei luoteta.
+
+cert-error-trust-signature-algorithm-disabled = Varmenteeseen ei luoteta, koska se on allekirjoitettu allekirjoitusalgoritmilla, joka ei ole turvallinen.
+
+cert-error-trust-expired-issuer = Varmenteeseen ei luoteta, koska sen myöntäjän varmenne on vanhentunut.
+
+cert-error-trust-self-signed = Varmenteeseen ei luoteta, koska se on allekirjoitettu itsellään.
+
+cert-error-trust-symantec = Varmenteisiin, joiden myöntäjänä on GeoTrust, RapidSSL, Symantec, Thawte tai VeriSign, ei enää luoteta, koska nämä varmenteiden myöntäjät eivät noudattaneet tietoturvakäytäntöjä.
+
+cert-error-untrusted-default = Varmenteen lähde ei ole luotettu.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-domain-mismatch = Sivustot todistavat identiteettinsä varmenteella. { -brand-short-name } ei luota tähän sivustoon, koska sen käyttämä varmenne ei ole kelvollinen palvelimelle { $hostname }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = Sivustot todistavat identiteettinsä varmenteella. { -brand-short-name } ei luota tähän sivustoon, koska sen käyttämä varmenne ei ole kelvollinen palvelimelle { $hostname }. Varmenne on kelvollinen vain kohteelle <a data-l10n-name="domain-mismatch-link">{ $alt-name }</a>.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single-nolink = Sivustot todistavat identiteettinsä varmenteella. { -brand-short-name } ei luota tähän sivustoon, koska sen käyttämä varmenne ei ole kelvollinen palvelimelle { $hostname }. Varmenne on kelvollinen vain kohteelle { $alt-name }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $subject-alt-names (string) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = Sivustot todistavat identiteettinsä varmenteella. { -brand-short-name } ei luota tähän sivustoon, koska sen käyttämä varmenne ei ole kelvollinen palvelimelle { $hostname }. Varmenne on kelvollinen vain palvelimille: { $subject-alt-names }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-after-local-time (Date) - Certificate is not valid after this time.
+cert-error-expired-now = Sivustot todistavat identiteettinsä varmenteella, joka on voimassa määräajan. Varmenne sivustolle { $hostname } vanheni { $not-after-local-time }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-before-local-time (Date) - Certificate is not valid before this time.
+cert-error-not-yet-valid-now = Sivustot todistavat identiteettinsä varmenteella, joka on voimassa määräajan. Varmenne sivustolle { $hostname } on voimassa vasta { $not-before-local-time }.
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix = Virhekoodi: { $error }
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix-link = Virhekoodi: <a data-l10n-name="error-code-link">{ $error }</a>
+
+# Variables:
+# $hostname (string) - Hostname of the website with SSL error.
+# $errorMessage (string) - Error message corresponding to the type of error we are experiencing.
+cert-error-ssl-connection-error = Tapahtui virhe oltaessa yhteydessä osoitteeseen { $hostname }. { $errorMessage }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = Sivustot todistavat identiteettinsä varmenteella, jonka myöntää varmentaja. Useimmat selaimet eivät enää luota varmenteisiin, joiden varmentaja on GeoTrust, RapidSSL, Symantec, Thawte tai VeriSign. { $hostname } käyttää varmennetta, jonka on myöntänyt jokin ennalta mainituista varmentajista. Sivuston identiteettiä ei siksi voida todistaa.
+
+cert-error-symantec-distrust-admin = Voit ilmoittaa tästä ongelmasta sivuston ylläpitäjälle.
+
+cert-error-old-tls-version = Tämä sivusto ei välttämättä tue TLS 1.2 -protokollaa, joka on pienin { -brand-short-name }in tukema versio protokollasta.
+
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = HTTP Strict Transport Security: { $hasHSTS }
+
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = HTTP Public Key Pinning: { $hasHPKP }
+
+cert-error-details-cert-chain-label = Certificate chain:
+
+open-in-new-window-for-csp-or-xfo-error = Avaa sivusto uuteen ikkunaan
+
+# Variables:
+# $hostname (string) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = Turvallisuutesi suojaamiseksi { $hostname } ei salli, että { -brand-short-name } näyttää sivun, jos se on upotettu toiselle sivulle. Jotta voit nähdä tämän sivun, sinun tulee avata se uudessa ikkunassa.
+
+## Messages used for certificate error titles
+
+connectionFailure-title = Yhdistäminen epäonnistui
+deniedPortAccess-title = Osoitteen käyttö on rajoitettu
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+dnsNotFound-title = Hmm. Sivua ei löydy.
+
+dns-not-found-trr-only-title2 = Mahdollinen tietoturvariski tätä verkkotunnusta etsittäessä
+dns-not-found-native-fallback-title2 = Mahdollinen tietoturvariski tätä verkkotunnusta etsittäessä
+
+fileNotFound-title = Tiedostoa ei löytynyt
+fileAccessDenied-title = Tiedoston käyttö estettiin
+generic-title = Verkkopyyntöä ei kyetä toteuttamaan
+captivePortal-title = Kirjaudu verkkoon
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+malformedURI-title = Hmm. Tuo osoite ei näytä oikealta.
+netInterrupt-title = Tiedonsiirto keskeytyi
+notCached-title = Dokumentti on vanhentunut
+netOffline-title = Yhteydettömässä tilassa
+contentEncodingError-title = Sisällön koodausvirhe
+unsafeContentType-title = Vaarallinen tiedostotyyppi
+netReset-title = Yhteys keskeytyi
+netTimeout-title = Yhteyden aikakatkaisu
+unknownProtocolFound-title = Osoitetta ei ymmärretty
+proxyConnectFailure-title = Välityspalvelin kieltäytyy yhteydestä
+proxyResolveFailure-title = Välityspalvelinta ei löytynyt
+redirectLoop-title = Sivusto ei uudelleenohjaudu asianmukaisesti
+unknownSocketType-title = Odottamaton vastaus palvelimelta
+nssFailure2-title = Suojatun yhteyden muodostaminen epäonnistui
+csp-xfo-error-title = { -brand-short-name } ei voi avata tätä sivua
+corruptedContentError-title = Sisältö vioittunut -virhe
+sslv3Used-title = Ei voitu muodostaa suojattua yhteyttä
+inadequateSecurityError-title = Yhteys ei ole suojattu
+blockedByPolicy-title = Estetty sivu
+clockSkewError-title = Tietokoneen kello on väärässä ajassa
+networkProtocolError-title = Verkkoyhteyskäytännön virhe
+nssBadCert-title = Varoitus: mahdollinen tietoturvariski
+nssBadCert-sts-title = Ei yhdistetty: mahdollinen turvallisuusongelma
+certerror-mitm-title = Ohjelmisto estää { -brand-short-name }ia yhdistämästä turvallisesti tähän sivustoon
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/neterror/netError.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/neterror/netError.ftl
new file mode 100644
index 0000000000..0e9047a291
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/neterror/netError.ftl
@@ -0,0 +1,147 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Error page titles
+
+neterror-page-title = Sivun lataamisvirhe
+certerror-page-title = Varoitus: mahdollinen tietoturvariski
+certerror-sts-page-title = Ei yhdistetty: mahdollinen turvallisuusongelma
+neterror-blocked-by-policy-page-title = Estetty sivu
+neterror-captive-portal-page-title = Kirjaudu verkkoon
+neterror-dns-not-found-title = Palvelinta ei löytynyt
+neterror-malformed-uri-page-title = Virheellinen osoite
+
+## Error page actions
+
+neterror-advanced-button = Lisätietoja…
+neterror-copy-to-clipboard-button = Kopioi teksti leikepöydälle
+neterror-learn-more-link = Lue lisää…
+neterror-open-portal-login-page-button = Avaa verkon kirjautumissivu
+neterror-override-exception-button = Ota riski ja jatka
+neterror-pref-reset-button = Palauta oletusasetukset
+neterror-return-to-previous-page-button = Palaa
+neterror-return-to-previous-page-recommended-button = Palaa (suositellaan)
+neterror-try-again-button = Yritä uudestaan
+neterror-add-exception-button = Jatka aina tälle sivustolle
+neterror-settings-button = Muuta DNS-asetuksia
+neterror-view-certificate-link = Näytä varmenne
+neterror-trr-continue-this-time = Jatka tällä kertaa
+neterror-disable-native-feedback-warning = Jatka aina
+
+##
+
+neterror-pref-reset = Vaikuttaa siltä, että verkon turvallisuusasetukset aiheuttavat tämän. Haluatko palauttaa oletusasetukset?
+neterror-error-reporting-automatic = Auta { -vendor-short-name }a tunnistamaan ja estämään haitallisia sivustoja ilmoittamalla tällaisista virheistä
+
+## Specific error messages
+
+neterror-generic-error = { -brand-short-name } ei kykene lataamaan sivua jostain syystä.
+neterror-load-error-try-again = Sivusto voi olla väliaikaisesti saavuttamattomissa tai kovan rasituksen alaisena. Yritä hetken kuluttua uudestaan.
+neterror-load-error-connection = Jos mitkään sivustot eivät toimi, tarkista tietokoneen verkkoasetukset.
+neterror-load-error-firewall = Jos tietokone tai verkko on suojattu palomuurilla tai välityspalvelin on käytössä, tarkista että { -brand-short-name }in verkkoyhteyttä ei estetä.
+neterror-captive-portal = Tähän verkkoon täytyy kirjautua ennen internetin käyttämistä.
+# Variables:
+# $hostAndPath (String) - a suggested site (e.g. "www.example.com") that the user may have meant instead.
+neterror-dns-not-found-with-suggestion = Oliko tarkoituksesi vierailla <a data-l10n-name="website">{ $hostAndPath }</a>?
+neterror-dns-not-found-hint-header = <strong>Jos kirjoitit osoitteen oikein, voit:</strong>
+neterror-dns-not-found-hint-try-again = Yrittää myöhemmin uudelleen
+neterror-dns-not-found-hint-check-network = Tarkistaa verkkoyhteytesi
+neterror-dns-not-found-hint-firewall = Tarkistaa, että { -brand-short-name }illa on lupa asioida verkkoon (saatat olla yhteydessä, mutta palomuurin takana)
+
+## TRR-only specific messages
+## Variables:
+## $hostname (String) - Hostname of the website to which the user was trying to connect.
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-trr-only-reason = { -brand-short-name } ei voi suojata tämän sivuston osoitepyyntöäsi luotettavan DNS-selvittäjän kautta. Tässä syy:
+neterror-dns-not-found-trr-third-party-warning2 = Voit jatkaa oletusarvoisella DNS-selvittimellä. Kolmas osapuoli saattaa kuitenkin nähdä, millä verkkosivustoilla vierailet.
+neterror-dns-not-found-trr-only-could-not-connect = { -brand-short-name } ei voinut muodostaa yhteyttä verkkotunnukseen { $trrDomain }.
+neterror-dns-not-found-trr-only-timeout = Yhteys verkkotunnukseen { $trrDomain } kesti odotettua kauemmin.
+neterror-dns-not-found-trr-offline = Et ole yhteydessä Internetiin.
+neterror-dns-not-found-trr-unknown-host2 = { $trrDomain } ei löytänyt tätä verkkosivustoa.
+neterror-dns-not-found-trr-server-problem = Verkkotunnuksen { $trrDomain } kanssa ilmeni ongelma.
+neterror-dns-not-found-bad-trr-url = Virheellinen osoite.
+neterror-dns-not-found-trr-unknown-problem = Odottamaton ongelma.
+
+## Native fallback specific messages
+## Variables:
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-native-fallback-reason = { -brand-short-name } ei voi suojata pyyntöäsi tämän sivuston osoitteelle luotettavan DNS-selvittimen kautta. Tässä syy:
+neterror-dns-not-found-native-fallback-heuristic = DNS HTTPS:n välityksellä on poistettu käytöstä verkossasi.
+neterror-dns-not-found-native-fallback-not-confirmed2 = { -brand-short-name } ei voinut muodostaa yhteyttä verkkotunnukseen { $trrDomain }.
+
+##
+
+neterror-file-not-found-filename = Tarkista, että tiedostonimi on kirjoitettu virheettömästi ja oikealla kirjainkoolla.
+neterror-file-not-found-moved = Tarkista, ettei tiedostoa ole poistettu, siirretty tai nimetty uudelleen.
+neterror-access-denied = Tiedosto on voitu poistaa tai siirtää, tai ehkä siihen ei ole käyttöoikeutta.
+neterror-unknown-protocol = Osoitteen avaaminen voi vaatia uuden ohjelman asentamista.
+neterror-redirect-loop = Tämä virhe johtuu joskus siitä, että evästeiden asettamista ei ole sallittu tai että se on erityisesti estetty tältä sivustolta.
+neterror-unknown-socket-type-psm-installed = Tarkista, että tietokoneelle on asennettu Mozillan Personal Security Manager.
+neterror-unknown-socket-type-server-config = Virhe voi johtua palvelimen epästandardeista asetuksista.
+neterror-not-cached-intro = Pyydettyä dokumenttia ei ole tallennettu { -brand-short-name }in väliaikaistiedostoihin.
+neterror-not-cached-sensitive = Turvallisuusvarotoimena { -brand-short-name } ei automaattisesti lataa uudelleen luottamuksellisia dokumentteja.
+neterror-not-cached-try-again = Napsauta alta Yritä uudestaan ladataksesi dokumentin sivustolta uudestaan.
+neterror-net-offline = Siirry yhteystilaan ja lataa sivu uudestaan valitsemalla “Yritä uudelleen".
+neterror-proxy-resolve-failure-settings = Tarkista, että välityspalvelinasetukset ovat oikein.
+neterror-proxy-resolve-failure-connection = Varmista, että tietokoneesi verkkoyhteys on toimintakunnossa.
+neterror-proxy-resolve-failure-firewall = Jos tietokone tai verkko on suojattu palomuurilla tai välityspalvelin on käytössä, tarkista että { -brand-short-name }in verkkoyhteyttä ei estetä.
+neterror-proxy-connect-failure-settings = Tarkista, että välityspalvelinasetukset ovat oikein.
+neterror-proxy-connect-failure-contact-admin = Varmista verkon ylläpidolta, että välityspalvelin on toimintakunnossa.
+neterror-content-encoding-error = Ilmoita sivuston omistajalle tästä ongelmasta.
+neterror-unsafe-content-type = Ilmoita sivuston omistajalle tästä ongelmasta.
+neterror-nss-failure-not-verified = Avattavaa sivua ei voida näyttää, koska vastaanotetun datan alkuperää ei kyetty varmentamaan.
+neterror-nss-failure-contact-website = Ilmoitathan ongelmasta sivuston omistajalle.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-intro = { -brand-short-name } havaitsi mahdollisen turvallisuusuhan, eikä jatkanut sivustolle <b>{ $hostname }</b>. Jos käyt tällä sivustolla, henkilökohtaisia tietojasi kuten salasanoja, sähköpostiviestejä tai luottokorttitietoja saatetaan yrittää varastaa.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-sts-intro = { -brand-short-name } havaitsi mahdollisen turvallisuusuhan, eikä jatkanut sivustolle <b>{ $hostname }</b>, koska tämä sivusto vaatii salatun yhteyden.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-expired-cert-intro = { -brand-short-name } havaitsi ongelman, eikä jatkanut sivustolle <b>{ $hostname }</b>. Sivuston asetukset on määritetty väärin tai tietokoneesi kello on asetettu väärään aikaan.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm = <b>{ $hostname }</b> on mitä luultavimmin turvallinen sivusto, mutta salattua yhteyttä ei voitu muodostaa. Tämän ongelman aiheuttaa <b>{ $mitm }</b>, mikä on ohjelmisto tietokoneellasi tai verkossasi.
+neterror-corrupted-content-intro = Avattavaa sivua ei voida näyttää, koska tiedonsiirrossa tapahtui virhe.
+neterror-corrupted-content-contact-website = Ilmoitathan ongelmasta sivuston omistajalle.
+# Do not translate "SSL_ERROR_UNSUPPORTED_VERSION".
+neterror-sslv3-used = Lisätiedot: SSL_ERROR_UNSUPPORTED_VERSION
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+neterror-inadequate-security-intro = <b>{ $hostname }</b> käyttää suojaustekniikkaa, joka on vanhentunut ja haavoittuvainen hyökkäyksille. Hyökkääjä voisi helposti lukea tietoja, joiden luulit olevan suojattuja. Sivuston ylläpitäjän täytyy korjata tämä ongelma ennen kuin voit käydä sivustolla.
+# Do not translate "NS_ERROR_NET_INADEQUATE_SECURITY".
+neterror-inadequate-security-code = Virhekoodi: NS_ERROR_NET_INADEQUATE_SECURITY
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+neterror-clock-skew-error = Tietokoneesi mukaan nyt on { DATETIME($now, dateStyle: "medium") }, minkä takia { -brand-short-name } ei voi muodostaa suojattua yhteyttä. Jotta voit siirtyä sivustolle <b>{ $hostname }</b>, avaa järjestelmäasetukset ja päivitä sieltä tietokoneen kello nykyiseen päivään, aikaan ja aikavyöhykkeeseen. Lopuksi lataa <b>{ $hostname }</b> uudestaan.
+neterror-network-protocol-error-intro = Avattavaa sivua ei voida näyttää, koska verkkoyhteyskäytännössä havaittiin virhe.
+neterror-network-protocol-error-contact-website = Ilmoitathan ongelmasta sivuston omistajalle.
+certerror-expired-cert-second-para = On todennäköistä, että verkkosivuston varmenne on vanhentunut, mikä estää { -brand-short-name }ia muodostamasta suojattua yhteyttä. Jos vierailet tällä sivustolla, hyökkääjät voivat yrittää varastaa esimerkiksi salasanoja, sähköposteja tai luottokorttitietoja.
+certerror-expired-cert-sts-second-para = On todennäköistä, että verkkosivuston varmenne on vanhentunut, mikä estää { -brand-short-name }ia muodostamasta suojattua yhteyttä.
+certerror-what-can-you-do-about-it-title = Mitä voit tehdä?
+certerror-unknown-issuer-what-can-you-do-about-it-website = Ongelma johtuu todennäköisesti sivustosta, etkä voi korjata sitä itse.
+certerror-unknown-issuer-what-can-you-do-about-it-contact-admin = Jos olet yritysverkossa tai käytät virustorjuntaohjelmaa, voit ottaa yhteyttä tukeen. Voit myös ilmoittaa ongelmasta sivuston ylläpitäjälle.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+certerror-expired-cert-what-can-you-do-about-it-clock = Tietokoneesi mukaan nyt on { DATETIME($now, dateStyle: "medium") }. Tarkista asetuksista, että tietokoneesi päivämäärä, kellonaika ja aikavyöhyke ovat oikeat, ja lataa sitten <b>{ $hostname }</b> uudestaan.
+certerror-expired-cert-what-can-you-do-about-it-contact-website = Jos kello on jo oikeassa ajassa, vika on luultavasti sivustossa etkä voi korjata ongelmaa itse. Voit ilmoittaa ongelmasta sivuston ylläpitäjälle.
+certerror-bad-cert-domain-what-can-you-do-about-it = Ongelma johtuu todennäköisesti sivustosta, etkä voi korjata sitä itse. Voit ilmoittaa ongelmasta sivuston ylläpitäjälle.
+certerror-mitm-what-can-you-do-about-it-antivirus = Jos käyttämäsi virustorjuntaohjelma skannaa salattuja yhteyksiä (kutsutaan usein ”verkon skannaukseksi”, ”web-skannaukseksi” tai ”HTTPS-skannaukseksi”), voit poistaa kyseisen ominaisuuden käytöstä. Jos se ei auta, voit poistaa virustorjunnan ja asentaa sen uudestaan.
+certerror-mitm-what-can-you-do-about-it-corporate = Jos käytät työnantajasi verkkoyhteyttä, voit olla yhteydessä IT-tukeen.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack = Jos et tunne <b>{ $mitm }</b>-ohjelmaa, kyseessä voi olla huijaus eikä sivustolle tulisi jatkaa.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack-sts = Jos et tunne <b>{ $mitm }</b>-ohjelmaa, kyseessä voi olla hyökkäys etkä voi tehdä mitään.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-what-should-i-do-bad-sts-cert-explanation = Sivusto <b>{ $hostname }</b> noudattaa tietoturvakäytäntöä nimeltään HTTP Strict Transport Security (HSTS), mikä tarkoittaa, että { -brand-short-name } voi muodostaa siihen vain suojatun yhteyden. Tälle sivustolle siirtymistä varten ei voi lisätä poikkeusta.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/neterror/nsserrors.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/neterror/nsserrors.ftl
new file mode 100644
index 0000000000..c1b34eeef4
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/neterror/nsserrors.ftl
@@ -0,0 +1,349 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# DO NOT ADD THINGS OTHER THAN ERROR MESSAGES HERE.
+# This file gets parsed into a JS dictionary of all known error message ids in
+# gen_aboutneterror_codes.py . If we end up needing fluent attributes or
+# refactoring them in some way, the script will need updating.
+
+psmerr-ssl-disabled = Suojatun yhteyden muodostaminen ei onnistu, koska SSL-yhteiskäytäntö on otettu pois käytöstä.
+psmerr-ssl2-disabled = Suojatun yhteyden muodostaminen ei onnistu, koska sivusto käyttää vanhempaa, heikkoa versiota SSL-yhteiskäytännöstä.
+
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ Vastaanotettiin epäkäypä varmenne. Ota yhteys palvelimen ylläpitoon ja välitä heille seuraava virheilmoitus:
+
+ Your certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
+
+ssl-error-export-only-server = Ei voida kommunikoida suojatusti. Toinen osapuoli ei tue korkeatasoista salausta.
+ssl-error-us-only-server = Ei voida kommunikoida suojatusti. Toinen osapuoli vaatii korkeatasoista salaustyyppiä, jota ei tueta.
+ssl-error-no-cypher-overlap = Ei voida kommunikoida suojatusti: ei yhteisiä salausalgoritmeja toisen osapuolen kanssa.
+ssl-error-no-certificate = Todennukseen tarvittavaa varmennetta tai avainta ei löydetty.
+ssl-error-bad-certificate = Ei voida kommunikoida suojatusti: toisen osapuolen varmenne hylättiin.
+ssl-error-bad-client = Palvelin sai virheellistä dataa asiakkaalta.
+ssl-error-bad-server = Asiakas sai virheellistä dataa palvelimelta.
+ssl-error-unsupported-certificate-type = Varmennetyyppi, jota ei tueta.
+ssl-error-unsupported-version = Toinen osapuoli käyttää turvallisuuskäytännön versiota, jota ei tueta.
+ssl-error-wrong-certificate = Asiakkaan todennus epäonnistui: tietokannassa oleva yksityinen avain ei sovi varmennetietokannan julkiseen avaimeen.
+ssl-error-bad-cert-domain = Ei voida kommunikoida suojatusti: pyydetyn verkkoalueen nimi ei vastaa palvelimen varmennetta.
+ssl-error-post-warning = Tunnistamaton SSL-virhekoodi.
+ssl-error-ssl2-disabled = Toinen osapuoli tukee vain SSL versio 2:a, jonka käyttö on paikallisesti estetty.
+ssl-error-bad-mac-read = SSL vastaanotti paketin, jolla oli väärä viestin todennuskoodi (MAC).
+ssl-error-bad-mac-alert = SSL-yhteyden toinen osapuoli ilmoittaa väärästä viestin todennuskoodista (MAC).
+ssl-error-bad-cert-alert = SSL-yhteyden toinen osapuoli ei voi tarkistaa varmennettasi.
+ssl-error-revoked-cert-alert = SSL-yhteyden toinen osapuoli hylkäsi varmenteesi mitätöitynä.
+ssl-error-expired-cert-alert = SSL-yhteyden toinen osapuoli hylkäsi varmenteesi vanhentuneena.
+ssl-error-ssl-disabled = Ei voida muodostaa yhteyttä: SSL on otettu pois käytöstä.
+ssl-error-fortezza-pqg = Ei voida muodostaa yhteyttä: SSL-yhteyden toinen osapuoli kuuluu eri FORTEZZA-alueeseen.
+ssl-error-unknown-cipher-suite = Pyydettiin tuntematonta SSL-salaajaa.
+ssl-error-no-ciphers-supported = Yhtäkään salaajaa ei ole olemassa ja käytössä tässä ohjelmassa.
+ssl-error-bad-block-padding = SSL vastaanotti virheellisesti täytetyn paketin.
+ssl-error-rx-record-too-long = SSL vastaanotti suurimman sallitun pituuden ylittävän paketin.
+ssl-error-tx-record-too-long = SSL yritti lähettää pakettia, joka ylitti suurimman sallitun pituuden.
+ssl-error-rx-malformed-hello-request = SSL vastaanotti virheellisesti muotoillun Hello-kättelyviestin.
+ssl-error-rx-malformed-client-hello = SSL vastaanotti virheellisesti muotoillun Client Hello -kättelyviestin.
+ssl-error-rx-malformed-server-hello = SSL vastaanotti virheellisesti muotoillun Server Hello -kättelyviestin.
+ssl-error-rx-malformed-certificate = SSL vastaanotti virheellisesti muotoillun Certificate-kättelyviestin.
+ssl-error-rx-malformed-server-key-exch = SSL vastaanotti virheellisesti muotoillun Server Key Exchange -kättelyviestin.
+ssl-error-rx-malformed-cert-request = SSL vastaanotti virheellisesti muotoillun Certificate Request -kättelyviestin.
+ssl-error-rx-malformed-hello-done = SSL vastaanotti virheellisesti muotoillun Server Hello Done -kättelyviestin.
+ssl-error-rx-malformed-cert-verify = SSL vastaanotti virheellisesti muotoillun Certificate Verify -kättelyviestin.
+ssl-error-rx-malformed-client-key-exch = SSL vastaanotti virheellisesti muotoillun Client Key Exchange -kättelyviestin.
+ssl-error-rx-malformed-finished = SSL vastaanotti virheellisesti muotoillun Finished-kättelyviestin.
+ssl-error-rx-malformed-change-cipher = SSL vastaanotti virheellisesti muotoillun Change Cipher Spec -paketin.
+ssl-error-rx-malformed-alert = SSL vastaanotti virheellisesti muotoillun Alert-paketin.
+ssl-error-rx-malformed-handshake = SSL vastaanotti virheellisesti muotoillun Handshake-paketin.
+ssl-error-rx-malformed-application-data = SSL vastaanotti virheellisesti muotoillun Application Data -paketin.
+ssl-error-rx-unexpected-hello-request = SSL vastaanotti odottamattoman Hello Request -kättelyviestin.
+ssl-error-rx-unexpected-client-hello = SSL vastaanotti odottamattoman Client Hello -kättelyviestin.
+ssl-error-rx-unexpected-server-hello = SSL vastaanotti odottamattoman Server Hello -kättelyviestin.
+ssl-error-rx-unexpected-certificate = SSL vastaanotti odottamattoman Certificate-kättelyviestin.
+ssl-error-rx-unexpected-server-key-exch = SSL vastaanotti odottamattoman Server Key Exchange -kättelyviestin.
+ssl-error-rx-unexpected-cert-request = SSL vastaanotti odottamattoman Certificate Request -kättelyviestin.
+ssl-error-rx-unexpected-hello-done = SSL vastaanotti odottamattoman Server Hello Done -kättelyviestin.
+ssl-error-rx-unexpected-cert-verify = SSL vastaanotti odottamattoman Certificate Verify -kättelyviestin.
+ssl-error-rx-unexpected-client-key-exch = SSL vastaanotti odottamattoman Client Key Exchange -kättelyviestin.
+ssl-error-rx-unexpected-finished = SSL vastaanotti odottamattoman Finished-kättelyviestin.
+ssl-error-rx-unexpected-change-cipher = SSL vastaanotti odottamattoman Change Cipher Spec -paketin.
+ssl-error-rx-unexpected-alert = SSL vastaanotti odottamattoman Alert-paketin.
+ssl-error-rx-unexpected-handshake = SSL vastaanotti odottamattoman Handshake-paketin.
+ssl-error-rx-unexpected-application-data = SSL vastaanotti odottamattoman Application Data -paketin.
+ssl-error-rx-unknown-record-type = SSL vastaanotti paketin, jonka sisältötyyppi on tuntematon.
+ssl-error-rx-unknown-handshake = SSL vastaanotti kättelyviestin, jonka viestityyppi on tuntematon.
+ssl-error-rx-unknown-alert = SSL vastaanotti alert-paketin, jonka hälytyskuvausta ei tunnistettu.
+ssl-error-close-notify-alert = SSL-yhteyden toinen osapuoli päätti yhteyden.
+ssl-error-handshake-unexpected-alert = SSL-yhteyden toinen osapuoli ei odottanut vastaanottamaansa kättelyviestiä.
+ssl-error-decompression-failure-alert = SSL-yhteyden toinen osapuoli ei onnistunut purkamaan vastaanottamaansa SSL-pakettia.
+ssl-error-handshake-failure-alert = SSL-yhteyden toinen osapuoli ei onnistunut neuvottelemaan hyväksyttäviä turvallisuusparametrejä.
+ssl-error-illegal-parameter-alert = SSL-yhteyden toinen osapuoli hylkäsi kättelyviestin sen sisällön vuoksi.
+ssl-error-unsupported-cert-alert = SSL-yhteyden toinen osapuoli ei tue vastaanottamansa varmenteen tyyppisiä varmenteita.
+ssl-error-certificate-unknown-alert = SSL-yhteyden toisella osapuolella oli jokin määrittelemätön ongelma vastaanottamansa varmenteen kanssa.
+ssl-error-generate-random-failure = SSL:n satunnaislukugeneraattorissa tapahtui virhe.
+ssl-error-sign-hashes-failure = Varmenteesi kelpuuttamiseen tarvittavan datan digitaalinen allekirjoitus ei onnistunut.
+ssl-error-extract-public-key-failure = SSL ei kyennyt hakemaan toisen osapuolen julkista avainta sen varmenteesta.
+ssl-error-server-key-exchange-failure = Määrittelemätön virhe käsiteltäessä SSL:n Server Key Exchange -kättelyä.
+ssl-error-client-key-exchange-failure = Määrittelemätön virhe käsiteltäessä SSL:n Client Key Exchange -kättelyä.
+ssl-error-encryption-failure = Valitun salaajan datan salausalgoritmi kohtasi virheen.
+ssl-error-decryption-failure = Valitun salaajan datan salausalgoritmi kohtasi virheen.
+ssl-error-socket-write-failure = Yritys kirjoittaa salattua dataa edeltävään pistokkeeseen epäonnistui.
+ssl-error-md5-digest-failure = MD5 tiivistefunktio epäonnistui.
+ssl-error-sha-digest-failure = SHA-1 tiivistefunktio epäonnistui.
+ssl-error-mac-computation-failure = MAC:n laskenta epäonnistui.
+ssl-error-sym-key-context-failure = Symmetrisen avaimen kontekstin luonti epäonnistui.
+ssl-error-sym-key-unwrap-failure = Symmetrisen avaimen purku Client Key Exchange -viestistä epäonnistui.
+ssl-error-pub-key-size-limit-exceeded = SSL-palvelin yritti käyttää kotimaisen vahvuuden julkista avainta vientivahvuuden salaajan kanssa.
+ssl-error-iv-param-failure = PKCS11-koodi ei onnistunut muuttamaan IV:sta param:ksi.
+ssl-error-init-cipher-suite-failure = Valitun salaajan alustus epäonnistui.
+ssl-error-session-key-gen-failure = Asiakas ei onnistunut luomaan istuntoavaimia SSL-istunnolle.
+ssl-error-no-server-key-for-alg = Palvelimella ei ole avainta yritetylle avaimenvaihtoalgoritmille.
+ssl-error-token-insertion-removal = PKCS#11-poletti lisättiin tai poistettiin kesken toiminnon.
+ssl-error-token-slot-not-found = PKCS#11-polettia tarvittavan toiminnon tekemiseen ei löytynyt.
+ssl-error-no-compression-overlap = Ei voida kommunikoida suojatusti: ei yhteisiä pakkausalgoritmeja.
+ssl-error-handshake-not-completed = Ei voida aloittaa uutta SSL-kättelyä ennen kuin meneillään oleva kättely on suoritettu.
+ssl-error-bad-handshake-hash-value = Vastaanotettiin toiselta osapuolelta virheelliset kättelyjen tiivisteluvut.
+ssl-error-cert-kea-mismatch = Annettua varmennetta ei voida käyttää valitun avaimenvaihtoalgoritmin kanssa.
+ssl-error-no-trusted-ssl-client-ca = Yksikään varmentaja ei ole luotettu SSL-asiakkaan todentaja.
+ssl-error-session-not-found = Asiakkaan SSL-istunnon tunnusta ei löytynyt palvelimen istuntovälimuistista.
+ssl-error-decryption-failed-alert = Toinen osapuoli ei onnistunut purkamaan SSL-pakettia, jonka se vastaanotti.
+ssl-error-record-overflow-alert = Toinen osapuoli vastaanotti SSL-paketin, joka oli sallittua pidempi.
+ssl-error-unknown-ca-alert = Toinen osapuoli ei tunnista ja luota varmenteesi varmentajaan.
+ssl-error-access-denied-alert = Toinen osapuoli vastaanotti kelvollisen varmenteen, mutta pääsy estettiin.
+ssl-error-decode-error-alert = Toinen osapuoli ei pystynyt purkamaan SSL-kättelyviestiä.
+ssl-error-decrypt-error-alert = Toinen osapuoli ilmoitti allekirjoituksen todennuksen tai avainvaihdon epäonnistuneen.
+ssl-error-export-restriction-alert = Toinen osapuoli ilmoitti neuvottelun rikkovan vientisääntöjä.
+ssl-error-protocol-version-alert = Toinen osapuoli ilmoitti yhteyskäytäntöversion olevan epäyhteensopiva tai ei tuettu.
+ssl-error-insufficient-security-alert = Palvelin vaatii vahvempia salauksia kuin asiakkaan tukemat algoritmit.
+ssl-error-internal-error-alert = Toinen osapuoli ilmoitti kohdanneensa sisäisen virheen.
+ssl-error-user-canceled-alert = Toinen osapuoli peruutti kättelyn.
+ssl-error-no-renegotiation-alert = Toinen osapuoli ei salli SSL-turvaparametrien uudelleenneuvottelua.
+ssl-error-server-cache-not-configured = SSL-palvelinvälimuistia ei ole asetettu, eikä otettu pois käytöstä tälle pistokkeelle.
+ssl-error-unsupported-extension-alert = SSL-osapuoli ei tue pyydettyä TLS hello-tarkenninta.
+ssl-error-certificate-unobtainable-alert = SSL-osapuoli ei saanut varmennettasi annetusta osoitteesta.
+ssl-error-unrecognized-name-alert = SSL-osapuolella ei ole varmennetta pyydetylle DNS-nimelle.
+ssl-error-bad-cert-status-response-alert = SSL-osapuolella ei saanut OCSP-vastausta varmenteelleen.
+ssl-error-bad-cert-hash-value-alert = SSL-osapuoli ilmoitti varmenteen tiivistearvon olevan virheellinen.
+ssl-error-rx-unexpected-new-session-ticket = SSL vastaanotti odottamattoman New Session Ticket -kättelyviestin.
+ssl-error-rx-malformed-new-session-ticket = SSL vastaanotti virheellisesti muotoillun New Session Ticket -kättelyviestin.
+ssl-error-decompression-failure = SSL vastaanotti tiivistetyn paketin, jota ei onnistuttu purkamaan.
+ssl-error-renegotiation-not-allowed = Uudelleenneuvottelu ei ole sallittu tässä SSL-pistokkeessa.
+ssl-error-unsafe-negotiation = Toinen osapuoli yritti kätellä vanhanaikaisesti (mahdollisesti tietoturvariski).
+ssl-error-rx-unexpected-uncompressed-record = SSL vastaanotti odottamattoman tiivistetyn paketin.
+ssl-error-weak-server-ephemeral-dh-key = SSL-vastaanotti heikon ephemeral Diffie-Hellman -avaimen palvelimen avaimensiirron kättelyviestissä.
+ssl-error-next-protocol-data-invalid = SSL-vastaanotti virheellisen NPN-laajennustiedon.
+ssl-error-feature-not-supported-for-ssl2 = SSL-ominaisuutta ei tueta SSL 2.0 -yhteyksille.
+ssl-error-feature-not-supported-for-servers = SSL-ominaisuutta ei tueta palvelimelle.
+ssl-error-feature-not-supported-for-clients = SSL-ominaisuutta ei tueta asiakkaille.
+ssl-error-invalid-version-range = SSL-versiorajaus ei ole kelvollinen.
+ssl-error-cipher-disallowed-for-version = SSL-osapuoli valitsi salakirjoitusperheen, joka ei ole sallittu yhteyskäytännön valitulla versiolla.
+ssl-error-rx-malformed-hello-verify-request = SSL vastaanotti virheellisesti muotoillut "Hello Verify Request" -kättelyviestin.
+ssl-error-rx-unexpected-hello-verify-request = SSL vastaanotti odottamattoman "Hello Verify Request" -kättelyviestin.
+ssl-error-feature-not-supported-for-version = SSL ominaisuutta ei tueta yhteyskäytännön valitulla versiolla.
+ssl-error-rx-unexpected-cert-status = SSL vastaanotti odottamattoman "Certificate Status" -kättelyviestin.
+ssl-error-unsupported-hash-algorithm = TLS-osapuoli käytti ei-tuettua tiivistealgoritmia.
+ssl-error-digest-failure = Yhteenvetofunktio ei toiminut.
+ssl-error-incorrect-signature-algorithm = Käytetty virheellistä allekirjoitusalgoritmia sähköisesti allekirjoitetussa elementissä.
+ssl-error-next-protocol-no-callback = Seuraavan yhteyskäytännön kättelylaajennus otettiin käyttöön, mutta kutsu peruttiin ennen kuin laajennusta käytettiin.
+ssl-error-next-protocol-no-protocol = Palvelin ei tue yhtäkään yhteyskäytäntöä, jota asiakas tukee ALPN-laajennuksessa.
+ssl-error-inappropriate-fallback-alert = Palvelin hylkäsi kättelyn, koska asiakas siirtyi heikompaan TLS-salaukseen kuin palvelin tukee.
+ssl-error-weak-server-cert-key = Palvelinvarmenne sisälsi julkisen avaimen, joka oli liian heikko.
+ssl-error-rx-short-dtls-read = DTLS-tietueelle ei ole riittävästi tilaa puskurissa.
+ssl-error-no-supported-signature-algorithm = Mitään tuettua TLS-allekirjoitusalgoritmia ei ollut määritetty.
+ssl-error-unsupported-signature-algorithm = Osapuoli käytti ei-tuettua allekirjoitus- ja tiivistealgoritmin yhdistelmää.
+ssl-error-missing-extended-master-secret = Osapuoli yritti jatkaa ilman oikeaa extended_master_secret-laajennusta.
+ssl-error-unexpected-extended-master-secret = Osapuoli yritti jatkaa odottamattoman extended_master_secret-laajennuksen kanssa.
+
+sec-error-io = Tietoturvatodennuksen aikana tapahtui I/O-virhe.
+sec-error-library-failure = tietoturvakirjaston virhe.
+sec-error-bad-data = tietoturvakirjasto: vastaanotettiin virheellistä dataa.
+sec-error-output-len = tietoturvakirjasto: tulosteen pituuden virhe.
+sec-error-input-len = tietoturvakirjastolle tapahtui syötepituusvirhe.
+sec-error-invalid-args = tietoturvakirjasto: virheellinen valinta.
+sec-error-invalid-algorithm = tietoturvakirjasto: virheellinen algoritmi.
+sec-error-invalid-ava = tietoturvakirjasto: virheellinen AVA.
+sec-error-invalid-time = Virheellisesti muotoiltu aikamerkkijono.
+sec-error-bad-der = tietoturvakirjasto: virheellisesti muotoiltu DER-salattu viesti.
+sec-error-bad-signature = Toisen osapuolen varmenteen allekirjoitus ei ole kelvollinen.
+sec-error-expired-certificate = Toisen osapuolen varmenne on vanhentunut.
+sec-error-revoked-certificate = Toisen osapuolen varmenne on mitätöity.
+sec-error-unknown-issuer = Toisen osapuolen varmenteen myöntäjää ei tunnistettu.
+sec-error-bad-key = Toisen osapuolen julkinen avain on virheellinen.
+sec-error-bad-password = Annettu tietoturvasalasana on väärä.
+sec-error-retry-password = Uusi salasana annettu virheellisesti. Yritä uudestaan.
+sec-error-no-nodelock = tietoturvakirjasto: ei solmulukkoa.
+sec-error-bad-database = tietoturvakirjasto: virheellinen tietokanta.
+sec-error-no-memory = tietoturvakirjasto: muistin osoitus epäonnistui.
+sec-error-untrusted-issuer = Käyttäjä on merkinnyt toisen osapuolen varmenteen myöntäjän ei luotetuksi.
+sec-error-untrusted-cert = Käyttäjä on merkinnyt toisen osapuolen varmenteen ei luotetuksi.
+sec-error-duplicate-cert = Varmenne on jo tietokannassa.
+sec-error-duplicate-cert-name = Ladatun varmenteen nimi on sama kuin jo tietokannassa olevan varmenteen.
+sec-error-adding-cert = Virhe lisättäessä varmennetta tietokantaan.
+sec-error-filing-key = Virhe arkistoitaessa uudelleen tämän varmenteen avainta.
+sec-error-no-key = Tämän varmenteen salaista avainta ei löydy avaintietokannasta
+sec-error-cert-valid = Varmenne on kelvollinen.
+sec-error-cert-not-valid = Varmenne ei ole kelvollinen.
+sec-error-cert-no-response = Varmennekirjasto: ei vastausta
+sec-error-expired-issuer-certificate = Varmenteen myöntäjän varmenne on vanhentunut. Tarkista järjestelmän kellonaika ja päivämäärä.
+sec-error-crl-expired = Varmenteen myöntäjän sulkulista on vanhentunut. Päivitä sulkulista tai tarkista järjestelmän kellonaika ja päivämäärä.
+sec-error-crl-bad-signature = Varmenteen myöntäjä sulkulistan allekirjoitus on virheellinen.
+sec-error-crl-invalid = Uusi sulkulista on virheellisesti muotoiltu.
+sec-error-extension-value-invalid = Varmenteen tarkenteen arvo on virheellinen.
+sec-error-extension-not-found = Varmenteen tarkennetta ei löytynyt.
+sec-error-ca-cert-invalid = Myöntäjän varmenne on virheellinen.
+sec-error-path-len-constraint-invalid = Varmenteen polunpituusrajoitus on virheellinen.
+sec-error-cert-usages-invalid = Varmenteen käyttökentät ovat virheellisiä.
+sec-internal-only = **Ainoastaan sisäinen moduuli**
+sec-error-invalid-key = Avain ei tue pyydettyä toimintoa.
+sec-error-unknown-critical-extension = Varmenne sisältää tuntemattoman, kriittisen tarkentimen.
+sec-error-old-crl = Uusi sulkulista ei ole nykyistä myöhäisempi.
+sec-error-no-email-cert = Ei salattu tai allekirjoitettu: sinulla ei vielä ole sähköpostivarmennetta.
+sec-error-no-recipient-certs-query = Ei salattu: sinulla ei ole jokaisen vastaanottajan varmennetta.
+sec-error-not-a-recipient = Ei voida purkaa: et ole vastaanottaja, tai vastaavaa varmennetta tai salaista avainta ei löytynyt.
+sec-error-pkcs7-keyalg-mismatch = Ei voida purkaa: avaimen salausalgoritmi ei vastaa varmennettasi.
+sec-error-pkcs7-bad-signature = Allekirjoituksen todennus epäonnistui: allekirjoittajaa ei löytynyt, allekirjoittajia löytyi liian monta, tai data oli virheellistä tai vioittunutta.
+sec-error-unsupported-keyalg = Ei tuettu tai tuntematon avainalgoritmi.
+sec-error-decryption-disallowed = Ei voida purkaa: salaus on tehty kielletyllä algoritmilla tai avainkoolla.
+sec-error-no-krl = Sivuston varmenteelle ei löytynyt KRL:ää.
+sec-error-krl-expired = Sivuston varmenteen KRL on vanhentunut.
+sec-error-krl-bad-signature = Sivuston varmenteen KRL:n allekirjoitus on virheellinen.
+sec-error-revoked-key = Sivuston varmenteen avain on mitätöity.
+sec-error-krl-invalid = Uusi KRL on virheellisesti muotoiltu.
+sec-error-need-random = tietoturvakirjasto: tarvitaan satunnaisdataa.
+sec-error-no-module = tietoturvakirjasto: yksikään tietoturvamoduuli ei voi suorittaa pyydettyä toimintoa.
+sec-error-no-token = Tietoturvakorttia tai -polettia ei ole olemassa, täytyy alustaa tai on poistettu.
+sec-error-read-only = tietoturvakirjasto: tietokanta, johon on vain lukuoikeus.
+sec-error-no-slot-selected = Yhtäkään paikkaa tai polettia ei ole valittu.
+sec-error-cert-nickname-collision = Varmenne, jolla on sama kutsumanimi on jo olemassa.
+sec-error-key-nickname-collision = Avain, jolla on sama kutsumanimi on jo olemassa.
+sec-error-safe-not-created = virhe luotaessa turvallista oliota
+sec-error-baggage-not-created = virhe luotaessa laukkuoliota
+sec-error-bad-export-algorithm = Vaadittu algoritmi ei ole sallittu.
+sec-error-exporting-certificates = Virhe yritettäessä viedä varmenteita.
+sec-error-importing-certificates = Virhe yritettäessä tuoda varmenteita.
+sec-error-pkcs12-decoding-pfx = Ei voida tuoda. Salauksen purkuvirhe. Tiedosto ei kelvollinen.
+sec-error-pkcs12-invalid-mac = Ei voida tuoda. Virheellinen MAC. Virheellinen salasana tai vioittunut tiedosto.
+sec-error-pkcs12-unsupported-mac-algorithm = Ei voida tuoda. MAC-algoritmia ei tueta.
+sec-error-pkcs12-unsupported-transport-mode = Ei voida tuoda. Tuetaan vain salasanan oikeellisuus- ja tietosuojatiloja.
+sec-error-pkcs12-corrupt-pfx-structure = Ei voida tuoda. Tiedostorakenne on vioittunut.
+sec-error-pkcs12-unsupported-pbe-algorithm = Ei voida tuoda. Salausalgoritmia ei tueta.
+sec-error-pkcs12-unsupported-version = Ei voida tuoda. Tiedostoversiota ei tueta.
+sec-error-pkcs12-privacy-password-incorrect = Ei voida tuoda. Väärä tietosuojasalasana.
+sec-error-pkcs12-cert-collision = Ei voida tuoda. Sama kutsumanimi on jo käytössä tietokannassa.
+sec-error-user-cancelled = Käyttäjä peruutti.
+sec-error-pkcs12-duplicate-data = Ei tuotu, jo tietokannassa.
+sec-error-message-send-aborted = Viestiä ei lähetetty.
+sec-error-inadequate-key-usage = Varmenneavaimen käyttö riittämätöntä yritetylle toiminnolle.
+sec-error-inadequate-cert-type = Varmennetyyppi ei ole hyväksytty ohjelmalle.
+sec-error-cert-addr-mismatch = Allekirjoitusvarmenteen osoite ei vastaa viestiotsakkeissa olevaa osoitetta.
+sec-error-pkcs12-unable-to-import-key = Ei voida tuoda. Virhe yritettäessä tuoda salaista avainta.
+sec-error-pkcs12-importing-cert-chain = Ei voida tuoda. Virhe yritettäessä tuoda varmenneketjua.
+sec-error-pkcs12-unable-to-locate-object-by-name = Ei voida viedä. Avainta tai varmennetta ei löytynyt kutsumanimen perusteella.
+sec-error-pkcs12-unable-to-export-key = Ei voida viedä. Salaista avainta ei löytynyt, eikä sitä voida viedä.
+sec-error-pkcs12-unable-to-write = Ei voida viedä. Vietävään tiedostoon ei voida kirjoittaa.
+sec-error-pkcs12-unable-to-read = Ei voida tuoda. Tuotavaa tiedostoa ei voida lukea.
+sec-error-pkcs12-key-database-not-initialized = Ei voida viedä. Avaintietokanta on vioittunut tai poistettu.
+sec-error-keygen-fail = Ei voitu luoda julkisen ja salaisen avaimen paria.
+sec-error-invalid-password = Annettu salasana on virheellinen. Valitse toinen salasana.
+sec-error-retry-old-password = Vanha salasana annettiin virheellisesti. Yritä uudestaan.
+sec-error-bad-nickname = Varmenteen kutsumanimi jo käytössä.
+sec-error-not-fortezza-issuer = Toisella FORTEZZA-ketjulla on ei-FORTEZZA varmenne.
+sec-error-cannot-move-sensitive-key = Arkaluontoista avainta ei voida siirtää paikkaan, jossa sitä tarvitaan.
+sec-error-js-invalid-module-name = Virheellinen moduulin nimi.
+sec-error-js-invalid-dll = Virheellinen moduulin polku tai tiedostonimi
+sec-error-js-add-mod-failure = Ei voida lisätä moduulia
+sec-error-js-del-mod-failure = Ei voida poistaa moduulia
+sec-error-old-krl = Uusi KRL ei ole nykyistä myöhäisempi.
+sec-error-ckl-conflict = Uudella CKL:lla on eri myöntäjä kuin nykyisellä CKL:lla. Poista nykyinen CKL.
+sec-error-cert-not-in-name-space = Tämän varmenteen varmentajalla ei ole lupaa myöntää tämän nimistä varmennetta.
+sec-error-krl-not-yet-valid = Tämän varmenteen avaimen mitätöinti- tai sulkulista ei ole vielä voimassa.
+sec-error-crl-not-yet-valid = Tämän varmenteen sulkulista ei ole vielä voimassa.
+sec-error-unknown-cert = Pyydettyä varmennetta ei löytynyt.
+sec-error-unknown-signer = Allekirjoittajan varmennetta ei löytynyt.
+sec-error-cert-bad-access-location = Varmenteen tilapalvelimen osoite on virheellisesti muotoiltu.
+sec-error-ocsp-unknown-response-type = OCSP-palvelimen vastausta ei ymmärretty kokonaisuudessaan. Se on tuntematonta tyyppiä.
+sec-error-ocsp-bad-http-response = OCSP-palvelimen vastaus oli odottamatonta tai virheellistä HTTP-dataa.
+sec-error-ocsp-malformed-request = OCSP-palvelimen mukaan pyyntö oli vioittunut tai virheellisesti muotoiltu.
+sec-error-ocsp-server-error = OCSP-palvelimelle tapahtui sisäinen virhe.
+sec-error-ocsp-try-server-later = OCSP-palvelin ehdottaa yrittämään myöhemmin uudestaan.
+sec-error-ocsp-request-needs-sig = OCSP-palvelin vaatii allekirjoituksen pyyntöön.
+sec-error-ocsp-unauthorized-request = OCSP-palvelin hylkäsi pyynnön luvan puuttumisen takia.
+sec-error-ocsp-unknown-response-status = OCSP-palvelin vastasi tuntemattomalla tilalla.
+sec-error-ocsp-unknown-cert = OCSP-palvelimella ei ole tämän varmenteen tilaa.
+sec-error-ocsp-not-enabled = OCSP täytyy ottaa käyttöön ennen tätä toimintoa.
+sec-error-ocsp-no-default-responder = Ennen toiminnon käyttämistä tulee asettaa oletus OCSP-vastaaja.
+sec-error-ocsp-malformed-response = OCSP-palvelimen vastaus oli vioittunut tai virheellisesti muotoiltu.
+sec-error-ocsp-unauthorized-response = OCSP-vastauksen allekirjoittajalla ei ole lupaa kertoa varmenteen tilaa.
+sec-error-ocsp-future-response = OCSP-vastaus ei ole vielä kelvollinen (vastauksen päivämäärä on tulevaisuudessa).
+sec-error-ocsp-old-response = OCSP-vastaus sisältää vanhentunutta tietoa.
+sec-error-digest-not-found = CMS tai PKCS #7 -tiivistettä ei löytynyt allekirjoitetusta viestistä.
+sec-error-unsupported-message-type = CMS tai PKCS #7 -viestityyppiä ei tueta.
+sec-error-module-stuck = PKCS #11 -moduulia ei voitu poistaa, koska se on edelleen käytössä.
+sec-error-bad-template = Ei voitu purkaa ASN.1-dataa. Määritelty pohja oli virheellinen.
+sec-error-crl-not-found = Vastaavaa sulkulistaa ei löytynyt.
+sec-error-reused-issuer-and-serial = Olet tuomassa varmennetta, jonka myöntäjä tai sarjanumero on sama kuin olemassa olevalla varmenteella, mutta tuotava varmenne on kuitenkiin uusi varmenne.
+sec-error-busy = NSS ei voinut sulkeutua. Objektit ovat edelleen käytössä.
+sec-error-extra-input = DER-salattu viesti sisältää ylimääräistä käyttämätöntä dataa.
+sec-error-unsupported-elliptic-curve = Ei tuettu elliptinen käyrä.
+sec-error-unsupported-ec-point-form = Ei tuettu elliptinen käyräpistemuoto.
+sec-error-unrecognized-oid = Ei tunnistettu objektin tunniste.
+sec-error-ocsp-invalid-signing-cert = Virheellinen OCSP-allekirjoitusvarmenne OCSP-vastauksessa.
+sec-error-revoked-certificate-crl = Varmenne on mitätöity varmenteen myöntäjän sulkulistalla.
+sec-error-revoked-certificate-ocsp = Varmenteen myöntäjän OCSP-vastaaja ilmoittaa, että varmenne on mitätöity.
+sec-error-crl-invalid-version = Varmenteen myöntäjän sulkulistan versionumero on tuntematon.
+sec-error-crl-v1-critical-extension = Varmenteen myöntäjän V1 sulkulistalla on kriittinen tarkenne.
+sec-error-crl-unknown-critical-extension = Varmenteen myöntäjän V2 sulkulistalla on tuntematon kriittinen tarkenne.
+sec-error-unknown-object-type = Tuntematon objektityyppi annettiin.
+sec-error-incompatible-pkcs11 = PKCS #11 -ajuri on määritelmän vastainen epäyhteensopivalla tavalla.
+sec-error-no-event = Yksikään uusi paikkatapahtuma ei ole mahdollinen tällä hetkellä.
+sec-error-crl-already-exists = Sulkulista on jo olemassa.
+sec-error-not-initialized = NSS ei ole alustettu.
+sec-error-token-not-logged-in = Toiminto epäonnistui, koska PKCS#11-vuoromerkki ei ole kirjautunut sisään.
+sec-error-ocsp-responder-cert-invalid = Määritellyn OCSP-palvelimen varmenne on virheellinen.
+sec-error-ocsp-bad-signature = OCSP-vastauksen allekirjoitus on virheellinen.
+sec-error-out-of-search-limits = Varmenteen todentamisen etsiminen ei ole mahdollista
+sec-error-invalid-policy-mapping = Käytäntörajaus sisältää anypolicy:n
+sec-error-policy-validation-failed = Varmenneketju ei läpäise käytännön todennusta
+sec-error-unknown-aia-location-type = Tuntematon sijaintityyppi varmenteen AIA-laajennuksessa
+sec-error-bad-http-response = Palvelin lähetti virheellisen HTTP-vastauksen
+sec-error-bad-ldap-response = Palvelin lähetti virheellisen LDAP-vastauksen
+sec-error-failed-to-encode-data = Datan salaus ASN1-salaajalla ei onnistunut
+sec-error-bad-info-access-location = Virheellinen tiedonsaantiosoite varmenteen laajennuksessa
+sec-error-libpkix-internal = Libpkix:n sisäinen virhe varmennetta todennettaessa.
+sec-error-pkcs11-general-error = PKCS #11 -moduuli palautti CKR_GENERAL_ERROR -viestin merkkinä tapahtuneesta virheestä, josta ei voida toipua.
+sec-error-pkcs11-function-failed = PKCS #11 -moduuli palautti CKR_FUNCTION_FAILED -viestin merkkinä siitä, että pyydettyä toimintoa ei voitu suorittaa. Saman toiminnon yrittäminen uudestaan saattaa onnistua.
+sec-error-pkcs11-device-error = PKCS #11 -moduuli palautti CKR_DEVICE_ERROR -viestin merkkinä tapahtuneesta virheestä vuoromerkissä tai paikassa.
+sec-error-bad-info-access-method = Tuntematon tiedonsaantitapa varmenteen laajennuksessa.
+sec-error-crl-import-failed = Virhe yritettäessä tuoda sulkulistaa.
+sec-error-expired-password = Salasana on vanhentunut.
+sec-error-locked-password = Salasana on lukittu.
+sec-error-unknown-pkcs11-error = Tuntematon PKCS #11 -virhe.
+sec-error-bad-crl-dp-url = Virheellinen tai ei tuettu osoite CRL-jakelupisteen nimessä.
+sec-error-cert-signature-algorithm-disabled = Varmenne oli allekirjoitettu allekirjoitusalgoritmilla, joka on poistettu käytöstä, koska se ei ole turvallinen.
+
+mozilla-pkix-error-key-pinning-failure = Palvelin käyttää avaimen lukkolistaa (HPKP), mutta yhtäkään luotettua ja lukkolistan mukaista varmenneketjua ei voitu luoda. Lukkolistarikkeitä ei voida ohittaa.
+mozilla-pkix-error-ca-cert-used-as-end-entity = Palvelin käyttää tavallista rajoitelaajennusvarmennetta, joka tunnistaa sen varmentajaksi. Asianmukaisella varmenteella näin ei pitäisi olla.
+mozilla-pkix-error-inadequate-key-size = Palvelimen tarjoaman varmenteen avaimen koko on liian pieni suojatun yhteyden luomiseksi.
+mozilla-pkix-error-v1-cert-used-as-ca = X.509 versio 1 -varmenne, joka ei ole luotettu ankkuri, käytettiin palvelimen varmenteen allekirjoittamiseen. X.509 versio 1 -varmenteet ovat vanhentuneita, eikä niitä pitäisi käyttää muiden varmenteiden allekirjoittamiseen.
+mozilla-pkix-error-not-yet-valid-certificate = Palvelimen lähettämä varmenne ei ole vielä voimassa.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = Palvelimen varmenne on myönnetty varmenteella, joka ei ole vielä voimassa.
+mozilla-pkix-error-signature-algorithm-mismatch = Varmenteen allekirjoituskentässä käytetty allekirjoitusalgoritmi ei vastaa signatureAlgorithm-kentässä määriteltyä algoritmia.
+mozilla-pkix-error-ocsp-response-for-cert-missing = OCSP-vastaus ei sisällä todennettavan varmenteen tilaa.
+mozilla-pkix-error-validity-too-long = Palvelimen antama varmenne on kelvollinen liian pitkään.
+mozilla-pkix-error-required-tls-feature-missing = Vaadittu TLS-ominaisuus puuttuu.
+mozilla-pkix-error-invalid-integer-encoding = Palvelin tarjosi varmenteen, joka sisältää väärin koodatun kokonaisluvun. Yleisiä syitä tälle ovat muiden muassa negatiiviset sarjanumerot, negatiiviset RSA-moduulit ja tarpeettoman pitkät koodaukset.
+mozilla-pkix-error-empty-issuer-name = Palvelin tarjosi varmenteen, jonka myöntäjän luokiteltu nimi (DN) on tyhjä.
+mozilla-pkix-error-additional-policy-constraint-failed = Varmenteen lisäkäytäntörajoite ei täyttynyt todennettaessa varmennetta.
+mozilla-pkix-error-self-signed-cert = Varmenteeseen ei luoteta, koska se on allekirjoitettu itsellään.
+
+xp-java-remove-principal-error = Ei voitu poistaa päämiestä
+xp-java-delete-privilege-error = Ei voitu poistaa oikeutta
+xp-java-cert-not-exists-error = Tällä päämiehellä ei ole varmennetta
+
+xp-sec-fortezza-bad-card = Fortezza-korttia ei ole asianmukaisesti alustettu. Poista kortti ja palauta se sen myöntäjälle.
+xp-sec-fortezza-no-card = Fortezza-kortteja ei löytynyt
+xp-sec-fortezza-none-selected = Fortezza-korttia ei ole valittu
+xp-sec-fortezza-more-info = Valitse henkilöllisyys, josta näytetään lisätietoja
+xp-sec-fortezza-person-not-found = Henkilöllisyyttä ei löytynyt
+xp-sec-fortezza-no-more-info = Ei lisätietoja valitusta henkilöllisyydestä
+xp-sec-fortezza-bad-pin = Virheellinen pin-koodi
+xp-sec-fortezza-person-error = Ei voitu alustaa Fortezza-henkilöllisyyksiä.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/passwordmgr/passwordmgr.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/passwordmgr/passwordmgr.ftl
new file mode 100644
index 0000000000..348e9da5c6
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/passwordmgr/passwordmgr.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Save and update password doorhanger
+
+# Variables
+# $host (String) - Hostname for which the password is saved for.
+password-manager-save-password-message = Tallennetaanko sivuston { $host } salasana?
+password-manager-save-password-button-deny =
+ .label = Ei nyt
+ .accesskey = n
+password-manager-save-password-button-allow =
+ .label = Tallenna
+ .accesskey = T
+password-manager-save-password-button-never =
+ .label = Älä tallenna koskaan
+ .accesskey = k
+# Variables
+# $host (String) - Hostname for which the password is updated for.
+password-manager-update-password-message = Päivitetäänkö sivuston { $host } salasana?
+password-manager-update-password-button-delete =
+ .label = Poista tallennettu salasana
+ .accesskey = s
+password-manager-update-login-add-username = Lisätäänkö käyttäjätunnus tallennettuun salasanaan?
+password-manager-password-password-button-allow =
+ .label = Päivitä
+ .accesskey = Ä
+password-manager-update-password-button-deny =
+ .label = Älä päivitä
+ .accesskey = i
+# This is displayed in place of the username when it is missing.
+password-manager-no-username-placeholder = Ei käyttäjätunnusta
+password-manager-toggle-password =
+ .label = Näytä salasana
+ .accesskey = N
+password-manager-confirm-password-change = Vahvista salasanan vaihto
+password-manager-select-username = Valitse päivitettävä käyttäjätunnus:
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/payments/payments.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..a1aebfa800
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/payments/payments.ftl
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# This value isn't used directly, but is defined to avoid duplication
+# in the "credit-card-label-*" strings.
+#
+# Variables:
+# $month (String): Numeric month the credit card expires
+# $year (String): Four-digit year the credit card expires
+credit-card-expiration = Vanhenee { $month }/{ $year }
+
+## These labels serve as a description of a credit card.
+## The description must include a credit card number, and may optionally
+## include a cardholder name, an expiration date, or both, so we have
+## four variations.
+
+# Label for a credit card with a number only
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-2 = { $number }
+ .aria-label = { $type } { credit-card-label-number-2 }
+
+# Label for a credit card with a number and name
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-2 = { $number }, { $name }
+ .aria-label = { $type } { credit-card-label-number-name-2 }
+
+# Label for a credit card with a number and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-expiration-2 = { $number }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-expiration-2 }
+
+# Label for a credit card with a number, name, and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-expiration-2 = { $number }, { $name }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-name-expiration-2 }
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/pdfviewer/viewer.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/pdfviewer/viewer.ftl
new file mode 100644
index 0000000000..db465a7c3d
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/pdfviewer/viewer.ftl
@@ -0,0 +1,384 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Main toolbar buttons (tooltips and alt text for images)
+
+pdfjs-previous-button =
+ .title = Edellinen sivu
+pdfjs-previous-button-label = Edellinen
+pdfjs-next-button =
+ .title = Seuraava sivu
+pdfjs-next-button-label = Seuraava
+# .title: Tooltip for the pageNumber input.
+pdfjs-page-input =
+ .title = Sivu
+# Variables:
+# $pagesCount (Number) - the total number of pages in the document
+# This string follows an input field with the number of the page currently displayed.
+pdfjs-of-pages = / { $pagesCount }
+# Variables:
+# $pageNumber (Number) - the currently visible page
+# $pagesCount (Number) - the total number of pages in the document
+pdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })
+pdfjs-zoom-out-button =
+ .title = Loitonna
+pdfjs-zoom-out-button-label = Loitonna
+pdfjs-zoom-in-button =
+ .title = Lähennä
+pdfjs-zoom-in-button-label = Lähennä
+pdfjs-zoom-select =
+ .title = Suurennus
+pdfjs-presentation-mode-button =
+ .title = Siirry esitystilaan
+pdfjs-presentation-mode-button-label = Esitystila
+pdfjs-open-file-button =
+ .title = Avaa tiedosto
+pdfjs-open-file-button-label = Avaa
+pdfjs-print-button =
+ .title = Tulosta
+pdfjs-print-button-label = Tulosta
+pdfjs-save-button =
+ .title = Tallenna
+pdfjs-save-button-label = Tallenna
+# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+pdfjs-download-button =
+ .title = Lataa
+# Used in Firefox for Android as a label for the download button (“download” is a verb).
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+pdfjs-download-button-label = Lataa
+pdfjs-bookmark-button =
+ .title = Nykyinen sivu (Näytä URL-osoite nykyiseltä sivulta)
+pdfjs-bookmark-button-label = Nykyinen sivu
+# Used in Firefox for Android.
+pdfjs-open-in-app-button =
+ .title = Avaa sovelluksessa
+# Used in Firefox for Android.
+# Length of the translation matters since we are in a mobile context, with limited screen estate.
+pdfjs-open-in-app-button-label = Avaa sovelluksessa
+
+## Secondary toolbar and context menu
+
+pdfjs-tools-button =
+ .title = Tools
+pdfjs-tools-button-label = Tools
+pdfjs-first-page-button =
+ .title = Siirry ensimmäiselle sivulle
+pdfjs-first-page-button-label = Siirry ensimmäiselle sivulle
+pdfjs-last-page-button =
+ .title = Siirry viimeiselle sivulle
+pdfjs-last-page-button-label = Siirry viimeiselle sivulle
+pdfjs-page-rotate-cw-button =
+ .title = Kierrä oikealle
+pdfjs-page-rotate-cw-button-label = Kierrä oikealle
+pdfjs-page-rotate-ccw-button =
+ .title = Kierrä vasemmalle
+pdfjs-page-rotate-ccw-button-label = Kierrä vasemmalle
+pdfjs-cursor-text-select-tool-button =
+ .title = Käytä tekstinvalintatyökalua
+pdfjs-cursor-text-select-tool-button-label = Tekstinvalintatyökalu
+pdfjs-cursor-hand-tool-button =
+ .title = Käytä käsityökalua
+pdfjs-cursor-hand-tool-button-label = Käsityökalu
+pdfjs-scroll-page-button =
+ .title = Käytä sivun vieritystä
+pdfjs-scroll-page-button-label = Sivun vieritys
+pdfjs-scroll-vertical-button =
+ .title = Käytä pystysuuntaista vieritystä
+pdfjs-scroll-vertical-button-label = Pystysuuntainen vieritys
+pdfjs-scroll-horizontal-button =
+ .title = Käytä vaakasuuntaista vieritystä
+pdfjs-scroll-horizontal-button-label = Vaakasuuntainen vieritys
+pdfjs-scroll-wrapped-button =
+ .title = Käytä rivittyvää vieritystä
+pdfjs-scroll-wrapped-button-label = Rivittyvä vieritys
+pdfjs-spread-none-button =
+ .title = Älä yhdistä sivuja aukeamiksi
+pdfjs-spread-none-button-label = Ei aukeamia
+pdfjs-spread-odd-button =
+ .title = Yhdistä sivut aukeamiksi alkaen parittomalta sivulta
+pdfjs-spread-odd-button-label = Parittomalta alkavat aukeamat
+pdfjs-spread-even-button =
+ .title = Yhdistä sivut aukeamiksi alkaen parilliselta sivulta
+pdfjs-spread-even-button-label = Parilliselta alkavat aukeamat
+
+## Document properties dialog
+
+pdfjs-document-properties-button =
+ .title = Dokumentin ominaisuudet…
+pdfjs-document-properties-button-label = Dokumentin ominaisuudet…
+pdfjs-document-properties-file-name = Tiedoston nimi:
+pdfjs-document-properties-file-size = Tiedoston koko:
+# Variables:
+# $size_kb (Number) - the PDF file size in kilobytes
+# $size_b (Number) - the PDF file size in bytes
+pdfjs-document-properties-kb = { $size_kb } kt ({ $size_b } tavua)
+# Variables:
+# $size_mb (Number) - the PDF file size in megabytes
+# $size_b (Number) - the PDF file size in bytes
+pdfjs-document-properties-mb = { $size_mb } Mt ({ $size_b } tavua)
+pdfjs-document-properties-title = Otsikko:
+pdfjs-document-properties-author = Tekijä:
+pdfjs-document-properties-subject = Aihe:
+pdfjs-document-properties-keywords = Avainsanat:
+pdfjs-document-properties-creation-date = Luomispäivämäärä:
+pdfjs-document-properties-modification-date = Muokkauspäivämäärä:
+# Variables:
+# $date (Date) - the creation/modification date of the PDF file
+# $time (Time) - the creation/modification time of the PDF file
+pdfjs-document-properties-date-string = { $date }, { $time }
+pdfjs-document-properties-creator = Luoja:
+pdfjs-document-properties-producer = PDF-tuottaja:
+pdfjs-document-properties-version = PDF-versio:
+pdfjs-document-properties-page-count = Sivujen määrä:
+pdfjs-document-properties-page-size = Sivun koko:
+pdfjs-document-properties-page-size-unit-inches = in
+pdfjs-document-properties-page-size-unit-millimeters = mm
+pdfjs-document-properties-page-size-orientation-portrait = pysty
+pdfjs-document-properties-page-size-orientation-landscape = vaaka
+pdfjs-document-properties-page-size-name-a-three = A3
+pdfjs-document-properties-page-size-name-a-four = A4
+pdfjs-document-properties-page-size-name-letter = Letter
+pdfjs-document-properties-page-size-name-legal = Legal
+
+## Variables:
+## $width (Number) - the width of the (current) page
+## $height (Number) - the height of the (current) page
+## $unit (String) - the unit of measurement of the (current) page
+## $name (String) - the name of the (current) page
+## $orientation (String) - the orientation of the (current) page
+
+pdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })
+pdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })
+
+##
+
+# The linearization status of the document; usually called "Fast Web View" in
+# English locales of Adobe software.
+pdfjs-document-properties-linearized = Nopea web-katselu:
+pdfjs-document-properties-linearized-yes = Kyllä
+pdfjs-document-properties-linearized-no = Ei
+pdfjs-document-properties-close-button = Sulje
+
+## Print
+
+pdfjs-print-progress-message = Valmistellaan dokumenttia tulostamista varten…
+# Variables:
+# $progress (Number) - percent value
+pdfjs-print-progress-percent = { $progress } %
+pdfjs-print-progress-close-button = Peruuta
+pdfjs-printing-not-supported = Varoitus: Selain ei tue kaikkia tulostustapoja.
+pdfjs-printing-not-ready = Varoitus: PDF-tiedosto ei ole vielä latautunut kokonaan, eikä sitä voi vielä tulostaa.
+
+## Tooltips and alt text for side panel toolbar buttons
+
+pdfjs-toggle-sidebar-button =
+ .title = Näytä/piilota sivupaneeli
+pdfjs-toggle-sidebar-notification-button =
+ .title = Näytä/piilota sivupaneeli (dokumentissa on sisällys/liitteitä/tasoja)
+pdfjs-toggle-sidebar-button-label = Näytä/piilota sivupaneeli
+pdfjs-document-outline-button =
+ .title = Näytä dokumentin sisällys (laajenna tai kutista kohdat kaksoisnapsauttamalla)
+pdfjs-document-outline-button-label = Dokumentin sisällys
+pdfjs-attachments-button =
+ .title = Näytä liitteet
+pdfjs-attachments-button-label = Liitteet
+pdfjs-layers-button =
+ .title = Näytä tasot (kaksoisnapsauta palauttaaksesi kaikki tasot oletustilaan)
+pdfjs-layers-button-label = Tasot
+pdfjs-thumbs-button =
+ .title = Näytä pienoiskuvat
+pdfjs-thumbs-button-label = Pienoiskuvat
+pdfjs-current-outline-item-button =
+ .title = Etsi nykyinen sisällyksen kohta
+pdfjs-current-outline-item-button-label = Nykyinen sisällyksen kohta
+pdfjs-findbar-button =
+ .title = Etsi dokumentista
+pdfjs-findbar-button-label = Etsi
+pdfjs-additional-layers = Lisätasot
+
+## Thumbnails panel item (tooltip and alt text for images)
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-title =
+ .title = Sivu { $page }
+# Variables:
+# $page (Number) - the page number
+pdfjs-thumb-page-canvas =
+ .aria-label = Pienoiskuva sivusta { $page }
+
+## Find panel button title and messages
+
+pdfjs-find-input =
+ .title = Etsi
+ .placeholder = Etsi dokumentista…
+pdfjs-find-previous-button =
+ .title = Etsi hakusanan edellinen osuma
+pdfjs-find-previous-button-label = Edellinen
+pdfjs-find-next-button =
+ .title = Etsi hakusanan seuraava osuma
+pdfjs-find-next-button-label = Seuraava
+pdfjs-find-highlight-checkbox = Korosta kaikki
+pdfjs-find-match-case-checkbox-label = Huomioi kirjainkoko
+pdfjs-find-match-diacritics-checkbox-label = Erota tarkkeet
+pdfjs-find-entire-word-checkbox-label = Kokonaiset sanat
+pdfjs-find-reached-top = Päästiin dokumentin alkuun, jatketaan lopusta
+pdfjs-find-reached-bottom = Päästiin dokumentin loppuun, jatketaan alusta
+# Variables:
+# $current (Number) - the index of the currently active find result
+# $total (Number) - the total number of matches in the document
+pdfjs-find-match-count =
+ { $total ->
+ [one] { $current } / { $total } osuma
+ *[other] { $current } / { $total } osumaa
+ }
+# Variables:
+# $limit (Number) - the maximum number of matches
+pdfjs-find-match-count-limit =
+ { $limit ->
+ [one] Yli { $limit } osuma
+ *[other] Yli { $limit } osumaa
+ }
+pdfjs-find-not-found = Hakusanaa ei löytynyt
+
+## Predefined zoom values
+
+pdfjs-page-scale-width = Sivun leveys
+pdfjs-page-scale-fit = Koko sivu
+pdfjs-page-scale-auto = Automaattinen suurennus
+pdfjs-page-scale-actual = Todellinen koko
+# Variables:
+# $scale (Number) - percent value for page scale
+pdfjs-page-scale-percent = { $scale } %
+
+## PDF page
+
+# Variables:
+# $page (Number) - the page number
+pdfjs-page-landmark =
+ .aria-label = Sivu { $page }
+
+## Loading indicator messages
+
+pdfjs-loading-error = Tapahtui virhe ladattaessa PDF-tiedostoa.
+pdfjs-invalid-file-error = Virheellinen tai vioittunut PDF-tiedosto.
+pdfjs-missing-file-error = Puuttuva PDF-tiedosto.
+pdfjs-unexpected-response-error = Odottamaton vastaus palvelimelta.
+pdfjs-rendering-error = Tapahtui virhe piirrettäessä sivua.
+
+## Annotations
+
+# Variables:
+# $date (Date) - the modification date of the annotation
+# $time (Time) - the modification time of the annotation
+pdfjs-annotation-date-string = { $date }, { $time }
+# .alt: This is used as a tooltip.
+# Variables:
+# $type (String) - an annotation type from a list defined in the PDF spec
+# (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+pdfjs-text-annotation-type =
+ .alt = [{ $type }-merkintä]
+
+## Password
+
+pdfjs-password-label = Kirjoita PDF-tiedoston salasana.
+pdfjs-password-invalid = Virheellinen salasana. Yritä uudestaan.
+pdfjs-password-ok-button = OK
+pdfjs-password-cancel-button = Peruuta
+pdfjs-web-fonts-disabled = Verkkosivujen omat kirjasinlajit on estetty: ei voida käyttää upotettuja PDF-kirjasinlajeja.
+
+## Editing
+
+pdfjs-editor-free-text-button =
+ .title = Teksti
+pdfjs-editor-free-text-button-label = Teksti
+pdfjs-editor-ink-button =
+ .title = Piirros
+pdfjs-editor-ink-button-label = Piirros
+pdfjs-editor-stamp-button =
+ .title = Lisää tai muokkaa kuvia
+pdfjs-editor-stamp-button-label = Lisää tai muokkaa kuvia
+pdfjs-editor-remove-button =
+ .title = Poista
+
+## Remove button for the various kind of editor.
+
+pdfjs-editor-remove-ink-button =
+ .title = Poista piirros
+pdfjs-editor-remove-freetext-button =
+ .title = Poista teksti
+pdfjs-editor-remove-stamp-button =
+ .title = Poista kuva
+pdfjs-editor-remove-highlight-button =
+ .title = Poista korostus
+
+##
+
+# Editor Parameters
+pdfjs-editor-free-text-color-input = Väri
+pdfjs-editor-free-text-size-input = Koko
+pdfjs-editor-ink-color-input = Väri
+pdfjs-editor-ink-thickness-input = Paksuus
+pdfjs-editor-ink-opacity-input = Peittävyys
+pdfjs-editor-stamp-add-image-button =
+ .title = Lisää kuva
+pdfjs-editor-stamp-add-image-button-label = Lisää kuva
+pdfjs-free-text =
+ .aria-label = Tekstimuokkain
+pdfjs-free-text-default-content = Aloita kirjoittaminen…
+pdfjs-ink =
+ .aria-label = Piirrustusmuokkain
+pdfjs-ink-canvas =
+ .aria-label = Käyttäjän luoma kuva
+
+## Alt-text dialog
+
+# Alternative text (alt text) helps when people can't see the image.
+pdfjs-editor-alt-text-button-label = Vaihtoehtoinen teksti
+pdfjs-editor-alt-text-edit-button-label = Muokkaa vaihtoehtoista tekstiä
+pdfjs-editor-alt-text-dialog-label = Valitse vaihtoehto
+pdfjs-editor-alt-text-dialog-description = Vaihtoehtoinen teksti ("alt-teksti") auttaa ihmisiä, jotka eivät näe kuvaa tai kun kuva ei lataudu.
+pdfjs-editor-alt-text-add-description-label = Lisää kuvaus
+pdfjs-editor-alt-text-add-description-description = Pyri 1-2 lauseeseen, jotka kuvaavat aihetta, ympäristöä tai toimintaa.
+pdfjs-editor-alt-text-mark-decorative-label = Merkitse koristeelliseksi
+pdfjs-editor-alt-text-mark-decorative-description = Tätä käytetään koristekuville, kuten reunuksille tai vesileimoille.
+pdfjs-editor-alt-text-cancel-button = Peruuta
+pdfjs-editor-alt-text-save-button = Tallenna
+pdfjs-editor-alt-text-decorative-tooltip = Merkitty koristeelliseksi
+# .placeholder: This is a placeholder for the alt text input area
+pdfjs-editor-alt-text-textarea =
+ .placeholder = Esimerkiksi "Nuori mies istuu pöytään syömään aterian"
+
+## Editor resizers
+## This is used in an aria label to help to understand the role of the resizer.
+
+pdfjs-editor-resizer-label-top-left = Vasen yläkulma - muuta kokoa
+pdfjs-editor-resizer-label-top-middle = Ylhäällä keskellä - muuta kokoa
+pdfjs-editor-resizer-label-top-right = Oikea yläkulma - muuta kokoa
+pdfjs-editor-resizer-label-middle-right = Keskellä oikealla - muuta kokoa
+pdfjs-editor-resizer-label-bottom-right = Oikea alakulma - muuta kokoa
+pdfjs-editor-resizer-label-bottom-middle = Alhaalla keskellä - muuta kokoa
+pdfjs-editor-resizer-label-bottom-left = Vasen alakulma - muuta kokoa
+pdfjs-editor-resizer-label-middle-left = Keskellä vasemmalla - muuta kokoa
+
+## Color picker
+
+# This means "Color used to highlight text"
+pdfjs-editor-highlight-colorpicker-label = Korostusväri
+pdfjs-editor-colorpicker-button =
+ .title = Vaihda väri
+pdfjs-editor-colorpicker-dropdown =
+ .aria-label = Värivalinnat
+pdfjs-editor-colorpicker-yellow =
+ .title = Keltainen
+pdfjs-editor-colorpicker-green =
+ .title = Vihreä
+pdfjs-editor-colorpicker-blue =
+ .title = Sininen
+pdfjs-editor-colorpicker-pink =
+ .title = Pinkki
+pdfjs-editor-colorpicker-red =
+ .title = Punainen
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/pictureinpicture/pictureinpicture.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..c1c0a5e7a8
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/pictureinpicture/pictureinpicture.ftl
@@ -0,0 +1,86 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pictureinpicture-player-title = Kuva kuvassa
+
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+##
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+pictureinpicture-pause-btn =
+ .aria-label = Pysäytä
+ .tooltip = Pysäytä (välilyönti)
+pictureinpicture-play-btn =
+ .aria-label = Toista
+ .tooltip = Toista (välilyönti)
+
+pictureinpicture-mute-btn =
+ .aria-label = Vaimenna ääni
+ .tooltip = Vaimenna ääni ({ $shortcut })
+pictureinpicture-unmute-btn =
+ .aria-label = Palauta ääni
+ .tooltip = Palauta ääni ({ $shortcut })
+
+pictureinpicture-unpip-btn =
+ .aria-label = Lähetä takaisin välilehteen
+ .tooltip = Takaisin välilehteen
+
+pictureinpicture-close-btn =
+ .aria-label = Sulje
+ .tooltip = Sulje ({ $shortcut })
+
+pictureinpicture-subtitles-btn =
+ .aria-label = Tekstitykset
+ .tooltip = Tekstitykset
+
+pictureinpicture-fullscreen-btn2 =
+ .aria-label = Koko näyttö
+ .tooltip = Koko näyttö (kaksoisnapsauta tai { $shortcut })
+
+pictureinpicture-exit-fullscreen-btn2 =
+ .aria-label = Poistu koko näytöstä
+ .tooltip = Poistu koko näytön tilasta (kaksoisnapsauta tai { $shortcut })
+
+##
+
+# Keyboard shortcut to toggle fullscreen mode when Picture-in-Picture is open.
+pictureinpicture-toggle-fullscreen-shortcut =
+ .key = F
+
+## Note that this uses .tooltip rather than the standard '.title'
+## or '.tooltiptext' - but it has the same effect. Code in the
+## picture-in-picture window will read and copy this to an in-document
+## DOM node that then shows the tooltip.
+
+pictureinpicture-seekbackward-btn =
+ .aria-label = Taaksepäin
+ .tooltip = Taaksepäin (←)
+
+pictureinpicture-seekforward-btn =
+ .aria-label = Eteenpäin
+ .tooltip = Eteenpäin (→)
+
+##
+
+# This string is never displayed on the window. Is intended to be announced by
+# a screen reader whenever a user opens the subtitles settings panel
+# after selecting the subtitles button.
+pictureinpicture-subtitles-panel-accessible = Tekstitysasetukset
+
+pictureinpicture-subtitles-label = Tekstitykset
+
+pictureinpicture-font-size-label = Kirjasinkoko
+
+pictureinpicture-font-size-small = Pieni
+
+pictureinpicture-font-size-medium = Keskikokoinen
+
+pictureinpicture-font-size-large = Suuri
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/preferences/preferences.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..e1a4b7d784
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/preferences/preferences.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+password-not-set =
+ .value = (ei ole asetettu)
+
+failed-pp-change = Pääsalasanan vaihtaminen ei onnistunut
+incorrect-pp = Väärä pääsalasana. Yritä uudestaan.
+pp-change-ok = Pääsalasana vaihdettu onnistuneesti.
+
+settings-pp-erased-ok = Olet poistanut pääsalasanasi. Tallennettuja salasanoja ja varmenteiden yksityisiä avaimia, joita { -brand-short-name } hallinnoi, ei suojata.
+settings-pp-not-wanted = Varoitus! Olet päättänyt olla käyttämättä pääsalasanaa. Tallennettuja salasanoja ja varmenteiden yksityisiä avaimia, joita { -brand-short-name } hallinnoi, ei suojata.
+
+pp-change2empty-in-fips-mode = Olet parhaillaan FIPS-tilassa. FIPS edellyttää, että pääsalasana ei ole tyhjä.
+pw-change-success-title = Salasanan vaihto onnistui
+pw-change-failed-title = Salasanan vaihto epäonnistui
+pw-remove-button =
+ .label = Poista
+
+primary-password-dialog =
+ .title = Pääsalasana
+set-password-old-password = Nykyinen salasana:
+set-password-new-password = Kirjoita uusi salasana:
+set-password-reenter-password = Toista salasana:
+set-password-meter = Salasanan laadun mittari
+set-password-meter-loading = Ladataan
+primary-password-admin = Järjestelmän ylläpitäjä vaatii pääsalasanan asettamisen ennen käyttäjätunnusten ja salasanojen tallentamista.
+primary-password-description = Pääsalasanalla suojataan tällä laitteella olevia tärkeitä tietoja, kuten käyttäjätunnuksia ja salasanoja. Jos luot pääsalasanan, { -brand-short-name } kysyy sitä kerran istunnossa, jos se tarvitsee sen suojaamia tietoja.
+primary-password-warning = Säilytä pääsalasanasi turvallisessa paikassa. Jos unohdat sen, et pääse käsiksi sen tällä laitteella suojaamiin tietoihin.
+
+remove-primary-password =
+ .title = Poista pääsalasana
+remove-info =
+ .value = Kirjoita nykyinen salasanasi jatkaaksesi:
+remove-primary-password-warning1 = Pääsalasanasi suojaa arkaluontoista tietoa, kuten käyttäjätunnuksia ja salasanoja.
+remove-primary-password-warning2 = Jos poistat pääsalasanan, tietosi eivät enää ole suojattuina.
+remove-password-old-password =
+ .value = Nykyinen salasana:
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/printing/printDialogs.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..55dc6ef9aa
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/printing/printDialogs.ftl
@@ -0,0 +1,112 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+print-setup =
+ .title = Sivun asetukset
+custom-prompt-title = Oma…
+custom-prompt-prompt = Kirjoita oma ylä-/alatunniste
+basic-tab =
+ .label = Muoto ja valinnat
+advanced-tab =
+ .label = Marginaalit ja ylä-/alatunnisteet
+format-group-label =
+ .value = Muoto
+orientation-label =
+ .value = Suunta:
+portrait =
+ .label = Pysty
+ .accesskey = P
+landscape =
+ .label = Vaaka
+ .accesskey = V
+scale =
+ .label = Koko:
+ .accesskey = K
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Sovita sivun leveyteen
+ .accesskey = S
+options-group-label =
+ .value = Asetukset
+print-bg =
+ .label = Tulosta tausta (värit ja kuvat)
+ .accesskey = T
+margin-group-label-inches =
+ .value = Marginaalit (tuumia)
+margin-group-label-metric =
+ .value = Marginaalit (millimetriä)
+margin-top =
+ .value = Ylä:
+ .accesskey = Y
+margin-top-invisible =
+ .value = Ylä:
+margin-bottom =
+ .value = Ala:
+ .accesskey = A
+margin-bottom-invisible =
+ .value = Ala:
+margin-left =
+ .value = Vasen:
+ .accesskey = e
+margin-left-invisible =
+ .value = Vasen:
+margin-right =
+ .value = Oikea:
+ .accesskey = O
+margin-right-invisible =
+ .value = Oikea:
+header-footer-label =
+ .value = Ylä- ja alatunnisteet
+hf-left-label =
+ .value = Vasen:
+hf-center-label =
+ .value = Keskellä:
+hf-right-label =
+ .value = Oikea:
+header-left-tip =
+ .tooltiptext = Vasen ylätunniste
+header-center-tip =
+ .tooltiptext = Keskimmäinen ylätunniste
+header-right-tip =
+ .tooltiptext = Oikea ylätunniste
+footer-left-tip =
+ .tooltiptext = Vasen alatunniste
+footer-center-tip =
+ .tooltiptext = Keskimmäinen alatunniste
+footer-right-tip =
+ .tooltiptext = Oikea alatunniste
+hf-blank =
+ .label = --tyhjä--
+hf-title =
+ .label = Otsikko
+hf-url =
+ .label = URL
+hf-date-and-time =
+ .label = Pvm/aika
+hf-page =
+ .label = Sivu #
+hf-page-and-total =
+ .label = Sivu #/#
+hf-custom =
+ .label = Oma…
+print-preview-window =
+ .title = Tulostuksen esikatselu
+print-title =
+ .value = Otsikko:
+print-preparing =
+ .value = Valmistellaan…
+print-progress =
+ .value = Edistyminen:
+print-window =
+ .title = Tulostetaan
+print-complete =
+ .value = Tulostus valmis.
+
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent } %
+dialog-cancel-label = Peruuta
+dialog-close-label = Sulje
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/printing/printPreview.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..fca9aa9268
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/printing/printPreview.ftl
@@ -0,0 +1,73 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printpreview-simplify-page-checkbox =
+ .label = Yksinkertaista sivua
+ .accesskey = Y
+ .tooltiptext = Tätä sivua ei voi yksinkertaistaa automaattisesti
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Muuta sivun asettelua lukemisen helpottamiseksi
+printpreview-close =
+ .label = Sulje
+ .accesskey = S
+printpreview-portrait =
+ .label = Pysty
+ .accesskey = P
+printpreview-landscape =
+ .label = Vaaka
+ .accesskey = V
+printpreview-scale =
+ .value = Koko:
+ .accesskey = K
+printpreview-shrink-to-fit =
+ .label = Sovita
+printpreview-custom =
+ .label = Oma…
+printpreview-print =
+ .label = Tulosta…
+ .accesskey = o
+printpreview-of =
+ .value = /
+printpreview-custom-scale-prompt-title = Oma koko
+printpreview-page-setup =
+ .label = Sivun asetukset…
+ .accesskey = e
+printpreview-page =
+ .value = Sivu:
+ .accesskey = v
+
+# Variables
+# $sheetNum (integer) - The current sheet number
+# $sheetCount (integer) - The total number of sheets to print
+printpreview-sheet-of-sheets = { $sheetNum }/{ $sheetCount }
+
+## Variables
+## $percent (integer) - menuitem percent label
+## $arrow (String) - UTF-8 arrow character for navigation buttons
+
+printpreview-percentage-value =
+ .label = { $percent } %
+printpreview-homearrow =
+ .label = { $arrow }
+ .tooltiptext = Ensimmäinen sivu
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Edellinen sivu
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Seuraava sivu
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Viimeinen sivu
+
+printpreview-homearrow-button =
+ .title = Ensimmäinen sivu
+printpreview-previousarrow-button =
+ .title = Edellinen sivu
+printpreview-nextarrow-button =
+ .title = Seuraava sivu
+printpreview-endarrow-button =
+ .title = Viimeinen sivu
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/printing/printUI.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..af9104fba2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/printing/printUI.ftl
@@ -0,0 +1,148 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printui-title = Tulosta
+# Dialog title to prompt the user for a filename to save print to PDF.
+printui-save-to-pdf-title = Tallenna nimellä
+
+# Variables
+# $sheetCount (integer) - Number of paper sheets
+printui-sheets-count =
+ { $sheetCount ->
+ [one] { $sheetCount } paperiarkki
+ *[other] { $sheetCount } paperiarkkia
+ }
+
+printui-page-range-all = Kaikki
+printui-page-range-current = Nykyinen
+printui-page-range-odd = Parittomat
+printui-page-range-even = Parilliset
+printui-page-range-custom = Mukautettu
+printui-page-range-label = Sivut
+printui-page-range-picker =
+ .aria-label = Valitse sivualue
+printui-page-custom-range-input =
+ .aria-label = Anna mukautettu sivualue
+ .placeholder = esim. 2-6, 9, 12-16
+
+# Section title for the number of copies to print
+printui-copies-label = Kopioita
+
+printui-orientation = Suunta
+printui-landscape = Vaaka
+printui-portrait = Pysty
+
+# Section title for the printer or destination device to target
+printui-destination-label = Kohde
+printui-destination-pdf-label = Tallenna PDF-muotoon
+
+printui-more-settings = Enemmän asetuksia
+printui-less-settings = Vähemmän asetuksia
+
+printui-paper-size-label = Paperin koko
+
+# Section title (noun) for the print scaling options
+printui-scale = Koko
+printui-scale-fit-to-page-width = Sovita sivun leveyteen
+# Label for input control where user can set the scale percentage
+printui-scale-pcent = Koko
+
+# Section title (noun) for the two-sided print options
+printui-two-sided-printing = Kaksipuolinen tulostus
+printui-two-sided-printing-off = Pois päältä
+# Flip the sheet as if it were bound along its long edge.
+printui-two-sided-printing-long-edge = Käännä pitkän reunan ympäri
+# Flip the sheet as if it were bound along its short edge.
+printui-two-sided-printing-short-edge = Käännä lyhyen reunan ympäri
+
+# Section title for miscellaneous print options
+printui-options = Valinnat
+printui-headers-footers-checkbox = Tulosta ylä- ja alatunnisteet
+printui-backgrounds-checkbox = Tulosta taustat
+
+## The "Format" section, select a version of the website to print. Radio
+## options to select between the original page, selected text only, or a version
+## where the page is processed with "Reader View".
+
+# The section title.
+printui-source-label = Muoto
+# Option for printing the original page.
+printui-source-radio = Alkuperäinen
+# Option for printing just the content a user selected prior to printing.
+printui-selection-radio = Valinta
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Yksinkertaistettu
+
+##
+
+printui-color-mode-label = Väritila
+printui-color-mode-color = Väri
+printui-color-mode-bw = Mustavalkoinen
+
+printui-margins = Reunukset
+printui-margins-default = Oletus
+printui-margins-min = Pienimmät
+printui-margins-none = Ei reunuksia
+printui-margins-custom-inches = Mukautettu (tuumina)
+printui-margins-custom-mm = Oma (mm)
+printui-margins-custom-top = Ylä
+printui-margins-custom-top-inches = Ylä (tuumina)
+printui-margins-custom-top-mm = Ylä (mm)
+printui-margins-custom-bottom = Ala
+printui-margins-custom-bottom-inches = Ala (tuumina)
+printui-margins-custom-bottom-mm = Ala (mm)
+printui-margins-custom-left = Vasen
+printui-margins-custom-left-inches = Vasen (tuumina)
+printui-margins-custom-left-mm = Vasen (mm)
+printui-margins-custom-right = Oikea
+printui-margins-custom-right-inches = Oikea (tuumina)
+printui-margins-custom-right-mm = Oikea (mm)
+
+printui-system-dialog-link = Tulosta käyttäen järjestelmän tulostusikkunaa…
+
+printui-primary-button = Tulosta
+printui-primary-button-save = Tallenna
+printui-cancel-button = Peruuta
+printui-close-button = Sulje
+
+printui-loading = Valmistellaan esikatselua
+
+# Reported by screen readers and other accessibility tools to indicate that
+# the print preview has focus.
+printui-preview-label =
+ .aria-label = Tulostuksen esikatselu
+
+printui-pages-per-sheet = Sivuja per arkki
+
+# This is shown next to the Print button with an indefinite loading spinner
+# when the user prints a page and it is being sent to the printer.
+printui-print-progress-indicator = Tulostetaan…
+printui-print-progress-indicator-saving = Tallennetaan…
+
+## Paper sizes that may be supported by the Save to PDF destination:
+
+printui-paper-a5 = A5
+printui-paper-a4 = A4
+printui-paper-a3 = A3
+printui-paper-a2 = A2
+printui-paper-a1 = A1
+printui-paper-a0 = A0
+printui-paper-b5 = B5
+printui-paper-b4 = B4
+printui-paper-jis-b5 = JIS-B5
+printui-paper-jis-b4 = JIS-B4
+printui-paper-letter = US Letter
+printui-paper-legal = US Legal
+printui-paper-tabloid = Tabloid
+
+## Error messages shown when a user has an invalid input
+
+printui-error-invalid-scale = Koon on oltava luku välillä 10 ja 200.
+printui-error-invalid-margin = Anna valitulle paperin koolle kelvollinen reunus.
+printui-error-invalid-copies = Kopioiden määrä tulee ilmoittaa luvulla väliltä 1 ja 10000.
+
+# Variables
+# $numPages (integer) - Number of pages
+printui-error-invalid-range = Sivualueen on oltava luku välillä 1 ja { $numPages }.
+printui-error-invalid-start-overflow = Sivulta-sivunumeron on oltava pienempi kuin sivulle-sivunumeron.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/reportBrokenSite/reportBrokenSite.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/reportBrokenSite/reportBrokenSite.ftl
new file mode 100644
index 0000000000..6fbe8159b2
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/reportBrokenSite/reportBrokenSite.ftl
@@ -0,0 +1,3 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/updates/backgroundupdate.ftl
new file mode 100644
index 0000000000..9a3e855551
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/updates/backgroundupdate.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+backgroundupdate-task-description = Taustapäivitystehtävä tarkistaa { -brand-short-name }in päivitykset, kun { -brand-short-name } ei ole käynnissä. { -brand-short-name } asentaa tehtävän automaattisesti, ja se asennetaan uudelleen kun { -brand-short-name } on käynnissä. Jos haluat poistaa tehtävän käytöstä, päivitä selaimen asetukset tai { -brand-short-name }-yrityskäytännön asetus “BackgroundAppUpdate”.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/updates/elevation.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..4a6115fe68
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/updates/elevation.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# This is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Ohjelmistopäivitys
+elevation-details-link-label =
+ .value = Lisätietoja
+elevation-error-manual =
+ { -brand-short-name } voidaan päivittää käsin lataamalla ja
+ asentamalla ohjelman uusin versio osoitteesta:
+elevation-finished-page = Päivitys on valmis asennettavaksi
+elevation-finished-background-page =
+ Sovelluksen { -brand-short-name } turvallisuus- ja vakauspäivitys on
+ ladattu, ja se on valmis asennettavaksi.
+elevation-finished-background = Päivitys:
+elevation-more-elevated =
+ Tämä päivitys vaatii järjestelmänvalvojan oikeudet. Päivitys asennetaan,
+ kun { -brand-short-name } käynnistetään uudelleen. Voit käynnistää
+ { -brand-short-name }in uudelleen nyt, jatkaa { -brand-short-name }in käyttöä ja
+ käynnistää sen uudelleen myöhemmin tai hylätä tämän päivityksen.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/updates/history.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..73100c5cec
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/updates/history.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+history-title = Päivityshistoria
+history-intro = Seuraavat päivitykset on asennettu
+
+close-button-label =
+ .buttonlabelcancel = Sulje
+ .title = Päivityshistoria
+
+no-updates-label = Ei asennettuja päivityksiä
+name-header = Päivityksen nimi
+date-header = Asennuspäivä
+type-header = Tyyppi
+state-header = Tila
+
+# Used to display update history
+#
+# Variables:
+# $name (String): name of the update
+# $buildID (String): build identifier from the local updates.xml
+update-full-build-name = { $name } ({ $buildID })
+
+update-details = Lisätietoja
+
+update-installed-on = Asennusaika: { $date }
+
+update-status = Tila: { $status }
diff --git a/thunderbird-l10n/fi/manifest.json b/thunderbird-l10n/fi/manifest.json
new file mode 100644
index 0000000000..2d4de548ff
--- /dev/null
+++ b/thunderbird-l10n/fi/manifest.json
@@ -0,0 +1,56 @@
+{
+ "langpack_id": "fi",
+ "manifest_version": 2,
+ "browser_specific_settings": {
+ "gecko": {
+ "id": "langpack-fi@thunderbird.mozilla.org",
+ "strict_min_version": "115.0",
+ "strict_max_version": "115.*"
+ }
+ },
+ "name": "Language: Suomi (Finnish)",
+ "description": "Thunderbird Language Pack for Suomi (fi) – Finnish",
+ "version": "115.7.20240119.95007",
+ "languages": {
+ "fi": {
+ "version": "20240119104629",
+ "chrome_resources": {
+ "alerts": "chrome/fi/locale/fi/alerts/",
+ "autoconfig": "chrome/fi/locale/fi/autoconfig/",
+ "branding": "chrome/fi/locale/branding/",
+ "calendar": "chrome/fi/locale/fi/calendar/",
+ "chat": "chrome/fi/locale/fi/chat/",
+ "communicator": "chrome/fi/locale/fi/communicator/",
+ "devtools": "chrome/fi/locale/fi/devtools/client/",
+ "devtools-shared": "chrome/fi/locale/fi/devtools/shared/",
+ "global": "chrome/fi/locale/fi/global/",
+ "global-platform": {
+ "macosx": "chrome/fi/locale/fi/global-platform/mac/",
+ "linux": "chrome/fi/locale/fi/global-platform/unix/",
+ "android": "chrome/fi/locale/fi/global-platform/unix/",
+ "win": "chrome/fi/locale/fi/global-platform/win/"
+ },
+ "lightning": "chrome/fi/locale/fi/lightning/",
+ "messenger": "chrome/fi/locale/fi/messenger/",
+ "messenger-mapi": "chrome/fi/locale/fi/messenger-mapi/",
+ "messenger-newsblog": "chrome/fi/locale/fi/messenger-newsblog/",
+ "messenger-region": "chrome/fi/locale/fi/messenger-region/",
+ "messenger-smime": "chrome/fi/locale/fi/messenger-smime/",
+ "mozapps": "chrome/fi/locale/fi/mozapps/",
+ "mozldap": "chrome/fi/locale/fi/mozldap/",
+ "necko": "chrome/fi/locale/fi/necko/",
+ "passwordmgr": "chrome/fi/locale/fi/passwordmgr/",
+ "pdf.js": "chrome/fi/locale/pdfviewer/",
+ "pipnss": "chrome/fi/locale/fi/pipnss/",
+ "pippki": "chrome/fi/locale/fi/pippki/",
+ "places": "chrome/fi/locale/fi/places/"
+ }
+ }
+ },
+ "sources": {
+ "browser": {
+ "base_path": "browser/"
+ }
+ },
+ "author": "mozilla org suomennosprojekti: (contributors: Lasse Liehu, Jarmo Juslin, Ville Pohjanheimo)"
+}