diff --git a/src/lib/components/FieldItem.svelte b/src/lib/components/FieldItem.svelte
index c8a9e47..e9821e2 100644
--- a/src/lib/components/FieldItem.svelte
+++ b/src/lib/components/FieldItem.svelte
@@ -240,6 +240,16 @@
{/if}
+
+ {
+ field.is_language_independent = detail
+ }}
+ />
+
+
{#each field.fields as subfield, i (subfield.id)}
diff --git a/src/lib/const.js b/src/lib/const.js
index 9ce28e9..e91f13f 100644
--- a/src/lib/const.js
+++ b/src/lib/const.js
@@ -14,6 +14,7 @@ export const Field = (field = {}) => ({
fields: [],
options: {},
is_static: false,
+ is_language_independent: false,
...field
})
diff --git a/src/lib/converter.js b/src/lib/converter.js
index fdc0a31..bdde16a 100644
--- a/src/lib/converter.js
+++ b/src/lib/converter.js
@@ -166,6 +166,7 @@ export function validate_site_structure_v2(site) {
fields: [],
options: {},
is_static: false,
+ is_language_independent: false,
}],
content: {
en: {
@@ -426,6 +427,7 @@ export function convertFields(fields = [], fn = () => { }) {
options: field.options || {},
default: field.default || '',
is_static: field.is_static || false,
+ is_language_independent: field.is_language_independent || false,
}
})
}
diff --git a/src/lib/index.d.ts b/src/lib/index.d.ts
index bffe7ac..c6a557c 100644
--- a/src/lib/index.d.ts
+++ b/src/lib/index.d.ts
@@ -48,6 +48,7 @@ export type Field = {
fields: Array,
options: object,
is_static: boolean,
+ is_language_independent: false,
value?: any
}
diff --git a/src/lib/stores/helpers.js b/src/lib/stores/helpers.js
index b085651..3c779b0 100644
--- a/src/lib/stores/helpers.js
+++ b/src/lib/stores/helpers.js
@@ -174,11 +174,19 @@ export function get_content_with_static({ component, symbol, loc }) {
const field_value = component.content?.[loc]?.[field.key]
// if field is static, use value from symbol content
if (field.is_static) {
- const symbol_value = symbol.content?.[loc]?.[field.key]
+ const symbol_value = field.is_language_independent
+ ? symbol.content?.['en']?.[field.key]
+ : symbol.content?.[loc]?.[field.key]
return {
key: field.key,
value: symbol_value
}
+ } else if (field.is_language_independent) {
+ const default_value = symbol.content?.['en']?.[field.key]
+ return {
+ key: field.key,
+ value: default_value
+ }
} else if (field_value !== undefined) {
return {
key: field.key,
@@ -199,6 +207,7 @@ export function get_content_with_static({ component, symbol, loc }) {
return _.cloneDeep(content)
}
+
export function getPageData({ page = get(activePage), site = get(activeSite), loc = get(locale) }) {
const page_content = page.content[loc]
const site_content = site.content[loc]