- {{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}
+ {{ t('dashboard', 'For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.', { productName }) }}
{{ t('dashboard', 'Weather data from Met.no') }},
@@ -156,6 +156,12 @@ export default {
isMobile,
],
+ setup() {
+ return {
+ productName: window.OC.theme.productName,
+ }
+ },
+
data() {
return {
isAdmin: getCurrentUser().isAdmin,
diff --git a/apps/federatedfilesharing/src/components/PersonalSettings.vue b/apps/federatedfilesharing/src/components/PersonalSettings.vue
index f68b755425d66..6dd79541b21b3 100644
--- a/apps/federatedfilesharing/src/components/PersonalSettings.vue
+++ b/apps/federatedfilesharing/src/components/PersonalSettings.vue
@@ -5,7 +5,7 @@
- {{ t('federatedfilesharing', 'Share with me via Nextcloud') }}
+ {{ t('federatedfilesharing', 'Share with me via {productName}', { productName }) }}
@@ -103,6 +103,7 @@ export default {
return {
t,
+ productName: window.OC.theme.productName,
cloudId: loadState('federatedfilesharing', 'cloudId'),
reference: loadState('federatedfilesharing', 'reference'),
urlFacebookIcon: imagePath('core', 'facebook'),
diff --git a/apps/files_external/src/settings.js b/apps/files_external/src/settings.js
index 033696c9d2423..574dad35a3c75 100644
--- a/apps/files_external/src/settings.js
+++ b/apps/files_external/src/settings.js
@@ -1272,23 +1272,32 @@ MountConfigListView.prototype = _.extend({
}
const storage = new this._storageConfigClass(configId)
- OC.dialogs.confirm(t('files_external', 'Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself.', {
- storage: this.mountPoint,
- }), t('files_external', 'Delete storage?'), function(confirm) {
- if (confirm) {
- self.updateStatus($tr, StorageConfig.Status.IN_PROGRESS)
-
- storage.destroy({
- success() {
- $tr.remove()
- },
- error(result) {
- const statusMessage = (result && result.responseJSON) ? result.responseJSON.message : undefined
- self.updateStatus($tr, StorageConfig.Status.ERROR, statusMessage)
- },
- })
- }
- })
+ OC.dialogs.confirm(
+ t('files_external', 'Are you sure you want to disconnect this external storage?')
+ + ' '
+ + t('files_external', 'It will make the storage unavailable in {instanceName} and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself.',
+ {
+ storage: this.mountPoint,
+ instanceName: window.OC.theme.name,
+ },
+ ),
+ t('files_external', 'Delete storage?'),
+ function(confirm) {
+ if (confirm) {
+ self.updateStatus($tr, StorageConfig.Status.IN_PROGRESS)
+
+ storage.destroy({
+ success() {
+ $tr.remove()
+ },
+ error(result) {
+ const statusMessage = (result && result.responseJSON) ? result.responseJSON.message : undefined
+ self.updateStatus($tr, StorageConfig.Status.ERROR, statusMessage)
+ },
+ })
+ }
+ },
+ )
},
/**
diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue
index 2ed44a4b5adb0..c8118e0ed866a 100644
--- a/apps/files_sharing/src/views/SharingTab.vue
+++ b/apps/files_sharing/src/views/SharingTab.vue
@@ -187,6 +187,8 @@ import SharingDetailsTab from './SharingDetailsTab.vue'
import ShareDetails from '../mixins/ShareDetails.js'
import logger from '../services/logger.ts'
+const productName = window.OC.theme.productName
+
export default {
name: 'SharingTab',
@@ -230,7 +232,7 @@ export default {
returnFocusElement: null,
internalSharesHelpText: t('files_sharing', 'Share files within your organization. Recipients who can already view the file can also use this link for easy access.'),
- externalSharesHelpText: t('files_sharing', 'Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID.'),
+ externalSharesHelpText: t('files_sharing', 'Share files with others outside your organization via public links and email addresses. You can also share to {productName} accounts on other instances using their federated cloud ID.', { productName }),
additionalSharesHelpText: t('files_sharing', 'Shares from apps or other sources which are not included in internal or external shares.'),
}
},
diff --git a/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue b/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue
index 79a97397e5b37..ed3215f4b93bb 100644
--- a/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue
+++ b/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue
@@ -100,10 +100,10 @@
- {{ t('settings', 'This app has no minimum Nextcloud version assigned. This will be an error in the future.') }}
+ {{ t('settings', 'This app has no minimum {productName} version assigned. This will be an error in the future.', { productName }) }}
- {{ t('settings', 'This app has no maximum Nextcloud version assigned. This will be an error in the future.') }}
+ {{ t('settings', 'This app has no maximum {productName} version assigned. This will be an error in the future.', { productName }) }}
{{ t('settings', 'This app cannot be installed because the following dependencies are not fulfilled:') }}
@@ -249,6 +249,8 @@ export default {
store,
appApiStore,
+ productName: window.OC.theme.productName,
+
mdiBugOutline,
mdiFeatureSearchOutline,
mdiStar,
diff --git a/apps/settings/src/components/Encryption/sharedTexts.ts b/apps/settings/src/components/Encryption/sharedTexts.ts
index 94d23be07f231..f12e3a6f811ab 100644
--- a/apps/settings/src/components/Encryption/sharedTexts.ts
+++ b/apps/settings/src/components/Encryption/sharedTexts.ts
@@ -4,4 +4,6 @@
*/
import { t } from '@nextcloud/l10n'
-export const textExistingFilesNotEncrypted = t('settings', 'For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted.')
+const productName = window.OC.theme.productName
+
+export const textExistingFilesNotEncrypted = t('settings', 'For performance reasons, when you enable encryption on a {productName} server only new and changed files are encrypted.', { productName })
diff --git a/apps/settings/src/components/Users/UserRow.vue b/apps/settings/src/components/Users/UserRow.vue
index 43668725972ba..b0625a7395e5f 100644
--- a/apps/settings/src/components/Users/UserRow.vue
+++ b/apps/settings/src/components/Users/UserRow.vue
@@ -302,6 +302,8 @@ import { isObfuscated, unlimitedQuota } from '../../utils/userUtils.ts'
import { searchGroups, loadUserGroups, loadUserSubAdminGroups } from '../../service/groups.ts'
import logger from '../../logger.ts'
+const productName = window.OC.theme.productName
+
export default {
name: 'UserRow',
@@ -534,7 +536,10 @@ export default {
const userid = this.user.id
await confirmPassword()
OC.dialogs.confirmDestructive(
- t('settings', 'In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.', { userid }),
+ t('settings',
+ 'In case of lost device or exiting the organization, this can remotely wipe the {productName} data from all devices associated with {userid}. Only works if the devices are connected to the internet.',
+ { userid, productName },
+ ),
t('settings', 'Remote wipe of devices'),
{
type: OC.dialogs.YES_NO_BUTTONS,
diff --git a/apps/settings/src/mixins/AppManagement.js b/apps/settings/src/mixins/AppManagement.js
index 3822658589d0d..a8f4b4821d635 100644
--- a/apps/settings/src/mixins/AppManagement.js
+++ b/apps/settings/src/mixins/AppManagement.js
@@ -6,6 +6,8 @@
import { showError } from '@nextcloud/dialogs'
import rebuildNavigation from '../service/rebuild-navigation.js'
+const productName = window.OC.theme.productName
+
export default {
computed: {
appGroups() {
@@ -96,7 +98,9 @@ export default {
return null
},
forceEnableButtonTooltip() {
- const base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.')
+ const base = t('settings', 'This app is not marked as compatible with your {productName} version.', { productName })
+ + ' '
+ + t('settings', 'If you continue you will still be able to install the app. Note that the app might not work as expected.')
if (this.app.needsDownload) {
return base + ' ' + t('settings', 'The app will be downloaded from the App Store')
}
diff --git a/apps/settings/src/views/AdminSettingsSetupChecks.vue b/apps/settings/src/views/AdminSettingsSetupChecks.vue
index bcae6678d5790..1546c4a468d24 100644
--- a/apps/settings/src/views/AdminSettingsSetupChecks.vue
+++ b/apps/settings/src/views/AdminSettingsSetupChecks.vue
@@ -26,13 +26,25 @@ const {
loggingSectionUrl,
} = loadState>('settings', 'setup-checks-section')
-const adminDocsHtml = t('settings', 'Please double check the {linkStartInstallationGuides}installation guides{linkEnd}, and check for any errors or warnings in the {linkStartLog}log{linkEnd}.', {
- linkEnd: ' ↗',
- linkStartInstallationGuides: ``,
- linkStartLog: ``,
-}, { escape: false })
-
-const footerHtml = t('settings', 'Check the security of your Nextcloud over {linkStart}our security scan{linkEnd}.', { linkStart: '', linkEnd: ' ↗' }, { escape: false })
+const adminDocsHtml = t('settings',
+ 'Please double check the {linkStartInstallationGuides}installation guides{linkEnd}, and check for any errors or warnings in the {linkStartLog}log{linkEnd}.',
+ {
+ linkEnd: ' ↗',
+ linkStartInstallationGuides: ``,
+ linkStartLog: ``,
+ },
+ { escape: false },
+)
+
+const footerHtml = t('settings',
+ 'Check the security of your {productName} over {linkStart}our security scan{linkEnd}.',
+ {
+ linkStart: '',
+ linkEnd: ' ↗',
+ productName: window.OC.theme.productName,
+ },
+ { escape: false },
+)
const loading = ref(true)
const loadingFailed = ref(false)
diff --git a/apps/settings/src/views/AppStore.vue b/apps/settings/src/views/AppStore.vue
index 82c8c31e75d65..996359e6040b0 100644
--- a/apps/settings/src/views/AppStore.vue
+++ b/apps/settings/src/views/AppStore.vue
@@ -6,7 +6,8 @@
+ :page-heading="pageHeading"
+ :page-title="pageTitle">
@@ -23,7 +24,7 @@
\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=44339fa4&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=44339fa4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44339fa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n\n\t
\n\t\t\t\t\t\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\n\t\t\t\t\t
\\n\\t\\t\\t\\t\\t\\t{{ t('dashboard', 'For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.') }}\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{ t('dashboard', 'For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.', { productName }) }}\\n\\t\\t\\t\\t\\t
\n\t\t\t\t\t\t{{ t('dashboard', 'For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information.', { productName }) }}\n\t\t\t\t\t